1. 介绍
最近基于 Wanandroid开放API 开发了一款十分简单的APP,, 采用 Androidx + MVVM + Retrofit + dataBinding 的模式进行开发。App的主要功能是就是浏览各类 Android 文章,效果图如下所示:
1.1 功能效果图展示
主页 | 项目 | 微信公众号 | 知识体系 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
文章详情 | 我的 | 注册 | 导航 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
1.2 项目设计模式
该项目采用 MVVM 的开发模式,关于 MVVM 开发模式,可以参考:美团 如何构建Android MVVM 应用框架 ,如果你觉得不易理解,可以参考一下 Android MVC MVP MVVM简单例子
MVVM 的经典架构图:
项目中的架构图为:
2. 代码解析
举个例子:比如我们的主页,有 banner广告图以及首页文章,如下所示:
所以要实现这样的功能,我们需要为 HomeFragment 创建 HomeViewModel、HomeRepository、HomeBeanFiles,如下所示:
具体代码见:Wanandroid_Learning
HomeFragment.java
public class HomeFragment extends Fragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//创建 ViewModel
HomeViewModel homeVm = ViewModelProviders.of(this, new ViewModelFactory()).get(HomeViewModel.class);
//观察 banner data
homeVm.getHomeBannerListLd().observe(getViewLifecycleOwner(), bannerListDataObserver);
homeVm.setHomeBannerListLd