<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么大廠(chǎng)開(kāi)始全面轉(zhuǎn)向Compose?

          共 2314字,需瀏覽 5分鐘

           ·

          2022-04-10 00:44

          縱觀Android發(fā)展至今,十余年間Google一直在針對(duì)不同的主題對(duì)它進(jìn)行整改補(bǔ)強(qiáng),其目的就是為了給開(kāi)發(fā)者們一個(gè)更加舒適高效的開(kāi)發(fā)平臺(tái),更好地實(shí)現(xiàn)各種功能。


          然而在UI構(gòu)建方面,最初的那一套UI體系基本還是沿用至今,基本沒(méi)有什么改變。就現(xiàn)在的發(fā)展趨勢(shì)來(lái)說(shuō),傳統(tǒng)的UI架構(gòu)讓很多開(kāi)發(fā)者表示苦不堪言:UI的構(gòu)建需要大量的代碼,寫(xiě)個(gè)自定義View需要實(shí)現(xiàn)測(cè)量、布局,響應(yīng)用戶(hù)行為需要滿(mǎn)篇的Listener事件,與此同時(shí),還得配合上XML自定義屬性,可以說(shuō)是繁瑣至極。而且從現(xiàn)有的代碼體量來(lái)說(shuō),優(yōu)化重構(gòu)基本是天方夜譚。



          Compose應(yīng)運(yùn)而生


          無(wú)法優(yōu)化重構(gòu),那么就只能創(chuàng)造新的架構(gòu)來(lái)進(jìn)行開(kāi)發(fā)。自Flutter之后,Google也是正式發(fā)布了Compose1.0。早在1.0版本正式發(fā)布之前,很多大廠(chǎng)就已經(jīng)在用Compose進(jìn)行UI的編寫(xiě)了,并且都對(duì)這個(gè)新貴贊不絕口:




          很多人可能都會(huì)有疑問(wèn):有了Flutter,為什么還要推出Compose,這不是自己打臉嗎(其實(shí)主要是也學(xué)不過(guò)來(lái)了)?

          雖然同為聲明式UI,二者雖然比較相似,但究其根本定位還是不盡相同:


          Flutter:作為一款專(zhuān)為跨平臺(tái)而生的框架,從上到下都透露著大膽和創(chuàng)新,選擇Dart已經(jīng)是膽大包天,在Web平臺(tái)支持選用Canvaskit?的WebAssembly 模式更是足夠冒進(jìn),很多人難以接受他的任性



          Flutter架構(gòu)圖(圖片來(lái)自網(wǎng)絡(luò))


          Compose:Compose則是一個(gè)全新的UI庫(kù),隸屬Jetpack中的一員,它的出現(xiàn)是為了重新定義Android UI的開(kāi)發(fā)方式,相比原生Android UI的開(kāi)發(fā)方式,它大幅度提高了原生UI的開(kāi)發(fā)效率:

          • 聲明式UI,不需要手動(dòng)刷新數(shù)據(jù)

          • 去掉XML,完全解除了混合寫(xiě)法(xml+Java、kotlin)的局限性

          • 超強(qiáng)兼容性,大多數(shù)常用庫(kù)(如Navigation、ViewModel和Kotlin協(xié)程)都適用于Compose,Compose 能夠與現(xiàn)有 View 體系并存,你可以為一個(gè)既有項(xiàng)目引入 Compose

          • 加速開(kāi)發(fā),為我們提供了很多開(kāi)箱即用的Material 組件,如果的APP是使用的material設(shè)計(jì)的話(huà),那么使用Jetpack Compose 能讓你節(jié)省不少精力。

          • 精簡(jiǎn)代碼數(shù)量,減少bug的出現(xiàn)

          • 功能完備,可以完全覆蓋Android現(xiàn)有視圖系統(tǒng)的所有能力

          • 實(shí)時(shí)預(yù)覽,Compose 預(yù)覽機(jī)制可以做到與真機(jī)無(wú)異,真正的所見(jiàn)所即得


          相比之下,二者的區(qū)別一目了然:如果想做一個(gè)多端跨平臺(tái)開(kāi)發(fā)者,那么Flutter會(huì)讓你如虎添翼;想要繼續(xù)扎根Android深耕細(xì)作,那么Compose更適合作為你學(xué)習(xí)的第一選擇。



          但是對(duì)于大部分開(kāi)發(fā)者來(lái)說(shuō),Compose確實(shí)是一套比較難學(xué)的東西,它是一個(gè)完整的、全新的框架:渲染機(jī)制、布局機(jī)制、觸摸算法以及 UI 的具體寫(xiě)法,全都是新的拋棄了我們寫(xiě)了 N 年的 View 和 ViewGroup 那一套東西。但是想要讓自己跟上時(shí)代,成為真正的技術(shù)人員,對(duì)于這種可以提高生產(chǎn)力的技術(shù),則一定要盡可能掌握它,不能抱有任何借口。


          為了幫助大家更好地理解Compose這個(gè)新技術(shù)風(fēng)口,早日跟上時(shí)代潮流,這里給大家介紹一份谷歌大佬強(qiáng)勢(shì)分享《Jetpack Compose-從入門(mén)到精通》,手把手帶大家領(lǐng)略Compose的風(fēng)采。

          掃碼即可領(lǐng)取


          這份資料旨在給希望了解、學(xué)習(xí)、應(yīng)用Android Jetpack Compose的小伙伴一個(gè)參考資料:

          第一章 初識(shí)Jetpack Compoese

          1. 為什么我們需要一個(gè)新的UI 工具?

          2. Jetpack Compose的著重點(diǎn)?

          加速開(kāi)發(fā)

          強(qiáng)大的UI工具

          直觀的Kotlin API

          3. API 設(shè)計(jì)?

          4. Compose API 的原則?

          一切都是函數(shù)

          頂層函數(shù)(Top-level function)

          組合優(yōu)于繼承

          信任單一來(lái)源

          5. 深入了解Compose?

          Core

          Foundation

          Material

          6. 插槽API


          第二章 Jetpack Compose構(gòu)建Android UI

          1. Android Jetpack Compose 最全上手指南

          Jetpack Compose 環(huán)境準(zhǔn)備和Hello World

          布局

          使用Material design 設(shè)計(jì)

          Compose 布局實(shí)時(shí)預(yù)覽

          ……


          2. 深入詳解 Jetpack Compose | 優(yōu)化 UI 構(gòu)建

          Compose 所解決的問(wèn)題

          Composable 函數(shù)剖析

          聲明式 UI

          組合 vs 繼承

          封裝

          重組

          ……

          3. 深入詳解 Jetpack Compose | 實(shí)現(xiàn)原理

          @Composable 注解意味著什么?

          執(zhí)行模式

          Positional Memoization (位置記憶化)

          存儲(chǔ)參數(shù)

          重組

          ……


          第三章?Jetpack Compose實(shí)戰(zhàn)演練

          1. Jetpack Compose應(yīng)用1

          開(kāi)始前的準(zhǔn)備

          創(chuàng)建DEMO

          遇到的問(wèn)題

          2. Jetpack Compose應(yīng)用2

          3. Jetpack Compose應(yīng)用做一個(gè)倒計(jì)時(shí)器

          數(shù)據(jù)結(jié)構(gòu)

          倒計(jì)時(shí)功能

          狀態(tài)模式

          Compose 布局

          繪制時(shí)鐘

          4. 用Jetpack Compose寫(xiě)一個(gè)玩安卓App

          準(zhǔn)備工作

          引入依賴(lài)

          新建 Activity

          創(chuàng)建 Compose

          PlayTheme

          畫(huà)頁(yè)面

          底部導(dǎo)航欄

          管理狀態(tài)

          添加頁(yè)面

          5. 用Compose Android 寫(xiě)一個(gè)天氣應(yīng)用

          開(kāi)篇

          畫(huà)頁(yè)面

          畫(huà)背景

          畫(huà)內(nèi)容

          ……

          6. 用Compose快速打造一個(gè)“電影App”

          成品

          實(shí)現(xiàn)方案

          實(shí)戰(zhàn)

          不足

          ……



          想要全方位系統(tǒng)學(xué)習(xí)了解Compose,那么這份《Jetpack Compose-從入門(mén)到精通》你一定不要錯(cuò)過(guò)。



          掃碼即可領(lǐng)取

          瀏覽 102
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99青青五月丁香 | www一级片 | 国产无遮挡裸体色视频免费观看 | 爱操视频网 | 黄色视频网站在线 |