既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
开干
依照规则采用Compose
项目模板创建了我的作品LovePet
。可能是英文还不够好亦或是急于求成,对于部分参赛规则的描述的没有看明白就开始敲代码了。这也为后面发生的故事买下了伏笔。
应用的要求比较简单,涉及到主题,布局和跳转这三块知识。但因为是第一次使用Compose
这种声明式的UI框架,学习是免不了的,Google友好的开发文档着实帮上了忙。
一番探索下来应用的基本思路就定下来了。
LazyColumn
实现列表Row
实现列表itemNavigation
实现画面跳转Card
实现详情页面
料想到简单的开发需求必将导致提交的设计大同小异。所以在基本要求以外加了些自己的设计想法。
- 找了可爱的小狗的图标精心设计了应用的logo
- 将列表item错位布局,而不都是顶格排布,显得有层次感
- 在详情card里添加
like
图标和adopt
的按钮,以完善UI交互 - 整体采用亮黄色填充背景,紫绀色展示内容的风格
上一下最终效果。
感兴趣的朋友可以参考和star。
提交
代码提交之后Github上的check徽章始终显示failing
,这时候我才意识到什么地方有问题,转而逐字逐句地查看模板上的详细说明。
其中这条说明,我在第一次看到的时候就没能完全理解并未重视,看来大概率是这个地方不合规范。
查阅了Workflow
的资料之后终于明白,Github项目支持设置Workflow,每次代码变动后将自动执行预设的Workflow,项目的Actions视图也可查看其执行的日志方便回溯。
Compose的项目模板预设的Workflow则是Spotless检查和编译测试。
Spotless
工具可以检查和调整代码的格式,像通配符*的粗暴import是不被允许的。执行了格式检查后check workflow便可以通过了,项目的徽章如愿显示了passing
。
对于Spotless
这类工具是否有存在的必要难以做出公允的评价。一方面它确实高效;另一方面自动调整格式甚至可能改变代码顺序则会留下隐患。尤其对于大型项目,未知地方的代码被改动是件很恐怖的事情,因为谁也无法保证代码的逻辑和布局的结构不受其影响。
所以面对demo级程序或不熟悉的语言,可以采用这类工具协助学习和适应代码规范。而对于熟知的语言或成熟的项目,最好在编码阶段就按语法规范去coding。
插曲
workflow passing之后,我以为万事大吉,便把这事给忘了。两天后(距离第1场大赛截止还有不到两天)我在网上搜索Croutines
资料的时候,无意看到了有篇在讲Compose大赛的文章。
本想着大赛我都搞定了还看个啥,但技术人严重的好奇心和良好的学习态度还是促使我点了进去。(2分钟后我将会无比佩服这个决定,相反如果没有点进去的话事后我也将无比后悔。)
这篇文章非常详尽地阐述了大赛的各项细节,尤其提到了我当时因为科学上网的小麻烦而忽略的一个重要规则:将应用的截图发推,并提交项目地址和推文链接。
文章链接:Jetpack Compose迎来Beta版!!快来参加Android开发挑战赛!!
我好不容易代码写好了最后没提交,等于Google人家压根不知道你参赛了,岂不太冤。。。但说实在的必须要吐槽一下,Google记载这次比赛规则的地方不是很统一,公众号,github和官网分别记载了部分规则,我相信并不只有我一个人忽略了某个规则。
火急火燎地发完推文提交好信息后已是凌晨一点了。那会已处于大赛的后半段,想要闯进前五百明显有点悬了,毕竟这是在和全球开发者PK。
就在犯嘀咕的时候我无意中瞥见了文章作者的ID,有点眼熟。仔细一回想,和我以前组长的微信ID好像是一样的。他的ID是一个英文单词,不认识,有点像Coldplay乐队的名曲viva la vida
的歌名,但又不完全一样,所以印象较深。
经过求证得知那果然是他的博客,真得很巧,时隔多年又以这种方式指引了我。 我翻阅了他的其他文章,意外发现早前就已经看过他好几篇文章却没能认出来,哈哈。
我在此隆重推荐他的博客,内容新颖、诚意满满,别的领域不说在android领域那是真的能够帮到你。
收获
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**