其他
参加Google Compose挑战赛的趣事
最近工作比较忙,再加上参加了Google的Compose挑战赛,Jetpack框架的学习进度放缓了些。
前言
Compose
框架趋于稳定亟待正式公开。同时为了让开发者们尽早上手和测试这个框架,Google搞了个大动作,宣布启动历时4周,每周提交一个Compose作品的设计大赛。Compose
的热情,第一波气氛看来是“躁”起来了。接下来我将回顾下参加第1周挑战赛发生的趣事。
缘起
Android 开发挑战赛: Jetpack Compose 助您起飞!
宠物领养
应用,包含宠物列表和宠物详情两个页面即可。看起来开发难度不大,再加上前五百个完成挑战的人便可获得Google和乐高联名的 Jetpack喷气人积木
,我瞬间就产生了兴趣,下班到家就开干。开干
Compose
项目模板创建了我的作品LovePet
。可能是英文还不够好亦或是急于求成,对于部分参赛规则的描述的没有看明白就开始敲代码了。这也为后面发生的故事埋下了伏笔。https://github.com/android/android-dev-challenge-compose
Compose
这种声明式的UI框架,学习是免不了的,Google友好的开发文档着实帮上了忙。https://developer.android.google.cn/jetpack/compose/themes
https://developer.android.google.cn/jetpack/compose/layout
https://developer.android.google.cn/jetpack/compose/navigation
LazyColumn
实现列表Row
实现列表itemNavigation
实现画面跳转Card
实现详情页面
料想到简单的开发需求必将导致提交的设计大同小异。所以在基本要求以外加了些自己的设计想法。
找了可爱的小狗的图标精心设计了应用的logo 将列表item错位布局,而不都是顶格排布,显得有层次感 在详情card里添加 like
图标和adopt
的按钮,以完善UI交互整体采用亮黄色填充背景,紫绀色展示内容的风格
感兴趣的朋友可以参考和star。
https://github.com/ellisonchan/LovePet
提交
failing
,这时候我才意识到什么地方有问题,转而逐字逐句地查看模板上的详细说明。查阅了
Workflow
的资料之后终于明白,Github项目支持设置Workflow,每次代码变动后将自动执行预设的Workflow,项目的Actions视图也可查看其执行的日志方便回溯。https://github.com/android/android-dev-challenge-compose/blob/main/.github/workflows/Check.yaml
Spotless
工具可以检查和调整代码的格式,像通配符*的粗暴import是不被允许的。执行了格式检查后check workflow便可以通过了,项目的徽章如愿显示了passing
。对于
Spotless
这类工具是否有存在的必要难以做出公允的评价。一方面它确实高效;另一方面自动调整格式甚至可能改变代码顺序则会留下隐患。尤其对于大型项目,未知地方的代码被改动是件很恐怖的事情,因为谁也无法保证代码的逻辑和布局的结构不受其影响。插曲
Croutines
资料的时候,无意看到了有篇在讲Compose大赛的文章。https://blog.csdn.net/vitaviva/article/details/114195481
viva la vida
,但又不完全一样,所以记得比较清楚。)https://blog.csdn.net/vitaviva
收获
Compose
框架的优势让我印象深刻。简洁的代码 便捷的视图预览等AS功能的支持 专注于界面的声明式UI编程方式 构建高性能的原生界面 与Material design和Jetpack框架的完美搭配
感触
他的个人描述略长,但我注意到了几个关键字:engineer,google,compose。细看发现来头不小,他原来是Google公司Compose框架的发起人,能够收到他的点赞倍感荣幸。
Compose
框架背后的故事。早在2017年他便开始提议并着手Compose的开发工作,耗时四年时至近期才熬到beta版的发布。我不禁地佩服Google这类大公司,为了一项新技术所愿意付出的时间,努力,财力和决心。
结语
遇到新事物勇敢地迈出第一步,很多疑虑会在尝试中迎刃而解,很多自认做不到的事情竟能水道渠成。 如果你真的想做成一件事情,那就尽最大努力研究透这件事情相关的所有细节。不要因为一些小困难小麻烦就想着回避想着无视,后面真的会暴雷,间隔或长或久。 塞温失马焉知非福,如果没有走错路那有机会发生后面的故事。
LovePet
app现在的功能尚不完善,存在很多可以扩展的点,后面将继续使用Compose
框架充实壮大这个app。相关技术也将发布到Compose开发篇章里,尽请期待。