18天前,我为我自己带来了一个专注于在公共场所学习和建设的challenge。是时候反思我所取得的成就了。
在这篇文章中,我决定不殴打灌木丛,并迅速总结了我在过去的9天中所做的一切。
我的一周现在由9天组成,但这还可以,因为我计划了持续2个月而不是8周的挑战。它始于8月4日,将于10月4日结束,所以我实际上有61天。这是合法的举动吗? ð应该是。
快速摘要
无论如何,在本周,我专注于管理Android的状态。这很重要,因为否则,当他们转动屏幕,切换到黑暗/光模式等时,我们会丢失用户的输入。当系统杀死应用程序以保存内存的过程时,也会发生同样的情况。
这并不像看起来那么容易!不幸的是,使用remember { mutableStateOf() }
还不够。
我们还具有副作用的代码,该代码超出了可组合功能的范围。菲利普·拉克纳(Philipp Lackner)在这个主题上有一个great video。但是观看它不足以理解。所以我玩了。
也很难理解derivedStateOf
,但是my question in Kotlin Slack和一些研究的答案表明了这一点。简而言之,仅在极少数情况下使用derivedStateOf
。但是在这些极少数情况下,它对性能非常有用。
还学会了有关Gradle的新知识。主要是我们可以为minSdk
使用不同的产品口味。因此,我重构my project仅在使用Android版本小于26的设备上运行时使用核心库。
找到了如何创建版本APK版本。当我的应用程序发布速度比调试更快时,终于松了一口气。那是因为我以为存在性能问题,而我做错了。 ðÖ
学习资源
这是帮助我学习的资源。
高级状态和副作用
- Advanced State and Side Effects in Jetpack Compose | Android Developers
- Should You Use Compose State or StateFlow in Your ViewModels?
- Full Guide to Jetpack Compose Effect Handlers
- My question in Kotlin Slack about derivedStateOf(但是您可能需要成为会员才能看到它)
-
Gabor解释了如何创建一个国家持有人,但可以保存在
SavedStateHandle
中,因此可以在该过程中生存死亡 - What is the best way to pass a default/initial value to a Jetpack Compose TextField?
gradle
- Sorting and Reporting Your Dependencies with Gradle with Ed George, Android Worldwide
- Gradle for Beginners (Build Types, Product Flavors, Build Variants, Source Sets)
进步
本周我决定专注于学习。尽管我在最近的学习项目中添加了一些功能,但我没有在真正的应用程序上工作。
afaik,这是我需要知道的主要概念才能构建MVP:
- Android Basics
- kotlin
- JetPack构成基础知识
- 高级状态,副作用和gradle
- 导航和性能
- 高级Kotlin,Coroutines和Flow
- 数据库和模块化
- 依赖注入
- 架构(MVVM,MVI)
我在过去一周里所在的地方
所以我很高兴将这个学习Android bar增加5%ð
使我的应用仍然保持在5%。我曾经对此感到难过,但是在过去的一周中,我意识到了一些结束了这种感觉的事情。我可能会为此撰写单独的博客文章。
调整到全新的9天周的性能ð
My challenge
5/6推文
1/1文章(这一篇)
VC’s Healthy Habits challenge
â€编程: 45/48
家庭:每周至少做1家家务
- 体育活动: 6/6次
休息:每天至少有1h
±学习英语: 14/42
â€每日评论:总结了我每天所做的一切
挑战更新
很棒的开始,然后随着时间的流逝而改善。因此,这是我对挑战规则的改进:
新习惯每天遵循时间表。我发现我仍然与定义的时间表不同步。因此,我对其进行了调整,并增加了这个习惯。这主要是在上午7点起床,并在11:30 12:00 pm闭上眼睛。
每天工作1小时。这对我来说实际上不是问题。我通常的工作胜于计划,因为我喜欢编程,并且可以将其搁置一旁。我的问题是不要忘记其他活动,不要花时间。但是正如我所说的,我更改了时间表,现在应该可以。
每周2篇文章(或9天ð)。我有很多想法,草稿和笔记,但是可以找到写作时间。
结尾
我主要是为自己写这篇文章。但是,如果您读到这么远,请感谢您对我的兴趣。 ðρ
如果您正在学习Android并与其中一些主题进行斗争,则可以在Twitter上DM我或给我发送电子邮件(daniel.rendox@gmail.com),我们会一起弄清楚。