机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 37585|回复: 85
打印 上一主题 下一主题

纯自嗨:从零开始写一个小程序

[复制链接]
跳转到指定楼层
1#
发表于 2021-1-6 07:32:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
开个贴子,记录这件有意思的事情!. J9 a5 o5 I" j  w0 f1 J

# K* `0 Q  L* q9 ]背景:
- o8 q3 n& [3 C0 m冲突一:想学习,却找不到好工具# P6 Y/ J8 F& Q3 D3 P; Q
今年春节遇上了疫情,我宅在家里,处于“失业”状态,作为有志青年,不想每天刷剧、刷抖音,想着装一下B,提高一下英语水平。4 a  f# L. ?3 U* b+ Y; Z

: G, F; m% m& Q; s4 v于是,在朋友圈疯狂的广告洗脑下,我下载了几个当时很火的App,很认真地投入学习。4 B( p3 Q2 y% g* w& f7 r( |  m
然并卵,使用了一段时间之后,发现效果不太理想:首先,这些App记单词过程太过于复杂,很多都提供了多种助记的方法,除了常规的词根词缀、联想记忆以外,还有图片记忆、电影情节记忆、思维导图记忆等,这样的好处是当时很容易记住单词,坏处就是忘得也很容易,大量的助记材料无形中增加了记忆的工作量,增加了记忆的负担,从而偏离了记单词的初衷;其次,练听力的功能普遍都是提供新概念英语或者VOA、BBC、TED等听力材料,对于基础不好的我,感觉在听天书;8 d% U* s; ~% G$ k- _: N
难道就没有一款适合我这种菜鸟的App吗?
, F* C: g. D2 s' s" m9 g  O一个大胆的想法出现在我脑海里:自己开发一个App。; o6 c- m" J7 h' p
: A" X  \$ V; N2 ^% z: Y  t+ ^/ }
冲突二:计划自己开发,却不是专业人士
2 @1 k, Y% Y; P/ b0 F为什么说这个想法大胆呢?因为我虽然是一名搞技术的工程师,但仅限于机械行业的。我所接受的完整编程教育仅是在大学期间的《C语言程序设计》。所以对事情一无所知,严重缺乏相关知识储备,除了大胆,我也不知道怎么来形容这个想法了。
! D6 P8 w; I/ \3 G) V但有句古话叫无知者无畏,而且作为理工男,我始终相信任何问题都有办法解决,只要你能够把问题描述得足够清楚。/ Z1 S" R* c2 ^+ F) J% l
因此这个想法一出现,我立马觉得应该去试试,结果怎样不重要,起码先行动起来。
: R/ y, b& C( R) P& `3 c6 G. g$ P  E1 F: \; J% V3 i
行动:
9 _! B4 |: G% C$ o6 g! C) K4 r; U先把问题描述清楚,我的目标是开发一个学英语的App,这款App应该功能简单,不能太过复杂。把它分解成两个问题:$ Y  H, h, J# V5 J* ^& B
1-怎样开发一个App?4 I' g3 U! P; ]3 C* g
2-应该具备什么功能才能用来学英语?1 b& m9 Z. s% B6 x. p: ^6 \( N
7 \5 ~( T! H5 m. w
先来思考第一个问题:怎么开发一个App?
! q6 s" E+ x8 ~/ `我把问题进行细分:3 ^, c0 M% D( M, G
1- 什么是App? ( C3 \/ {$ w2 x. Y- E* r' q4 f8 [
2- 需要哪些知识储备?' F/ Z) R" z. |/ [
3- 如何做?需要什么工具?3 V9 H' e0 h: v7 P# E3 @
4- 有没有简单的方法实现?7 V: o9 @$ ]% ]# S+ I, q1 c! |
经过一番搜索、学习、请教、记录和总结,这些问题渐渐有了答案。& O, E+ B* W/ H0 \

% f! u( c1 g7 x5 n7 z1-what:什么是App?
, \  ^; G* p  p6 y- GApp是应用application的简称,我这里说的App是指手机端的App。' }/ q' S0 y! \* A; r1 p& J
根据开发模式,目前的手机App可分为3种类型:原生、H5、Hybrid。它们有各自的优劣势:$ n  X* y6 y8 N& J# p
            
类别
/ t. q% N( M$ l: M9 I: \( [
概述8 ~+ F7 q0 m3 F! c: T2 ]
优势5 q/ W! @* }/ i+ V$ d0 j
劣势- ~; G$ s$ ?3 l/ r( H5 i
原生应用 (Native1 h- W/ x/ K! X$ M9 Z) B
  App)
% i, D/ H3 J3 f$ }" m2 d- E
原生App就是利用Andriod、ios平台官方的开发语言、开发类库、工具进行开发。比如安卓的java语言,ios的Swift语言。在应用性能上和交互体验上应该是最好的.
9 D! z. @5 R$ u. ~5 x/ T, z! @
1-可以访问手机所有功能、可实现功能最齐全;
* g  h7 D4 f: [4 L* n2-运行速度快、性能高,绝佳的用户体验;4 V4 n" w; Q# [. L7 Y2 w
3-支持大量图形和动画。不卡,反应快;
4 e% t% Z' E3 O4-比较快捷的使用设备端提供的接口,处理速度上有优势;
7 j% O! Z% g9 Q4 E" x
1-开发成本高、周期长,Android和ios都需要单独的开发;
) x8 m1 K* l! d9 I2-更新版本需要重新下载安装包;
  m& v9 Q, a9 d& d
H5应用 (Web App)
2 E$ H% l" S3 R1 ~# _: ^0 h
用普通web开发语言开发的,通过浏览器运行。5 k8 v& X9 a* c% k
1-使用web语言,开发门槛低、周期短;
1 ^8 O2 Z. H: a/ s2-支持多种浏览器,兼容性好;1 m' U  j3 o+ S% a; S5 l
3-免安装,使用浏览器打开,更新无需用户参与;
+ B$ a( W2 f% Q9 T; ~' Q& p# D+ G
1-对联网要求高,离线不能承载太多东西;( ?/ ~! }4 m8 V' z
2-功能有限;  L: e' F% M( {5 P( y
3-运行速度慢,页面不能承载太多东西;4 I' [$ A) {/ q% `
4-图片和动画支持性不高;
( H& G. \; f. G: @. {: R& ?) b2 E5-体验感不如原生和混合App;0 q+ X9 t1 \# Y6 y4 a. ]
混合版应用 (Hybrid* j' y3 R! i$ J% l( n0 l
  App)( Z7 \2 ~! k% W8 b! J
既利用了原生APP开发技术还利用了HTML5开发技术,是原生和HTML5技术的混合应用。混合比例不限。目前市面上流行的小程序和快应用就是采用Hybrid技术。
2 q6 `( S- I: H
1-运行速度比Web  App快,可调用部分设备端口;
5 E0 [1 }: ~0 _2-开发周期比原生App短;
! u7 ]/ `4 I( |0 v# }3-可以跨平台,Android和ios不需要单独的开发;
7 Z* X3 Q3 U3 @4 @; J4-免安装,打开就能用,更新无需用户参与;
7 |2 A6 J, ^+ t
1-功能接口受限于原生App的支持程度;
& A( ]9 ?/ G8 D6 S" z% M2-体验感优于Web App,但差于原生App;- |$ w# N( \* o' M& v, m0 J: O5 c
- q  Z4 c1 z6 H% g  ?) J, a9 s* o
        
" _3 @3 Y" k/ Y& p9 ~" ~! y
- {. k8 F; V% i. p; H" k# Q' \; M2-why:需要哪些知识储备?
# v, q2 @8 Z# Y& S, v0 P9 AApp开发的流程大概分为几个阶段:需求分析-->架构设计-->后端开发-->前端开发-->测试。每个阶段都需要相应的知识。
1 P' I/ b3 V& Q. r# f' V
, M+ _5 r2 a( O) i' q- k1 q4 h5 t% x5 q5 |8 {& y. S2 c3 o0 R
需求分析:; {% z$ g( q# s
需求分析也称为软件需求分析,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。这是软件工程专业的相关知识。
. G1 K' Y6 o; M8 h$ s  {4 p. E3 [  y1 O5 n) K
6 G  Q& ~& v. ~3 Y7 [
) e; r3 R) X; t% {/ e+ g
架构设计:
3 R: k6 E2 ~3 A! @- J3 b. F5 {需要架构设计是将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构设计是软件设计过程的早期阶段,它把需求分析和设计流程连接在一起。需要对开发技术(包括前端和后端)有深入的了解。
" y6 n& o: C) u7 D; X) I* F6 z
# Y9 e2 p% x+ f6 l- J+ i$ B% [6 P
( N7 @. W" x$ [, ^* Q& B! E- K5 {
6 X% J: D: b) N3 c4 ]" N) C
后端开发:8 b2 m5 i7 _( B! h: H
后端是指服务器相关的统称,包含服务器、数据库。7 W/ j' O. N& G9 Z1 f! t
服务器搭建与开发,常用语言和工具:Nginx、Java、Shell、Python、PHP、node.js等;7 t& ]$ B- M. t  I( }  X  Z; o
数据库开发,常用知识:关系型数据库mySQL,非关系型数据库MongoDB;& {! W5 k* G2 [+ U
' M, c9 K  N" ?# a5 o

  V7 P! Z8 _0 J+ |6 L$ p
( E$ i. B. t# Y前端开发:7 M/ a" }' w7 A5 O7 I
前端是手机端的开发,包括UI界面、响应逻辑、数据的请求。$ f' q, L: ^8 M/ w' l
前端三大基础技术:HTML5、CSS、JavaScript;
7 n0 D1 u! H1 M# R. n( l流行的前端框架:Angular、vue.js、React;# Y1 x3 t$ Z$ M$ L( \
原生App开发语言:Swift(iOS平台);Java(Android平台);
4 F- _7 y) H2 u& z4 T! c
$ b" j4 e/ }( U

4 s3 ?6 u' J: j% D9 I
: W$ k0 }9 i- {- {$ Z6 O# \' J! m  A! }$ }+ f3 j9 _# J) X4 q* l
测试:
+ u5 D" Q4 _% ?% {包括功能测试、性能测试、压力测试等。# R& U) L( {) ~) M' j0 ?

9 J/ ]* c$ e$ l8 O: V5 h& A

7 q8 [' T1 `/ S, R
0 J% \. W" M8 E* h% f* @3-how:怎么做?需要用到什么工具?
! F$ J0 Q+ d# h- w- u9 O. x看书、看视频教程、看开发文档、模仿实践;
6 ^5 Q) D8 U3 d4 O3 M基本上各种语言都有各自的开发工具(IDE),学到哪个就用哪个。
  m7 ?7 R/ t4 b9 l. _
5 r! f0 u- i& ^. g* m/ e4-how good:有没有简单的方法实现?" U1 q6 |0 r6 m" I4 S
随着了解的越深入,越发现这个事情没有想象中那么简单。这是一个系统工程,涉及太多的知识,需要不同岗位的人配合,就好比开发一台设备,需要机械工程师、电气工程师、工艺工程师、采购工程师等一起合作才能完成。
2 V. r3 t6 l) m1 J! m: P0 H难道一个人就真的不可能完成?我开始动摇,直到后来看到了“全栈开发”这个名词,眼前一亮,信心立马恢复。全栈开发是指一个人搞掂前端和后端。随着技术的发展,市面上有很多现成的框架,借助这些框架来实现一个小项目这个可能还是有的。: [( [2 O! u" t
, {' N( b; c, w; B' I
那么接下来就是确定开发的模式:7 S! [5 C. k; J5 H; l* d- l0 e
首先排除开发原生应用,难度实在太大,不符合我的情况。只能在H5和Hybrid之间选择,H5是门槛最低的,但我预计后期会用到手机摄像头和话筒这些硬件,这些是H5的劣势。那么目前看来Hybrid是最合适的选择,而且此时微信小程序开始火起来,各种开发教程和案例都丰富起来。于是,我最终确定做微信小程序。后来,微信小程序推出了云开发,妈呀,我感动得快要哭了,腾讯真的太照顾我了,这样又帮我解决了后端开发的问题。
6 P) O" o7 R$ T- O2 ]关于开发的问题,确定开发模式后,剩下的就是恶补微信小程序的相关知识。
* `/ E8 x0 D! m9 _4 |9 Y
( s% f7 p- U/ [8 a1 T" O& z第二个问题是APP应该具备什么功能才能用来学英语?后面继续记录。。。。
' {& ^: x" f2 s# u
' g) Z0 o2 E8 C$ F" ?) U" C

评分

参与人数 2威望 +101 收起 理由
大白小白 + 1 不明觉厉
老鹰 + 100

查看全部评分

回复

使用道具 举报

2#
发表于 2021-1-6 08:05:18 | 只看该作者
楼主牛批,期待更新

点评

感谢支持!  发表于 2021-1-6 23:15
回复 支持 1 反对 0

使用道具 举报

3#
发表于 2021-1-6 08:11:05 | 只看该作者
等更新

点评

感谢支持!  发表于 2021-1-6 23:15
回复

使用道具 举报

4#
发表于 2021-1-6 09:50:49 | 只看该作者
牛批,点个赞

点评

感谢支持!  发表于 2021-1-6 23:14
回复 支持 反对

使用道具 举报

5#
发表于 2021-1-6 09:53:36 | 只看该作者
此事意义重大!给楼主点赞!

点评

感谢支持!  发表于 2021-1-7 08:25
回复 支持 反对

使用道具 举报

6#
发表于 2021-1-6 09:54:06 | 只看该作者
good  用心

点评

感谢支持!  发表于 2021-1-6 23:16
回复 支持 反对

使用道具 举报

7#
发表于 2021-1-6 11:02:56 | 只看该作者
给楼主点赞!

点评

感谢支持!  发表于 2021-1-6 23:17
回复 支持 反对

使用道具 举报

8#
发表于 2021-1-6 11:12:46 | 只看该作者
想法不错,可以看看比邻国APP,可以学习很多语种

点评

感谢分享!  发表于 2021-1-6 23:17
回复 支持 1 反对 0

使用道具 举报

9#
 楼主| 发表于 2021-1-6 11:36:44 | 只看该作者
确定开发微信小程序后,那后面所有的工作就以这个展开。" D: c( M% l- M4 S3 G

. I7 @* G! Z8 v9 A我把这事分成三个步骤:& x) ^# a$ A  D! l5 ~  ~
1-先学习前端三大基础知识:HTML5、CSS、JavaScript,了解vue.js;
# \! {) y, @& Y2-学习小程序的开发教材及案例:官方的开发文档和教程、优秀大咖的课程;
  ^- Z7 w! `+ O( g: w0 C1 j' e3-以实际需求为驱动,开始写程序,边写边学;
) |8 W, R$ J0 P6 r1 g2 F) U0 g6 f: ]9 ?# D2 s3 l1 O

" j( F7 V, G: S: w  c学习过程中找了很多学习资料,经过学习和筛选,我认为最有用的有以下几个,如果各位社友感兴趣可以去了解:* l3 {/ _2 k- b2 g6 o' l
1-菜鸟教程:
& I3 y3 m7 j; `4 V+ y. d" g, G9 J此网站有详细的教程资料,包括前端三大技术、服务器、数据库等,非常详细。! \3 N/ |7 @3 D3 Q" Y+ l7 c- D) A

, y+ F$ K( n$ y; ^; _; t' B" j) t: a% [! W/ K  A6 t) X" x
2-官方文档:, A5 v8 a" F: l1 O1 l: |( B) E& O# O7 P
小程序的官方开发文档,可以先粗略阅读一遍,在写代码时再查找具体的组件或者API。" J  I. }7 N% Z$ T8 H# V% X

; e# Z0 n3 |% u6 `! ]& X$ w) c* v! O; ~$ [. R9 B
3-官方视频教程:
/ Y& c: ]( H6 l分类三个阶段,包括小程序开发、小程序云开发、小程序项目,可以反复观看。
  w; |- T' k9 v/ n+ r
8 r- ~" u& q4 r3 X9 `% B# B. {- j7 z5 F, N  S8 g
4-CSDN:
) [3 Q* L+ L) C, _5 f5 K一个程序员的必威体育网址,只要遇到疑问,90%可以在这个地方找到答案。0 z7 o. M' ^* K# _( e+ q' E

1 u% R" A2 s8 Z% Z; S, P3 `' Y0 Y8 q! v/ K. f0 s) |
5-B站:9 P' C9 h) O$ w/ d, ~
一个包罗万有的必威体育网址,有大量的视频教程,包括HTML5、CSS、JavaScript、小程序开发。  O0 ^. S7 j0 P) n$ H, z8 S, V
. w0 G# y2 Z. g( _2 f; b% d
备注:由于我没有权限发表包含URL地址的信息,所以无法贴上链接。以上的资料都可以百度找到。如果实在找不到,有兴趣的可以私信我。
' l2 W: O2 v4 _. I- Y. L  F学习过程中,也走过一些弯路:
; m3 Q! B3 p1 c  l1- APICloud,一个低代码开发平台,需要购买他的资源,私房钱不多,放弃;
7 w3 {* W* n* A0 }" w+ T6 Z; R2- DCloud,一个可以一次开发,多端覆盖的开发框架,就自己一个人使用,就一个平台,不需要多端覆盖,放弃;9 y! ]8 Q3 D7 J6 s' {! b5 e
/ G. o' E# e( x4 u4 h/ y

$ i+ ]* u0 H% I/ u; l" \( \

点评

URL可以这样发:ww去w.b掉aid中u.co文m  发表于 2022-10-1 11:40

评分

参与人数 1威望 +1 收起 理由
大白小白 + 1 思想深刻,见多识广!

查看全部评分

回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2021-1-6 11:49:29 | 只看该作者
机械自动化学者 发表于 2021-1-6 08:05
7 r% r# d# r: E- }" L楼主牛批,期待更新

5 T" p  t/ Q& m3 u, h  M谢谢!不牛批,本人普通技术一枚,就是兴趣广一点,有一点点动手能力。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-12-2 08:13 , Processed in 0.059753 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表