Разработка iOS
приложения c нуля

Практический курс для новичков, в котором вы по шагам создадите приложение с применением как стандартных, так и сторонних технологий

Основной блок: 80 уроков (13 часов) ~ 4 Гб
Время на изучение: 3-4 недели
Swift 5, XCode 10, macOS Mojave (обновлен: май 2019 г.)

Swift + iOS

Swift - относительно новый язык программирования, с помощью которого можно создавать приложения для операционных систем Apple.

Вы будете использовать этот язык вместе с iOS: так создаются все современные мобильные приложения.

Раньше основным языком был Objective-C, но ему на смену пришел Swift - более понятный и легкий в изучении.

Если вы не знаете Swift - можете сначала изучить его в этом курсе, затем возвращайтесь для изучения iOS.

Зачем создавать мобильные iOS приложения?

Можно иметь хороший пассивный доход, создавая любые приложения и продавая их через AppStore. Либо делать приложения на заказ для крупных компаний.

Сейчас не так много хороших iOS разработчиков, поэтому у них пока большие зарплаты. Рынок еще не перенасытился - можно успеть попаcть в "поток".

 

Пассивный доход

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

Например, автор игры Flappy Bird, который зарабатывал в день по 50000 $. Из-за чего ему пришлось закрыть доступ к игре (по некоторым отзывам, не смог справиться с давлением). Можно почитать интересное интервью с разработчиком.

Я хочу разрабатывать приложения для iOS, что для этого нужно уметь?

1

Сначала нужно научиться разрабатывать на языке Swift без привязки к iOS. Чтобы затем вы не отвлекаться на его синтаксис и пр. Это можно пройти в курсе "Разработка на Swift"

2

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

3

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

Сначала Swift, потом iOS

Ошибка многих новичков в том, что они прыгают сразу во 2-й или 3-й пункт, без изучения первых двух.

В итоге в голове получается каша. Чтобы начать погружение в iOS - вы должно хорошо владеть Swift и не отвлекаться на его синтаксис или принципы работы.

Также, как в Android - без фундаментальных знаний Java (Kotlin) вы не сможете разрабатывать Android приложения.

Поэтому я рекомендую идти последовательно и не торопясь - начинать раскладывать знания по полочкам и изучать по принципу "от простого к сложному".

Программирование не любит спешки.

Данный курс полностью посвящен практике - создание iOS приложения с нуля для новичков.

 

Основная цель курса - научить вас не просто создавать iOS приложения, а делать это профессионально, с применением универсального кода, ООП, generics и пр.

 

Минимальные требования для изучения iOS

С полного нуля начать изучение iOS с этого курса будет сложновато. Потому что у вас должен быть фундамент:

- Swift (синтаксис, коллекции, типы данных, замыкания и пр.)

- ООП (наследование, полиморфизм, абстракция, протоколы и пр.)

- Опыт работы в XCode

Если у вас нет этих знаний - сначала пройдите этот курс, затем возвращайтесь обратно сюда.

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

Изучение iOS на русском

Сейчас очень мало актуальных статей на русском языке, где вы могли бы получить практику Swift + iOS

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

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

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

Что если просто почитать документацию?

Изучить iOS по документации могут немногие. Тем более, если вы новичок - вы просто запутаетесь что за чем читать. К тому же, лучше закреплять это сразу на практике (когда просто читаешь документацию - забываешь 80% информации)

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

Основные темы курса

* Количество уроков: 80 (13 часов), объем ~ 4 Гб

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

Каждый урок постепенно будет добавлять новый функционал. Чем дальше будете идти - тем сложнее будут темы и задания.

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

Все темы подобраны в строгой последовательности, от простого к сложному.

Список тем курса
(в каждой теме может быть от 1 до 5 видеоуроков, поэтому не путайте понятия "тема" и "урок")

 

DAO


29 мин


(доступен для просмотра)

Разделение приложения на уровни по принципу MVC. Добавление нужных протоколов для доступа к данными с реализацией.

 

Navigation Controller


9 мин


(доступен для просмотра)

Описание объекта-менеджера, который управляет стеком контроллеров, автоматически добавляет компоненты навигации.

 

Навигация


15 мин


(доступен для просмотра)

Связывание нескольких окон между собой в storyboard. Добавление навигации, связей.

 

TableView + Buttons


16 мин


(доступен для просмотра)

Добавление таблицы вместе с другими компонентами на форму. Прием, который пригодится в любом iOS приложении.

 

Параметры Segue


12 мин


(доступен для просмотра)

Передача данных из одной Scene в другую. Обработка действий пользователя и возврат результата.

 

Детали задачи


33 мин

Редактирование данных задачи, обработка различных типов данных: текст, дата (календарь), список, текстовые поля.
 

Сохранение задачи


35 мин

