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

Изучаем MonoTouch. Создание приложений на платформе iOS с помощью C# и .NET

Покупка
Артикул: 430811.02.99
Доступ онлайн
279 ₽
В корзину
Вы прекрасно владеете C# и .NET и хотите выйти на огромный рынок iPhone/iPad? Теперь вы можете создавать великолепные приложения для iOS, не изучая язык Objective-C и средства разработки от Apple. Платформа MonoTouch позволяет применить уже имеющиеся навыки к разработке приложений, которые можно продавать через Apple App Store или развернуть в своей организации. Книга Майкла Блюстайна поможет вам быстро освоить MonoTouch и извлечь максимум пользы из заложенного в ней гигантского потенциала. В начале автор описывает, как настроить среду разработки MonoTouch, и объясняет, как MonoTouch абстрагирует iOS SDK, позволяя использовать родные классы iOS из C#. На простых примерах вы увидите, как пишутся приложения, и это станет фундаментом для решения более интересных задач. Шаг за шагом, на практических примерах вы будете осваивать все более сложные технологии. Автор даже демонстрирует применение в iOS-приложениях таких продвинутых средств .NET, как LINQ.
Блюстайн, М. Изучаем MonoTouch. Создание приложений на платформе iOS с помощью C# и .NET : практическое руководство / М. Блюстайн ; пер. с англ. - 2-е изд. - Москва : ДМК Пресс, 2023. - 337 с. - ISBN 978-5-89818-504-6. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107175 (дата обращения: 07.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Майкл Блюстайн

Изучаем MonoTouch

Создание приложений 
на платформе iOS 
с помощью C# и .NET

Москва, 2023
Learning 
MonoTouch

A Hands-On Guide to Building iOS 
Applications with C# and .NET

Michael Bluestein

Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Cape Town • Sydney • Tokyo • Singapore • Mexico City
Майкл Блюстайн

Изучаем 
MonoTouch

Создание приложений на платформе iOS 
с помощью C# и .NET

Москва, 2023

2-е издание, электронное
УДК 004.451:004.43MonoTouch
ББК 32.973.26-018.2
Б71

Б71
Блюстайн, Майкл.
Изучаем MonoTouch. Создание приложений на платформе iOS с помощью C# 
и .NET / М. Блюстайн ; пер. с англ. — 2-е изд., эл. — 1 файл pdf : 337 с. — Москва : 
ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital 
Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-504-6
Вы прекрасно владеете C# и .NET и хотите выйти на огромный рынок iPhone/iPad? 
Теперь вы можете создавать великолепные приложения для iOS, не изучая язык Objective-C 
и средства разработки от Apple. Платформа MonoTouch позволяет применить уже имеющиеся 
навыки к разработке приложений, которые можно продавать через Apple App Store 
или развернуть в своей организации.
Книга Майкла Блюстайна поможет вам быстро освоить MonoTouch и извлечь максимум 
пользы из заложенного в ней гигантского потенциала.
В начале автор описывает, как настроить среду разработки MonoTouch, и объясняет, 
как MonoTouch абстрагирует iOS SDK, позволяя использовать родные классы iOS из C#. 
На простых примерах вы увидите, как пишутся приложения, и это станет фундаментом для 
решения более интересных задач. Шаг за шагом, на практических примерах вы будете осваивать 
все более сложные технологии. Автор даже демонстрирует применение в iOS-приложениях 
таких продвинутых средств .NET, как LINQ.

УДК 004.451:004.43MonoTouch 
ББК 32.973.26-018.2

Электронное издание на основе печатного издания: Изучаем MonoTouch. Создание приложений на 
платформе iOS с помощью C# и .NET / М. Блюстайн ; пер. с англ. — Москва : ДМК Пресс, 2012. — 
336 с. — ISBN 978-5-94074-824-3. — Текст : непосредственный.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты 
авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-504-6
©  2012 Pearson Education, Inc. 
All rights reserved. 
©  Оформление, перевод на русский язык 
ДМК Пресс, 2012
Посвящается Розе, Лилли и Джошуа
ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ .......................................... 10

БЛАГОДАРНОСТИ ....................................... 12

ОБ АВТОРЕ ................................................ 13

ВВЕДЕНИЕ ................................................. 14

