Статьи

iOS с нуля с помощью Swift: понимание экосистемы iOS

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

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

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

  • Сильные финансовые стимулы. Люди тратят больше денег в Apple App Store, чем на любую другую мобильную платформу. Несмотря на то, что Android стал доминирующим игроком в мобильном пространстве, платформа iOS остается более прибыльной для разработчиков.
  • Walled Garden: На протяжении многих лет Apple App Store подвергался критике со стороны разработчиков и клиентов, в частности, процесса проверки Apple. Однако очевидно, что политика Apple привела к созданию магазина приложений, в котором качество его приложений выше, чем в любом другом мобильном магазине. Покупатели также склонны чувствовать себя намного безопаснее при покупке приложений в App Store, чем в других, более открытых, платформах, таких как Google Play.
  • Сообщество и поддержка. Сообщество разработчиков iOS — это отличное сообщество, в котором можно участвовать. Существует почти неограниченный запас статей, учебных пособий и документации, которые могут помочь вам, когда вы столкнетесь с проблемой. Кроме того, документация Apple по iOS SDK превосходна, не говоря уже о сотнях видео WWDC (World Wide Developer Conference), доступных на веб-сайте 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.

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

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

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

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

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

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

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

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

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

Одним из наиболее привлекательных аспектов экосистемы 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 , но разрешение идентично разрешению 9,7″ устройств iPad. Из-за меньшего экрана iPad Mini средний размер сенсорных целей меньше, и это может представлять проблему для некоторых приложений.

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

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

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

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

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

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

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

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