Сохранение данных задачи в БД, отображение изменений в общем списке, обработка действий пользователя для кнопок навигации.

 

Список категорий


27 мин

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

Выбор категории


24 мин

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

 

Рефакторинг справочников


18 мин

Оптимизация кода по принципам ООП, добавление универсальности и Generics.
 

Область нажатия кнопки


13 мин

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

 

Удаление задачи


12 мин

Удаление задачи из БД и из общего списка задач.

 

Редактирование инфо


21 мин

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

 

Диалоговые окна


12 мин

Подтверждение действий с помощью диалоговых окон (удаление, завешение).

 

Завершение задачи


23 мин

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

 

Создание задачи


21 мин

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

 

Быстрое создание задачи


30 мин

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

 

Поиск


47 мин

Поиск задач по названию, фильтрация результатов с помощью Core Data и запросов. Использование стандартного компонента поиска.

 

Подключение библиотек


25 мин

Добавление в проект стороннего функционала с помощью новых библиотек. Использование готового кода из фреймворков.

 

Календарь


39 мин

Выбор даты задачи с помощью календаря. Использование сторонней библиотеки вместо стандартного компонента.

 

Сортировка


13 мин

Отображение списков (задачи, справочники) в отсортированном виде. Добавление объектов сортировки с помощью Core Data.

 

Поля для сортировки


21 мин

Добавление возможности пользователю самостоятельно выбирать поля для сортировки. Используется стандартный компонент поиска.

 

Боковое меню


24 мин

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

 

Фильтрация


53 мин

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

 

Редактирование справочников


35 мин

Редактирование и добавление любых справочных значений. Эти объекты можно использовать при работе с задачей (категория, приоритет).

 

Фильтрация по справочникам


29 мин

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

 

Доработки


25 мин

Различные доработки и исправление недочетов в работе приложения. Также рефакторинг участков кода.

 

Добавление приоритета


21 мин

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

 

Перетаскивание приоритетов


7 мин

Удобная возможность для изменения важности (индекса) приоритета с помощью технологии drag&drop - нажатие и перетаскивание объекта.

 

Количество задач


12 мин

Дополнительная возможность отображения для каждого справочников - сколько задач ссылается на данное каждое значение.

 

Иконки


6 мин

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

 

Всплывающие сообщения


12 мин

Сообщения пользователю при различных ситуациях - изменение задачи, фильтрация и пр. Повышает юзабилити, пользователь лучше понимает результат своих действий.

 

Открытие доп.инфо


17 мин

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

 

Слушатели контекста


20 мин

Помогают исправлять ошибки в работе Core Data с БД. Рассмотрим на основе приложения как можно добавлять слушатели в код, также - где смотреть ошибки проекта после "крэшей".

 

Бонусные уроки

* Количество уроков: 10 (2 часа), объем ~ 800 Мб

 

Бонусные уроки входят не во все комплекты курса. Эти уроки дополняют основной функционал, добавляют различные "фишки" и удобства. Основной материал по разработке вы получаете в первом, главном блоке.

 

Локализация


44 мин

Добавление в приложение нескольких языков. Считывание системных настроек и отображение приложения на этом системы.

 

Библиотека L10-Swift

19 мин

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

 

Переключение языка


31 мин

Пользователь будет иметь возможность переключать язык приложения "на лете" и не зависеть от выбранного языка системы.

 

Первый запуск


6 мин

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

 

Интро


21 мин

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

 

Запуск на iPhone X


10 мин

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

Как будет выглядеть ваш проект в конце

В конце разработки проекта у вас уже будет достаточно много различных классов и пакетов, а также созданных окон в Storyboard.

Чтобы полностью понять как работает проект - вы создадите его по шагам. Также есть вариант - сразу открыть итоговый проект и разобрать его (не рекомендуется).

Набор пакетов и классов по всему проекту

Окна и навигация между ними

Домашние задания и практика

Если просто изучать теорию (читать документацию, статьи) - без практики выветрится около 80% информации. Поэтому в каждом уроке у вас будет несколько простых и сложных заданий, которые закрепляют пройденную тему.

Вы будете с нуля создавать весь код и постепенно усложнять функционал проекта.

Видео - лекция


Изучаете основные темы урока по видео - сначала без создания кода, чтобы просто усвоить информацию

Исходный код лекции


Смотрите готовый исходный код из урока-лекции - желательно его переписывать с нуля самостоятельно

Домашнее задание


В конце лекции - получаете домашнее задание, которое нужно попытаться выполнить самостоятельно.

Исходный код решения домашнего задания


Получаете готовый проект-решение домашнего задания, для сравнения со своим вариантом

Видео - объяснение решения


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

PDF презентация урока-лекции


Текстовый вид презентации из лекции, для повторения и удобного открытия гиперссылок (чтобы вручную не писать в браузере)

