Что должен знать ios разработчик
Перейти к содержимому

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

  • автор:

Кто такой iOS-разработчик и как им стать

Согласно данным Хабр Карьеры, iOS-разработка входит в топ-6 самых высокооплачиваемых направлений программирования в России. Специалисты в этой области разрабатывают приложения для гаджетов экосистемы Apple.

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

За помощь в подготовке материала благодарим Сергея Котова, сооснователя компании Heliusone и преподавателя курса «iOS-разработчик с нуля» Нетологии.

Кто такой iOS-разработчик и как им стать

Полина Колосова

Что такое мобильная разработка и как она появилась

Мобильная разработка — одно из самых молодых направлений в программировании. Оно возникло в начале 2000-х годов вместе с развитием технологий, которые позволили гаджетам поддерживать простые программы и выходить в интернет.

Окончательно ниша оформилась в 2008-м, когда компании Apple и Google презентовали первые крупные магазины мобильных приложений — App Store и Android Market, переименованный в Google Play. Тогда же сфера разделилась на кроссплатформенные и нативные решения. К последним относятся Android- и iOS-разработка.

Кто такой iOS-разработчик

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

Кто такой iOS-разработчик и как им стать

Кто такой iOS-разработчик и как им стать

В работе программист использует нативные инструменты, созданные Apple специально для iOS-разработчиков ↓

  • Swift — основной язык программирования для iOS.
  • Xcode — бесплатная среда разработки для всех продуктов Apple. С её помощью можно проектировать пользовательские интерфейсы, писать, компилировать и тестировать код. Xcode работает только на компьютерах Mac.
  • iOS SDK — комплект средств разработки, встроенный в Xcode. Инструментарий позволяет создавать приложения и тестировать их на симуляторе — программе, имитирующей внешний вид iPhone на компьютере разработчика или на подключённых к нему физических устройствах iOS.

Кто такой iOS-разработчик и как им стать

Какие задачи решает iOS-разработчик

Проекты, которыми занимается iOS-разработчик, можно разделить на две большие категории: приложения и игры. Подходы и этапы разработки в этих областях разные ↓

Кто такой iOS-разработчик и как им стать

Приложения

Кто такой iOS-разработчик и как им стать

Сергей Котов

Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии

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

Разработчики приложений занимают 70–80% рынка iOS-программистов.

Среди приложений выделяют:

  • сервисы для брендов: интернет-магазины, приложения для доставки еды, заказа такси, покупки билетов;
  • сервисы для доступа к контенту: приложения СМИ, новостные ленты, обучающие материалы;
  • программы для бизнеса и госструктур: банковские приложения, корпоративные кабинеты, бизнес-аналитика;
  • социальные сети.

Разработка приложений обычно состоит из трёх основных этапов:

Проектирование и дизайн. Работу над проектом начинают дизайнеры и аналитики. Они изучают запросы аудитории, определяют, каким должен быть будущий сервис, и разрабатывают первые прототипы.

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

Разработка и тестирование. Дальше программист пишет код и реализует запланированные функции.

Кто такой iOS-разработчик и как им стать

Затем специалист тестирует сервис и исправляет возможные ошибки.

Запуск и поддержка. На финальном этапе готовое приложение проверяют и загружают в App Store. После релиза разработчик дорабатывает сервис, обновляет его под новые версии операционной системы и исправляет ошибки.

Конкретные задачи, которые предстоит выполнять специалисту, зависят от специфики компании и опыта самого программиста. Так выглядят обязанности iOS-разработчика уровня мидл в команде ВКонтакте, где планируют создать клиентское приложение для голосового помощника Маруся:

Кто такой iOS-разработчик и как им стать

В МТС ищут разработчика-сеньора, который сможет участвовать в доработке и оптимизации приложения «Мой поиск». Вот чем ему предстоит заниматься:

Кто такой iOS-разработчик и как им стать

Игры

Кто такой iOS-разработчик и как им стать

Сергей Котов

Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии

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

Все мобильные игры можно условно разделить на две категории ↓

Сюжетные — сложные игры с мощным сюжетом и визуализацией. Их делают крупные команды.

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

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

Кто такой iOS-разработчик и как им стать

Создание игр состоит из четырёх шагов:

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

Прототипирование. На основе наработок iOS-программист пишет на игровом движке прототип, который показывает один аспект будущего продукта — функцию, пользовательский интерфейс или сцену.

После разработчик дорабатывает прототип до вертикального среза. Обычно срез показывает игровой процесс на примере уровня или локации и включает почти все главные элементы игры: геймплей, графику, звук и код.

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

Далее команда проводит несколько проверок продукта. Сначала бета-версию игры показывают узкому кругу тестировщиков. Они ищут баги, логические нестыковки и ошибки геймдизайна. Затем проект отдают группе игроков, которые испытывают её на практике.

Запуск и поддержка. После тестирования продукт выпускают в App Store и продолжают поддерживать: добавляют новые функции, исправляют возможные ошибки.

iOS-разработчики игр в России менее востребованы, чем разработчики приложений. Вакансий в этой области немного, задачи достаточно необычные. Вот что ждут от программиста в компании in3D, где создают игру для генерации 3D-аватаров:

Кто такой iOS-разработчик и как им стать

Какие знания и навыки требуются iOS-разработчику

Минимальный стек технологий для iOS-разработчика выглядит так ↓

Нативные инструменты: Swift, Xcode, iOS SDK. Также полезно разбираться в языке Objective-C, на котором до 2014 года писались все приложения для iOS. Знание этого языка поможет читать старый код и писать обновления для существующих приложений.

Фреймворки. Основные — UIKit и SwiftUI. Нужно знать принципы их работы и понимать, как с их помощью создавать качественные интерфейсы. Также пригодится фреймворк CoreData для работы с базами данных.

Кто такой iOS-разработчик и как им стать

Что такое фреймворк

Разработчику игр понадобится изучить движки Unity, SpriteKit, SceneKit и Unreal Engine.

Кто такой iOS-разработчик и как им стать

Сергей Котов

Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии

Сейчас UIKit — основной визуальный фреймворк в iOS-разработке — постепенно вытесняется SwiftUI. Пока что работодатели требуют, чтобы кандидаты знали оба фреймворка и умели с ними работать. Но за SwiftUI будущее направления.

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

Вёрстка. Умение создавать интерфейсы приложений в графических редакторах Figma, Adobe Photoshop, Adobe Illustrator, Canva — полезный навык для разработчика.

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

Профессиональная база. iOS-разработчику важно иметь фундаментальные скиллы: понимать парадигмы программирования, алгоритмы и концепции разработки, знать, что такое целесообразная архитектура, моделирование и абстракции. Также необходим навык работы с системой контроля версий Git и умение проверять код на работоспособность и наличие ошибок.

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

Кто такой iOS-разработчик и как им стать

Сергей Котов

Сооснователь Heliusone, преподаватель курса «iOS-разработчик с нуля» Нетологии

Главные софт-скиллы для начинающего iOS-разработчика связаны с умением коммуницировать и работать в команде. Компании могут отказать кандидату, если, на их взгляд, эти навыки развиты слабо — почти никто не хочет рисковать и тратить время на обучение.

Специалист с этими скиллами сможет претендовать на позиции в крупных компаниях даже с небольшим опытом.

Как стать iOS-разработчиком? Пошаговое руководство

Как стать iOS-разработчиком? Пошаговое руководство

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

Шаг 1: Убедитесь, что Вы увлечены iOS-разработкой

Это самый важное, Вы не сможете стать профессионалом в области, которая Вас не привлекает и не вызывает интереса.

Конечно, возможно стать iOS-разработчиком без страсти к этой сфере. Но это будет очень сложно и скучно для Вас. Некоторые вещи очень трудно выучить, потому что мобильная разработка – очень сложная область программной инженерии. Многие считают, что разработка приложений не сложна, но это не так. Мобильные приложения должны работать в очень сложных условиях. По сравнению с обычными компьютерами все ресурсы мобильных устройств очень ограничены: производительность процессора, память, подключение к интернету и срок службы батареи. А пользователи хотят использовать мощные и качественные приложения. Стать iOS-разработчиком не так просто, а еще сложнее, если Вам не очень интересна эта работа.

