从0搭建Jetpack版的WanAndroid客户端

1、项目目的:

 在接触Android Jetpack组件时, 就深深被其巧妙的设计和强大的功能所吸引,暗自告诉自己一定要学会这些组件,而网上并不能找到系统的学习资料,于是利用每天的时间访问Google Developers,把Jetpack的每个组件从使用到源码进行了系统的学习和总结,于是就有了带你领略Android Jetpack组件的魅力系列文章,希望在总结自己学习的同时,也能帮助需要这些资料的同学,在写完这些文章后,想在项目中使用这些强大组件的想法就更加想强烈了, 但又担心直接在公司项目中使用会又踩坑的危险,而且公司的项目又一时难以全部替换,好在WanAndroid提供了完整的应用接口,才有了这个Jetpack版的WanAndroid客户端,项目功能比较简单,作为Jetpack组件的实战项目,旨在抛砖引玉和大家一起真正的使用Jetpack组件。

2、项目简介:

  • 项目架构

既然本篇是对Android Jetpack组件的实战,那么就按照官方推荐的项目架构进行开发,架构内容见下图:

上面架构大家应是很熟悉的,基本原则和平时使用的MVC、MVP等一样,都是使界面、数据、和处理的逻辑进行解耦,打造稳定的、易测试、易扩展的项目架构,只是在这个过程中使用了全新的组件,如:ViewModel、LiveData等,使整个项目架构更加简单和灵活,关于使用的新组件不了解的可以点击文章开头的链接,学习相关组件的使用,本文默认读者已经了解组件的简单使用。

  • 项目内容:

  • 项目结构

本项目按照前面项目架构的指导,根据各个模块的功能进行分包管理,如下图:

3、项目实战

3.1、登陆模块
登陆模块遵循着一个Activit多Fragment的实现,提供注册(RegisterFragment)和登陆(LoginFragment)功能,相信这样的实现和写法对所有开发者来说都是So easy,甚至心里已将想好了如何像Activity添加Fragment,如何实现两个Fragment间的交互,我想说兄弟先停下脑子中的代码,来看看下面Loginactivity中的实现:

class LoginActivity : BaseCompatActivity() {

    override fun onErrorViewClick(v: View?) {}

    override fun initView(savedInstanceState: Bundle?) {}

    override fun getLayoutId() = R.layout.activity_login

    override fun onSupportNavigateUp() = Navigation.findNavController(this, R.id.fragment_navigation_login).navigateUp()}

onErrorViewClick()、initView()、getLayoutId()是在BaseCompatActivity中的抽象方法,用于加载布局和初始化控件,忽略这些方法后,真正实现像Activity中添加Fragment和Fragment的导航的代码就只有一行。。。,之所以这么简单完全得力于Navigation的使用,我们只需按规定的设置Navigation的xml文件,并将其加载到布局中,其他的操作都在Navigation中自动完成,下面看一下navigation.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/login_navigation"
    app:startDestination="@id/loginFragment">
    <fragment
        android:id="@+id/loginFragment"
        android:name="com.example.administrator.wanandroid.ui.fragment.LoginFragment"
        android:label="LoginFragment" >
        <action
            android:id="@+id/action_loginFragment_to_registerFragmen
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值