[:ru]

Введение в курс

Цели курса:

  • Изучить проблемы и вопросы, возникающие при разработке современных клиент-серверных приложений, а также способы их решения.
  • Познакомить участников с наиболее актуальными и функциональными подходами к построению архитектуры приложений.
  • Научиться применять рассмотренные подходы на практике и реализовывать качественные, стабильные и протестированные приложения

Формат курса

Курс состоит из 8 занятий. Каждое занятие рассчитано на 2-2,5 часа и включает в себя лекцию по рассматриваемой теме примерно на 60-80 минут, практику на 40-50 минут и, возможно, дополнительную лекцию на 15-20 минут.

Практика включает в себя либо работу над отдельным проектом для данной темы.

Рассматриваемые темы:

Дополнительные темы:

Список лекций курса:

  1. Лекция 1. Введение в архитектуру клиент-серверных андроид-приложений
  2. Лекция 2 Курса по архитектуре андроид-приложений. Паттерны A/B/C
  3. Лекция 3 по архитектуре андроид приложения. Знакомство с RxJava
  4. Лекция 4 по архитектуре андроид приложения. Clean Arcitecture
  5. Лекция 5 по архитектуре андроид приложения. Паттерн MVP
  6. Лекция 6 по архитектуре Android. Unit тестирование. Test Driven Development
  7. Лекция 7 по архитектуре Android. Инструментальное и UI тестирование. Espresso. Dagger 2
  8. Лекция 8 по архитектуре Android. Data Binding + MVVM
  9. Лекция 9 по архитектуре Android. Заключение

Разрабатываемые приложения:

  • На первых двух занятиях будет реализовано погодное приложение с использованием лоадеров и паттернов A/B/C. Используемое API.
  • На 3-4 занятиях будет реализовано приложение для получения информации о самых интересных фильмах с помощью RxJava и подходов Clean Architecture. Используемое API.
  • На 5-7 занятиях будет реализовано приложение для гитхаба с использованием MVP, RxJava и с написанием тестов. Используемое API.
  • На 8 занятие для просмотра информации о планетах с использованием DataBinding и паттерна MVVM. Используемое API.

Используемые средства для разработки:

  • Android Studio в качестве IDE, stable channel (текущая версия 2.3). Скачать можно здесь.
  • Gradle в качестве системы сборки. Используется версия 3.0. Скачать можно здесь (complete distribution).

Используемые библиотеки для разработки:

  • Все стандартные support библиотеки.
  • OkHttp версии 3.4.1 и Retrofit версии 2.1.0 для работы с сетью.
  • RxJava версии 1.1.10 и RxAndroid версии 1.2.1 для работы с многопоточностью.
  • Realm в качестве основной базы данных.
  • ButterKnife для работы с View.
  • Picasso для работы с изображениями.
  • Retrolambda для использования лямбда-выражений.
  • Альтернативная библиотека для работы с БД для одного занятия.
  • Остальные используемые библиотеки будут при необходимости рассмотрены в ходе курса.

Все примеры кода хранятся в репозитории. Вы можете убедиться, что у вас все настроено корректно и готово к работе, запустив проект TestApp.

Ссылка на источник[:en]

Introduction to the course

Objectives of the course:

  • To study the 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 an application architecture.
  • Learn how to apply these approaches in practice and implement high-quality, stable and tested applications

Course format

The course consists of 8 lessons. Each lesson is designed for 2-2.5 hours and includes a lecture on the topic at about 60-80 minutes, practice for 40-50 minutes and, possibly, an additional lecture for 15-20 minutes.

Practice includes either work on a particular project for a given topic.

Topics covered:

  • Introduction to the architecture of client-server Android-applications
  • Multithreaded workflow support
  • Classic A / B / C Patterns for Client-Server Interaction
  • The RxJava framework
  • Clean Architecture
  • MVP pattern
  • Testing Android-based applications
  • DataBinding and MVVM

Additional topics:

  • The problem of Backpressure in RxJava and ways to solve it
  • Google Agera Library for Building an Application Architecture
  • Mosby Library for Building Application Architecture
  • The methodology TDD (test-driven development)
  • Dagger 2 as a library for implementing the principle of Dependency Injection

List of lectures:

  1. Lecture 1. Introduction to the architecture of client-server android applications
  2. Lecture 2 Course on the architecture of android applications. Patterns A / B / C
  3. Lecture 3 on the architecture of the android application. Acquaintance with RxJava

Developed applications::

  • The first two sessions will be implemented weather application using the loaders and patterns A / B / C. The API used.
  • In 3-4 sessions will be implemented an application to get information about the most interesting films using RxJava and Clean Architecture approaches. The API used.
  • In 5-7 sessions will be implemented an application for githab using MVP, RxJava and with writing tests. The API used.
  • At 8 lessons to view information about the planets using the DataBinding and the MVVM pattern. The API used.

Used tools for development:

  • Android Studio as an IDE, stable channel (current version 2.3). You can download it here.
  • Gradle as an assembly system. Version 3.0 is in use. You can download here (complete distribution)

Used libraries for development:

  • All standard support libraries.
  • OkHttp version 3.4.1 and Retrofit version 2.1.0 for working with the network.
  • RxJava version 1.1.10 and RxAndroid version 1.2.1 for working with multithreading.
  • Realm as the main database.
  • ButterKnife for working with View.
  • Picasso for working with images.
  • Retrolambda to use lambda expressions.
  • Alternative library for working with DB for one lesson.
  • The remaining libraries used will be reviewed, if necessary, during the course.

All code samples are stored in the repository. You can make sure that you are all set up correctly and ready to work by running the TestApp project.

Source reference[:]

11 thoughts on “[:ru]Курс по архитектуре клиент-серверных андроид-приложений с RxJava[:en]Course on the architecture of client-server android applications with RxJava[:]

Добавить комментарий