APP 開發(fā)從 0 到 1(一)需求與準備

背景
在《手把手教你做個人 app》我有說過,開發(fā)一個 APP 很大程度依賴服務端:服務端提供接口數(shù)據(jù),然后 APP 展示;開發(fā)一個 APP,還需要美工協(xié)助切圖。對于以前的我,沒接口,沒美工,照樣可以開發(fā) APP ,可謂 So easy 來形容。
現(xiàn)在的我,依舊一線做著 Android 開發(fā),不過是做著 Android Framework 開發(fā),開始了 996,最近半年更是瘋狂,晚上十一二點下班亦是常態(tài)……我已經(jīng)兩年時間沒有寫 APP 開發(fā)了,然而我還是對 APP 開發(fā)保持了極大的關注,想著萬一以后還會回來做 APP 開發(fā)呢,因此內(nèi)心有個想法,要不要從零做個 APP,維持戰(zhàn)斗力。

APP 開發(fā)有個特點,技術(shù)更新太快,后面新出來的 Kotlin、Flutter 我都有試水,但都沒有實際項目操作,現(xiàn)在大家是不是都在用 Flutter 開發(fā) APP 了吧?從零開發(fā) APP 本想還用 Java 開發(fā),這似乎沒什么挑戰(zhàn)性,還是用 Flutter 玩下吧。
需求
既然是從零開發(fā) APP,問題來了,要做成什么樣子的 APP 呢?好的,產(chǎn)品經(jīng)理即刻上身,現(xiàn)在開發(fā)者社區(qū)質(zhì)量愈發(fā)下降,好的技術(shù)文章愈發(fā)的少,做個 APP,每天精選一篇優(yōu)秀文章,樣式布局跟公眾號一樣就好。
OK,站在項目經(jīng)理角度,這種需求實現(xiàn)方式最好是小程序,但做小程序?qū)ξ壹夹g(shù)積累沒什么幫助,還是用 Flutter 玩吧。
本系列文章面向人員:對 Flutter 開發(fā) Android APP 有興趣,依舊是沒接口,沒美工,一個人做一個項目。
準備
我首先把 Android Studio 升級到 4.0,運行《Flutter 初嘗:從 Java 無縫過渡》例子,發(fā)現(xiàn) Android Studio 根本連不上模擬器,也新建不了項目,報以下錯誤:
Could?not?find?an?option?named?"androidx".?Run?'flutter?-h'?(or?'flutter???-h')?for?available?flutter?commands?and?options.
搜索應該是 Flutter SDK 版本過低導致,本想使用命令flutter upgrade更新 Flutter,又提示:
Waiting?for?another?flutter?command?to?release?the?startup?lock...
解決方案:刪除 Flutter 安裝目錄 /bin/cache 下 lockfile 文件。
使用命令flutter upgrade更新 Flutter 感覺不靠譜,始終沒有進度,干脆去下了最新的,然而下載也不是那么順利,是因為忘記加鏡像,終端運行:
export?PUB_HOSTED_URL=https://pub.flutter-io.cn
export?FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
這時終于有了進度,還是好慢,看到官方有使用清華大學鏡像:
export?PUB_HOSTED_URL=https://mirrors.tuna.tsinghua.edu.cn/dart-pub
export?FLUTTER_STORAGE_BASE_URL=https://mirrors.tuna.tsinghua.edu.cn/flutter
嗯,下載速度起來了。
一切準備就緒,創(chuàng)建項目頁面,卡在一直 Creating Flutter Project,等了好久還是這樣,奶奶的,現(xiàn)在做 APP 開發(fā)已經(jīng)這么費勁了嗎?
哎,創(chuàng)建項目,提示 Creating Flutter Project ,還是網(wǎng)絡問題,最終還是把:
export?PUB_HOSTED_URL=https://mirrors.tuna.tsinghua.edu.cn/dart-pub
export?FLUTTER_STORAGE_BASE_URL=https://mirrors.tuna.tsinghua.edu.cn/flutter
添加到 .bash_profile 文件,問題都得到了解決,新建的項目也能跑起來了。
最后,我還是經(jīng)常遇到:
Waiting?for?another?flutter?command?to?release?the?startup?lock...
原因是不要同時操作兩個 Flutter 終端,或開兩個 Flutter 項目。
OK,準備工作做完了,下篇就是做這個項目需要用哪些技術(shù),首先對技術(shù)進行預研下。
Flutter 技術(shù)交流群
還是建個 Flutter 技術(shù)交流群,方便對 Flutter 有興趣的進行溝通,加我微信,備注“Flutter”,我拉你進群。
