我过去的9天一周的快速摘要
#100daysofcode #android #learning

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版本。当我的应用程序发布速度比调试更快时,终于松了一口气。那是因为我以为存在性能问题,而我做错了。 ðÖ

学习资源

这是帮助我学习的资源。

高级状态和副作用

  1. Advanced State and Side Effects in Jetpack Compose  |  Android Developers
  2. Should You Use Compose State or StateFlow in Your ViewModels?
  3. Full Guide to Jetpack Compose Effect Handlers
  4. My question in Kotlin Slack about derivedStateOf(但是您可能需要成为会员才能看到它)
  5. Gabor解释了如何创建一个国家持有人,但可以保存在SavedStateHandle中,因此可以在该过程中生存死亡 - What is the best way to pass a default/initial value to a Jetpack Compose TextField?

gradle

  1. Sorting and Reporting Your Dependencies with Gradle with Ed George, Android Worldwide
  2. Gradle for Beginners (Build Types, Product Flavors, Build Variants, Source Sets)

进步

本周我决定专注于学习。尽管我在最近的学习项目中添加了一些功能,但我没有在真正的应用程序上工作。

afaik,这是我需要知道的主要概念才能构建MVP:

  1. Android Basics
  2. kotlin
  3. JetPack构成基础知识
  4. 高级状态,副作用和gradle
  5. 导航和性能
  6. 高级Kotlin,Coroutines和Flow
  7. 数据库和模块化
  8. 依赖注入
  9. 架构(MVVM,MVI)

我在过去一周里所在的地方


所以我很高兴将这个学习Android bar增加5%ð

Two lables and progress bars: 1. Make my app — 5%, 2. Learn android — 45%.

使我的应用仍然保持在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),我们会一起弄清楚。