Android project must-haves (45) --> How to build Android applications in 2023

what is android

Android is an open source operating system based on the Linux kernel and developed by Google. It is used in various devices including smartphones, tablets, TVs and smart watches.

Currently, Android is the most used operating system for mobile devices in the world; according to a recent 12-month sample report by statcounter; Android's market share is 71.96%.

Kotlin

Kotlin is a programming language developed by JetBrains. Recommended by Google, which officially announced Kotlin as the Android development language in May 2017. It is a modern programming language that is compatible with Java and can run on JVM which makes its adoption in Android application development very fast.
insert image description here
Whether you are new to Android or not, you should make Kotlin your first choice, don't sail against the current Google announced this approach at Google I/O 2019. With Kotlin, you will have access to all modern language features including the power of coroutines and use modern libraries developed for the Android ecosystem.

Learning materials:

Jetpack Compose

Jetpack Compose is Android's recommended modern toolkit for building native UIs. It simplifies and speeds up UI development on Android.
insert image description here
Jetpack Compose is part of the Android Jetpack library. Easily create native user interfaces using the Kotlin programming language. Additionally, it integrates with other Android Jetpack libraries such as LiveData and ViewModel to make it easier to build responsive and maintainable Android applications.

Some key features include:

  1. Declarative user interface;
  2. Customizable widgets;
  3. Easy to integrate with existing code;
  4. real-time preview;
  5. Improved performance.

Learning materials:

Material Design

Material Design is an adaptable system of guidelines, components and tools. Supports best practices in user interface design. Powered by open source code, Material Design simplifies collaboration between designers and developers and helps teams build beautiful products quickly.
insert image description here
Learning materials:

Clean Arch

It is based on achieving separation of duties by dividing software into layers.
insert image description here

Features :

  1. independent of the framework
  2. testable
  3. independent of the user interface
  4. independent of database
  5. independent from any external agency
  6. Dependency rules

Clean Arch in Android
insert image description here

Learning materials:

Architectural Patterns for Presentation Layer

Architectural patterns are a higher level strategy. Designed to aid in the design of software architectures, it features solutions to common architectural problems within a reusable framework. Architectural patterns are similar to design patterns, but they are larger in scale and solve more global problems. Examples include the overall structure of the system, the relationships between components, and how data is managed.

  • MVC
    is new to programming. I believe that the first framework you encounter is MVC. Whether you write an Android program intentionally or inadvertently, it is an MVC framework. It is just a variant of the MVC framework (the most confusing one). The Android system itself is built according to MVC.

mvc.jpg

  • MVP
    The full name of MVP: Model-View-Presenter; MVP evolved from the classic pattern MVC, and their basic ideas have similarities: Controller/Presenter is responsible for logic processing, Model provides data, and View is responsible for display.
    mvp.jpg

  • MVVM
    MVVM is short for Model-View-ViewModel. It's essentially an improved version of MVC. MVVM is to abstract the state and behavior of the View in it, and let us separate the view UI from the business logic.
    In the MVVM mode, a ViewModel matches a View. It does not have the IView interface in MVP, but is completely bound to the View. All changes in the View will be automatically updated to the ViewModel, and any changes in the ViewModel will also be automatically updated. Synchronized to display on View.
    In Android, DataBinding helps us realize MVVM, and data binding in XML increases the weight of XML. It is no longer just layout as before, and balances the responsibilities of each part.
    MVVM.png

  • MVI
    MVI is very similar to MVVM. It draws on the idea of ​​the front-end framework and emphasizes the one-way flow of data and the only data source. The architecture diagram is as follows
    insert image description here

Whether it is MVC, MVP, MVVM or MVI, the main reason is that the interaction between View and Model is different

  • The core of MVI is the one-way flow of data
  • MVI uses kotlin flow to easily implement responsive programming
  • The entire View of MVI only depends on one State to refresh, and this State is the only trusted data source

Learning materials:

dependency injection

Dependency injection is a software design pattern that allows clients to obtain their dependencies from external sources instead of creating them themselves. It is a technique for implementing Inversion of Control (IoC) between an object and its dependencies.

Learning materials:

Modular

Modularity is a software design technique that allows you to divide an application into independent modules, each with its own functions and responsibilities.

The benefits of modularity:

  • reusability
  • strict visibility control
  • Customizable Delivery
  • scalability
  • easy to maintain
  • easy to test
  • Architecture Improvement
  • improve collaboration
  • build time

network

Serialization

Image loading

react and thread management

local storage

test

adaptive layout

insert image description here

performance optimization

insert image description here

in-app update

insert image description here

in-app reviews

insert image description here

Accessibility

insert image description here

Safety

insert image description here

Guess you like

Origin blog.csdn.net/duoduo_11011/article/details/130392268