對于每一個開發(fā)者而言,開發(fā)工具就相當于他們的武器,選擇一個合適的工具能夠幫助我們在工作時事半功倍,在互聯(lián)網(wǎng)逐漸發(fā)展成熟的今天,越來越多的開發(fā)工具供我們選擇,但其中總有一些更好用的,如何選擇成為了一大難題。
我們擁有十余年網(wǎng)頁設(shè)計和網(wǎng)站建設(shè)經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計師為您提供的解決方案。為企業(yè)提供網(wǎng)站建設(shè)、成都做網(wǎng)站、微信開發(fā)、小程序制作、手機網(wǎng)站開發(fā)、H5網(wǎng)站設(shè)計、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計或者設(shè)計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計服務(wù)并滿足您的需求。
從而頒布了2021年StackShare第八屆頂級工具獎,快來看看有沒有你青睞的開發(fā)工具吧。
年度最佳新興工具
1.FastAPI
FastAPI 是一個使用 Python3.6+ 構(gòu)建 Web API 的高性能框架。根據(jù)框架創(chuàng)建者的說法,F(xiàn)astAPI 性能與 NodeJS 或 Golang 相當。
2.GitHub Copilot
作為一款 AI 結(jié)對編程工具,Copilot 的主要定位是提供類似 IntelliSense/IntelliCode 的代碼補全與建議功能,但在實際表現(xiàn)上有望超越同樣由微軟合作伙伴 OpenAI 開發(fā)的 Codex AI 系統(tǒng)。
3.FiglamFigma
Figma 是一個 基于瀏覽器 的協(xié)作式 UI 設(shè)計工具,從推出至今越來越受到 UI 設(shè)計師的青睞,也有很多的設(shè)計團隊投入了Figma 的懷抱,
4.Logtail
Logtail是日志服務(wù)提供的日志采集Agent,用于采集阿里云ECS、自建IDC、其他云廠商等服務(wù)器上的日志。本文介紹Logtail的功能、優(yōu)勢、使用限制及配置流程等信息。
5.Coder
開發(fā)人員工作區(qū)平臺·
6.Charts.csscss
Charts.css 是用于數(shù)據(jù)可視化的開源 CSS 框架,幫助用戶理解數(shù)據(jù),幫助開發(fā)人員使用簡單的 CSS 類將數(shù)據(jù)轉(zhuǎn)換為漂亮的圖表?!?/p>
7.Counter
簡單并且免費的網(wǎng)絡(luò)分析·
8.React Query
React Query是一個庫,可為任何類型的異步數(shù)據(jù)提供ReactJS狀態(tài)管理功能。根據(jù)他們的官方文件,·
9.vscode.dev
將VS Code引入瀏覽器,構(gòu)建一個可以在瀏覽器中完全無服務(wù)器運行的開發(fā)工具。
10.BookStack
BookStack 是一個開源的、基于 Laravel + Vue.js 構(gòu)建的知識管理和服務(wù)平臺。具有簡單但功能強大的所見即所得編輯器,允許團隊輕松創(chuàng)建詳細且有用的文檔?!?/p>
11.ThunderClient
Thunder Client 為我們提供了一款輕量級、易用、整潔、簡單的 Rest API 客戶端擴展?!の覀兛梢岳?Thunder Client 在編輯器內(nèi)快速測試代碼庫的 API 端點,從而最大限度地減少頁面的切換。它可以替代 Postman,作為常用的無腳本測試工具。
12.Quod AI
Quod AI Code Search是一個由人工智能驅(qū)動的Chrome擴展,可以自動從Git存儲庫或Jira問題中搜索代碼。
它使用問題的標題和描述,并自動在你的Git存儲庫中找到匹配的內(nèi)容。
13.Dendron
Dendron 是典型的開源社區(qū)編程思維的解決方案,雖然初看起來有一點學(xué)習曲線,但從根本上是給了使用者最大的自由發(fā)揮空間,同時又提供了最強大和最徹底的工具生態(tài)支持?!?/p>
14.Notion API
把概念和你每天使用的工具聯(lián)系起來·
15.Github1s
只需1秒,就可以用VS Code方式來看GitHub代碼?!?/p>
16.Ocean
容器的無服務(wù)器基礎(chǔ)架構(gòu)引擎·
17.Magic
快速構(gòu)建應(yīng)用程序,可定制,無密碼登錄
·
18.Jina
更簡單的一種在云上構(gòu)建神經(jīng)搜索的方法,
19.Focalboard
一款開源、本地存儲、免費的類 Notion 應(yīng)用Focalboard 的自我定位是“Trello、Notion 和 Asana 的開源、自托管替代品”?!?/p>
20.zx
更好地編寫腳本的工具(By Google)
21.OpenSearh
OpenSearch是阿里云開放搜索簡稱,為解決用戶結(jié)構(gòu)化數(shù)據(jù)搜索需求的托管服務(wù),支持數(shù)據(jù)結(jié)構(gòu)、搜索排序、數(shù)據(jù)處理自由定制。·
22.Querybook
一個可以發(fā)現(xiàn)、創(chuàng)建和共享數(shù)據(jù)分析、查詢以及表的大數(shù)據(jù)IDE(通過Pinterest),
23.MangoDB
MongoDB是一款為web應(yīng)用程序和互聯(lián)網(wǎng)基礎(chǔ)設(shè)施設(shè)計的數(shù)據(jù)庫管理系統(tǒng)。MongoDB就是數(shù)據(jù)庫,是NoSQL類型的數(shù)據(jù)庫
24.TooIJet
Retool的開源替代品·
25.Kitemaker
Kitemaker是為團隊而非經(jīng)理創(chuàng)建的超快速問題跟蹤器。為遠程團隊創(chuàng)建的Jira的快速替代方案·
26.Appflowy
Appflowy 是一款使用 Flutter 和 Rust 構(gòu)建的開源筆記軟件,它支持Windows、macOS和Linux,可以免費下載使用
27.Kubegres
Kubegres 是一個 Kubernetes Operator,用來部署并維護 PostgreSql 集群,提供開箱即用的數(shù)據(jù)復(fù)制和故障轉(zhuǎn)移功能,簡化 PostgreSql 集群生命周期管理,降低數(shù)據(jù)復(fù)制的復(fù)雜性
28.Lightning Web Components
Lightning Web Components,業(yè)內(nèi)簡稱LWC,是Salesforce于Spring 19發(fā)布的一款新型Lightning Component,快速的企業(yè)級Web組件基礎(chǔ)
29.Judo
用無代碼構(gòu)建原生應(yīng)用體驗
30.Apache APISIX
Apache APISIX Apache APISIX是一個動態(tài)、實時、高性能的API網(wǎng)關(guān)。提供了豐富的流量管理功能,如負載均衡、動態(tài)上游、canary釋放、斷路、認證、可觀察性等。
31.Control
提供免費的加速、自動化安全性以及SOC2合規(guī)
32.Remix
專注于Web技術(shù)和現(xiàn)代 用戶體驗的框架
33.NocoDB
免費并且開源的Airtable替代方案
34.JetBrainsQodana
評估你擁有的、合同或購買的代碼的完整性
35.TabnineAI
只能代碼編寫
36.Coolify
一個開源的,自適應(yīng)的Heroku和Netlify的替代品
37.Penpot
開源設(shè)計和原型平臺
38.Portman
Postman介紹:postman是一個開源的接口測試工具,無論是做單個接口的測試還是整套測試腳本的撥測都非常方便。
39.Devops Stack
持續(xù)部署Kubernetes環(huán)境
40.Slidev
面向開發(fā)人員的演示幻燈片
41.ReScript
ReScript 是一門針對 JavaScript 程序員的新語言,特別是對 TypeScript 和 Flow 的類型安全感興趣的程序員。ReScript 的語法和 JavaScript 非常相似
42.Fig
自定完成終端
43.FlutterFlow
Flutterflow 是一個在線低碼平臺,使人們在視覺上以人們在視覺上構(gòu)建本機移動應(yīng)用程序。
44.Porter
運行在你自己的云中的Heroku
45.SigmaOS
在 SigmaOS 中,你會看到完全不同的瀏覽器布局,它更像是一個工作臺
46.VictoeiaMetrics DB
快速、低成本的監(jiān)控解決方案和時間序列數(shù)據(jù)庫
47.CloudflarePages
JAMstack平臺為前端開發(fā)者提供協(xié)作和部署網(wǎng)站的平臺
48. Devbook
面向開發(fā)者的搜索引擎
49.Front Matter
直接在VS Code中管理靜態(tài)站點
50.Supacase UI
用于企業(yè)儀表的React組件庫
以上可以說是集結(jié)了開發(fā)行業(yè)中的所有“神器”,不僅能助力程序員高效工作,也是今后走向開發(fā)崗位小伙伴們的加薪工具。小伙伴可以從中挑選適合自己的工具~
前端前景是很不錯的,像前端這樣的專業(yè)還是一線城市比較好,師資力量跟得上、就業(yè)的薪資也是可觀的,學(xué)習前端可以按照路線圖的順序,
0基礎(chǔ)學(xué)習前端是沒有問題的,關(guān)鍵是找到靠譜的前端培訓(xùn)機構(gòu),你可以深度了解機構(gòu)的口碑情況,問問周圍知道這家機構(gòu)的人,除了口碑再了解機構(gòu)的以下幾方面:
1. 師資力量雄厚
要想有1+12的實際效果,很關(guān)鍵的一點是師資隊伍,你接下來無論是找個工作還是工作中出任哪些的人物角色,都越來越愛你本身的技術(shù)專業(yè)前端技術(shù)性,也許的技術(shù)專業(yè)前端技術(shù)性則絕大多數(shù)來自你的技術(shù)專業(yè)前端教師,一個好的前端培訓(xùn)機構(gòu)必須具備雄厚的師資力量。
2. 就業(yè)保障完善
實現(xiàn)1+12效果的關(guān)鍵在于能夠為你提供良好的發(fā)展平臺,即能夠為你提供良好的就業(yè)保障,讓學(xué)員能夠?qū)W到實在實在的知識,并向前端學(xué)員提供一對一的就業(yè)指導(dǎo),確保學(xué)員找到自己的心理工作。
3. 學(xué)費性價比高
一個好的前端培訓(xùn)機構(gòu)肯定能給你帶來1+12的效果,如果你在一個由專業(yè)的前端教師領(lǐng)導(dǎo)并由前端培訓(xùn)機構(gòu)自己提供的平臺上工作,你將獲得比以往更多的投資。
希望你早日學(xué)有所成。
如果是目前的移動端開發(fā)趨勢,跨平臺移動應(yīng)用開發(fā),也就是目前比較火的flutter、react-native等等解決方案,需要有web基礎(chǔ),也就是Es6、HTML、CSS等等,需要了解前端工程化,如webpack、gulp等解決方案,慢慢深入就知道了,這塊要學(xué)的還是挺多的
傳統(tǒng)的安卓或者是ios工程師可以自己買書學(xué),先學(xué)學(xué)Java、C#基礎(chǔ),其實傳統(tǒng)app開發(fā)門檻還是比較高的,目前也不算是主流趨勢,建議學(xué)習跨平臺移動應(yīng)用開發(fā),也就是一次開發(fā),可打包成apk、ios應(yīng)用、小程序等等,多端運行。
像美團外賣這樣的APP用一種開發(fā)語言,能開發(fā)得出來嗎?答案是不能。
美團發(fā)展到現(xiàn)在可以說已經(jīng)是一個【巨無霸】了,里面集成了很多很多功能,除了核心的外賣,還有 旅游 、 娛樂 、購物、出行,金融等等業(yè)務(wù)線,那么這么多復(fù)雜的業(yè)務(wù)根本不可能用同一種開發(fā)語言實現(xiàn)。
那么美團都用到哪些開發(fā)語言和技術(shù)了呢?下面就根據(jù)我的理解詳細說一下。
前端是把產(chǎn)品的核心服務(wù)交給用戶的呈現(xiàn)者,它的表述方式、展示形式以及交互邏輯都跟用戶息息相關(guān),都影響著用戶使用產(chǎn)品的體驗,也就是說直接影響產(chǎn)品的用戶留存。
前端開發(fā)主要分為三大類型:Andriod、IOS和PC(H5) ,Android開發(fā)語言是Kotlin和Java,IOS開發(fā)語言是Object-c和Swift,PC(H5)開發(fā)語言就比較雜了,有JS、CSS、HTML,還有很多第三方的前端框架,比如Angular.js、vue.js、Bootstrap、JQuery等等。
關(guān)于后端的功能,這一點可以說是眾說紛紜,主要需要考慮的是如何實現(xiàn)功能、數(shù)據(jù)的交互流程和存取、平臺的穩(wěn)定性與性能等。
那么后端都用到哪些開發(fā)語言和技術(shù)呢?
根據(jù)后端技術(shù)選型的標準,后端可選的開發(fā)語言和技術(shù)是非常多的。
比如Java體系的話,可以選用SpringMVC、Spring cloud、Hibernate,Mybatis、Mysql、Redis、Memcache、zookeeper、Kafka......;
比如Python體系的話,可以選用Django、Flask、Tarnado、Web2py等,中間件都是通用的,Redis,MQ、MySQL、Kafka等都可以用在python體系中;
當然還有PHP、C、Perl等開發(fā)語言。
綜上所述,美團這個巨無霸公司,隨著業(yè)務(wù)線的擴展用到的技術(shù)肯定會越來越多,而且越來越復(fù)雜,技術(shù)快速變革的時代,適者生存的競爭性也會越來越激烈。
俗話說:羅馬不是一日建成的,任何事都不可能一蹴而就,包含技術(shù)。在以后的發(fā)展中美團也會逐步更新自己的技術(shù)和開發(fā)語言的。
至少三種語言。后端一種語言(比如Java丶Go丶Python丶PHP等),后端語言及生態(tài)比較成熟。下面重點聊前端App開發(fā)。
前臺兩種語言(Android和iOS是不同的開發(fā)環(huán)境。比如Android用Java或者Kotlin,iOS采用Object C++或Swift),稱之為Native開發(fā)。
當然創(chuàng)業(yè)公司可以用一種前端語言寫App前端,這樣就不需要Android和蘋果分兩種語言寫,寫一次代碼可以編譯成Android和iOS的App,現(xiàn)在通行的方案有Vue之類的DOM渲染模式,以及ReactNative方案(RN)。性能上RN優(yōu)于DOM渲染但低于用Native開發(fā)的App。所以美團這種公司,一定是Native方式寫App,但RN是初創(chuàng)項目不錯的選擇。
與RN競爭的還有一種新貴flutter,是google推出來的,但設(shè)計原理與RN不同,性能方面優(yōu)于RN,只是目前生態(tài)不夠健全,國內(nèi)有閑魚app是采用此技術(shù)。未來可能會占一席之地。
最后,其實App開發(fā)已經(jīng)是強努之末,我覺得主流應(yīng)該是朝PWA和小程序方向發(fā)展。
你好,開發(fā)譬如美團這種APP,用一種語言是實現(xiàn)不了的,一個APP有安卓和蘋果兩個操作系統(tǒng),開發(fā)能在安卓iOS端應(yīng)用的APP主流的開發(fā)語言和技術(shù)是很多的,如后臺有JAVA、C++、PHP、Python等多種開發(fā)語言,前端有kotlin、HTML、css、jquery、ajax、bootstrap、angular.js、react、vue.js、node.js、swift、object-c等多種語言和框架。
一個APP的開發(fā)是需要前端技術(shù)和后臺技術(shù)共同配合完成,這樣的APP不論是功能還是性能都給用戶很好的體驗,單一開發(fā)語言畢竟技術(shù)支持有限,所以即使能開發(fā)出來,APP的用戶體驗也是不理想的。
一般APP有這幾種開發(fā)組合模式:1、原生安卓iOS開發(fā),前端:JAVA、kotlin、swift、object-c后臺:JAVA、PHP、C++等后臺技術(shù),這種模式開發(fā)周期長,成本高,性能好;2、混合APP開發(fā)即hybrid app,前端以網(wǎng)頁技術(shù)為主,穿插原生開發(fā)功能,兼具原生APP和web app的優(yōu)點,如淘寶、微信等應(yīng)用都是走的這個技術(shù);3、web app,前端純網(wǎng)頁技術(shù),后臺為主流開發(fā)語言,這種模式開發(fā)速度快,成本低,界面體驗可能弱一些。
可見開發(fā)一款A(yù)PP大多數(shù)都是多種語言配合完成,謝謝閱讀。
看完之前的評論,依然好奇為什么一個語言不能完全勝任。
前端跨平臺的方案有react native,cordova,flutter等,如果需要兼容開發(fā)小程序,h5頁面,可以采用taro來開發(fā),一套代碼,所有平臺通吃。
后端的方案有服務(wù)端運行時nodejs,大數(shù)據(jù)背景下運用而生的數(shù)據(jù)庫mobgodb,緩存解決方案redis,搜索工具elasticsearch,負載均衡ngix,基本上是需要什么就有什么
所以總結(jié)下來,一句話,一種語言可以實現(xiàn)類似美團這樣的app和小程序。為什么美團使用的語言那么多,一大原因估計是美團app開發(fā)的早,當時前端技術(shù)不成熟,工具沒現(xiàn)在這么多。
使用混合開發(fā)與C++ 進行跨平臺開發(fā),有好有壞。
C++ 進行跨平臺開發(fā)
編寫一次,隨處運行。早在 2013 年,Dropbox 就采用上述策略進行移動開發(fā),這背后的想法很簡單:用 C++ 編寫一次代碼,而不是用 Java 和 Objective-C 編寫兩次。那時,整個移動工程團隊相對還比較小,但需要支持快速增長的移動路線圖。因此,公司希望找到一種方法,使這個小團隊可以快速交付大量 Android 和 iOS 代碼。
如今,Dropbox 完全放棄了這個策略,轉(zhuǎn)而使用各個平臺的原生語言(主要是 Swift 和 Kotlin ,這兩種語言在剛開始制定移動策略時還不存在)。
Hybrid App混合開發(fā)
Hybrid App主要以JS+Native兩者相互調(diào)用為主,從開發(fā)層面實現(xiàn)“一次開發(fā),多處運行”的機制,成為真正適合跨平臺的開發(fā)。Hybrid App兼具了Native App良好用戶體驗的優(yōu)勢,也兼具了Web App使用HTML5跨平臺開發(fā)低成本的優(yōu)勢。
目前已經(jīng)有眾多Hybrid App開發(fā)成功應(yīng)用,比如美團、愛奇藝、支付寶等知名移動應(yīng)用,都是采用Hybrid App開發(fā)模式。
移動應(yīng)用開發(fā)的方式,目前主要有三種:
幾種模似都可以開發(fā)出應(yīng)用,小應(yīng)用無所謂,但是大流量應(yīng)用,對圖形要求高的如 游戲 等原生開發(fā)的效果還是最好
支付寶打開很慢,就是因為采用混合開發(fā),使用人多了不如原生開發(fā)
不行的哦。任何你看到的應(yīng)用和網(wǎng)頁,都需要多個語言開發(fā)的,大的分比如前端和后端,用的語言都是不一樣的
Flutter和前端一樣,采用盒模型。
前端中有用CSS,只用邊框?qū)崿F(xiàn)三角形的案例,這個可以借鑒過來
2018-04-14 借助邊框特性實現(xiàn)邊框三角形
flutter 中用邊框?qū)崿F(xiàn)三角形
web前端入門到實戰(zhàn):通過CSS邊框?qū)崿F(xiàn)三角形和箭頭
不久前,谷歌正式推出 Jetpack Compose 1.0 版本。近日,JetBrains 在此基礎(chǔ)上發(fā)布了 Compose Multiplatform Alpha 版本,旨在將 Compose 擴展到桌面和 Web 端。
Compose Multiplatform 由 Compose for Desktop 和 Compose for Web 組成,通過 Kotlin Multiplatform 支持許多不同的平臺。其中,Compose Desktop 采用 Google 的 Skia 圖形庫,來實現(xiàn)在 Windows、macOS 和 Linux 上的 UI 繪制,借此在所有支持的操作系統(tǒng)中提供統(tǒng)一的體驗,類似于 Flutter 的做法。
根據(jù) Kotlin 團隊的說法,相比起 Electron 框架,Compose Multiplatform 在內(nèi)存消耗、安裝大小和 UI 渲染性能等方面將有更明顯的優(yōu)勢。隨著 Alpha 版本的發(fā)布,Compose Multiplatform 還收獲了新的 Android Studio 插件,包括對在 IDE 中顯示組件預(yù)覽的支持以及許多附加功能。
我們希望通過本文幫助大家進一步了解 Compose 的跨平臺能力,以及 JetBrains 將 Compose 從 Android 擴展到這些其他平臺背后的主要驅(qū)動力是什么。
基于 Jetpack Compose 1.0
由谷歌打造的 Jetpack Compose 是一款用于在 Android 應(yīng)用程序之內(nèi)構(gòu)建用戶界面的官方框架,上周剛剛發(fā)布 1.0 版本。與此同時,Android Studio 代號“極狐”的首個穩(wěn)定版 2020.3.1 也正式亮相。
盡管才剛迎來 1.0,但谷歌表示“目前 Play Store 中已經(jīng)有超過 2000 款應(yīng)用程序在使用 Compose——更重要的是,就連 Play Store 這款應(yīng)用本身也在使用 Compose?!惫雀璺矫孢€表示,“我們一直在與一些頂級應(yīng)用的開發(fā)人員進行合作,他們的反饋和支持幫助我們使 1.0 版本更加強大。”
Jetpack Compose for Android 迎來 1.0 版本
Compose 基于 Kotlin 開發(fā),而 Kotlin 與 Android Studio(即官方指定的 Android IDE)均來自開發(fā)工具廠商 JetBrains。雖然 Jetpack Compose 專為 Android 打造(與谷歌的 Flutter 框架不同), 但 JetBrains 公司堅信 Compose 完全能夠獲得跨平臺能力 。
Compose for Desktop: 這只是開始
Compose Multiplatform 可以說是該框架面向 MacOS、Linux、Windows 以及 Web 開設(shè)的一個端口,目前剛剛發(fā)布 1.0 Alpha 版本。雖然尚處于早期開發(fā)階段,但 JetBrains 表示,其已經(jīng)“為開發(fā)人員帶來能夠基本安全使用的穩(wěn)定 API”。
TheRegister 就此事詢問了 JetBrains 公司 Compose 項目負責人 Nikolay Igotti,希望了解為什么該公司在擁有了已經(jīng)廣泛應(yīng)用于 IntelliJ IDEA IDE 及多種豐富變體的桌面應(yīng)用程序跨平臺 Java 框架之外,還要費力開發(fā) Compose for Desktop。Igotti 的回答是,“舊有 Java 框架基本上就是修改版的 Swing。Swing 屬于默認 JDK UI 框架,Swing 和 AWT(Abstract Windows Toolkit,抽象窗口工具包)。Compose 則完全是另一碼事,當然我們也在設(shè)計中考慮到了互操作性需求……Swing 這套框架太陳舊了,最早出現(xiàn)在上世紀九十年代末。多年來人們對于 UI 的設(shè)計思路已經(jīng)天翻地覆,Swing 顯然滿足不了要求了?!?/p>
JetBrains IDE 中的 Compose for Desktop 項目
Compose 與 Swing 有一個比較大的共同點:與其他使用本機控件的跨平臺框架,比如例如 Java 的 SWT(Standard Widget Toolkit)以及微軟的 Xamarin 有所不同,它們選擇自主繪制控件。Compose 使用的 Skia 開源圖形庫,也在谷歌 Chrome、Flutter 及其他眾多框架當中得到廣泛應(yīng)用。那這是否意味著 Compose 應(yīng)用程序?qū)]有自己的原生外觀?對此,Igotti 的回應(yīng)是,“這取決于開發(fā)人員的選擇,取決于他們?nèi)绾螢閼?yīng)用程序設(shè)置主題。在這方面,Compose 的情況與 Flutter 等其他框架沒什么區(qū)別?!?/p>
那 Compose for Desktop 應(yīng)用程序是否依賴于 JVM(Java Virtual Machine)運行?Igotti 表示,“我們也知道,JVM 應(yīng)用程序的發(fā)布情況可能比較棘手。因此我們提供自己的 Gradle 插件,其使用 jpackage 與 Jlink 以 JVM 應(yīng)用程序為基礎(chǔ)制作原生應(yīng)用程序。Mac 的.dmg、Windows 的 MSI、Linux 的 deb 包等均可實現(xiàn),大家用不著擔心 JVM?!?/p>
也就是說,開發(fā)成果將會是一款被精心包裹起來的 JVM 應(yīng)用程序。JetBrains 還有一款用于解決這個問題的 Kotlin/Native 編譯器,“預(yù)計將在未來發(fā)布,或者專門用于桌面開發(fā)?!?/p>
對應(yīng)用程序的另一種思考方式
那 Web 應(yīng)用程序方面呢?Igotti 回應(yīng)稱,“我們使用 Kotlin/JS 編譯器?!盋ompose 的 Web 版本不如桌面版先進,說明文檔中也警告稱“API 尚未最終確定,預(yù)計會發(fā)生重大變化?!贝送猓m然 Web 版本確實使用 Compose 模型,但 API 卻完全不同,而且會使用 HTML 與 CSS。所以,Web 版與 Compose for Desktop 之間能夠共享的代碼應(yīng)該比較少。
據(jù) Igotti 介紹,“Compose 代表著一種不同的應(yīng)用程序思考方式。狀態(tài)即 UI 的真實來源,而 UI 本身是無狀態(tài)的,其表達永遠由狀態(tài)計算得出。在這方面,Compose for Web 采用一組相同的原語,完全相同的狀態(tài)管理思路。但是對于具體的小部件集合與排列方式,Web 版與桌面版之間確實無法互通?!?/p>
說到這里,為什么要把 Compose for Android 擴展到多種其他平臺之上?“Compose 的目標受眾主要分為三類。首先是使用 Kotlin 與 Compose 的 Android 開發(fā)人員,他們希望把自己的開發(fā)成果交付至其他平臺;其二是純 Kotlin 開發(fā)人員,他們希望以‘一次編寫、隨處運行’的方式開發(fā)新的應(yīng)用程序;第三則是那些不太熟悉 Kotlin 或者 Compose,但又希望開發(fā)出精美 UI 的用戶,我們希望能為他們提供實現(xiàn)目標的工具。”
Igotti 并沒有給出具體的發(fā)布日期,但表示自己希望 Beta 版能在今年秋天發(fā)布,“我們也希望能在今年之內(nèi)推出 1.0 版本?!表椖勘旧硎峭耆_源的,“二十一世紀了,框架在大多數(shù)人們心目中就不應(yīng)該收費。我們只是想開發(fā)一款長期缺失的軟件”,補足 JetBrains 當前商業(yè)模式中的工具鏈。
那么,JetBrains 會在自己的其他工具中使用 Compose 嗎?事實上,他們的 JetBrains Toolbox(用于管理已安裝的 IDE)已經(jīng)在使用 Compose,但 Igotti 表示短時間內(nèi) Compose 還無法取代 IntelliJ IDEA 等現(xiàn)有框架?!熬庉嬈魇瞧渲凶顝?fù)雜也最重要的組件,經(jīng)歷了 20 年的發(fā)展演進,我們幾乎不可能在中途進行重寫了。無論是 JetBrains 還是我個人,都不打算強迫每個人都轉(zhuǎn)而使用 Compose。我們的目標是為原有框架選項滿足不了的用戶提供新的解決方案。”
寫在最后
那么,為什么除了 Flutter 之外,我們還需要另一個跨平臺框架?雖然谷歌的 Flutter 最開始主要面向移動設(shè)備,但現(xiàn)在也開始向桌面及 iOS 進軍,甚至比 Compose 還搶先了一步。不過,根據(jù) StackOverflow 的最新調(diào)查, Flutter 使用的語言為 Dart;盡管 Dart 語言的人氣正在增長(正是受到 Flutter 的推動),但仍然無法與 Kotlin 相提并論。
Compose 代表著一種獨特的 UI 構(gòu)建方法,也許最期待 Compose 跨平臺功能的受眾,正是那些曾在 Android 上使用過它、又特別喜歡這種 UI 構(gòu)建體驗的開發(fā)者。
想要進一步了解 Compose,國內(nèi) Android 開發(fā)者可訪問以下鏈接查看中文手冊:
延伸閱讀: