机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2021-1-6 07:32:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
开个贴子,记录这件有意思的事情!- v! G3 ~7 h) T& y" F' `1 h
; W: x3 A! v+ u; l" F# N0 m6 K4 n7 C
背景:
2 B9 M# C/ ?) y6 R) A# {9 j冲突一:想学习,却找不到好工具- D1 M. q9 c5 U  w3 ~6 e5 s( d2 Q6 {
今年春节遇上了疫情,我宅在家里,处于“失业”状态,作为有志青年,不想每天刷剧、刷抖音,想着装一下B,提高一下英语水平。
  }6 e6 e3 L9 h5 j2 K- y
, F6 n; f8 F" i6 Z8 M# ?( P' L于是,在朋友圈疯狂的广告洗脑下,我下载了几个当时很火的App,很认真地投入学习。4 n' `. V4 d# X
然并卵,使用了一段时间之后,发现效果不太理想:首先,这些App记单词过程太过于复杂,很多都提供了多种助记的方法,除了常规的词根词缀、联想记忆以外,还有图片记忆、电影情节记忆、思维导图记忆等,这样的好处是当时很容易记住单词,坏处就是忘得也很容易,大量的助记材料无形中增加了记忆的工作量,增加了记忆的负担,从而偏离了记单词的初衷;其次,练听力的功能普遍都是提供新概念英语或者VOA、BBC、TED等听力材料,对于基础不好的我,感觉在听天书;
5 k4 J$ @$ y/ Z0 M2 u( }2 Q, W, G难道就没有一款适合我这种菜鸟的App吗?2 ]7 l" E3 I/ d$ {9 a8 @3 ~
一个大胆的想法出现在我脑海里:自己开发一个App。. a0 t4 u# S, {6 J. C( m
" G4 K; z( K# h3 W8 ?2 o& y
冲突二:计划自己开发,却不是专业人士
9 r/ E& ?& V$ {8 j! K7 E" L: y4 ~为什么说这个想法大胆呢?因为我虽然是一名搞技术的工程师,但仅限于机械行业的。我所接受的完整编程教育仅是在大学期间的《C语言程序设计》。所以对事情一无所知,严重缺乏相关知识储备,除了大胆,我也不知道怎么来形容这个想法了。
% a! u* P& @2 ?" T& n/ w但有句古话叫无知者无畏,而且作为理工男,我始终相信任何问题都有办法解决,只要你能够把问题描述得足够清楚。$ O% H6 f" C# |! f. R
因此这个想法一出现,我立马觉得应该去试试,结果怎样不重要,起码先行动起来。' v5 _5 R, W1 [) p/ c% y
6 J% `& v0 T" a/ [
行动:
# ~' ?- F  e1 k" t/ c; c* T先把问题描述清楚,我的目标是开发一个学英语的App,这款App应该功能简单,不能太过复杂。把它分解成两个问题:4 h& S+ t5 |5 @5 O. o
1-怎样开发一个App?$ p& u8 I- b% \6 Y& t1 w- m( c
2-应该具备什么功能才能用来学英语?# I  m3 p( R! U
; M9 J4 G! f% N7 q7 i3 N& {
先来思考第一个问题:怎么开发一个App?
; G8 i. a6 F! b我把问题进行细分:
# O- u* |% c9 Z# O6 f+ @# a1- 什么是App? 7 z, s# u2 W4 J$ z
2- 需要哪些知识储备?) x( C. N: b- r0 r. }% w- {; C. H
3- 如何做?需要什么工具?0 K" i# V& j+ V
4- 有没有简单的方法实现?* f& J8 w8 R3 s7 T. a& p4 R
经过一番搜索、学习、请教、记录和总结,这些问题渐渐有了答案。
: g* q4 l% l1 R
" ~7 U  J$ ~' X4 C& v' @& n1-what:什么是App?
- f9 l. L1 w8 _: \/ V' yApp是应用application的简称,我这里说的App是指手机端的App。$ g4 c0 N* @4 l; n! E5 v) ?
根据开发模式,目前的手机App可分为3种类型:原生、H5、Hybrid。它们有各自的优劣势:( c3 `+ k: k1 Z: M$ W3 J4 U
            
类别9 j$ R" _, Q  ~
概述
- l$ m! a) n4 b% y/ A! Q( c! X
优势5 R7 x4 _. y1 u1 ]/ @3 X  L: U% }
劣势
: i( L5 t0 J- i- D/ _
原生应用 (Native
+ q) I. k: Y1 f' k  App)
# `+ v* i7 f7 \
原生App就是利用Andriod、ios平台官方的开发语言、开发类库、工具进行开发。比如安卓的java语言,ios的Swift语言。在应用性能上和交互体验上应该是最好的.
) x4 q; t4 F* R9 W$ V/ |
1-可以访问手机所有功能、可实现功能最齐全;
$ w# p) b. c- \0 r2-运行速度快、性能高,绝佳的用户体验;
1 _+ M  s( x; r. G: C, p( M3-支持大量图形和动画。不卡,反应快;
  _' h( f0 T# Y' P4-比较快捷的使用设备端提供的接口,处理速度上有优势;9 y) I+ Q- }& A$ Z# r0 W
1-开发成本高、周期长,Android和ios都需要单独的开发;- e. C0 J0 w( l
2-更新版本需要重新下载安装包;# V- J' L% ~2 _! \1 H: E
H5应用 (Web App): u# f$ |) h0 {8 v
用普通web开发语言开发的,通过浏览器运行。! s7 v6 k. |9 f. T4 |
1-使用web语言,开发门槛低、周期短;
5 Y- K: l9 v2 J* P5 E5 I- P2-支持多种浏览器,兼容性好;4 A3 C; x. S* K" y
3-免安装,使用浏览器打开,更新无需用户参与;
- B; i# A* y4 U5 L1 U7 D) x1 k
1-对联网要求高,离线不能承载太多东西;$ k" N% Z9 m2 B, c1 w# Z8 c' [8 B
2-功能有限;
  }! p4 x: l' v3-运行速度慢,页面不能承载太多东西;* g( D, `5 y# N  f
4-图片和动画支持性不高;$ ?& X( g4 K& b! G# |4 W! O% \: m
5-体验感不如原生和混合App;7 Y: P3 _2 @0 b
混合版应用 (Hybrid
# f8 l  X! ?; D% o2 }. B  App)" s; Z+ G. G2 x3 q1 S4 i+ }
既利用了原生APP开发技术还利用了HTML5开发技术,是原生和HTML5技术的混合应用。混合比例不限。目前市面上流行的小程序和快应用就是采用Hybrid技术。) p- |, }9 t. r( s/ X0 T
1-运行速度比Web  App快,可调用部分设备端口;
# H3 w7 F' u5 o, s% U2-开发周期比原生App短;& M  C$ W) q/ e( \# b. P; t3 x
3-可以跨平台,Android和ios不需要单独的开发;
+ j: ^+ N( w, u, K# n. Y8 q. g& P4-免安装,打开就能用,更新无需用户参与;3 D" K. x% e7 P. q. G
1-功能接口受限于原生App的支持程度;% u5 G! ]+ V) g* E5 Q. |
2-体验感优于Web App,但差于原生App;1 u! K; @6 y/ S' R( t8 g

$ \- r/ l' t) y( O0 W        
0 H: z' s* v0 I0 E% [7 b# E; c, f* L
$ f5 v* c$ V3 G$ ?1 s2 O2-why:需要哪些知识储备?) X) F$ x& l& G: u
App开发的流程大概分为几个阶段:需求分析-->架构设计-->后端开发-->前端开发-->测试。每个阶段都需要相应的知识。( R9 m" R6 X1 g3 x- U. R% R
; A4 Y  l/ P* D, K- G) v1 P
/ _  a; Y+ N+ |* q* g+ @
需求分析:
  V' m) f' b$ @需求分析也称为软件需求分析,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。这是软件工程专业的相关知识。
