[s1e4]Super detailed! Develop a GitHub client from 0 in 3 hours

The public account [National Programmer] Gives back fan benefits: cash red envelopes and book delivery activities are in progress , click to participate !

My new book "Android App Development Introduction and Actual Combat" was published by People's Posts and Telecommunications Publishing House in August 2020. Welcome to buy.

For book details, please see: https://blog.csdn.net/ddnosh/article/details/107666187

Author: National programmer
Project Video: https://www.bilibili.com/video/BV1vz4y1C7cC/
Project Information: micro-channel search [national] programmer, reply "github"
reproduced Please keep this reference, thanks!

Lead:

Recently, I received feedback from some readers of the book "Android App Development Introduction and Actual Combat". I hope that the actual development link of the GitHub client in the last chapter of the book can be explained separately, preferably in the form of video. So during this time, I reorganized the GitHub client development tutorial and recorded it as a video.

This is the fourth article. This article mainly formulates the development plan adopted by our App based on the prototype diagram and interaction plan provided by Axure, which is what we call technology selection.

Search [National Programmer] on WeChat and reply to "github" to get the source code of this project and subsequent complete practical articles and tutorials.

Technical selection

1 Introduction

In the previous article, we introduced the low-fidelity map designed with Axure. In fact, once you have the low-fidelity map, you can enter the next development link.
Generally speaking, in the process of project development, the product manager will put forward the requirements for the next version with a prototype diagram, and then evaluate the workload, discuss and finally determine the specific requirements for the next version with the developers and project managers.
After the requirements are determined, the developers can develop, and at this time the requirements will enter the UI designer's side, and the UI designer will provide the final high-fidelity pictures, such as through the blue lake.

2. Architecture

MVVM (Model-View-ViewModel). There are also many versions of MVVM. Here we are talking about the Google version of MVVM, which is the MVVM architecture in JetPack.
The following figure is the implementation diagram of Google's own MVVM architecture:
Insert picture description here
Insert picture description here

from:https://developer.android.com/jetpack/guide#drive-ui-from-model

Advantages of Google version of MVVM:

  1. High degree of decoupling between layers;
  2. Automatically manage the life cycle without worrying about memory leaks;
  3. Data persistence can be achieved through LiveData;

2. Function Module

• Network module: rxjava + okhttp + retrofit
• Picture module: glide
• Database module: room
• Asynchronous distribution module: eventbus
• Permission module: rxpermissions
• Data analysis: gson
• IOC module: butterknife
• Asynchronous framework: rxjava, rxandroid
• Package base Library engineering

3. UI model

• ConstraintLayout
• TabLayout
• BaseRecyclerViewAdapterHelper
• RecyclerView
• ViewPager
• SmartRefreshLayout
• 组合:
(1) DrawerLayout
(2) NavigationView
(3) CoordinatorLayout
(4) AppBarLayout
(5) Toolbar

4. Technical Solution

  1. API interface
    https://developer.github.com/v3/
    https://developer.github.com/apps/differences-between-apps/

Debugging: curl https://api.github.com/zen
Insert picture description here
Some tips about cmder, such as saving logs, etc.: https://blog.csdn.net/ddnosh/article/details/104244577

  1. AndroidX

Existing packages, such as the Android Support Library, are being
refactored into AndroidX. Although Support Library versions 27 and
lower are still available on Google Maven, all new development will be
included in only AndroidX versions 1.0.0 and higher.

Insert picture description here

Create a project and choose AndroidX to automatically generate it.
3. Base library project
Insert picture description here

Interested friends can check the next blog: [s1e5] Super detailed! Develop a GitHub client from 0 in 3 hours

To get the complete article tutorial and video content of the follow-up actual combat project, please search [National Programmer] on WeChat and reply to "github".

Welcome to pay attention to my technical public number: national programmers , our goal: output dry goods

  1. Share original technical articles every day
  2. Massive free technical materials and video learning resources
  3. Share the ways to make money and lead programmers to financial freedom
Picture name

Guess you like

Origin blog.csdn.net/ddnosh/article/details/108697777