2016移動開發(fā)技術(shù)巡禮

原創(chuàng) 2016-12-27 徐川 移動開發(fā)前線

目錄

前言

平臺篇

iOS平臺

Android平臺

iOS開發(fā)技術(shù)篇

Android開發(fā)技術(shù)篇

跨平臺技術(shù)篇(React Native、Weex暇仲、微信小程序)

熱門行業(yè)技術(shù)篇(直播钓葫、VR/AR)

提示:點(diǎn)擊文末的閱讀原文可查看帶鏈接的版本萧豆。

前言

2017年就要來了茄唐,過去的一年里你是否疏于學(xué)習(xí)凸郑,欠下技術(shù)債呢辜限?如果答案是肯定的蛮位,希望本文能讓你在學(xué)習(xí)上少走一點(diǎn)彎路。

2016年對于移動開發(fā)領(lǐng)域來說是頗受沖擊的一年预吆,Native開發(fā)面臨著React Native龙填、微信小程序等的沖擊,再加上資本寒冬拐叉,想必想找移動開發(fā)初級工作的同學(xué)感受到了一絲涼意岩遗。

2016年對于移動開發(fā)又是頗為精彩的一年,很多公司都把自己最核心的技術(shù)開源分享出來凤瘦,呈現(xiàn)出百花齊放的局面宿礁。在本文里,我將會一一盤點(diǎn)這些技術(shù)蔬芥。

另外梆靖,本文還試圖對2017年的移動技術(shù)做一個(gè)預(yù)測,以及評點(diǎn)某些受爭議的技術(shù)笔诵,需要強(qiáng)調(diào)的是返吻,這些只是試圖為讀者提供看事情的一個(gè)角度,不必盡信乎婿。

平臺篇

iOS平臺

蘋果今年在WWDC上發(fā)布了iOS 10思喊、watchOS 3、macOS Sierra次酌、tvOS四大操作系統(tǒng),并且在每個(gè)操作系統(tǒng)上都有創(chuàng)新舆乔,其中iOS無疑已成為最重要的操作系統(tǒng)岳服,蘋果在大會上宣布開放了三大框架,包括向建筑商開放智能家居平臺HomeKit希俩、向開發(fā)者開放SiriKit和CallKit吊宋,將更多能力開放給開發(fā)者。前兩者由于一些限制颜武,開發(fā)者使用的較少璃搜,而CallKit則將我們向純網(wǎng)絡(luò)電話時(shí)代推進(jìn)了一大步拖吼,同時(shí)開放了用戶期待已久的來電識別功能,目前已有很多App都開始使用該框架推出新功能这吻。

另一個(gè)值得一提的是iMessages吊档,蘋果在WWDC花很大篇幅對它進(jìn)行了介紹,同時(shí)推出了iMessages內(nèi)置的App Store唾糯,關(guān)于它的意義怠硼,后面談微信小程序的時(shí)候再說。

在秋季發(fā)布會上移怯,蘋果發(fā)布了新款MacBook Pro香璃,新加的硬件模塊Touch Bar引起爭議,但也引起了開發(fā)者的興趣舟误,大家都在探索它的新奇玩法葡秒。而且在實(shí)際上手后,大家發(fā)現(xiàn)它沒有想象中的那么不便嵌溢。這件事也告訴我們眯牧,對于沒有接觸過的事物,不要過早下結(jié)論堵腹。

在政策方面今年蘋果有三大改變:

從16年7月1日起炸站,開發(fā)者所提交的應(yīng)用必須能夠支持純IPv6網(wǎng)絡(luò)環(huán)境。IPv4地址告罄已是事實(shí)疚顷,可以說Apple又一次走在了推動新標(biāo)準(zhǔn)的前列旱易。

同樣是7月1日,蘋果規(guī)定在App Store中國區(qū)上架的手游需要通過國家新聞出版廣電總局的審批腿堤,在審核信息中提交游戲版本才可上架阀坏。對于這條,想必大家想吐槽的都吐槽過了笆檀,只能說這條充滿中國特色的新政不是蘋果的鍋忌堂。

最后一個(gè)是蘋果要求應(yīng)用必須在2017年1月1日前支持HTTPS(已延期),最近不少團(tuán)隊(duì)都在忙這事酗洒。全面推行HTTPS士修,有助于保護(hù)手機(jī)用戶的隱私,可以說補(bǔ)全了蘋果手機(jī)的安全短板樱衷。

除了第二個(gè)之外棋嘲,另外兩個(gè)都是進(jìn)步的體現(xiàn),雖然給開發(fā)者帶來了一些麻煩矩桂,但這樣做可以避免將來可能出現(xiàn)的安全隱患和一些問題沸移。

與開發(fā)者有關(guān)的另一個(gè)重頭戲就是Swift,9月13號Swift 3.0正式發(fā)布,Swift 3.0中的一系列變化旨在依照Swift API Design 指南雹锣,通過去除一部分可能被視作遺留下來的Objective-C的內(nèi)容网沾,來清理API。不過并不包含之前傳言的ABI穩(wěn)定蕊爵。

Swift的發(fā)展可以說很穩(wěn)健辉哥,同時(shí)也給人以驚喜。10月25號Swift團(tuán)隊(duì)在官方博客上宣布成立服務(wù)端API工作組在辆,彰顯了Swift向其它平臺擴(kuò)展的野心证薇,在未來Swift也許可以達(dá)成前后端通吃。

