6月24日參加infoq舉辦的GMTC移動技術(shù)大會,并做了一場演講,還參加了晚上的Swift3.0閉門交流會議,受益很多。
6月24日上午是全體大會,首先是手機(jī)淘寶的長恭,微信的趙原,京東的王永杰做了移動未來開發(fā)展望的開場演講。然后是Facebook早期員工覃超做了Facebook App演進(jìn)過程的演講,主要介紹了Facebook App各個版本的技術(shù)實(shí)現(xiàn)和經(jīng)驗(yàn)總結(jié),印象比較深的有下面幾點(diǎn):要選擇對用戶優(yōu)化的技術(shù)而不是對開發(fā)團(tuán)隊優(yōu)化的技術(shù);現(xiàn)在FacebookApp已經(jīng)是通過appurl scheme跳轉(zhuǎn)的組件化項(xiàng)目,主要是iOS原生技術(shù)實(shí)現(xiàn),F(xiàn)acebook已經(jīng)有1000多iOS工程師,整個項(xiàng)目只有一個codebase,使用Mercurial做版本管理,git已經(jīng)太卡了,使用Buck編譯項(xiàng)目;新技術(shù)的接受曲線,到達(dá)高潮后會有一個低谷,然后走向正常的發(fā)展階段。
然后是Square的邵震的演講Mobile Growth的方法和實(shí)踐,是近幾年流行的增長黑客相關(guān)的實(shí)踐,介紹了Growth實(shí)踐中的一些心得,最重要的是留存,工程師驅(qū)動,通過高層戰(zhàn)略推動底層執(zhí)行。然后介紹了一些A/B Testing系統(tǒng)的實(shí)踐。Deep Link的趨勢和使用,就是通過一些網(wǎng)頁鏈接進(jìn)入App。
下午的演講分三個分會場,我主要參加了Swift分會場和插件化分會場。Swift分會場第一場是傅若愚的Swift函數(shù)式編程,函數(shù)式編程是個不太容易講的話題,主要是涉及的概念比較多,這個演講有比較易懂的方式介紹了函數(shù)式編程。
Swift分會場第二場是我的演講From Java/Android To Swift iOS,主要是分享Android開發(fā)者如何快速上手Swift開發(fā),以及一些Swift項(xiàng)目經(jīng)驗(yàn)和開源框架,還介紹了Swift3.0的一些新特性,感興趣的可以下載ppt看看。
然后去了插件化專場,聽林光亮介紹了Small插件化插件,他主要先分析了Android插件化的各種技術(shù)和插件化框架,然后介紹了small插件化框架的實(shí)現(xiàn)思路和技術(shù)實(shí)現(xiàn)。這個插件化方案我感覺是目前比較合理的,技術(shù)上也比較先進(jìn),希望后面項(xiàng)目能用上。
最后是聚劃算的樸誠介紹聚劃算的Luaview動態(tài)化開發(fā)實(shí)踐,LuaviewSDK提供了一種動態(tài)化能力,適合原生App的某些頁面嵌入動態(tài)內(nèi)容,性能很好,和React Native,weex等插件化方案比較,是一種更輕量的插件化方案。
25日上午參加的是架構(gòu)演進(jìn)專場,第一場是手機(jī)天貓解耦之路,介紹了天貓iOS App演進(jìn)過程和組件化開發(fā)技術(shù),通過BeeHive框架實(shí)現(xiàn)解耦依賴,統(tǒng)跳協(xié)議解耦界面,印象深刻的是活用了Web服務(wù)器的UrlRewrite技術(shù),通過正則表達(dá)式Rewrite URL。
第二場是滴滴李賢輝滴滴iOS組件化優(yōu)化與實(shí)踐。介紹了滴滴iOS App組件化的背景,70個開發(fā)人員,7條業(yè)務(wù)線,70萬代碼。代碼沖突多,發(fā)布困難。介紹了一些組件化的專項(xiàng)技術(shù),業(yè)務(wù)線接入,頁面結(jié)構(gòu),導(dǎo)航管理組件,共享地圖組件,灰度系統(tǒng)apollo等,干貨很多,值得回去仔細(xì)研究學(xué)習(xí)。
上午第三場是iOS遺留代碼重構(gòu),從CoreData遷移到Realm說起。介紹了抽象分支的概念,通過抽象層替換舊代碼模塊。特性開關(guān),4種實(shí)現(xiàn)方式,如后臺服務(wù),ab test框架。通過適配器模式透明支持coredata和RealmDB持久化服務(wù)。最后介紹了Realm的坑,不支持集聯(lián)刪除,不支持多態(tài),難以理解的反向關(guān)聯(lián)。遺留代碼的重構(gòu)確實(shí)是個麻煩的事情,這個演講對iOS項(xiàng)目的重構(gòu)有一定參考價值。
下午參加了性能優(yōu)化專場,第一場是微信葉潤桂的演講《微信客戶端怎樣應(yīng)對弱網(wǎng)絡(luò)》。前面主要介紹介紹了針對TCP/IP協(xié)議的移動網(wǎng)絡(luò)優(yōu)化,介紹了各種算法。然后講解了微信發(fā)圖片協(xié)議合并優(yōu)化,上傳圖片后,由圖片服務(wù)器直接通過內(nèi)網(wǎng)和業(yè)務(wù)服務(wù)器通信。低成本重傳,降低重傳的包大小,或使用流式協(xié)議。漸進(jìn)式圖片,有損上傳和下載。最后安利了后面打算開源的Mars跨平臺開源網(wǎng)絡(luò)組件。
第二場是楊剛的360手機(jī)衛(wèi)士性能優(yōu)化之路,首先介紹了性能優(yōu)化的各種問題,lint和Findbugs,自有代碼檢測工具,基于jenkins平臺的檢測系統(tǒng)。aspectj重寫器,實(shí)現(xiàn)網(wǎng)絡(luò)靜態(tài)埋點(diǎn)的例子。然后介紹了性能監(jiān)控,進(jìn)程的冷熱啟動等。由于360手機(jī)衛(wèi)士總是優(yōu)化手機(jī)殺其他App的進(jìn)程,這兄弟提問環(huán)節(jié)被問的比較郁悶。
最后聽的演講是支付寶App的性能穩(wěn)定性和運(yùn)維實(shí)踐,介紹了支付寶App3個階段的架構(gòu)演進(jìn),性能優(yōu)化實(shí)踐和超級App的運(yùn)維體系介紹。
整個大會大概有30多場演講,很多都是各大公司的實(shí)踐經(jīng)驗(yàn)分享,干貨很多,對我來說幫助比較大的是安卓的插件化和iOS的組件化開發(fā),由于業(yè)務(wù)發(fā)展需要,這些技術(shù)后面需要逐步引入了。