Комментарии к коду

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

Вы сможете идти по коду и смотреть пошагово что происходит в данный момент.

Комментарии есть как в исходных кодах-лекциях, так и в решениях дом. заданий.

Видео демонстрация приложения

Посмотрите на видео весь функционал приложения, которое вы создадите с нуля. Из видео узнаете основные возможности: инструкция при первом запуске, работа с задачами, справочниками, фильтрация, поиск и т.д

Приветственные слайды

Вводные слайды с описанием основного функционала. Показываются только один раз при первом запуске приложения.

LaunchScreen

Splash-окно при запуске проекта, при котором в фоновом режиме происходит загрузка начальных данных и UI.

Список задач

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

 
Редактирование/создание задачи

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

Выбор даты с помощью календаря

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

Справочник категорий для задачи

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

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

Поиск и сортировка списка задач. Тип сортировки сохраняется в настройки приложения

Боковое меню для навигации

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

Фильтрация отображения задач

Пользователь имеет возможность фильтровать задачи по любому принципу

 
Переключение языка
"на лету"

Язык приложения можно менять в любое время и сохранять в настройки приложения

Справочник приоритетов для задачи

Список справочных значений приоритетов, которые можно выбирать для задачи

Выбор цвета для любого приоритета

Цветовая палитра визуального разделения в списке задач (по приоритету)

 
Завершение и отображение задач

Задачи можно завершать или удалять из общего списка или при редактировании

Удаление задач жестом "свайп"

Удаление любой задачи сразу из общего списка с помощью движения "свайп"

Перетаскивание приоритета важности

Перетаскивания справочных значения приоритета для изменения важности (индекса)

 

Какие инструменты будете использовать?

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

Для этого вам понадобится установить все на виртуальную машину, о чем подробнее будет написано ниже на странице.

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

 

Среда разработки XCode

Бесплатная официальная IDE от Apple, с помощью которой можно создавать приложения для всех операционных систем Apple (iOS, macOS и другие).

Прочитать подробнее об XCode

Система macOS

Операционная система от Apple, которая отличается простотой и скоростью работы. XCode может работать только на macOS, т.к. версии для Windows/Linux пока нет.

Прочитать подробнее о macOS

Нужно ли устройство iPhone/iPad для разработки приложений iOS?

Если у вас есть реальные устройства iPhone или iPad - это не будет лишним. Но вы также можете обойтись и без них - на первых порах можно просто тестировать приложения на виртуальных устройствах (также как и в Android).

У меня нет MacBook, можно ли разрабатывать на Windows?

Если в качестве обучения - то да, можно.

Но в дальнейшем, если хотите работать профессионально, конечно нужно будет купить iMac или MacBook.

Но в первое время подойдет любая ОС (Windows, Linux), вы будете работать на виртуальной машине с системой macOS.

Главное, чтобы было побольше оперативной памяти.

Посмотрите видеоуроки, чтобы вы могли работать в среде Windows. Обязательно выполните все инструкции перед началом изучением курса iOS.

1. "Системн. требования" (PDF)

2. Установка macOS (PDF)

3. Установка XCode (PDF)

* Если у вас MacBook с операционной системой macOS, то 2-е видео "Установка macOS" можно пропустить

"Можно ли использовать универсальный инструмент, например Xamarin?"

Часто читатели задают вопрос, какой способ создания мобильных приложений выбрать? Сейчас на рынке существуют кроссплатформенные решения, которые позволяют один раз создать код и портировать его на разные мобильные платформы (Xamarin, React Native и другие).

У новичков большой соблазн начать изучение iOS именно с таких универсальных решений.

Не советую этого делать.

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

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

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

Нужен ли MacBook, чтобы создавать приложения iOS?

Если у вас уже есть купленный MacBook (или любой другой компьютер/ноутбук от Apple),то вам естественно лучше пользоваться им.

Примерно год назад я перешел с Windows на MacBook с системой macOS и понял, насколько он удобней и быстрее для программирования (как и Linux).

Если у вас пока нет техники Apple - ничего страшного, можно спокойно обойтись и без нее. Главное, чтобы ваше железо было более менее мощным.

В этом случае можно использовать виртуальную машину и установить туда macOS. Производительность будет хуже, чем на родной ОС, поэтому нужно машина помощнее, о чем говорил выше.

Желательные системные требования для "обычного" компьютера или ноутбука (Windows, Linux), чтобы успешно программировать на Swift и iOS


Процессор Core i5 и выше

Двухъядерный процессор Core i5 или выше - сейчас ставят почти во все ноутбуки. Core i3 тоже подойдет, но уже не так хорошо. Можно использовать также другие процессоры, сопоставимые с Core i5 или i7

Свежий жесткий диск