關(guān)于Swift的應(yīng)用情況匆篓,國外在開發(fā)iOS App的時(shí)候早已是Swift First浑度,從各種網(wǎng)絡(luò)教程和分享來看,基本都是基于Swift的鸦概。反觀國內(nèi)箩张,Swift只有在部分新業(yè)務(wù)和新團(tuán)隊(duì)才會考慮使用,對于國內(nèi)的超級App來說窗市,由于需要頻繁發(fā)版先慷,同時(shí)很多應(yīng)用使用了基于OC runtime的“黑科技”,使用Swift重寫一部分應(yīng)用不太現(xiàn)實(shí)咨察,這些我們也需要承認(rèn)论熙。但是學(xué)習(xí)Swift從現(xiàn)在就可以開始了。

你可以在這里回顧WWDC的演講視頻和技術(shù)Session摄狱,對于學(xué)習(xí)蘋果新技術(shù)脓诡,這是第一手資料: https://developer.apple.com/videos/wwdc2016/

另外,對于中國市場媒役,蘋果宣布將在北京和深圳成立兩處研發(fā)中心祝谚,用于聚合在中國的工程和運(yùn)營團(tuán)隊(duì),面向中國以及全球的用戶持續(xù)為其產(chǎn)品打造領(lǐng)先的技術(shù)和服務(wù)酣衷。未來我們將可以看到更多的為中國的本地化優(yōu)化交惯,同時(shí)我們也期待蘋果和國內(nèi)工程師有更多的交流。

蘋果平臺2017年預(yù)測

蘋果每年都努力為我們帶來一些驚喜穿仪,要準(zhǔn)確的預(yù)測幾乎是不可能的席爽,這里我大膽的來預(yù)測一下。

過去一年啊片,我們經(jīng)橙看到蘋果軟件質(zhì)量受到詬病,這并奇怪钠龙,因?yàn)樘O果目前要開發(fā)維護(hù)四大操作系統(tǒng),一個(gè)大型IDE,諸多內(nèi)置App(包括重量級的辦公軟件)碴里,甚至還有Apple News沈矿、Apple Music這樣的新業(yè)務(wù),任何一個(gè)公司面臨這樣的情況都有可能力不從心咬腋。在今年蘋果將OS X重新命名為macOS羹膳,與其它幾個(gè)操作系統(tǒng)統(tǒng)一,而據(jù)媒體報(bào)道根竿,蘋果有意將macOS的開發(fā)由iOS團(tuán)隊(duì)負(fù)責(zé)陵像,這意味著macOS有可能并入iOS,成為該系統(tǒng)的一個(gè)分支寇壳。這樣蘋果的重?fù)?dān)會減輕不少醒颖。在2017年的WWDC上很可能宣布進(jìn)一步的情況。

在新平臺和新技術(shù)上壳炎,蘋果可能推出基于VR/AR的新設(shè)備泞歉,或者是一個(gè)新框架。有消息顯示蘋果今年在VR領(lǐng)域有所投入匿辩,并且獲得了VR顯示以及頭顯的專利腰耙。

另外,在人工智能方面铲球,明年蘋果可能會推出新的系統(tǒng)級AI框架挺庞。其實(shí)iOS 10里面已經(jīng)包含了很多AI技術(shù),如語音識別稼病、圖片識別等选侨,Siri的背后更是集人工智能應(yīng)用之大成,Metal和Accelerate框架也提供新的卷積神經(jīng)網(wǎng)絡(luò)API溯饵,但我們還需要一個(gè)應(yīng)用級的框架侵俗。按照人工智能現(xiàn)在的熱潮,可以預(yù)計(jì)明年的WWDC蘋果會重點(diǎn)介紹這方面丰刊。

最后隘谣,關(guān)于Swift 4已經(jīng)確認(rèn)會在明年發(fā)布,Swift的消息其實(shí)相當(dāng)開放啄巧,我們可以在Swift Evolution項(xiàng)目看到它的最新進(jìn)展寻歧。前不久Swift創(chuàng)始人Chris分享了對于Swift 4和Swift 5的規(guī)劃。Swift 4會著重解決開發(fā)者關(guān)心的問題秩仆,以及ABI穩(wěn)定性码泛。蘋果會不會配合著來一波推廣呢,我覺得很有可能澄耍。

Android平臺

今年Android新版本7.0的出現(xiàn)要比往年早一些噪珊,在IO大會前兩個(gè)月就發(fā)布了開發(fā)者預(yù)覽版晌缘,與此同時(shí)還推出了Android測試版計(jì)劃,學(xué)習(xí)微軟的Windows Insider痢站,讓用戶也能提前體驗(yàn)最新版系統(tǒng)磷箕。新系統(tǒng)最受歡迎的新功能包括Doze模式和增強(qiáng)的通知中心。

與Android相關(guān)的平臺今年也獲得更新阵难,包括Android Wear 2.0岳枷,能夠獨(dú)立運(yùn)行App;Android Auto呜叫,支持在手機(jī)上運(yùn)行空繁,將手機(jī)變成車載智能系統(tǒng);Android Things朱庆,由之前的物聯(lián)網(wǎng)平臺Brillo更名而來盛泡,。

與開發(fā)者相關(guān)的新特性包括:

新的Interpreter+JIT+AOT編譯器椎工。該編譯器減少了應(yīng)用程序安裝時(shí)間和存儲空間饭于,并在手機(jī)空閑的時(shí)候編譯代碼的熱點(diǎn)部分奸绷,提高性能攻锰。