ГЛАВА 1. Здравствуй, MonoTouch .................. 18
Настройка среды ..................................................................... 18
Установка iOS SDK и Apple Developer Tools ............................... 18
Установка MonoTouch .............................................................. 22
Создание приложения для MonoTouch .................................... 26
Создание пользовательского интерфейса ............................... 26
Добавление выходов ................................................................ 28
Разработка на устройстве ....................................................... 34
Подготовка к разработке .......................................................... 34
Работа с отладчиком MonoTouch ............................................. 40
Резюме ................................................................................... 42

ГЛАВА 2. iOS SDK сквозь призму MonoTouch .... 43
Обзор iOS SDK ......................................................................... 43
Сравнение Objective-C с MonoTouch на примере ..................... 46
Создание приложения в Xcode ................................................. 46
Реализация той же функциональности в MonoTouch ................ 51
Сравнение реализаций AppDelegate ........................................ 53
Реализация UIActionSheet в Xcode ............................................ 56
Реализация UIActionSheet в MonoTouch .................................... 59
Как работает MonoTouch ......................................................... 63
Управление памятью ................................................................ 66
Резюме ................................................................................... 68

ГЛАВА 3. Представления и контроллеры 
представлений ........................................... 69
Структурирование приложения MonoTouch 
в соответствии с паттерном MVC ............................................. 69
Оглавление

Работа с представлениями и контроллерами 
в Interface Builder ..................................................................... 71
Расширение функциональности контроллера 
и его представления ...................................................................... 79
Работа с несколькими представлениями и контроллерами ...... 83
Реализация подкласса UIView................................................... 88
Резюме ................................................................................... 92

ГЛАВА 4. Основные классы iOS ..................... 93
Представления и элементы управления для построения 
пользовательского интерфейса ............................................... 93
Элемент UISegmentedControl ................................................... 93
Элемент UISlider ....................................................................... 96
Элемент UISwitch ..................................................................... 97
Элементы UIPageControl и UIScrollView ..................................... 98
Класс UIActivityIndicatorView ................................................... 101
Класс UIProgressView .............................................................. 102
Класс UIImageView ................................................................. 103
Класс UIWebView .................................................................... 104
Класс ADBannerView ............................................................... 106
Возможности устройства ...................................................... 110
Класс MFMailComposeViewController ...................................... 110
Классы MPMediaPickerController и MPMusicPlayerController ... 112
Адресная книга ...................................................................... 115
Класс UIImagePickerController ................................................ 118
Резюме ................................................................................. 123

ГЛАВА 5.Таблицы и навигация .................... 124
Введение в классы UITableView и UITableViewController .......... 124
Для чего применяются таблицы? ............................................ 124
Отображение данных в UITableView ........................................ 126
Части UITableViewCell и стили ................................................. 132
Таблицы и навигация .............................................................. 135
Поддержка редактирования, встроенная в UITableView........... 143
Дополнительная настройка UITableView ................................. 151
Создание нестандартных ячеек .............................................. 152
Добавление нескольких секций .............................................. 156
Проект MonoTouch.Dialog ....................................................... 161
Резюме ................................................................................. 162

ГЛАВА 6. Графика и анимация ..................... 163
Подсистема Core Graphics ..................................................... 163
Основные принципы Core Graphics ......................................... 163
Рисование изображений ........................................................ 170
Оглавление

Рисование в PDF-файлы ......................................................... 174
Анимация .............................................................................. 185
Анимация с помощью UIView .................................................. 185
Подсистема Core Animation .................................................... 189
Резюме ................................................................................. 198

ГЛАВА 7. Подсистема Core Location ............. 199
Введение в подсистему Core Location .................................... 199
Стандартная служба местоположения ................................... 202
Получение обновлений курса ................................................ 212
Значительное изменение местоположения ........................... 214
Мониторинг региона ............................................................. 216
Фоновое определение местоположения................................ 219
Резюме ................................................................................. 222

ГЛАВА 8. Подсистема MapKit ...................... 223
Введение в MapKit ................................................................. 223
Добавление аннотаций .......................................................... 228
Наложения на карту ............................................................... 236
Резюме ................................................................................. 243

ГЛАВА 9. Соединение с веб-службами ......... 244
Соединение с REST-совместимыми веб-службами .................... 244
Соединение по протоколу HTTP ............................................. 244
Разбор результата в формате XML ......................................... 247
Разбор результата в формате JSON ....................................... 250
Потребление веб-служб на основе SOAP ............................... 251
Использование прокси-клиента в стиле .NET 2.0 .................... 252
WCF в MonoTouch ................................................................... 254
Использование HTTP-классов из CocoaTouch ........................ 255
Класс NSUrlConnection и связанные с ним .............................. 255
Резюме ................................................................................. 257

