нужен ли mac для разработки ios приложений
Как сделать приложение для iOS без макбука
Корпорация Apple регулярно радует свою многомиллионную армию поклонников очередными технологическими новинками, и мобильные устройства от «яблочного» производителя успешно реализуются по всему миру. Одной из главных особенностей устройств от Apple является собственная операционная система – iOS, причем для разных категорий товаров существуют свои адаптации этой ОС.
Благодаря популярности iPhone и других устройств американского гиганта, вырос спрос и на приложения, заточенные под них и iOS. Но в чем особенность механизма создания таких приложений, какие существуют ограничения и подводные камни?
Особенности разработки iOS приложений
Перед тем, как говорить о разработке программ под iOS, сразу оговоримся, что далее речь пойдет именно о нативных (родных) приложениях, позволяющих использовать весь функционал и производительность устройств Apple. Сравнительно недавно для написания кода успешно использовался язык программирования Objective-C, созданный еще в 80-х годах. Вместе с многими достоинствами (высокий уровень поддержки кода, полная совместимость с языком Swift, большая обучающая база и много справочной литературы) данный язык имеет и существенные недостатки, включая сложность освоения, сравнительно низкую производительность, низкий уровень читабельности кода.
Летом 2014 года компания Apple презентовала новый язык программирования Swift, который сейчас и можно назвать основным для написания программ под iOS. Этот язык также является объектно-ориентированным, может похвастаться повышенной безопасностью, поддержкой динамических библиотек, легкой читаемостью кода и отличной скоростью. Соответственно, для создания приложения под устройства Apple необходимо знать хотя бы один из этих двух языков. Кроме этого, необходимо понимать принципы оформления и размещения элементов программ, разбираться в последних тенденциях в мире мобильных разработок и уметь правильно продвигать созданный продукт. Жизненно необходимо и наличие Mac, без которого разрабатывать iOS-приложения крайне проблематично, о чем поговорим чуть позже.
Среда разработки
Огромную помощь в процессе создания приложений разработчикам оказывают среды разработки – Integrated Development Environmetn или просто IDE. Корпорация Apple в свое время выпустила довольно удобную, практичную и, что немаловажно, сравнительно простую в освоении IDE Xcode. Ее можно скачать из App Store, причем бесплатно. Разработчик получает прекрасный редактор с большим набором полезных инструментов. Результат трудов можно протестировать с помощью встроенного симулятора без необходимости установки приложения на то или иное устройство. При этом разработчик может собирать программу сразу на устройство с iOS.
В Xcode предусмотрен отладчик, позволяющий находить ошибки в верстке, всевозможные баги и устранять их. Swift Playground позволяет проверять на ошибки отдельные алгоритмы или даже отдельные строчки кода без необходимости создания всего приложения. Для работы с картами в данной IDE предусмотрена функция имитации геолокации с возможностью добавления городов и использования уже «вшитых». Отдельного внимания заслуживает приложение Interface Builder, интегрированное в Xcode. IB включает в себя немало полезных инструментов, упрощающих процесс создания графических интерфейсов и делающих верстку более наглядной. И это далеко не весь инструментарий Xcode, с которым работают разработчики.
Хакинтош или Mac?
Разрабатывать приложения для богатой линейки устройств под управлением iOS можно только на компьютерах от Apple с установленной macOS. На такие устройства можно установить IDE Xcode, тогда как на компьютеры с другими системами этого сделать невозможно. Поэтому всем тем, кто хочет создавать iOS-приложения, необходимо позаботиться о наличии MacBook в любых его вариациях. Однако продукция Apple стоит традиционно дорого и далеко не все разработчики, особенно новички, могут позволить себе подобный компьютер. Один из выходов в сложившейся ситуации – установка виртуальной машины на обычный ПК, которая будет имитировать работу macOS и позволит разрабатывать необходимые программы.
Еще одним популярным способом обхода «яблочной» политики относительно установки macOS только на свою продукцию является создание так называемого хакинтоша. Само название красноречиво говорит нам, что это «хакнутый» или взломанный вариант Макинтоша. То есть, хакинтошем может быть любой компьютер не от компании Apple, на котором установлена операционная система macOS. Однако создать свой хакинтош не так просто, поскольку это идет вразрез с правообладателем и требует от специалиста высокой квалификации и мастерства. Да, после вложения некоторой суммы денег, изучения многочисленных инструкций в сети и экспериментов можно создать свой хакинтош, но рассматривать его можно только в качестве временного заменителя оригинального Mac для знакомства с системой и процессом разработки программ.
Необходимо ли наличие устройства Apple?
При разработке приложений на iOS на Mac, виртуальной машине или хакинтоше с использованием IDE Xcode программисты имеют возможность тестировать свои разработки на симуляторе устройств. Данная среда разработки позволяет выбирать необходимое устройство из перечня продукции Apple, что довольно удобно. Благодаря этому можно обойтись даже без реального устройства, однако для большего комфорта и лучшей оценки результата трудов опытные мастера рекомендуют не ограничиваться лишь виртуальным симулятором и проверять работу приложений вживую. К тому же, в симуляторе существует целый ряд ограничений, включая отсутствие акселерометра и камеры, поэтому обойтись без реального iOS-устройства будет точно непросто.
В mobile-студии KitApp не только прекрасно знают обо всех особенностях разработки приложений для iOS, но и успешно применяют свои навыки в течение многих лет на практике, создавая приложения разного уровня сложности. Наши мастера постоянно совершенствуют свои знания и изучают новинки в индустрии, поэтому клиенты могут быть на все 100% уверены в том, что созданное у нас приложение будет полностью соответствовать всем современным вызовам и требованиям.
Для разработки iOS-приложений больше не нужен Mac
Для того чтобы разрабатывать приложения для iOS, раньше обязательно был необходим компьютер Mac или соответствующая виртуальная машина, запущенная на компьютере Windows. Однако на прошедшей на днях конференции Build 2017 Microsoft решила это изменить и представила инструмент для создания приложений под iPhone и iPad на Windows.
Новое приложение называется Xamarin Live Player и позволяет разрабатывать iOS-приложения прямо на Windows 10. Предполагается, что сначала разработчики будут осуществлять первичную деятельность в Xamarin, а затем производить отладку при помощи Visual Studio. При этом им не понадобится компьютер Mac с приложением Xcode.
Очевидно, новый инструмент позволит значительно увеличить количество iOS-разработчиков, которые, например, не могли позволить себе покупку компьютера Mac. Правда, для публикации приложения в App Store все равно потребуется компьютер от Apple. Кроме того, есть мнение, что разработанные с помощью Xamarin приложения будут работать медленнее, чем таковые с Xcode.
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
Лонгриды для вас
Чтобы заинтересовать ребенка или легче уложить его спать, простого чтения сказок уже недостаточно. Но есть приложение, позволяющее сделать его героем произведения и рассказать сказку по новому. А стоит оно дешевле детской книги из магазина.
Один из авторов AppleInsider.ru бросал курить с помощью приложения на iPhone и в статье рассказывает о своем опыте.
Комиссия App Store представляет большую опасность для всех нас. Apple может начать облагать ей не только цифровые товары, но и вполне себе физические и осязаемые, не говоря уже об услугах. С этим нужно что-то делать
Вы снова издеваетесь с такими названиями статьи? То, что вы описали, существует уже лет 7, если не больше, с самых первых релизов iPhone SDK. Заголовок должен быть примерно такой: Visual Studio интегрирует в себя Xamarin (в прошлом году Microsoft приобрела эту компанию, существует она давно).
Более того, ровно шесть лет назад, 12 мая 2011 года у вас на сайте была статья посвященная таким библиотекам, только Xamarin тогда еще назывался MonoTouch.
Вот на вскидку список библиотек, с помощью которых можно писать приложения для iOS без macOS:
— Corona
— Marmalade SDK
— Uniti3d
— Appcelerator Titanium
— Dragonfire SDK
— PhoneGap
— Xamarin
Какие-то, возможно, устарели, давно не слежу за этим.
Вы бы лучше сделали акцент что это полные костыли, за исключением очень качественных игровых движком, лицензия на которые стоит денег. Кстати, для публикации так же можно воспользоваться сторонними сервисами.
iOS-разработка: способы быстрого старта
Когда мы задумываемся о разработке под iOS, чаще всего в голове возникает пятизначная сумма входного порога: как минимум нужно iOS-устройство на последней версии ОС и Mac. Если вы уже пишете под iOS, вам наверняка известны альтернативные варианты, а если нет — посмотрите, вдруг пригодится? Приведенный ниже обзорный пост — как раз на этот случай. Под катом вы найдете довольно простую информацию, так что если хотите хардкорчика, вам не сюда!
Путь от Apple
Путь настоящего джедая тру iOS-разработчика лежит в плоскости следования идеям Apple. Свежий SDK, свежая же версия Xcode, документация от Apple по технологиям Apple, форумы разработчиков на технологиях Apple – если вдуматься, а что ещё нужно для создания отличного приложения, кроме толики времени? Польза очевидна: разработка идет самым близким к платформе и к идеологии Apple образом, с использованием всех новинок, предлагаемых Apple в текущем (и будущих) iOS API, так что постоянное изучение нового приносят больше хорошего, чем плохого.
Новинки Apple озвучивает регулярно. На последней конференции для разработчиков WWDC 2017 были показан новый SDK и новая версия среды для разработке Xcode. Список изменений довольно обширен (тем более в преддверии выхода iOS 11):
Xcode
Текстовый редактор в Xcode переписали на Swift, сделав его надёжнее и быстрее. Можно ли это почувствовать? Да! Подсветка синтаксиса работает (почти) моментально, открытие и навигация по файлу теперь без заметных задержек, а сообщения об ошибках больше не перекрывают исходный код. В beta все выглядит очень приятно, посмотрим, что нас ждет в релизе!
В Xcode появилась поддержка Markdown. Разметку можно использовать при документировании кода, и функциональность эта, на первый взгляд, косметическая, довольно заметно облегчает чтение кода, особенно чужого:
(Источник)
Редактор, кстати, научился подсвечивать блоки кода, удобно при изучении большого объёма кода.
(Источник)
Ещё одной важной фичей Xcode 9 стал рефакторинг кода на Swift, Objective-C, Objective-C++, C. Рефакторинг позволяет переименовывать классы, переменные, а также дробить методы на менее крупные.
(Источник)
Из менее выделяющихся, но тем не менее полезных фич, можно назвать:
Swift 4
Это изменение стоит особняком. Все, кто уже пережил чувство «в Swift 2 было, в Swift 3 пропало?!», могут ощутить дежавю, но сейчас ожидаются изменения, скорее, в лучшую сторону (впрочем, замечу вполголоса, когда это было не так, по мысли авторов-то?)
«Гибридное», «не совсем нативное» приложение
Уточню: термин, вынесенный в заголовок, даже по сути своей не очень верен. Приложения, которые мы получим в результате, самые что ни на есть нативные в смысле того, что они исполняются на той же iOS, на том же железе, что и любое другое ПО для iOS, просто сам процесс разработки позволяет использовать не только предложенные Apple технологии и языки программирования. Если человек умеет писать, скажем, на JavaScript, и не хочет разбираться в Swift, то Apple ему ничем не поможет (кроме, конечно, хорошего учебника по Swift), а вот вариант написать, условно говоря, приложение на JavaScript, а потом запустить его на iOS, как если бы оно было написано в Xcode (получив, таким образом, некий «гибридный» вариант) существует, и вполне востребован.
Ionic
Ionic – один из самых известных фреймворков для кросс-платформенной разработки. Он построен на базе Apache Cordova, что обеспечивает доступ к различным функциям устройства, таким как геолокация, push-уведомления, камера и прочим, и позволяет разработчикам создавать приложения для iOS и Android с веб-технологиями, такими как HTML, CSS и JavaScript.
В дополнение к фреймворку, Ionic может похвастаться целой экосистемой, облегчающей разработчикам-новичкам процесс изучения и вхождения. Ionic Cloud предоставляет разработчикам различные инструменты для управления, развертывания и масштабирования приложений на Ionic. Ionic Creator представляет собой визуальный редактор, который позволяет разработчикам быстро прототипировать и создавать мобильные приложения методом drag&drop. Наконец, существует Ionic View — бесплатное приложение для iOS и Android, которое позволяет разработчикам легко делиться своим Ionic-приложением с пользователями, тестерами и клиентами без необходимости развертывать приложение в магазине приложений конкретной мобильной платформы. Разработчики просто отправляют пользователям приглашение из приложения Ionic View, и как только оно принято, пользователь может загрузить и запустить конкретное приложение в своей копии Ionic View — так, как если бы приложение было установлено на его телефоне из магазина приложений.
Увы, есть и «ложка дегтя». Приложения, написанные с использованием Ionic, используют WebView, в результате мы получаем самое натуральное веб-приложение, со своей обычной (обычно не самой впечатляющей) скоростью работы. За счет этого трудно считать его подходящим для создания тяжелых приложений, таких, как игры, либо программы с интенсивным использованием графики. Разработка с Ionic требует хороших знаний Angular, по крайней мере при желании «выжать» из фреймворка как можно больше.
PhoneGap / Cordova
PhoneGap исходно был создан компанией Nitobi. В 2011 году, Adobe приобретает Nitobi и бренд PhoneGap. Adobe затем передает одну из версий PhoneGap (назвав её Cordova), в Apache Foundation, оставив себе бренд PhoneGap и его как продукт. В результате Cordova можно рассматривать как движок, стоящий под капотом PhoneGap (а также некоторе другие гибридные фреймворки). PhoneGap, в свою очередь, добавляет к возможностям Cordova свои, дополнительные, функции.
PhoneGap во многих отношениях очень похож на Ionic. Он так же дает разработчикам возможность создавать кросс-платформенные приложения при помощи веб-технологий, и так же построен на базе Apache Codova. Однако PhoneGap не привязан к какому-то определенному Javascript-фреймворку, поэтому разработчики имеют бОльший выбор, на чем и как они будут создавать свои приложения. У PhoneGap имеется десктопное приложение, мобильное приложение, и облачный сервис под названием PhoneGap Build, который позволяет собирать и деплоить приложение.
Увы, подобно Ionic, PhoneGap использует WebView (который в iOS работает довольно медленно), так что со скоростью у приложений, созданных на базе этого фреймворка, дела не всегда обстоят блестяще.
Xamarin
Основанная в 2011 году компания Xamarin, выпускающая семейство продуктов Xamarin через пять лет своего существования была купена компанией Microsoft. Сегодня продукты Xamarin представляют на рынке очень интересный подход к разработке кросс-платформенных мобильных приложений: приложения пишутся на C#, затем Xamarin компилирует его в нативное приложение для iOS, либо для Android, при этом в качестве базовой технологии Xamarin использует Mono, чем кросс-платформенность и обеспечивается. Разработчики Xamarin говорят, что полученные на выходе приложения используют нативное API платформы, для которой приложение компилируется, так что поведение полученного приложения никак не отличается от поведения любого другого приложения на этой же платформе. Разработку, кстати, можно вести при помощи Visual Studio (что совсем неудивительно).
Несмотря на то, что большая часть кода проекта может быть без изменений использована на каждой из поддерживаемых мобильных платформ, тем не менее, некоторые фрагменты потребуется писать специально для версии приложения под iOS и под Android.
React Native
Проект React Native появился на свет в Facebook, и построен на основе React. Наше JS-приложение крутится на встроенном в iOS движке: на нем выполняется код и производятся все манипуляции с нативными виджетами ОС. React Native сопоставим с Xamarin, при этом приложения, созданные с помощью React Native, очень похожи на нативные приложения iOS и Android (потому что они собственно, оперируют нативными UI-элементами).
Синтаксис React довольно прост, что облегчает изучение фреймворка, а Стандартная библиотека UI-компонентов в поставке React Native содержит много полезных компонентов, однако самым большим отличием React Native от других JavaScript-фреймворков называют возможность использования кода на на Objective-C и Swift (чаще для для улучшения производительности или более тонкого взаимодействия с мобильной платформой). На практике это означает, что разработчики могут использовать существующие собственные библиотеки в своих приложениях React Native.
Веб, чистый веб
Часто недооцениваемая возможность использовать веб-страницу как отдельное приложение тем не менее к нашим услугам: если нет особых проблем со связью, а приложение обладает несложной функциональностью (вывод таблицы данных, или вывод постоянно обновляемого списка), то нет причин не воспользоваться старым добрым веб-просмотром информации с сервера.
Разница между открытием той же страницы в браузере будет в оформлении экрана: элементы управления браузера (в т.ч. и адресная строка) будут спрятаны, а содержимое страницы окажется выведенным на весь экран устройства. Из неудобств нас, конечно, ждет довольно долгое время открывания такого «приложения» (что связано со скоростью ответа удаленного веб-сервера), но для ряда применений это, думаю, вовсе не проблема.
Разработка приложений для мобильных платформ имеет свой подвох: поначалу думаешь, что дело не стоит усилий и времени, затем твоим приложением начинают пользоваться люди, причем пользоваться, в буквальном смысле нося его с собой, и вот тут ты понимаешь, что дело оказалось глубже, и затянуло тебя больше, чем ты мог бы себе представить.
Если вы любите мобильную разработку так же, как любим ее мы, рекомендую обратить внимание на следующие доклады Mobius 2017 Moscow (да-да, в ноябре Мобиус едет в Москву, если вы еще не знали):
Что нужно знать перед тем, как писать под iOS
«Под Windows можно писать для iPhone?»
Анонимный разработчик
«Мы не планируем публиковаться в AppStore, это ведь возможно? И еще мы хотим версию под Android. »
Анонимный заказчик
Как заработать?
Тут все очень просто/сложно. Пишете приложение, выкладываете в AppStore, выставляете цену, получаете деньги от довольных покупателей. 30% процентов от цены забирает Apple. Есть шанс как захватить мир, так и попусту потратить свое время — все зависит от вас.
Верхняя планка цены реальна — в AppStore было уже как минимум два приложения за тысячу долларов:
«BarMax CA» — приложение для студентов-юристов;
«I Am Rich» — приложение, показывающее изображение красного, видимо, драгоценного камня. Из магазина оно было убрано через день после публикации, но 8 счастливчиков все-таки успели его приобрести. Сейчас оно вернулось в AppStore уже с ценой в 10 долларов, одной из фич указано, что приложение продается всего за 1/100 от оригинальной цены.
Реклама в приложениях — iAd
Тут тоже все достаточно прозрачно: размещаете в своем приложении рекламный баннер, Apple делится с вами выручкой за показ рекламы и за клики по баннеру. На хабре уже писали об этом сервисе и даже рассказывали как добавлять баннеры в свои приложения. Остается добавить, что стоимость рекламы 1 цент — за показ, 2 доллара — за клик. Разработчик получает 60 процентов от вырученной суммы.
Торговля в приложении — In-App Purchases
Apple предоставляет возможность торговать вам в своих приложениях различными житейскими ценностями — ресурсами в играх, доступом к заблокированным секциям приложений и так далее. Отличная статья на эту тему есть на хабре — iPhone разработка: Интегрируем In-App Purchases. Да, Apple забирает себе положенные 30 процентов выручки.
Сервис подписок
Тем, кто в детстве выписывал «Мурзилку», должна быть понятна суть этого варианта заработка. Обычная подписка на журналы, газеты, музыку, видео… Издатель устанавливает цену, Apple берет себе стандартные 30 процентов. Сервис был запущен 15 февраля 2011 года, подробности можно почитать в официальном пресс-релизе.
Разработка приложений под заказ
Тут все тоже предельно просто — клиент платит деньги, вы разрабатываете приложение. Обычно это имиджевые, корпоративные приложения или представление каких-либо сервисов клиента для iOS.
Последний путь заработка наиболее прост в плане оплаты работы. Так как все происходит по обычной схеме, без финансовых отношений с Apple (кроме платы за регистрацию). В остальных случаях необходимо озаботиться вопросами получения заработанных денег. Комментарии с положительным/отрицательным опытом по данному вопросу приветствуются.
Как зарегистрироваться в iOS Developer Program
При регистрации вы можете регистрироваться либо как компания, либо как индивидуальные разработчик.
При регистрации компании нужно быть готовыми предоставить определенные документы.
Для Российских компаний нужно предоставить выписку из Единого Государственного Реестра Юридических Лиц (ЕГРЮЛ) и ее перевод. Название компании при регистрации должно совпадать с названием в выписке. В этой статье можно подробнее узнать о регистрации компании — Регистрация приложения в AppStore — мы сделали это!
Обычно вся процедура регистрации занимает 3-4 недели.
Куда проще регистрироваться индивидуальным разработчикам — после заполнения всех форм на сайте попросят распечатать, заполнить документ-заявку (требуются паспортные данные, данные карточки, адрес проживания и т.д.) и отослать факсом в Apple. После рассмотрения этого документа Apple списывает с вашего счета 99 долларов и вы становитесь зарегистрированным разработчиком. Вся процедура занимает 3-4 дня. Если у вас возникли проблемы с поиском факса, то можно воспользоваться каким-нибудь online-ресурсом, например — www.myfax.com/free
Обязательно ли нужен Mac?
Вам обязательно понадобится Mac OS X, так как ни на какой другой платформе вы не сможете работать с iOS SDK. Есть много различных вариантов разработки iOS приложений, но минимум для сборки и загрузки приложения в AppStore вам будет необходима Mac OS X. Да, последнее время появляются различные сервисы, которые и пирожки за вас есть будут предлагают постить приложения за вас и различные другие услуги, и о них на хабре тоже писали. Но, на мой взгляд, все это пока несерьезно и пользоваться услугами подобных контор, при разработке сколько-нибудь значимого приложения не стоит. Хотя, конечно, все зависит от задачи, если вы сможете зарабатывать, используя подобные сервисы, то почему бы и нет:)
Разница между web и native приложениями
Хочу пояснить разницу между native и web приложениями для iPhone/iPad, пока мы не перешли к инструментам разработки. Первые распространяются через AppStore (или in-house приложения), вторые — всего лишь web-сайт или его часть, специальным образом сконфигурированный под iPhone.
Доступные web-приложения можно посмотреть тут — www.apple.com/webapps
Для публикации своего web-приложения в этом каталоге необходима регистрация в iOS Developer Program. При публикации вас просят указать url приложения и некоторую дополнительную информацию (сайт компании, загрузить иконку и так далее).
Как понимаете, каких-то особенных, отличных от обычных инструментов web-разработчика для написания таких приложений не нужно, хотя сейчас развелось довольно много фреймворков, позволяющих упростить создание подобных приложений и сделать их больше похожими на native приложения.
Среди пользователей iДевайсов web приложения особенной популярностью не пользуются, а многие, по крайней мере в России, даже и не подозревают о них. Так что дальше будем рассматривать только вопросы разработки нативных приложений.
Какие инструменты можно использовать для разработки?
Тут я коснусь только нескольких инструментов — после снятия Apple запрета на ненативные инструменты разработки, чуть ли не каждый день появляются новые IDE и фреймворки.
Нативные средства разработки
MonoTouch
Flash
Adobe Flash Pro CS5 поддерживает разработку под iPhone. Другое дело, что пока этот путь основательно не разработан и определенная сырость в подходе присутствует.
Titanium & PhoneGap
Два фреймворка-хэдлайнера в мобильной кроссплатформенной разработке. Краткое описание можно найти в этой статье. Позволяют использовать javascript и HTML5 для разработки native приложений сразу под несколько платформ, в том числе и iOS.
Unity3D
Для себя я пока выбираю Xcode и Objective-C, но пристально смотрю в сторону кроссплатформенной разработки.
Еще одно небольшое замечание, если вы решитесь разрабатывать приложения под заказ
Deadline
Срок сдачи работы не всегда зависит от вас. Перед появлением в AppStore приложение проходит ревью, которое длится минимум 5 дней. Если приложение было отклонено по каким-либо причинам, то, после внесения изменений, необходимо будет отстоять всю очередь снова. Так что обещать клиенту выпустить приложение в AppStore к определенной дате, если у вас нет в запасе двух-трех недель, — поступок довольно безрассудный. Лучше обещайте показать приложение на устройстве к оговоренному сроку и объясните ситуацию с ревью. Для установки приложения на устройство нужно знать его UDID. То есть, даже если вы работаете удаленно, то вы всегда можете собрать приложение и отправить заказчику, чтобы он посмотрел его на своем девайсе.