Vulkan跨平臺的圖形和計(jì)算API。在2015年發(fā)布的Vulkan也終于植入到Android系統(tǒng)中呜笑。

多窗口支持颅痊。還包括分屏殖熟、畫中畫等等。

能免安裝運(yùn)行的Instant Apps斑响,看上去是革命性的菱属,據(jù)分析其原理可能和國內(nèi)正在研究的插件化/沙盒技術(shù)類似,不過到現(xiàn)在也一直處于測試狀態(tài)舰罚。

漸進(jìn)式Web應(yīng)用PWA纽门。這是今年Google重點(diǎn)推廣的一項(xiàng)Mobile Web技術(shù),大幅提升了離線使用营罢、通知等體驗(yàn)赏陵。

在IO大會上還同時(shí)發(fā)布了Android Studio 2.2,它帶來的新特性包括:

將編譯器替換成Google自己開發(fā)的Jack編譯器饲漾,以及配套的工具鏈Jack and Jill.

部分支持Java 8特性蝙搔,包括lamda表達(dá)式,使用這個(gè)需要Jack編譯器考传。

新的布局方式ConstraintLayout和相應(yīng)的可視化編輯器吃型,可以看做是RelativeLayout的增強(qiáng)。它的目標(biāo)是減少布局的層級僚楞,同時(shí)改善布局性能勤晚,還減少了使用RelativeLayout的復(fù)雜性 枉层。

在中國市場方面,Google前不久剛在國內(nèi)舉辦了兩場規(guī)模盛大的開發(fā)者大會赐写。發(fā)布了新的中文版開發(fā)者官網(wǎng)和開發(fā)者博客返干。不過,他們對于Google搜索血淌、Play市場等何時(shí)返回國內(nèi)仍然諱莫如深,從2016年年初就傳言Google返華财剖,然而整個(gè)2016年進(jìn)展也并不大悠夯。

Android平臺2017年預(yù)測

從今年的更新可以看到,Android的發(fā)展也逐漸步入平緩階段躺坟,人們的目光更多的被Google發(fā)布的其它新奇有趣的產(chǎn)品所吸引沦补,比如VR平臺DayDream、智能助手和智能IM應(yīng)用咪橙。有人甚至認(rèn)為Android逐漸被邊緣化夕膀,有可能被新系統(tǒng)所取代,比如前陣子傳言的Andromeda美侦。

不過我想說這種擔(dān)心是多余的产舞,Android仍然是Google最重要的產(chǎn)品之一,并且是其衍生品Android Wear菠剩、Android Auto等系統(tǒng)的基石易猫,所以在近期不太可能有很大的改變。但是我們可以期待底層和工具上的大的創(chuàng)新具壮,如ART運(yùn)行時(shí)准颓、Jack編譯器。

另一個(gè)在明年可能帶來很大改變的技術(shù)是Instant Apps棺妓,但是因?yàn)樗芸赡鼙仨氁蕾嘒MS攘已,在國內(nèi)不太可能使用。但根據(jù)國內(nèi)在這方面的技術(shù)積累怜跑,我相信打造相同技術(shù)規(guī)格样勃、完全兼容的中國版Instant Apps不是難事,說不定明年國內(nèi)手機(jī)廠商會將它作為重點(diǎn)功能進(jìn)行宣講呢妆艘。

最后彤灶,根據(jù)Android新版本的普及速度,明年Android 7.0才會逐步在國內(nèi)推廣開批旺,于是開發(fā)者們終于可以開始學(xué)習(xí)Android 7.0的新技術(shù)了幌陕。

iOS開發(fā)技術(shù)篇

這里只討論純iOS開發(fā)技術(shù),看看今年大家都討論了哪些東西汽煮。

組件化

組件化并不是什么新東西搏熄,事實(shí)上當(dāng)業(yè)務(wù)棚唆、團(tuán)隊(duì)規(guī)模大到一定程度,必然會去尋求模塊化和組件化的方案心例。特別在國內(nèi)存在大量超級App的情況下宵凌,組件化也早已在實(shí)踐中實(shí)施。今年1月份蘑菇街李忠老師在第四屆線下沙龍MDay上分享了蘑菇街組件化的實(shí)踐止后。我邀請他到移動開發(fā)前線社群做了一個(gè)群分享瞎惫,從此開啟了對于這個(gè)話題的討論。

組件化重點(diǎn)是將不同業(yè)務(wù)組件化译株,使不同的業(yè)務(wù)團(tuán)隊(duì)能夠獨(dú)立開發(fā)瓜喇、測試和維護(hù)。而討論的重點(diǎn)在于App內(nèi)部和外部調(diào)用以及頁面跳轉(zhuǎn)歉糜,在蘑菇街分享后乘寒,casa分享了他的看法,部分公司也分享了自己的組件化實(shí)踐匪补。

相關(guān)的討論和分享文章如下:

蘑菇街App的組件化之路

iOS應(yīng)用架構(gòu)談 組件化方案

蘑菇街App的組件化之路·續(xù)

iOS 組件化方案探索

滴滴的組件化實(shí)踐與優(yōu)化

手機(jī)淘寶客戶端架構(gòu)探索實(shí)踐

iOS App組件化開發(fā)實(shí)踐

熱補(bǔ)丁