Он не должен быть старым и трещать при каждой операции (это кстати часто является "узким" местом, из-за чего ноутбук начинает медленно работать, даже если остальные параметры в норме) - желательно SSD

Минимум 8 Гб ОЗУ

Чем больше ОЗУ, тем лучше, т.к. на него будет хорошая нагрузка. Минимум должно быть 8 Гб, чтобы можно было начинать программировать, а тем более запускать виртуальные машины iPhone/iPad

 

Главное требование - ваш ноутбук не должен быть убитым и старым, иначе будете просто мучиться и ждать при каждом нажатии. Также не подойдут мини-ноутбуки (раньше были модными), у них даже ОС тормозит сама по себе.

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

Вопросы читателей

Какую версию iOS лучше изучать?

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

Сколько времени нужно на изучение курса?

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

В какой IDE будем работать?

Вы будете разрабатывать в XCode - это специальная среда разработки для Swift и iOS. Можно запускать на виртуальной машине Windows/Linux либо на MacBook.

Подробнее об окружении для работы с Swift - смотрите выше на странице.

 

Какие нужны начальные знания?

Курс рассчитан НЕ на новичков. Вы должны знать Swift (синтаксис, принципы ООП, объекты, коллекции, замыкания и пр.). В этом курсе вы будете заниматься только приложением iOS (не будем отвлекаться на Swift).

Я не умею пользоваться macOS, как быть?

Элементарных знаний любой ОС (например, Windows) хватит, чтобы начать работать в ОС. По ходу изучения вы будете повторять действия: вам просто нужно будет уметь запускать среду разработки и работать с файловой системой.

Нужно ли реальное устройство (iPhone/iPad), чтобы научиться создавать iOS приложения?

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

 

В курсе уже есть исходные коды или их придется набирать вручную?

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

Какие минимальные требования нужны для ноутбука?

Основное требование - ноутбук/компьютер должен быть более-менее свежим, никак не "древним". Также не подойдут мини ноутбуки, которые одно время были в моде. Более подробно - описано на странице.

Можно ли сначала купить комплект "Минимум", а потом докупить доступ в закрытую группу?

Можно, но это будет стоить дороже yна 30-50%, чем если бы вы сразу купили нужный комплект. Особенно, если покупаете курс в дни скидок.

 

Можно ли купить курс и начать его изучение позже?

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

Нужно ли знать Objective-C, чтобы научиться Swift?

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

Какие есть способы оплаты? (Из Украины, Европы и пр.)

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

Поддержка в закрытой группе

Если у вас возникнут вопросы - вы всегда сможете их задать в закрытой группе форума, куда есть доступ только у клиентов.

Вы не останетесь один на один со своими проблемами - это очень важно, чтобы вы могли постоянно двигаться вперед.

Отзывы учеников

 
 
 
 
 
 

Меню для навигации по урокам

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

Вы cможете открывать видео, PDF файлы, домашние задания, исходные коды.

Чтобы посмотреть меню "в живую" - пройдите по ссылке.

 

СТОИМОСТЬ КУРСА

Исходные коды обновлены: май 2019 г.

Основной курс ~ 4 Гб, 80 уроков (13 часов)

Бонусные уроки ~ 800 мб, 10 уроков (2 часа)

Время на изучение: 3-4 недели

 

МИНИМУМ

3 900 р

Видеоуроки

Исходные коды

Файлы PDF

СТАНДАРТ

4 400 р

Видеоуроки

Исходные коды

Файлы PDF

Закрытый форум

Бонусные уроки

РАСШИРЕННЫЙ

4 900 р

Видеоуроки

Исходные коды

Файлы PDF

Закрытый форум

Бонусные уроки

Проверка исходных кодов

ВСЕ ВКЛЮЧЕНО

6 900 р

Видеоуроки

Исходные коды

Файлы PDF

Закрытый форум

Бонусные уроки

Проверка исходных кодов

2 скайп встречи
1 на 1 

 

Доступные способы оплаты

Картой VISA, MasterCard

(онлайн оплата)

Платежная система Webmoney

(онлайн оплата)

Платежная система Яндекс.Деньги

(онлайн оплата)

Платежная система QIWI

(онлайн оплата или через любой терминал)

 

Платежная система PayPal

(онлайн оплата)

"Сбербанк Онлайн" или "Тинькофф Кредитные системы"

(онлайн оплата)

Приват24 (Украина)

(онлайн оплата)

Для жителей Казахстана

(Казком или Kaspi - homebank, банкоматы, кассы, терминалы)

 

Безналичный расчет для физ. и юр.лиц

(через банк)

Денежные переводы из любой страны


(наличными через банк)

Салоны сотовой связи

(наличными)

Любой банкомат "Сбербанка"

(наличными)

 

P.S. Не нашли подходящий способ оплаты? Напишите нам