Слайд 2: Как Xamarin привёл нас к Clean Architecture
Слайд 3: О чём пойдёт речь
История развития архитектуры мобильного приложения и : Xamarin MVVM Clean Architecture 3
Слайд 4: Привет
4 Привет Владимир Абакумов Team Lead Отдел мобильных решений Мобилки для DIRECTUM and DirectumRX
Слайд 5: DIRECTUM Solo
5
Слайд 6
6 DIRECTUM Solo Просмотр задач и других рабочих элементов
Слайд 7
7 DIRECTUM Solo Просмотр задач и других рабочих элементов Созданий задач и поручений
Слайд 8
8 DIRECTUM Solo Просмотр задач и других рабочих элементов Созданий задач и поручений Работа с документами: просмотр, подписание и поиск
Слайд 9
9 DIRECTUM Solo Просмотр задач и других рабочих элементов Созданий задач и поручений Работа с документами: просмотр, подписание и поиск
Слайд 10
10 DIRECTUM Solo Просмотр задач и других рабочих элементов Созданий задач и поручений Работа с документами: просмотр, подписание и поиск …
Слайд 14: 2. DIRECTUM Solo
Shared code: Network Database Workflow 14 HTTP, SQLite Workflow
Слайд 15: 2. DIRECTUM Solo
Shared code: Network Database Workflow Solo for iOS and Android 15 HTTP, SQLite Workflow UIVIewController Activity, Fragment
Слайд 16: 2. DIRECTUM Solo
Shared code: Network; Database; Workflow Solo for iOS and Android MVC: UIViewController or Activity 16 HTTP, SQLite Workflow UIVIewController Activity, Fragment
Слайд 17: 2. DIRECTUM Solo
Shared code: Network Database Workflow Solo for iOS and Android MVC: UIViewController or Activity 17 HTTP, SQLite Workflow UIVIewController Activity, Fragment
Слайд 18: 2. DIRECTUM Solo
Shared code: Network; Database; Workflow Solo for iOS and Android MVC: UIViewController or Activity 18 HTTP, SQLite Workflow UIVIewController Activity, Fragment
Слайд 19: 2. DIRECTUM Solo
Shared code: Network Database Workflow Solo for iOS and Android MVC: UIViewController or Activity Общего кода < 30% Дублирование кода, отличающееся поведение 19 HTTP, SQLite Workflow UIVIewController Activity, Fragment
Слайд 20: 2. DIRECTUM Solo
Shared code: Network Database Workflow Solo for iOS and Android MVC: UIViewController or Activity (massive viewControllers ) Общего кода < 30% Дублирование кода, отличающееся поведение 20 HTTP, SQLite Workflow UIVIewController Activity, Fragment
Слайд 21: 2. DIRECTUM Solo
Shared code: Network Database Workflow Solo for iOS and Android MVC: UIViewController or Activity (massive viewControllers ) Общего кода < 30% Дублирование кода, отличающееся поведение 21 HTTP, SQLite Workflow UIVIewController Activity, Fragment
Слайд 24: 3 MVVM
Humble Object Low Coupling Dependency Inversion Тестируемость Одинаковое поведение 24 View.iOS View.Android View model Service interactors Database Workflow IPlatformService PlatformService.A PlatformService.iOS
Слайд 25: 3 MVVM
Humble object Low Coupling Dependency inversion Liskov substitution Testable classes Behavior unification 25 View.iOS View.Android View model Service interactors Database Use case services Workflow IPlatformService PlatformService.AX PlatformService.iOS
Слайд 26: 3 MVVM
Humble Object Low Coupling Dependency Inversion Тестируемость Одинаковое поведение 26 View.iOS View.Android View model Service interactors Database Workflow IPlatformService PlatformService.A PlatformService.iOS
Слайд 27: 3 MVVM
Humble Object Low Coupling Dependency Inversion Тестируемость Одинаковое поведение 27 View.iOS View.Android View model Service interactors Database Workflow IPlatformService PlatformService.A PlatformService.iOS Модель представления Отображение списка реквизитов; Запроса на сервер; Запрос в БД; Агрегирование результатов; Отображение результатов. Single Responsibility Princip l e нарушается
Слайд 28: 3 Для чего нужны принципы
28 «Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему» Л. Н. Толстой
Слайд 29: 3 Для чего нужны принципы
29 «Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему» Л. Н. Толстой Принцип Анны Карениной: Здоровье человека: температура и артериальное давление; Архитектура ПО: следование SOLID и другим принципам чистого кода, качественной архитектуры.
Слайд 32: 4 Clean Architecture
Document Doc Attribute Search use case : 32
Слайд 33: 4 Clean Architecture
Document Doc Attribute Search use case : 33
Слайд 34: 4 Clean Architecture
Document Doc Attribute Search use case : Отобразить окно поиска; 34
Слайд 35: 4 Clean Architecture
Document Doc Attribute Search use case : Отобразить окно поиска; Задать реквизиты поиска; 35
Слайд 36: 4 Clean Architecture
Document Doc Attribute Search use case : Отобразить окно поиска; Задать реквизиты поиска; Выполнить поиск в локальном хранилище; 36
Слайд 37: 4 Clean Architecture
Document Doc Attribute Search use case : Отобразить окно поиска; Задать реквизиты поиска; Выполнить поиск в локальном хранилище; Отправить запрос на сервер и получить результат ; 37
Слайд 38: 4 Clean Architecture
Document Doc Attribute Search use case : Отобразить окно поиска; Задать реквизиты поиска; Выполнить поиск в локальном хранилище; Отправить запрос на сервер и получить результат ; Объединить результаты; 38
Слайд 39: 4 Clean Architecture
Document Doc Attribute Search use case : Отобразить окно поиска; Задать реквизиты поиска; Выполнить поиск в локальном хранилище; Отправить запрос на сервер и получить результат ; Объединить результаты; Отобразить результаты. 39
Слайд 40: 4 Clean Architecture
Search use case Document Doc Attribute 40
Слайд 41: 4 Clean Architecture
Search use case DocServerInteractor DocRepository Doc Search View Model Navigation Document Doc Attribute 41
Слайд 42: 4 Clean Architecture
Search use case DocServerInteractor DocRepository Doc Search View Model Navigation SQLite ORM Network Service Navigation for iOS Navigation for Android Document Doc Attribute 42
Слайд 43: 4 Clean Architecture
Use Cases Server interactor Repository View Model Platform service adapter Database Service impl Platform service impl Platform service impl Entities View View 43
Слайд 44: 4 Clean Architecture
Use case Server interactor Repository View Model Platform service adapter Database Service impl Platform service impl Platform service impl Entity View View 44
Слайд 45: 4 Clean Architecture
Use case Server interactor Repository View Model Platform service adapter Database Service impl Platform service impl Platform service impl Entity View View Изолированность компонентов Тестируемость Гибкость: легче изменять компоненты Надёжность и защищенность Удобство разработки и сопровождени я Возможность откладывать решения на потом Возможность уйти в пятницу пораньше, чтобы попить поиграть в футбол 45
Слайд 47: Заключение
Xamarin : один язык и 2 платформы SOLID Clean Architecture Разбиение на слабосвязанные компоненты Компоненты простые Система в целом сложнее Clean Architecture – это концепция архитектуры 47
Слайд 48: Внимание
48 Внимание @anri_versen Vladimir14Abakumov@gmail.com
Слайд 49
49