盡管今年蘋果將App Store上架審核流程加速伞辛,但對于人們的需求來說,審核時(shí)間還是顯得略長夯缺,發(fā)現(xiàn)問題馬上修復(fù)是一個(gè)剛需蚤氏,這在iOS開發(fā)中的體現(xiàn)就是熱補(bǔ)丁。

在之前iOS中的熱補(bǔ)丁開源項(xiàng)目有Wax喳逛,今年隨著前端在移動開發(fā)中的大火瞧捌,JS熱修復(fù)方案火了起來,其中的代表就是JSPatch润文,它在國內(nèi)已經(jīng)取得廣泛應(yīng)用姐呐。另外在熱修復(fù)中,還需要與啟動保護(hù)配合使用典蝌,否則有些無法啟動的應(yīng)用無法修復(fù)曙砂。

而在年底,滴滴發(fā)布了DynamicCocoa骏掀,可以將Objective-C代碼轉(zhuǎn)換到JS鸠澈,然后下發(fā)到JSCope執(zhí)行,用它甚至可以實(shí)現(xiàn)完全動態(tài)化截驮,熱修復(fù)只是它的一個(gè)功能笑陈。該項(xiàng)目計(jì)劃于2017年初開源。

JSPatch成長之路PPT

iOS啟動連續(xù)閃退保護(hù)方案

DynamicCocoa:滴滴 iOS 動態(tài)化方案的誕生與起航

Swift

Swift的重要性已不用多說葵袭,2016年大家對于學(xué)習(xí)Swift的熱情也很高涵妥。我們看到除了一些創(chuàng)業(yè)團(tuán)隊(duì)采用Swift開發(fā)之外,大公司的一些創(chuàng)新業(yè)務(wù)也開始使用Swift開發(fā)坡锡。另外蓬网,Swift在服務(wù)端開始吹響號角窒所,得到官方加持,未來iOS開發(fā)者可以無痛全棧了帆锋。

Swift在今年的主要變化是從2.x升級到3.0吵取,由于是破壞性更新,在遷移時(shí)不免遇到種種問題锯厢,但也不是不能解決皮官,另外相對于遷移,IDE的支持才是更大的問題实辑,很多人吐槽Xcode寫Swift寫著寫著沒有代碼高亮臣疑、沒有函數(shù)提示、崩潰閃退徙菠、編譯耗時(shí)等等,這個(gè)我們也沒什么辦法郁岩,只能期待明年蘋果好好重視一下這個(gè)問題了婿奔。

Swift是一整門語言,技術(shù)點(diǎn)眾多问慎,挑幾篇有代表性的文章:

網(wǎng)易漫畫Swift混編實(shí)踐

ENJOY 工程 Swift 3 適配

適配 Swift 3 的一點(diǎn)小經(jīng)驗(yàn)和坑

另外今年也出了不少Swift的學(xué)習(xí)書籍萍摊,推薦幾本:

《Swift進(jìn)階》Chris Eidhof Airspeed Velocity 著 王巍 譯

《函數(shù)式 Swift》Chris Eidhof Florian Kugler Wouter Swierstra 著 陳聿菡 杜欣 王巍 譯

《Swift面向協(xié)議編程》 陳剛 編著

響應(yīng)式編程/函數(shù)式編程/FRP

函數(shù)響應(yīng)式編程在2015年就是一個(gè)很火的話題,當(dāng)時(shí)主要討論的是ReactiveCocoa如叼,隨著Swift逐漸普及的大趨勢冰木,以及Rx概念在其它語言中開始流行,RxSwift異軍突起笼恰,受到了一定關(guān)注踊沸。

由于響應(yīng)式和函數(shù)式編程在團(tuán)隊(duì)中推廣使用有一定難度,因此關(guān)于兩者的布道不能停社证,相信明年還會有更多的分享逼龟。

美團(tuán)App iOS開發(fā)與FRP

MVVM 與 FRP 編程實(shí)戰(zhàn)演講視頻與PPT

Swift的響應(yīng)式編程革命

是時(shí)候?qū)W習(xí) RxSwift 了

Realm數(shù)據(jù)庫

移動開發(fā)中有多種客戶端數(shù)據(jù)庫可選擇,包括蘋果官方的Core Data追葡,以及經(jīng)典的SQLite腺律,兩者的應(yīng)用都很廣泛。在今年宜肉,一個(gè)創(chuàng)業(yè)公司的數(shù)據(jù)庫產(chǎn)品引起了大家的興趣匀钧,就是Realm,它專為移動端而設(shè)計(jì)谬返,API簡潔方便之斯,有一些友好的特性,因此被大家關(guān)注朱浴。

其實(shí)Realm是一個(gè)跨端的數(shù)據(jù)庫吊圾,在Android平臺也有很多人學(xué)習(xí)和使用达椰。我將之放在iOS下是因?yàn)橛行┤苏J(rèn)為Core Data難用,而Realm是一個(gè)很好的替代项乒。

iOS遺留系統(tǒng)重構(gòu)實(shí)踐 從Core Data到Realm

移動端數(shù)據(jù)庫新王者:realm

手把手教你從Core Data遷移到Realm

Realm數(shù)據(jù)庫 從入門到“放棄”

2017年展望

技術(shù)總是日新月異啰劲,我們不能斷言明年iOS領(lǐng)域會流行什么技術(shù),但有一些線索并不難尋:

