- Examine problems and issues arising in the development of modern client-server applications, as well as ways to solve them.
- To acquaint participants with the most relevant and functional approaches to building application architecture.
- Learn how to apply the considered approaches in practice and implement high-quality, stable and tested applications.
The course consists of 8 classes. Each lesson is designed for 2-2.5 hours and includes a lecture on the topic in question for about 60-80 minutes, practice for 40-50 minutes and, possibly, an additional lecture for 15-20 minutes.
Практика включает в себя либо работу над отдельным проектом для данной темы.
- Introduction to client-server Android application architecture
- Means to ensure multi-threaded work
- Classic A / B / C patterns for client-server interaction
- RxJava Framework
- Clean Architecture — pure architecture
- MVP Pattern — Model — View — Presenter
- Testing Android Applications
- DataBinding and MVVM
- Backpressure problem in RxJava and how to solve it
- Google Agera library for building application architecture
- Mosby library for building application architecture
- TDD (test-driven development) methodology
- Dagger 2 as a library for implementing the principle of Dependency Injection
- In the first two lessons, the weather application will be implemented using loaders and A / B / C patterns. API used
- In 3-4 lessons, the application will be implemented to obtain information about the most interesting films using RxJava and Clean Architecture approaches. API used
- On 5-7 lessons, an application for github will be implemented using MVP, RxJava, and writing tests. API used
- On the 8th lesson to view information about the planets using DataBinding and MVVM pattern. API used
Used development tools:
- Android Studio as an IDE, stable channel (current version 2.3). Download here.
- Gradle as an assembly system. Version 3.0 is used. Download here (complete distribution).
Used libraries for development:
- All standard support libraries.
- OkHttp version 3.4.1 and Retrofit version 2.1.0 to work with the network.
- RxJava version 1.1.10 and RxAndroid version 1.2.1 for working with multithreading.
- Realm as the main database.
- ButterKnife to work with View.
- Picasso for working with images.
- Retrolambda to use lambda expressions.
- Alternative library to work with the database for one class.
- The remaining libraries used will be reviewed as necessary during the course.
All code samples are stored in the repository. You can make sure that everything is set up correctly and ready for work by running the TestApp project.