在安卓應(yīng)用開發(fā)領(lǐng)域,一位資深軟件工程師Ashish Bhatia的遭遇,近期引起了廣泛關(guān)注。Bhatia,這位曾參與谷歌Android安全項(xiàng)目的專家,如今正致力于開發(fā)一款名為MusicSync的媒體應(yīng)用,他的經(jīng)歷揭示了當(dāng)前安卓開發(fā)者所面臨的種種挑戰(zhàn)。
Bhatia的困境首先源自于編程語言的選擇。他的MusicSync應(yīng)用采用Java編寫,然而,隨著谷歌將Kotlin確立為首選開發(fā)語言,Java開發(fā)者們陷入了兩難境地。Bhatia指出,Jetpack Compose這一谷歌官方的UI庫,完全不支持Java,而Java開發(fā)者在嘗試將依賴庫遷移到Kotlin時(shí),往往需要面對(duì)復(fù)雜的解決方案。Kotlin的協(xié)程和掛起函數(shù)也為Java開發(fā)者帶來了兼容性問題,增加了開發(fā)難度。
安卓官方庫的頻繁更新,也是開發(fā)者們不得不面對(duì)的另一個(gè)挑戰(zhàn)。例如,媒體庫ExoPlayer在計(jì)劃中的2024年升級(jí)后,將被Jetpack Media3所取代。這種“破壞性變更”不僅可能導(dǎo)致應(yīng)用崩潰,還要求開發(fā)者不斷調(diào)整代碼以適應(yīng)新的庫版本。而安卓系統(tǒng)的每次大版本更新,都會(huì)引入新的變更,特別是在通知、存儲(chǔ)權(quán)限和后臺(tái)代碼執(zhí)行等方面,開發(fā)者必須時(shí)刻關(guān)注并適應(yīng)這些變化。
UI設(shè)計(jì)指南的頻繁變動(dòng)同樣讓開發(fā)者們頭疼不已。Material 2被Material 3取代,而大部分文檔都只針對(duì)Kotlin,缺乏清晰的Java遷移指南。這意味著,即使開發(fā)者想要遵循最新的設(shè)計(jì)指南,也可能因?yàn)檎Z言限制而面臨困難。
第三方庫的棄用或停止維護(hù),也給開發(fā)者帶來了額外的負(fù)擔(dān)。開發(fā)者必須持續(xù)投入精力更新應(yīng)用,否則可能因minSdkVersion過舊而被Google Play商店下架。這種持續(xù)的壓力,讓許多開發(fā)者感到疲憊不堪。
Bhatia的觀點(diǎn)在開發(fā)者社區(qū)中引發(fā)了廣泛共鳴。一位開發(fā)者表示,維護(hù)應(yīng)用已成為“巨大的負(fù)擔(dān)”,每隔幾個(gè)月就必須更新以符合新政策,包括稅務(wù)信息、隱私政策和強(qiáng)制性API調(diào)整等。另一位從2012年起就開始維護(hù)一款應(yīng)用的開發(fā)者,更是發(fā)布了108個(gè)版本,深感疲憊。
谷歌對(duì)新應(yīng)用使用App Bundles的要求,也引發(fā)了開發(fā)者的爭議。開發(fā)者需要將根簽名密鑰交給谷歌,這存在應(yīng)用被未經(jīng)授權(quán)修改的風(fēng)險(xiǎn)。盡管谷歌提供了“代碼透明性”功能作為緩解措施,但許多開發(fā)者仍然對(duì)此表示擔(dān)憂。這種開發(fā)環(huán)境的摩擦,進(jìn)一步加劇了商業(yè)應(yīng)用的主導(dǎo)地位,因?yàn)橹挥兴鼈冇凶銐虻氖杖雭碇伍_發(fā)成本。
一位開發(fā)者無奈地表示:“開發(fā)應(yīng)用本身并不復(fù)雜,但應(yīng)用商店的官僚作風(fēng)讓人完全失去了繼續(xù)下去的動(dòng)力,除非你是一家大公司。”另一位開源SSH文件傳輸應(yīng)用的開發(fā)者也指出,谷歌的苛刻要求和商業(yè)化導(dǎo)向,迫使許多優(yōu)質(zhì)免費(fèi)應(yīng)用退出了平臺(tái)。
在安卓應(yīng)用開發(fā)領(lǐng)域,開發(fā)者們正面臨著前所未有的挑戰(zhàn)。從編程語言的選擇到官方庫的頻繁更新,再到UI設(shè)計(jì)指南的變動(dòng)和第三方庫的維護(hù)問題,每一個(gè)環(huán)節(jié)都充滿了不確定性。這種不確定性不僅增加了開發(fā)成本,也降低了開發(fā)者的積極性。
對(duì)于許多開發(fā)者來說,持續(xù)更新應(yīng)用已成為一種負(fù)擔(dān)。他們不僅要關(guān)注技術(shù)的最新發(fā)展,還要應(yīng)對(duì)應(yīng)用商店的政策變化。這種壓力,讓許多開發(fā)者開始考慮是否值得繼續(xù)投入時(shí)間和精力在安卓應(yīng)用開發(fā)上。
然而,盡管面臨著諸多挑戰(zhàn),仍有許多開發(fā)者堅(jiān)持在安卓應(yīng)用開發(fā)領(lǐng)域耕耘。他們相信,通過不斷創(chuàng)新和努力,能夠克服這些困難,為用戶帶來更好的應(yīng)用體驗(yàn)。