- Что удобнее в работе с ipad для программиста?
- Что можно разрабатывать на ipad?
- «яблочная» экосистема
- Легче всего будет работать на macOS
- Установите необходимый софт для iOS-разработки
- Создайте пользовательский интерфейс
- Нетворкинг и работа с API
- Изучите пошаговые туториалы
- Практикуйтесь
- App store
- Appcooker
- Apple представила новые технологии и инструменты для разработчиков приложений
- Buffer editor
- Deadline
- Monotouch
- Omnigraffle 3
- Pythonista 3
- Textastic
- Working copy
- Апгрейд клавиатуры
- Инструменты для разработки
- Как зарегистрироваться в ios developer program
- Каким может быть флоу при работе по ssh?
- Легко ли начать разработку для ios с нуля?
- Нативные средства разработки
- Немного о себе
- Необходимые знания
- Обязательно ли нужен mac?
- Планшет по возможностям не уступает пк?
- Платные приложения в appstore — от
,99 до 9,99
- Программируем для iphone и ipad. 3-е изд
- Продолжительность работы ipad от батареи
- Прокачка программной начинки
- Разница между web и native приложениями
- Разработка и администрирование веб-ресурсов на ipad
- Разработка приложения для ios
- Создаем связь между графическими элементами и кодом
- Создание первого проекта
- Типы приложений
- Устройство
- Яблочная страна не всем рада
- Язык objective-c
- Язык swift
- Выводы
- Итоги
Что удобнее в работе с ipad для программиста?
Первое, чем iPad удобнее ноутбука — это портативностью. Да, ноутбуки и сами по себе являются портативными компьютерами, однако планшет — это ещё более легкое, компактное, и нетребовательное к вашему рабочему пространству устройство.
Будучи часто в разъездах, мне приходилось постоянно таскать с собой ноутбук в рюкзаке. «Велика беда», можете иронично сказать вы, однако не забывайте про обязательный увесистый блок питания к ноутбукам. Тем более у модели MacBook Pro 13” mid 2021, которая постепенно уходит в историю. И чем больше вам нужно мощности ноутбука, тем массивнее блок питания с ним нужно будет возить.
Таким образом, если вы предпочитаете, путешествовать налегке и работать хоть с песчаного пляжа на Бали, то дополнительные ~3 кг будут создавать вам неудобства. С планшетом же всё куда проще: достаточно закинуть небольшой чехол с iPad и Apple Pencil в рюкзак.
Что можно разрабатывать на ipad?
На iPad отсутствуют полноценные среды разработки для многих популярных языков программирования, что сильно ограничивает сферу его применения для разработчиков.
Например, если вы давно мечтаете научиться программировать на Swift и начать создавать свои приложения под iOS, iPad может стать для вас лучшим помощником в этом. Официальное обучающее приложение Swift Playgrounds шаг за шагом проведёт от самых азов до своего первого собственного приложения, даже если до этого вы никогда не имели дела с программированием.
Если ваш процесс разработки не требует визуального интерфейса, то iPad может вполне подойти для вашей задачи. К примеру, я перешёл на планшет во время работы над игрой Wasteland Wars, которая представляет собой онлайн игру в формате чат-бота. Для работы над моей игрой iPad подходит для такой разработки просто идеально:
- главный процесс разработки таких текстовых игр заключается в написании и загрузке кода с графикой на сервер, где уже происходит вся машинная работа;
- сам процесс разработки и отладки кода игры не предусматривает потребности работы с графической частью;
- графику лично мне удобнее создавать с Apple Pencil.
«яблочная» экосистема
Сегодня мы займемся разработкой простого мобильного приложения для iOS. Конечно, лучше всего для этого подходит родной Mac. Но если ты сторонник Windows или у тебя просто нет Мака, можно установить операционную систему macOS под виртуальную машину в Windows.
На просторах Сети тебе не составит большого труда найти специально заточенную под PC версию macOS, в народе называемую Хакинтош. Смело ставь ее на виртуалку VMware, VirtualBox — на твой выбор. Сразу предупрежу, что на PC-клавиатуре нет части клавиш, которые есть на Mac-клаве, и многие их сочетания нажать в Хакинтоше невозможно. Это изрядно портит настроение. В остальном все описанные ниже операции можно успешно выполнить на Хакинтоше.
Легче всего будет работать на macOS
Разработка приложений для iOS обычно осуществляется на Macbook/iMac. Не нужно гнаться за самой новой моделью, подойдет и простенький Air. Главное, чтобы на устройстве можно было установить последнюю версию macOS. Можно разрабатывать и на виртуальной macOS-машине, но это «больно».
Установите необходимый софт для iOS-разработки
Самая широко используемая IDE для iOS-разработки – это Xcode. Можно за день изучить, что где находится и для чего используется. Стоит потратить время и на продвинутые фичи и горячие клавиши, это облегчит и ускорит процесс разработки.
Разрабатывать iOS-приложения можно и на Objective-C, но обычно его используют для поддержки легаси-приложений. Для написания новых программ лучше подойдет Swift. Этот язык сейчас активно продвигается самой Apple.
Важно уметь адаптироваться к изменениям. Я бы не сказала, что каждая новая фича – это что-то хорошее. Если запустить Xcode, то можно увидеть много маленьких кнопок и панелей. Поверьте, нет ничего раздражительнее, когда в них что-то меняют, передвигают, удаляют, и потом надо тратить тысячу часов на их поиск. Ладно, преувеличиваю (нет).
Создайте пользовательский интерфейс
Разработчику iOS-приложений обязательно нужно уметь создавать пользовательские интерфейсы. Подвох в том, что это можно сделать несколькими способами. Например, используя Interface Builder и Storyboards из туториалов Apple. Или с помощью кода, для чего есть тоже множество разных решений.
Что касается дизайнов и прототипов, их я создаю в Sketch или Figma. Еще пользуюсь Canva. Практически всегда от клиентов поступают готовые ассеты. Поэтому, даже если вы не очень разбираетесь в дизайне, нужно уметь пользоваться соответствующими инструментами.
Нетворкинг и работа с API
Обязательно освойте работу с разными форматами данных. По крайней мере, нужно уметь парсить JSON и знать нетворкинг-классы Apple (URLSession) и библиотеки, к примеру, сетевую библиотеку Alamofire.
Изучите пошаговые туториалы
В интернете можно найти тонны простых приложений с открытым исходным кодом на Swift, которые можно модифицировать на свой вкус. Ещё это очень хорошо развивает способность разбираться в чужом коде.
Мой первый Swift dev курс я прошла на Udemy (iOS разработка на Swift 5 от Angela Yu). Мне он понравился тем, что составлен для новичков и сложность нарастает линейно. То есть не будет такого, что на первом уроке вы установили Xcode, а на втором кодите Flappy Bird.
Практикуйтесь
Мне легче кодить, когда я имею конкретный проект. Это гарантия того, что я не заброшу приложение. Кто знает, сколько таких полуначатых проектов хранится в закромах моего макбука (я знаю, но не скажу 😂).
Многие ругают фриланс, но именно с него я начала, когда разобралась с основами разработки. Поэтому найдите подходящий по уровню проект и действуйте.
Я набросала лишь то, что помогло мне самой начать разрабатывать приложения. Буду рада, если вы поделитесь своим опытом в комментариях. 💃
Если интересно, могу написать о своей учёбе в университете, в том числе об учёбе во время COVID-пандемии.
***
Если вы пока испытываете сложности с английским языком, но уже хотите научиться программировать мобильные приложения для AppStore, обратите внимание на факультет iOS-разработки от GeekBrains. Программа и преподаватели имеют высокие оценки учащихся, а при успешном прохождении курса онлайн-университет гарантирует не только диплом, но и трудоустройство.
App store
Попросту говоря, App Store — это магазин контента для всего спектра Apple-девайсов. Здесь можно купить игры и приложения как от больших компаний, так и от независимых разработчиков. Каждый разработчик, в какой бы стране он ни жил, может продавать или распространять бесплатно свои программы на этой площадке цифровой дистрибуции.
Appcooker
AppCooker позволяет вам разрабатывать прототипы приложений для iPhone, iPad или Apple Watch, а затем просматривать их на устройствах с помощью бесплатного сопутствующего приложения под названием AppTaster. AppCooker требует iOS 8 или более поздних версий и обеспечивает полностью функционирующие прототипы приложений.
Apple представила новые технологии и инструменты для разработчиков приложений
«Мы очень рады дать сообществу разработчиков новые инструменты и технологии, с помощью которых можно будет создавать ещё более интересные и качественные приложения, а также по‑новому взаимодействовать с пользователями через App Store, — сказала Сьюзан Прескотт, вице-президент Apple по связям с разработчиками. — Широкие возможности Xcode Cloud, постоянное совершенствование языка программирования Swift, большое количество новых API, дополнительные способы общения с пользователями — всё это делает платформы Apple ещё более совершенными, чем раньше».
Xcode Cloud — новый облачный сервис для непрерывной интеграции и распространения приложений для платформ Apple. Сервис встроен в Xcode 13 и позволяет индивидуальным разработчикам и командам любого размера быстро и просто компилировать, тестировать и распространять высококачественные приложения, работая, таким образом, ещё более эффективно. Xcode Cloud может автоматически собирать приложения в облачной среде, освобождая тем самым ресурсы компьютеров Mac, которыми пользуются разработчики, для других задач. Параллельное тестирование в облаке позволяет проверить, как будет работать приложение на каждой из текущих моделей устройств Apple, а затем без труда передать уже скомпилированное приложение в отдел внутреннего тестирования или отправить независимым бета-тестировщикам через модуль TestFlight, чтобы получить мгновенную обратную связь.
Buffer editor
Buffer – это приложение для редактирования кода, которое может соединяться с многочисленными удаленными службами, такими как Dropbox, Github, iCloud SSH, SFTP и FTP-серверы. Buffer поддерживает Unicode, расширенную клавиатуру и поддержку кодирования Vim.
Buffer Editor также включает подсветку синтаксиса и автозаполнение кода для различных языков программирования, включая ASP, AWK, ActionScript, Ada, Arduino, C, C , C#, CSS, HTML, INI, Java, javascript, Perl, PHP, Progress, Puppet , Python, R, Ruby, SQL и другие.
Deadline
Срок сдачи работы не всегда зависит от вас. Перед появлением в AppStore приложение проходит ревью, которое длится минимум 5 дней. Если приложение было отклонено по каким-либо причинам, то, после внесения изменений, необходимо будет отстоять всю очередь снова.
Так что обещать клиенту выпустить приложение в AppStore к определенной дате, если у вас нет в запасе двух-трех недель, — поступок довольно безрассудный. Лучше обещайте показать приложение на устройстве к оговоренному сроку и объясните ситуацию с ревью.
Спасибо, что прочитали статью!
Monotouch
MonoTouch позволяет разрабатывать приложения для iДевайсов на C#. Ощутимый минус для .NET разработчиков цена — $399 за индивидуальную лицензию.
Что привлекает меня в этом пути: в связке с
можно потенциально покрыть довольно большой сегмент мобильного рынка (iOS/Android/WP7), без больших изменений кода.
Omnigraffle 3
OmniGraffle 3 — это дизайнерский и диаграммный пакет для устройств Apple, с удобным интерфейсом, чем предыдущие версии. Приложение позволяет пользователям рисовать фигуры и перетаскивать объекты, а также предоставляет интеллектуальные направляющие, которые помогут вам оптимизировать диаграммы.
Pythonista 3
Pythonista это Python IDE на iOS. После покупки Pythonista (749 рублей) установите StaSh — скрипт, который создает настраиваемую виртуальную консоль. Она эмулирует некоторые классические команды терминала, вроде cat, rm, git, ssh, scp. Расширение поддерживает исполнение скриптов в фоновом режиме до тех пор, пока приложение «висит» в оперативной памяти.
В Pythonista встроены популярные пакеты, как bs4 и requests. Остальные можно установить через pip в StaSh. Я однажды столкнулся с проблемой, что StaSh установил расширение для Python 2 или старую версию для Python 3, из-за чего у меня не получилось исполнить скрипт.
В интерактивной консоли работает визуализация графиков, созданных через matplotlib. Редактор кода автоматически дополняет код на Питоне, переносит строки и заменяет табы пробелами. Линтера нет, все ошибки появляются при рантайме — текст некоторых из них не полностью помещается в окно, поэтому для отладки приходится запускать приложение через StaSh.
К сожалению, в Pythonista нет тесной синхронизации с Working Copy, как в Textastic. Однако, пользователи написали инструкцию, как переносить файлы из одного приложения в другое.
Разработчик Pythonista сделал большой акцент на UI-программирование. Приложение поддерживает файлы .pyui и предоставляет библиотеки для программирования специфичной функциональности iOS. Я никогда не пользовался этими возможностями приложения.
Как бонус, Pythonista работает и на iPhone. Пару раз мне это пригодилось — написал консольную утилиту, которая считает цены покупки и продажи криптовалюты.
Textastic
В Textastic я пишу программы на Python и веб-сайты на HTML, CSS и JS. Редактор работает с проектами в памяти устройства и в приложении «Файлов». Это удобно, так как Working Copy интегрирован в «Файлы» — импортирую репозитории прямо из него. Все изменения появляются в Git-клиенте в реальном времени.
В первую очередь, Textastic адаптирован под веб-программирование. В редакторе есть автоподстройка и автодополнение HTML и CSS кода — Textastic создает файл с пустым шаблоном, подсказывает имена тегов и вставляет обязательные атрибуты. Также приложение поддерживает расширения Emmet для ускорения написания кода.
Для отладки тут есть встроенный браузер, возможности показа страницы в Safari и быстрой отправки результата в виде письма.
В редакторе есть перенос строк и замена табов пробелами. Его цветовая гамма и шрифты меняются в настройках. Код JS и других языков программирования подсвечивается, но линтера нет. «Кривая» подсветка показывает, когда в код закрадывается типографическая ошибка.
В Textastic встроен файловый менеджер, который распаковывает ZIP-архивы, поддерживает навигацию по директориям и импорт изображений с указанием имени конечного файла (эта функция бы пригодилась в Working Copy).
Working copy
Working Copy — продвинутый Git-клиент для iOS. Мне он нравится понятным интерфейсом и обилием действий, для запуска которых не нужно обращаться к командной строке.
Для удобства работы добавьте в Working Copy учетные записи и хосты, на которых хранятся репозитории. Приложение поддерживает «из коробки» GitHub, GitLab, BitBucket и GitBook — а если у вас свой Git-сервер, то вы можете указать его в настройках.
Чтобы клонировать и обновлять репозитории, добавьте на хост SSH-ключ, который сгенерирует приложение. Так Working Copy получит список репозиториев, из которых вы сможете выбрать те, которые вам нужны на iPad — я сохраняю на устройстве все, с которыми активно работаю.
В Working Copy есть встроенный редактор кода и текста — в нем подтормаживает подсветка синтаксиса и русские/английские символы отображаются разным шрифтом. Тем не менее, он подходит для быстрого исправления ошибок или написания коротких программ. Для более серьезных задач я использую редактор Textastic.
Приложение показывает изменения, которые вы сделали с последнего коммита, и предлагает просмотреть их в совмещенном режиме или в раздельном (эквивалент git diff). При коммите приложение откроет всплывающее окно и покажет поле для описания коммита вместе со списком измененных файлов. В нем есть счетчик символов — следую ему, чтобы сделать сообщения максимально информативными.
Working Copy умеет исполнять команды fetch, fast-forward, pull и merge с удаленного сервера. При совмещении (merge) приложение покажет конфликты и предложит выбрать с помощью свайпов правильный вариант.
Для каждого репозитория программа строит графическое дерево коммитов. Тут же происходит работа с ветками (branch). К сожалению, в приложении нельзя создать «осиротевшие» ветви (orphan branch) — мне это нужно, когда начинаю работать над новыми версиями программ.
Working Copy доступна в App Store бесплатно. Однако за одноразовый платеж в 1150 рублей вы разблокируете темную тему и загрузку коммитов на удаленные серверы (git push). Премиум-версию приложения можно протестировать на протяжении десятидневного пробного периода.
Апгрейд клавиатуры
Скажи приятель, а ты знаешь какой самый главный инструмент программиста? Конечно же, клавиатура. Один из самых главных минусов iPad’а (применительно к нашему ремеслу) – отсутствие отдельной клавиатуры. Экранная вполне пригодна для написания относительно небольших текстов (хотя, ваш покорный слуга умудрялся набивать на ней статьи по 18К знаков), но совершенно не годится для набивания кода.
«А чем же код от обычного текста?» – справедливо заметишь ты. В первую очередь тем, что когда мы пишем код, нам хочется видеть как можно больше строк. Согласись, лицезрение лишь последних 5-7 строк кода очередной хитрой функции удовольствие весьма сомнительное.
Экран iPad’а и так не сильно большой, а тут еще экранная клавиатура отъедает драгоценное пространство. При написании заметок в блог это еще не сильно ощущается, а вот при описании алгоритмов начинаешь чувствовать тотальную нехватку места.
Кроме этого у экранной клавиатуры есть ряд ограничений (которые успешно исправляют продвинутые редакторы): отсутствуют клавиши для быстрого перемещения в тексте (стрелочки, табуляция); отсутствие быстрого доступа к специальным символам/знакам, которые широко распространены в синтаксических конструкциях языков программирования.
Именно поэтому без нормальной внешней клавиатуры использовать iPad в качестве рабочей машинки будет крайне проблематично. Думаю, ты уже понял, что сейчас я нагло начну склонять тебя к покупке дополнительного гаджета. Сегодня внешние клавиатуры доступны в самых разных вариантах (встроенные в чехлы, stand-alone решения), выбор действительно шикарный.
Не хочу рекламировать какие-то бренды, но по своему опыту скажу, что наиболее интересные решения (на мой взгляд) сегодня предлагает один из лидеров в области разработки устройств ввода — компания logitech.
Для себя я выбрал Logitech Ultrathin Keyboard Cover — средняя по цене клавиатура и помимо своей основной функции, исполняет роль защитного чехла. Не могу сказать, что это идеальный вариант, но набирать с ее помощью килобайты текста гораздо удобнее и быстрей.
Инструменты для разработки
Как ты знаешь, главный инструмент разработчика под macOS и вместе с ней iOS — среда программирования Xcode. Она включает средства для создания приложений для Mac, iPhone, iPad, Apple TV, Apple Watch. Все платформы Apple. Xcode содержит средство построения интерфейса (Interface Builder), редактор кода, поддерживающего все современные средства работы с кодом.
В систему включены эмуляторы всех устройств, новые версии которых можно докачать. В дополнение Xcode содержит графические инструменты для анализа производительности приложения, включая средства диагностирования загруженности CPU, использования накопителя (HDD, SDD и другие), нагрузки на графический адаптер (со стороны OpenGL).
Как зарегистрироваться в ios developer program
У вас есть два пути:
Разница между ними в следующем: при участии в Enterprise программе вы не можете, в отличие от обычной программы, выкладывать свои приложения в AppStore, зато можете разрабатывать in-house приложения — приложения, для внутреннего использования в своей компании, без открытого доступа.
(последний вопрос в списке)
В остальном, программы дают одинаковые возможности:
Небольшое замечание по Ad Hoc — это способ распространения приложений без AppStore, прямой установкой файла-сборки приложения через iTunes. И тут возникает вопрос: чем это отличается от тех in-house приложений, которыми манит нас Enterprise программа?
Тем, что в стандартной программе вы можете зарегистрировать в год не более 100 устройств для установки на них своих приложений, то есть ни о каком коммерческом распространении тут речь идти не может. Более того, Ad Hoc распространение ориентированно в первую очередь на тестирование продуктов — программы, установленные таким образом, могут работать на устройствах только в течение 6 месяцев.
Каким может быть флоу при работе по ssh?
Можно приобрести виртуальный облачный сервер на каким-либо сервисе, подключиться к нему по SSH и затем настроить окружение, установив необходимые пакеты. Это может быть PHP, Python, NodeJS, MySQL, Nginx — всё то, что необходимо для работы сервера. После этого настраиваем Git, создаём папку проекта и начинаем кодить на вашем iPad.
Установив на удалённый сервер текстовый редактор Vim, можно установить к нему различные плагины. Например, одним из самых популярных является NERD Tree, который добавляет удобную структуру папок проекта и навигацию по ним. База плагинов для Vim просто огромна.
Можно настроить его как для работы с бэкендом, так и для фронтенда, включая настройку Eslint и Prettier. Кроме того, для удобства можно установить терминальный мультиплексор Tmux. В отличие от iTerm на Mac OS, он запускает несколько сессий непосредственно внутри терминала, поэтому разделение экранов возможно и при работе по SSH.
Легко ли начать разработку для ios с нуля?
Конечно, вам будет гораздо легче, если вы умеете программировать, но создавать простые iOS-приложения можно даже без навыков программирования. Сейчас активно развиваются NoCode-технологии, и программы для iOS можно делать в PaintCode.
Без английского не обойтись – самая качественная и актуальная документация находится на сайте Apple. Да вы и сами знаете, какую роль в программировании играет английский.
Разработка мобильных приложений под iOS – это не только весело, но и выгодно. В США за 2021 г. средняя годовая зарплата составляла 84 тыс. долл.

