wordpress+文章輸出北京百度關鍵詞優(yōu)化
前言
????????隨著kotlin代碼跨平臺方案的推出,kotlin跨平臺一度引起不少波瀾。但波瀾終歸沒有掀起太大的風浪,作為一個敏捷型開發(fā)的公司,依然少不了Android和iOS的同步開發(fā),實際成本和效益并沒有太多變化。所以對于大多數(shù)公司來說依然風平浪靜……
? ? ? ? 時過境遷,如今kotlin已經(jīng)支持Android、iOS、Web、PC的桌面UI開發(fā)了,并且iOS已經(jīng)進入Beat的里程碑,kotlin即將迎來一統(tǒng)天下的時刻——一人一語言碼完所有端。
上手一試
? ? ? ? kotlin作為Android官方語言并且完全支持Android Studio,所以KMM對Android來說完全0門檻,不需要任何學習就可以上手,并且完全能自主解決各種問題。
1.首先下載官方demo(也有對應插件,但不建議使用):Kotlin Multiplatform Wizard | JetBrains(防失效方式:Create your multiplatform project | Kotlin Multiplatform Development Documentation (jetbrains.com)>點擊“Open the Kotlin Multiplatform wizard”即可)。Android、iOS、Web、PC、Server都可以選,這里建議全選,然后下載。
2.此處默認你已經(jīng)會了Android Studio,我們解壓后不要急著打開(打開巨慢,下載還總是超時)
將gradle/wrapper/gradle-wrapper.properties文件修改為tx鏡像:
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip
將settings.gradle.kts文件的repositories(2個地方)都修改成如下:
repositories {maven("https://maven.aliyun.com/repository/central")maven { setUrl("https://maven.aliyun.com/repository/public") }maven { setUrl("https://maven.aliyun.com/repository/google") }maven { setUrl("https://jitpack.io") }google {mavenContent {includeGroupAndSubgroups("androidx")includeGroupAndSubgroups("com.android")includeGroupAndSubgroups("com.google")}}mavenCentral()gradlePluginPortal()maven { setUrl("https://repo1.maven.org/maven2/") }maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")}
然后使用Android Studio打開,按上述改法預計10分鐘左右就構建完成了,當然如果報錯請自行解決(和Android基本一致)
跑起來
Server
運行java服務端算是最簡單的一個了,等到構建成功找到“server>src>main>kotlin>包名>Application”然后對著main函數(shù)點擊run就行了(如果第一次出現(xiàn)找不到main的錯誤,再次run就行了)。然后根據(jù)日志提示使用任意瀏覽器打開鏈接如“127.0.0.1:8080”,即可看到返回信息。
Android
由于Android本身就支持kotlin并且框架也是jetpack,所以跑到Android設備上也是非常輕松的,選擇composeApp(應該是默認項,下方截圖)后直接右側的run三角形就行了(如圖),如果有錯誤,直接搜索Android相關的問題,基本上沒有什么坑,這里不再多說
PC(Windows、Mac、Linux)
pc完全基于jvm的,運行到pc端應該也不會有什么難點,你只需要配置好java的環(huán)境變量就行了,運行方式:右側邊欄Gradle>composeApp>Tasks>compose Desktop>run。當然運行時需要安裝到電腦上,根據(jù)各系統(tǒng)的安裝提示就行了。
Web
運行到網(wǎng)頁端第一次可能需要科學一下,因為kotlin用到了nodejs的功能,而nodejs一般是訪問不了的(不開科學會出現(xiàn)長時間等待好幾分鐘后才會提示超時)。當然你還需要一個較新版的谷歌(119以上)、edge(119)或者火狐(121)瀏覽器。如果你都已經(jīng)準備好了,那運行到網(wǎng)頁端也應該不是問題,依然是右側邊欄Gradle>composeApp>Tasks>kotlin browser>wasmJsBrowserRun。
iOS
要想運行到iOS手機上,要求就相對高很多了:
1.一臺較新的Mac電腦(博主用的m1,再低可能會出現(xiàn)跑不起來也沒任何提示)
2.安裝好xcode(建議App Store下載,不然安裝位置不對也可能導致跑不起來也沒任何提示)
3.配置完整的java環(huán)境,完整的!完整的!完整的!
? ? ? ? 由于博主省懶,之前配置了Android Studio自帶閹割版的java環(huán)境變量,導致跑不起來也沒任何提示,你可以去官網(wǎng)下載JDK或者簡單一點“Android Studio>設置>Gradle……>Gradle Tools>Grade>Gradle JDK>Download JDK”,然后記住下載的目錄配置到環(huán)境變量上即可。
4.添加模擬器或者使用真機
5.Android Studio內安裝插件“Kotlin Multiplatform”(設置>Plugins>Marketplace>搜索Kotlin Multiplatform),重啟AS
6.添加iOS設備,選擇Edit Config>點擊加號>選擇iOS Application>選擇xcode路徑(應該都會自動出來),框選里的都要填完(一般自動填的),填完后點擊確定后點擊右側的run三角形即可運行到iOS上
[Mac不在,暫無運行截圖]
運行提醒:多個端只能同時運行一個,運行前請先停止其他端的task
現(xiàn)狀
作為橫跨所有端并且語法統(tǒng)一的kmm,它的優(yōu)點自然很多,不需要過多贅述,當然到目前為止依然有不少問題有待解決:
1.ktor server框架目前還算比較年輕,自身尚有很多優(yōu)化空間。
2.jetpack雖然谷歌一直在推,但是由于這是屬于革命性架構變更,目前占有率估計連20%都沒有。
3.Web端必須要求瀏覽器支持wasm并且支持GC功能,目前谷歌和火狐也是去年才支持的,Safari到現(xiàn)在仍舊在開發(fā)中,其他小眾瀏覽器更不用提支持了。
4.iOS手機目前還沒發(fā)布release,并且只支持iOS15(iPhone13)以上,更早的版本暫不支持。
5.各端權限相關問題,對于權限、文件、圖片各端需要單獨自行處理,這算是所有跨平臺方案的通病,屬于無解型。
6.對于鴻蒙系統(tǒng),目前還沒有支持的意愿,這一塊幾乎空白。
7.作為開發(fā)者當然最重要的還是崗位了,目前看下來這種崗位幾乎為0。
當前應用方向
雖然kmm的問題不少,有些甚至比較致命,但就目前來說仍可以在某些方面有一席之地,并且后期潛力巨大,完全可以當做初期鋪墊。
1.對于偏應用的初創(chuàng)項目kmm的Android、iOS還是比較方便和快速
2.對于小型服務端,ktor也是有不少優(yōu)點,并且也能在app端人員中快速上手
3.對于內部網(wǎng)頁系統(tǒng),那如果app端人員也會寫那何樂而不為呢
4.當然沒有ui的Multiplatform早已經(jīng)正式發(fā)版并跨所有端了,如果先共享邏輯后期再考慮共享ui不失為一種比較友好的解決方案(不少大廠已經(jīng)開始嘗試了)
轉載請注明出處:王能的博客Kotlin真·全平臺——Kotlin Compose Multiplatform Mobile(kotlin跨平臺方案、KMP、KMM)-CSDN博客
后續(xù):
1.如何打包發(fā)布
2.如何修改分類源集(Android、iOS為一類,Web、PC為一類)