ГЛАВА 10. Сетевые возможности ................ 259
Сетевое программирование с помощью GameKit .................. 259
Основные сетевые классы в GameKit ...................................... 259
Класс GKPeerPickerController ................................................. 269
Голосовой чат на базе GameKit ............................................... 273
Служба Bonjour ...................................................................... 276
Резюме ................................................................................. 286

ГЛАВА 11. Сохранение данных приложений .. 287
Демонстрационное приложение MTNotes ............................. 287
SQLite .................................................................................... 292
Оглавление

Сериализация ....................................................................... 299
Settings.bundle и NSUserDefaults............................................ 301
Резюме ................................................................................. 309

ГЛАВА 12. Разработка приложений для iPad .. 311
Перенос программ на iPad ..................................................... 311
Приложения для iPhone с удвоением пикселей ...................... 311
Универсальные приложения ................................................... 312
Проектирование для iPad ...................................................... 315
Класс UISplitViewController ...................................................... 315
Класс UIPopoverController ....................................................... 326
Резюме ................................................................................. 330

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ ......................... 331
ПРЕДИСЛОВИЕ

О том, что команда, работающая над Mono, занимается чем-то, 
связанным с iPhone, я впервые узнал  в 2008 году из презентации 
Мигеля де Иказа на конференции профессиональных разработчиков 
Microsoft (Microsoft Professional Developer Conference). Мигель 
рассказывал о том, как в процессе создания игровой платформы Uni-
ty3D они переносили .NET и C# на iPhone. Я был потрясен тем, что им 
удалось это сделать. К тому времени я уже программировал для iPhone 
на языке Objective-C в среде Xcode и, как и многие другие, считал эту 
комбинацию отличной платформой. Но учитывая, что я много лет 
работал с .NET и C#, мысль о том, что эти знания удастся применить 
и для iPhone, меня заинтриговала. Получилось бы сочетание двух 
моих любимейших технологий, .NET и iPhone. Однако разработка 
игр меня никогда особенно не интересовала, поэтому в тот момент я 
не стал копать дальше.
На следующий год на встречу наших местных программистов на 
.NET заглянул Джозеф Хилл (Joseph Hill) и провел презентацию по 
проекту Mono в целом. К тому времени команда Mono уже начала 
разрабатывать продукт, которому суждено было стать MonoTouch. 
Джозеф упомянул, что скоро выйдет закрытая бета-версия, и предложил 
всем интересующимся обращаться к нему. Я подумал, как было 
бы здорово, если бы они смогли предложить хотя бы малую толику 
того, что есть в Objective-C или в .NET, например сборку мусора, потому 
что это открыло бы новые возможности для программирования 
iPhone, и, быть может, даже для повторного использования кода.
Я и вообразить себе не мог, что они предоставят все, что я мог делать 
на iPhone с помощью Objective-C, да еще и большую часть .NET 
впридачу. К тому же, оказалось, что команда разработчиков и сообщество 
MonoTouch состоят из очень толковых ребят, по-настоящему 
преданных своему делу. Успех MonoTouch зиждется на том, что вы получаете 
дополнительные инструменты для решения задач в системе 
iOS, не принося в жертву привычный пользователям интерфейс или 
возможности платформы. Я наслаждался каждым мгновением работы 
с MonoTouch и уверен, что вы испытаете такие же чувства.
Предисловие

Для кого предназначена эта книга
Эта книга ориентирована преимущественно на разработчиков, имеющих 
несколько лет опыта работы на платформе .NET/C#, но ничего 
или почти ничего не знающих о разработке для iPhone или Mac. 
Предполагается средний уровень знаний о C#/.NET. Однако в этой 
книге рассказывается о многих языково-независимых аспектах ядра 
iOS, поэтому и пишущие на языке Objective-C тоже найдут в ней 
кое-что полезное. Разработчики на C#/.NET из этой книги узнают, 
как применить накопленные знания к iPhone и создавать с помощью 
MonoTouch приложения для системы iOS.

О примерах кода
Все приведенные в книге примеры можно скачать из моего раздела на 
сайте Github по адресу https://github.com/mikebluestein.
БЛАГОДАРНОСТИ

