Как написать приложение для ios на ipad
Здравствуйте! Меня зовут Максим Газизов. В этом посте я бы хотел рассказать вам о том, как я перенёс процесс разработки собственного проекта с MacBook Pro 13’ 2012 на iPad Pro. На это у меня есть несколько причин.
Оговорюсь сразу, что мой опыт может и будет не совпадать с вашим, потому что в этой статье я описываю сугубо индивидуальные нужды. Итак, что мы имеем:
- собственный проект, а не работа по найму
- платформа Telegram-бота
- MacBook Pro 13’ 2012 в минимальной комплектации
- постоянные разъезды
- потребность вмешиваться в процесс разработки из любой точки страны и планеты
- желание быть рядом со своим проектом всегда
7 лет с верным стариком
Если раньше MacBook Pro 13’ 2012 на минималках полностью закрывал мои запросы, то со временем он стал тормозить и подлагивать. Не хочу плохо говорить о своём старом друге, с которым мы повидали много взлётов и падений в моей жизни, но сам инструмент и периферия к нему мне стали в тягость.
Конечно, я задумывался и об апгрейде своего первого мака, купленного на свои кровные, но легче от этого он бы не стал.
Весит он без малого 2,5 кг, а вдобавок блок питания тоже весьма увесистый. Такие характеристики не столько усложняют транспортировку этого исторического MacBook, сколько сказываются на моей мобильности.
Возможно, такой груз отлично тренирует дыхалку, позволяет сбросить лишний вес, но в моём случае всё-таки хотелось бы ставить функциональность и быстродействие устройства на первое место.
Сегодня я не могу себе позволить новый ноутбук из линейки Apple ввиду собственных ограничений по бюджету. И как бы хочется потрогать всю эту новизну, пройтись пальцами по сенсорной панельке с разным контентом, но больше 100 тысяч рублей за технику я пока не готов выложить.
Дело не только в деньгах. Вопрос в том, что я получу за эти 100к+. У моделей 2017-2018 есть реальные проблемы с шлейфами. Я же не могу так рисковать и оставаться без рабочего инструмента на неопределённый срок: встанет работа всего проекта и его обеспечение.
Как я потом буду игрокам в глаза смотреть?
Лучше ли новый друг?
После такого предисловия я бы хотел переключиться на тему работы с планшета. Возможно, дизайнерам одновременно норм и есть какой-то дискомфорт при работе с графикой на iPad.
Сейчас мой developer pack выглядит следующим образом:
- iPad Pro 10.5
- Apple Pencil
- зарядное устройство на 2,1А
Мой iPad Pro 10.5 работает 10 часов от одного заряда. Это значительный камень в огород новых ноутбуков Apple, которые на пределе работы не выдерживают и пяти часов. Опять-таки, это мой собственный опыт.
Каким софтом я пользуюсь
Главный процесс разработки таких текстовых игр заключается в написании и загрузке кода с графикой на сервер, где уже происходит вся машинная работа. Сам процесс разработки и отладки кода игры не предусматривает потребности работы с графической частью.
Графику лично мне удобнее создавать с Apple Pencil и рядом программ для отрисовки. К счастью, в AppStore есть такие штуки, которые закрывают выше перечисленное.
Так как я пишу свой проект на Python 3.6, то IDE под названием Pythonista позволяет мне забыть о том, что я работаю не с компьютера. Всё дело в том, что у неё все возможности десктопных редакторов:
- создание кода и просмотр результатов работы
- подключение сторонних библиотек
- встроенный терминал для простых веб-серверов на планшете
Клиент Termius помогает мне управлять сервером через SSH. Я заметил, что для базовой работы премиальная версия этой программы ничем не отличается от обычной. А так своевременно заплаченные деньги за премиум упростили процесс управления и сберегли мне нервы.
С файлами сервера я орудую через FTP Manager Pro. Удобнейшая вещь. Объясню почему: можно перекинуть файлы с локального хранилища всего лишь через Drag & Drop. Кстати, на скрине пример взаимодействия этого FTP Manager Pro и локального хранилища в режиме Split View. Спойлер: это офигенно удобно.
Касательно игровой графики, у меня есть чёткое деление на растровую и векторную. Для создания и редактирования растровой графики я выбрал AutoDesk Sketchbook и Procreate.
С векторной графикой же я работаю через Vectornator и Assembly. Vectornator закрывает мои потребности в разработке графики любой сложности с нуля. Assembly позволяет мне быстро создать иконки, логотипы, иногда арты.
Дома я могу работать с компьютера на Windows, но ведь хочется и понять своё местоположение, и пройтись. Так что удобство планшета как инструмента разработчика не ограничивается возможностью кодить в поездках.
(29 голосов, общий рейтинг: 4.62 из 5)Планшет iPad от компании Apple — всем известное и не нуждающееся в рекламе устройство. Но очень часто хочется использовать всю мощь этого устройства не только для игр и развлечения, а для серьёзной работы. Например для написания программ. Несмотря на 4-x летнею историю развития этого гаджета и наличие разных моделей удобных сред для программирования под iOS существует крайне мало. (Оговорюсь сразу, во избежании дальнейшей путаницы: программирование на iOS — значит написание кода и запуск программы на iPad или iPhone, а программирование для iOS — написание приложения, которое может быть выложено в App Store.)
Недавно я наткнулся на великолепную программку Pythonista, которая позволяет писать на iOS для iOS.
Краткое описание
Pythonista brings the Zen of Python to your iPad or iPhone.
И это действительно так. Программа является лучшим компилятором для Python.
На мой взгляд, лучшим это приложение делают 3 вещи:
- Не нужно интернет-подключение для запуска программы. iPad действительно становиться рабочей станцией;
- Есть всплывающие подсказки и встроенная документация (опять же без доступа к интернету);
- И, конечно, самое главное, это возможность экспорта в XCode.
Обзор
Среда ориентирована на Python 2.7. Но есть и некоторые фишки из 3-й ветки. Например, сработает и такой код:
Кроме стандартных библиотек, есть несколько библиотек для непосредственной разработки для iOS. Остановлюсь на одной. Она называется ui и отвечает за GUI.
Рассмотрим несколько примеров работы с этой библиотекой. Очень интересно, что в Pythonista графический интерфейс можно задавать программно, а можно нативно:
Это первый пример по работе с библиотекой ui. Разберём программу построчно:
1) Сначала создаём объект View;
2) Потом задаём имя этого объекта, оно будет отображаться в его заголовке;
3) Устанавливаем цвет фона объекта — белый, можно задавать словом, а можно при помощи RGB;
4) Создаём кнопку с надписью «Tap me!»;
5) Размещаем кнопку на объекте;
6) Задаём функцию, которая будет выполняться при нажатии на кнопку. (В данном случае изменится надпись на кнопке);
7) Уточняем, что «button» является наследником «view»;
8) Наконец, вызываем метод view.present() для отображения объекта на экране iOS устройства.
Вот что будет происходить на айпаде:
Но тоже самое можно сделать и нативно:
1) Создадим скрипт с UI:
2) Открыв UI, нажмем на кнопку "+" и выберем button:
3) Растянем кнопку и разместим её по центру экрана:
4) Откроем атрибуты кнопки и зададим функцию, срабатывающую при её нажатии:
4) Перейдём в редактор скрипта и напишем функцию:
Скажем, к какому UI привязать данный скрипт:
5) Запустим программу:
В завершение
В завершение хочу сказать, что представленный мною обзор далеко не полон и не раскрывает всех функций этой программы. Множество примеров, отличное описание библиотек — всё это позволит довольно быстро разобраться во всех свойствах этого приложения.
Рекомендую посетить сайт создателей Pythonista. На нём есть документация , к сожалению, только на английском языке.
UPD: Читайте мою статью посвящённую этой программе и автоматизации iOS в февральском номере журнала ][акер
Pythonista 3
Некоторые считают, что Python отлично подходит для первого языка программирования. Может это и так. Язык обладает несложным и понятным синтаксисом и при этом большим количеством функций.
Несмотря на то, что многие продвинутые программисты Basic не воспринимают от слова совсем, я считаю, что это неплохой язык для начинающих. Он очень прост и в то же время в умелых руках может решить массу задач.
Swift Playgrounds
Swift Playgrounds от самих Apple позволяет даже новичку погрузиться в мир языка. Изучить новые конструкции, изучить работу кода на живых примерах в игровой форме.
Я прошёл несколько уроков по JavaScript. Всё очень доступно и интересно. Даются мини-уроки с примерами, которые можно тут же запустить в эмуляторе. После этого обычно следует вопрос с вариантами ответа или возможностью вписать текстовый ответ. Очень наглядно и удобно для начинающих.
Есть примеры кода и возможность их запустить:
Все приложения бесплатные и без встроенных покупок.
Textastic Code Editor 6
В App Store два приличных редактора текста для кода. Textastic при своей цене в 749 рублей (в американском App Store 10 долларов) является бюджетным вариантом.
Программа поддерживается автором и оперативно обновляется.
Старый обзор приложения. Сейчас оно выглядит гораздо современней.
А вот и более дорогой и продвинутый вариант текстового редактора. За 1890 рублей вы получите всё в одном.
Рецепты кода
Разработчик приложения собрал примеры из этих 6 языков программирования и судя по обновлениям ещё и актуализирует их постоянно.
Программа условно-бесплатная, но полная версия стоит всего 2 доллара.
Codea
Codea появилась в 2012-ом году, как первое приложение в App Store, на котором можно было писать приложения для iOS. И по сей день программу обновляют. В Codea используется язык программирования Lua, который был придуман в Бразилии, и больше всего по идеалогии походит на JavaScript.
Codea создана, чтобы упростить программирование для iOS. То есть цель разработчиков была визуализировать процесс и сделать его за счёт этого более удобным.
В качестве примера разработчики выложили в App Store весьма годную полностью бесплатную игру Cargo Bot (она написана на Codea). В ней необходимо переставлять цветные ящики с помощью руки-манипулятора, чтобы получилось заданное расположение. Для этого нужно придумывать алгоритмы с помощью доступных команд.
Hopscotch: Make Games
Ещё одно приложение для создания игр. Внутри удобные (показываются в маленьком окошке) обучающие видео, которые на английском языке помогут создать первые игры.
В приложении можно выбирать объекты и придумывать им действия. В итоге получаются несложные аркадные игрушки. Я попробовал несколько, созданных людьми. Не особо впечатлился, но нужно сделать скидку на любительский уровень пользователей.
Human Resource Machine
Ну и топ-10 был бы не полным без этой игры. Да-да, именно эту игру я рекомендую всем программистам или новичкам в программировании, чтобы размять свой мозг.
Немного терминологии и советов по разработке программ.
Xcode - это интегрированная среда разработки от Apple (IDE).
iOS SDK - комплект средств разработки для iOS, выпущенный в марте 2009 года корпорацией Apple. iOS SDK выпускается только для Mac OS X .
Mac OS (Macintosh Operating System) - семейство проприетарных операционных систем производства корпорации Apple.
Objective-C - компилируемый объектно-ориентированный язык программирования, используемый корпорацией Apple.
Ad Hoc - способ распространения приложений без AppStore, прямой установкой файла-сборки приложения через iTunes.
Теперь перейдём,непосредственно к советам и инструкциям.
Итак, первая инструкция и включенный в неё - совет:
Разница между ними в следующем: при участии в Enterprise программе вы не можете, в отличие от обычной программы, выкладывать свои приложения в AppStore, зато можете разрабатывать in-house приложения — приложения, для внутреннего использования в своей компании, без открытого доступа. Если вы решите разрабатывать in-house приложение для своих клиентов, то им рекомендуется вступить в эту программу. В центре поддержки iOS Developer Enterprise Program поясняется этот вопрос (последний вопрос в списке)
- доступ к инструментам разработки и SDK (включая beta-версии);
- доступ к Apple Developers Forums;
- доступ к обучающим ресурсам (программы-примеры, статьи, видео);
- возможность использовать Ad Hoc для распространения приложений;
- возможность тестировать свои приложения на iPad, iPhone, iPod-touch;
- возможность получать техническую поддержку.
Обязателен ли Mac при разработке?
Вам обязательно понадобится Mac OS X , так как ни на какой другой платформе вы не сможете работать с iOS SDK. Есть много различных вариантов разработки iOS приложений, но минимум для сборки и загрузки приложения в AppStore вам будет необходима Mac OS X.
Mac mini сейчас вполне доступная вещь, хотя, конечно, всегда хочется большего, а там цены у Apple уже начинают кусаться.
Относительно двух других вариантов: я слышал отзывы людей, которые вполне счастливы с хакинтошем или с Mac OS X на VMWare, но и отрицательного опыта тоже накоплено достаточно. Тут все зависит от железа, прямоты рук и вашего желания.
В целом, если вы хотите разрабатывать под iPhone, операционная система препятствием стать не должна.
Инструменты,которые можно использовать для разработки.
Тут я коснусь только нескольких инструментов — после снятия Apple запрета на ненативные инструменты разработки, чуть ли не каждый день появляются новые IDE и фреймворки.
Нативные средства разработки:
Это прежде всего язык Objective-C и среда разработки Xcode (за компанию с Interface Builder, iPhone симулятором и другими приложениями из пакета разработчика). Еще можно писать на C и C++, но без Objective-C вам в некоторых моментах будет все-таки не обойтись.
Добавлю список литературы на русском языке для изучения Objective-C:
Программирование на Objective-C Стивена Кочана
Думаю начинать изучение надо имеенно с этой книги. Первые главы посвящены
Сила Objective-C 2.0. Эффективное программирование для iOS и OS X Мэтт Гэлловей
Книга - сборник практических советов, для программистов которые уже начали писать программы, но хотят повысить качество своего кода.
Objective-C. Программирование для Mac OS.X и iOS Скотт Кнастер, Вакар Малик, Марк Далримпл
Ничего хорошего или плохо сказать не могу. Просто если будет мало будет литературы, можно прочесть и её.
Become an Xcoder Русское издание Bert Altenberg, Alex Clarke, Philippe Mougin
Очень старое издание, но подойдет хорошо для тех кто, только начинает программировать. Единственное иллюстрации для Xcode тоже отличаются от современных.
Objective-C с нуля
Большая статья-справочник по читому Objective-C, кроме это на хабре есть и много других интересных статей.
Хочу уточнить про MonoTouch (ибо я ее пользователь)
* Называется она теперь Xamarin.iOS (MonoTouch считается устаревшим)
* Платить можно и ежемесячно по подписке $25/месяц, при этом можно установить Xamarin Studio на два компьютера
* Для разработке под iOS нужен Mac/Hackintosh, тк весь UI создается с помощью Xcode (даже если редактировать внутри Xamarin Studio)
Уточнение про Hackintosh: не смотря на то что Hackintosh можно установить на AMD процессор, Xcode может работать только на процессорах Intel (хотя в интернете есть пару статей от тех кто смог, но видимо там нужен такой огромный бубен :) , что большого распространения это не получило).
При создании приложения и игры, разработчики часто пользуются дополнительными библиотеками чтобы сократить объем работы. Почти всё открытые библиотеки храняться github. Но из-за большого количества репозиториев часто бывает сложно найти нужную вещь.
Cocoa controls список визуальных элементов, с легким поиском и большим набором фильтров. Достаточно часто обновляется, каждый день два-три новых элмента.
Сocoa pods удобный пакетный менеджер. Один раз его настроив можно все остальные библиотеки добавлять в проект одной строкой. Легко обновляется и решает зависимости в библиотеках, уставнавливая сразу всё нужные.
Вы заметили, что на большинстве фото и во многих офисах программисты в основном используют MacBook? Причин этого выбора множество, но одна из главных — ноутбуки Apple имеют консоль Bash и схожи с Linux, при этом предлагают плавный и приятный интерфейс. Но раз техника Apple настолько удобна для этих целей, может, программировать возможно и на iPad? На обычном планшете вряд ли, а вот на iPad Pro — вполне. Не зря же Apple позиционирует свой «профессиональный» планшет в качестве замены компьютера. Тем более в iPadOS 13 появилась поддержка мыши, трекпада и клавиатуры, что сразу же закрывает вопрос, связанный с удобством управления.
При желании iPad Pro можно приспособить к программированию
iPad Pro действительно интересный вариант, если вас интересует программирование на планшете. Во-первых, Apple предлагает версию iPad Pro с 12,9-дюймовым экраном, что делает его неплохой альтернативой 13-дюймовых MacBook и тем более 12-дюймового MacBook. Во-вторых, компания постоянно улучшает возможности своего планшета, и iPadOS 14 добавит еще больше новых функций, которые могут помочь программистам.
Как программировать на iPad
В своем нынешнем виде iPad (даже Pro) не может заменить полноценную десктопную систему от Apple, однако есть несколько способов сделать iPadOS более функциональной. Сейчас есть довольно много онлайн-сервисов, где можно писать код, не устанавливая что-либо на устройство. Например, repl.it, платформа для программирования онлайн. Она без проблем откроется на почти 13-дюймовом экране планшета.
Кроме того, в магазине приложений App Store можно скачать различные редакторы со встроенными компиляторами для каких-нибудь скриптовых языков типа Python. Конечно, заняться полноценной разработкой в таком случае вряд ли получится, но для небольших задач эти приложения можно использовать.
Интерфейс приложения Pyto
Вариант для продвинутых пользователей — использование SSH-подключения для разработки на удалённой системе с помощью терминала вроде Blink, который можно кастомизировать. Blink поддерживает Bluetooth-клавиатуры и имеет неплохую интеграцию с текстовыми редакторами Vim и Emacs. К тому же он поддерживает Face ID.
Можно приобрести виртуальный облачный сервер на каким-либо сервисе, подключиться к нему по SSH и затем настроить окружение, установив необходимые пакеты. Это может быть PHP, Python, NodeJS, MySQL, Nginx — все то, что необходимо для работы сервера. После этого настраиваем Git, создаём папку проекта и начинаем кодить на вашем iPad.
С Blink Shell кодить на iPad гораздо проще
А вот для разработки мобильных приложений вариант с iPad, вероятно, не самый лучший, так как необходимо работать с использованием удаленного рабочего стола, что не так удобно.
На каком языке лучше программировать?
Как мы выяснили, использовать на iPad Pro можно большинство существующих языков программирования, в том числе Python, для которого уже есть редакторы со встроенными компиляторами в App Store. Для начинающих пользователей Python вообще отличный язык программирования. У него простой синтаксис, и кодить на нем — почти как писать обычные предложения на английском языке. С его помощью можно не только написать сайт, сделать лендинг с анимацией или многостраничный сайт со сложной структурой. На Python можно писать мобильные или десктопные приложения.
В условиях пандемии многие начали изучать программирование, поскольку эта профессия позволяет выполнять большинство задач из дома. Научиться программированию можно несколькими способами, в том числе Apple предлагает приложение Swift Playgrounds для обучения азам языка Swift. Но он подойдет в основном только для написания мобильных приложений. Python в этом плане более функциональный, а обучиться ему можно так же легко — например, в онлайн-школе SkillFactory, где есть специальный курс «Fullstack веб-разработчик на Python».
Вырезка из программы обучения Python в SkillFactory
Школа отличается понятными курсами, хорошими менторами и большой практической базой. Вы получите персонального ментора, и к концу обучения у вас в портфолио будет два сайта, которые полностью разработаны вами.
А там уже программирование на iPad Pro будет разве что вашим хобби, поскольку серьезные задачи, безусловно, лучше делать на MacBook. Впрочем, с заработной платой разработчика на Python можно за небольшой срок купить себе топовый 16-дюймовый MacBook Pro.
Читайте также: