在軟件開發領域,安卓應用開發者的困境近期再次成為熱議話題。科技媒體devclass發表的一篇文章,以軟件工程師Ashish Bhatia的經歷為切入點,揭示了安卓應用開發面臨的多重挑戰。
Bhatia,一位曾參與谷歌Android安全項目的資深開發者,目前正在開發名為MusicSync的媒體應用。他遇到的問題并非孤例,而是眾多安卓開發者普遍面臨的挑戰。
MusicSync應用原本使用Java編寫,但谷歌將Kotlin設為首選開發語言后,Java開發者遭遇了前所未有的困境。Bhatia指出,Java無法使用谷歌官方的UI庫Jetpack Compose,而Java庫遷移到Kotlin的過程復雜且充滿挑戰,Kotlin的協程和掛起函數更是帶來了兼容性問題,使得Java開發者在安卓開發中的處境愈發艱難。
安卓官方庫的頻繁更新也令開發者頭疼不已。例如,媒體庫ExoPlayer在2024年升級為ExoPlayer v2后,又被Jetpack Media3取代。這種“破壞性變更”不僅增加了開發難度,還可能導致應用崩潰,給用戶體驗帶來負面影響。
安卓系統的大版本更新同樣帶來了一系列新的挑戰。通知、存儲權限和后臺代碼執行等方面的變化,要求開發者不斷調整代碼以適應新規。這不僅增加了開發成本,還延長了開發周期。
UI設計指南的頻繁變動也是開發者面臨的一大難題。Material 2被Material 3取代,而大部分文檔只針對Kotlin,缺乏清晰的Java遷移指南。這使得Java開發者在UI設計方面面臨諸多不便。
第三方庫的棄用或停止維護也給開發者帶來了額外的負擔。開發者必須持續投入精力更新應用,否則可能因minSdkVersion過舊而被Google Play商店下架。這不僅影響了開發者的積極性,也限制了應用的長期發展。
Bhatia的觀點引發了廣泛共鳴。一位開發者表示,維護應用已成為“巨大的負擔”,每隔幾個月就必須更新以符合新政策,包括稅務信息、隱私政策和強制性API調整等。另一位開發者則從2012年起維護一款應用,在Google Play商店發布了108個版本,深感疲憊。
谷歌對新應用使用App Bundles的要求也引發了爭議。開發者需將根簽名密鑰交給谷歌,這增加了應用被未經授權修改的風險。盡管谷歌提供了“代碼透明性”功能作為緩解措施,但許多開發者仍對此表示擔憂。
在這種開發環境下,商業應用的主導地位愈發顯著。因為只有它們有足夠的收入支撐開發成本,免費開源或個人愛好者的應用則更容易被放棄。一位開發者無奈表示:“開發應用本身很簡單,但應用商店的官僚作風讓人完全不想繼續,除非你是大公司。”
另一位開源SSH文件傳輸應用的開發者也指出,谷歌的苛刻要求和商業化導向迫使許多優質免費應用退出平臺。這不僅影響了應用的多樣性,也損害了用戶的利益。