Вступительное слово от издательства.............................................................6
Введение .......................................................................................................................8
Часть I. Закладываем правильный фундамент .........................................10
Глава 1. Особенности разработки мобильных приложений ...............11
1.1. Нативные и кроссплатформенные инструменты разработки..............................11
1.2. Архитектура iOS/Android и нативные API..............................................................14
1.2.1. Нативный iOS....................................................................................................15
1.2.2. Нативный Android ............................................................................................17
1.2.3. Нативный Windows UWP..................................................................................18
1.3. Архитектуры кроссплатформенных фреймворков ...............................................20
1.3.1. PhoneGap ...........................................................................................................20
1.3.2. ReactNative ........................................................................................................23
1.3.3. Qt........................................................................................................................24
1.3.4. Flutter.................................................................................................................26
1.3.5. Xamarin..............................................................................................................28
1.3.6. Xamarin.Forms...................................................................................................30
Глава 2. Процесс разработки и документация...........................................32
2.1. Первичная документация .......................................................................................33
2.2. Экраны, данные и логика ........................................................................................37
2.2.1. Группировка экранов и сквозное именование...............................................39
2.2.2. Таблица экранов ...............................................................................................43
2.2.3. Карта переходов и состояний ..........................................................................46
2.3. Cтили и ресурсы.......................................................................................................48
2.4. Скрытая функциональность....................................................................................49
2.5. Пользовательские сценарии....................................................................................50
2.6. Финальный набор артефактов и их обновление ...................................................51
Глава 3. Архитектура приложения...................................................................54
3.1. Многослойный MVVM .............................................................................................54
3.2. Декомпозиция по слоям..........................................................................................56
3.3. Связи внутри слоев ..................................................................................................59
3.4. Связи между слоями ................................................................................................62
3.5. Структуры данных на основе UI..............................................................................66
3.6. Типовая архитектура приложения на Xamarin.Forms ...........................................70
3.6.1. Слой работы с данными (Data Access Layer, DAL)...........................................71
3.6.2. Слой бизнес-логики..........................................................................................71
3.6.3. Слой пользовательского интерфейса..............................................................72
4  Содержание
3.6.4. Дополнительные классы ..................................................................................72
3.6.5. Нативная часть..................................................................................................73
Глава 4. Базовая инфраструктура и ее применение ...............................74
4.1. Фундамент Data Access Layer (DAL).........................................................................74
4.1.1. Класс DataServices как единая точка входа в слой DAL ...................................74
4.1.2. Data Objects и Data Services..............................................................................76
4.2. Фундамент Business Layer (BL)................................................................................81
4.2.1. Реализация фоновых задач и сервисов бизнес-логики .................................81
4.2.2. Фундамент для ViewModels..............................................................................82
4.3. Фундамент User Interface Layer (UI) ........................................................................87
4.3.1. Реализация MessageBus....................................................................................87
4.3.2. Реализация NavigationService ..........................................................................88
4.3.3. Реализация DialogService .................................................................................94
4.3.4. Реализация BasePage ........................................................................................95
Глава 5. Mobile DevOps..........................................................................................98
5.1. Про DevOps ...............................................................................................................98
5.2. Особенности Mobile CI/CD..................................................................................... 100
5.3. Конвейер CI/CD ...................................................................................................... 102
Build-машина ........................................................................................................... 104
5.4. Тестирование.......................................................................................................... 109
5.5. Дистрибуция........................................................................................................... 115
5.6. Мониторинг............................................................................................................ 118
Часть II. Практические советы на каждый день ..................................... 122
Глава 6. Иконочные шрифры вместо растровых картинок ............... 123
Глава 7. Работаем с состояниями экранов ................................................. 129
Глава 8. Дополнительные анимации при переходе экрана
из одного состояния в другое.......................................................................... 136
Глава 9. Использование FastGrid для создания сложного
интерфейса............................................................................................................... 142
Глава 10. Работа с сетевыми сервисами Json/REST .............................. 149
Глава 11. Авторизация с помощью Facebook, ВКонтакте
и OAuth ...................................................................................................................... 157
11.1. Facebook ................................................................................................................ 157
Подключаем Facebook SDK к проектам iOS и Android........................................... 159
Подключаем в Android ............................................................................................. 160
Подключаем в iOS .................................................................................................... 161
Интегрируем с Xamarin.Forms................................................................................. 163
Реализация для Android........................................................................................... 164
Содержание  5
Реализация для iOS .................................................................................................. 167
Подключаем в Xamarin.Forms ................................................................................. 169
11.2. ВКонтакте ............................................................................................................. 170
Подключаем ВКонтакте SDK к проектам iOS и Android ........................................ 172
Подключаем в iOS .................................................................................................... 172
Подключаем в Android ............................................................................................. 174
Интегрируем с Xamarin.Forms................................................................................. 175
Реализация для iOS .................................................................................................. 176
Реализация для Android........................................................................................... 179
Подключаем в Xanarin.Forms .................................................................................. 181
11.3. OAuth..................................................................................................................... 181
Xamarin.Auth ............................................................................................................ 182
Подключаем авторизацию в кроссплатформенной части.................................... 183
Реализация платформенной части......................................................................... 184
Заключение.............................................................................................................. 187