Конечно, Вы знаете, что Вам понадобится Mac – без него Вы не сможете создать родные iOS приложения.

Шаг 2: Изучите основы

Есть много способов изучить программирование, для каждого наиболее удобен и продуктивен свой способ.

Мы можем посоветовать Вам прочитать книгу для начинающих iOS-разработчиков The Big Nerd Ranch Guide, а также просмотреть Стэнфордский видеокурс Developing iOS 8 Apps with Swift. К сожалению, он основан на iOS 8, так что там не говорится про Swift 2, однако курс все равно очень полезен.

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

Совершенно нормально в начале сосредоточиться только на Swift. Позже Вам надо будет также выучить Objective-C, потому что много существующих приложений, библиотек и ресурсов написаны на Objective-C и Вам необходимо их понимать. Но основным языком для разработчика iOS должен быть Swift.

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

Шаг 3: Практикуйтесь

Шаг 2 – только теория. Конечно, теория очень важна. Но это всего лишь первый шаг в процессе обучения. Самым важный этап – практика. После каждой главы книги и после каждой лекции видео, Вы должны открыть Xcode и попробовать сделать все изученное самостоятельно. Если Вы не будете практиковаться, время изучения теории будет потрачено впустую.

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

Шаг 4: Создайте свое первое iOS приложение

Этот шаг очень важен. После того, как Вы выучили все основные вещи, Вы должны создать iOS приложение – свой собственный проект!

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

После того, как Вы решили, какое iOS приложение Вы хотите создать, Вы должны сделать небольшое исследование. Установите себе приложения, похожие на Ваше. Попробуйте их использовать, спрашивая себя: “Что мне нравится в этих программах”, “Что мне не нравится?” и “Что может быть сделано лучше?”. Разработка мобильных приложений – это не только программирование, речь идет о разработке продукта, который дает пользователям какую-то ценность. Программу должно быть удобно использовать и она должна хорошо выглядеть.

Попытайтесь разработать свое приложение. Возьмите листок бумаги и эскиз вашего приложения. Сколько экранов в Вашем приложении? Как они выглядят? Если Вы хотите, сделать хорошее приложение, это очень важный шаг. Каждый разработчик iOS должен тренировать этот навык.

Затем Вы можете начать разрабатывать приложение. И Вы увидите, что многое не работает так, как Вы ожидали. Это не страшно, помните, что Вы пока еще только учитесь. Следующий шаг – добавить Ваше приложение в App Store. Процесс обзора от Apple занимает около недели, так что Вам придется немого понервничать. Но после того, как приложение будет опубликовано, Вы будете очень гордиться собой.

Студенты Web Academy делают финальный проект-приложение по окончанию обучения на каждом курсе.

Шаг 5: Подайте заявку на вакансию iOS-разработчика

Теперь пришло время устраиваться на работу. Вы изучили основы и опубликовали приложение в App Store. Отлично! Так что ищите должность iOS-разработчика в специальном разделе на DOU , принимайте участие в различных мероприятиях и хакатонах, там Вас смогут заметить представители компаний.

Читайте советы от компаний Ciklum, Zeo Alliance и Prom.ua.

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

Шаг 6: Изучайте больше

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

Следите за будущими мероприятиями Web Academy и не пропускайте интересные статьи.

10 навыков и знаний необходимых начинающему iOS разработчику

image

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

Ко мне и коллегам на собеседования приходит много кандидатов на открытые у нас вакансии, и я отчетливо вижу у многих новичков отсутствие базовых знаний или просто неуверенное владение ими. Хотя в интернете и много статей, книг и курсов (платных и бесплатных), из которых можно получить необходимые знания, не всегда просто понять, на изучении каких тем стоит сконцентрироваться.

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

Материал адресован в первую очередь тем, кто хочет начать обучение, восполнить пробелы или понять свою готовность работать iOS разработчиком. Буду стараться пояснить все простыми словами.

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

Первые шаги

