第一次親密接觸
第一次接觸Ionic,是在2015年趁矾,并在年中的時候第一次在正式項目中使用毒费,那時它才是Ionic1的Alpha版,每次版本更新仍有不少坑愈魏,但在可接受范圍觅玻,而且Ionic team一般會很快地修復Bug或者給出解決建議,就算他們沒有回復培漏,個人花點時間仍能找到折中處理方案溪厘。
其實,在使用Ionic前牌柄,移動端JS框架畸悬,我嘗試使用過Jquery Mobile(JM)、Sencha Touch(ST)珊佣,JM坑很多蹋宦,而ST相對好一些,但是性能有很大問題咒锻,如文件體積過大冷冗、內存占用過大等,而且UI實現(xiàn)對IDE不友好惑艇,或許后面都有所優(yōu)化了蒿辙,但是我沒等這一天。
因為有Angular1(Angularjs)的基礎滨巴,所以上手Ionic1很快思灌,它全家桶的功能,省卻了配套技術選型的煩惱恭取,同時泰偿,它比較齊全的cli命令,使得項目的創(chuàng)建到發(fā)布都比較簡便蜈垮。
那時的Ionic1還沒有懶加載耗跛。在我認為Ionic打包為App后,它的基礎文件在本地加載窃款,不依賴網絡開銷课兄,所以沒必要做懶加載處理時牍氛,架構師同伴卻執(zhí)著地進行懶加載改造晨继,沒有官方解決方案,我們啃國外的文檔搬俊,最后使用了ocLazyLoad處理(我們改造完幾個月后紊扬,才在國內看到一些相關文檔蜒茄,早期吃螃蟹的人都不容易)。后來的事實證明做懶加載還是有一定必要性的餐屎,在此基礎上檀葛,我們又陸續(xù)做了熱更新、動態(tài)渲染等功能腹缩,那時Ionic1的表現(xiàn)還不錯屿聋。
雖然Ionic1基本摸透了,但是它還是有一定學習成本藏鹊,為了團隊建設考量润讥,等Ionic2出來后,我們猶豫了一下是否沿用Ionic1盘寡,也比較了一下其它移動端js框架楚殿,最后還是敲定了升級使用Ionic2。然后v2竿痰、v3脆粥、v4一路走來,見證了Ionic的成熟影涉,也見證了其它混合式開發(fā)框架的誕生和崛起变隔。
新歡與舊愛
隨著Ionic4的推出,自己也較早時間去踩坑蟹倾,從去年中創(chuàng)建第一個Ionic4項目開始到現(xiàn)在弟胀,指導開發(fā)了幾個Ionic4項目,可以確切地說喊式,Ionic4已經穩(wěn)定了(僅限于Angular版孵户、Vue和React版的還有較長一段路要走),而且相對Ionic3來說岔留,組件更豐富夏哭、性能更優(yōu)化、機制更合理献联,同時兩者間差異不算變化很大竖配,可以很好的過渡(僅限于技術過渡,而不是舊項目過渡)里逆,對于新項目的選型进胯,可以考慮Ionic4替代Ionic3來開發(fā)。
Ionic4最大的感觀是在轉型原押,轉型向一個純粹的UI框架胁镐,借助Stencil,基于Web Components技術實現(xiàn)跨框架使用。其實如果Ionic3時盯漂,是采用Ionic4的技術線條颇玷,而Ionic4是下一個新的技術,那一定比現(xiàn)在更成功就缆。而現(xiàn)在帖渠,在其它競爭對手面前,Ionic4并不算有很亮眼的表現(xiàn)竭宰,一定程度上歸結于Angular的難度和在國內的受歡迎程度空郊。
其實,在我先前的文章中提到過Capacitor切揭,最開始它的官方文檔介紹有【Native UI View】這個內容渣淳,一度讓我以為Ionic版的RN要來了(與NativeScript不一樣的實現(xiàn)),后來發(fā)現(xiàn)相關內容被刪掉了伴箩,再后來看到相關團隊成員的文章里面提到過這個事情入愧,提到這是他們的一個夢想,只是這個工作量太大了嗤谚,所以把其它工作優(yōu)先處理棺蛛,這個先排除掉,但不知道什么時候再提上日程巩步。
亂花漸欲迷人眼
在我看來旁赊,Ionic4已經不再神秘,它和其它基于Angular的UI框架相比椅野,其實沒什么兩樣终畅,可以從很多Angular資料中找到參考,所以也便很少寫關于它的文章竟闪。一些從Ionic3過渡到Ionic4的人仍舊以Ionic3的思維去做開發(fā)离福,抱怨這個Ionic3可以,怎么到Ionic4不行炼蛤?Ionic3是Angular的基礎上封裝了一層妖爷,是Ionic3獨有使用,Ionic4把它開放還給了Angular理朋,就該用Angular的思維去做絮识。
就像我前面提到過的,Ionic有其它競爭對手嗽上,當你有較豐富的Angular經驗次舌,或者團隊的技術棧主要是Angular時,Ionic仍是不錯的選擇兽愤,它還有很長的生命周期彼念。當然針對不同的需求或項目規(guī)模挪圾,也可以選型其它技術,不用說綁死在一棵樹上国拇,或者悲觀地說我要放棄某種技術洛史。在我看來惯殊,很多時候酱吝,技術是殊途同歸的,懂了這個土思,了解其它也能很快上手务热,換了其它技術其實也代表你又學到了一樣東西,技術有了升華己儒。像我所在的公司崎岂,我可以決定選型的技術,就算我認為Angular比Vue更適合于中大型項目的開發(fā)管理闪湾,甚至我可以固執(zhí)地要求使用Angular冲甘,但考慮到招人的成本、框架的特點和國內的趨勢途样,一些項目我會考慮使用Vue江醇。
就算我在使用其它技術,我仍感謝Ionic的一路陪伴何暇,它曾經幫我實現(xiàn)了我想要的效果陶夜,它就像一瓶美酒靜靜躺在那里,哪天我想小酌一杯裆站,它仍會給我醇香……