C тех пор, как Apple запустил App Store в 2008 г., было разработано 2 млн приложений. Согласно Appinventiv к 2021 году количество загрузок достигнет 353 млрд. Что насчёт России? По данным портала SuperJob в России разработчики iOS-приложений получают от 64 до 120 тыс. рублей.
Итак, что нужно, чтобы получить работу в качестве разработчика iOS?
Нативные средства разработки
Это прежде всего язык Objective-C и среда разработки Xcode (за компанию с Interface Builder, iPhone симулятором и другими приложениями из пакета разработчика). Еще можно писать на C и C , но без Objective-C вам в некоторых моментах будет все-таки не обойтись.
На хабре довольно много статей об этом языке — стоит только пролистать блог
. У Objective-C есть определенный шарм (хотя на этот счет высказываются
), он немного сложен в начале освоения, -парадигма, унаследованная от Smalltalk дает о себе знать — но потом затягивает.
Основной аргумент в пользу использования инструментов от Apple — нативные средства разработки при прочих равных в любом случае дадут на выходе код быстрее и качественнее, чем любые другие инструменты.
Недавно JetBrains анонсировали свою среду разработки для Objective-C —
(жаль, что они оказались от супер-названия CIDR — одна компания, имеющая продукт с названием Cider, попросила их не использовать похожую аббревиатуру), так что даже тут появится выбор. Конкуренция, надеюсь, приведет к повышению качества.
Немного о себе
Эта статья написана по моему личному опыту. Сейчас я заканчиваю факультет программирования Берлинского университета им. Гумбольдта и работаю в Daimler AG/Mercedes Benz. Первое приложение разработала в университете. Это децентрализованное Android-приложение, позволяющее группе людей общаться без доступа к сети. Штука полезная, особенно когда вы где-то в горах или в джунглях 🐵
Однако сам процесс разработки под Android меня не впечатлил, я решила, что разработка приложений – не моё. К счастью, потом я приняла участие в менторском проекте между моим университетом и медицинским университетом Шарите. Так я открыла для себя разработку мобильных приложений для iOS.
Необходимые знания
Чтобы программировать вообще и для iOS в частности, надо довольно много знать. Математика и логика, может, и не понадобятся вначале, но будут востребованы потом. Современные технологии избавили программиста от необходимости досконально знать архитектуру компьютера, однако понимать базовые механизмы, такие как системы счисления, их преобразование, скорость работы подпрограмм или эффективность алгоритмов (большое O), необходимо.
На более высоком уровне iOS-разработчику надо глубоко знать операционную систему macOS и собственно саму iOS. Также тебе обязательно надо освоить «яблочный» язык программирования. Знание Delphi, C , C# или VB.NET тебе не сильно поможет. У Apple своя экосистема со своими языками:
Objective-C и Swift. Конечно, знание C еще никому не навредило, программы и вставки на нем встречаются везде, даже у Apple. Но самый используемый по определению Objective-C, просто потому, что появился гораздо раньше (в середине восьмидесятых годов прошлого века)
Чтобы не тратить время зря, все эти языки программирования можно изучить под чутким контролем преподавателей на сайте GeekBrains.
Обязательно ли нужен mac?
Вам обязательно понадобится Mac OS X, так как ни на какой другой платформе вы не сможете работать с iOS SDK. Есть много различных вариантов разработки iOS приложений, но минимум для сборки и загрузки приложения в AppStore вам будет необходима Mac OS X. Да, последнее время появляются различные сервисы, которые
и пирожки за вас есть будут
предлагают постить приложения за вас и различные другие услуги, и о них на хабре тоже
. Но, на мой взгляд, все это пока несерьезно и пользоваться услугами подобных контор, при разработке сколько-нибудь значимого приложения не стоит. Хотя, конечно, все зависит от задачи, если вы сможете зарабатывать, используя подобные сервисы, то почему бы и нет:)
Способы заполучить Mac OS X:
Mac mini сейчас вполне доступная вещь, хотя, конечно, всегда хочется большего, а там цены у Apple уже начинают кусаться.
Относительно двух других вариантов: я слышал отзывы людей, которые вполне счастливы с хакинтошем или с Mac OS X на VMWare, но и отрицательного опыта тоже накоплено достаточно. Тут все зависит от железа, прямоты рук и вашего желания.
В целом, если вы хотите разрабатывать под iPhone, операционная система препятствием стать не должна.
Планшет по возможностям не уступает пк?
Все возможности iPad заключаются в приложениях, которые вы используете на нем.
По большей части, я использую в работе язык Python 3.6 и прекрасную IDE для него — Pythonista. Кстати, она доступна в AppStore. Эта среда разработки предоставляет мне возможности полноценных десктопных редакторов:
- я могу создавать код на планшете и сразу же видеть результат его работы;
- в любой момент можно подключить сторонние библиотеки;
- встроенный в приложение терминал позволяет даже запускать простые веб-сервера прямо на планшете.
Работаю с кодом в Pythonista
Для создания графики я использую целый набор различных приложений, каждое из которых лучше в разных аспектах. Procreate и Autodesk Sketchbook — мои личные фавориты в удобном создании и редактировании растровой графики.
Рисую маску в Procreate
В создании векторной графики все мои потребности полностью покрывают пара крутейших инструментов — Vectornator для детальной разработки графики любой сложности с нуля, и Assembly для быстрого и удобного создания артов, логотипов и иконок.
Управление сервером я веду через протокол SSH, используя для этого клиент Termius. Как я заметил, premium версия этого приложения даёт множество преимуществ, которые могут сохранить вам нервы и крепкий сон по ночам, но для базовой работы совсем не обязательна.
Для работы с файлами на сервере удобнее всего для меня оказался FTP Manager Pro, который позволяет перемещать Файлы с локального хранилища iPad простым перетаскиванием с помощью Drag & Drop.
Split View с FTP Manager Pro — идеальное сочетание
В совокупности всего перечисленного с удобством и скоростью работы, для меня iPad предоставляет даже больше возможностей в работе, чем ПК или ноутбук.
Платные приложения в appstore — от $0,99 до $999,99
Тут все очень просто/сложно. Пишете приложение, выкладываете в AppStore, выставляете цену, получаете деньги от довольных покупателей. 30% процентов от цены забирает Apple. Есть шанс как захватить мир, так и попусту потратить свое время — все зависит от вас.
Верхняя планка цены реальна — в AppStore было уже как минимум два приложения за тысячу долларов:
— приложение для студентов-юристов;
— приложение, показывающее изображение красного, видимо, драгоценного камня. Из магазина оно было убрано через день после публикации, но 8 счастливчиков все-таки успели его приобрести. Сейчас оно вернулось в AppStore уже с ценой в 10 долларов, одной из фич указано, что приложение продается всего за 1/100 от оригинальной цены.
Программируем для iphone и ipad. 3-е изд

Достаточно очевидно, что, несмотря на скорое полноценное наступление эпохи Swift, Objective C еще довольно долго не утратит актуальности. Поэтому вашему вниманию мы представляем еще одну книгу серии Head First: Программируем для iPhone и iPad. Название говорит само за себя — это традиционное для серии подробное и интересное пособие о том, как программировать на Objective C, проектировать интерфейсы, создавать приложения, работать с инструментами iPhone SDK (среда разработки, описываемая в книге — Xcode5). Вся информация подана в разговорной, ненавязчивой манере с большим количеством иллюстраций и юмора, что характерно для всех книг Head First. И пусть вас не пугает классический facepalm на обложке — повествование действительно доходчивое и увлекательное.
Количество документации и статей по языку Swift растет, но основная книга — официальная документация от Apple пока еще находится в процессе перевода. Так что данное издание будет также полезным тем, кто хочет наверстать пробелы в программировании для продуктов Apple перед тем как перейти на Swift, и разобраться в организационной структуре данной непростой и интересной платформы.
Оглавление
Отрывок
Купить книгу в электронном виде и бумажном можно с Хаброскидкой 10% по купону ae70edb7 на сайте издательства
Продолжительность работы ipad от батареи
В iPad ещё с самого первого устройства Apple задала планку в 10 часов работы от одного заряда, которую до сих пор не могут достичь планшеты на Android, а приблизиться к этой цифре смогли разве что Windows-планшеты на базе Intel с мобильными х86 процессорами.
Эта цифра — мощный аргумент в сторону планшета. Несмотря на то, что ноутбуки Apple сейчас вне конкуренции по времени работы, даже они проработают не более 5-и часов под активной нагрузкой при программировании и отладке, то есть вдвое меньше чем iPad.
Важное уточнение: всё описанное выше — мой личный опыт работы с iPad Pro 10.5 и MacBook Pro 13” mid 2021, он может и будет не совпадать с вашим.
Только вы создаёте свою уникальную рабочую площадку для ваших собственных целей. Я надеюсь, что вы нашли в моем опыте что-то полезное для себя!
Прокачка программной начинки
Evernote
Условия распространения: Бесплатно/Платно
Стоимость: 5$/мес
Evernote давно стал для меня программой №1. Клиент к этому замечательному сервису у меня установлен на всех моих рабочих станциях и мобильных девайсах. Это инструмент не имеет прямого отношения к разработке, но лично я использую этот продвинутый блокнот для сохранения всех своих идей, а также написания черновиков технических заданий будущих программ.
Резюме: Отличное решение для написания ТЗ, планов и различной вспомогательной информации по проектам. Благодаря возможности шаринга, Evernote становится эффективным инструментом во время командной разработки.
Разница между web и native приложениями
Хочу пояснить разницу между native и web приложениями для iPhone/iPad, пока мы не перешли к инструментам разработки. Первые распространяются через AppStore (или in-house приложения), вторые — всего лишь web-сайт или его часть, специальным образом сконфигурированный под iPhone.
Доступные web-приложения можно посмотреть тут —
Разработка и администрирование веб-ресурсов на ipad
У меня не получилось найти универсальный и подходящий мне инструмент для веб-разработки, верстки страниц с использованием JavaScript и CSS, с просмотром изменений в Split View, но для создания несложных прототипов могут подойти и универсальные редакторы кода вроде Buffer.
Возможность администрировать сайты с планшета зависит только от структуры самих сайтов. Если есть удобная админ-панель, или даже отдельное приложение для работы с движком сайта типа, WordPress, то наполнение сайта контентом с iPad не должно доставить вам слишком много неудобств.
Разработка приложения для ios
В качестве семпла мы разработаем весьма простое приложение. Не будем отступать от священной традиции, поприветствуем мир. Однако с учетом того, что у нас графическое приложение, мы немного разнообразим его: добавим кнопку, нажимая которую будем отображать или скрывать надпись «Hello, World».
Запусти Xcode, в появившемся окне выбери Create new project или в главном меню File -> New -> Project. В следующем окне будет предложено выбрать целевую платформу и тип приложения.