Перед тем как углубляться в последующие темы, я рекомендую подготовить фундамент, а именно — пройти (прослушать и воспроизвести все задания) бесплатный курс CS 193P от Stanford University и прочитать на сайте Apple документацию по Swift.

Абсолютно нормально, если вы при этом поймете или запомните не все темы, зато у вас появится основа — структурированные базовые понимания устройства iOS приложений и конструкций языка Swift. Уделив время этим вещам на старте, вам будет сильно проще добавлять знания по каждой из тем.

1. Auto Layout, Storyboard, верстка из кода

Создание интерфейса приложения на основе макета — базовый навык для iOS программиста. Знать стоит не только основные компоненты, из которых собирается интерфейс (UIView, UILabel, UIButton, UIImageView и т. д.), но и то как их расположить на экране, чтобы добиться желаемого положения и размера на разных по размеру экранах, в том числе при повороте устройства. Для простоты я бы выделил 3 способа создания интерфейса:

  • визуальный способ через Interface Builder
  • полностью описать интерфейс из кода
  • комбинированный вариант, когда часть содержимого экранов заведена через Interface Builder, а их настройка вынесена в код.

Навыков верстки интерфейса только через через Interface Builder на StoryBoard вам может быть недостаточно. Помимо того, что через StoryBoard вы сможете сделать далеко не все, нужно понимать, что над крупными приложениями работают несколько разработчиков, и для объединения результатов их работы используется система контроля версий (чаще всего это Git). Когда несколько человек работают над одним участком кода, результат их работы не всегда возможно объединить автоматически. Если интерфейс был сверстан программистом из кода, проводить слияния проще и быстрее чем в случае, когда код был сгенерирован Interface Builder-ом.

Чтобы освоить тему, рекомендую:

  • пройти подробный урок от Ryan Ackermann и Matthijs Hollemans
  • пройти бесплатный мини-курс от Brian Voong
  • посмотреть два видео на русском языке видео 1 и видео 2 на канале The Swift Developers

image

2. Жизненный цикл ViewController

Предположим для простоты, что каждый экран в мобильном приложении — это ViewContoller, а точнее — это наследник класса UIViewContoller. iOS разработчику важно знать, как устроен жизненный цикл экрана, а точнее — какие методы будут выполняться при подготовке, появлении, повороте, уничтожении и других состояниях экрана.

image

Материалы по теме:

  • подробная статья на github
  • статья на developer.apple.com

3. Работа с UITableView и UICollectionView

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

Материалы по теме:

  • урок по TableView от Thomas Hanning
  • урок от Brody Eller и Richard Turton по CollectionView

4. Grand Central Dispatch

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

Grand Central Dispatch — одна из важных и довольно непростых тем, которую вам точно стоит знать, если вы собираетесь программировать под iOS.

Материалы по теме:

  • подробная статья от Gabriel Theodoropoulus
  • урок от Evan Dekhayser и Christine Abernathy

5. Работа с сетью, получение данных из JSON

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

Чаще всего данные, которые приходят в приложения по сети, передаются в формате JSON. Нужно уметь эти данные получить и обработать, к примеру, вывести на основе их какой-нибудь список. При этом желательно, чтобы вы умели делать это не только с помощь одной из популярных библиотек, к примеру, SwiftyJSON, но также владели стандартными средствами языка, были знакомы с Codable.

Довольно подробно про работу с URLSession рассказано в статье от Audrey Tam. Материалов по работе с JSON довольно много, можно посмотреть статью Anand Nimje.

Чтобы освоить тему на практике рекомендую сделать приложение с прогнозом погоды, в котором есть поле ввода названия города, создается запрос к API (подойдет OpenWeatherMap), и на основе полученного JSON выводится информация о погоде.

6. Знания Swift

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

  • классы
  • структуры
  • перечисления
  • протоколы
  • коллекции
  • методы работы с коллекциями (перебор, сортировка, фильтрация, map, reduce и т.д.)
  • работа с опционалами и исключениями

Тщательно разберите отличия структур и классов — не только потому что этот вопрос вам зададут на собеседовании с большой вероятностью, просто это нужно будет в работе.

Параллельно с прочтением документации по Swift можно смотреть видео марафон по Swift Алексея Скутаренко. Этот марафон не заменит прочтение документации из-за того, что в нем раскрыты не все темы, а еще он опубликовал 4 года назад, и за это время в Swift произошли небольшие изменения. Алексей проделал грандиозный труд, полезного материала и мыслей там много.

7. Сильные и слабые ссылки, ARC, утечки памяти

Как сделать так, чтобы у приложения не было проблем с нехваткой памяти?
Что такое ссылки, какие бывают типы ссылок? Что именно делает ARC, и как избежать Retain Cycle, и что это вообще такое? Тема не сложная, но крайне важная. Ознакомиться можно, к примеру, в SwiftBook.

8. Протоколы и делегаты

При разработке под iOS вы часто будете встречать делегирование, а точнее передачу отвественности от одного объекта к другому. Для примера классическая задача — таблица с ячейками, в каждой из которых есть кнопка «добавить элемент в избранное». Вы должны уметь создать для этой ситуации протокол, назначить делегат, реализовать у него поддержку протокола.

Материалы по теме:

  • подробная статья от Andrew Jaffee
  • короткая статья от James Rochabrun

9. Архитектурные подходы: MVC, MVVM, MVP, VIPER

Для простоты создания и поддержки программных продуктов при разработке их разделяют на отдельные блоки. К примеру, один блок отвечает только за работу с данными, а другой за внешний вид. У такого подхода есть ряд преимуществ, к примеру, вы сможете изменить внешний вид, не трогая логику, или при необходимости сможете поменять источник данных, опять же не меняя остальные части приложения. Очевидно, что эти подходы используются не только в iOS, скажу больше — они пришли сюда из других платформ. Есть несколько устоявшихся подходов к разделению ответсвенности между разными блоками, для работы с iOS я рекомендую хорошо разобраться с MVC и MVVM.

Вместо нормального объяснения разделения отвественности в архитектуре я часто слышу на собеседованиях, что-то вроде «MVC это плохо, потому что это Massive View Controller, а MVVM гораздо лучше».

Материалы по теме:

  • подробная статья на русском языке от Badoo
  • урок из двух частей от Lorenzo Boaro и Eli Ganem, раскладывающий множество архитектруных подходов в iOS

10. Хранение данных, Core Data

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

  • Keychain для чего-то небольшого и секретного
  • UserDefaults для небольших настроек
  • Core Data для хранения объектов, связей между ними

Материалы по теме:

  • перевод на русский урока по KeyChain (работа с Keychain становится гораздо проще при использовании библиотек подобных Keychain Swift)
  • краткая инструкция по работе с UserDefaults от Hacking With Swift
  • урок с введением в Core Data от Pietro Rea
  • видео-курс по Core Data

Итог

Я считаю, что равномерно распределив указанные выше темы и уделяя учебе от 20 часов в неделю, реально даже с нуля освоить всё это за срок в 4-5 месяцев.
С таким багажом знаний можно начинать брать заказы на небольшие приложения или ходить на собеседования. К примеру, при наличии вакансии мы бы человека с таким набором знаний взяли в нашу мобильную команду.

Напишите свое законченное приложение

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

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

P.S.

Пожалуйста, расскажите в комментариях, какие темы вы считаете важными для освоения начинающими iOS разработчиками

Кто такой iOS-разработчик?

Кто такой iOS-разработчик?

iOS-разработчик создает и поддерживает мобильные приложения для устройств Apple. Адептам iOS нравятся прозрачность операционной системы, подробные гайдлайны и ограниченное количество гаджетов — не приходится адаптировать интерфейс под каждый смартфон. Вместе с iOS-разработчиком Алексеем Усановым разобрались, что нужно, чтобы освоить профессию, какими компетенциями и качествами надо обладать и сложно ли начать, если нет технического образования.

Освойте профессию «iOS-разработчик»

Что делает iOS-разработчик?

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

Где он нужен?