動態(tài)化/熱修復(fù)檀何。DynamicCocoa會在明年初開源蝇裤,到時(shí)候又會是一輪討論熱潮。

Swift實(shí)踐/黑科技频鉴。Swift的安全特性讓之前Objective-C runtime里的特技失傳栓辜,這也是很多大型App不愿意采用Swift的原因。一方面我們期待官方會有更多的高級特性放出垛孔,另一方面也期待社區(qū)的突破藕甩。

其它領(lǐng)域技術(shù)的借鑒。在前端周荐、Android開發(fā)中有些好的設(shè)計(jì)和理念狭莱,可以將之借鑒到iOS平臺,比如Redux概作、Android中的Layout腋妙、資源設(shè)計(jì)。在今年其實(shí)有一些討論和開源項(xiàng)目出現(xiàn)讯榕,但它們到底能帶來多少收益骤素,有沒有最佳實(shí)踐,這是明年我會關(guān)注的一個(gè)話題愚屁。

HTTP/2和Protobuf济竹,今年蘋果在網(wǎng)絡(luò)上動作很大,并且都是強(qiáng)制性的霎槐,開發(fā)者必須跟進(jìn)规辱,明年蘋果是否還有更多的動作,以及在網(wǎng)絡(luò)上的新玩法HTTP/2和Protobuf栽燕,我相信會有不少團(tuán)隊(duì)去探索和實(shí)踐罕袋。

Android開發(fā)技術(shù)篇

2016對于Android開發(fā)來說是非常精彩的一年,黑科技頻發(fā)碍岔,我們可以確定的說在Android應(yīng)用層開發(fā)方面我們已經(jīng)走在了世界前面浴讯。然而,其實(shí)很多黑科技都是形勢所逼蔼啦,并且其中一些和Google的官方政策相違背榆纽,這是目前熱火的表象下的隱憂。

插件化

從去年下半年開始,Android插件化開始進(jìn)入人們的視野奈籽,到今年饥侵,開源和分享開始爆發(fā),插件化可以說是Android開發(fā)高級技術(shù)的集大成者衣屏,要掌握它需要對Android系統(tǒng)框架躏升、App運(yùn)行機(jī)制等足夠了解,因此成為很多開發(fā)者追求的目標(biāo)狼忱。

但是回過頭來想一下膨疏,插件化的適用場景其實(shí)有限,多用于頭部的超級應(yīng)用钻弄,一般的中小型App沒有必要適用佃却,所以也沒有必要盲目追求新技術(shù)。

插件化發(fā)展到后來窘俺,基本都開始追求免安裝運(yùn)行App饲帅,也就是沙盒/雙開,在這方面我們也有一些商業(yè)應(yīng)用出現(xiàn)瘤泪,以及開源項(xiàng)目洒闸。

這里就推薦一些開源項(xiàng)目:

DynamicLoadApk 比較早的一款插件化項(xiàng)目,任玉剛等研發(fā)均芽。

DroidPlugin 360手機(jī)助手推出的插件化項(xiàng)目。

VirtualApp 天才少年Lody推出的Android應(yīng)用雙開項(xiàng)目单鹿。

Small? wequick推出的開源項(xiàng)目掀宋,包括Android和iOS雙平臺(iOS平臺受限)。

DynamicAPK 攜程出品的插件化框架仲锄,介紹見此劲妙。

VirtualAPK,滴滴出行推出的插件化項(xiàng)目儒喊,尚未開源镣奋,介紹見此。

熱補(bǔ)丁

插件化并不是所有應(yīng)用都需要怀愧,但是熱修復(fù)卻基本是正式的項(xiàng)目都想要的侨颈。熱補(bǔ)丁與插件化的不同點(diǎn)在于,熱補(bǔ)丁的關(guān)注點(diǎn)在對應(yīng)用進(jìn)行方法級的替換以達(dá)成修復(fù)芯义。2016年Android的熱修復(fù)取得了非常大的進(jìn)展哈垢,不但有多家公司分享、開源了自己的熱修復(fù)項(xiàng)目扛拨,而且還催生了商業(yè)服務(wù)耘分。

這里就為大家盤點(diǎn)一下今年都出現(xiàn)了哪些熱修復(fù)項(xiàng)目:

AndFix,阿里推出的開源項(xiàng)目,并且在其基礎(chǔ)之上衍生了商業(yè)服務(wù)求泰。之前阿里還推出一個(gè)Dexposed央渣,但由于一些問題已停止維護(hù)。

Tinker渴频,微信推出的開源項(xiàng)目芽丹,在年中宣布要開源時(shí)就引起了廣泛關(guān)注。

Amigo枉氮,餓了么推出的開源項(xiàng)目志衍。

Qzone超級補(bǔ)丁,暫未開源聊替,演講視頻和PPT見此楼肪,社區(qū)有人根據(jù)其原理研發(fā)了Nuwa并開源,現(xiàn)已停止維護(hù)惹悄。

QFix春叫,手Q的熱補(bǔ)丁項(xiàng)目,暫未開源泣港,介紹見此暂殖。

Robust,新美大的熱補(bǔ)丁項(xiàng)目当纱,暫未開源呛每,介紹見此。

RxJava

RxJava是JVM上的響應(yīng)式編程框架坡氯,可以簡化異步操作的代碼晨横,是Rx系列的一部分,去年年底國內(nèi)社區(qū)開始有人布道箫柳,也有很多人分享手形,RxJava與Retrofit結(jié)合可以大幅簡化網(wǎng)絡(luò)操作的復(fù)雜性,因此也被人們廣泛使用悯恍。

