Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Разработка мобильных приложений на C# для iOS и Android

Покупка
Артикул: 739798.01.99
Доступ онлайн
799 ₽
В корзину
Данная книга в сжатой форме описывает целостный процесс создания приложений для смартфонов и планшетов. Рассматриваются особенности мобильных операционных систем и устройств, выбор инструментов для разработки, подготовка рабочей документации в духе Agile, проектирование структуры и архитектуры решения, создание автоматизированного конвейера Continues Integration/Continues Delivery, а также мониторинг работоспособности конечного продукта на устройствах реальных пользователей. Все примеры приведены на языке С#. Издание может быть рекомендована как опытным, так и начинающим программистам, интересующимся разработкой мобильных приложений. Также оно может быть использовано в качестве пособия в вузах, центрах дополнительного образования и др.
Черников, В. Н. Разработка мобильных приложений на C# для iOS и Android : практическое руководство / В. Н. Черников. - Москва : ДМК Пресс, 2020. - 188 с. - ISBN 978-5-97060-805-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/1094956 (дата обращения: 28.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Вячеслав Черников

Москва, 2020

Разработка  
мобильных приложений 
на C# для iOS и Android

Сравнение нативных и кроссплатформенных  
инструментов на примере Xamarin, ReactNative,  
PhoneGap, Qt и Flutter.
Проектирование и техническая документация для кода. 
Архитектура и структура проекта,  
раскладываем все по местам. 
Mobile DevOps и автоматизация сборки,  
тестирования, поставки и мониторинга.  
Практические советы на каждый день

УДК 004.4
ББК 32.973.202
Ч49

Черников В. Н.
Ч49 
Разработка мобильных приложений на C# для iOS и Android. – М.: ДМК 
Пресс, 2020. – 188 с.: ил. 

ISBN 978-5-97060-805-0

Данная книга в сжатой форме описывает целостный процесс создания приложений 
для смартфонов и планшетов. Рассматриваются особенности мобильных операционных 
систем и устройств, выбор инструментов для разработки, подготовка рабочей документации в духе Agile, проектирование структуры и архитектуры решения, создание 
автоматизированного конвейера Continues Integration/Continues Delivery, а также 
мониторинг работоспособности конечного продукта на устройствах реальных пользователей. Все примеры приведены на языке C#.
Издание может быть рекомендована как опытным, так и начинающим программистам, интересующимся разработкой мобильных приложений. Также оно может быть 
использовано в качестве пособия в вузах, центрах дополнительного образования и др.

УДК 004.4
ББК 32.973.202

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

 
© Черников В. Н., 2020
ISBN 978-5-97060-805-0 
© Оформление, издание, ДМК Пресс, 2020

Содержание

Вступительное слово от издательства .............................................................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

 Содержание

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
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
Реализация для iOS ..................................................................................................167

Содержание  5

Подключаем в 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

Вступительное слово 
от издательства

Отзывы и пОжелания

Мы всегда рады отзывам наших читателей. Расскажите нам, что вы 
думаете об этой книге, – что понравилось или, может быть, не понравилось. Отзывы важны для нас, чтобы выпус кать книги, которые 
будут для вас максимально полезны.
Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя 
на страницу книги и оставив комментарий в разделе «Отзывы и рецензии». Также можно послать письмо главному редактору по адресу 
dmkpress@gmail.com; при этом укажите название книги в теме письма. 
Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по 
адресу http://dmk press.com/authors/publish_book/ или напишите в издательство по адресу dmkpress@gmail.com.

Скачивание иСхОднОгО кОда примерОв

Скачать файлы с дополнительной информацией для книг издательства «ДМК Пресс» можно на сайте www.dmkpress.com или www.дмк.рф 
на странице с описанием соответствующей книги. 

СпиСОк ОпечатОк

Хотя мы приняли все возможные меры для того, чтобы обеспечить 
высокое качество наших текстов, ошибки все равно случаются. Если 
вы найдете ошибку в одной из наших книг – возможно, ошибку в основном тексте или программном коде, – мы будем очень благодарны, 
если вы сообщите нам о ней. Сделав это, вы избавите других читателей от недопонимания и поможете нам улучшить последующие издания этой книги. 

Нарушение авторских прав  7

Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите 
о них главному редактору по адресу dmkpress@gmail.com, и мы исправим это в следующих тиражах.

нарушение автОрСких прав

Пиратство в интернете по-прежнему остается насущной проблемой. 
Издательство «ДМК Пресс» очень серь езно относится к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконной публикацией какой-либо из наших книг, пожалуйста, пришлите нам ссылку на интернет-ресурс, чтобы мы могли 
применить санкции.
Ссылку на подозрительные материалы можно прислать по адресу 
электронной поч ты dmkpress@gmail.com.
Мы высоко ценим любую помощь по защите наших авторов, благодаря которой мы можем предоставлять вам качественные материалы. 

Введение

Данная книга представляет собой практическое руководство для инженеров, уже овладевших основами разработки, а также руководителей или fullstack-разработчиков, которым в том числе необходимо 
создавать и поддерживать мобильные приложения. Все примеры 
даны на языке C# (фреймворк Xamarin.Forms).
Книга разделена на две части: в первой рассмотрен процесс выбора инструментов, проектирования и создания «скелета» (базовой 
структуры) проекта, а во второй – представлены практические решения для самых частых задач, с которыми сталкиваются разработчики. 
Ниже приведено краткое содержание каждой части и главы.

