0% нашли этот документ полезным (0 голосов)
166 просмотров40 страниц

Roadmap 24

Документ содержит рекомендации по обучению iOS-разработке от нуля до Junior-уровня. В нем описаны основные этапы обучения: изучение языка Swift, работа в Xcode, основы фреймворка UIKit.

Загружено:

mahri ovezmyradova
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
166 просмотров40 страниц

Roadmap 24

Документ содержит рекомендации по обучению iOS-разработке от нуля до Junior-уровня. В нем описаны основные этапы обучения: изучение языка Swift, работа в Xcode, основы фреймворка UIKit.

Загружено:

mahri ovezmyradova
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

iOS-developer

2024 Roadmap с нуля до


Junior iOS-developer
Введение
Привет, меня зовут Дарья, я iOS-разработчик и автор курсов по iOS-
разработке. По образованию я художник и дизайнер - абсолютный
гуманитарий. Я стала iOS-разработчиком в 28 лет, сидя в декрете.

Еще с тех пор я помню, как сложно в большом количестве информации,


которая касается абсолютно незнакомой тебе сферы, выбрать материалы,
которые нужно освоить. Не понятно с чего начинать, берешься за одно -
ничего не понятно, за друго - тоже самое, пытаешься разобраться в куче
перекрестных ссылок, а заканчивается все головной болью и потерей
мотивации. Я в итоге пошла на курсы, где информация была уже
структурирована, выучилась и теперь уже сама являюсь автором курса по
iOS-разработке ([Link] Но курсы - не единственный способ
изучить программирование на Swift, можно достичь успеха и в
самостоятельном обучении. Нужно только знать с чего начать и
направление развития. Именно для этого я разработала данный гайд или
Roadmap. Кстати, при выборе курсов также рекомендую сравнить
программу курса с Roadmap, чтобы понимать вообще актуальность
предлагаемых уроков (а то бывает на курсах по iOS-разработке Python
предлагают изучать 🤦 ).

Я включила в Roadmap только самую актуальную информацию, добавила


чекпоинты, чтобы вам легче было контролировать прохождение и сняла
отдельное видео с пояснениями, которое вы можете найти на моем
Youtube-канале “Айосница”. Многие темы перекликаются, я учла это в чек-
листе и пояснила в видео.

Надеюсь, вы высоко оцените мой труд. Ваши отзывы и комментарии жду на


своем канале и в Instagram.

С уважением,
Астапова Дарья.
ШАГ 1

Язык программирования Swift

Высокоуровневый язык
программирования под iOS,
macOS, watchOS и пр. системы
Apple
Дополнительно
1. Приложение Свифти - в формате квизов поможет
выучить теорию.

2. Задачи на Codewars, Leetcode - для практики, но стоит


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

3. Задачник по Swift от Дарьи Астаповой (т.е. меня) -


поможет применить теорию по Swift на практике,
Обязательно понять как язык работает, привыкнуть к мышлению
программиста и закрепить полученные знания. На
момент написания этого Roadmap задачник еще не
The Swift Programming Language - официальная
выпущен, проверьте его статус по ссылке.
документация от Apple, включает в себя ВСЕ, что вам
необходимо знать об языке программирования Swift. Этот 4. Приложение от моей школы WWDS - тренировка
гайд - ключ к успешному прохождению собеседования в теории в формате игры, с баллами и рейтингом.
части вопросов по самому языку, так же там описаны все Приложение в разработке, проверьте его статус по
его возможности. Если какой-то материал в документации ссылке.
не понятен - тогда уже следует искать дополнительные
источники. Но то, что The Swift Programming Language
должен быть первым источником - бесспорно.

Язык источника - английский.

Есть неофициальный перевод на русский.


ШАГ 2

Xcode

Программа (IDE), в которой


разрабатываются приложения
для продукции Apple
С Xcode вы познакомились еще на шаге 1, но работали только с файлами Playground, которые
содержат минимальный функционал. Сама же программа имеет множество возможностей, о
которых вам следует знать.

Обязательно
5. Derived Data - папка, которая собирает разный мусор
при билде ваших приложений, может занимать
гигантское количество памяти и вносить сумятицу в
поведение приложения. Рекомендуется очищать
1. Горячие клавиши. Стоит начинать использовать уже
регулярно.
на этапе Playground.

Дополнительно
2. Debugging, breakpoints, консоль - инструменты,
которые понадобятся для обнаружения и
исправления ошибок. Нужны практически с момента
создания первого учебного приложения.
1. Xcode Settings - можно потратить некоторое время,
3. Debug View Hierarchy - так же инструмент деббагинга, чтобы настроить Xcode под себя и знать какими
только касаемо UI. возможностями вы обладаете.

4. Симуляторы. В Xcode есть возможность запускать 2. Memory Graph - следует изучать только после
разрабатываемое приложение на симуляторах. Вам подробного знакомства с управлением памятью в
следует знать, как этой возможностью пользоваться, Swift, утечками памяти, замыканиями и написания
как добавлять нужные симуляторы. Так же по нескольких учебных проектов. Помогает в
необходимости можно углубиться в настройки обнаружении и устранении утечек памяти.
симуляторов, смену координат, языка и пр.
ШАГ 3

UIKit

Фреймворк, используемый для


создания пользовательского
интерфейса приложений
С использованием фреймворка UIKit разработана бОльшая часть всех iOS-приложений. И не смотря на то что SwiftUI (новый
фреймворк) набирает популярность, именно UIKit является лидирующим на рынке. На данный момент UIKit является
обязательным к изучению, если вы от него отказываетесь и изучаете только SwiftUI, то вы существенно ограничиваете себя в
дальнейшем поиске работы.

Обязательно Дополнительно
1. Interface Builder (IB), Storyboard, xib - создание 1. Figma, Zeplin, Sketch - программы, в которых
интерфейса с помощью специального редактора, дизайнеры предоставляют нам, разработчикам,
встроенного в Xcode. макеты интерфейса. Учиться в них работать не нужно,
достаточно ознакомиться и знать как посмотреть
2. UI кодом - вы должны уметь разрабатывать интерфейс
отступы между элементами, цвета, шрифты и пр.
как с помощью IB, так и кодом. Обе техники
встречаются на рынке примерно в равных 2. Pixel Perfect Design - ознакомиться с концепцией. Если
пропорциях. будет время и желание, попробовать воспроизвести
для тренировки своих навыков.
3. AutoLayout, content hugging priority, compression
resistance, intrinsic content size - в общем все, что
касается констрэйнтов - правил размещения UI-
элементов относительно друг друга.

4. The Human Interface Guidelines - рекомендую почитать


документацию по UI от Apple, для того, чтобы
понимать принципы разработки интерфейса и Элементы UIKit обязательные и дополнительные для
познакомиться с набивными элементами, которые нам изучения будут указаны в чек-листе в конце книги.
доступны.
ШАГ 4

Git

Система контроля версий.


Используется для хранения
этапов разработки и командной
работы над одним проектом
Обязательно
Git, хоть на прямую и не относится к iOS-разработке, знать
ОБЯЗАТЕЛЬНО! Не важно, программист какого вы 1. Learngitbranching - тренажер, который знакомит и
направления, любая компания, любой проект в своей тренирует вас в использовании git. В какой-то момент
работе использует git и вы тоже должны уметь его может показаться невыразимо сложным, однако это
использовать. самый эффективный способ разобраться. Сцепите
зубы и пройдите его до конца!

2. SourceTree, Fork, Smartgit, Gitkracken - программы,


помогающие использовать git. Можно выбрать любую
из них и использовать при обучении и в работе над
проектами. Пожалуй, SourceTree - самая легкая для
новичков.

3. Git с терминалом - самый истинный, самый мощный


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

4. GitHub, Gitlab, Bitbucket - онлайн-сервисы, хранящие


ваши проекты, используются совместно с git.
Выбирайте один из них и вперед.

5. Gitignore - файл, который вам понадобится для того,


чтобы сохранять только нужные файлы проекта.

6. Commit style - изучите, каким образом принято писать


текст при сохранении (commit).
ШАГ 5

Code Style

Лучшие практики написания кода


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

2. Лучшие практики - поищите статьи и видео, в которых


крупные компании делятся своим видением code style.
На их основе выработайте определенный стиль и
придерживайтесь его в своих проектах.

3. Code Smells - почитайте про запахи кода, чтобы знать


как не нужно делать.
ШАГ 6

Менеджеры зависимостей

Позволяют подключать к вашему


проекту сторонние библиотеки
Обязательно
Вы должны быть знакомы с менеджерами зависимостей и
уметь подключать с различные библиотеки с их помощью. 1. Swift Package Manager - самый простой менеджер,
встроенный прямо в Xcode. Знакомство с ним и
практика его использования займет у вас примерно
один час.

2. Pods - самый популярный менеджер. При его


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

3. Carthage - наверное самый редко используемый


менеджер. Можете оставить его изучение на
последок.
ШАГ 7

ООП и принципы проектирования

Теоретические основы
программирования, которые
спрашивают практически на
каждом собеседовании
Обязательно Дополнительно
1. Основные принципы Объектно-Ориентированного Dependency Injection - сначала может показаться
Программирования - инкапсуляция, наследование, сложновато, но смысл там простой. Вы столкнетесь с этой
полиморфизм, абстракция. темой в любом случае на этапе изучения Unit-
тестирования. Но было бы хорошо ознакомиться раньше.
2. Принципы SOLID - расшифровка и пример
применения каждого принципа

3. DRY, KISS - легко запоминающиеся принципы


программирования, которым полезно следовать.
ШАГ 8

Необходимо знать

То, что нельзя объединить одним


заголовком, но желательно
освоить уже на данном этапе
Notification Centre App Life Cycle
Изучите, каким образом мы можем передавать данные Обязательная теория, которую любят спрашивать на
либо уведомления о событиях с помощью Noti cation собеседованиях.
Centre. Тема не сложная и не большая.
Вы должны знать методы жизненного цикла приложения,
когда они вызываются. И будет здорово, если сможете
придумать/изучить/попрактиковать ситуации их
применения.

fi
ШАГ 9

Архитектуры

Про организацию кода, правила


общения объектов друг с другом,
зависимости между объектами
Обязательно Дополнительно
1. MVC - первая архитектура, с которой начинают все 1. MVP + C - не сложное архитектурное решение в связке
новички. Легка в понимании, но имеет множество с паттерном Координатор. Достаточно просто
недостатков. Кстати, какие минусы есть у этой ознакомиться и знать отличия от MVC.
архитектуры тоже иногда спрашивают на
2. VIPER - очень массивная архитектура, потому и
собеседованиях и их нужно знать.
сложная. Используется не так часто, как указанные в
2. MVVM + C - архитектура MVVM очень популярна и разделе “Обязательно”, но встречается на некоторых
сложнее первой. Рекомендую переходить к ее проектах. Следует знать расшифровку и уметь
изучению уже после написания нескольких пояснить.
приложений на MVC. Приставка + C - означает
использование паттерну Coordinator, про него мы еще
поговорим далее. Именно в связки с координатором
чаще всего встречается это архитектурное решение.
Попробуйте написать приложение как без
координатора, только на MVVM, так и с.

3. Clean Swift Architecture - довольно сложная


архитектура для новичка из-за своей массивности. На
начальном этапе достаточно ознакомиться с ней
теоретически и возможно написать небольшой
проект.
ШАГ 10

Networking

Про отправку и получение


данных в/из Интернета
Обязательно Дополнительно
1. REST API - знать что это, типы HTTP-методов, какие для Alamo re - библиотека для работы с сетью. Вынесена в
чего используются и пр. дополнительно, т.к. не является обязательной для
изучения. Часто можно вообще не столкнуться с ней в
2. Парсинг данных - вам нужно знать, что такое JSON и
течении многих лет. Рекомендую изучать из интереса,
уметь преобразовывать его в объект класса или
либо если возникнет конкретная необходимость.
структуры, либо работать как со словарем. Так же вы
должны быть способны рассказать про протокол
Codable и уметь его использовать. В данной теме
рекомендую много практиковаться - берете разные
JSONы и превращаете их в объекты.

3. Получение и отправка запросов с использованием


URLSession - чем больше практики, тем лучше. Можете
довести это до автоматизма.
fi
ШАГ 11

Паттерны проектирования

Шаблоны решений некоторых


популярных задач
Обязательно Дополнительно
1. Singleton - самый простой и первый паттерн, с 1. Adapter
которого все начинают. Знать его обязательно. Иногда
2. Observer
паттерн Singleton называют антипаттерном, потому что
у него есть ряд серьезных минусов и эти минусы так же 3. Builder
необходимо знать. Однако не смотря на минусы, он
довольно часто встречается в проектах. 4. Facade

2. Coordinator - паттерн, который управляет навигацией в 5. Factory


приложении (переходами между экранами). Мы его
6. Abstract Factory
уже упоминали в связке с некоторыми архитектурами.
Очень популярный и удобный паттерн, попробуйте его Паттернов очень много, здесь я перечислила самые
на практике. популярные. Оставьте их изучение на тот момент, когда
появится немного свободного времени либо
3. Delegate - паттерн, используем для передачи данных
необходимость использования в вашем учебном проекте.
между разными объектами. Широко используется в
iOS-разработке, вы будете встречать его даже в
нативных фреймворках от Apple. Поначалу может
показаться сложным понять принцип работы,
нарисуйте себе несколько схем, поработайте с
брекпоинтами и пошаговым воспроизведением кода и
вам все станет понятно.
ШАГ 12

Persistence

Каким образом мы можем


сохранять данные для нашего
приложения
Обязательно Дополнительно
1. User Defaults 1. Realm

2. File Manager 2. iCloud

3. Keychain 3. Firebase

4. CoreData Это онлайн базы данных и фреймворки, которые


позволяют вам работать с сохранением данных
Вы должны знать какое хранилище для чего используется,
пользователя. Знание их необязательно, может
плюсы и минусы каждого, каким образом сохранять,
потребоваться в зависимости от проекта.
получать, редактировать и удалять данные из хранилищ.
Так же уделите время изучению вопроса безопасности
хранения данных.
ШАГ 13

Многопоточность

Позволяет ускорить работу


вашего приложения, выполнять
несколько задач одновременно
Обязательно Дополнительно
1. Понятие потоков, очередей, их типов, особенности RxSwift - фреймворк для реактивного программирования
исполнения кода и пр. (написания асинхронного кода). Знание этого
фреймворка может вам понадобиться, а может и нет. Я бы
2. Grand Central Dispatch - знать какие есть очереди,
сделала упор на его обучение только в случае попадания
синхронность, ассинхронность, создание
на проект, где он активно используется. Но если вам будет
пользовательских очередей, использование
просто интересно - изучайте, пробуйте.
DispatchGroup, DispatchWorkItem. Уметь привести
примеры использования.

3. Race condition, deadlock, priority inversion - знать


проблемы, которые могут возникнуть при
использовании многопоточности.

4. Async/await - ознакомиться с новым способом


написания многопоточного кода. В The Swift
Programming Language есть отдельная глава
ШАГ 14

Портфолио

Готовимся к поиску работы


Обязательно
И вот наступил этап, когда вы практически готовы к началу
поиска работы. Но прежде чем откликаться на вакансии и 1. GitHub - разместить ваши приложения и учебные
писать в компании, вам необходимо еще кое-что проекты, которые вы считаете достойными, на GitHub
подготовить. в публичный доступ.

2. К каждому проекту нужно добавить описание и


скрины, оформите README

3. Желательно, чтобы в репозитория была история


коммитов. Созданию нового публичного репозитория
лучше предпочесть изменение уровня доступа с
приватного на публичный для вашего рабочего
репозитория. Это нормально, если последние
коммиты будут нести косметические изменения, типа
удаления лишнего кода и комментариев,
переименования, добавления описания в readme
файл. Если у вас несколько веток, вмержите готовый
проект в ветку main. Наличие нескольких веток и
истории коммитов покажет, что вы действительно
знакомы с git и умеете его использовать.
ШАГ 15

Поиск работы

Шаги и рекомендации по поиску


работы
Обязательно
На данном этапе легко впасть в вечное доучивание
материала, ощущение собственной неготовности к 1. Отклики на вакансии - откликайтесь на все вакансии,
собеседованию. Важно воспринимать процесс поиска у которых указаны требования релевантные
работы не как финальный шаг, а как процесс обучения. изученному вами материалу
Каждое не пройденное собеседование - самый ценный
урок для вас и показатель материала, который еще 2. Тестовые задания - если предлагают выполнить
необходимо изучить. Ни один ролик на YouTube не даст тестовое, хватайтесь за эту возможность. Это не
вам настолько ценной и настоящей информации. Поэтому только шанс показать себя для этой вакансии, но и
не дрейфите и смело откликайтесь на найденные заполучить еще один проект в портфолио.
вакансии.
3. Собеседования - после прохождения собеседования
просите обратную связь. И, конечно, старайтесь сами
запомнить, а лучше записать, вопросы, на которые не
смогли дать ответ.

4. Tell me about yourself - самый распространенный


способ проверки вашего уровня английского,
поэтому подготовить рассказ заранее лишним не
будет.
ШАГ 16

SwiftUI

Новый, постепенно набирающий


популярность, фреймворк по
созданию пользовательского
интерфейса
Обязательно
1. Canvas, Previews – у вас должно быть понимание среды и
интерфейса написания SwiftUI кода, умение
использовать данные возможности.

SwiftUI - это альтернатива UIKit. Появился он не очень 2. SwiftUI View Life Cycle – жизненный цикл view.
давно и если первые годы к нему относились очень
настороженно из-за большого количества багов и 3. Базовые элементы SwiftUI – вы должны их знать, уметь
отсутствия обучающих материалов, то в последнее время использовать и конфигурировать.
он набирает все большую популярность. В настоящее 4. Layout – по аналогии с UIKit, корректное размещение
время нельзя сказать, какой фреймворк - UIKit или SwiftUI -
элементов на экране относительно друг друга. Изучите
выбрать для обучения, потому что реальность такова - если
такие инструменты, как Paddings, Spacers, Frames,
вы хотите быть востребованным специалистом, нужно
Alignments, V/H/Z Stacks, Grids и др.
знать ОБА. SwiftUI в целом легче чем UIKit, именно поэтому
я рекомендую изучить сначала UIKit и только потом 5. Навигация по приложению, отображение экранов с
приступать к изучению SwiftUI. использованием SwiftUI.

Важно! 6. Анимация – познакомьтесь с базовыми анимациями,


которые можно сделать с использованием SwiftUI. На
Не знание SwiftUI никоим образом не мешает вам
начальном этапе в дебри лезть не стоит.
начинать процесс поиска работы. Начните откликаться на
вакансии и параллельно сядьте за изучение SwiftUI, так вы 7. SwiftUI Wrappers – без них вы не обойдётесь, это –
повысите свои шансы на успешное трудоустройство. @State, @ObjectBinding и @EnvironmentObject.

8. Интеграция с UIKit – так как от UIKit мы пока никуда не


денемся, у вас должны быть базовые навыки интеграции
SwiftUI с UIKit.
ШАГ 17

Устранение пробелов и наработка


опыта

Последний рывок на финишной


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

Процесс поиска работы может занять довольно много


времени и тут важно не забросить практику и не забыть
теорию. Регулярно повторяйте материал и пишите свои
PET-проекты, обновляйте ваше портфолио, показывайте
активность на GitHub (или альтернативных сервисах).

Не забывайте, чем больше откликов, тем больше шанс


получить приглашение на собеседование. Чем больше
собеседований, тем ближе ваш оффер.

Удачи!

Подпишитесь на меня в Instagram и на YouTube, чтобы


получать обновления и учебные материалы.
Чек-лист

Список необходимого минимума.


Отмечайте изученный материал и
отслеживайте свой прогресс
The Swift Programming Language Extensions

The Basics Generics

Basic Operators Opaque and Boxed Types

String and Characters Access Control

Collection Types Error Handling

Control Flow Automatic Reference Counting

Functions Memory Safety

Enumerations Xcode

Structures and Classes Горячие клавиши

Properties Breakpoints

Methods Debugging

Inheritance Debug View Hierarchy

Initialization Simulators

Deinitialization DerivedData

Optional Chaining UIKit

Type Casting Storyboard, Interface Builder

Nested Types The Human Interface Guidelines

Protocols Autolayout
UINavigationController Git

UITabBarController Основные команды

UIAlertController Branches

UILabel Gitignore

UIButton, UIControl Commit style

UIView Code Style

UIImageView Нэйминг

UITextField, delegates Code smells

UITableViewController, UITableView, UITableViewCell, Менеджеры зависимостей


delegates
Swift Package Manager
UICollectionView, UICollectionViewCell, delegates
Cocoapods
UIStackView
Carthage
UISearchBar, UISearchController
ООП и принципы программирования
UIScrollView
Основные принципы
UIActivityIndicator
SOLID
UIGestureRecognizer
DRY, KISS
UISegmentedControl
Noti cation Centre
UIDatePicker
App Life Cycle
keyboardLayoutGuide
fi
Архитектуры Теория потоков, очередей, синхронность,
ассинхронность
MVC
Grand Central Dispatch
MVVM + C
Race condition, deadlock, priority inversion
Clean Swift Architecture
Async/await (Concurrency)
Networking
Поиск работы
REST api, HTTP
Оформить GitHub (Gitlab, Bitbucket…)
JSON, Coddle
Составить резюме
URLSession
LinkedIn, заполнить профиль, пост о поиске работы
Паттерны программирования
Подготовить Tell me about yourself
Singleton
SwiftUI
Coordinator
Canvas, Previews
Delegate
View Life Cycle
Persistence
Базовые элементы
UserDefaults
Layout
FileManager
Навигация
Keychain
Анимация
CoreData
SwiftUI Wrappers
Многопоточность
Интеграция с UIKit

Вам также может понравиться