iOS-разработчики востребованы везде — от игр и развлекательных приложений до банков и e-commerce. А пандемия и повсеместный переход компаний в онлайн показали, что в ближайшие годы спрос на мобильную разработку будет только расти. За первые три квартала 2020 года мобильный трафик вырос почти на 50% по сравнению с тем же периодом в 2019 году. Также в 2020 году в AppStore было доступно 4,38 млн приложений (на 10,3% больше, чем в 2019 году).

13 месяцев
iOS-разработчик
Создавайте приложения, которые выйдут в топ App Store
3 908 ₽/мес 7 817 ₽/мес

Сколько получает iOS-разработчик

По данным HeadHunter, по состоянию на начало марта 2023 года на сайте открыто около 1 500 вакансий для iOS-разработчиков. Начинающий iOS-разработчик c хорошим портфолио может зарабатывать от 80 000 рублей, мидл — в районе 150 000 рублей, синьор и тимлид — от 200 тыс. рублей.

Основные задачи:

  • создание архитектуры приложения;
  • написание кода;
  • поддержка и развитие готовых приложений;
  • участие в тестировании приложения;
  • релиз приложения в App Store.

Что ему нужно знать?

Для разработки на iOS, помимо техники от Apple, понадобится знание языков Objective-C и Swift.

Objective-C — язык более архаичный, а Swift современнее и проще. Но хотя сейчас большинство приложений для Apple и пишутся на Swift, есть и те, что написаны на Objective-C, поэтому все еще важно знать оба языка.

Не беда, если у вас нет мака, — можно потренироваться в Swift на виртуальной машине. Правда, для того чтобы собрать полноценное приложение, все-таки потребуется купить технику Apple.

Помимо этого нужно:

  • уметь создавать интерфейс приложения на основе макета;
  • знать, как создать сетевой запрос;
  • знать, как обработать данные — в частности, в формате JSON (текстовый формат обмена данными, основанный на JavaScript);
  • уметь взаимодействовать с библиотеками других разработчиков;
  • уметь подключать базы данных к приложению;
  • знать архитектурные подходы;
  • уметь пользоваться системой Git, которая позволяет нескольким программистам совместно работать над одним проектом.

Все приложения пишутся в среде Apple XCode, ее можно бесплатно скачать из AppStore. Там есть средства для создания интерфейса, редактор кода и симуляторы всех устройств, чтобы протестировать готовые приложения.

Разработчик также должен знать правила сотрудничества с AppStore и в целом досконально изучить официальную документацию Apple.

Какие нужны софт-скилы?

Алексей Усанов

Общаться с коллегами и решать конфликты. Софт-скилы — это важная вещь. Ты можешь быть подкованным и умным, но если не можешь найти общий язык с командой, то грош цена твоим знаниям и умениям. Бывает, что приходит молодой, активный и веселый разработчик. Он все знает и умеет, очень талантливый. Но он может работать только один, не умеет найти общий язык с командой. Поэтому он будет решать только свои узкие задачи и не сможет расти дальше.

Корректно указывать другим на ошибки. Часто люди думают: «Зачем мне лезть?» Но есть и те, кто, наоборот, слишком резко говорит об ошибках других — это тоже нехорошо.

Ловить дзен и спокойно принимать критику. Если ты молодец и умеешь общаться — здорово, но это не значит, что твой коллега тоже будет тактичен и корректен. Нужно уметь принимать такие вещи, это не должно мешать работе.

Читайте также Кот, код и «помидоры» — один день из жизни разработчика мобильных приложений

Плюсы и минусы профессии

Плюсы:

  • У Apple определенный и понятный спектр устройств. «Если под Android их может быть сотня, и внезапно может вылезти аппарат где-нибудь в Индии, которым пользуется 2 миллиона человек. Ты нигде его не достанешь, чтобы проверить, почему приложение не работает. У нас такой проблемы нет», — считает Алексей.
  • В разработке под iOS ясный цикл и понятное число версий операционных систем. Каждый год выходит новая версия, и разработчики знают, какие устройства устарели, а какие еще поддерживаются.
  • Много вариантов занятости: в компании, в студии, которая занимается приложениями, на фрилансе.