推薦文章如下:

給 Android 開發(fā)者的 RxJava 詳解

是時(shí)候?qū)W習(xí)RxJava了

RxJava入門之實(shí)例解析

如何測試RxJava代碼

Android組件化

Android里的組件化是相對于插件化來說的库糠,插件化追求插件直接完全獨(dú)立,甚至插件本身是可獨(dú)立運(yùn)行的APK涮毫,組件化則是在組件獨(dú)立開發(fā)瞬欧,在編譯時(shí)仍合成為完整App。

Android組件化的實(shí)踐的代表是淘寶的Atlas罢防,該項(xiàng)目將于2017年初開源黍判。

回歸初心,從容器化到組件化

Atlas:手淘Native容器化框架和思考

Android業(yè)務(wù)組件化開發(fā)實(shí)踐

Android組件化開發(fā)實(shí)踐

Kotlin

Kotlin是老牌開發(fā)工具廠商JetBrains推出的一門JVM語言篙梢,也非常適合在Android項(xiàng)目中使用顷帖,今年推出了1.0版本,并在國內(nèi)舉辦了一場線下開發(fā)者日活動。

Kotlin被視為Android平臺的Swift贬墩,可以刷時(shí)髦值榴嗅,從實(shí)際開發(fā)體驗(yàn)上來說,與JetBrains的IDE結(jié)合(Android Studio亦可)也非常不錯(cuò)陶舞。國內(nèi)有些團(tuán)隊(duì)和個(gè)人已經(jīng)開始嘗試嗽测。但由于Java本身很完備,更換語言目前來說只是基于個(gè)人喜好肿孵。因此要想Kotlin流行唠粥,就像蘋果推廣Swift一樣,我們也需要谷歌的推動才會讓更多人有興趣學(xué)習(xí)和使用停做。

Kotlin語言1.0Beta發(fā)布晤愧,JetBrain介紹其設(shè)計(jì)理念

Kotlin如何成為我們Android開發(fā)的主要語言

使用Kotlin&Anko, 扔掉XML開發(fā)Android應(yīng)用

2017年展望

數(shù)一數(shù)將于明年開源的一些項(xiàng)目,明年Android開發(fā)該討論我們也心里有數(shù)蛉腌。

插件化官份。2017年,Android開發(fā)領(lǐng)域關(guān)于插件化和熱補(bǔ)丁的討論仍將繼續(xù)烙丛,但我希望國內(nèi)開發(fā)者能更多的走出去和國外同行交流舅巷,讓這些技術(shù)不只是一頭熱。

組件化河咽。其重點(diǎn)在于工程期的輔助工具和編譯流程钠右,期待明年除了Atlas之外,有更多的類似項(xiàng)目出現(xiàn)忘蟹。

Kotlin飒房,在這里推這個(gè),也算是我的個(gè)人喜好吧寒瓦,希望明年Google能官方表態(tài)支持Kotlin.

AI技術(shù)。人工智能是目前最火的技術(shù)領(lǐng)域沒有之一坪仇,如何與移動結(jié)合結(jié)合玩出花來是一個(gè)值得探討的話題杂腰。我覺得Android上取得突破的可能性比iOS更大,畢竟Android更開放椅文,玩法更多喂很。

跨平臺技術(shù)篇

不只是今年,跨平臺技術(shù)一直在移動開發(fā)領(lǐng)域火熱非常皆刺,畢竟Android少辣、iOS都不是可以輕易舍棄的平臺。今年的跨平臺技術(shù)羡蛾,相比往年的Xamarin漓帅、Titanium等,更實(shí)際,更接地氣忙干,這也導(dǎo)致了跨平臺技術(shù)今年討論的熱度更高器予,都快刷屏了。

今年大家所討論的跨平臺技術(shù)捐迫,無論是React Native乾翔、Weex還是微信小程序,從技術(shù)實(shí)現(xiàn)來說都是處于Native和Web之間施戴,還是使用Web技術(shù)開發(fā)反浓,從Hybrid過渡過來是很自然的事情,因此國內(nèi)不少公司在React Native推出不久就開始使用赞哗。

RN及類似技術(shù)最光明的未來可能是:類RN首先取代當(dāng)前App中的WebView雷则,之后會取代一部分Native界面,長期上來說懈玻,一些性能要求高的本地庫也會提供對它們的支持巧婶,如Realm就提供了RN版本,原生開發(fā)會被進(jìn)一步壓縮涂乌。原生開發(fā)艺栈,未來可能專注于一些專項(xiàng)研發(fā),如音視頻湾盒,或公共組件接入和維護(hù)湿右。

當(dāng)然,這種未來不一定到來罚勾,但移動開發(fā)者要做好心理準(zhǔn)備毅人。

React Native

React Native如今的地位毋庸置疑,F(xiàn)acebook沒有在國內(nèi)專門宣講過尖殃,但我已經(jīng)見識到了它的一些國內(nèi)鐵粉丈莺,并且有些公司如攜程更是不遺余力的對它進(jìn)行支持和布道,這種情況下RN發(fā)展想不好都不行送丰。

但這樣也出現(xiàn)了一些問題缔俄,一個(gè)是本地化的支持,第二個(gè)是有些公司自己對React Native做了優(yōu)化器躏,但沒有反饋給RN項(xiàng)目俐载,這樣最終只是做了一個(gè)分支版本,他踩的坑別人還是要踩一遍登失,這樣不環(huán)保遏佣,長遠(yuǎn)來看還有維護(hù)難的問題。

今年在RN上有實(shí)踐并分享出來的團(tuán)隊(duì)的分享如下:

QQ空間React Native項(xiàng)目實(shí)戰(zhàn)總結(jié)

攜程是如何做React Native優(yōu)化的

基于React Native的58同城App開發(fā)實(shí)踐

寶寶樹React Native增量升級解決方案PPT

旅行喵 React Native 技術(shù)實(shí)踐

Weex

Weex是阿里手淘團(tuán)隊(duì)推出的跨平臺開發(fā)框架揽浙,于今年6月份開源状婶。阿里對該框架非常重視意敛,在全集團(tuán)推廣,并且在今年雙十一會場大規(guī)模應(yīng)用太抓,取得了成功空闲。在9月份的JSConf上他們邀請Vue.js作者加入團(tuán)隊(duì)擔(dān)任技術(shù)顧問,剛剛發(fā)布的0.9版也正式支持Vue 2.0語法特性了走敌。最近它還加入了Apache基金會的孵化器碴倾,力爭打造成功的開源社區(qū)。

相比于React Native掉丽,Weex略顯年輕跌榔,不過由于后發(fā)優(yōu)勢,在一些地方優(yōu)化做的比RN好捶障。至于用哪個(gè)僧须,就要開發(fā)者自己去探索哪個(gè)更適合自己了。

Weex——關(guān)于移動端動態(tài)性的思考项炼、實(shí)現(xiàn)和未來

Weex詳解:靈活的移動端高性能動態(tài)化方案

awesome-weex

微信小程序

今年下半年担平,對移動開發(fā)最具沖擊的可能要數(shù)微信小程序了,它的顛覆性不在于技術(shù)锭部,而在于對整個(gè)移動互聯(lián)網(wǎng)生態(tài)的影響暂论。大部分的產(chǎn)品經(jīng)理也許不知道RN或者Weex,但他們一定知道微信小程序拌禾,也一定在考慮要不要做一個(gè)取胎,這就是微信小程序的影響力。

其實(shí)湃窍,在IM里做平臺微信不是第一個(gè)闻蛀,在6月份的WWDC上蘋果展示的iMessages,就支持集成其它應(yīng)用您市,發(fā)紅包不在話下觉痛,甚至還能打車∫鹦荩可惜iMessages這個(gè)應(yīng)用實(shí)在不接地氣薪棒,在國內(nèi)也沒有什么影響力。而另一個(gè)國人同樣不怎么了解的IM應(yīng)用泽篮,F(xiàn)acebook Messenger在向微信學(xué)習(xí)盗尸,在今年3月舉行的F8開發(fā)者大會上柑船,Messenger平臺化服務(wù)正式對外推出帽撑。扎克伯格宣布已有40多項(xiàng)服務(wù)接入到Messenger平臺。最近它還推出了Instant Games鞍时,你可以在FB Messenger里玩游戲了亏拉。

這些現(xiàn)象體現(xiàn)的趨勢是基于IM的應(yīng)用分發(fā)可能是下一件大事扣蜻,而這個(gè)能參與的只有現(xiàn)有的超級IM。

所以雖然現(xiàn)在微信小程序看上去能做的還很有限及塘,對于移動App沒有替代作用莽使,但將來就說不好了,保持關(guān)注吧笙僚。

PWA

PWA是Google今年力推的一項(xiàng)移動Web技術(shù)芳肌,在支持Service Worker和Fetch API的瀏覽器上可以得到完整體驗(yàn),在不支持的瀏覽器可以得到降級體驗(yàn)肋层。

我不是很看好PWA亿笤,因?yàn)樗哪芰托阅苓€是有限,國內(nèi)目前是超級App當(dāng)?shù)蓝安瑢τ谛阅芏际蔷媲缶谎Γ瑤缀醪豢赡苋ゲ捎眠@個(gè)方案,更何況它在iOS上的體驗(yàn)是降級的蒲拉,不支持服務(wù)器推送肃拜,就這一條也會被Pass掉。而蘋果何時(shí)支持Service Worker等新特性是說不好的雌团。

對于頁面元素少燃领、交互簡單的應(yīng)用可以嘗試一下。

熱門行業(yè)技術(shù)篇

2016年還有些“移動+”的領(lǐng)域十分火熱辱姨,這里指的就是直播和VR/AR柿菩,它們除了技術(shù),還有趨勢上的問題雨涛。

直播

直播是2016年的年度標(biāo)志事件枢舶,其火熱程度不用多說,因此也有很多泡沫替久,在數(shù)字上弄虛作假已經(jīng)是人人皆知的事實(shí)凉泄。但是要看到,直播的興起的前提是我們軟硬件達(dá)到了要求蚯根,同時(shí)直播是對某些陳舊事物的替代后众,因此即使泡沫破滅,也可以預(yù)見剩下的幾家會活得很好颅拦。

同時(shí)蒂誉,直播開始作為一個(gè)功能模塊進(jìn)入很多App,和其它行業(yè)結(jié)合距帅,如淘寶右锨、天貓上的直播就給網(wǎng)絡(luò)購物帶來了很好的效果。因此碌秸,作為年度熱點(diǎn)技術(shù)绍移,每個(gè)移動開發(fā)者都有必要去了解和學(xué)習(xí)悄窃。

