Мобильная операционная система Apple существует уже более 10 лет. И если пять лет назад для работы с ней было достаточно изучить Objective C и несколько дополнительных фреймворков, то сегодня, захотев стать iOS-разработчиком, можно легко запутаться в обилии вариантов и возможностей.
Данный список не является универсальным решением для каждого, однако он сможет задать общее направление движения и подсказать, как, куда и с помощью каких ресурсов двигаться шаг за шагом. Кроме того, с его помощью вы сможете с легкостью отслеживать свой прогресс в достижении цели.
1. Выберите язык программирования
Objective C или Swift. Swift считается более современным языком, который проще изучить. Если вы знакомы с любым другим языком, похожим на C, то вы сможете достаточно быстро разобраться и со Swift. Он позволит вам создать более точный и безопасный код. Однако не стоит пренебрегать и Objective C – в любом проекте, который уже существует на протяжении нескольких лет, однозначно будет присутствовать доля кода на Objective C. Многие крупные компании также используют этот язык и те преимущества, которые он может дать. Поэтому, когда вы освоите базу для работы со Swift, нелишним будет вернуться назад к Objective C и изучить данный язык.
2. Установите Xcode
Для того, чтобы написать и запустить код, вам понадобится среда разработки. Компания Apple позаботилась об этом и создала Xcode, с помощью которого ваша работа станет максимально комфортной. Xcode доступен в AppStore на бесплатной основе. Однако для того, чтобы его скачать, вам необходимо будет перейти и зарегистрироваться на developer.apple.com – это также бесплатно. Заплатить вам нужно будет только в том случае, если вы захотите загрузить свое приложение в AppStore. Кроме того, есть и платная альтернатива Xcode - AppCode от компании JetBrains.
3. Учитесь с помощью игровой площадки
Еще одна причина, почему стоит выбрать Swift в качестве языка изучения, это прекрасная функция «Игровая площадка» («Playgroud»), которая встроена в Xcode. Данная функция позволяет вам отслеживать выполнение кода в режиме реального времени. Apple также хранит в открытом доступе всю информацию, необходимую для работы со Swift. Узнайте, как работает память в Swift, как избежать утечек памяти и разрешить циклические зависимости. Овладев языком на достаточном уровне, постарайтесь создать как можно больше апплетов. Это поможет
- запомнить типичные структуры данных: связный список, стек, бинарное дерево;
- изучить классические алгоритмы: бинарный поиск, пирамидальную сортировку или динамическое программирование.
4. Создайте ваше первое приложение
Чтобы начать разработку на iOS, вам необходимо изучить UIKit – это база для всех iOS-приложений. Создайте пустое iOS-приложение в Xcode и начните изучать основные компоненты приложений: UIApplication, AppDelegate, UIViewController, Storyboards и другие. Тщательно изучите доступную прямо в Xcode документацию по каждому из компонентов. Когда вы посчитаете, что освоили их, начинайте создавать базовые примеры. Вот несколько идей, с которых можно начать:
- Откройте список друзей с детализированной информацией о каждом друге. Создайте две страницы: на одной показаны имена друзей, при нажатии на имя друга открывается вторая страница с детализированной информацией о нем.
- Откройте в созданном вами приложении несколько скачанных из интернета картинок. Сделайте так, чтобы страница выглядела как стандартное приложение для просмотра фотографий. При нажатии на картинку она должна открываться на весь экран с функцией «Увеличить».
5. Настройте сохранение данных между сессиями
Фактически, существование вашего приложения напоминает жизнь главного героя в фильме «День сурка»: для него каждый запуск – новый. Научитесь сохранять данные: начните с UserDefaults, потом ознакомьтесь с протоколом кодирования, затем перейдите к CoreData. Также будет нелишним использовать Realm и Firebase – они являются крайне популярной альтернативой для CoreData. Испробуйте все варианты и найдите наиболее подходящий вам.
6. Переходите в онлайн
Начните работать с асинхронным кодом. Изучите Grand Central Dispatch (GCD) и NSOperation. Затем, изучите, как работает URLSession, как парсить JSON и XML. Чтобы получить дополнительный опыт, переделайте упражнения из пункта 4, используя полученные навыки. Вы также можете на все тех же Swift или Objective C создать приложение, которое будет в виде списка отображать самые популярные запросы и ответы на Github.
7. Используйте менеджеры зависимостей
В AppStore существует неисчислимое множество приложений – для всех них разработчики уже написали и протестировали огромное количество строк кода. Нет смысла заново изобретать велосипед: используйте CocoaPods и Carthage. У Swift есть своя собственная библиотека: Swift Package Manager. Установите несколько популярных библиотек: Alamofire, Snapkit.
8. Стандарты и лучшие примеры
Вы можете найти огромное количество проектов с открытым исходным кодом. Учитесь, используя их в качестве примера. Их коды используются в сотнях и тысячах приложений в AppStore, а это означает, что эти коды работают достаточно стабильно. Ознакомьтесь с официальными рекомендациями Apple. Если вы чувствуете себя достаточно уверенным в собственных силах, попытайтесь поучаствовать в одном из подобных проектов с открытым исходным кодом.
9. Тестируйте свой код
Вы можете заметить, что в тех проектах, которые вы скачивали, всегда присутствуют тестовые файлы. Теперь настала ваша очередь самому создавать подобные тесты. Они помогут вам лучше понять код, сделать его более стабильным и избежать многих проблем, которые могут возникнуть в будущем. Начните с модульных тестов, потом переходите к интегральным. Вы также можете создавать UI-тесты. Xcode снабдит вам всем, что вам нужно для создания всех этих тестов.
10. Изучите различные архитектуры
До этого мы использовали стандартную архитектуру, которую предлагает нам Apple – MVC (Model-View-Controller). Но, если вы уже успели написать несколько тестов, то вы наверняка заметили, что выбор определенных элементов, которые необходимо протестировать, это непростая задача. Начните с использования наиболее стандартных шаблонов: MVVM (Model-View-ViewModel), MVP (Model-View-Presenter) и VIPER (View-Interactor-Presenter-Entity-Router). Также можете ознакомиться с Redux.
11. Используйте все, что у вас есть
Теперь у вас достаточно опыта, чтобы самому создать достаточно крупный проект. Придумайте приложение, которое будет работать онлайн, кэшировать данные и сохранять информацию между сессиями. Вы можете использовать Realm или Firebase в качестве сервера. Напишите тесты для вашего кода, создавайте комментарии и документацию по нему. Опубликуйте ваше приложение на Github.
12. Изучите, как работает AppStore
Выгрузка приложения в AppStore – это один из самых важных моментов в разработке iOS-приложений. Если вы твердо решили это сделать, тогда приготовьтесь заплатить за это 99 долларов, после чего сможете получить доступ к itunesconnect.apple.com. Даже если вы не готовы пока вносить оплату, нелишним будет изучить, как именно происходит публикация приложения, какие нужны сертификаты и профили, а также каким именно образом люди скачивают и загружают приложение.
13. Используйте аналитические инструменты
После загрузки приложения в AppStore все веселье только начинается. Вам придется иметь дело с различными девайсами и операционными системами, справляться с непредсказуемым поведением пользователей и неожиданными сбоями программы. Используйте логи, чтобы получить необходимую вам информацию, которая поможет понять, что именно вызвало ошибку. Чтобы проанализировать поведение и предпочтения пользователей, используйте такие аналитические платформы, как Firebase, Amplitude и многие другие.
14. Автоматизируйте все, что можно автоматизировать
Достаточно много времени, как правило, тратится на рутинную работу. Время от времени необходимо выслать новую версию приложения тестовой группе пользователей, зарегистрировать новый девайс, проверить, не конфликтуют ли внесенные в код изменения с ранее написанной частью кода. Для подобной работы существуют готовые решения. Изучите fastlane и используйте системы непрерывного обучения (CI system), например, такие как Travis. Постарайтесь еще при разработке вашего приложения автоматизировать часть задач.
15. Изучите экосистему
iOS-разработка не упирается только лишь в поддержку iPhone. Существует также огромный рынок iPad, Apple Watch, а также Apple TV. Научитесь оперировать своим кодом таким образом, чтобы его можно было использовать и для работы над другими iOS-устройствами (в этом вам поможет правильно выбранная архитектура). Обратите особое внимание на расширения Сегодня и расширения Действий («Today & Action extensions»).
16. Оптимизируйте ваш код
Ваше приложение должно отлично работать как на новых, мощных девайсах, так и на более старых. Используйте встроенные в Xcode инструменты для оптимизации скорости запуска приложения.
17. Не останавливайтесь на достигнутом
Несмотря на то, что вы уже изучили достаточно информации и многое знаете, однако на этом работа точно не заканчивается. Ваша работа в дальнейшем будет заключаться также в модерации покупок и подписок, защите данных пользователей, локализации (далеко не во всех языках слова читаются слева направо, и это надо также учитывать), адаптации приложения для использования увеличенных шрифтов и иных дизайнов. Попробуйте использовать RxSwift и ReactiveCocoa. Посмотрите, как изменяется ваш код. Попробуйте различные подходы к UI, к примеру, Texture (в качестве AsyncDisplayKit)
18. Найдите работу
Умение писать код – это далеко не единственное, что вам нужно уметь, чтобы успешно выполнять свою работу. Научитесь функционировать в команде, четко планируйте время, которое вы тратите на разработку, научитесь объяснять и отстаивать свою точку зрения – все это достаточно важные аспекты вашей будущей работы. Лучший способ овладеть всеми этими навыками – это использовать их непосредственно в работе. Создайте CV, оставьте в нем ссылки на ваши приложения на Github и дерзайте.
Горячие темы