最近連續(xù)帶了2個使用ioinc開發(fā)APP的項目,都是搭建商城類的,遇到了不少重復性問題,這里簡單收錄一下知識點。
為什么移動端開發(fā)一定要使用ionic ? 這個問題在16年的時候做了一些探討,Hbuilder 開發(fā)起來感覺很虛,很久以前用來開發(fā)過一個電視盒子的項目,但是問題較多所以沒有延續(xù);weex(不知道有沒有拼錯),阿里的東西,一直都不喜歡。ionic,doc齊全,插件齊全,經歷過1.x的開發(fā)整體感覺不錯,開發(fā)、打包、運行都能過支撐業(yè)務,開發(fā)語言上手也不難。
環(huán)境搭建
既發(fā)移動端,就肯定必須是上mac,安裝nodejs + ionic +npm, 工具上 webstorm + android studio + xcode 。基本解決了IOS與Android版本的發(fā)布以及一些問題解決。
關機真機調試:
1)IOS 使用xcode 配置apple 開發(fā)者,直接可以build到蘋果手機上。如果涉及推送的需要有開發(fā)者賬戶才可以使用。
2)android , 相對有點繞,先翻墻把相關sdk 下載了,確保從ionic build出來的項目在android studio 上可以成功build,剩下的具體可以參閱? https://blog.csdn.net/u011312237/article/details/72673800 , 按照鏈接的文章操作即可。
切記:華為手機需要設置usb 模式 ,別忘記設置usb模式是傳輸文件,打開usb調試。
NPM 包發(fā)布
做ionic開發(fā),除非你需求不多,很多第三方的插件可以解決你需求,但是很難避免你需要自己開發(fā)一些plugin ,或者改造別人的,然后通過npm包進行管理。
1)注冊npmjs.com 的賬戶
2)在你的項目上 npm init ,一般你在crate 項目的時候都已經做了這個操作
3)npm login?
4)在項目根目錄 執(zhí)行? npm publish
APP 開發(fā)管理架構
首頁 Ionic3 + angular 4 是目前標配,基于typescript 作為開發(fā)語言(感覺代碼更具備可讀性),整個架構上都是屬于前端的,還需要搭配后端接口進行處理。
從管理的角度上,如果一個APP開發(fā)團隊一般都是4-6人(2前端+1設計+2后端+1測試+1產品,土豪團隊請隨意),可以的話最好語言方面都是基于JavaScript的體系來開發(fā),這樣方便團隊進行互補。所以我推薦的是前端熟悉angular 或 vue 的開發(fā),后端熟悉nodejs語言的開發(fā),這個整個開發(fā)團隊大概3個人的配合可以有較高的產出。這里不探討技術的太多細節(jié)問題,例如質疑nodejs性能,以及可用性問題,我?guī)н^不少技術語言的項目,每個語言都有自身的不足與優(yōu)勢。
從0.1 -> 1.0 版本的產品管理,采用的策略:先打基礎設施,再不斷迭代優(yōu)化功能。移動端的開發(fā),90%的情況都是邊做邊變化,本身團隊前期可能有一定的磨合,以及對需求的把握不準,所以不用著急去刷功能,先把基礎的功能點,如底層異常、跳轉、公共部件、第三方登錄、支付等等進行完善儲備,一來給時間產品需求定義以及設計,二來通過簡單的基礎開發(fā)進行磨合。
1.0 -> 2.0 版本,每一次迭代都是對1.0進行重構 + 業(yè)務的迭代,經驗告訴我知道,這個周期不迭代,等著3.0推翻重來。當然我覺得推翻重來也是一個好辦法,畢竟有可能業(yè)務體系都翻天了。所以需要把控未來的方向來預判了。
項目管理工具方面,我極力推薦使用tapd(騰訊系的PM工具,與郵件、企業(yè)微信結合):
需求墻控制整體產品需求的推進:規(guī)劃-實現中-已實現-拒絕
然后每個迭代版本建立一個看板來管理:設計-前端-后端-測試-完成
測試管理直接使用缺陷模塊即可。
整個項目開發(fā)推進中,要熟悉所使用的開發(fā)體系的優(yōu)缺點,在業(yè)務需求過程中設計盡可能避免盲點,以及可以提前攻關一些盲點,避免在中途陷入盲點導致項目delay 。
IONIC 一些常用插件
微信支付、分享,可以使用?https://www.npmjs.com/package/cordova-plugin-wechat-v3?(支持打開與分享小程序等,不斷在維護,我是fork xuli的版本修改的),先去微信開放平臺注冊一個號,認證,然后再添加app提交審核,申請微信支付(微信最近搞得很麻煩)
支付寶使用:cordova-plugin-alipay-v2? , 去b.阿里申請
消息推送:極光推送,https://github.com/jpush/jpush-phonegap-plugin ,與Ionic兼容最好的一個沒有之一。
數據分析:極光數據,https://github.com/jpush/cordova-plugin-janalytics? 或者友盟,如果推送用了極光就一起使用吧。
android 6.0 + 權限問題??https://github.com/NeoLSN/cordova-plugin-android-permissions
暫時這些經常遇到反復出現,其他都是特殊情況特殊處理。但是作為使用Ionic的項目,團隊成員必須或者至少有一個可以自行編寫plugin, 不然遇到一些問題baidu不出來的時候,就捉蝦了。
注意事項:
多看ionic、angular的官網文檔,熟悉知道哪些可以做哪些不可以做,哪些用什么方式去做,不要盲目自己去亂折騰,很多東西其實都有現成的。這個框架其實有點像小程序的開發(fā),其實學會了ionic的開發(fā),小程序或者vue的基本上75%都掌握了。
盡量避免直接頁面修改局部的ionic默認樣式,或者因為一些頁面修改全局樣式,很容易不兼容其他頁面的發(fā)生。
APP開發(fā)不僅僅是客戶端的開發(fā),涉及的有后端的接口,以及與APP內容或業(yè)務相關的運營系統支撐,需要綜合涉設計,需要項目規(guī)劃上一開始就做好。