image1-7-1-2433220

Минусы:

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

В каких случаях становятся iOS-разработчиками?

  • Если есть интерес к IT и программированию, хочется освоить новую профессию, получить новые навыки и высокую зарплату.
  • Если уже есть навыки Android-разработки, есть желание стать кроссплатформенным разработчиком и разрабатывать приложения для всех устройств.
  • Когда есть опыт в веб-программировании, но хочется попробовать себя в новой области.
  • Когда хочется работать на фрилансе — iOS-разработчики могут самостоятельно создать приложение с нуля.

Заблуждения об iOS-разработке

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

Разработчик на iOS не может переквалифицироваться и разрабатывать приложения для Android. Если у программиста уже есть навык, он вполне может перейти на другую ОС и помимо Swift выучить Java или Kotlin либо заняться кроссплатформенной разработкой.

Станьте iOS-разработчиком — работайте
в штате, на фрилансе или запускайте собственные приложения

Как начать?

Если у вас нет компьютера на macOS, то можно попробовать кодить на Swift на виртуалке. Это можно сделать, скачав на официальном сайте языка GNU/Linux (операционные системы на основе ядра Linux и системных библиотек GNU) с установленным Swift (есть официальные пакеты под Ubuntu, CentOS и Amazon Linux). Другой вариант — скачать на GitHub Windows с неофициальным пакетом Swift for Windows. Среду для разработки Apple XCode можно загрузить с официального сайта Apple. Однако, чтобы полноценно собирать приложения, все-таки понадобится техника Apple.

Пошаговый план для новичков:

  • освоить общие принципы разработки — выучить основные функции и переменные, уметь разделять текст программы на файлы, а также знать основы объектно-ориентированного программирования;
  • научиться создавать интерфейс приложения на основе макета;
  • разобраться, как обработать данные — в частности, в формате JSON (текстовый формат обмена данными, основанный на JavaScript). Информацию об этом можно поискать, например, на Хабре;
  • научиться создавать и использовать протоколы и подключать базы данных к приложению. В качестве базы данных можно, например, использовать MySQL. Для этого потребуется установить сервер, а также программу WorkBench, которая позволяет управлять базой данных при помощи удобного графического интерфейса;
  • изучить архитектурные подходы;
  • научиться пользоваться репозиториями в Git — как это сделать, можно посмотреть, например, здесь;
  • попробовать выложить первое приложение в AppStore.

Можно учиться разработке самостоятельно — для начала пройти вводные бесплатные курсы на Coursera.

Либо можно записаться на курс iOS-разработки SkillFactory и изучить все аспекты от программирования до фреймворков и релиза.

Правда ли, что у Apple очень строгие гайды?

Да, интерфейсы на iOS можно создавать только по гайдлайнам, разработанным Apple. В противном случае приложение может не пройти проверку при публикации в AppStore.

В Apple очень щепетильны к дизайну. Например, в приложениях на iOS используется динамический размер системного шрифта — пользователю не нужно менять его, это делается автоматически. Также в компании рекомендуют делать дизайн максимально функциональным, избегая лишних «украшений», а также различных градиентов и падающих теней. С одной стороны, строгий гайдлайн ограничивает разработчика. Но с другой — компания постоянно обновляет инструкции и делает их максимально подробными, поэтому новичку будет проще ориентироваться.

Полезные ссылки
  1. Документация Apple
  2. Гайд Human Interface Guidelines от Apple о принципах дизайна приложений.
  3. Apple XCode — среда для разработки для iOS.
  4. Cocoadevelopers.club — открытый клуб iOS и OS X разработчиков.
  5. iosdevweekly — еженедельная iOS-рассылка с полезными статьями на тему iOS-разработки.
  6. Школа iОS-разработчиков — видеоуроки на YouTube.
  7. iOS-программирование в Xcode — цикл видеоуроков на YouTube.

iOS-разработчик

Получите перспективную профессию: освойте с нуля программирование на Swift, мобильную разработку и UX/UI для iOS. За время обучения вы сделаете 5 приложений для портфолио и примете участие в трех хакатонах

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *