|
開個貼子,記錄這件有意思的事情!: A& D. X+ y. \& z; m
# ]% E6 g- @- ^9 o! o& P5 m) R3 @- m
背景:
: ]$ I" ^; O& t9 h6 H, t0 w; R9 b沖突一:想學(xué)習(xí),卻找不到好工具
8 {: z8 F- m9 f( |9 t& o今年春節(jié)遇上了疫情,我宅在家里,處于“失業(yè)”狀態(tài),作為有志青年,不想每天刷劇、刷抖音,想著裝一下B,提高一下英語水平。
$ \, Q! J$ o7 Q* h. L4 [. i& y* V* d0 f
于是,在朋友圈瘋狂的廣告洗腦下,我下載了幾個當(dāng)時很火的App,很認真地投入學(xué)習(xí)。
" W% G+ G) ?( E, o# W' z: ?2 `然并卵,使用了一段時間之后,發(fā)現(xiàn)效果不太理想:首先,這些App記單詞過程太過于復(fù)雜,很多都提供了多種助記的方法,除了常規(guī)的詞根詞綴、聯(lián)想記憶以外,還有圖片記憶、電影情節(jié)記憶、思維導(dǎo)圖記憶等,這樣的好處是當(dāng)時很容易記住單詞,壞處就是忘得也很容易,大量的助記材料無形中增加了記憶的工作量,增加了記憶的負擔(dān),從而偏離了記單詞的初衷;其次,練聽力的功能普遍都是提供新概念英語或者VOA、BBC、TED等聽力材料,對于基礎(chǔ)不好的我,感覺在聽天書;
# T5 _3 B& U7 C# a" p: M難道就沒有一款適合我這種菜鳥的App嗎?* j$ O5 m! ~: d+ O5 T# @
一個大膽的想法出現(xiàn)在我腦海里:自己開發(fā)一個App。3 k' f' ~3 W% Z+ ~+ O' w. D
a$ F: s+ }0 G! d/ m2 ^沖突二:計劃自己開發(fā),卻不是專業(yè)人士( B- h. _: s+ P) d
為什么說這個想法大膽呢?因為我雖然是一名搞技術(shù)的工程師,但僅限于機械行業(yè)的。我所接受的完整編程教育僅是在大學(xué)期間的《C語言程序設(shè)計》。所以對事情一無所知,嚴(yán)重缺乏相關(guān)知識儲備,除了大膽,我也不知道怎么來形容這個想法了。
, |7 B4 X8 w2 m! M9 P8 G但有句古話叫無知者無畏,而且作為理工男,我始終相信任何問題都有辦法解決,只要你能夠把問題描述得足夠清楚。! n, r" @' E2 H7 c2 @% Q
因此這個想法一出現(xiàn),我立馬覺得應(yīng)該去試試,結(jié)果怎樣不重要,起碼先行動起來。
1 ^! S3 t; ~/ G! i7 S9 w. o T) j3 J# H& Q
行動:# U' r" A$ ^* V3 n3 G
先把問題描述清楚,我的目標(biāo)是開發(fā)一個學(xué)英語的App,這款A(yù)pp應(yīng)該功能簡單,不能太過復(fù)雜。把它分解成兩個問題:' K9 t1 I, \& k( S2 e! \. E
1-怎樣開發(fā)一個App?
) q# B% S* Q; _4 C" Q2-應(yīng)該具備什么功能才能用來學(xué)英語?3 S# M* y. ?+ p
2 O( K) C, o. N+ d
先來思考第一個問題:怎么開發(fā)一個App?0 j; [! i8 c7 C" f
我把問題進行細分:
/ y7 ^* _5 f `$ c- d% o1 a1- 什么是App?
- k/ @. B5 U; [) Z3 P2- 需要哪些知識儲備?9 r; A- E/ N8 w1 M
3- 如何做?需要什么工具?
5 {, K2 g- | N( W3 F4 V4- 有沒有簡單的方法實現(xiàn)?. Q/ g/ Q9 n% D; |% c
經(jīng)過一番搜索、學(xué)習(xí)、請教、記錄和總結(jié),這些問題漸漸有了答案。* N8 D+ |" z- c- C6 ^: N
5 L9 O9 S# u/ T) f3 ^4 m% c1-what:什么是App?
]; d! T3 k |. xApp是應(yīng)用application的簡稱,我這里說的App是指手機端的App。
; r% B7 b% }* D8 J根據(jù)開發(fā)模式,目前的手機App可分為3種類型:原生、H5、Hybrid。它們有各自的優(yōu)劣勢:" j( q8 e) ]7 d
類別
) A, E3 D0 V( L1 L | 概述0 U2 r# Z+ V |2 i
| 優(yōu)勢6 f" l0 j4 U& ~( [8 u( x6 k3 |) @- [" m
| 劣勢2 v1 Y4 k- N) C, M8 g& z+ m/ \
| 原生應(yīng)用 (Native
$ j6 @0 x& q' ~; N( c* K0 I App)
F, F$ q* \$ l: O7 D- R | 原生App就是利用Andriod、ios平臺官方的開發(fā)語言、開發(fā)類庫、工具進行開發(fā)。比如安卓的java語言,ios的Swift語言。在應(yīng)用性能上和交互體驗上應(yīng)該是最好的.
' p5 ?# {/ `, n+ }/ O( n6 ~ | 1-可以訪問手機所有功能、可實現(xiàn)功能最齊全;
/ w# m0 B: p8 l$ d$ S6 W( a( Q: ~2-運行速度快、性能高,絕佳的用戶體驗;
( C& \4 x7 E, ]6 ?3-支持大量圖形和動畫。不卡,反應(yīng)快;! l$ t' B a! ?' P$ L$ { o; o
4-比較快捷的使用設(shè)備端提供的接口,處理速度上有優(yōu)勢;
6 e; G* ~$ q$ J; e/ D6 G- [ | 1-開發(fā)成本高、周期長,Android和ios都需要單獨的開發(fā);
7 D F% x+ u. U( e7 G w2-更新版本需要重新下載安裝包;8 o4 r2 a# l. u
| H5應(yīng)用 (Web App): S8 o6 o- u" Z& W- [7 s+ B
| 用普通web開發(fā)語言開發(fā)的,通過瀏覽器運行。9 \( P# t# H+ Y8 I
| 1-使用web語言,開發(fā)門檻低、周期短;
6 N- c; C( s# _7 ` a N6 _7 _2-支持多種瀏覽器,兼容性好; T* e& q) B, E9 ^6 i8 {' u- \3 x
3-免安裝,使用瀏覽器打開,更新無需用戶參與;, c: Z/ d; z" }* `3 [# A4 k
| 1-對聯(lián)網(wǎng)要求高,離線不能承載太多東西;
5 S H/ e g' f$ f9 B$ B) L2-功能有限;& E4 C' T; S) J+ ]1 P4 f
3-運行速度慢,頁面不能承載太多東西;0 z! Z' z5 m: a+ e; ~
4-圖片和動畫支持性不高;
' r% g' M# m& A, S5 N8 m5-體驗感不如原生和混合App;; ~8 \. j7 \9 L( P8 b; ~
| 混合版應(yīng)用 (Hybrid
# \" `: k) K R9 N6 ^1 O6 d App)
8 R" a/ _, j v) C$ L3 v8 J6 u | 既利用了原生APP開發(fā)技術(shù)還利用了HTML5開發(fā)技術(shù),是原生和HTML5技術(shù)的混合應(yīng)用?;旌媳壤幌?。目前市面上流行的小程序和快應(yīng)用就是采用Hybrid技術(shù)。
+ n( c, o5 p3 l' s% M, _9 p | 1-運行速度比Web App快,可調(diào)用部分設(shè)備端口;
& P! @/ e7 A! Y; {2-開發(fā)周期比原生App短;
4 E, ~' v/ R1 P/ S* `3-可以跨平臺,Android和ios不需要單獨的開發(fā);
% s2 g" D. w) p+ f8 b) y z4-免安裝,打開就能用,更新無需用戶參與;
& W/ {$ C0 X' w: o9 r( \$ p+ o3 H | 1-功能接口受限于原生App的支持程度; z3 N; h1 ]5 A% d" g2 w* A
2-體驗感優(yōu)于Web App,但差于原生App;
8 B- u6 P! N+ e' W% ~, y | 6 J: |4 f/ X; w
# k$ ^2 a1 X) S* [' v& ~1 i8 b' a3 `! k+ k9 T O
2-why:需要哪些知識儲備?
$ N3 ]3 e; u# n+ D4 iApp開發(fā)的流程大概分為幾個階段:需求分析-->架構(gòu)設(shè)計-->后端開發(fā)-->前端開發(fā)-->測試。每個階段都需要相應(yīng)的知識。
8 i$ }% y& P3 y% a6 Y8 t/ @ {# L2 _. G# J
6 X3 j$ t$ m6 i# U( P6 A需求分析:0 v! a$ i1 |4 X5 s1 g, |4 T |
需求分析也稱為軟件需求分析,是開發(fā)人員經(jīng)過深入細致的調(diào)研和分析,準(zhǔn)確理解用戶和項目的功能、性能、可靠性等具體要求,將用戶非形式的需求表述轉(zhuǎn)化為完整的需求定義,從而確定系統(tǒng)必須做什么的過程。這是軟件工程專業(yè)的相關(guān)知識。9 l7 B/ t+ H% l$ N* v
1 V4 n% @7 W$ |# K& o5 N
0 r* j' @: h! D
. P8 A9 h, y. K架構(gòu)設(shè)計:; N& [7 s3 O5 X9 I
需要架構(gòu)設(shè)計是將客戶的需求轉(zhuǎn)換為規(guī)范的開發(fā)計劃及文本,并制定這個項目的總體架構(gòu),指導(dǎo)整個開發(fā)團隊完成這個計劃。架構(gòu)設(shè)計是軟件設(shè)計過程的早期階段,它把需求分析和設(shè)計流程連接在一起。需要對開發(fā)技術(shù)(包括前端和后端)有深入的了解。
0 ?- U! o, n9 d- t& V" d0 ~. C: q% l# }- C6 Q0 ~7 D8 M- f8 B
- O. w, v3 g7 D! M
! |2 v; Z! @: k9 V后端開發(fā):
: v( g- ~: V. Y9 K7 C后端是指服務(wù)器相關(guān)的統(tǒng)稱,包含服務(wù)器、數(shù)據(jù)庫。6 S4 n m8 s/ x& ^$ C7 x0 Y) D
服務(wù)器搭建與開發(fā),常用語言和工具:Nginx、Java、Shell、Python、PHP、node.js等;, r5 }8 |# K9 A2 V* D
數(shù)據(jù)庫開發(fā),常用知識:關(guān)系型數(shù)據(jù)庫mySQL,非關(guān)系型數(shù)據(jù)庫MongoDB;
% n y0 }$ L3 `* ]) l/ [* m x9 t
: R' V* V& g$ Q+ j( X9 K
' U* x6 I u$ \$ r1 |
) ^( _- _7 D$ s3 p' r) d$ Z0 z6 C前端開發(fā):! ~$ T8 y5 ?% E, H
前端是手機端的開發(fā),包括UI界面、響應(yīng)邏輯、數(shù)據(jù)的請求。4 o) I# w* s+ X% i& b
前端三大基礎(chǔ)技術(shù):HTML5、CSS、JavaScript;3 K/ }- z E4 x9 F% y
流行的前端框架:Angular、vue.js、React;9 O6 O# g5 _6 R$ O8 T
原生App開發(fā)語言:Swift(iOS平臺);Java(Android平臺);
, S* E9 C3 {6 b$ ^4 v- h' I
1 u3 U; a6 j9 J# R2 v
4 F, @" g* F: j7 H& m6 H
* L3 |$ h% Q" b5 e( ?7 G" V; b1 I
測試:1 }7 M. u* t& [7 F, |
包括功能測試、性能測試、壓力測試等。- C: @/ l( Z% Z# L* H3 w
4 F. G+ } x, y2 I$ p0 n0 J' [ Z# N, L6 |0 ^/ ?* d
* w% k. z! [) ~# \! M. [0 r
3-how:怎么做?需要用到什么工具?: ?9 t" _% @$ M: b& J) w8 s( g4 T
看書、看視頻教程、看開發(fā)文檔、模仿實踐;! _, t: l3 ~& E
基本上各種語言都有各自的開發(fā)工具(IDE),學(xué)到哪個就用哪個。
8 R) a0 q8 Z6 E# I( }
' r W! H7 S% Z; ]4-how good:有沒有簡單的方法實現(xiàn)?, _( p I4 D( ~# M" Z
隨著了解的越深入,越發(fā)現(xiàn)這個事情沒有想象中那么簡單。這是一個系統(tǒng)工程,涉及太多的知識,需要不同崗位的人配合,就好比開發(fā)一臺設(shè)備,需要機械工程師、電氣工程師、工藝工程師、采購工程師等一起合作才能完成。' D0 X& R- L1 V+ z9 |) z
難道一個人就真的不可能完成?我開始動搖,直到后來看到了“全棧開發(fā)”這個名詞,眼前一亮,信心立馬恢復(fù)。全棧開發(fā)是指一個人搞掂前端和后端。隨著技術(shù)的發(fā)展,市面上有很多現(xiàn)成的框架,借助這些框架來實現(xiàn)一個小項目這個可能還是有的。" g" q+ C! t8 o: Y9 c# A+ x) |0 ?
! S7 I: G$ U. z& d& p" L8 C' m' b
那么接下來就是確定開發(fā)的模式:
7 D8 z* i0 m$ Z# R6 N8 k首先排除開發(fā)原生應(yīng)用,難度實在太大,不符合我的情況。只能在H5和Hybrid之間選擇,H5是門檻最低的,但我預(yù)計后期會用到手機攝像頭和話筒這些硬件,這些是H5的劣勢。那么目前看來Hybrid是最合適的選擇,而且此時微信小程序開始火起來,各種開發(fā)教程和案例都豐富起來。于是,我最終確定做微信小程序。后來,微信小程序推出了云開發(fā),媽呀,我感動得快要哭了,騰訊真的太照顧我了,這樣又幫我解決了后端開發(fā)的問題。+ I: ~, D6 C, q @$ k% O
關(guān)于開發(fā)的問題,確定開發(fā)模式后,剩下的就是惡補微信小程序的相關(guān)知識。* P+ S: M! z4 n4 [ s
! F/ y9 d9 P* g+ ~2 U7 h第二個問題是APP應(yīng)該具備什么功能才能用來學(xué)英語?后面繼續(xù)記錄。。。。
2 S: ~! o: L5 C" d$ v6 ]3 Z5 j" w0 Z S8 j! W' e+ x
|
評分
-
查看全部評分
|