作者:張旭乾(ID:九弓子)
2022年的HDD在杭州,我有幸成為受邀開發者之一。
這次HDD的主要宣傳內容之一,就是關于HarmonyOS 3.0發布后開發者可以直接用最新版的DevEco Studio開發api8版本的eTS聲明式開發范式。
這對于接觸過HarmonyOS開發的開發者來說,可以說是非常重要了。
但其實呢,這半年關于api7 8 9 在上一個版本的IDE我基本都大致了解過了。已經大概清楚能有什么更新和重點。
吸引我的活動議程還有在開場ArkUI之后的HMS Core的3D圖形技術,和Serverless云服務。
從接觸HarmonyOS開始到現在細說也快兩年了,我一開始關注就是因為在這里可以用JavaScript語言寫手機app。
從那個只為應付簡單場景的api5,到js+java混合開發的api6,勉強可以維持常用應用場景。 一直等著文檔中描述的api7版本更新,沒想到HarmonyOS 3.0的版本更新直接對照openharmony的api8更新上線。
不能說是正中下懷吧,可以說是喜出望外了屬于是。
雖然這個架構圖已經在openharmony3.1的發布會上見過了。 但這一次是HarmonyOS同步這樣的能力,對于整個“鴻蒙”北向應用開發可以說是意義重大。
1.優雅簡潔的eTS
首先新版本ArkUI使用的聲明式開發范式eTS解決掉了傳統前端三件套開發面臨的一個窘境。
代碼臃腫,樣式頻繁復用導致css規劃繁瑣,多層UI組件套嵌后事件混亂難以維護。
eTS的聲明式開發范式是將一個常用界面組件需要的屬性和方法,統統封裝成了原生平臺自帶的鏈式回調函數。
一開始可能不太習慣,但是一旦接受了這種單語言(ts)書寫界面的設定。 就會沉迷其中不能自拔,以后就是天王老子來了我也不樂意多寫一行標記語言和css。
當UI的書寫變得函數過程化,將更便于與數據和事件動作一起打包封裝。這樣的設計讓前端對于未來ArkUI下的UI框架設計,多了更多的想象力。
2.問題不在于性能,因為性能已經被解決掉了
用js、ts書寫前端面對最大的質疑就是性能問題。 然而其實這本身也是一個偽命題,因為之前的js、ts之所以有性能問題,是因為他們跑在chorm內核里,瀏覽器網頁里。是上層弱類型寄生語言。
而eTS之所以選擇ts語言肯定是要做強類型定義后去底層編譯處理,我們開發HarmonyOS的app的時候必然是要先編譯后安裝再運行。
這里就與web開發有本質的區別,我們寫的代碼并不是跑上去的代碼。
換句話說,我們這里寫的eTS在ArkUI的加持下本質上寫出去的是具備C++代碼能力的圖形組件。
3.TS/C++混合開發,把跨平臺玩的明明白白
其實HarmonyOS一直被網友詬病的問題就是在java和安卓。
Java是一個時代的產物,解決了當時的問題。
但到了現在的手機里看起來更像是仗著安卓生態不依不饒,讓HarmonyOS應用開發者沒辦法忽視安卓生態的車輪。
那么問題來了,為什么不用安卓的車輪。
答:因為js ts開發者本來也不會用。
在我看來HarmonyOS既然選擇了js/ts做ArkUI的開發語言,那面向的開發者大程度會來自現在的瀏覽器web開發。
Web開發在W3C標準的引領下給全球程序員指了一條明路,網頁即應用。
在未來隨著設備性能和web平臺能力的加強。不論大小的軟件公司,都會在網頁書寫一個自己項目的運行端,即開即用才是未來。
那么web向開發者其實本身就不會去考慮跨平臺,或者他們寫的代碼本來就是跨平臺。
前端的js本身就借著瀏覽器在跨平臺。
后端為了給分離后的前端交出web平臺接受的數據,早就已經深入到系統底層。
近幾年隨著網頁匯編wasm的流行,網頁也已經有很多核心業務在做前端C++化。最大程度的不浪費用戶設備性能,以保證給用戶提供更多元強大的瀏覽體驗。
比如:網頁視頻剪輯,云電腦云手機云游戲,webGL即開即用的webVR AR場景。
那這樣的大前提下,面向未來的HarmonyOS應用開發,為什么要向java和安卓妥協?
Xcomponent是ArkUI提供給前端一個高級UI組件拓展場景,TS語言負責應用的業務邏輯,C++實現的動態鏈接庫接入NativeAPI實現更底層的高性能需求與圖形需求。
單從這個場景就能看到未來的開發者人群是怎樣的一群人。
手中寫出的代碼本身就自帶跨平臺屬性,那么借著openharmony與HarmonyOS的聯系。
我們開發者寫的北向軟件應用同樣可以無縫跑到服務萬物互聯的openharmony開發板標準系統之中。
4.為什么非要c++?
因為未來就是圖形, 圖形就是數學, 數學需要計算, 計算需要性能, 性能需要底層, 底層需要c++ 。
最開始吸引我的內容不僅有這次更新的api8,還有議程表單上的HMS Core 3D圖形技術。
如果想要前端場景具備自己應用的核心表現力,3D就是當今無法忽視的一種重要場景。
3D圖形學開發,openGL就是無法忽視的開發內容。
HarmonyOS從去年就已經支持openGL ES,到現在的ArkUI同樣具備webGL與Xcomponent。
目前從官方看到的示例中,Xcomponent不僅能實現Surface接入視頻攝像頭的畫面,同樣可以渲染出cocos游戲引擎產出的3D游戲畫面。
那么這就給ArkUI做應用開發,提供了一個跑3D項目的場景。
通過HMS Core 3D圖形技術新能力的介紹,得知一個驚為天人的消息。
手機不僅能夠通過拍照產出模型,還能通過拍照產出材質球!
我個人對游戲開發純屬興趣愛好,但也知道3D相關建模和美術工作的復雜程度全在這兩件事上面。
現在通過HMS Core就可以輕松實現基礎3D素材的生產,這甚至比2D平面素材制作還要方便。這無疑是一種生產力的改變,肉眼可見的那個時代要來了
...
..
Web3.0...屬于是沒有一句說元宇宙,句句都在說元宇宙。
5.每個人都可以是一個軍隊,Serverless + 低代碼
我個人并不喜歡元宇宙,但元宇宙背后技術我不僅不排斥而且非常著迷。
Web3.0 為開發者勾勒的場景是數據即資產,每個人都是數據的生產者,也是數據的消費者。
更豐富的場景體驗就是必須的開發內容,但是代價就是開發者未必具備同等需要的開發能力。
Serverless本身也在我強烈求知的領域,華為的Serverless接入HarmonyOS應用開發,我做過初步的嘗試之后。我的感受就是,非常過癮。
本地docker環境模擬測試,云端部署云函數。
用戶認證SDK,接入的毫無道理讓小微應用開發根本不需要考慮用戶驗證和后端開發。對于我這樣的個人開發者來說,簡直就是挽救于水火。
在DevEco Studio中不停宣傳的低代碼加持下,配合Serverless逐漸的易用和便捷。
肉眼可見的程序員開發一個復雜程序的門檻正在飛速的降低。
雖然我并不喜歡低代碼,但如果低代碼能向前推進一步將業務邏輯像藍圖一樣輕松通過連線繪制一個可用的程序。
那么未來的開發場景一定會非常有趣,未來可期,與君共勉
|