Нативные инструменты |
Вы будете работать с нативными (родными) инструментами Apple: XCode, Swift, macOS, чтобы использовать все новшества.
Для новичков |
Курс подойдет как для новичков, которые хотят выучить Swift, так и для тех, кто знает Java или другой язык программирования.
Не требуется
|
Вам не нужна дорогая техника от Apple, чтобы выучить Swift и iOS, можно использовать обычный ноутбук или компьютер.
Swift - относительно новый язык программирования, с помощью которого можно создавать приложения для операционных систем Apple. В будущем возможно этот язык распространится и на другие платформы (Android, desktop и пр.)
Согласно опросу на StackOverflow, который проводился на следующий год после выхода Swift, он оказался на первом месте по популярности.
Ранее еще ни один язык разработки не прыгал сразу через 46 позиций в рейтинге.
Всего за полгода-год этот язык приобрел большую популярность среди профессионалов и новичков.
Его основные преимущества: удобство, скорость, лаконичность. То, что в одном языке занимает 3-4 строки кода, Swift может выполнить с помощью 1-2 операторов.
Создатели Swift постарались взять лучшее, что было в разных языках программирования, и собрать все это в одном языке.
Многие Java разработчики уже поняли насколько перспективен язык и уже создают мобильные приложения только на нем.
Swift был разработан компанией Apple для создания приложений под iOS, macOS и другие свои операционные системы, т.е. изначально был рассчитан только на экосистему Apple.
Но высокая популярность языка привела к тому, что даже Google, главный конкурент Apple, начал подумывать о внедрении этого языка для разработки Android приложений.
Никто пока точно не может сказать, как будет применяться этот язык через пару лет и сможет ли он подмять под себя всю мобильную разработку.
Cейчас уже всем стало понятно, что у Swift - большое будущее. Кто будет знать Java и Swift - cможет разрабатывать приложения для двух главных мобильных платформ (Android, iOS).
Означает ли это, что Java можно не изучать и полностью перейти на Swift?
Конечно, нет. Вам в любом случае нужно знать Java хотя бы для того, чтобы создавать серверные приложения, публиковать веб сервисы для мобильных приложений, организовывать синхронизацию и т.д. Swift возможно "откусит" большой кусок пирога у мобильной разработки, но время покажет.
Пока же по популярности Java в основном находится на первом месте, согласно индексу TIOBE.
Если кроме Swift вы больше ничего не будете знать - ваши iOS приложения будут ограниченными, "однобокими".
К тому же в настоящее время пока вся разработка Android приложений ведется на Java, поэтому чтобы стать профессиональным мобильным разработчиком - вам нужно знать как Java, так и Swift.
Даже если Google действительно решится полностью перейти на Swift - это произойдет не так быстро, процесс может растянуться на годы.
В общем лучший вариант - уметь разрабатывать как на Java, так и на Swift, тогда вы точно будете на коне, в независимости от того, куда повернет Swift.
Если вы планируете в будущем разрабатывать мобильные приложения для Android и iOS - вам нужно знать 2 языка: Java и Swift.
В такой связке вы сможете создавать весь комплекс решений, начиная от одиночного мобильного приложения, заканчивая связкой в веб версией, сервисам и пр.
В идеале мобильный разработчик должен уметь создавать как backend (серверная часть), так и frontend (мобильное приложение).
Вы станете одним из немногих разработчиков, которые смогут создать полноценное мобильное приложение с веб поддержкой.
Основное отличие в том, что Swift взял все лучшие подходы из разных языков разработки, в том числе из Java и объединил "под одной крышей". Т.е. Swift по сути умеет практически все, что Java + много дополнительного.
Если вы уже знаете Java и начинаете изучать Swift - поначалу синтаксис может быть не совсем привычным, т.к. больше различных символов, возможностей.
Со временем вы привыкнете и часто во время разработки на Java будете ловить себя на мысли, что в Swift это можно было сделать намного проще.
В общем учить Swift после Java нетрудно, главное привыкнуть к новым концепциями и немного усложненному синтаксису.
Я хочу разрабатывать приложения для iOS, что для этого нужно уметь?
1
Сначала нужно научиться разрабатывать на языке Swift без привязки к iOS. Уметь читать синтаксис, работать с коллекциями, типами данных, замыканиями и пр. - данный курс выполняет этот шаг.
2
После того, как выучили Swift - можно начинать изучать архитектуру iOS и особенности разработки мобильных приложений. Создать крупное iOS приложение с нуля вы можете в этом курсе
3
Когда поймете основы Swift и iOS - можно уже переходить к профессиональным вещам: веб сервисы, параллельные вычисления, кастомные компоненты, анимация и многое другое.
Не прыгайте в неизвестность
Ошибка многих новичков в том, что они прыгают сразу во 2-й или 3-й пункт, без изучения первых двух.
В итоге в голове получается каша. Чтобы начать погружение в iOS - вы должно хорошо владеть Swift и не отвлекаться на его синтаксис или принципы работы.
Также, как в Android - без фундаментальных знаний Java вы не сможете разрабатывать Android приложения.
Поэтому я рекомендую идти последовательно и не торопясь - начинать раскладывать знания по полочкам и изучать по принципу "от простого к сложному".
Программирование не любит спешки.
Данный курс выполняет 1-й шаг: вы поймете основные моменты Swift и получите опыт разработки, который уже потом будете использовать в изучении iOS.
Когда можно создавать приложения iOS?
Сначала вам нужно основательно изучить Swift - потом уже спокойно будете его применять для разработки приложений. Основной упор будет идти именно на сам язык программирования (без привязки к iOS).
Вы должны уверенно чувствовать себя в синтаксисе Swift, только можно уже переходить к созданию мобильных приложений (отдельный курс).
Если пытаться одновременно изучать Swift и iOS - ничего хорошего обычно не выходит, слишком много новой информации, в голове - каша.
Если у вас хорошие знания Java, то изучение Swift займет примерно 2-3 недели.
Даже для такого языка, как Java - почти нет нормальной литературы и видео на русском.
В Swift ситуация еще хуже: язык появился недавно, поэтому на русском актуальную информацию найти сложно.
Конечно, если вы знаете технический английский язык, вам будет полегче. Но все равно, намного понятней, когда новые темы понимаешь сначала на русском языке, а потом можно дополнительно смотреть на английском, когда уже знаешь суть темы.
Поэтому одной из целей было создание обучающего материала полностью на русском языке, чтобы было понятно всем.
Это не обычный перевод официальной документации, которым занимаются многие компании и разработчики. А полноценный курс, созданный с нуля и с правильной последовательностью тем.
Даже для такого языка, как Java - почти нет нормальной литературы и видео на русском.
В Swift ситуация еще хуже: язык появился недавно, поэтому на русском актуальную информацию найти сложно.
Конечно, если вы знаете технический английский язык, вам будет полегче. Но все равно, намного понятней, когда новые темы понимаешь сначала на русском языке, а потом можно дополнительно смотреть на английском, когда уже знаешь суть темы.
Поэтому одной из целей было создание обучающего материала полностью на русском языке, чтобы было понятно всем.
Это не обычный перевод официальной документации, которым занимаются многие компании и разработчики. А полноценный курс, созданный с нуля и с правильно последовательностью тем.
Что если просто почитать документацию?
Изучить новый язык просто по документации могут немногие. Тем более, если вы новичок - вы просто запутаетесь что за чем читать. К тому же, лучше закреплять это сразу на практике (когда просто читаешь документацию - забываешь 80% информации)
К сожалению в документации Apple не совсем верно распределили главы и многие начинающие разработчики путаются. Вы будете изучать немного в другом порядке.
Основные темы курса
Процесс обучения построен по принципу "от простому к сложному". Чтобы последовательно "наслаивать" знания друг на друга.
Многие новички сразу пытаются решить какую-то сложную или глобальную задачу - в итоге запутываются. Вы будете делать по-правильному - каждый урок будет описывать одну небольшую тему + практическое задание. Чем дальше будете идти - тем сложнее будут темы и задания.
В конце разберем готовый проект, который будет иметь UI интерфейс и взаимодействовать с пользователем.
После прохождения этого курса - можно будет переходить к изучению iOS (отдельный курс).
Все темы подобраны в строгой последовательности, от простого к сложному, чтобы знания "опирались" друг на друга как конструктор.
(доступен для просмотра)
Какие требования к операционной системе, железу и всему окружению. Среда разработки, облачные решения для работы с macOS.
(доступен для просмотра)
Пошаговая установка операционной системы macOS на виртуальную машину в Windows (если у вас MacBook - это видео можно пропустить)
(доступен для просмотра)
Загрузка и установка среды разработки XCode из AppStore. Учетная запись Apple для скачивания приложений.
(доступен для просмотра)
Правильное использование документации, какие типы документаций доступны от Apple.
(доступен для просмотра)
Возможности Playground для изучения Swift, консольные и графические приложения.
(доступен для просмотра)
Как правильно объявлять переменные и константы, основные отличия от Java. Особенности синтаксиса, дефолтные значения.
(доступен для просмотра)
(доступен для просмотра)
Использование кортежей для работы с набором данных, индексация и добавление меток. Многоуровневые кортежи и доступ к элементам.
(доступен для просмотра)
Организация циклов с помощью range, пошаговые и вложенные циклы, сравнение возможностей с Java. Использование while.
Создание функций, присвоение функции в переменную, поведение параметров при передаче значений. Вложенные функции и порядок вызова.
Специальные блоки кода для повторного использования, перехват переменных. Упрощение синтаксиса, применение замыканий в системных методах.
Обработка результатов выполнения функции с помощью замыканий.
Проверка параметров функции с возможностью раннего выхода. Сравнение с обычными условными операторами.
Разбор основных типов коллекций в Swift, их основные отличия, когда что применять.
Создание массивов, добавление элементов, использование опциональных типов данных и замыканий.
Добавление множеств (Set), принципы использования. Математические операции над множествами, вызов методов по цепочке.
Организация карты значений по принципу "ключ-значение". Сравнение с другими типами коллекций.
Часто используемые методы для работы с элементами коллекций, примеры использования.
Создание своих объектов, разновидности типов в Swift, сравнение с Java.
Создание структур на примере практической задачи, отличия от других типов.
Инициализация свойств объектов начальными значениями, проверка пустых свойств для заполнения.
Добавление методов в объекты, использование и изменение instance переменных.
Создание ссылочных объектов на основе классов, применение принципов ООП, отличия от структуры.
Расширение и доработка функционала, особенности работы инциализаторов при наследовании.
Создание aбстрактного уровня для приложения с помощью протоколов. Разбор ограничений и возможностей.
Создание "заплаток" для готовых классов и структур. Дефолтная реализация для протоколов, адаптация класса.
Преобразование типов upcasting и downcasting с использованием протоколов и классов.
Работа с набором ограниченных значений enum, инициализация данных, автозаполнение.
Основные способы обработки исключений с помощью try и опциональных типов. Применение enum для создания собственных типов ошибок.
Универсализация кода с помощью Generics, типизация и основные возможности.
Как подключать другие библиотеки (модули) и использовать их функционал. Разбор основных модулей Swift.
После всех уроков - разберем готовый проект: игра "крестики-нолики". Это еще более сложный код, чем в лекциях, поэтому доступны подробные комментарии.
Вы поймете, как в Playground создавать UI и взаимодействовать с пользователем.
Также вы узнаете откуда можно брать готовые проекты для изучения и развития навыков.
Это ресурсы, по которым я сам изучал Swift и которые использую до сих пор. Их вам хватит на ближайшие 2-3 года.
Если просто изучать теорию (читать документацию, статьи) - без практики выветрится около 80% информации.
Поэтому в каждом уроке у вас будет несколько простых и сложных заданий, которые закрепляют пройденную тему.
Вы будете с нуля создавать весь код и постепенно привыкать к синтаксису Swift. К последним урокам вы уже заметите, что многие вещи пишете на автомате.
Если вы разрабатывали на Java - придется перестраивать многие принципы, становятся видны плюсы-минусы с каждой стороны.
Изучаете основные темы урока по видео - сначала без создания кода, чтобы просто усвоить информацию
Смотрите готовый исходный код из урока-лекции - желательно его переписывать с нуля самостоятельно
В конце лекции - получаете домашнее задание, которое нужно попытаться выполнить самостоятельно.
Получаете готовый проект-решение домашнего задания, для сравнения со своим вариантом
Разбор исходного кода по решению домашнего задания, пошаговое выполнение всех действий для получения результатов
Текстовый вид презентации из лекции, для повторения и удобного открытия гиперссылок (чтобы вручную не писать в браузере)
Всю разработку вы будете вести в специальном редакторе внутри XCode, который называется Playground.
Это полигон для испытания любого кода с мгновенным отображением результата. Поэтому он идеально подходит для наших целей - изучить Swift.
Многие думают, судя по названию, что это какой-то несерьезный инструмент для игрушек и пр.
На самом деле это плацдарм для разработки и тестирования Swift кода без надобности создавать отдельный проект.
Вы постоянно будете им пользоваться, даже когда начнете создавать мобильные приложения - чтобы протестить код или какой-либо компонент.
Для каждого урока у вас будет отдельный проект Playground, который можно сразу открывать в XCode и запускать.
Каждый проект содержить большое количество комментариев по коду. Это нужно для того, чтобы даже новичок мог разобраться в происходящем.
Вы сможете идти по коду и смотреть пошагово что происходит в данный момент.
Комментарии есть как в исходных кодах-лекциях, так и в решениях дом. заданий.
В дополнение к изучению Swift мы также постоянно будем сравнивать многие принципы Swift и Java.
Это поможет увидеть все плюсы и минусы каждого из языков. Во многих случаях Swift сильно выигрывает у Java - вы узнаете почему.
(обязательно выполните перед изучением курса)
* Если у вас MacBook с операционной системой macOS, то 2-е видео "Установка macOS" можно пропустить
Да, это самый распространенный вариант для новичков, т.к. не все могут позволить себе технику Apple с ОС macOS.
В дальнейшем, если хотите работать профессионально, конечно нужно будет купить iMac или MacBook.
Но в первое время подойдет любая ОС (Windows, Linux), вы будете работать на виртуальной машине с системой macOS.
Самый правильный вариант - это использование родных, нативных инструментов. Вы будете пользоваться набором инструментов Apple для разработки приложений и изучения Swift.
Для этого вам понадобится установить все на виртуальную машину, о чем подробнее будет написано ниже на странице.
Бесплатная официальная IDE от Apple, с помощью которой можно создавать приложения для всех операционных систем Apple (iOS, macOS и другие).
Операционная система от Apple, которая отличается простотой и скоростью работы. XCode может работать только на macOS, т.к. версии для Windows/Linux пока нет.
Если у вас есть реальные устройства iPhone или iPad - это не будет лишним. Но вы также можете обойтись и без них - на первых порах можно просто тестировать приложения на виртуальных устройствах (также как и в Android).
"Можно ли использовать универсальный инструмент, например Xamarin?"
Часто читатели задают вопрос, какой способ создания мобильных приложений выбрать? Сейчас на рынке существуют кроссплатформенные решения, которые позволяют один раз создать код и портировать его на разные мобильные платформы (Xamarin, React Native и другие).
У новичков большой соблазн начать изучение iOS именно с таких универсальных решений.
Не советую этого делать.
Т.к. в любом случае надо знать основы, фундамент, чтобы понимать как это все работает.
К тому же лучше использовать возможности родного языка Swift, которых может не быть в других языках и приходится изобретать "велосипед".
Даже если в будущем вы приедете к использованию универсальных решений - у вас должен быть опыт разработки приложений на Swift, чтобы видеть всю плюсы и минусы во время cоздания проектов.
Важно еще то, что при использовании родных технологий - вы всегда будете использовать последние обновления, а не ждать, пока под них создадут нужные библиотеки-адаптеры для использования в кроссплатформенных продуктах.
С полного нуля начать изучение Swift с этого курса будет сложновато. Потому что у вас должен быть фундамент (ООП, объекты, коллекции и пр).
Если вы уже знаете Java хотя бы на среднем уровне и хотите быстро выучить Swift, у вас есть преимущество, т.к. многие моменты Swift сильно похожи на Java.
Если уже умеете разрабатывать Android приложения - вы можете также выучить Swift и создавать iOS приложения - будете знать обе главные платформы.
Вы должны хотя бы минимально знать Java или любой другой язык, потому мы сразу начнем проходить Swift и использовать основные принципы разработки в новом языке.
Необходимый фундамент для изучения Swift:
- ООП (наследование, полиморфизм, абстракция, интерфейсы и пр.)
- Запуск проектов, работа с объектами,
- Опыт разработки в любой Java IDE
Все эти темы мы проходили в курсах по основам Java. Если у вас нет этих знаний - получите их из этого курса, затем возвращайтесь к Swift.
Если у вас уже есть купленный MacBook (или любой другой компьютер/ноутбук от Apple),то вам естественно лучше пользоваться им.
Примерно год назад я перешел с Windows на MacBook с системой macOS и понял, насколько он удобней и быстрее для программирования (как и Linux).
Если у вас пока нет техники Apple - ничего страшного, можно спокойно обойтись и без нее. Главное, чтобы ваше железо было более менее мощным.
В этом случае можно использовать виртуальную машину и установить туда macOS. Производительность будет хуже, чем на родной ОС, поэтому нужно машина помощнее, о чем говорил выше.
Двухъядерный процессор Core i5 или выше - сейчас ставят почти во все ноутбуки. Core i3 тоже подойдет, но уже не так хорошо. Можно использовать также другие процессоры, сопоставимые с Core i5 или i7
Он не должен быть старым и трещать при каждой операции (это кстати часто является "узким" местом, из-за чего ноутбук начинает медленно работать, даже если остальные параметры в норме) - желательно SSD
Чем больше ОЗУ, тем лучше, т.к. на него будет хорошая нагрузка. Минимум должно быть 8 Гб, чтобы можно было начинать программировать, а тем более запускать виртуальные машины iPhone/iPad
Главное требование - ваш ноутбук не должен быть убитым и старым, иначе будете просто мучиться и ждать при каждом нажатии. Также не подойдут мини-ноутбуки (раньше были модными), у них даже ОС тормозит сама по себе.
Если у вас железо слабее, чем указано выше, то вы сможете создавать iOS приложения, но в этом случае производительность будет не очень быстрой, компиляцию и прочие запуски придется ждать дольше обычного.
В курсе используется Swift 5 - вы можете изучать сразу с этой версии. Основные нововведения произошли в версии Swift 3.
На изучение основ Swift у вас уйдет примерно 2-3 недели (особенно, если вы уже знакомы с Java). После этого уже можно приниматься за iOS.
Вы будете разрабатывать в XCode - это специальная среда разработки для Swift и iOS. Можно запускать на виртуальной машине Windows/Linux либо на MacBook.
Подробнее об окружении для работы с Swift - смотрите выше на странице.
Курс рассчитан НЕ на новичков. Вы должны хотя бы минимально знать Java (применять принципы ООП, работать с объектами, коллекциями). По сути вам нужно будет просто доучить синтаксис Swift и понять его различия.
Элементарных знаний любой ОС (например, Windows) хватит, чтобы начать работать в ОС. По ходу изучения Swift вам параллельно будут даваться советы по работе в macOS. Вам просто нужно будет уметь запускать среду разработки и работать с файловой системой.
Необязательно, но если есть - не будет лишним. Во время разработки можно запускать проект на виртуальном устройстве (аналогично и в Android).
Все исходные коды есть, по каждому уроку можно будет открывать в XCode. Но я рекомендую все равно набирать весь код вручную, чтобы лучше запомнить его.
Основное требование - ноутбук/компьютер должен быть более-менее свежим, никак не "древним". Также не подойдут мини ноутбуки, которые одно время были в моде. Более подробно - описано на странице.
Можно, но это будет стоить дороже yна 30-50%, чем если бы вы сразу купили нужный комплект. Особенно, если покупаете курс в дни скидок.
Да, особенно если покупаете по акции со скидкой - многие так делают. Изучение курса можете начинать в любое время. Вопросы сможете задавать также в любое время.
Нет, необязательно. Можно выучить Swift и без знания Objective-C, хотя он будет не лишним. Можно начинать сразу со Swift, т.к. он намного проще и понятней, чем Objective-C.
С Украины можно оплатить через Приват24 либо банковским переводом. Для этого нужно выбрать комплект курса, нажать кнопку покупки и ввести свои данные. На последнем шаге вы сможете выбрать любой удобный способ оплаты.
Если у вас возникнут вопросы - вы всегда сможете их задать в закрытой группе форума, куда есть доступ только у клиентов.
Вы не останетесь один на один со своими проблемами - это очень важно, чтобы вы могли постоянно двигаться вперед.
Посмотреть интерактивную ДЕМО версию курса
* Объем курса ~ 3,7 Гб (количество видеоуроков: 61)
Версии: Swift 5, XCode 10, macOS Mojave (обновлен: май 2019 г.)
Видеоуроки
Исходные коды
Файлы PDF
Видеоуроки
Исходные коды
Файлы PDF
Закрытый форум
Проверка исходных кодов
2 скайп встречи
1 на 1
Картой VISA, MasterCard
(онлайн оплата)
Платежная система Webmoney
(онлайн оплата)
Платежная система Яндекс.Деньги
(онлайн оплата)
Платежная система QIWI
(онлайн оплата или через любой терминал)
Платежная система PayPal
(онлайн оплата)
"Сбербанк Онлайн" или "Тинькофф Кредитные системы"
(онлайн оплата)
Приват24 (Украина)
(онлайн оплата)
Для жителей Казахстана
(Казком или Kaspi - homebank, банкоматы, кассы, терминалы)
Безналичный расчет для физ. и юр.лиц
(через банк)
Денежные переводы из любой страны
(наличными через банк)
Салоны сотовой связи
(наличными)
Любой банкомат "Сбербанка"
(наличными)
P.S. Не нашли подходящий способ оплаты? Напишите нам