Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS

iOS+Swift с нуля: Понимание экосистемы iOS

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Setting Up the Development Environment

Russian (Pусский) translation by Antony Karpov (you can also view the original English article)

Прежде чем приступить к созданию iOS-приложений, крайне важно сначала понять экосистему. В этой статье рассматриваются основы операционных систем Apple, многообразие доступных устройств и магазин приложений Apple (App Store).

1. Почему iOS?

До появления Android и Windows Phone, Apple была доминирующим игроком в мобильном пространстве, соперничая лишь только с Nokia и BlackBerry. С появлением новых мобильных платформ становиться все более и более важно спросить себя: какая платформа лучше подходит для Вас.

Несмотря на мощный старт Apple в 2007, Android превзошел iOS в доле рынка. Что это означает для iOS? Есть еще смысл разрабатывать на этой платформе? Несомненно. Есть много весомых причин, чтобы начать разработку для iOS уже сегодня.

  • Серьезная финансовая мотивация: люди тратят в Магазине приложений Apple (App Store) больше денег, чем на любой другой платформе. Несмотря на то, что Android преобладает в мобильном пространстве, iOS остается более прибыльным для разработчиков.
  • Прекрасный сад, окруженный стеной: за эти годы Магазин приложений Apple (App Store) получил много критики от разработчиков и клиентов, в частности, это касается процесса рассмотрения и проверки приложений. Однако, очевидно, что такая политика Apple привела к тому, что в App Store качество приложений выше, чем в любом другом магазине мобильных приложений. Клиенты также склонны чувствовать себя намного безопаснее при покупке приложений в App Store, чем в других магазинах, основанных на более открытых платформах, таких как Google Play.
  • Сообщество и поддержка: замечательное сообщество разработчиков iOS заслуживает того, чтобы стать его частью. Существует практически неограниченное количество статей, учебных пособий и документации, чтобы помочь вам, когда вы застрянете на какой-нибудь проблеме. Кроме того, документация Apple по iOS SDK превосходна, не говоря уже о сотнях видео с конференций WWDC (Всемирная конференция разработчиков), доступных на сайте разработчиков Apple.

Люди часто забывают, либо вообще не знают, что Android и iOS - это очень разные платформы. Несмотря на то, что обе платформы были разработаны для мобильного пространства, экосистема iOS во многих отношениях отличается от экосистемы Android.

С точки зрения разработки, большинству людей кажется, что разрабатывать для iOS легче, чем для Android. Не поймите меня неправильно, я не имею в виду набор технологий или доступные инструменты для каждой платформы. Две причины лежат в основе пропасти между iOS и Android, фрагментация и согласованный темп.

Фрагментация

Одно из ключевых достоинств Android является в то же время одним из его принципиальных недостатков. Как многим известно, операционная система Android была выпущена как проект с открытым исходным кодом и поэтому может быть использована и изменена кем угодно. Многочисленные производители устройств видели потенциал Android, особенно с того момента, когда он получил поддержку Google.

В результате Android быстро завоевал популярность. Проблема заключается в том, что каждый производитель устройств изменяет Android в соответствии со своими потребностями и разнообразные форм-факторы появились именно с началом использования Android.

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

Согласованный темп

Традиционно, во многих странах рынок беспроводной связи находится под жестким контролем операторов сотовой связи. С самого начала, компания Apple знала, что необходимо контролировать свои мобильные устройства, чтобы обеспечить пользователям лучшие впечатления от их использования. В результате клиенты могут обновить свои iOS-устройства до последней версии iOS в день ее выпуска. Это основное преимущество платформы iOS и результат существенный. Менее чем через неделю после выхода iOS 9, свыше 50% iOS-устройств был обновлены до iOS 9.

Давайте сравним это с Android. На сентябрь 2015 только 20% пользователей Android были обновлены до Lollipop (выпущен в 2014 году) и менее чем 40% были обновлены до KitKat (выпущен в октябре 2013 года).

Эти цифры приведены не для того, чтобы принизить Android или любую другую мобильную платформу. Я хочу подчеркнуть какое влияние оказывает согласованный темп обновления на экосистему приложений каждой из платформ.

Чем медленнее пользователи обновляются на новый релиз операционной системы, тем больше времени разработчики вынуждены поддерживать старые версии операционной системы. Это также делает новые технологии менее привлекательными, поскольку они могут быть использованы только в отношении малой части Android-устройств.

2. Почему именно native-приложения?

Если вы частенько читаете Envato Tuts+, то вы, возможно, слышали о кросс-платформенных инструментах, таких как XamarinReact Native, PhoneGap, Apache Cordova и Titanium Mobile. Вы, возможно, удивлены, почему вы должны пройти через трудности обучения Swift или Objective-C, когда можно создавать iOS-приложения используя C# или JavaScript. Позвольте мне дать вам краткое изложение ваших альтернатив, если вы решили разрабатывать приложения для iOS.

Web-приложения

Web-приложения - это первое, что приходит на ум и, фактически, это был единственный вариант до появления iOS SDK в 2008 году. Преимуществом web-приложений является то, что они не имеют дело с App Store и не участвуют в процессе рассмотрения и контроля приложений Apple. Почему так? Web-приложение - это просто красивое название для web-сайта, который действует и ведет себя как приложение. Все, что вам нужно это браузер, например Mobile Safari или Google Chrome.

Web-приложения имеют очевидные преимущества. Они изначально кросс-платформенные, так как работают в браузере. Другим преимуществом является кривая обучения для создания web-приложений. Если вы хорошо знакомы с web-разработкой, то вы можете освоить это в кратчайшие сроки.

Конечно, не стоит забывать и о недостатках web-приложений. Web-приложение имеет ограниченный доступ к возможностям устройств, на которых оно работает. Мобильные web-приложения довольно мощные благодаря HTML5 и JavaScript. Однако, существуют определенные ограничения в плане того, что они могут делать. Многие интересные функции iPad и iPhone будут вам недоступны. Кроме того, web-приложения обычно требуют подключение к сети для своей работы, хотя из этого правила есть исключения.

Пожалуй, наибольшим недостатком в использовании web-приложений, в общем случае, является то, что они существенно медленнее, чем native-приложения. Отзывчивость web-приложений улучшается с каждым годом, но нельзя не замечать или игнорировать задержки, добавляемые работой самого браузера. Впечатления [от работы таких приложений] будут различными. Нет никаких сомнений насчет этого.

Инструменты кросс-платформенной разработки мобильных приложений

Инструменты разработки кросс-платформенных приложений обещают следующее: приложение можно развернуть на множестве различных устройств, используя единую кодовую базу. Это достигается с помощью ряда подходов.

Такие инструменты, как PhoneGap и Apache Cordova, используют SDK целевой платформы для создания web-представления, в которое и встраивается приложение. Как и в случае с web-приложениями, это накладывает определенные функциональные ограничения. Основным преимуществом является то, что приложение выглядит как native-приложение с точки зрения пользователя, а также может распространяться через Магазин приложений.

Даже несмотря на то, что инструменты мобильной разработки могут показаться Святым Граалем, существует целый ряд недостатков, которые необходимо учитывать. Наиболее важным недостатком является то, что ваше приложение зависит от сторонних механизмов. Другими словами, кодовая база вашего проекта зависит от компании, которая обеспечивает кросс-платформенное решение. Если эта компания выходит из бизнеса или слишком медленно реализовывает изменения, внесенные в целевой SDK, то вы будете вынуждены начать с чистого листа. Вы должны учитывать этот риск.

iOS SDK

Разработка с использованием родного SDK является лучшим выбором, если вы хотите создавать приложения, которые выделяются и используют все возможности устройства. Выбор native-приложений также означает, что вы будете работать в мощной среде разработки. Также вы можете рассчитывать на различные инструменты, утилиты и поддержку от Apple.

3. Экосистема iOS

Одним из наиболее привлекательных аспектов экосистемы iOS является ее простота. Список устройств, работающий под управлением iOS удивительно короткий по сравнению с Android или Windows Phone. Это означает, что тестирование iOS-приложений гораздо менее трудоемко по сравнению с другими платформами.

Как я упоминал ранее, Android превзошел iOS с точки зрения доли рынка, но это только часть истории. На платформу iOS приходится более трети использования Интернета на мобильных устройствах. Что это говорит нам о мобильном пространстве? Это говорит нам то, что iOS остается доминирующим игроком в мобильном пространстве, по крайней мере онлайн, и это несмотря на значительно большую рыночную долю Android.

Устройства

В сущности, в экосистеме iOS есть два семейства устройств:

  • Семейство устройств iPad
  • Семейство устройств iPhone, которое также включает iPod Touch

Для полного обзора я рекомендую взглянуть на этот список. Основные различия в семействе устройств iPhone - это технические возможности и размер экрана. Для iPhone и iPod Touch существует четыре возможных размера экрана:

  • 3.5"
  • 4.0"
  • 4.7"
  • 5.5"

Для семейства устройств iPad есть три возможных размера экрана:

  • 7.9"
  • 9.7"
  • 12.9"

Разница в размере экранов оказывает влияние на разработку, но не приносит много хлопот для подавляющего большинства приложений. Я буду говорить об этом больше в других статьях этой серии.

В 2012 году Apple представила iPad Mini и в 2015 году семейство устройств iPad было дополнено iPad Pro. Хотя представление iPad Mini и iPad Pro вызвало небольшое волнение в индустрии высоких технологий, это практически не сказалось на iOS-разработчиках.

Экран iPad Mini, например, значительно меньше, чем у 9.7" iPad Air,  но разрешение экрана идентично разрешению экрана устройствам iPad с диагональю 9,7". Из-за меньшего экрана iPad Mini средний размер объектов касания меньше, и это может представлять собой проблему для некоторых приложений.

iOS

Apple традиционно выпускает новую версию своей мобильной операционной системы каждый год. На сегодняшний день, Apple выпустила девять основных версий своей мобильной операционной системы; последняя версия - iOS 9.

Люди часто упускают из виду, что поддержка устройств является одним из аспектов iOS. Возьмем к примеру iPhone 4S. IPhone 4S был выпущен в 2011 году и до сих пор способен работать под управлением iOS 9. Не существует [другой] мобильной платформы, которая даже близко подошла бы к этому в плане поддержки устройств.

App Store

Одна из ключевых причин разрабатывать под платформу iOS - невероятный успех App Store. Продажа программного обеспечения никогда не была проще благодаря App Store от Apple на iOS и OS X. Может показаться, что в App Store, имеющим более миллиона приложений, немного тесновато, но имейте в виду, что количество iOS-устройств также продолжает расти в геометрической прогрессии.

Мобильное пространство находится в зачаточном состоянии и есть еще огромный потенциал, который ждет, что его обнаружат. Также, как это было с Web в конце девяностых, мобильное пространство будет продолжать расти быстрыми темпами и количество денег, которые могут быть заработаны на этом, возрастает с каждым проданным новым смартфоном, умными часами и планшетом.

4. watchOS и tvOS

В 2015 году Apple анонсировала две новые операционные системы, watchOS для Apple Watch и tvOS для Apple TV. Apple открыла обе платформы для сторонних разработчиков, привлекая тем самым сторонние приложения для вашего запястья и гостиной.

Инструменты для разработки под watchOS и tvOS идентичны тем, что используются для разработки под iOS. Это еще одна причина, чтобы выбрать экосистему iOS. Операционных систем Apple (OS X, iOS, watchOS и tvOS) тесно интегрированы и их возможности практически безграничны.

Заключение

Теперь у вас есть четкое представление об экосистеме iOS, и я надеюсь, что смог убедить вас заняться iOS-разработкой. В следующей статье я покажу вам, как настроить среду разработки, чтобы начать работать с SDK. Вы будете удивлены, как это легко.

Если у вас возникли вопросы или комментарии, вы можете оставить их в комментариях ниже или связаться со мной через Twitter.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.