Часть I. Закладываем правильный фундамент
Как не построить большой дом без фундамента и грамотного проекта, так и реальное программное обеспечение без правильной архитектуры превращается в «миску спагетти» через 1–2 года развития. 
В главе 1 мы начнем с общего знакомства с инструментами кроссплатформенной разработки, включая PhoneGap, ReactNative, Flutter, 
Xamarin и Qt. Сравним заложенные в эти фреймворки архитектуры, 
что позволит нам лучше понять их работу в сравнении с нативными.
В главе 2 мы опишем алгоритм создания «скелета» приложения 
(архитектура и структура кода) на основе легковесной онлайн-документации.
С главы 3 начнется погружение в архитектуру, и далее в главе 4 
мы рассмотрим, какие есть особенности реализации различных компонентов приложения на базе MVVM и многослойной архитектуры, 
а также то, каким образом эти модули лучше связывать между собой.
И завершим мы первую часть книги описанием Mobile DevOps для 
выстраивания коммуникации в команде на базе технической документации, а также использования облачных инструментов для автоматической сборки и тестирования приложений (глава 5).

Часть II. Практические советы на каждый день
В этой части будут представлены практические советы по следующим темам:

Введение  9

 
 глава 6 «Иконочные шрифты вместо растровых картинок»;
 
 глава 7 «Работаем с состояниями экранов»;
 
 глава 8 «Дополнительные анимации при переходе экрана из 
одного состояния в другое»;
 
 глава 9 «Использование FastGrid для создания сложного интерфейса»;
 
 глава 10 «Работа с сетевыми сервисами Json/REST»;
 
 глава 11 «Авторизация с помощью нативных библиотек Facebook, ВКонтакте, а также с помощью OAuth».

Часть I

ЗАКЛАДЫВАЕМ 
ПРАВИЛЬНЫЙ 
ФУНДАМЕНТ

Глава 1

Особенности разработки 
мобильных приложений

Архитектуру программных продуктов можно сравнить со скелетом, 
расположением и связями внутренних органов человека. Именно поэтому в реальных проектах архитектуре следует уделять особое внимание. Чтобы лучше понимать особенности разработки мобильных 
приложений (кроссплатформенных и нативных), мы рассмотрим архитектуры популярных кроссплатформенных фреймворков.
Самих фреймворков сейчас существует очень много, но с архитектурной точки зрения они в основном аналогичны PhoneGap, ReactNative, Flutter, Xamarin и Qt. В качестве целевых платформ мы остановимся на iOS, Android и Windows UWP.

1.1. нативные и крОССплатфОрменные инСтрументы 

разрабОтки

Исторически на рынке компьютеров всегда была конкуренция и каждый производитель предоставлял оптимальный набор так называемых нативных (родных) инструментов для разработки приложений 
под свои операционные системы и устройства. Нативные средства 
разработки обеспечивают максимальную производительность и доступ к возможностям операционной системы.
Однако часто оказывалось, что эти инструменты были несовместимы друг с другом не только на уровне языка разработки, принятых соглашений и архитектур, но и на уровне механизмов работы 
с операционной системой и биб лиотеками. В результате для реа
 Особенности разработки мобильных приложений

лизации одних и тех же алгоритмов, пользовательских или бизнессценариев требовалось написать приложение для нескольких сред 
на разных языках программирования. Например, если надо поддерживать две платформы, то требуется увеличение трудозатрат и команды в два раза. Плюс в два раза больше бюджетов на поддержку 
и развитие. Можно добавить, что во многих компаниях уже скопилась большая база кода, который также хотелось бы унаследовать 
в новых решениях.
Вторым важным моментом является наличие необходимых компетенций (знаний и опыта) внутри команды – если их нет, то потребуется время на обуче ние.
Для решения подобных проблем на рынке уже давно существуют 
инструменты кроссплатформенной разработки, предлагающие:
 
 максимизировать общую базу кода на едином языке программирования, чтобы продукт было проще разрабатывать и поддерживать;
 
 использовать существующие компетенции и специалистов для 
реализации приложений на новых платформах.
Так как языков программирования (и сред) сейчас наплодилось 
очень много (и специалистов, владеющих этими языками), то и инструментов для кросс платформенной разработки существует изрядное количество. В данной книге нас интересуют только инструменты 
для создания мобильных бизнес-приложений, поэтому в следующих 
главах мы подробнее разберем, как они работают. А пока чуть детальнее каждый из плюсов кроссплатформенной разработки. 
Общая база кода. В зависимости от выбранного инструмента 
разработчик может разделять между платформами ресурсы приложения (картинки, шрифты и прочие файлы), логику работы с данными, бизнес-логику и описание интерфейса. И если с ресурсами 
и бизнес-логикой все просто, то вот с интерфейсом следует быть 
осторожнее, так как для каждой из платформ есть свои рекомендации и требования.
Использование существующих компетенций и команды. 
Здесь стоит учитывать не только язык программирования, но и понимание механизмов работы операционных систем iOS/Android/
Win dows, а также набор дополнительных библиотек и инструментов 
разработки.

Нативные и кроссплатформенные инструменты разработки  13

Рис. 1.1  Отличие нативной и кроссплатформенной мобильной разработки

Рис. 1.2  Компетенции мобильной разработки

Итак, нативные инструменты предоставляются самими владельцами эко систем и позволяют получить максимум из возможностей целевой операционной системы, имеют полный доступ к родным API, 

Доступ онлайн
799 ₽
В корзину