В данном случае нас интересует платформа iOS. На выбор представлено семь типов приложений. Шесть из них — заготовки типичных приложений операционной системы iOS, по умолчанию содержащие разный набор компонентов. Седьмой тип — игра.
Создаем связь между графическими элементами и кодом
В Visual Studio (или Delphi) объект в коде создается автоматически в тот момент, когда кладешь визуальный компонент на форму. В Xcode этого не происходит, но это не создает проблем.
Открой содержимое заголовочного файла ViewController.h в отдельном окне, дважды щелкнув на нем. В этом файле находится объявление расширения класса UIViewController, помечается ключевым словом @interface. Такая возможность была добавлена во вторую версию Objective-C.
Теперь выполни такой трюк: перемести курсор мыши на компонент — текстовую метку, зажми клавишу Ctrl и левую кнопку мыши. Перемести курсор в окно с кодом (файл ViewController.h), за курсором потянется синяя линия. Отпусти мышь и клавишу внутри описания интерфейса ViewController.
Появится окно создания Outlet’а.

Это свойство объекта, которое ссылается на другой объект (в данном случае визуальный компонент). Тебе надо ввести имя объекта Outlet, по нему ты будешь обращаться к визуальному компоненту, пускай будет lab. Далее выбирается тип объекта, он выбран правильно: UILabel.
Еще ниже в списке Storage выбирается тип ссылки на объект: weak или strong. Если выбрать strong, то объект, на который указывает свойство, будет существовать до тех пор, пока свойство указывает на него, в таком случае он не сможет автоматически удалиться, когда перестанет использоваться.
@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, которое происходит в момент отпускания указателя (мыши, пальца…) над кнопкой, то есть заключительная стадия нажатия кнопки.
- (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 «Мобильный разработчик». В курсе два месяца отдается на изучение этого языка. Во время первого месяца — вводные темы, а на втором — реальный кодинг профессиональных приложений.
Создание первого проекта
В качестве заготовки для нашего приложения выберем Single View Application. Поскольку мы не будем разрабатывать большую программу, нам хватит предоставляемой этой заготовкой средств. Нажимаем Next. На следующей странице мастера надо ввести имя проекта, к примеру ShowLab.
В ниспадающем списке Language оставим выбранный по умолчанию язык — Objective-C. Далее в ниспадающем списке Devices оставим выбор Universal. Здесь определяется, для какого устройства (iPhone или iPad) создается приложение. Пункт Universal означает для обоих.
В результате откроется окно со списком всех примененных к проекту параметров. В этом окне можно изменить установленные ранее в мастере параметры: ориентацию, целевой девайс и прочее.

Сначала нам надо создать интерфейс приложения. Для этого одним кликом выбери файл 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. Отцентрировать можешь так же, как описано выше.
Типы приложений
- Заготовка 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, создать свой аналог данного приложения, включая проигрывание аудио, видео, использование стикеров и другое.
Устройство
У меня iPad Pro 9.7″ с дополнительной клавиатурой и Apple Pencil. Планшет, аксессуары и приложения обошлись в 45 тысяч рублей.
Клавиши на оригинальной клавиатуре Smart Keyboard для iPad 9.7″ маленькие, но я к ним привык и печатаю быстро. Apple интегрировала большинство комбинаций «горячих» клавиш с macOS, а некоторые приложения добавляют еще и свои — например, Textastic.
Apple Pencil работает неделю и заряжается за 30 минут. Недостаток — карандаш сделан из дешевого глянцевого пластика, который быстро загрязняется, а колпачок треснул через месяц после покупки.
Мой сценарий использования — программирование и просмотр видео. Дисплей яркий и четкий, аккумулятор держит три-четыре дня. Тачскрин прижился в рабочем процессе — на нем удобнее перетаскивать блоки текста, переключаться между приложениями в режимах разделённого экрана Split View и Slide Over.
Яблочная страна не всем рада
iPad вроде и универсальный гаджет, но в плане разработки он диктует жесткие условия и будет рад открыть двери не каждому девелоперу. Любителям иметь на своей железке C /Python/lamp и прочие прелести большего десктопного мира вход без лома категорически воспрещен.
Поднять на планшете компилятор C или интерпретатор питона без грязного джейлбрейка не удастся. Придется довольствоваться облаками, либо брать лом и на свой страх и риск ставить джейлбрек, раз и навсегда забивая гвоздь на гарантию.
Наиболее комфортно работать на планшете смогут web-разработчики. Именно им под силу выжать максимум пруфа от разработки на планшете. В связи с этим все дальнейшие советы будут в большей степени ориентированы на web-разработчиков.
Язык objective-c
Кратко вспомним основные сведения о языке. Objective-C — компилируемый объектно ориентированный язык программирования, используемый для написания приложений под «яблочные» системы. Представляет собой надмножество или, другими словами, надстройку над C, унаследовав от последнего синтаксис, типы данных, способы контроля за ходом выполнения программы и добавив к нему возможности объектно ориентированного программирования — описание классов и методов.
Как в C , в Objective-C центральную роль играют объекты, с которыми связаны четыре парадигмы: абстракция, инкапсуляция, наследование, полиморфизм. Язык C является строго типизированным, тогда как Objective-C — слабо типизированный или обладает динамической системой типов данных.
Описание языка Objective-C занимает не один объемистый томик. Поэтому, чтобы получить объективные знания, удобно пройти курс «Mobile-разработчик». Целый раздел курса посвящен этому языку.
Язык swift
В 2021 году Apple представила новый язык программирования — Swift. Он быстро стал самым обсуждаемым и наиболее динамично развивающимся языком в мире. Это надежный, безопасный, интуитивно понятный язык для разработки приложений под операционные системы macOS, iOS, tvOS и watchOS для всего парка устройств от Apple.
Swift — эффективный язык программирования. Его легче изучать, чем его предшественника — Objective-C, в то же время Swift позаимствовал из него самые удачные идеи. Вместе с тем разработчики сделали языки совместимыми, то есть в одной программе может быть код как на Swift, так и на Objective-C.
При разработке Swift ставилась цель создать самый удобный язык системного программирования — быстрый, безопасный и выразительный.
Алгоритм на языке Swift работает в 2,6 раза быстрее, чем такой же алгоритм на Objective-C, и в 8,4 раза быстрее, чем на Python. Использование Swift делает процесс разработки программ более гибким и удобным.
Благодаря своему экспоненциальному развитию, 3 декабря 2021 года язык Swift был передан в сообщество открытых исходников. При этом Apple строго следит за его развитием, организовав комитет для его разработки. Теперь Swift доступен не только в системах Apple, но также в Linux.
За этим языком будущее. Более подробные сведения о нем ты сможешь узнать из упомянутого курса от GeekBrains «Мобильный разработчик», в нем целый месяц отведен на изучение данного языка программирования.
Выводы
Конечно, если вы не хотите изучать Vim и вам легче использовать визуальные текстовые редакторы, использование iPad станет не лучшим вариантом для разработки софта, если же с этим проблем нет, можно смело рассматривать iPad Pro как неплохую рабочую машинку. К тому же стоит iPad Pro заметно дешевле MacBook Pro.
Понравился материал? Делитесь мнением в комментариях и не забывайте про наш Телеграм.
Итоги
Мы разработали простое приложение для мобильной операционной системы iOS, используя для этого систему программирования Xcode вместе с языком Objective-C. Протестировали готовое приложение на симуляторе iPhone 7. Мы узнали, как построить пользовательский интерфейс с помощью Interface Builder, как связать графические элементы с кодом приложения, как создать обработчики событий.
Однако изученный материал — это только начало. Чтобы интенсивно прокачаться в направлении мобильного кодинга и разработки реально продаваемых приложений, мы рекомендуем пройти курс «Mobile-разработчик» на сайте наших друзей GeekBrains.
Это достойный курс: пройдя его, ты точно не потратишь время зря. Он начинается с двух подробных курсов по языку Java, затем следует изучение базового программирования под мобильную операционную систему Android. Далее курс по базам данных в общем и языку SQL в частности.

Лекции курса ведут профессиональные преподаватели, имеющие большой опыт в разработке программного обеспечения. Если что-то непонятно, можно, не откладывая, задать вопрос. Вообще, обучение на GeekBrains — живой процесс, можно общаться, задавать вопросы, помогать с ответами.
Для проверки полученных знаний преподаватели выдают домашнее задание, которое затем проверяется. После прохождения обучения тебя ждет гарантированная стажировка в IT-компании. А дальше все зависит от тебя, если ты покажешь себя как грамотный специалист, тебя пригласят на работу.
Специальный проект с компанией GeekBrains