倉頡語言極速入門——UI全場景實戰(開發者成長叢書 )
定 價:¥109
中 教 價:¥65.40 (6.00折)
庫 存 數: 1
叢 書 名:開發者成長叢書
本書以倉頡的UI實戰為主,語法部分介紹了主要組成部分,快速且形象地闡述了倉頡編程語言的主要特性,讓零編程基礎的新手都可以迅速入門倉頡,在此基礎上結合互聯網熱門垂直領域的潮流App設計,帶您深入場景式UI開發體驗。利用CangjieUI 鴻蒙的組合,能夠讓我們在開發基于DSL的App應用時超快上手,從而可以快速開發基于鴻蒙乃至跨平臺的應用UI。本書共兩部分。第1~9章介紹倉頡基礎編程知識,從零起步介紹了倉頡主要特性如面向對象編程、面向接口編程、函數式編程等,聚焦在語法層面。第10~21章基于強大的CangjieUI框架,實際切入各種場景化的精美AppUI開發案例,助力讀者徹底地掌握使用CangjieUI框架開發各種復雜AppUI的技巧。本書案例豐富,實操性系統性強,輔助讀者更快地掌握本書的要點、難點。本書既可以成為倉頡初學者的入門書,也可以為想從事倉頡應用開發的人士或培訓機構,提供前置知識參考。
本書是一本基礎快速入門加UI實戰的書,有基礎知識,有豐富示例,還有詳細的操作步驟,實操性非常強。本書第1~9章介紹倉頡基礎編程知識,第10~21章屬于UI實戰案例,這些例子彼此之間相互獨立,讀者在掌握了前面的基礎知識后,可以通過11個非常有代表性的App案例項目來全面掌握CangjieUI的開發過程。
近年來,隨著信息產業的國產化浪潮席卷而來,與芯片、操作系統、應用框架、編程語言相關的基礎設施如雨后春筍般崛起。在這個歷史機遇下,以華為公司為代表的一些領頭羊企業成為弄潮兒。OpenHarmony打響了國產自主操作系統的第一槍,而且眾多與OpenHarmony生態相關的公司正在誕生。可以預見,OpenHarmony可以成為與Android、 iOS兩大移動端操作系統比肩的新力量,將來甚至可達到與macOS、Windows等桌面端系統的高度,而華為的另一力作倉頡編程語言,必將是OpenHarmony之上的堅實代碼 依靠。 本書以倉頡的UI實戰為主,語法部分介紹了倉頡編程語言的主要組成部分,形象地闡述了倉頡編程語言的主要特性,讓零編程基礎的新手也可以迅速入門倉頡,在此基礎上結合互聯網熱門垂直領域的潮流App設計,帶領讀者深入場景式UI開發體驗。利用CangjieUI OpenHarmony的組合,能夠讓讀者在開發基于DSL的App時超快上手,從而可以快速開發基于OpenHarmony乃至跨平臺的應用UI。本書主要內容 本書內容是筆者在充分實踐的過程中總結歸納得出的,一共分為兩部分,內容如下: 第1章概要介紹倉頡的定位和主要特性。 第2章介紹如何開發第1個倉頡Hello?World程序。 第3章從一個日常生活的應用場景引出倉頡的語法基礎,讓讀者快速入門這門語言的大部分主要內容。 第4章介紹倉頡語法中的高級類型和類型轉換。 第5章介紹倉頡的面向接口編程理念。 第6章介紹倉頡的函數式編程特性及一些常用的高級函數。 第7章介紹當程序遇到異常時,在倉頡語言中是如何處理的,包括現代編程語言中對空的新式處理。 第8章介紹非常流行的泛型編程,以及泛型接口和泛型約束等新奇方法。 第9章描述在倉頡語言中對異步編程和多線程的處理。 第10章開始全面介紹倉頡的UI框架,以及CangjieUI的基本使用方法。 第11章以咖啡杯的杯型選擇為例,介紹CangjieUI中構建互動式UI的精髓要點,學完此章便可掌握如何快速構建App的UI組件。 第12章給出一個耳目一新的創意應用飛我電瓶車,以打電瓶車為例,構建一個相關的整體UI。 第13章介紹一個智能家居控制的應用鴻蒙之家,覆蓋了家庭內常用的智能化電器控制總覽、單獨控制的UI及用電量的柱狀圖統計互動實現,其中有網格組件Grid的使用,并且實現了一個系統尚未提供開關組件的從零開始的UI和互動實現。 第14章描繪一個非常經典的租車應用主要頁面的實現,以及滾動列表的應用。 第15章帶來筆者在HarmonyOS開發者創新大賽中決賽獲獎作品智能打蒜器第1個版本的UI實現。 第16章是一個日常生活中使用頻率高的應用絕汁水果。實現一個瀑布流的水果縮略圖布局,以及頁面式按鈕的實現。在頁面過渡時,首次使用了共享轉場的視覺特效,非常驚艷。 第17章使用一些CangjieUI中的動畫特效實現了一個旅游應用暢游。啟動頁第一眼看過去就會讓用戶產生旅游的沖動,首頁和內頁的配合和布局恰到好處,可滿足用戶追求高端素雅的旅游產品需求。 第18章來到一個音樂應用起司播客。作為用戶經常使用的一種類型應用,如何布局和配色達到藝術審美是非常重要的。超美且簡潔的UI是用戶使用音樂類App的一大要素。 第19章通過一個風格化的旅游拼團App,來介紹如何通過漸變、瀑布流、頭像堆疊等CangjieUI中的經典用法,實現一個有深度的文化類應用。 第20章以一個Web端的生鮮配送網站為例,介紹CangjieUI在大尺寸屏幕上布局的應用能力。 第21章以一個炫彩流光的美妝電商網站為例,介紹如何制作復雜層次感和在深色系統主題背景下的高級UI組合。為最終使用CangjieUI實現復雜精美的平面應用UI布局打下堅實基礎。閱讀建議 本書是一本基礎快速入門加UI實戰的書,有基礎知識,有豐富示例,還有詳細的操作步驟,實操性非常強。倉頡語言內容較多且處于發展階段,所以本書力求精簡,提供了代碼供讀者參照,由于Cangjie和CangjieUI框架更新比較快,建議讀者屆時獲取最新的源代碼以便可以立即復刻出效果。 本書從第10章開始講解UI實戰案例,讀者在掌握了前面的基礎知識后,可以通過 11個非常有代表性的App案例項目來全面掌握CangjieUI的開發過程。不過讀者無須按部就班地按書中的順序學習這些案例,因為這些例子彼此之間相互獨立,任意選擇其中一章開始即可。本書源代碼和配套資源 掃描下方二維碼,可獲取本書源代碼,以及第11~21章的工程圖片資源。
本書配套資源致謝 首先感謝家人在筆者寫作過程中的理解和鼓勵,使本書的順利出版成為可能,寫作期間一直得到華為倉頡團隊的技術支持,在此表示衷心感謝;其次感謝清華大學出版社趙佳霓編輯的耐心幫助。 由于水平和時間的限制,本書難免存在疏漏之處,請讀者見諒并不吝提出寶貴意見。 張云波 2024年5月
II
III
張云波 ,一個喜歡嘗試前沿領域的自由程序員,花川學院創始人、華為開發專家(Huawei Developer Experts,HDE)、首屆HarmonyOS開發者創新大賽導師、第二屆HarmonyOS開發者創新大賽科技創新獎得主、51CTO開源技術社區MVP、潤和軟件HiHope社區專家、未來杯HarmonyOS技術應用創新大賽導師。曾就職于IBM、SAP、SONY等公司,具有豐富的工作經驗。從蘋果Swift、微信小程序、區塊鏈,到如今的鴻蒙和倉頡,自然不能錯過,希望可以親眼見證IT行業國產化的深度崛起。
第1章 倉頡概覽 11.1 倉頡的定位 11.2 倉頡主要特性 1第2章 第1個倉頡程序 42.1 安裝及查看倉頡版本 42.2 Hello World 52.2.1 編寫第1個程序 52.2.2 代碼編譯和執行 5第3章 倉頡語法基礎 63.1 常量和變量 63.2 類型自動推斷 83.3 兩種數值類型 83.4 布爾類型 83.5 流向控制 93.6 字符串類型 113.7 區間類型 123.8 循環控制 123.9 字符串插值 133.10 函數 133.11 運算符 163.12 使用庫函數 163.13 使用集合類型 173.14 本章小結 20第4章 高級類型 214.1?記錄類型 214.2?枚舉類型 244.3?類 254.3.1?類的封裝 254.3.2?類的繼承和多態 294.4?類型轉換 334.5?本章小結 37第5章 面向接口編程 385.1 接口 385.2 擴展既有類型 405.3 面向接口編程 415.4 定義基礎接口 435.5 實現接口的類型 445.6 給接口擴展默認的實現 535.7 枚舉類型的接口實現 555.8 覆蓋默認行為 555.9 接口的通用化 565.10 本章小結 58第6章 函數高級特性 596.1 函數類型 596.2 使用函數類型的3種方式 606.3 閉包表達式 626.4 尾隨閉包 636.5 函數重載 656.6 構造函數 666.7 系統中的高級函數 666.7.1 map 676.7.2 compactMap 686.7.3 filter 686.7.4 reduce 686.8 本章小結 69第7章 程序異常處理 707.1 異常的分類 707.2 拋出一個異常 717.3 Result類型 737.4 解包Result類型 747.5 Option類型 767.6 本章小結 77第8章 泛型編程 788.1 常見的泛型化案例 788.2 泛型接口 798.3 泛型類型 818.4 泛型函數 838.5 泛型約束 838.6 本章小結 84第9章 異步編程 859.1 新線程 859.2 異步等待 929.3 線程休眠 103第10章 倉頡UI框架 10410.1 文件組織 10410.2 聲明式語法 10510.3 狀態管理 10510.4 生命周期 10710.5 裝飾器變量 10710.6 樣式 10810.7 常用組件 10910.7.1 容器組件 10910.7.2 獨立組件 11210.8 系統接口現狀 115第11章 倉頡UI實戰案例:咖啡杯 11611.1 杯型定義 11711.2 定義資源 11811.2.1 圖片資源 11811.2.2 文字資源 11811.2.3 顏色資源 11911.3 新建組件的源碼文件 12011.4 數據源和狀態變量定義 12011.5 單個杯型的布局 12111.6 樣式定義 12111.7 條件樣式 12211.8 用戶互動 12211.9 循環渲染 12311.10 容器包裝 12411.10.1 序號顯示 12411.10.2 均分空間 12511.10.3 描邊和圓角 12611.11 組合 12711.12 組件重用 128第12章 倉頡UI案例:飛我電瓶車 13012.1 資源導入 13112.2 啟動頁結構 13112.3 最終啟動頁 13712.4 加載指示器組件 14012.4.1 組件結構 14012.4.2 旋轉動畫 14112.5 目的地頁 14112.5.1 歷史數據 14112.5.2 狀態變量 14212.5.3 下單函數 14212.5.4 彈性面板組件 14312.5.5 List組件 14312.5.6 組合 14412.6 下單成功提示頁 14912.6.1 狀態變量 14912.6.2 純組件 15012.6.3 預覽用組件 15212.6.4 組合 15312.7 騎手當前位置頁 15612.7.1 狀態變量 15612.7.2 純組件 15712.7.3 預覽用組件 158第13章 倉頡UI案例:鴻蒙之家 16013.1 資源導入 16013.2 啟動頁 16113.2.1 橫幅數據 16113.2.2 組件結構 16213.2.3 開始按鈕 16313.3 首頁 16413.3.1 全屋智能家電數據 16413.3.2 導航區域 16513.3.3 數據網格 16613.3.4 選項條 16913.3.5 組合 17013.4 開關組件 17013.4.1 組件結構 17013.4.2 狀態變量 17113.4.3 顏色定義 17113.4.4 單擊動畫 17113.4.5 純組件 17213.4.6 預覽用組件 17213.4.7 組合 17313.5 房屋智能讀數結構 17313.6 用電量組件 17413.6.1 狀態變量 17413.6.2 組件結構 17513.6.3 組合測試 17713.7 詳情頁 18113.7.1 狀態變量 18113.7.2 導航欄 18213.7.3 溫濕度卡片 18213.7.4 用電量柱狀圖 18413.7.5 設備列表卡片 18413.7.6 組合測試 187第14章 倉頡UI案例:卡星租車 19614.1 資源導入 19814.2 啟動頁結構 19914.2.1 躍動的標志 19914.2.2 中部文本 20014.2.3 底部按鈕 20114.2.4 組合 20214.3 車型數據結構 20214.4 地圖定位頁 20314.5 預訂頁 20514.5.1 搜索欄 20614.5.2 標題欄 20714.5.3 篩選欄 20714.5.4 車型列表區域 20914.5.5 組合 21314.6 車型詳情頁 21314.6.1 狀態變量 21414.6.2 純組件 21414.6.3 組合 223第15章 倉頡UI案例:智能打蒜器 22415.1 資源導入 22515.2 首頁結構 22615.3 功能層 22615.3.1 狀態變量 22615.3.2 面板控制區域 22615.3.3 文字提示區域 22715.4 開關燈指示層 227第16章 倉頡UI案例:絕汁水果 22916.1 資源導入 23016.2 啟動頁結構 23116.2.1 橫幅數據 23116.2.2 橫幅組件 23116.2.3 進入按鈕 23316.2.4 組合 23316.3 首頁 23416.3.1 狀態變量 23416.3.2 標題欄 23616.3.3 水果卡片 23716.3.4 組合 24016.4 詳情頁 24016.4.1 狀態變量 24116.4.2 添加至購物車函數 24116.4.3 頁面結構 24216.4.4 組合 246第17章 倉頡UI案例:暢游 24717.1 資源導入 24817.2 啟動頁結構 24917.2.1 背景層 24917.2.2 文字層 25017.2.3 動效層 25217.2.4 組合 25417.3 首頁 25517.3.1 旅游產品數據 25517.3.2 狀態變量 25617.3.3 導航欄 25617.3.4 文字欄 25717.3.5 篩選欄 25717.3.6 旅游卡片列表 25817.3.7 選項卡 26017.3.8 組合 26117.4 詳情頁 26217.4.1 狀態變量 26217.4.2 背景層 26217.4.3 導航欄 26217.4.4 品名和價格區 26317.4.5 預訂區 26517.4.6 組合 268第18章 倉頡UI案例:起司播客 27018.1 資源導入 27118.2 首頁結構 27218.2.1 導航欄 27218.2.2 分類標題 27318.2.3 分類卡片列表 27318.2.4 篩選欄 27818.2.5 音樂列表 28018.2.6 組合 28418.3 頻道頁 28518.3.1?播客作品數據 28518.3.2 導航欄 28618.3.3 播客個人信息區域 28618.3.4 播客作品列表 28718.3.5 組合 28918.4 播放頁 29018.4.1 狀態變量 29018.4.2 導航欄 29118.4.3 作品大圖 29218.4.4 作品名和作者 29218.4.5 播放控制按鈕 29318.4.6 組合 294第19章 倉頡UI案例:世界巡游團 29519.1 資源導入 29619.2 啟動頁 29719.2.1 封面組件 29719.2.2 啟動按鈕組件 30219.2.3 背景色 30319.2.4 右側封面修正 30319.2.5 組合 30419.3 首頁 30619.3.1 導航組件 30619.3.2 口號文字組件 30819.3.3 搜索條組件 30919.3.4 篩選按鈕欄 31119.3.5 推薦卡片列表組件 31519.3.6 選項卡組件 33119.3.7 首頁的調整優化 33519.4 詳情頁 33819.4.1 導航欄 33819.4.2 縮略圖列表 34019.4.3 詳情卡片 34219.4.4 組合 350第20章 倉頡UI案例:生鮮配送網 35320.1 資源導入 35420.2 首頁結構 35520.3 導航 35520.3.1 陰影層 35620.3.2 菜單層 35720.3.3 菜單陰影效果 35720.3.4 菜單內容 35820.4 上半部分 36220.4.1 背景圖片層 36320.4.2 主題文字層 36720.4.3 右側指示圖片層 37120.4.4 組合 37220.5 中間部分 37920.6 下半部分 38020.6.1 卡片結構 38020.6.2 卡片背景 38120.6.3 卡片內容 38320.6.4 卡片列表 38820.6.5 卡片列表容器背景 39320.6.6 組合 39420.7 下半屏預覽 395第21章 倉頡UI案例:溢彩美妝網 39721.1 資源導入 39821.2 啟動頁結構 39921.3 背景層 39921.3.1 漸變流動光影 39921.3.2 圖形襯邊 40121.3.3 組合 40721.4 導航 41021.4.1 大標題 41021.4.2 導航菜單 41021.4.3 右側圖標組 41121.4.4 組合 41221.5 主題文字區 41421.5.1 小標題 41421.5.2 大標題 41521.5.3 副標題 41621.5.4 按鈕組 41621.5.5 組合 41721.6 圖片區 42021.6.1 雙卡片組 42021.6.2 橫幅卡片 42121.6.3 組合 42121.7 評價浮層 42421.7.1 評價卡片 42421.7.2 評價頭像 42521.7.3 組合 42521.8 組裝首頁 427
VI
VII