Android MVP 架构必要知识:第二部分

简介: 本文讲的是Android MVP 架构必要知识:第二部分,这是本系列文章的第二部分。在第一部分,我们提出了 MVP 的概念,并做出了一个安卓应用架构的蓝图。如果你还没有阅读第一部分,那么大部分接下来的文章将对你没有多大意义。所以,在你继续读下去之前,浏览一遍第一部分。
本文讲的是Android MVP 架构必要知识:第二部分,

68747470733a2f2f63646e2d696d616765732d31

这是本系列文章的第二部分。在第一部分,我们提出了 MVP 的概念,并做出了一个安卓应用架构的蓝图。如果你还没有阅读第一部分,那么大部分接下来的文章将对你没有多大意义。所以,在你继续读下去之前,浏览一遍第一部分。

这是指向第一部分的链接:

Android MVP 架构必要知识:第一部分

基于在第一部分中提出的蓝图,我们将开发一个成熟的安卓应用,通过它实现 MVP 架构。

MVP 项目的 GitHub repo 地址:

MindorksOpenSource/android-mvp-architecture

本项目旨在提供一种正确的安卓应用架构方式。它包括了大多数安卓应用的全部代码模块。

这个项目刚开始看起来会很复杂,但是随着你花时间去探索,你看它也会变得更清晰明了。这个项目是用 Dagger2, Rxjava, FastAndroidNetworking 和 PlaceHolderView 实现的。

把这个项目当作一个学习案例。研究它的每一行代码。如果这里面有任何 bug 或者你能想出一个更好的逻辑实现,创建一个 pull request。我们在逐步写测试。欢迎你为测试做贡献,并通过 pull request 的方式提交。

开发出的应用的截屏如下:

68747470733a2f2f63646e2d696d616765732d31

68747470733a2f2f63646e2d696d616765732d31

68747470733a2f2f63646e2d696d616765732d31

这个应用有一个登录页面和一个主页面。登录页面实现了 Google,Facebook 和服务器登录。Google 和 Facebook 登录是通过哑 API 实现的。登录是基于获取 access token 的,接下来的调用都被这个 token 所保护。主屏幕创建了和 MVP 相关问题的答题卡。这个 repo 包含了任何应用的大多数组件所需的基本框架。

让我们看一眼项目的结构:

整个应用被打包为五个部分:

  1. data: 它包含所有访问和操控数据的组件。
  2. di: 使用 Dagger2 提供依赖的类。
  3. ui: View 类和它们对应的 Presenter。
  4. service: 应用需要的服务。
  5. utils: 工具类。

类的设计方法是这样的:它们应该能够被继承,并能最大化代码复用。

项目结构图:

68747470733a2f2f63646e2d696d616765732d31

简单的想法包含复杂的概念。

有很多非常有趣的部分。但如果我尝试同时解释所有的部分,信息量就太大了。所以,我认为最好的做法是解释核心的理念。这样,读者就可以通过浏览项目 repo 来理解这些代码。我建议你至少花一周时间研究这个项目。按照时间从后到前的顺序研究这些主要的类。

  1. 研究 build.gradle 并寻找它使用的所有依赖。
  2. 探索 data 包以及 helper 类的实现。
  3. ui base 包创建了Activity, Fragment, SubView 和 Presenter 的基类。所有其他相关的组件都应该从这些类派生。
  4. di 包是应用中负责提供依赖的类。要理解依赖注入,请浏览我发表的由两部分组成的文章,Dagger2 part 1 和 Dagger2 part 2
  5. 资源:Styles, fonts, drawable。





原文发布时间为:2017年2月16日

本文来自云栖社区合作伙伴掘金,了解相关信息可以关注掘金网站。
目录
相关文章
|
1月前
|
数据库 Android开发 开发者
构建高性能微服务架构:从理论到实践构建高效Android应用:探究Kotlin协程的优势
【2月更文挑战第16天】 在当今快速迭代和竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性和独立部署能力而受到企业的青睐。本文将深入探讨如何构建一个高性能的微服务系统,涵盖从理论基础到具体实现的各个方面。我们将重点讨论服务拆分策略、通信机制、数据一致性以及性能优化等关键主题,为读者提供一个清晰、实用的指南,以便在复杂多变的业务环境中构建和维护健壮的微服务体系结构。 【2月更文挑战第16天】 在移动开发领域,性能优化和流畅的用户体验是至关重要的。随着技术的不断进步,Kotlin作为一种现代编程语言,在Android开发中被广泛采用,尤其是其协程特性为异步编程带来了革命性的改进。本文旨在深入
239 5
|
18天前
|
移动开发 前端开发 数据管理
构建高效Android应用:采用MVVM架构与LiveData的全面指南
在移动开发领域,构建一个既快速又可靠的应用对于开发者来说至关重要。随着Android Jetpack组件的推出,MVVM(Model-View-ViewModel)架构和LiveData已成为实现响应式、可测试且易于维护应用的首选解决方案。本文将深入探讨如何在Android应用中实施MVVM模式,以及如何利用LiveData来优化UI组件的数据更新流程,确保用户界面与业务逻辑之间的高度解耦和流畅交互。
18 4
|
3月前
|
设计模式 存储 前端开发
【各种问题处理】MVC、MVP、MVVM 、MVI、VIPER 架构(设计模式)
【1月更文挑战第13天】【各种问题处理】MVC、MVP、MVVM 、MVI、VIPER 架构(设计模式)
|
3月前
|
存储 前端开发 测试技术
Android 官方架构中的 UseCase 该怎么写?
Android 官方架构中的 UseCase 该怎么写?
66 0
|
6月前
|
设计模式 网络协议 Java
《移动互联网技术》 第十章 系统与通信: 掌握Android系统的分层架构设计思想和基于组件的设计模式
《移动互联网技术》 第十章 系统与通信: 掌握Android系统的分层架构设计思想和基于组件的设计模式
63 0
|
8月前
|
API Android开发 Kotlin
安卓MVI架构真的来了?动手试着封装吧(三)下
安卓MVI架构真的来了?动手试着封装吧(三)
81 0
|
8月前
|
Android开发 开发者 Kotlin
安卓MVI架构真的来了?动手试着封装吧(三)上
安卓MVI架构真的来了?动手试着封装吧(三)
119 0
|
8月前
|
Android开发 Kotlin 容器
安卓MVI架构真的来了?动手试着封装吧(二)下
安卓MVI架构真的来了?动手试着封装吧(二)
66 0
|
8月前
|
Android开发 开发者 Kotlin
安卓MVI架构真的来了?动手试着封装吧(二)上
安卓MVI架构真的来了?动手试着封装吧(二)
101 0
安卓MVI架构真的来了?动手试着封装吧(二)上
|
8月前
|
Android开发 开发者 Kotlin
安卓MVI架构真的来了?动手试着封装吧(一)下
安卓MVI架构真的来了?动手试着封装吧(一)
114 1