直播技術(shù)本身涉及到前后端,最有挑戰(zhàn)的部分其實(shí)不在客戶端而是在后端蹂窖,客戶端的部分大多數(shù)有了最佳實(shí)踐轧抗,同時(shí)在秒開優(yōu)化上有了很多創(chuàng)新。

移動直播技術(shù)秒開優(yōu)化經(jīng)驗(yàn)

阿里直播平臺面臨的技術(shù)挑戰(zhàn)

從0到1打造直播 App

VR/AR

與直播相比瞬测,VR/AR則是從得意到失意的典型横媚,年初VR還被認(rèn)為是年度技術(shù),到年底某些做VR設(shè)備的廠商傳出裁員月趟、倒閉分唾,高端頭顯設(shè)備如HTC vive的銷售量也并不大,一下子大家都不看好了狮斗,這個(gè)領(lǐng)域似乎被資本所拋棄绽乔。

但與此同時(shí),使用VR/AR技術(shù)的產(chǎn)品屢屢成為互聯(lián)網(wǎng)的爆點(diǎn)碳褒,如Pokemon Go折砸、阿里雙十一VR、支付寶AR紅包沙峻,說明VR/AR在用戶體驗(yàn)和交互模式上還是很有潛力睦授,只是我們要找到正確的使用方法。目前來看摔寨,基于LBS+AR的游戲是可行的點(diǎn)去枷,VR則在營銷上有用武之地。

另外是复,雖然VR/AR被資本不看好删顶,但互聯(lián)網(wǎng)巨頭仍然重金投入,如Google淑廊、Facebook逗余、Microsoft都將VR/AR作為自己的戰(zhàn)略發(fā)展目標(biāo)。Google的Daydream更是非常接地氣季惩,期待明年當(dāng)支持設(shè)備增多后录粱,給我們更加完善的體驗(yàn)。

總之画拾,VR/AR目前來看并不會死啥繁,但現(xiàn)在投入風(fēng)險(xiǎn)很高,建議可以再等等青抛。

還有哪些沒有提到旗闽?

性能監(jiān)控與分析。今年不少公司都研發(fā)了自己的客戶端性能監(jiān)控系統(tǒng)。

安裝包瘦身宪睹。Android有魔鬼瘦身,iOS則以滴滴為代表蚕钦,用clang插件瘦身亭病。

Hybrid開發(fā),雖然已經(jīng)是很成熟的技術(shù)嘶居,但仍有可創(chuàng)新之處罪帖,豆瓣和美團(tuán)都有很好的分享。

技術(shù)不會停下腳步邮屁,學(xué)習(xí)永無止境整袁。讓我們期待2017年的移動技術(shù)吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市佑吝,隨后出現(xiàn)的幾起案子坐昙,更是在濱河造成了極大的恐慌,老刑警劉巖芋忿,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炸客,死亡現(xiàn)場離奇詭異,居然都是意外死亡戈钢,警方通過查閱死者的電腦和手機(jī)痹仙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殉了,“玉大人开仰,你說我怎么就攤上這事⌒酵” “怎么了众弓?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長隔箍。 經(jīng)常有香客問我田轧,道長,這世上最難降的妖魔是什么鞍恢? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任傻粘,我火速辦了婚禮,結(jié)果婚禮上帮掉,老公的妹妹穿的比我還像新娘弦悉。我一直安慰自己,他們只是感情好蟆炊,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布稽莉。 她就那樣靜靜地躺著,像睡著了一般涩搓。 火紅的嫁衣襯著肌膚如雪污秆。 梳的紋絲不亂的頭發(fā)上劈猪,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機(jī)與錄音良拼,去河邊找鬼战得。 笑死,一個(gè)胖子當(dāng)著我的面吹牛庸推,可吹牛的內(nèi)容都是我干的常侦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼贬媒,長吁一口氣:“原來是場噩夢啊……” “哼聋亡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起际乘,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤坡倔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后脖含,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體致讥,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年器赞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了垢袱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡港柜,死狀恐怖请契,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情夏醉,我是刑警寧澤爽锥,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站畔柔,受9級特大地震影響氯夷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜靶擦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一腮考、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玄捕,春花似錦踩蔚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春福也,著一層夾襖步出監(jiān)牢的瞬間局骤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工暴凑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留峦甩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓搬设,卻偏偏與公主長得像,于是被迫代替她去往敵國和親撕捍。 傳聞我的和親對象是個(gè)殘疾皇子拿穴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,280評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件忧风、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,119評論 4 61
  • 詩/朱益瓊 一抔黃土隔開了我們. 酸從心底漫上來. 病來如山倒,病去如抽絲. 人當(dāng)真如螻蟻,天地以萬物為芻狗. 你...
    麥兜的雞塊閱讀 254評論 0 2
  • 毛子裹緊了脖子上的紅圍巾蹲在橋頭默色,年末的冷風(fēng)像帶著怨氣般來回掃蕩,地上枯黃的樹葉被拖來扯去狮腿,發(fā)出哧哧地哀吼腿宰。 ”媽...
    柑橘與檸檬啊閱讀 350評論 0 0
  • 真心喜歡過的人沒辦法做朋友,因?yàn)槎嗫磶籽圻€是想要擁有缘厢。
    孤獨(dú)di小熊閱讀 244評論 0 0