设计Android应用程序架构的基本指南:MVP:第2部分
原文链接:https://blog.mindorks.com/essential-guide-for-designing-your-android-app-architecture-mvp-part-2-b2ac6f3f9637
目前机翻,待修正。
这是本系列文章的第二部分。在第一部分中,我们开发了MVP的概念,并为android应用程序架构制定了蓝图。如果您还没有阅读第一部分,那么下面的大部分内容都没有多大意义。所以,在继续前进之前先完成第一部分。
我们将基于本系列文章第一部分中描述的蓝图开发一个完整的Android应用程序来实现MVP架构。
开发此项目是为了提供构建Android应用程序的正确方法。它包含了android应用程序大部分内容所需的所有代码。
该项目最初看起来会非常复杂,但随着您将花时间探索,这对您来说将变得非常明显。该项目使用Dagger2,Rxjava,FastAndroidNetworking和PlaceHolderView构建。
以此项目为案例研究。研究它的每一个代码。如果存在某些错误,或者您可以提出更好的逻辑实现,则创建一个拉取请求。我们正在逐步编写测试,因此可以自由地为它们做出贡献并为它们创建拉取请求。
开发的应用程序的屏幕如下:
这个应用程序有一个登录屏幕和一个主屏幕。登录屏幕实现谷歌,Facebook和服务器登录。google和facebook登录是通过虚拟api实现的。登录基于访问令牌检索,后续api调用受此令牌保护。主屏幕创建带有与MVP相关的问题的抽认卡。此repo包含代码,用于演示任何应用程序的骨架方面的大多数可能的应用程序组件。
我们来看一下项目结构:
整个应用程序分为五个部分:
- data:它包含访问和操作组件的所有数据。
- di:使用Dagger2提供类的依赖关系。
- ui:查看类及其相应的演示者。
- 服务:应用程序的服务。
- utils:实用程序类。
类的设计方式使其可以继承并最大化代码重用。
项目结构图:
最简单的想法在他们的概念中最为复杂。
有很多有趣的部分。但如果我尝试一次解释所有这些,那么它将一次变成太多的信息。所以,我认为最好的方法是解释核心哲学,然后读者可以通过导航项目回购来理解代码。我建议你参加这个项目研究至少一周。按反向时间顺序研究主要类别。
- 研究build.gradle并查找所有使用的依赖项。
- 探索数据包和帮助程序类的实现。
- ui base包创建Activity,Fragment,SubView和Presenter的基本实现。所有其他相关组件应该从这些类派生。
- di package是为应用程序提供类的依赖项。要理解依赖注入,请阅读我发布的两部分文章,Dagger2第1部分和Dagger2第2部分
- 资源:样式,字体,可绘制。
阅读本系列文章的第3部分:它包括MVP中的Dialogs,ViewPager,RecyclerView和Adapters。
如果您的项目非常庞大,许多开发人员同时处理它,那么请使用Interactors和Repositories阅读此MVP架构的扩展:
参考资源:
- RxJava2:https://github.com/amitshekhariitbhu/RxJava2-Android-Samples
- Dagger2:https://github.com/MindorksOpenSource/android-dagger2-example
- FastAndroidNetworking:https://github.com/amitshekhariitbhu/Fast-Android-Networking
- PlaceHolderView:https://github.com/janishar/PlaceHolderView
- AndroidDebugDatabase:https://github.com/amitshekhariitbhu/Android-Debug-Database
- 书法:https://github.com/chrisjenx/Calligraphy
- GreenDao:https://mindorks.com/blog/powerful-android-orm-greendao-3-tutorial
- ButterKnife:http://jakewharton.github.io/butterknife/
让我们成为朋友的Twitter,LinkedIn,Github上,和Facebook的。
编码器的摇滚