Как освоить стартовый набор iOS-разработчика? — Академия Яндекса
С 2015 года Яндекс организует Школу мобильной разработки, где можно научиться созданию приложений под iOS и Android. Но места хватает далеко не всем желающим. Создатели Школы решили исправить ситуацию и запустили онлайн-курс по iOS. За восемь недель программист может освоить необходимый минимум, собрать первое приложение и попасть на радары рекрутеров Яндекса. Об истории создания курса рассказывает Денис Малых, руководитель службы разработки приложений для мобильных платформ.
Как появился курс
Еще в школе мне хотелось заниматься компьютерными играми, я даже проработал полтора года в игровой компании, но она не выдержала кризиса 2009 года. Я пошел другим путем, но желание создавать игрушки осталось. Разработка игр на мобильных платформах стала для меня любимым хобби.
Также довольно долго, еще до работы в Яндексе, я проводил спецкурс на матмехе УрФУ. Один год преподавал iOS, другой Java Enterprise Edition. Такие курсы не только приятно вести, это хороший способ посмотреть и в перспективе нанять талантливых студентов.
В 2016 году я пришел в Яндекс как iOS-разработчик и параллельно старался поддерживать екатеринбургское комьюнити. Мы регулярно проводим встречи с докладами и пирогами, а также хакатоны. Иногда случаются интересные эксперименты. Так, в прошлом году проводили первый ночной хакатон по iOS-разработке в области AR, а один раз я выступал с докладом по генерации музыки для флейты на базе фреймворка ML для iOS.
Опыт преподавания в УрФУ и организации хакатонов вылился в создание Школы мобильной разработки. Она успешно проходит уже который год, но всегда оставалась проблема: желающих много, а набрать больше 15-20 человек физически невозможно. Отсюда желание сделать образовательную программу с большим охватом, а лучше всего для этого подходят онлайн-курсы.
Изначально команда состояла из двух человек, но быстро стало понятно, что двоим подготовку такого большого курса не вытянуть. Так что мы стремительно расширили количество участников за счет бойцов из моей группы iOS-разработки и ребят из самых разных подразделений Яндекса, которые делают мобильные приложения.
Программа онлайн-курса
Наша тема — азы iOS-разработки. Чтобы их освоить, человек уже должен быть знаком с каким-нибудь объектно-ориентированным языком программирования, например, с Java, C++ или C#. Тем, кто не умеет программировать, курс просто не подойдет.
Программа состоит из восьми модулей, разделенных на две части: вначале разбираем язык программирования Swift, потом говорим про различные инструменты и слои, постепенно усложняя и углубляя темы.
Каждый из модулей содержит видеолекции и небольшие задачки, которые помогают закрепить материал. При прохождении всего курса эти задания складываются в этапы создания полноценного приложения.
Что дает курс
На выходе мы получаем джентльменский набор инструментов для мобильной разработки. Следует понимать, что для того, чтобы стать практикующим разработчиком, нужна прежде всего практика. Необходимо садиться и писать какие-то приложения. Поэтому самым талантливым выпускникам курса мы будем предлагать стажировку в мобильных подразделениях Яндекса.
Но курс подойдет и для опытного разработчика, у которого есть опыт в другой области, но нет знаний по созданию приложений. Опыт такого человека в сочетании с базовыми знаниями курса сильно повысит его вес на рынке труда, и он сможет претендовать на что-то большее, чем стартовая позиция.
Освойте iOS-разработку на платформе Stepik
учимся создавать приложения для iOS с нуля — «Хакер»
Профессия программиста — одна из самых престижных и востребованных, это факт. В отрасли разработки программного обеспечения есть свои ниши. Из них самая быстроразвивающаяся, а вместе с тем наиболее высокооплачиваемая — это разработка ПО для мобильных устройств. Как тебе известно, так уж сложилось, что, оставив конкурентов далеко позади, вперед вырвались три постоянных соперника. Фишка легла таким образом, что кто-то из этих трех безоговорочный лидер, кто-то всегда догоняет.
В сегменте мобильных технологий, без сомнения, лидирует Apple со своим смартфоном iPhone. На прошедшей в сентябре презентации компания из Купертино продемонстрировала уже 7-ю версию мобильного девайса. Вместе с ней Apple представила новую версию мобильной операционной системы iOS 10. Теперь это самая значимая операционка в мире, как и ее предшественницы. Из этого следует, что изучение разработки для iOS — самое выгодное вложение времени и средств.
«Яблочная» экосистема
Сегодня мы займемся разработкой простого мобильного приложения для iOS. Конечно, лучше всего для этого подходит родной Mac. Но если ты сторонник Windows или у тебя просто нет Мака, можно установить операционную систему macOS под виртуальную машину в Windows. На просторах Сети тебе не составит большого труда найти специально заточенную под PC версию macOS, в народе называемую Хакинтош. Смело ставь ее на виртуалку VMware, VirtualBox — на твой выбор. Сразу предупрежу, что на PC-клавиатуре нет части клавиш, которые есть на Mac-клаве, и многие их сочетания нажать в Хакинтоше невозможно. Это изрядно портит настроение. В остальном все описанные ниже операции можно успешно выполнить на Хакинтоше.
Необходимые знания
Чтобы программировать вообще и для iOS в частности, надо довольно много знать. Математика и логика, может, и не понадобятся вначале, но будут востребованы потом. Современные технологии избавили программиста от необходимости досконально знать архитектуру компьютера, однако понимать базовые механизмы, такие как системы счисления, их преобразование, скорость работы подпрограмм или эффективность алгоритмов (большое O), необходимо.
На более высоком уровне iOS-разработчику надо глубоко знать операционную систему macOS и собственно саму iOS. Также тебе обязательно надо освоить «яблочный» язык программирования. Знание Delphi, C++, C# или VB.NET тебе не сильно поможет. У Apple своя экосистема со своими языками: Objective-C и Swift. Конечно, знание C++ еще никому не навредило, программы и вставки на нем встречаются везде, даже у Apple. Но самый используемый по определению Objective-C, просто потому, что появился гораздо раньше (в середине восьмидесятых годов прошлого века), тогда как Swift лишь два года назад (в 2014-м). Apple возлагает большие надежды на новый язык и много инвестирует в него. Для поддержки старого софта используется Objective-C, а новый пишется на Swift. Поэтому тебе неплохо знать оба.
Чтобы не тратить время зря, все эти языки программирования можно изучить под чутким контролем преподавателей на сайте GeekBrains.
Инструменты для разработки
Как ты знаешь, главный инструмент разработчика под macOS и вместе с ней iOS — среда программирования Xcode. Она включает средства для создания приложений для Mac, iPhone, iPad, Apple TV, Apple Watch. Все платформы Apple. Xcode содержит средство построения интерфейса (Interface Builder), редактор кода, поддерживающего все современные средства работы с кодом. Кроме того, не выходя из Xcode, можно протестировать приложение; если оно разрабатывается для внешнего устройства, то его можно запустить в эмуляторе.
В систему включены эмуляторы всех устройств, новые версии которых можно докачать. В дополнение Xcode содержит графические инструменты для анализа производительности приложения, включая средства диагностирования загруженности CPU, использования накопителя (HDD, SDD и другие), нагрузки на графический адаптер (со стороны OpenGL).
13 сентября вышла новая, горячо ожидаемая версия среды разработки 8.0. Стабильные версии можно бесплатно скачать в App Store. Альфы и беты распространяются по подписке разработчика. Восьмая версия вобрала в себя: новую версию языка Swift 3, средство изучения Swift Playground для iPad, новую версию Interface Builder, которая стала быстрее работать и позволяет просматривать макет приложения на разных платформах, без необходимости развертывать на симуляторе само приложение.
Если у тебя старая версия Xcode, то рекомендуем обновить, поскольку мы будем использовать последнюю версию. Скачать ее можно из App Store:
Xcode 8 в Mac App StoreНа Xcode 8 можно разрабатывать приложения для macOS Sierra, iOS 10, watchOS 3 и tvOS 10. Имеются все SDK. Новые версии операционок стали последовательно появляться аккурат после презентации Apple, состоявшейся в начале сентября.
Язык Objective-C
Кратко вспомним основные сведения о языке. Objective-C — компилируемый объектно ориентированный язык программирования, используемый для написания приложений под «яблочные» системы. Представляет собой надмножество или, другими словами, надстройку над C, унаследовав от последнего синтаксис, типы данных, способы контроля за ходом выполнения программы и добавив к нему возможности объектно ориентированного программирования — описание классов и методов.
Как в C++, в Objective-C центральную роль играют объекты, с которыми связаны четыре парадигмы: абстракция, инкапсуляция, наследование, полиморфизм. Язык C++ является строго типизированным, тогда как Objective-C — слабо типизированный или обладает динамической системой типов данных. Подобно Smalltalk, в Objective-C объектам посылаются сообщения. Это исключительная возможность динамических языков, так как тип объектов проверяется во время исполнения программы, а не во время компиляции.
Описание языка Objective-C занимает не один объемистый томик. Поэтому, чтобы получить объективные знания, удобно пройти курс «Mobile-разработчик». Целый раздел курса посвящен этому языку.
Разработка приложения для iOS
В качестве семпла мы разработаем весьма простое приложение. Не будем отступать от священной традиции, поприветствуем мир. Однако с учетом того, что у нас графическое приложение, мы немного разнообразим его: добавим кнопку, нажимая которую будем отображать или скрывать надпись «Hello, World».
Запусти Xcode, в появившемся окне выбери Create new project или в главном меню File -> New -> Project. В следующем окне будет предложено выбрать целевую платформу и тип приложения.
Мастер создания приложенийВ данном случае нас интересует платформа iOS. На выбор представлено семь типов приложений. Шесть из них — заготовки типичных приложений операционной системы iOS, по умолчанию содержащие разный набор компонентов. Седьмой тип — игра.
Типы приложений
- Заготовка Single View Application предназначена для простого приложения с одним экраном. Заготовка включает компонент View Controller, который позволяет настроить вид приложения с помощью конструктора форм Interface Builder.
- Master Detail Application создает приложение, где в табличном представлении отображается коллекция объектов. После выбора одного из них показываются подробные сведения об этом объекте. Первый вид — мастер, второй — детализация.
- С помощью Page-Based Application создаются приложения, имеющие несколько экранов, как страницы в книге. Следовательно, из этой заготовки создаются, например, читалки.
- Tabbed application позволяет создавать приложения, где на каждый экран можно переключиться в любой момент, то есть у каждого экрана есть своя кнопка для его активации, на которой отображается заголовок. В качестве примера можно привести iTunes.
- Game служит для создания заготовки игры. На выбор предлагаются четыре фреймворка для создания игры: SpriteKit, SceneKit, OpenGL ES, Metal. Вкратце рассмотрим их.
SpriteKit представляет собой систему для двумерной визуализации и анимации текстурированных прямоугольников — спрайтов. При отображении кадров используется стандартный цикл, кадр выводится после того, как обработку пройдет все содержимое сцены.
SceneKit — высокоуровневый фреймворк для визуализации трехмерной графики без помощи OpenGL. Он поддерживает загрузку, манипуляцию трехмерными объектами. В него включены: физический движок, генератор частиц и легкий способ скриптования.
OpenGL ES — стандарт в области компьютерной графики. Позволяет визуализировать 2D- и 3D-сцены. Позволяет описать пайплайн для видеокарты: вершины проходят преобразование, собираются в примитивы, которые растеризуются в двумерное изображение и выводятся на экран. В пайплайн можно включить программируемые шейдеры.
Metal — представляет собой низкоуровневый API, который позволит тебе выжать все мощности из твоего видеоадаптера. Отлаженные API вместе с предкомпилированными шейдерами и многопоточностью позволяют твоей игре подняться на новый уровень производительности и качества. - Sticker Pack Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Представляет собой набор простых или анимированных изображений, используемых в новом iMessage. Для своего создания не требует кодирования.
- iMessage Application — новый вид приложений, появившийся в iOS 10 и Xcode 8. Позволяет создавать дополнения для iMessage, например для покупки и загрузки твоего пакета стикеров. Также можно, воспользовавшись API iMessage, создать свой аналог данного приложения, включая проигрывание аудио, видео, использование стикеров и другое.
Создание первого проекта
В качестве заготовки для нашего приложения выберем Single View Application. Поскольку мы не будем разрабатывать большую программу, нам хватит предоставляемой этой заготовкой средств. Нажимаем Next. На следующей странице мастера надо ввести имя проекта, к примеру ShowLab. В ниспадающем списке Language оставим выбранный по умолчанию язык — Objective-C. Далее в ниспадающем списке Devices оставим выбор Universal. Здесь определяется, для какого устройства (iPhone или iPad) создается приложение. Пункт Universal означает для обоих. Снимем флажки Include Unit Tests и Include UI Tests, нам никакие тесты не нужны. Next. Выберем папку для сохранения проекта. Теперь жми кнопку Create.
В результате откроется окно со списком всех примененных к проекту параметров. В этом окне можно изменить установленные ранее в мастере параметры: ориентацию, целевой девайс и прочее.
Свойства проектаСначала нам надо создать интерфейс приложения. Для этого одним кликом выбери файл Main.storyboard в списке слева (если этот файл не видно, разверни содержимое папки ShowLab). Правее списка все окно займет Interface Builder. В центре отобразится макет устройства. В правом нижнем углу окна находится панель компонентов. Перетащи оттуда на макет компоненты Label и Button. Выше панели компонентов находится список свойств. Если у тебя он отсутствует, нажми кнопку Show the Attributes Inspector, находящуюся под заголовком окна в правой части интерфейса.
Выдели в макете компонент Label и настрой его свойство Text: в ниспадающем списке оставь выбор Plain, в строку ниже введи нужную надпись, в нашем случае «Hello, World». Если текст не помещается в границы надписи, измени их, перетаскивая маркеры на краях компонента. Чтобы централизовать его по горизонтали, перейди на страницу Size Inspector, нажав на кнопку Show the Size Inspector (справа от Show the Attributes Inspector). На этой странице из ниспадающего списка Arrange выбери пункт Center Horizontally in Container.
Теперь выбери компонент Button, измени его свойство Text на желаемую метку — Switch. Отцентрировать можешь так же, как описано выше.
Создаем связь между графическими элементами и кодом
В Visual Studio (или Delphi) объект в коде создается автоматически в тот момент, когда кладешь визуальный компонент на форму. В Xcode этого не происходит, но это не создает проблем.
Открой содержимое заголовочного файла ViewController.h в отдельном окне, дважды щелкнув на нем. В этом файле находится объявление расширения класса UIViewController, помечается ключевым словом @interface. Такая возможность была добавлена во вторую версию Objective-C. Теперь выполни такой трюк: перемести курсор мыши на компонент — текстовую метку, зажми клавишу Ctrl и левую кнопку мыши. Перемести курсор в окно с кодом (файл ViewController.h), за курсором потянется синяя линия. Отпусти мышь и клавишу внутри описания интерфейса ViewController.
Появится окно создания Outlet’а.
Создание Outlet’аЭто свойство объекта, которое ссылается на другой объект (в данном случае визуальный компонент). Тебе надо ввести имя объекта Outlet, по нему ты будешь обращаться к визуальному компоненту, пускай будет lab. Далее выбирается тип объекта, он выбран правильно: UILabel.
Еще ниже в списке Storage выбирается тип ссылки на объект: weak или strong. Если выбрать strong, то объект, на который указывает свойство, будет существовать до тех пор, пока свойство указывает на него, в таком случае он не сможет автоматически удалиться, когда перестанет использоваться. С другой стороны, когда действует слабая ссылка (weak), объект может самоуничтожиться. Итак, выбираем тип ссылки weak и жмем кнопку Connect. В итоге в код добавится такая строка:
@property (weak, nonatomic) IBOutlet UILabel *lab;
Убеждаемся, что Outlet — это свойство.
Теперь создадим Outlet для кнопки. Алгоритм остался прежним. Только для свойства Name надо ввести другое имя, например but. В код будет добавлена строка:
@property (weak, nonatomic) IBOutlet UIButton *but;
В результате имеем два указателя на визуальные компоненты: lab и but — соответственно, надпись и кнопку. Теперь, используя указатели, мы можем манипулировать компонентами в коде.
Затем надо создать обработчик события нажатия кнопки. Для этого в отдельном окне открой файл реализации ViewController.m. Точно таким же образом, как ты перетаскивал линию в заголовочный файл для создания аутлета, от кнопки перетащи линию в файл реализации и отпусти до закрывающей командной скобки — @end. Появится окно для создания события, подобное окну создания аутлета. Видишь разницу: в заголовочном файле создается ссылка на объект, в файле реализации — метод.
Создание обработчика событияЗаполни поле Name, его значение представляет имя свойства — метода. Пусть будет onClick. Значение поля Type оставь по умолчанию — id. В языке Objective-C данный тип является предком для всех остальных. В ниспадающем списке Event выбрано по умолчанию событие Touch Up Inside, которое происходит в момент отпускания указателя (мыши, пальца…) над кнопкой, то есть заключительная стадия нажатия кнопки. Это то, что нам нужно. В списке Arguments оставим значение по умолчанию: Sender — это объект, отправивший данный сигнал, в нашем случае им всегда будет кнопка. Жмем кнопку Connect. В итоге будет добавлен следующий код:
- (IBAction)onClick:(id)sender {
}
Минус в начале означает закрытый метод (private). Ключевым словом IBAction помечаются события (методы) визуальных компонентов из Interface Builder.
Между командными скобками напишем выполняемый при нажатии кнопки код:
_lab.hidden = !_lab.hidden;
В этой строчке кода мы инвертируем значение свойства hidden. Оно имеет тип BOOL, который располагает двумя значениями: YES — истина и NO — ложь (несколько непривычно Windows-программерам, где true и false).
Обрати внимание на символ подчеркивания, стоящий перед именем объекта — надписи (_lab). Без него компиляция завершится с ошибкой. Символ подчеркивания добавляется автоматически для объектов, содержащихся в других объектах; то есть в данном случае объект lab содержится в объекте ViewController. Раньше это было условное правило, используемое для различия объектов, объявленных в качестве членов класса, и локальных объектов. А теперь это строгое правило, реализованное в компиляторе языка.
Сейчас можно скомпилировать приложение и запустить его на симуляторе. Мы выбрали симулятор для iPhone 7, входящий в Xcode 8. Кнопка компиляции и запуска представляет собой черный прямоугольник и находится на панели вверху интерфейса.
После компиляции приложения, запуска симулятора и загрузки нашего приложения на экране симулятора отобразится его интерфейс: надпись «Hello, World» и кнопка Switch. Если нажать последнюю, надпись исчезнет, при повторном нажатии она появится вновь.
Мы сделали очень простое приложение для понимания сути разработки под iOS. Более подробные сведения о создании приложений для iOS на языке Objective-C ты можешь узнать из курса наших друзей из GeekBrains «Мобильный разработчик». В курсе два месяца отдается на изучение этого языка. Во время первого месяца — вводные темы, а на втором — реальный кодинг профессиональных приложений.
Язык Swift
В 2014 году Apple представила новый язык программирования — Swift. Он быстро стал самым обсуждаемым и наиболее динамично развивающимся языком в мире. Это надежный, безопасный, интуитивно понятный язык для разработки приложений под операционные системы macOS, iOS, tvOS и watchOS для всего парка устройств от Apple. Swift — эффективный язык программирования. Его легче изучать, чем его предшественника — Objective-C, в то же время Swift позаимствовал из него самые удачные идеи. Вместе с тем разработчики сделали языки совместимыми, то есть в одной программе может быть код как на Swift, так и на Objective-C. В мире имеются миллиарды строк кода и сотни тысяч унаследованных программ, написанные на Objective-C, поэтому от его поддержки точно не будут отказываться.
При разработке Swift ставилась цель создать самый удобный язык системного программирования — быстрый, безопасный и выразительный.
Алгоритм на языке Swift работает в 2,6 раза быстрее, чем такой же алгоритм на Objective-C, и в 8,4 раза быстрее, чем на Python. Использование Swift делает процесс разработки программ более гибким и удобным.
Благодаря своему экспоненциальному развитию, 3 декабря 2015 года язык Swift был передан в сообщество открытых исходников. При этом Apple строго следит за его развитием, организовав комитет для его разработки. Теперь Swift доступен не только в системах Apple, но также в Linux. Все дополнительные инструменты для работы с языком, включая отладчик, стандартную библиотеку, менеджер пакет, тоже свободные и открытые.
За этим языком будущее. Более подробные сведения о нем ты сможешь узнать из упомянутого курса от GeekBrains «Мобильный разработчик», в нем целый месяц отведен на изучение данного языка программирования.
App Store
Попросту говоря, App Store — это магазин контента для всего спектра Apple-девайсов. Здесь можно купить игры и приложения как от больших компаний, так и от независимых разработчиков. Каждый разработчик, в какой бы стране он ни жил, может продавать или распространять бесплатно свои программы на этой площадке цифровой дистрибуции. Чтобы начать это делать, надо зарегистрироваться как разработчик и купить лицензию для продажи своих приложений. Это плата за предоставляемый сервис и развитие магазина App Store.
Итоги
Мы разработали простое приложение для мобильной операционной системы iOS, используя для этого систему программирования Xcode вместе с языком Objective-C. Протестировали готовое приложение на симуляторе iPhone 7. Мы узнали, как построить пользовательский интерфейс с помощью Interface Builder, как связать графические элементы с кодом приложения, как создать обработчики событий. Познакомились с основами Objective-C. Кроме того, мы обратили внимание на перспективный язык Swift, используемый для разработки мощных и безопасных приложений для «яблочной» экосистемы.
Однако изученный материал — это только начало. Чтобы интенсивно прокачаться в направлении мобильного кодинга и разработки реально продаваемых приложений, мы рекомендуем пройти курс «Mobile-разработчик» на сайте наших друзей GeekBrains.
Это достойный курс: пройдя его, ты точно не потратишь время зря. Он начинается с двух подробных курсов по языку Java, затем следует изучение базового программирования под мобильную операционную систему Android. Далее курс по базам данных в общем и языку SQL в частности. Затем углубленный курс по разработке профессиональных приложений для Android. После этого вектор изучения перейдет в сторону Apple-систем: два подробных курса по языку Objective-C и полезный курс по Swift.
Программа курсаЛекции курса ведут профессиональные преподаватели, имеющие большой опыт в разработке программного обеспечения. Если что-то непонятно, можно, не откладывая, задать вопрос. Вообще, обучение на GeekBrains — живой процесс, можно общаться, задавать вопросы, помогать с ответами. Для проверки полученных знаний преподаватели выдают домашнее задание, которое затем проверяется. После прохождения обучения тебя ждет гарантированная стажировка в IT-компании. А дальше все зависит от тебя, если ты покажешь себя как грамотный специалист, тебя пригласят на работу.
Специальный проект с компанией GeekBrains
Курс Профессия Я — iOS-разработчик PRO. Обучение на iOS-разработчика онлайн
Я никогда не программировал. У меня получится?
Курс подходит для людей, не имеющих навыков работы с данными, языками программирования или нейросетями. Наши методики и система поддержки позволят вам научиться всему с нуля.
Какой график обучения? Получится ли совмещать его с работой?
Вы можете работать с материалами курса в любое удобное время, двигаясь по программе в подходящем вам темпе. Более того, все уроки будут доступны и по окончании курса навсегда, так что вы сможете освежить свои знания в любой момент. Весь формат обучения построен таким образом, чтобы вы могли совмещать его с работой, учебой и личной жизнью.
Сколько часов в неделю мне нужно будет уделять учебе?
Вы сами выбираете нагрузку и скорость, с которой будете проходить курс. Хотите — занимайтесь два часа в неделю, хотите — шесть часов в день. Но в любом случае не забывайте отдыхать.
Я могу общаться с преподавателем?
Да, у вас будет доступ к закрытому Telegram-чату. Преподаватель будет лично комментировать домашние задания и давать полезные советы. Так вы сможете перенять уникальный опыт, профессиональные знания и лайфхаки от нашего преподавателя.
Действуют ли какие-нибудь программы рассрочки?
Да, вы можете купить курс в рассрочку — и спланировать свой бюджет, разбив всю сумму на мелкие ежемесячные платежи.
А я точно смогу трудоустроиться?
Да, мы организуем для выпускников собеседования, помогаем готовить эффективное резюме и проводим HR-консультации во время курса.
Как грамотно начать погружаться в разработку под iOS и что для этого нужно?
Здравствуйте, друзья.Решил кардинально сменить сферу своей деятельности (оптимизация и продвижение сайтов, и интернет-магазины) и серьёзно подойти к iOS-разработке. Какого-то конкретного опыта в программировании нет вообще, всё только в общих понятиях на уровне базовой теории. К самой разработке подхожу с точки зрения профессионального развития и заработка на этом, а также с точки зрения просто интересного дела и возможных своих проектов.
Тостер по моей теме читал, поэтому вопросов а-ля «какие книги читать?» задавать не буду.
1. Насколько срочно мне понадобится MacBook для погружения в разработку? Однозначно знаю, что без него в итоге никуда. Дело в том, что купить не проблема (не миллионер, но для серьёзных профессиональных перемен готов потратить 1000-1500$ на рабочую технику), но есть ли смысл, не зная ещё абсолютно ничего по теме, в таких начальных тратах? Достаточно ли, скажем, установить на Windows 7 (если что: HP, 2 x 1.7 ГГц, 2 ГБ памяти, встроенное видео) какой-либо эмулятор и хотя бы первые пару месяцев разобраться с начальной базой и основными понятиями?
2. Насколько мощный нужен MacBook для iOS-разработчика? Скажем, достаточно ли будет MacBook Air 13″ (Intel Core i5, 4 Гб, 128 Гб (SSD), Intel HD Graphics 5000)? Или смотреть какой MacBook Pro 13» Retina (Intel Core i5, 8 Гб, 128 Гб (SSD), Intel Iris graphics 5100)? Или, может, ещё что мощнее нужно (процессор i7, памяти 16 Гб, видео не встроенное)? Понятное дело, что если деньги позволяют, лучше брать пошустрее, но, к сожалению, покупать MacBook топовой конфигурации — ну совсем сейчас неудобно в финансовом плане. С другой стороны, взять старенький MacBook у кого-то с рук, чтобы потом менять его через полгода — тоже не очень хочется.
3. Нужен ли сам девайс с iOS для старта обучения разработки? Или на Windows 7 / OS X можно будет как-то эмулировать iPhone, чтобы смотреть, что получается? Или это как-то вообще по-другому делается? 🙂 Опять же, купить не большая проблема, но нужно ли мне это сейчас? И, если он необходим, ещё один смежный вопрос: покупать что-то свежее (5 / 5s) или не важно (4s)?
4. Есть ли необходимость в классических курсах по Objective-C? Или же лучше самостоятельно разбираться с нуля? Живу в Минске, курсы ничего особенного не представляют, всё обычное (подходы, методики, общий уровень). Ещё знаю, что программирование — это постоянное самообучение. Вопрос: есть ли смысл пройти месячные курсы, чтобы получить стартовую базу, а уже дальше двигаться самостоятельно? Или же без проблем можно старт взять дома?
5. Как планировать процесс самообучения? Ничего нового: прочитал — попробовал сделать, непонятно — поискал в интернете, сильно непонятно — вперёд на форум? Просто примерно так давно я учил HTML. Но, понятное дело, Objective-C дело серьёзное, как и все смежные технологии, и будет ли толк с такого обучения? Или нужна какая-то конкретная система и четкая градация повышения своего уровня (сначала прочесть книгу, потом пройти курс, потом изучить эту смежную технологию и так далее)? Подскажите, пожалуйста, как входили в iOS-разработку именно вы.
Будущие коллеги, уверен, что во время процесса обучения у меня будет возникать уйма вопросов, ради которых стыдно создавать новые темы. Если у кого-нибудь из вас есть возможность пару раз в неделю поотвечать на мои вопросы и кратко проконсультировать по какой-нибудь теме — дайте, пожалуйста, об этом знать в ответах (оставьте ваши любые контактные данные и условия (бесплатно/платно и так далее)). У всех свои дела, альтруистов очень мало — всё понимаю, поэтому мои обращения к вам будут максимально редкие и по делу.
Спасибо большое за ваше внимание и интерес к моим вопросам. Хорошей недели всем! 😉
начни карьеру / e-Legion corporate blog / Habr
Привет, Хабр! Мы запускаем Академию e-Legion — онлайн-школу для мобильных разработчиков.
Всё серьёзно: 9 месяцев обучения, лекции топовых разработчиков, практические задания, тестирования, чат с преподавателями и материалы для самостоятельной работы.
Под катом — необходимые знания для старта, план обучения iOS-разработчиков, знакомство с преподавателями и программа трудоустройства для выпускников Академии.
Необходимые знания для обучения
Начинаем не с нуля. Программа предназначена для студентов старших курсов и программистов, которые хотят перейти в мобильную разработку под iOS. Программа также полезна для программистов Objective-C или Swift, которые хотят прокачать скиллы.
Твоё первое приложение
Научим писать чистый и стабильный код на Swift, работать с анимацией, навигацией и мультимедиа.
Каждый студент в процессе обучения будет создавать собственное приложение. По окончании каждого учебного блока будет выполнять задания — использовать полученные знания для работы над собственным проектом. Итогом обучения станет рабочее приложение, которое можно смело показывать работодателю или коллегам.
Программа обучения
Программа обучения рассчитана на 9 месяцев. Программа состоит из 6 блоков, каждый блок длится 6 недель. Загрузка студента — 4-6 часов в неделю.
Обучение проходит на онлайн-платформе OpenProfession. Вы можете придерживаться нашего графика или учиться в своём темпе.
Блок 1
Познакомьтесь со средой разработки Xcode, изучите основы Swift и узнайте о продвинутых возможностях языка.
Блок 2
Преподаватели расскажут о специфике разработки приложений под iOS, научат работать с UIView и UIViewController. Вы сможете создавать адаптивный интерфейс,
анимации и переходы, разберётесь в основах отладки приложений.
Блок 3
Для создания надёжной и удобной архитектуры приложения, важно разобраться в работе с многопоточностью (сoncurrency). Изучите способы организации многопоточности и синхронизацию потоков. Научитесь управлять памятью и оптимизировать приложения.
Блок 4
Узнайте, как использовать сторонние библиотеки. Рассмотрите основы сетевого взаимодействия. Научитесь работать с сокетами и парсить данные.
Блок 5
Преподаватели расскажут о способах хранения данных. Познакомьтесь с Core Data — мощным фреймворком от Apple, который используется для хранения и управления графом объектов.
Научитесь делать приложение доступным для пользователей с нарушениями зрения, используя технологию VoiceOver и другие инструменты Accessibility.
Блок 6
Вишенка на торте: вы научитесь работать с аудио и видео, делать приложения доступными для пользователей из разных стран и использовать геолокацию.
Формат обучения
Новые знания. Каждый учебный блок содержит видеолекции и live coding-сессии.
Практика. Проверяйте свои знания, выполняя тесты и задания в учебных материалах. И конечно, применяйте новые знания в своём первом приложении, которое вы будете создавать в течение всего обучения.
Общение. Задавайте вопросы и получайте фидбек от преподавателей, общайтесь с другими студентами в чате.
Развитие. Преподаватели программы разработали методические материалы и составили подборку полезных ссылок, чтобы вы продолжали изучать новое даже за рамками Академии.
Преподаватели
Вы будете учиться у ведущих разработчиков e-Legion. Знакомьтесь:
Team Lead Илья Кулебякин Kuler_29 и разработчики Ильдар Гильфанов и Юрий Петухов GxocT много лет создают мобильные продукты для разных сфер бизнеса, которыми ежедневно пользуются миллионы людей. В программе ребята рассказывают не только теорию, но и делятся лайфхаками.
Собеседование в e-Legion
Прособеседуем каждого выпускника. Количество проектов в e-Legion постоянно растёт, поэтому мы всегда в поисках талантливых разработчиков.
Мы организовали уже 6 онлайн и оффлайн школ мобильных разработчиков в Санкт-Петербурге и Казани, выпустили 857 разработчиков и 10 из них работают у нас.
Заканчивайте обучение, получайте сертификат OpenProfession и присылайте ваше резюме HR-менеджеру e-Legion.
Го учиться
Старт программы — 5-го февраля.
Остались вопросы? Присоединяйся ко Дню открытых дверей — вебинару, где преподаватели и организаторы Академии ответят на все вопросы и подробно расскажут о процессе обучения.
Где учиться iOS разработке? — Хабр Q&A
swiftBook.ruПлюсы:
1. Много курсов
2. Все разложено по полочкам
3. Если что то поменялось в обновлении Swift видео обновляется или дополняется.
4. В курсах показывают более реальные проекты, чем на других курсах. Почти каждый курс как бы мини проект
Минусы:
1. Курсы не совсем по порядку то ли записаны, то ли сейчас порядок перетасовали, например курс по MVC идет 10м, но уже в 4 курсе, автор его применяет и подает это как MVC курс был ранее.
2. Курсы записывают 3 препода сейчас, ИМХО, но основатель ресурса самые нормальные курсы записывал, сейчас он прекратил сам записывать их, даже обновления его курсов два других перезаписывают, как по мне разжёвывают они материал слабее.
3. Последние курсы пошли куда то не туда, то есть у них до сих пор нет курсов по macOS, watchOS, AVFoundation, зато есть по VK API, как по мне это странно.То есть как бы нет достаточно большого пласта основ, но зато никому особо не нужный в начале VK API.
https://vk.com/iosdevcourse — На youtube тоже можно его искать, отличный курс, особенно по ObjC, по Swift лично мне как то не зашел, в нем предполагается что уже знаешь ObjC. Минимум практики максимум теории.
Курсы Geekbrain крайне не рекомендую- видел пару онлайн курсов слитых на просторы интернета, ужас какой то, в одном препод явно сам только начал изучать swift, много чего пишет не по правилам написания кода, путается, когда не работает что то говорит сами разберетесь и так далее. В другом курсе на первом уроке преподователь узнает, что большая часть группы никогда не имела дело с разработкой вообще, и начинает показывать такие вещи, которые новичкам явно не надо знать. В результате народ пару уроков говорил что ничего не понимает, потом просто забил. Например он начинает сразу с cocoapods.
Бонусом в инете можно найти 2 книги Simon NG — две книги для начинающих и для продвинутых, по сути сборник примеров, но написано очень круто. Как я понял один из курсов SwiftBook слизан с его первой книги.
Стэнфордские курсы «Разработка iOS приложений» — неавторизованный конспект лекций на русском языке и 2015?
Я разместила иконки курсов Стэнфордского университета по разработке приложений на iOS в обратном хронологическом порядке. На первом месте стоит иконка Swift — нового языка программирования для создания приложений на iOS, объявленного на WWDC 2014. Кроме Swift реализована новая версия iOS — iOS 8. Уже известно, что Стэнфордский университет запустит зимой 2015 года новый курс CS193P с неизвестным пока названием (может быть будет что-то вроде «Developing iOS 8 Apps for iPhone and iPad»). Лектор тот же — профессор Paul Hegarty.
В традиции Стэнфорда выкладывать курс CS193P на iTunes U в виде бесплатного курса обучения, но делают это они со сдвигом во времени, чтобы не мешать платному обучающему процессу, так что в феврале-марте 2015 года (как это было в 2013 году) можно ожидать постепенное появление лекций на iTunes U. Так что время есть.
Я прошла почти все курсы профессора Пола Хэгарти — от iOS 5 до iOS 7 — до самого конца (смотри Github ).
Для подготовки к перспективному курсу по iOS 8 разместила на своем сайте «Разработка iOS приложений» неавторизованные конспекты лекций, тексты домашних заданий и примеры их решения на русском языке для последнего доступного в настоящее время обучающего курса «Developing iOS 7 Apps for iPhone and iPad», запущенного Стэнфордским университетом в семестре «осень 2013 — зима 2014 года» на iTunes U.
До этого были очень интересные и также бесплатные курсы «Coding Together: Developing iOS 6» (семестр «зима 2013 — весна 2013 года») и «Coding Together: iOS 5 Apps for iPhone and iPad» (25 июня — 27 августа 2012). Причем последний основан на материалах популярного в iTunes U курса CS193P «iOS 5 iPad and iPhone App Development (Fall 2011)». Стэнфордский курс «iOS 5 iPad and iPhone App Development» на iTunes U скачали более 10 миллионов раз, сделав его одним из самых популярных online курсов на Земле.
Особый прорыв в изучении программирования в операционной системе iOS удается достичь при изучении курсов типа «Coding Together» (программируем вместе), так как вам предоставляется ресурс стэнфордского университета — Piazza — для совместного обучения (peer collaboration). Плюс у вас появляется редчайшая возможность изучать программирование для iPhone и iPad наряду с другими разработчиками мобильных приложений по всему миру. На Piazza (по-итальянски «площадь») можно задавать вопросы и получать ответы со всего мира. Там же можно было подписаться на курс.
Если вы уже пробовали осваивать этот курс программирования в одиночку, то наверняка застревали где-то на лекции 3 или 4, а то и раньше. А на Piazza всегда были люди, готовые вам помочь.
Основной язык на Piazza — английский, в этом для многих, не владеющих английским свободно, проблема, но об этом ниже.
Каждую неделю по понедельникам и средам на iTunes U (для iOS устройств и для Мас) выкладывались лекции основного курса, а каждую пятницу — дополнительная лекция на тему, связанную с iOS устройствами (они, по замыслу, факультативные, но настоятельно рекомендовались к просмотру). Каждую среду — домашнее задание (Assignment), на выполнение которого отводилась неделя (до следующей среды). За это время в Piazza можно спрашивать любые вопросы, давать любые ответы, вступать в дискуссию по вопросам текущей лекции или задания. Кроме того, нужно было организоваться внутри Peer Group на выполнение задания и проверку кода друг друга. Это давало возможность всем двигаться по курсу с приблизительно одинаковым темпом.
Ближе к окончанию курса вы должны сделать финальный проект.
Слушать блестящие лекции профессора Пола Хегэрти (Paul Hegarty) очень интересно. Его лекции понятны и информативны. Он высвечивает множество нюансов операционной системы iOS, которые не так-то легко найти в документации и снабжает приемами программирования, которые вы не найдете ни в одной книге (может быть, на WWDC 2011, 2012, 2013, 2014). Он многократно сократит ваш путь изучения программирования на iOS5. Реально, он — гений в преподавании программирования на iOS.
Но «соль» этого курса в заданиях (Assignments 1 — 6), которые вы должны выполнить самостоятельно в течение одной недели каждый. Задания — очень не легкие и чем дальше — тем сложнее, хотя в тексте заданий множество подсказок и даже скриншоты. Вам придется просмотреть множество книг, документацию Apple и обратиться на Piazza с вопросами.
Сам процесс выполнения заданий на Mac в Xcode 5 или новом Xcode 6 — очень увлекательный: хорошая информационная поддержка, результат отображается на симуляторах iPhone и iPad или на реальных устройствах, визуализация процесса отладки.
После выполнения очередного задания вы другими глазами посмотрите на ту же самую лекцию, которую слушали перед выполнением задания, она будет для вас абсолютно понятной и логичной и вы сможете сосредоточиться на важных нюансах, которых в лекциях Пола Хeгэрти очень много.
Домашние задания «настоящих» студентов Стэнфорда выполняются в срок и оцениваются ассистентами и самим профессором, ну а у нас — бесплатный курс и мы можем выполнять домашние задания в соответствии со своим собственным темпом, а также смотреть в Piazza на код других участников и сравнить их со своим решением. Вы увидите столько нетривиальных, так сильно отличающихся друг от друга, а иногда и просто гениальных решений, которые можно обсуждать в Piazza, а затем заимствовать для дальнейшей работы.
К сожалению, курсов типа «Coding Together» было всего два для iOS 5 и iOS 6. Для курса «Developing iOS 7 Apps for iPhone and iPad» нас уже не пригласили на Piazza, но наиболее активные энтузиасты продолжали успешно использовать этот ресурс.
Почти нет шансов, что перспективный курс по iOS 8 будет проходить в режиме «Coding Together», так как, по моему мнению, отдельные решения на Piazza превосходили те, которые выполняли «настоящие» студенты, а это мешает учебному процессу.
Но курс настолько хорош, что огромное спасибо Стэнфорду за то, что доступно.
Для подготовки к перспективному курсу по iOS 8 решила остановится на последнем доступном в настоящее время курсе «Developing iOS 7 Apps for iPhone and iPad», для которого составила неавторизованный конспекты лекций, тексты домашних заданий и примеры их решения на русском языке. Вы можете найти их на сайте.
Надо сказать, что конспект лекций не имеет вид безукоризненно отредактированных материалов, так как был составлен с разговорной речи во время лекции, а некоторые вещи профессор чисто методически повторяет несколько раз в разных вариантах. Кроме того, все слайды переведены на русский язык и вставлены в конспект, а также могут дублировать речь профессора, который объясняет эти слайды.
Приведу здесь некоторые примеры описания лекций, чтобы вы смогли оценить качество русскоязычного неавторизованного конспекта.
На сайте «Разработка iOS приложений имеются примеры выполнения Домашних заданий (Assignments).
Stanford CS 193P iOS 7 Лекция 3 – Objective-C
На Лекции 3 демонстрируется, как решать Домашнее задание 1 и добавляются новые возможности в игру Matchismo: разрабатывается алгоритм подсчета очков при „совпадении“ карт, когда в игре участвует несколько карт (например, 12).
Код для этой лекции доступен на github.
Видео Лекции 3, а также ее слайды (которые включают в себя полную пошаговую инструкцию демонстрационного проекта Лекции 3) доступны на iTunes название “3. Objective-C”.
Русский неавторизованный конспект Лекции 3, хронометрированный через каждые 5 минут, доступен по ссылкам:
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 1 (0 -10 минута)
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 2 (10 — 30 минута)
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 3 (30 — 45 минута)
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 4 (45 -55 минута)
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 5 (55 — 65 минута)
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 6 (65 минута — конец)
Другие русифицированные лекции для курса „CS193P iOS 7 Fall 2013 — Winter 2014“ вы можете найти на сайте »Разработка iOS приложений».
Обеспечение курса
— Сайт стэнфордского университета: курс CS 193P iPhone Application Development;
— Piazza.
В iTunes U другие курсы:
Coding Together: Developing iOS 6 (семестр «зима 2013 — весна 2013 года»);
Coding Together: iOS 5 Apps for iPhone and iPad (25 июня — 27 августа 2012);
CS193P «iOS 5 iPad and iPhone App Development» профессор Paul Hegarty (Осень 2011).
Так как iTunes работает немного по-разному на Macs и iOS устройствах, то не все материалы автоматически размещаются на вашем Mac. На iPad в программе iTune U размещаются все материалы в очень удобной форме, хотя часть их (демонстрационные приложения) нужна именно на Mac.