* m, V: I* W* c3 L% ^( i& [" Y* T
( Z* A; ?- B: s( r

* {$ G9 N- V2 [$ ]0 j" M5 w2 ~. }, Y* k. q- r- a, J8 B2 D) P
架构设计:6 q( W9 f" @, o- k, Q
需要架构设计是将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构设计是软件设计过程的早期阶段,它把需求分析和设计流程连接在一起。需要对开发技术(包括前端和后端)有深入的了解。
0 i7 u0 ~6 O6 l
4 y. h5 N( l8 m0 f5 f% j/ Y
# {6 S! v; l) E' U6 [6 v5 r! U+ k
5 ?1 y, ?# s' w3 e" }
后端开发:
6 H. W+ z! X% \5 E后端是指服务器相关的统称,包含服务器、数据库。! d7 H, R5 _# r- t6 k. S2 a4 a
服务器搭建与开发,常用语言和工具:Nginx、Java、Shell、Python、PHP、node.js等;6 G! v$ I# X9 h4 J/ G8 W# z1 P
数据库开发,常用知识:关系型数据库mySQL,非关系型数据库MongoDB;, ?/ K( F1 @& c/ z3 S4 p" C
% R% i2 m0 Z; I) a
+ e/ h1 G' y5 ~, A

; |7 J" @" `/ Y  i8 k前端开发:
* n) ]( t( b4 M6 |前端是手机端的开发,包括UI界面、响应逻辑、数据的请求。( B) O3 @: m9 ~+ ~  K! b
前端三大基础技术:HTML5、CSS、JavaScript;8 c1 F- ?, y9 l* q
流行的前端框架:Angular、vue.js、React;0 j) I) @7 I1 x* i& q
原生App开发语言:Swift(iOS平台);Java(Android平台);
  @# V6 c5 V9 c9 q1 ]4 ]  t* x: @. t; M4 @: t+ o) V4 T% p

/ B( I8 H/ t, x& G; o3 w0 Q! n9 M2 Y! K

3 D* A) z6 m6 _$ s) _) x3 k测试:' ?! O* j, \+ q& x6 [
包括功能测试、性能测试、压力测试等。) }! ^% e: ?7 I
2 @  i6 q/ k0 J  p5 J8 s6 G
3 c- O& b* \6 c- Y

  M- G! q8 H4 n0 X3-how:怎么做?需要用到什么工具?# E. j# O* Y  V4 f3 a
看书、看视频教程、看开发文档、模仿实践;! U+ A; l1 Z* N
基本上各种语言都有各自的开发工具(IDE),学到哪个就用哪个。
/ b4 b( e0 q+ e' |' B# u
4 k/ h# ]1 \4 s! _4-how good:有没有简单的方法实现?$ V: d/ O; ?, o( t6 V4 m: Y7 v8 i
随着了解的越深入,越发现这个事情没有想象中那么简单。这是一个系统工程,涉及太多的知识,需要不同岗位的人配合,就好比开发一台设备,需要机械工程师、电气工程师、工艺工程师、采购工程师等一起合作才能完成。( R; n( d3 r/ N8 F; L* h" z; j
难道一个人就真的不可能完成?我开始动摇,直到后来看到了“全栈开发”这个名词,眼前一亮,信心立马恢复。全栈开发是指一个人搞掂前端和后端。随着技术的发展,市面上有很多现成的框架,借助这些框架来实现一个小项目这个可能还是有的。
/ b6 F: \7 A5 q2 p1 ]1 l9 ~- J- p- S! i$ @1 e# y
那么接下来就是确定开发的模式:
' m1 Y% q. Q0 e5 j# J" [( i首先排除开发原生应用,难度实在太大,不符合我的情况。只能在H5和Hybrid之间选择,H5是门槛最低的,但我预计后期会用到手机摄像头和话筒这些硬件,这些是H5的劣势。那么目前看来Hybrid是最合适的选择,而且此时微信小程序开始火起来,各种开发教程和案例都丰富起来。于是,我最终确定做微信小程序。后来,微信小程序推出了云开发,妈呀,我感动得快要哭了,腾讯真的太照顾我了,这样又帮我解决了后端开发的问题。
. T  b7 p8 j) N( ^3 ^( ?! e关于开发的问题,确定开发模式后,剩下的就是恶补微信小程序的相关知识。
8 i3 Z, S7 e/ M: C2 t
* z$ N8 z& g. r, ]9 s第二个问题是APP应该具备什么功能才能用来学英语?后面继续记录。。。。; F  S* ?- G) z2 A# z. M

+ p; c" m8 G' d& ]

评分

参与人数 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 | 只看该作者
确定开发微信小程序后,那后面所有的工作就以这个展开。4 ^- ^: c0 K( d# P5 y7 o( h2 v
8 n' j# e5 ^$ I" v* C1 A1 C! [& X9 f
我把这事分成三个步骤:
; H" R6 ?# Q! w* ?  }1-先学习前端三大基础知识:HTML5、CSS、JavaScript,了解vue.js;
  j! W) n; h- M  q+ d2-学习小程序的开发教材及案例:官方的开发文档和教程、优秀大咖的课程;. ^: j* A! X, `- b7 b7 X( p
3-以实际需求为驱动,开始写程序,边写边学;
. ]' e7 f/ `" c$ S7 a
9 J- F9 r' l# j; b0 J! D8 S/ C- }: K1 D7 {$ M# L/ m
学习过程中找了很多学习资料,经过学习和筛选,我认为最有用的有以下几个,如果各位社友感兴趣可以去了解:3 ~" w4 F6 S/ W6 Q1 ]
1-菜鸟教程:
4 U/ g. `7 [, B3 r此网站有详细的教程资料,包括前端三大技术、服务器、数据库等,非常详细。
) w* b+ z( a. g" c5 w3 I+ `7 ?( t6 d" \: k# o* C" r
* O0 l8 u6 G$ }  N
2-官方文档:  k3 o  |: Q1 V& y/ z4 G
小程序的官方开发文档,可以先粗略阅读一遍,在写代码时再查找具体的组件或者API。
5 x- ^7 H& }! r# V! M- B4 j
1 c; U- F/ s, N4 i/ ?: _. @; ^7 w$ z8 L$ \8 t* q7 |. y
3-官方视频教程:
5 a% K2 p% L9 r4 e0 A2 c# t分类三个阶段,包括小程序开发、小程序云开发、小程序项目,可以反复观看。
4 l8 ?- X% e. |! _6 Y" X7 m6 g8 A
6 u8 Z1 s  s" [* R+ r7 C. S, f+ _( a6 h+ c: J  k9 _2 ~( `
4-CSDN:
: A4 R2 p+ H7 Q, a9 _6 {, R一个程序员的必威体育网址,只要遇到疑问,90%可以在这个地方找到答案。
, s; r( {5 z, G  ^4 u$ Q7 J( ~' g# m8 U6 o
' I: y" G0 o3 K8 b" F
5-B站:
% G9 j5 G  p3 b: r5 s一个包罗万有的必威体育网址,有大量的视频教程,包括HTML5、CSS、JavaScript、小程序开发。6 \1 O* K- p9 l# n9 h$ g

8 c# S4 h5 i* g0 l- f+ u( D( @$ x备注:由于我没有权限发表包含URL地址的信息,所以无法贴上链接。以上的资料都可以百度找到。如果实在找不到,有兴趣的可以私信我。. A: n7 A8 i1 H2 |% a# u1 w0 b2 T
学习过程中,也走过一些弯路:
, f* V  g. y/ p) k1- APICloud,一个低代码开发平台,需要购买他的资源,私房钱不多,放弃;2 u$ M1 y4 f) m/ E
2- DCloud,一个可以一次开发,多端覆盖的开发框架,就自己一个人使用,就一个平台,不需要多端覆盖,放弃;: W1 J  ]* D. r4 M$ V

# Q. K5 H$ ~% }9 l  g" I7 H( V; c$ g9 p2 r; L6 |

点评

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
. ~+ D% M. W2 `5 }0 t楼主牛批,期待更新

3 b8 @! S8 p+ E" m" l谢谢!不牛批,本人普通技术一枚,就是兴趣广一点,有一点点动手能力。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-3 16:34 , Processed in 0.056577 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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