起因
雖然是個(gè)程序員凳厢,但是從來(lái)沒(méi)做過(guò) Android 和 iOS 應(yīng)用的開發(fā)揍堕。但是一直有一個(gè)想法夷陋,想開發(fā)一個(gè)自己的 App 并且發(fā)布欠拾。
為此胰锌,也做了一些了解,發(fā)布到 Apple App Store 需要開發(fā)者賬號(hào)清蚀,這個(gè)賬號(hào)每年 99 刀匕荸,在這不得不吐槽一句太貴了,還不是終身枷邪,而是每年 99 刀榛搔,尤其對(duì)于我這種非專業(yè) iOS 開發(fā)者來(lái)說(shuō),又沒(méi)那么多應(yīng)用發(fā)布东揣,就有些不值得践惑。所以只能轉(zhuǎn) Android 平臺(tái)了,也了解了一下國(guó)內(nèi)的眾多安卓應(yīng)用市場(chǎng)嘶卧,這里也得吐槽一下尔觉,國(guó)內(nèi)的 Android 市場(chǎng)太混亂了,每家都有一個(gè)芥吟,每家有每家的要求和政策侦铜。但是基本上都是需要軟著的,這個(gè)是沒(méi)辦法繞過(guò)去的钟鸵。所以钉稍,必須要去申請(qǐng)一個(gè)軟著(目前還在申請(qǐng)中)。然后棺耍,國(guó)外的 Android 商店就是 Google Play 了贡未,開發(fā)者賬號(hào)25刀,并且還是終身的(不得不說(shuō)蒙袍,對(duì)于開發(fā)者來(lái)說(shuō)很良心翱÷薄)。這么便宜害幅,我也就申請(qǐng)了一個(gè)消恍,準(zhǔn)備也發(fā)布到 Google Play上。
相識(shí)
去年底的時(shí)候以现,無(wú)意中看到了 Flutter哺哼,它是 Google 開源的 UI 工具包,可以讓開發(fā)者通過(guò)一套代碼庫(kù)叼风,高效的構(gòu)建多平臺(tái)精美應(yīng)用,現(xiàn)在可以說(shuō)是全平臺(tái)支持了棍苹,移動(dòng)无宿、Web、桌面和嵌入式平臺(tái)都支持枢里。真是非常強(qiáng)大啊孽鸡。后邊也一直有關(guān)注和了解蹂午,發(fā)現(xiàn)使用的人也越來(lái)多,我也嘗試了安裝和跑通了官方的 Demo彬碱。Flutter 本身就提供了非常多的漂亮內(nèi)置組件豆胸,讓你即使在沒(méi)有美工設(shè)計(jì)的情況下,程序員自己都能非常方便的設(shè)計(jì)出好看界面巷疼。這就非常適合我這種不會(huì)畫圖和設(shè)計(jì)的程序員了晚胡。而且Flutter 還有很多開源的第三方 Package 包,在這里可以找到各種工具包嚼沿,避免重復(fù)造輪子估盘。
總之,F(xiàn)lutter 給我的感覺(jué)就是很強(qiáng)大骡尽,結(jié)合本身自帶基礎(chǔ)組件和第三方 Package 包遣妥,能夠大大提高開發(fā)者的效率。只是有兩點(diǎn):1攀细、Flutter 使用的是 Dart 語(yǔ)言箫踩,這個(gè)語(yǔ)言比較小眾,不過(guò)有編程基礎(chǔ)的學(xué)起來(lái)非程诽埃快境钟,邊用邊學(xué),基本很快就能上手故河。2吱韭、Dart 代碼的謎之嵌套,代碼可能會(huì)嵌套 n 多層鱼的,在修改的時(shí)候可能會(huì)比較麻煩理盆,不過(guò)使用 AndroidStudio 和 VS Code 編輯器都提供了非常方便的快捷鍵,也基本能解決這個(gè)問(wèn)題凑阶。
開始
我是在這個(gè)十一假期正式開始這個(gè) App 的開發(fā)猿规。都說(shuō)熟悉一門新的框架,從一個(gè) Todolist 開始宙橱。我這次也不例外姨俩,也是一個(gè) Todo 類應(yīng)用。
因?yàn)槲乙蚕胪ㄟ^(guò)這個(gè) App 熟悉整個(gè) Flutter 的框架和一個(gè)完整 App 的開發(fā)流程师郑。所以我給自己的這款 App 確定了以下功能环葵,在確定功能的同時(shí)還要調(diào)研實(shí)現(xiàn)這個(gè)功能需要那些技術(shù)和平臺(tái)支持,比如說(shuō)實(shí)現(xiàn)注冊(cè)和登錄功能宝冕,那就需要有服務(wù)器张遭,自己也沒(méi)寫過(guò)服務(wù)器,所以就找有沒(méi)有提供類似功能支持的平臺(tái)地梨。最后國(guó)內(nèi)我找到了兩家提供支持的平臺(tái) LeanCloud 和 Bmob菊卷,通過(guò)比較最后我選擇了 LeanCloud缔恳,兩家功能差不多(當(dāng)然不止是注冊(cè)登錄功能,還有很多服務(wù))洁闰,我只是根據(jù)我自己的需求選擇了其中一家歉甚。國(guó)外當(dāng)然是首選 Firebase 了,免費(fèi)扑眉,功能強(qiáng)大(可惜國(guó)內(nèi)不支持)纸泄。最后我確定了以下功能和技術(shù)選型:
- 注冊(cè)登錄功能(國(guó)內(nèi) LeanCloud,國(guó)外 Firebase)
- Todo list 功能襟雷,todo 提醒功能
- 筆記本功能
- 主題切換
- 多語(yǔ)言切換
主要就是以上幾個(gè)主要功能刃滓,下面帶你們來(lái)看一下,沒(méi)有美工耸弄,一個(gè)程序員使用 Flutter 能做出來(lái)什么樣的界面咧虎。
登錄
登錄本來(lái)打算實(shí)現(xiàn)郵件密碼登錄和手機(jī)號(hào)驗(yàn)證碼登錄,微信计呈、QQ等第三方登錄砰诵。奈何調(diào)研之后發(fā)現(xiàn),手機(jī)驗(yàn)證碼是需要付費(fèi)的捌显,本人窮屌絲一枚茁彭,無(wú)奈只能放棄手機(jī)驗(yàn)證碼登錄;微信和QQ等第三方登錄大都需要企業(yè)資質(zhì)扶歪,無(wú)奈個(gè)人開發(fā)者也只能放棄(當(dāng)然理肺,如果你確實(shí)需要可以個(gè)人注冊(cè)公司,或者找第三方掛靠)善镰。最后只能使用郵件和密碼登錄了妹萨。國(guó)外也是使用郵件密碼登錄,不過(guò)還接入了 Google 第三登錄(后續(xù)會(huì)加上FB炫欺,Twitter等)乎完,不需要什么資質(zhì)和條件,在這不得不說(shuō)一下品洛,國(guó)外貌似對(duì)個(gè)人開發(fā)者更加友好树姨。
然后就是忘記密碼,通過(guò)郵件重置密碼桥状。下面是截圖:
Todo
Todo 可以創(chuàng)建一個(gè) Todo list 列表帽揪,然后列表里添加具體的 Todo 事項(xiàng),Todo 列表可以收起和展開辅斟,可以為不同的 Todo 列表設(shè)置不同的顏色來(lái)區(qū)分台丛,具體的 Todo 事項(xiàng)可以添加提醒功能。大體就這么多。來(lái)看一下應(yīng)用內(nèi)截圖挽霉。
筆記
可以把一些重要的東西或者內(nèi)容記下來(lái),隨你使用变汪,自己記日記侠坎,寫作文都沒(méi)問(wèn)題。
設(shè)置
最后就是設(shè)置里邊裙盾,可以切換深淺兩種主題实胸,切換不同的語(yǔ)言,還有退出登錄番官。
推薦
在整個(gè)開發(fā)的過(guò)程中我把我用的一些好用的工具和網(wǎng)站推薦給大家庐完。
技術(shù)類:
- Flutter 官網(wǎng)
- Flutter 社區(qū)中文資源
- Flutter 實(shí)戰(zhàn)電子書
- Flutter Dart packages
- LeanCloud 后端云支持
- FlutterFire
美術(shù)類:
最后我要隆重介紹一下這個(gè) AI 設(shè)計(jì)工具:Hotpot ,因?yàn)楝F(xiàn)在上傳 Google Play 需要上傳 Google Play Feature Graphics 和 Screenshots徘熔,也就是一張置頂大圖還有應(yīng)用截圖门躯,但是我又不會(huì) PS ,最后在網(wǎng)上找到這個(gè)工具網(wǎng)站酷师,功能十分強(qiáng)大讶凉,直接網(wǎng)頁(yè)在線設(shè)計(jì),提供了很多模板山孔,我上邊的屏幕截圖就是在這個(gè)網(wǎng)站設(shè)計(jì)的懂讯,是不是很漂亮。通過(guò) Promo code 可以免費(fèi)使用台颠。
這個(gè)還有一個(gè)小插曲褐望,因?yàn)?Promo code 需要去國(guó)外各大社交等網(wǎng)站找,或者在 FB串前,Twitter 分享后獲得瘫里,我有點(diǎn)等不及,所以直接付了 1 美金來(lái)設(shè)計(jì)和下載酪呻,但是設(shè)計(jì)完之后需要連接外網(wǎng)才能保存和下載减宣,結(jié)果就是我的沒(méi)能下載成功,然后我就發(fā)郵件聯(lián)系網(wǎng)站玩荠,后面我們通過(guò)網(wǎng)頁(yè)聊天窗口交流漆腌,我使用我蹩腳的英文,一邊利用翻譯軟件一邊交流阶冈,快到最后解決的時(shí)候發(fā)現(xiàn)了對(duì)方是美籍華人闷尿,懂中文只是不太好,后邊我們果斷使用中文交流了女坑,我還教了他很多說(shuō)中文需要注意的地方填具。最后他幫我下載了設(shè)計(jì)圖,并送了我一個(gè)免費(fèi)七天的無(wú)限下載 code。
總結(jié)
現(xiàn)在國(guó)內(nèi)和國(guó)外的第一個(gè)版本都已經(jīng)開發(fā)完成了劳景,國(guó)外的已經(jīng)發(fā)布到 Google Play誉简,目前正在審核中,貌似現(xiàn)在這個(gè)特殊時(shí)期審核時(shí)間大大加長(zhǎng)了盟广,不知道什么時(shí)候才能過(guò)闷串。國(guó)內(nèi)的還在申請(qǐng)軟著中。不過(guò)我已經(jīng)使用蒲公英內(nèi)測(cè)分發(fā)了筋量,感興趣的小伙伴可以去這里下載安裝:https://www.pgyer.com/JdvS 烹吵,安裝密碼:1111
蒲公英內(nèi)測(cè)每個(gè)版本下載次數(shù)限制為 10 次/天,如果不能下載可以使用百度云下載:
鏈接: https://pan.baidu.com/s/1RyGN3n8ikI3o6HDGIxxNXA 提取碼: zwii
我一個(gè)從來(lái)沒(méi)接觸過(guò)移動(dòng)開發(fā)的人桨武,從十月一開始到今天二十多天肋拔,每天也就利用業(yè)余的一兩個(gè)小時(shí),從學(xué)習(xí)查資料呀酸,調(diào)研技術(shù)凉蜂,選擇平臺(tái),美術(shù)資源等等一個(gè)人搞定七咧≡颈梗可見 Flutter 還是能大大提高開發(fā)者效率的,如果是從事移動(dòng)開發(fā)艾栋,肯定會(huì)比我更快爆存。在這個(gè)過(guò)程我也學(xué)習(xí)了很多,也有很大的收獲蝗砾,最后完成的時(shí)候也有很大的成就感先较,雖然只是一個(gè)簡(jiǎn)單的工具類應(yīng)用。