Хочу поблагодарить свою жену и детей, которым приходилось мириться 
с моим невниманием во время работы над книгой. Без их 
поддержки я не смог бы закончить книгу. Каждому понятно, что в 
создании книги участвует много людей. Благодарю весь коллектив 
издательства Pearson за оказанную мне помощь и поддержку, 
особенно Чака Топорека (Chuck Toporek), Шерри Кэин (Sheri Cain), 
Оливию Басседжио (Olivia Basegio), Барта Рида (Bart Reed) и Энн 
Гебель (Anne Goebel), а также всех, кто оставался за сценой.
Хочу также сказать спасибо всем участникам команд Mono и 
MonoTouch за то, что создали такую потрясающую платформу, а особенно 
Джозефу Хиллу за слова ободрения и постоянную поддержку, 
которую он оказывал с момента моего приобщения к сообществу 
MonoTouch, а также Мигелю де Иказа за ту достойную восхищения 
работу, которую он делает для разработчиков по всему миру. Отдельное 
спасибо Джеффу Нортону (Geoff Norton), который возглавил 
создание MonoTouch и оказывает беспрецедентную поддержку и дает 
консультации всем нуждающимся в них. Сколько раз я засиживался 
допоздна над какой-нибудь трудной проблемой, а он всегда был готов 
помочь мне — да и любому другому — всем, чем мог. И еще спасибо 
Джеффу, Крису Харди (Chris Hardy) и Роберту Козаку (Robert 
Kozak) за техническое рецензирование. Мне было очень приятно работать 
над книгой о MonoTouch и надеюсь, что вы получите от чтения 
такое же удовольствие, как я от написания.
ОБ АВТОРЕ

Майкл Блюстайн работает с MonoTouch с момента выхода первой 
закрытой бета-версии и является активным членом сообщества 
MonoTouch. Написанные им с помощью MonoTouch приложения 
были одними из первых опубликованы на сайте Apple App Store. Он 
профессионально занимается разработкой программного обеспечения 
с начала 1990-х годов, ранее работал в должности главного инженера-
программиста в компании Dassault Systиmes Solidworks Corporation. 
Его блог, посвященный различным вопросам программирования, в том 
числе MonoTouch, размещен по адресу mikebluestein.wordpress.com.
ВВЕДЕНИЕ

Добро пожаловать в мир MonoTouch. Если вы работаете в .NET и 
интересуетесь созданием приложений для устройств под управлением iOS, 
то  платформа MonoTouch – как раз то, что надо. В результате элегантного 
объединения языка Objective-C и каркаса CocoaTouch с C# и .NET 
получилась хорошо продуманная технология, работать с которой – одно 
удовольствие. MonoTouch можно использовать для публикации в магазине 
App Store и для развертывания на предприятии (при условии, что у вас есть 
необходимая лицензия). Существует даже бесплатная версия, включающая 
только эмулятор, так что приступить к изучению и экспериментам можно 
без дополнительных затрат. А студентам предлагается издание со скидкой.
MonoTouch позволяет создавать приложения с применением того 
же API, что имеется в Objective-C, но одновременно предлагает многие 
языковые средства и API, заимствованные из Mono, C# и .NET. 
В дополнение к элегантно абстрагированному механизму управления 
памятью в Objective-C, вы получаете сборку мусора, повторное использование 
кода, не относящегося к пользовательскому интерфейсу, 
ADO.NET-интерфейс к SQLite, веб-службы, Linq, универсальные 
типы – и это еще далеко не всё.
Несомненное достоинство MonoTouch заключается в том, что она 
базируется на технологиях Apple, добавляя к ним многочисленные 
новые возможности, которые помогают разрабатывать приложения. 
Необходимо также отметить команду разработчиков и сообщество 
MonoTouch. Принимая участие в форумах, списках рассылки и очень 
активном IRC-канале, вы можете получить помощь со стороны разработчиков 
и сообщества, обсудить свои идеи или просто потусоваться. 
Сообщество – одна из самых привлекательных сторон MonoTouch. 
Загляните в IRC, там можно встретить кого угодно – от новичков до 
создателей Mono и MonoTouch, которые прилагают все силы к тому, 
что разработчикам жилось лучше.

Как организована эта книга
Книга состоит из 12 глав, в которых рассказывается все, что необходимо 
знать об использовании MonoTouch для разработки в iOS.
Доступ онлайн
279 ₽
В корзину