自学Andorid开发一周小结
所属分类:Android | 发布于 2023-02-26 11:34:34
从20号正式开始学习android开发,到今天刚好是第七天,来做个一周小结吧。
1、学习前奏
因为有了之前学习Swift和SwiftUI的经验,在学习Andorid之前,就确定了学习Kotlin和Jetpack Compose来开发android app。到正式开始学习之前,一直想的是就学这两个,以为是跟iOS开发一样,就使用Jetpack compose来写界面,使用Kotlin来写业务逻辑。
当真正开始学习的时候,我发现是我想多了,跟SwiftUI来写iOS应用不一样,写Android app,只用Jetpack compose是不够的,因为Jetpack compose只能够编写界面元素,但是一个app会有其它的附近功能,比如导航,比如存储等等,要实现这些功能,只学一个Jetpack compose就远远不够用了。所以谷歌官方推出了Jetpack套件,包含了activity、fragment、hilt、lifecycle、paging、navigation、room等等,compose这是这个套件里的一个库。
2、一周经历
学习的第一天真是一脸懵,海量的知识扑面而来。然后就用了两天时间把Jetpack compose的官方文档看了遍,还有《Jetpack Compose从入门到实战》这本书,需要的那几章也过了一遍,在网上搜索jetpack compose的视频教程,在第二天晚上,感觉还是挺痛苦的,不由得打起来退堂鼓,感觉比iOS开发难多了,这么多知识,我能学会吗。
后来就用一句话给自己打气:”学习的过程是痛苦的,但是结果是快乐的“。
等到第三天晚上,哇哦,好像有点感觉了,有思路了,自己好像能入门了。
从有了思路后,学习进度好像顺利起来了,对着视频教程写案例,好像也不是那么痛苦了,第四天第五天把自己需要的知识点都学了一遍,包括导航、网络请求、状态与事件、架构模式,到周五晚上,感觉学的差不多了,貌似可以开始开发App了。
到周六正式开始写app,到目前为止,还挺顺利的。
3、几种架构模式
在刚开始学习的时候,看到一个文章里有这样一句话,jetpack中的viewmodel不是MVVM中的viewmodel,,虽然当时不懂它在说什么,但是这句话深深的印在了脑海里。
在用SwiftUI开发的时候,就使用的是MVVM的模式,但是直到我的app写完,我对MVVM模式的理解还是模糊的,使用了ViewModel就是MVVM模式吗,在学习Andorid开发的时候,又遇到了这个问题,而且andoid这里,关于架构模式的套路会更多。在经历了查阅资料和实践后,貌似对各种模式有了思路,来看看吧。
MVC:最传统的架构模式,在Controller里面处理各种业务逻辑,View和Model相互依赖。
MVP:为了解决View和Model相互依赖,职责清晰的问题,于是出现了MVP架构,P指的是Presenter,Presenter通过调用View的方法实现UI的更新,
MVVM:相对于MVP的接口通信,MVVM观察者模式来进行通信,具体来说就是使用动态绑定,当UI观察到来自ViewModel的数据变化时自我更新。这里的绑定可以是双向绑定,也可以是单向绑定。
MVI:这是最新的架构,I是Indent的简写,在Android里也有Indent的概念,翻译为意图,和android里的indent不同,这里的indent可以理解为用户的意图,是对用户操作的封装形式。这样理解一下,MVI就是使用了单向数据流的MVVM,更强调数据的单向流动和唯一数据源,单向数据流指的是状态总是从上往下传递,事件总是从下往上传递。
最后一句总结:”没有最好的架构,只有最合适的架构“。