Чем занимается iOS-разработчик и как им стать

В чём преимущества разработки приложений для устройств Apple.

iOS-разработчик создаёт приложения не только для iPhone, но и для iPad, Apple Watch и других гаджетов, входящих в экосистему. Он не только пишет код и работает над интерфейсом, но и занимается поддержкой приложения, адаптацией его под разные модели устройств, тестированием и исправлением багов.

Обо всех нюансах мобильной разработки под iOS рассказал Антон Данилов, технический директор студии Trinity Monsters и один из авторов курса «iOS-разработчик» Яндекс Практикума.

Чем занимается iOS-разработчик

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

Базовые задачи, которые получает junior-разработчик в первые дни работы, связаны с вёрсткой: нужно сделать экран онбординга, который появляется, когда пользователь впервые заходит в приложение, или поправить мелочи, например, когда что-то отображается не так, как нужно, или набор полей в личном кабинете изменился.

Чуть позже подключаются задачи, более связанные с бизнесом. Например, у приложения есть какие-то запросы к базе данных или к API и сейчас нужно добавить ещё один. Или нужно добавить на экран профиля дополнительную функцию: возможность изменить аватарку или изменить личные данные. Здесь придётся покопаться в логике конкретного экрана или модуля, в данном случае модуля профиля, разобраться, как он работает, и добавить туда улучшение.

Иными словами, junior-разработчик первое время работает с вёрсткой экранов и багами, а также погружается в логику проекта.

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

Здесь кроется отличие middle от junior: middle не просто выполняет поставленные задачи по обновлению интерфейса и устранению ошибок, но самостоятельно принимает решения по архитектуре, логике внутри модулей и другим вопросам. Middle может часть задач делегировать другим разработчикам, а может всё делать самостоятельно.

Хорошо, если iOS-разработчик с самого начала участвует в код-ревью: это помогает быстрее влиться в команду и продукт и прокачать скиллы. Если вы джун, то ваш код будет постоянно просматривать старший по грейду разработчик. Есть и другой вариант — кросс-ревью. Вместе с другим разработчиком вы смотрите код друг друга и оставляете правки. Это тоже большая часть работы.

Ещё iOS-разработчики хорошо понимают продукт с точки зрения UI/UX. Так или иначе, они часто и много работают с интерфейсами. Можно, как дизайнер в Figma, накидать базовые элементы и создать приложение, по сути, вообще не погружаясь в код.

Что должен знать iOS-разработчик

iOS-разработчику нужно знать базовый синтаксис языка Swift. На нём пишутся все приложения для iOS. Он прост в освоении и понимании, а ещё с ним очень приятно работать.

iOS-разработчик должен понимать, как устроено приложение: что происходит, когда пользователь его сворачивает, в каких оно может быть состояниях, какие в нём есть компоненты. Не стоит забывать и про основы объектно-ориентированного программирования и его принципы.

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

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

И, конечно, важна работа с Xcode. Без понимания самой IDE разработчик не сможет работать с iOS. Поэтому ему необходимо знать, как пользоваться всеми базовыми функциями: как создавать интерфейс через сториборд, как пользоваться текстовым редактором, как запускать приложение и как его останавливать.

Ещё нужно понимать архитектуру приложения и то, какие сущности в ней находятся. Например, если мы берём MVC как базовую и самую известную архитектуру приложения, то нужно знать, что обозначает каждая буква. Если разработчик понимает и может разграничить их на уровне приложения, то в целом он может придерживаться архитектурного паттерна.

И пара слов о soft skills, которые очень важны, чтобы расти как разработчику. Неважно, какой путь вы выберете — в любом случае важно уметь учиться, коммуницировать, слушать обратную связь, доносить свои мысли и разбираться в сложных вещах.

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

iOS-разработка — одно из самых быстрорастущих направлений в IT: с каждым днём появляется всё больше приложений, они становятся всё сложнее. Один из последних трендов — приложения, которые работают с блокчейном и криптовалютами. Опытный iOS-разработчик работает не только со смартфонами, он пишет приложения для часов, планшетов и макбуков, а также нередко параллельно развивает компетенции в мобильной разработке в целом и в кроссплатформенной Flutter-разработке.

Начать путь в разработке мобильных приложений поможет курс Яндекс Практикума «iOS-разработчик». Программа курса построена на опыте экспертов, отвечающих за создание приложений в крупнейших компаниях: iOS-разработчиков, техлидов и СТО.

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

Краткий пересказ от Yandex GPT