Согласно данным Хабр Карьеры, iOS-разработка входит в топ-6 самых высокооплачиваемых направлений программирования в России. Специалисты в этой области разрабатывают приложения для гаджетов экосистемы Apple.
В этой статье расскажем, как выглядит работа iOS-разработчика, какие навыки требуются специалисту и сколько он зарабатывает. Материал будет полезен тем, кто задумывается о первой профессии, планирует сменить направление в программировании или хочет освоить новую специальность.
За помощь в подготовке материала благодарим Сергея Котова, сооснователя компании Heliusone и преподавателя курса «iOS-разработчик с нуля» Нетологии.
Что такое мобильная разработка и как она появилась
Мобильная разработка — одно из самых молодых направлений в программировании. Оно возникло в начале 2000-х годов вместе с развитием технологий, которые позволили гаджетам поддерживать простые программы и выходить в интернет.
Окончательно ниша оформилась в 2008-м, когда компании Apple и Google презентовали первые крупные магазины мобильных приложений — App Store и Android Market, переименованный в Google Play. Тогда же сфера разделилась на кроссплатформенные и нативные решения. К последним относятся Android- и iOS-разработка.
Кто такой iOS-разработчик
iOS-разработчик — это программист, который создаёт и поддерживает различные приложения для операционной системы iOS. Эта система работает только на смартфонах, электронных планшетах и портативных проигрывателях Apple — поэтому iOS-разработчики нужны в любой компании, где планируют писать или адаптировать приложения для iPhone, iPad или Apple Watch.
В работе программист использует нативные инструменты, созданные Apple специально для iOS-разработчиков ↓
- Swift — основной язык программирования для iOS.
- Xcode — бесплатная среда разработки для всех продуктов Apple. С её помощью можно проектировать пользовательские интерфейсы, писать, компилировать и тестировать код. Xcode работает только на компьютерах Mac.
- iOS SDK — комплект средств разработки, встроенный в Xcode. Инструментарий позволяет создавать приложения и тестировать их на симуляторе — программе, имитирующей внешний вид iPhone на компьютере разработчика или на подключённых к нему физических устройствах iOS.
Какие задачи решает iOS-разработчик
Проекты, которыми занимается iOS-разработчик, можно разделить на две большие категории: приложения и игры. Подходы и этапы разработки в этих областях разные ↓
Приложения
Сергей Котов
Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии
Основная задача большинства промышленных приложений — обработать и отобразить данные через API с бэкенда. Задачи здесь типизированы, а визуальный дизайн различных приложений для удобства пользователя имеет одинаковые паттерны. Поэтому, если разработчик уже работал с одним банковским приложением, он наверняка сможет без проблем разрабатывать и другие.
Разработчики приложений занимают 70–80% рынка iOS-программистов.
Среди приложений выделяют:
- сервисы для брендов: интернет-магазины, приложения для доставки еды, заказа такси, покупки билетов;
- сервисы для доступа к контенту: приложения СМИ, новостные ленты, обучающие материалы;
- программы для бизнеса и госструктур: банковские приложения, корпоративные кабинеты, бизнес-аналитика;
- социальные сети.
Разработка приложений обычно состоит из трёх основных этапов:
Проектирование и дизайн. Работу над проектом начинают дизайнеры и аналитики.
Они изучают запросы аудитории, определяют, каким должен быть будущий сервис, и разрабатывают первые прототипы.
После дизайн-проект передают программисту. iOS-разработчик отрисовывает пользовательский интерфейс, используя фреймворки — заготовки, на основе которых можно писать собственный код. На этом этапе приложение — всего лишь набор блоков и кнопок.
Разработка и тестирование. Дальше программист пишет код и реализует запланированные функции.
Затем специалист тестирует сервис и исправляет возможные ошибки.
Запуск и поддержка. На финальном этапе готовое приложение проверяют и загружают в App Store. После релиза разработчик дорабатывает сервис, обновляет его под новые версии операционной системы и исправляет ошибки.
Конкретные задачи, которые предстоит выполнять специалисту, зависят от специфики компании и опыта самого программиста. Так выглядят обязанности iOS-разработчика уровня мидл в команде ВКонтакте, где планируют создать клиентское приложение для голосового помощника Маруся:
В МТС ищут разработчика-сеньора, который сможет участвовать в доработке и оптимизации приложения «Мой поиск». Вот чем ему предстоит заниматься:
Игры
Сергей Котов
Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии
Игры для мобильных устройств состоят из двух основных компонентов: программной разработки, которая реализует игровую механику, и контента — истории, сюжета, персонажей, визуального дизайна. В отличие от приложений, где используют стандартные визуальные элементы и паттерны, здесь можно и даже нужно создавать уникальный интерфейс, анимации и динамичные эффекты.
Все мобильные игры можно условно разделить на две категории ↓
Сюжетные — сложные игры с мощным сюжетом и визуализацией. Их делают крупные команды.
Казуальные — простые игры, где игроки за короткое время решают какую-то одну конкретную задачу. Например, головоломку. Такую игру вполне может сделать команда из двух человек: дизайнера и разработчика.
Небольшие игры можно написать за месяц или даже неделю, если повторно использовать ранее созданные компоненты. Разработка крупных проектов может занимать год и более.
Создание игр состоит из четырёх шагов:
Утверждение идеи. Первый шаг в разработке — создание концепции продукта. На этом этапе геймдизайнер продумывает идею, ключевые механики и визуальные решения.
Прототипирование. На основе наработок iOS-программист пишет на игровом движке прототип, который показывает один аспект будущего продукта — функцию, пользовательский интерфейс или сцену.
После разработчик дорабатывает прототип до вертикального среза. Обычно срез показывает игровой процесс на примере уровня или локации и включает почти все главные элементы игры: геймплей, графику, звук и код.
Наполнение и тестирование. На следующем этапе разработчик и дизайнер наполняют игру контентом: добавляют все локации, отрисовывают персонажей и детали окружения.
Далее команда проводит несколько проверок продукта. Сначала бета-версию игры показывают узкому кругу тестировщиков. Они ищут баги, логические нестыковки и ошибки геймдизайна. Затем проект отдают группе игроков, которые испытывают её на практике.
Запуск и поддержка. После тестирования продукт выпускают в App Store и продолжают поддерживать: добавляют новые функции, исправляют возможные ошибки.
iOS-разработчики игр в России менее востребованы, чем разработчики приложений. Вакансий в этой области немного, задачи достаточно необычные. Вот что ждут от программиста в компании in3D, где создают игру для генерации 3D-аватаров:
Какие знания и навыки требуются iOS-разработчику
Минимальный стек технологий для iOS-разработчика выглядит так ↓
Нативные инструменты: Swift, Xcode, iOS SDK. Также полезно разбираться в языке Objective-C, на котором до 2014 года писались все приложения для iOS. Знание этого языка поможет читать старый код и писать обновления для существующих приложений.
Фреймворки. Основные — UIKit и SwiftUI. Нужно знать принципы их работы и понимать, как с их помощью создавать качественные интерфейсы. Также пригодится фреймворк CoreData для работы с базами данных.
Разработчику игр понадобится изучить движки Unity, SpriteKit, SceneKit и Unreal Engine.
Сергей Котов
Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии
Сейчас UIKit — основной визуальный фреймворк в iOS-разработке — постепенно вытесняется SwiftUI. Пока что работодатели требуют, чтобы кандидаты знали оба фреймворка и умели с ними работать. Но за SwiftUI будущее направления.
Возможно, начинающим iOS-разработчикам лучше ориентироваться именно на SwiftUI. Он гораздо проще в разработке и эффективнее с точки зрения соотношения результата к затраченным усилиям.
Вёрстка. Умение создавать интерфейсы приложений в графических редакторах Figma, Adobe Photoshop, Adobe Illustrator, Canva — полезный навык для разработчика.
Общие подходы программной инженерии. Нужно знать принципы объектно‑ориентированного программирования, алгоритмы, шаблоны и паттерны проектирования, концепцию и архитектуру приложений, механизмы передачи данных по сети.
Профессиональная база. iOS-разработчику важно иметь фундаментальные скиллы: понимать парадигмы программирования, алгоритмы и концепции разработки, знать, что такое целесообразная архитектура, моделирование и абстракции. Также необходим навык работы с системой контроля версий Git и умение проверять код на работоспособность и наличие ошибок.
Кроме того, важно знать английский язык, чтобы читать техническую документацию. Качественных ресурсов и материалов на русском языке в iOS-разработке практически нет.
Сергей Котов
Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии
Главные софт-скиллы для начинающего iOS-разработчика связаны с умением коммуницировать и работать в команде. Компании могут отказать кандидату, если, на их взгляд, эти навыки развиты слабо — почти никто не хочет рисковать и тратить время на обучение.
Специалист с этими скиллами сможет претендовать на позиции в крупных компаниях даже с небольшим опытом.
- Научитесь разрабатывать приложения для мобильных устройств Apple на языке Swift 5
- Изучите два самых актуальных фреймворка для создания пользовательского интерфейса: UIKit и SwiftUI
- Создадите 5 рабочих проектов для портфолио и сможете стажироваться по специальности уже через 6 месяцев обучения
Где работает и сколько зарабатывает iOS-разработчик
На начало июня 2023 года на сайтах интернет-рекрутмента опубликовано около 2 800 вакансий для iOS-разработчиков.
Специалистов ищут компании из сферы ecommerce и финансового сектора, операторы связи, крупные государственные корпорации, IT-корпорации и стартапы.
Сергей Котов
Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии
iOS-программисты нужны:
- В компаниях, где создают приложения для себя и собственных потребностей. Допустим, производитель продаёт свои товары в интернете через мобильный сервис. Поддержкой этого ПО могут заниматься несколько специалистов или целая команда разработчиков.Таким компаниям нужны разработчики, которые могут поддерживать готовые продукты и развивать новые функции в рамках отдельных проектов или выпускать новые продукты.
- В компаниях, которые работают на аутсорс. Такие команды разрабатывают приложения на заказ для других фирм. Аутсорсинговые компании
могут специализироваться на одной узкой области, например, на банковском секторе — и создавать сервисы только для банков. А могут писать приложения для всех: и для банков, и для компаний по доставке продуктов, и для других корпоративных сервисов.
Такие компании ищут разработчиков, которые умеют работать с нужным им стеком технологий.
Размер зарплаты iOS-разработчика зависит от позиции, масштаба компании и уровня навыков программиста. Джуниор-специалист получает от 50 000 до 120 000 рублей в месяц.
Программист уровня мидл может рассчитывать на ежемесячную ставку в 160 000 — 250 000 рублей.
Самые опытные iOS-разработчики уровня сеньор зарабатывают от 240 000 рублей в месяц.
Как стать iOS-разработчиком
Стать iOS-программистами могут как новички, так и специалисты с опытом разработки в других направлениях. Получить специальность можно несколькими способами ↓
Изучить профессию самостоятельно
Разобраться в iOS-разработке можно самостоятельно по книгам, видео и бесплатным материалам в интернете. Однако такой вариант больше подойдёт тем, кто уже разбирается в программировании. Новичкам предстоит самостоятельно изучить не только iOS-разработку, но и основы компьютерных наук. Процесс может занять несколько лет и потребовать стабильного уровня мотивации и упорства.
Сергей Котов
Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии
Начинающим программистам без опыта в IT я бы посоветовал начать с основ написания кода и алгоритмов. Например, можно изучить основы JavaScript и попробовать создать лёгкие онлайн-игры с простой механикой, чтобы понять, как работают алгоритмы и визуализация объектов на экране. Python — тоже отличный язык для старта.
Окончить университет
Получить базовое понимание логики программирования можно на бакалавриате «прикладная математика и информатика», «компьютерные технологии» или «современное программирование». На последних курсах вуза студенты обычно сами формируют расписание и могут выбрать среди предметов мобильную разработку и программирование на Swift.
Изучить профессию с нуля на онлайн-курсах
С нуля iOS-разработке научат в Нетологии. На курсе специалисты ведущих российских компаний расскажут, как писать многопоточные приложения на Swift, программировать адаптивные интерфейсы, работать с базами данных и системами безопасности, а также тестировать и оптимизировать готовые сервисы.
Программа длится 11 месяцев. Помимо теоретических знаний, студенты также получат четыре проекта в портфолио: трекер привычек, приложение для просмотра прогноза погоды, сервис для отображения и сортировки файлов и базу знаний по выбранной теме. Дипломная работа курса — клиент для соцсети ВКонтакте.
Что почитать и посмотреть iOS-разработчику
Книги
- Swift. Основы разработки приложений под iOS, iPadOS и macOS Василия Усова — русскоязычное пособие об основах iOS-разработки.
- Develop in Swift — учебник Apple по программированию на Swift и iOS-разработке.
Технические ресурсы
- Xcode documentation — техническая документация по среде Xcode.
- Apple Developer Documentation — документация по iOS-разработке: справочники, статьи и примеры кода.
- The Swift Programming Language — документация по языку Swift.
- SwiftUI tutorials, Exploring SwiftUI Sample Apps — инструкции по использованию SwiftUI.
- Design guidelines — рекомендации по дизайну приложений на iOS.
- Developer Tools — видеообзоры новых инструментов и технологий Apple.
Каналы и форумы
- iOS Good Reads — Telegram-канал, где выходит ежедневный дайджест интересных статей, новостей и видео, связанных с iOS-разработкой.
- iOS Developers — русскоговорящее сообщество iOS-разработчиков в Telegram.
- Официальный форум разработчиков — англоязычная площадка для обмена опытом и знаниями с другими разработчиками и инженерами Apple.
Резюмируем
iOS-разработчик — это программист, который пишет и поддерживает приложения для мобильных устройств Apple. В работе специалист использует язык Swift, среду Xcode, фреймворки SwiftUI и UIKit и другие инструменты.
Профессия входит в топ-6 самых высокооплачиваемых направлений программирования в России. Зарплата опытного iOS-разработчика может превышать 400 000 рублей в месяц.
Освоить специальность можно самостоятельно, в вузе и на онлайн-курсах.
Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.