近年来,随着信息产业的国产化浪潮席卷而来,与芯片、操作系统、应用框架、编程语言相关的基础设施如雨后春笋般崛起。在这个历史机遇下,以华为公司为代表的一些领头羊企业成为弄潮儿。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