Эта статья написана по моему личному опыту. Сейчас я заканчиваю факультет программирования Берлинского университета им. Гумбольдта и работаю в Daimler AG/Mercedes Benz. Первое приложение разработала в университете. Это децентрализованное Android-приложение, позволяющее группе людей общаться без доступа к сети. Штука полезная, особенно когда вы где-то в горах или в джунглях 🐵
Однако сам процесс разработки под Android меня не впечатлил, я решила, что разработка приложений – не моё. К счастью, потом я приняла участие в менторском проекте между моим университетом и медицинским университетом Шарите. Так я открыла для себя разработку мобильных приложений для iOS.
Содержание
- Легко ли начать разработку для iOS с нуля?
- Легче всего будет работать на macOS
- Установите необходимый софт для iOS-разработки
- Создайте пользовательский интерфейс
- Нетворкинг и работа с API
- Научитесь взаимодействовать с базами данных
- Контроль версий
- Изучите пошаговые туториалы
- Практикуйтесь
- Смотрим готовое приложение на устройстве
- Что делать, если хочешь больше?
- Ирина Чернова
- Разработка нативных приложений
- На каком языке пишут приложения для iOS
- Где брать материалы для изучения?
- Среда разработки iOS приложений
- Нужен ли Maс?
- Нужно ли iOS-устройство?
- Нужно ли учиться на iOS-программиста?
- Разработка приложений и игр с дополненной реальностью при помощи ARKit
- Разработка игр при помощи SpriteKit
Легко ли начать разработку для iOS с нуля?
Конечно, вам будет гораздо легче, если вы умеете программировать, но создавать простые iOS-приложения можно даже без навыков программирования. Сейчас активно развиваются NoCode-технологии, и программы для iOS можно делать в PaintCode.
Без английского не обойтись – самая качественная и актуальная документация находится на сайте Apple. Да вы и сами знаете, какую роль в программировании играет английский.
Разработка мобильных приложений под iOS – это не только весело, но и выгодно. В США за 2019 г. средняя годовая зарплата составляла 84 тыс. долл.
На диаграмме учитываются зарплаты разработчиков Apple, IBM и Sapient Corporation. На Glassdoor можно найти годовую зарплату в 107 тыс. долларов!
C тех пор, как Apple запустил App Store в 2008 г., было разработано 2 млн приложений. Согласно Appinventiv к 2021 году количество загрузок достигнет 353 млрд. Что насчёт России? По данным портала SuperJob в России разработчики iOS-приложений получают от 64 до 120 тыс. рублей.
Итак, что нужно, чтобы получить работу в качестве разработчика iOS?
Легче всего будет работать на macOS
Разработка приложений для iOS обычно осуществляется на Macbook/iMac. Не нужно гнаться за самой новой моделью, подойдет и простенький Air. Главное, чтобы на устройстве можно было установить последнюю версию macOS. Можно разрабатывать и на виртуальной macOS-машине, но это «больно».
Установите необходимый софт для iOS-разработки
Самая широко используемая IDE для iOS-разработки – это Xcode. Можно за день изучить, что где находится и для чего используется. Стоит потратить время и на продвинутые фичи и горячие клавиши, это облегчит и ускорит процесс разработки.
Разрабатывать iOS-приложения можно и на Objective-C, но обычно его используют для поддержки легаси-приложений. Для написания новых программ лучше подойдет Swift. Этот язык сейчас активно продвигается самой Apple.
Важно уметь адаптироваться к изменениям. Я бы не сказала, что каждая новая фича – это что-то хорошее. Если запустить Xcode, то можно увидеть много маленьких кнопок и панелей. Поверьте, нет ничего раздражительнее, когда в них что-то меняют, передвигают, удаляют, и потом надо тратить тысячу часов на их поиск. Ладно, преувеличиваю (нет).
Создайте пользовательский интерфейс
Разработчику iOS-приложений обязательно нужно уметь создавать пользовательские интерфейсы. Подвох в том, что это можно сделать несколькими способами. Например, используя Interface Builder и Storyboards из туториалов Apple. Или с помощью кода, для чего есть тоже множество разных решений. А можно взять SwiftUI – фреймворк для декларативного программирования пользовательских интерфейсов. Он относительно новый, но уже успел завоевать симпатии разработчиков.
Что касается дизайнов и прототипов, их я создаю в Sketch или Figma. Еще пользуюсь Canva. Практически всегда от клиентов поступают готовые ассеты. Поэтому, даже если вы не очень разбираетесь в дизайне, нужно уметь пользоваться соответствующими инструментами.
Нетворкинг и работа с API
Обязательно освойте работу с разными форматами данных. По крайней мере, нужно уметь парсить JSON и знать нетворкинг-классы Apple (URLSession) и библиотеки, к примеру, сетевую библиотеку Alamofire.
Научитесь взаимодействовать с базами данных
Самые распространенные базы данных в разработке iOS – это MongoDB, Firebase и Realm.
Контроль версий
Общение с моей командой осуществляется в Git. Можно освоить и другие менеджеры контроля версий, но мне на практике встречался только он.
Изучите пошаговые туториалы
В интернете можно найти тонны простых приложений с открытым исходным кодом на Swift, которые можно модифицировать на свой вкус. Ещё это очень хорошо развивает способность разбираться в чужом коде.
Мой первый Swift dev курс я прошла на Udemy (iOS разработка на Swift 5 от Angela Yu). Мне он понравился тем, что составлен для новичков и сложность нарастает линейно. То есть не будет такого, что на первом уроке вы установили Xcode, а на втором кодите Flappy Bird. В курсе огромное количество готовых ассетов, что я нахожу огромным плюсом, так как можно сосредоточиться на программировании и не ломать голову над тем, куда поместить очередной UI-элемент или какой цвет придать кнопке.
Еще много полезностей можно найти на сайте Hacking With Swift. Там всё понятно и бесплатно. Сайт одобрил сам Крис Латтнер, создатель Swift. У проекта есть канал в Slack, где можно законнектиться с iOS-разработчиками со всего мира. Создатель сайта Пол Хадсон активно общается с пользователями в Slack и Twitter (@twostraws).
Примечание Библиотека программиста также составила подборку 70 YouTube-каналов и плейлистов о мобильной разработке, в которой есть отдельный раздел с видеокурсами по разработке под iOS.
Если вы уже разрабатываете iOS-приложения и ищете работу, то канал iOS-разработчика Шона Аллена поможет грамотно подготовиться к собеседованию. Шон рассматривает самые каверзные вопросы, а также загружает туториалы для разработчиков разных уровней. Не каждый может похвастаться 10-летним опытом разработки в Swift, а именно столько лет исполнилось Swift в этом году!
Практикуйтесь
Мне легче кодить, когда я имею конкретный проект. Это гарантия того, что я не заброшу приложение. Кто знает, сколько таких полуначатых проектов хранится в закромах моего макбука (я знаю, но не скажу 😂).
Многие ругают фриланс, но именно с него я начала, когда разобралась с основами разработки. Поэтому найдите подходящий по уровню проект и действуйте.
Я набросала лишь то, что помогло мне самой начать разрабатывать приложения. Буду рада, если вы поделитесь своим опытом в комментариях. 💃
Если интересно, могу написать о своей учёбе в университете, в том числе об учёбе во время COVID-пандемии.
***
Если вы пока испытываете сложности с английским языком, но уже хотите научиться программировать мобильные приложения для AppStore, обратите внимание на факультет iOS-разработки от GeekBrains. Программа и преподаватели имеют высокие оценки учащихся, а при успешном прохождении курса онлайн-университет гарантирует не только диплом, но и трудоустройство.
Как известно, Apple запрещает самостоятельную установку программ не из App Store, исключение есть только для разработчиков, которые могут подписать и установить собственное (а по факту любое) приложение сроком на один год. Но даже если вы не имеете платного аккаунта разработчика, вы все еще можете подписать и поставить до 10 приложений сроком на 7 дней.
Раньше это можно было сделать с помощью программы Cydia Impactor, однако последний год она перестала работать. И недавно появилась ее замена под названием AltStore, которая позволяет ставить сторонние приложения… прямо с iPhone или iPad. И переподписывать их на нем же после 7 дней. Правда, ради таких удобств придется пройти достаточно долгую предварительную подготовку на вашем ПК.
Важно: для работы программы вы по сути привязываете к своей учетной записи Apple сторонний MacBook, то есть вводите логин и пароль, а также код двухфакторной авторизации. И хотя разработчик уверяет, что все введенные вами данные хранятся в Связке ключей и никуда дальше Apple не попадают, я не несу никакой ответственности за возможную потерю информации и заблокированные устройства, вы все делаете на свой страх и риск.
Зачем вообще это нужно? На iOS хватает приложений, которые никогда не попадут в App Store — те же торрент-клиенты или эмуляторы. Ну и разумеется хватает очень дорогого софта, платить за который согласны не все.
Итак, что вам нужно для настройки? Во-первых, iPhone или iPad на iOS 12.2 и новее. Во-вторых, устройство на Windows с поддержкой Wi-Fi. В-третьих, iTunes и iCloud for Windows, скачанные не из Microsoft Store, а с официального сайта Apple — вот прямые ссылки на iTunes и iCloud (версия для Windows 7 и 8, мелкий текст ниже на странице). Ну и разумеется необходим сам клиент AltServer — он бесплатно доступен на официальном сайте.
После перезагрузки и установки всего софта подключите iPhone или iPad к компьютеру и в iTunes поставьте галочку на синхронизацию по Wi-Fi, применив изменения:
Все, можно запускать AltServer. Если появился значок ромбика в трее — поздравляю, вы все сделали правильно. Если же программа при запуске на что-то ругнулась — читаем, в чем проблема, и исправляем (обычно требуется переустановить iTunes или iCloud с сайта, а не магазина).
Если никаких ошибок нет, нажмите на ромбик > Install AltStore и выберите свое устройство:
В появившемся окне нужно будет ввести свой логин и пароль от учетной записи Apple, а также код двухфакторной авторизации (если есть). И если вы все сделали правильно, на вашем девайсе появится иконка AltStore, а AltServer скажет, что все прошло успешно:
Теперь на вашем iPhone или iPad зайдите в Настройки > Основные > Управление устройством > Ваш Apple ID и нажмите на кнопку «Доверять»:
После этого вам нужно разрешить установку приложений через AltStore. Для этого запустите его, перейдите на вкладку Settings и введите свой логин и пароль от Apple ID:
Теперь вам потребуется ipa.-файл нужного приложения. Например, вы хотите поставить торрент-клиент iTorrent, найти который можно на GitHub. После его скачивания откройте AltStore, перейдите на вкладку My Apps, нажмите на плюсик, выберите нужный ipa.-файл и подождите, пока программа не установится. Важно — при этом ваш iPhone или iPad должен быть подключен к компьютеру, на котором должен быть запущен iTunes и AltServer:
Все, после этого можете запускать установленное приложение. И таким образом можно поставить их 10 штук.
Осталась последняя проблема — с бесплатным аккаунтом разработчика работать они будут всего лишь 7 дней. Как это исправить? Переподписать. Для этого по истечении 7 дней подключите ваше устройство к ПК с запущенным iTunes и AltServer, после чего откройте AltStore и на вкладке My Apps нажмите или Refresh All, или отдельно на кнопку «X DAYS» у нужного приложения. Через некоторое время программы переподпишутся еще на неделю:
Ну и последнее — что делать, если AltStore вам больше не нужен, ведь к вашему Apple ID по сути привязан чужой MacBook. Все просто: во-первых, удалите AltServer с ПК. Во-вторых, на iPhone или iPad зайдите в настройки iCloud, найдите там этот Mac и удалите его из учетной записи:
Стоит ли после этого менять пароль? Если вы не пользуетесь двухфакторной авторизацией — да, в противном случае в этом нет смысла, без 6-значного кода подтверждения с вашей учеткой ничего сделать не получится.
Без финансовых вложений и специальных знаний.
Вот простейшая инструкция, как создать элементарное iOS-приложение и испытать его на своем устройстве. Отталкиваясь от нее вы сможете и создавать реально полезные программы.
Примечание для пользователей Windows: чтобы создавать приложения для iOS вам необходимо установить OS X на виртуальной машине (VirtualBox, VMware). Это процесс отнюдь не прост и для его осуществления требуется отдельная инструкция.
1. Идем в App Store и устанавливаем среду разработки XCode:
Если у вас уже стоит XCode, то необходимо обновить его.
2. Запускаем xCode и выбираем пункт меню File -> New -> Project:
3. Выбираем платформу и тип приложения:
4. Указываем информацию о проекте. Обратите внимание, что мы выбрали тип приложения «Universal»:
5. Нажимаем на кнопку New Folder и указываем имя папки, в которой будем хранить файлы приложения:
6. Снимаем галочку с чекбокса Create Git Repository и нажимаем кнопку Create. В результате вы должны попасть на стартовый экран работы над приложением:
7. Нажимаем на пункт Main.storyboard в правом меню, перетаскиваем на основное поле элемент Label и добавляем в него текст Hello_world:
8. Теперь надо сделать иконку для приложения. Подбираем картинку и загружаем ее на mapappicon.com:
9. Ждем когда веб-приложение закончит работу и указываем свой адрес электронной почты для получения архива с иконками:
10. Возвращаемся в XCode и в левом меню выбираем раздел Assets.xassets:
11. Открываем архив из почты и перетаскиваем иконки оттуда на рабочее пространство XCode:
12. Выбираем один из симуляторов устройств, нажимаем на кнопку запуска приложения (черный треугольник) и включаем на своем Mac Developer Mode:
13. Повторяем попытку запуска. Ждем, когда на симуляторе загрузится iOS:
14. Убеждаемся, что приложение работает:
Смотрим готовое приложение на устройстве
Теперь можно посмотреть, как работает приложение на устройстве. Перед выполнением инструкции убедитесь, что у вас свежие версии XCode и iOS.
1. Идем в xCode -> Preferencies -> Accounts и добавляем свой Apple ID:
2. Подсоединяем iOS-устройство к компьютеру:
3. Выбираем нужное устройство в списке и нажимаем на кнопку запуска. Ждем некоторое время.
4. Если вылезло сообщение о проблемах с безопасностью, то на iOS-устройстве идем в Настройки -> Основные -> Управление устройством и разрешаем запуск приложений от разработчика с вашим Apple ID:
5. Идем на рабочий стол и находим иконку нового приложения:
6. Запускаем:
7. Отсоединяем устройство от компа. Теперь приложением можно пользоваться.
Что делать, если хочешь больше?
С помощью метода научного тыка и Google можно расширить вышеприведенную последовательность действий и создать более функциональное приложение. Но использовать его можно будет только на своих устройствах.
Ведь Apple предъявляет очень высокие требования к приложениям. App Store Review Guidelines включает в себя 29 пунктов и более сотни подпунктов. Для того, чтобы приложение им соответствовало и было принято для публикации в магазине, разработчику требуется большой объем технических знаний.
Если хотите создавать качественные приложения для iOS предназначенные для массового использования, надо учиться!
Начать въезжать в тему можно с бесплатных вебинаров о мобильной разработке. Регистрируйся и смотри:
- Программирование на Objective-C. Разработка простого калькулятора для iPhone
- Swift — скорость и простота разработки
- Язык Swift против языка Objective-C
- Обзор Swift Cocoapods Frameworks
- Обзор Swift Cocoapods Frameworks. Часть 2
- Обзор Swift Cocoapods Frameworks. Часть 3
- Обзор Swift Cocoapods Frameworks. Часть 4
- Реактивное введение в мобильную разработку под Windows
- Методы тестирования мобильных приложений на платформе Android
А лучше записаться на бесплатный курс Objective C. Приложение TO-DO List. Он состоит из 16 уроков с домашними заданиями, которые проверяются преподавателем.
(8 голосов, общий 4.50 из 5)
🤓 Хочешь больше? Подпишись на наш Telegramнаш Telegram. … и не забывай читать наш Facebook и Twitter 🍒 iPhones.ru Без финансовых вложений и специальных знаний. Вот простейшая инструкция, как создать элементарное iOS-приложение и испытать его на своем устройстве. Отталкиваясь от нее вы сможете дальше углубиться в тему и создавать реально полезные программы. Примечание для пользователей Windows: чтобы создавать приложения для iOS вам необходимо установить OS X на виртуальной машине (VirtualBox, VMware). Это процесс отнюдь…
- Твитнуть
- Поделиться
- Рассказать
Теги: Советы,
- GeekBrains,
- программирование
Ирина Чернова
Ты уже пишешь приложения под iOS? Тогда тебе должны быть известны различные варианты разработки. А если в твоей голове только появилась мысль о разработке под iOS, то за ней должны последовать следующие вопросы:
- какой язык нужно изучать?
- где брать материалы для изучения?
- нужен ли Mac?
- нужно ли iOS-устройство?
- какой редактор подойдет для написания кода?
- где учиться на iOS-разработчика?
Статья даст ответы на эти вопросы и поможет достичь поставленной цели.
Операционная система iOS была выпущена компанией Apple в 2007 году. Она не ограничивается iPhone и iPad, но я расскажу о разработке приложений только для этих устройств. Статья разделена на несколько частей:
- Разработка нативных приложений.
- Языки программирования для создания iOS-приложений.
- Среда разработки.
- Разработка iOS-приложений и игр с дополненной реальностью при помощи фреймворка ARKit.
- Разработка игр при помощи фреймворка SpriteKit.
Кроме нативной разработки существует ещё и кроссплатформенная, когда приложение пишется сразу для iOS и Android на языке, отличном от нативного. Об этом мы поговорим в другой раз, но можете утолить любопытство уже сейчас и прочитать статью главного редактора Apptractor Леонида Боголюбова, написанной для Лайв Тайпинг.
Разработка нативных приложений
Процесс разработки нативного приложения — это написание программы на одном из основных языков для платформы iOS: Objective-C или Swift. Этот путь создан корпорацией Apple и предполагает следование всем её идеям. Apple обеспечивает разработчиков последними версиями SDK (software development kit — набор средств разработки), документацией, а также средой разработки Xcode.
Преимущества нативной разработки:
- приложение оптимизировано под платфому iOS, а значит, будет работать быстро и корректно;
- приложение реагирует на нажатия мгновенно, отсутствуют задержки в анимации и при скроллинге контента;
- понятный и простой доступ к аппаратной части устройств — камере, микрофону, акселерометру, геолокации, адресной книге, плееру и т. д. На этих и других возможностях устройства можно базировать функциональность приложения;
- родной для платформы интерфейс. Нативные приложения обычно оперируют «платформенными» элементами интерфейса: меню, навигация, формы и все остальные элементы дизайна берутся от операционной системы и потому привычны и понятны пользователю;
- с каждым обновлением iOS синтаксис языка Objective-C практически не меняется, поэтому поддержка приложения происходит практически безболезненно — изменить или переписать придётся лишь незначительное количество кода.
Недостатки:
- поддержка приложения на языке Swift. Регулярные обновления версий платформы iOS вынуждают обновлять код, но с приходом пятой версии Swift компания Apple обещает облегчить этот процесс;
- большинство текущих проектов написаны на языке Objective-C. С каждым годом всё труднее найти программиста, желающего писать на нём, а переписывать проекты на Swift многие компании отказываются, так как это огромный и невероятно трудоёмкий процесс.
Для клиентов студий разработки вопрос о том, за какую разработку платить — нативную или кроссплатформенную — тоже актуален. Кроссплатформенную разработку можно посоветовать тогда, когда бюджет ограничен, нужно узнать спрос на мобильное приложение или если на стороне клиента есть свой веб-программист. В остальных случаях выбор лучше делать в пользу нативной разработки. В Лайв Тайпинг могут помочь и с тем, и с другим. Оставьте нам заявку, если намерены начать работать над своим мобильным приложением для iOS — мы готовы всё обсудить.
На каком языке пишут приложения для iOS
Разработчики из компании Apple предоставили два варианта:
- Objective-C. Ветеран с большой историей, постепенно отходящий на второй план;
- Swift. Очень молодой и быстро набирающий популярность среди разработчиков.
Оба языка относятся к объектно-ориентированному программированию (ООП) и успешно выполняют его основные парадигмы: наследование, полиморфизм, инкапсуляцию и абстракцию. Простыми словами, ООП — это стиль написания кода, который позволяет разработчику группировать схожие задачи в классы. Код соответствует принципу DRY (don’t repeat yourself — не повторяй самого себя) и становится лёгким для сопровождения.
Objective-C
Язык программирования, созданный в начале 1980-х годов прошлого века путём скрещивания С (Си) с популярным в то время Smalltalk (связь с объектами через сообщения). Objective-C изначально воспринимался, как простая надстройка над языком C, модифицирующая его некоторые синтаксические конструкции, но после того, как за лицензирование взялась сначала компания Next Step, а потом на правах преемника и Apple, Objective-C стал одним из наиболее популярных языков для разработки приложений для iOS. Поэтому многие типы данных в Objective-C унаследовали префикс NS (Next Step). Это основной язык, используемый компанией Apple, знание которого позволяет писать под любые платформы Apple, в том числе macOS.
Плюсы:
- высокая степень поддерживаемости кода: с каждым обновлением изменения в Objective-C минимальны;
- большое количество документации, технической литературы и огромное сообщество. Apple предоставляет и регулярно обновляет официальные книги и ресурсы. Какие именно знания нужны iOS разработчику, ты можешь узнать из нашей статьи;
- быстрый переход с одного из языков семейства C. Objective-C — это расширение языка С. Это означает, что любой код на С является также корректным кодом и для Objective-C, нужно только привыкнуть к синтаксису;
- совместимость Objective-C внутри проектов, написанных на Swift, позволит тебе применять два языка одновременно.
Минусы:
- если ты никогда не сталкивался с программированием и решил сразу начать с Objective-C, то могут возникнуть сложности понимания принципов ООП и нагромождённого синтаксиса. Трудности исчезнут по ходу обучения;
- низкая читаемость кода: в начале изучения синтаксис покажется сложным;
- динамическая система типов данных, которая также является плюсом, предполагает возможность появления или пропуска ошибок даже во время компиляции. В частности, затянуть процесс могут опечатки;
- низкая по сравнению с языком Swift производительность;
- взаимодействие с файлами Swift происходит при помощи «моста» (условный адаптер, который переводит код на Swift в формат Objective-C), что сильно тормозит процесс сборки.
Примеры приложений, разработанных нашей командой на языке Objective-C:
- ИЛЬ ДЕ БОТЭ — интернет-магазин парфюмерии и косметики;
- Мой доктор — приложение для молодых родителей и беременных женщин, которым нужна консультация врача в любое время суток;
- Vogue Collections — интернет-магазин одежды.
Swift
Молодой, мощный и открытый язык программирования общего назначения. Официально представлен компанией Apple 2 июня 2014 года. Сочетает в себе все лучшее от C и Objective-C, но лишен ограничений последнего, накладываемых в угоду совместимости с C. В Swift используются строгая типизация объектов, уменьшающая количество ошибок ещё на этапе написания кода. Также в Swift добавлены современные функции, такие как дженерики, замыкания, множественные возвращаемые значения и многое другое, превращающие создание приложения в более гибкий и увлекательный процесс. Основой нового языка программирования послужили существующие компилятор, отладчик и фреймворки.
Swift покажется знакомым Objective-C-разработчикам. Он сочетает в себе читабельность именованных параметров и мощь динамической объектной модели Objective-C.
Плюсы:
- скорость. Сейчас язык почти на одном уровне с C++, и в Купертино обещают, что это не предел;
- упрощённая навигация по файлам проекта. В отличие от Objective-C, который создаёт два файла для объявления и реализации, Swift обходится всего одним. Кроме того, имена методов и комментарии между файлами синхронизируются автоматически;
- лёгкая читаемость, поскольку данный язык не построен на C. Например, не нужно ставить точку с запятой в конце строки и писать скобки для окружения выражения внутри if/else. Никаких квадратных скобок, Swift напоминает обычный английский язык, является гораздо более чистым и имеет упрощённый синтаксис;
- лаконичность. Количество кода со Swift становится гораздо меньше. К примеру, для добавления двух строк можно воспользоваться оператором «+»;
- большие возможности по сравнению с Objective-C. Например, дженерики (универсальные шаблоны). Универсальный код позволит тебе писать гибкие, общего назначения, функции и типы, которые могут работать с любыми другими типами. Ты можешь написать код, который не повторяется и выражает свой контент в абстрактной форме;
- полное взаимодействие с кодом, написанным на Objective-C, позволит тебе применять два языка одновременно;
- повышенная безопасность. Swift, в отличие от Objective-C, строго типизирован, то есть при объявлении именованных параметров нужно явно указывать тип данных, иначе при исполнении кода компилятор вызывает ошибку. Это облегчит процесс устранения багов, поскольку ты можешь решить проблему сразу;
- поддержка динамических библиотек. Одно из значимых изменений в Swift — переход от статических библиотек к динамическим, которые по сути являются исполняемыми кусками кода. Они присоединяются к приложению и «связываются» с новыми версиями языка, что позволяет программе работать стабильно.
Минусы:
- Swift постоянно развивается и меняется. Например, вызов метода может измениться после обновления. Благо Apple выстроили этот процесс таким образом, что код написанный на более ранних версиях не будет сломан. Ты только увидишь предупреждение о том, что твой код написан на старой версии, и редактор предложит переход на более новую и поможет выполнить этот процесс построчно;
- взаимодействие с файлами Objective-C происходит при помощи «моста», который сильно тормозит процесс сборки.
Большая часть проектов нашей компании написана на языке Swift. Вот некоторые примеры:
- Sephora — приложение магазина парфюмерии и косметики;
- Киноголик — сервис для покупки абонементов в кино;
- LIME — приложение магазина одежды;
- Kaspersky Security Pulse — приложение со статьями об информационной безопасности.
C++ (Си плюс)
Компилируемый, статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование.
С++ поддерживается iOS, но есть одно «но»: всё приложение целиком на нём написать не удастся. С++ подойдёт для решения логических задач или целых модулей приложения, а также для написания сложных алгоритмов, но пользовательский интерфейс должен быть написан на Objective-C или Swift.
Один из вариантов такого взаимодействия — это использование диалекта Objective-C++, некое объединение Objective-C и C++. Зачем их смешивать? Например, самая хорошая библиотека для текущей задачи была написана на С++, иногда решение проблемы можно было более лаконично сделать на С++ или необходимо вызывать функции Objective-C из проекта С++. Распространённый пример — портирование игры или движка под платформы Apple.
Наконец, можно использовать С++ для улучшения производительности. Гибкость сообщений Objective-C накладывает некоторые издержки по сравнению с реализацией большей части виртуальных функций С++. Объекты Objective-C не имеют эквивалентных быстрых виртуальных функций С++. Для оптимизации это может быть важным фактором.
Какой язык выбрать?
Objective-C постепенно уступает дорогу молодому Swift, который Apple всячески популяризирует. В прошлом 2018 году в рейтинге Tiobe Objective-C занимал более низкую позицию по отношению к Swift. Исходя из этой статистики и вышеперечисленных плюсов языка Swift, я бы рекомендовал именно его.
Но совсем не знать Objective-C не получится, так как в ходе разработки приложений под iOS он будет встречаться, и тебе придется читать и понимать его.
Что касается языка C++, то его знание — это полезный навык, но только как опция, поэтому решать тебе.
Где брать материалы для изучения?
Материалы по языку Swift:
Apple Education предоставляет свои учебники на английском языке совершенно бесплатно. Вот список тех, с которых стоит начать:
Если нужны учебники на русском языке, то предлагаю:
- Swift. Основы разработки под iOS и macOs Swift 3;
- Разработка приложений в среде Xcode для iPhone и iPad с использованием iOS SDK.
Личная рекомендация — бесплатный курс по Swift от Алексея Скутаренко Swift Марафон, а также группа Вконтакте iOS Development Course. В группе ты можешь посмотреть домашние задания по каждому уроку или получить ответ на свой вопрос.
Материалы по языку Objective-C
Книг от Apple, к сожалению, нет, но есть отличные платные издания:
- Programming in Objective-C 2.0 — на английском языке;
- Программирование на iOS и macOS — на русском языке.
Личная рекомендация — бесплатный видеокурс по Objective-C от Алексея Скутаренко iOS Development Course.
Стоит отметить, что помимо рекомендованных мной видеокурсов, большое количество как платных, так и бесплатных обучающих материалов по Swift и Objective-C есть на Youtube и специальных обучающих порталах, таких как Udemy и SwiftBook.
Материалы по языку C++
- Язык программирования С++. Учебник, который используют в большинстве ВУЗов;
- Основы С++. Программирование для начинающих;
- бесплатный видеокурс по С++ от канала #SimpleCode.
Источники актуальной информации
Чтобы не отставать от тенденций, не будет лишним ознакомиться со следующим списком больших компаний и огромных личностей, а также подписаться на их твиттер, блоги и т. п.:
- raywenderlich.com. Неисчерпаемый источник бесплатных руководств. Подходит и новичкам, и профессионалам, которым нужно быстро понять работу нового фреймворка;
- NSHipster. Блог дизайнера и разработчика облачного сервиса Heroku, который он ведёт уже не в одиночку. Фреймворки, объекты фреймворков, Objective-C, Swift, Xcode, важны open source-проекты — здесь есть полезные статьи про всё;
- Natasha The Robot. Отличный блог iOS-разработчицы Наташи Мурашев. Обязателен всем, кто разбирается со Swift и не только;
- Блог iOS-разработчика студии Plausible Labs Майка Эша. То, о чём здесь говорится, требуются знания чуть глубже базовых;
- Little Bites of Cocoa. Блог со всякими полезными руководствами. Новички и опытные разработчики полюбят его за лаконичность постов и широту освещаемых вопросов;
- iOS Dev Weekly. Cрез новостей из мира мобильной iOS-разработки. Приходит в виде почтовой рассылки по пятницам. Куратор — Дэйв Вервер;
- Github известной компании Rambler&Co. Содержит множество интересного из Open source. Также их внутренний спейс и блог;
- Блог про разработку под iOS на «Хабрахабре»;
- Cайт iosgoodreads.ru и канал в Telegram от Rambler. Самые интересные статьи, видео и новости, связанные с разработкой на iOS.
Среда разработки iOS приложений
Самыми популярные среды разработки приложений на iOS, или IDE (Integrated Development Environmetn) — это Xcode от Apple и AppCode от JetBrains.
Xcode
Быстрый редактор, укомплектованный полным набором инструментов для разработки под iOS, macOS и др. Скачивается из App Store бесплатно.
Плюсы:
- IB (Interface Builder). IB — это приложение с набором инструментов для разработки графических интерфейсов, интегрированное в Xcode. Процесс работы напоминает создание дизайна «на холсте». Всю вёрстку можно сделать в IB, а затем связать визуальные элементы с файлом реализации, в котором описана вся логика взаимодействия с ними.
Плюсом Interface Builder является наглядная вёрстка, настраивание стилей, бэкграунда, шрифтов и т. д., а минусом будет, например, работа с анимацией, её можно выполнить только кодом.
- симулятор. Предоставляет полный набор iOS-устройств, на которых можно запустить и протестировать своё приложение;
- отладчик. Умеет разбирать визуальную часть поэлементно для поиска ошибок в вёрстке, также поможет отловить баг и разобраться с проблемой утечки памяти. В добавок ко всему отладчик может производить все эти операции и UI-тесты в «беспроводном» режиме;
- встроенная система контроля версий в GitHub. Помимо стандартных функций ветвления, в режиме разделённого экрана позволяет просматривать изменения в различных «ветках»;
- функция имитации геолокации. Незаменима при работе с картой. Имеет «зашитый» набор городов, список которых можно дополнить;
- содержит Swift Playground, так называемую «песочницу», которая позволяет быстро проверить новый алгоритм или графическую рутину (например, несколько строчек кода), не создавая целое приложение;
- может собирать приложение сразу на iOS-устройство;
- поддержка «тёмной темы» macOS.
Минусы:
- нестабилен. В процессе работы может самопроизвольно закрываться с ошибкой. Проект никак не пострадает, и последние изменения кода не пропадут. Просто перезапусти Xcode и продолжай работать с того момента, на котором остановился;
- зачастую не работает автодополнение (функция дополнения текста по введённой части).
AppCode
Как и Xcode, содержит полный набор необходимых средств для эффективной и удобной работы с языком Objective-C, Swift, C++ и на 100% совместима с Xcode.
Плюсы:
- стабилен. Внезапных закрытий, как в Xcode, нет;
- автодополнение не отваливается и работает быстрее, чем в Xcode;
- интеграция с баг/issue-трекерами, такими как JIRA, YouTrack, Lighthouse, Pivotal Tracker, GitHub, Redmine и т. д.;
- более подробное описание ошибок и предупреждений;
- может собирать приложение сразу на iOS-устройство, как и Xcode.
Минусы:
- для сборки приложения всё равно нужен Xcode;
- нет Intreface Builder. Открытие IB-файла из AppCode происходит в Xcode;
- нет визуального отладчика, а также нет беспроводной отладки;
- нет Swift Playground;
- запуск приложения происходит на Xcode-симуляторе;
- AppCode — платный продукт, для бесплатного ознакомления даётся 30 дней. На момент написания статьи расценки такие: за первый год пользования придется заплатить 199 $, второй — 154 $, последующие — 119 $ (данные взяты с официального сайта);
- обновление языка приходит с некоторой задержкой. В Xcode ты получишь свежую версию ещё на бета-тестировании.
Иными словами, даже если ты выберешь AppCode в качестве основного IDE, для полноценной разработки мобильных приложений на iOS всё равно нужен Xcode.
Нужен ли Maс?
Да. Для разработки нужна Xcode IDE (Integrated Development Environment — интегрированная среда разработки). Установить Xcode ты сможешь только на Mac. Выбирай из этих вариантов: MacBookPro/Air, iMac, MacPro или Mac mini (самый бюджетный вариант). Не обязательно покупать новый, но чтобы твой Mac мог поддерживать последнюю версию macOS хотя бы два года, советую брать тот, что не старше пяти лет.
Вариант для ознакомления — поставить на свой PC виртуальную машину при помощи, например, VirtualBox. Статья Installing MacOS to VirtualBox подробно описывает, как это сделать. Работать будет медленно, но для «быстрого старта» вполне подойдет.
Нужно ли iOS-устройство?
Необязательно. IDE Xcode от Apple содержит в себе симулятор устройств. Например, можно выбрать iPhone XR и вживую проверить результат своей работы. К сожалению, симулятор полностью не заменит реальное устройство (например, камера или акселерометр в нём отсутствуют).
Нужно ли учиться на iOS-программиста?
Российские ВУЗы консервативны и с большим опозданием начинают перестраивать свои образовательные программы под мобильную разработку. Поэтому один из лучших и самых быстрых способов научиться писать приложения для Айфона и Айпада – закончить курс онлайн-университета Skillbox «Профессия iOS-разработчик». Второй более сложный способ – изучать все самостоятельно по книгам и статьям и позже поступить на стажировку в одну из студий мобильной разработки.
Разработка приложений и игр с дополненной реальностью при помощи ARKit
ARKit — фреймворк, разработанный компанией Apple для работы с AR. Что такое AR и как это работает? AR — это технология, которая способна сканировать окружающее пространство и максимально достоверно интегрировать виртуальные объекты в реальную жизнь. Эти самые виртуальные элементы могут отображать специальные устройства, поддерживающие эту технологию:
- cмартфоны и планшеты. В нашем случае — это iPhone и iPad;
- AR-шлемы и очки. Одна из последних разработок — очки Magic Leap;
- компьютеры.
Сканирование пространства происходит при помощи камеры устройства. Что может AR-приложение? Например, онлайн магазин кроссовок, в котором, помимо покупки, есть возможность отсканировать свою ногу и «примерить» понравившуюся модель, таким образом на экране твоего iPhone или iPad твоя нога будет в выбранном кроссовке. Еще один из примеров применения AR — приложение от IKEA, которое позволяет виртуально обставить квартиру мебелью.
И это далеко не все возможности! При помощи AR разрабатывают обучающие, развлекательные программы и, конечно же, игры:
- Моя очень голодная гусеница;
- Monster Park — AR Dino World
Классное видео с одной из презентаций Apple, на котором при помощи AR оживает мир, сделанный из конструктора Lego.
Важно! Для разработки требуется iPhone или iPad. Хочу лишь напомнить, что в симуляторе Xcode нет камеры, и без нее не получится отсканировать пространство. В строке arkit из таблицы Device Compatibility ты можешь увидеть полный список устройств Apple c поддержкой ARKit.
Учебные материалы по ARKit:
- ARKit by TutoiralsTutorials — учебник на английском языке;
- Beginning ARKit for iPhone and iPad — учебник на английском языке;
- Mastering ARKit for iOS — видеокурс на английском языке.
Разработка игр при помощи SpriteKit
SpriteKit — это фреймворк, а точнее 2D-движок, оптимизированный для создания высококачественных игр. Он существенно выигрывает в скорости у остальных движков, поскольку разработчики создавали его заточенным специально под платформу iOS. Помимо обработки всей графики, SpriteKit также предлагает широкий спектр дополнительных функций, включая физическое моделирование, воспроизведение аудио/видео, сохранение и загрузку игр.
Учебные материалы по SpriteKit:
- учебник на выбор с этого сайта;
- видеокурс SpriteKit c нуля.
Важно! Разработка игр для iOS не ограничивается фреймворком SpriteKit. Существует огромное количество движков для создания 2D и 3D игр. Самые популярные из них — Unity и Unreal. А создании хардкор-аркады Trigono разработчики Лайв Тайпинг использовали движок OpenFL с применением кастомных доработок.
Самым актуальным языком мобильной разработки под iOS в 2019 году является Swift. Причина не только в его скорости и лаконичном синтаксисе, но и в том, что он становится стандартом разработки-де-факто и получает всё больше поддержки со стороны разработчиков Apple.
Это не отменяет необходимости знакомиться с Objective-C: на этом языке созданы полезные библиотеки, а поддержка старых, но больших и интересных проектов хорошо оплачивается.
Как видно, iOS-разработка глубока, и постижение всей её глубины повысит твою ценность на рынке разработчиков. Надеюсь, что эта статья ответила на все возможные вопросы и ты поделишься ей с друзьями. Если нет, то оставляй комментарии — я на них отвечу.
А если вы поняли, что не готовы самостоятельно работать над iOS-приложением, а хотите доверить его разработку профессионалам, то оставьте заявку — мы свяжемся с вами для бесплатной консультации.