С какой платформы лучше начинать мобильную разработку? Обязательно ли сразу выпускаться под все платформы?

Начинающий разработчик задаёт вопрос: «Хочу начать разрабатывать под мобильные платформы. С чего лучше начать: с Android или iOS? Что перспективнее? Или обязательно сразу выпускать приложение и там и там?». Передаём слово экспертам.

Дмитрий Косткин, android-разработчик в AT Consulting

Начать лучше с той ОС, с которой вы уже работали — так вам будет легче создавать удобные для пользователей приложения. На эмуляторе крайне сложно смотреть, как сделаны другие приложения, а это вам в разработке также пригодится. Тестировать приложение нужно тоже на физическом устройстве, поскольку эмулятор не передаст всех ощущений (не слишком ли мелкие/крупные элементы управления, хорошо ли видно необходимую информацию и т.п.). Поэтому, если вы пользуетесь Android, выбирайте Android, а если iOS — выбирайте iOS. Кроме того, для разработки под iOS вам потребуется Mac, а для загрузки приложения на устройство (iPhone, iPad, iPod) даже в рамках тестирования потребуется оплатить членский взнос в программе разработчиков ($99).

С точки зрения перспективности обе платформы хороши и не потеряют актуальности в ближайшие несколько лет. Конкуренция также очень высока в обеих платформах, причем как в магазинах приложений (Google Play и App Store), так и на рынке труда. Отдавать предпочтение какой-либо платформе, опираясь на перспективность, не стоит.

Выпускать приложение сразу под обе ОС совсем необязательно. Большинство пользователей все же используют только одну ОС, поэтому мало кто заметит, что, например, приложение под Android есть, а под iOS нет. Поэтому нет смысла задерживать выпуск готового приложения под одну платформу, ожидая готовности приложения под другую.

И напоследок: не стоит забывать об еще одной платформе — Windows Phone. Эта платформа уверенно теснит и Android, и iOS, а конкуренция там пока не так высока.

Булат Гайфуллин, ведущий программист-разработчик Acronis

Смотря, какую себе ставить цель: если есть возможность, то можно выпускать приложения для двух платформ сразу; если бюджет лимитирован, то лучше начать с iOS. В таком случае вам будет проще начать зарабатывать, поскольку пользователи продукции Apple охотнее платят за хороший софт.

Стас Павлов, руководитель направления маркетинга для технических аудиторий в Microsoft Россия

Начинать лучше с разработки для того устройства, которым вы пользуетесь сами, если речь идёт именно о начале разработки. Чтобы была дополнительная мотивация и возможность протестировать всё на железе. Если речь идёт о коммерческой разработке, то сейчас наиболее перспективной мне видится концепция присутствия максимально на тех платформах, которые использует ваша целевая аудитория. Или, если ваша аудитория максимально широкая, может работать концепция присутствия на всех экранах: мобильный сайт, Android, iOS, Windows 10, Smart TV, Xbox и т.д.

Например, для e-commerce проекта, я бы скорее вложился в разработку мобильного сайта, который бы одинаково хорошо работал на всех платформах, включая телевизоры.

Александр Шитиков, руководитель отдела разработки в AGIMA.mobile

Лучше начинать свой путь с Android.

Во-первых, разработка на Android ощутимо дешевле. Для работы с iOS лучше иметь при себе полную линейку гаджетов от Apple. На старте позволить себе такой арсенал может далеко не каждый. Техники на Android значительно больше, и девайс можно подобрать даже из самой бюджетной ценовой категории.

Во-вторых, язык Java, на основе которого создаются приложения под Android, для новичков немного легче. Как показывает практика, в изучении Objective-C под iOS порог вхождения в профессиональное сообщество разработчиков несколько выше.

Оба направления перспективны и в равной степени делят лидирующую позицию на рынке. Поэтому смело начинайте с Android, позже смотрите в сторону iOS. Совсем необязательно выпускать приложения сразу для обеих платформ.

Дмитрий Сошников, технологический евангелист Microsoft, доцент МФТИ, МАИ, преподаватель детского лагеря JUNIO-R

Начать лучше с Windows, а точнее, с универсальных приложений для Windows 10 и Windows Mobile 10 — это проще. А потом переходить на другие платформы.

Кроме того, имеет смысл обратить внимание на кросс-платформенные решения, например Apache Cordova. Особенно, если вы немного занимались веб-разработкой – ведь Apache Cordova построена на базе HTML/Javascript.

Григорий Петров, технический евангелист VoxImplant

Если нет каких-то еще критериев, то выбор делается на основании имеющегося оборудования. Если есть макбук и айфон для разработки, то можно начать разрабатывать под iOS. Если же у вас Windows-компьютер и Android-телефон, то покупать технику Apple, только чтобы попробовать свои силы, будет не всегда удобно.

Митя Полищук, разработчик Яндекс.Такси

В.: С чего лучше начать, с Android или iOS?

О.: Ответ на вопрос во многом зависит от приложения, которое вы собираетесь писать.
Необходимо понять, кто ваш пользователь, на какую аудиторию планируется выпускать приложение и какими устройствами эта аудитория пользуется. С точки зрения инструментов разработки, на мой взгляд, и тут паритет найти трудно.
Android — это Java, среда разработки Android Studio (IntelliJ IDEA based). iOS — это ObjC и Swift, среды разработки XCode и AppCode (IntellJ IDEA based). Честно признаться, разработка под iOS с Swift + AppCode + iOS simulator очень сильно выиграет в скорости по сравнению с тулингом, который предоставляет Google. Но Apple проигрывает в своем AppStore, где ведет тоталитарную политику. На релиз всегда надо закладывать разработка + 2 недели на релиз в среднем. Если будет reject вашего приложения, то еще +неделя. Но и в Google Play стало чуть сложнее: ввели очень быструю премодерацию приложения, которая сейчас может занимать до 24 часов. Но все равно, разработка для Android будет дешевле, как по деньгам, так и по времени выкладки вашего приложения. $25 — единоразовый платеж за аккаунт разработчика в Google Play против ежегодной оплаты в размере $100 в AppStore.
С точки зрения отладки и багфикса, разработка под iOS очень сильно выигрывает у Android, т.к. предоставляет более детерминированное окружение. Это, по сути, одна ОС от одного производителя, и это всего лишь 4 разрешения экранов для iPhone и 2 разрешения для iPad (retina и non-retina). А Android дает гигантскую энтропию и сильную фрагментацию по версиям ОС, которые надо поддерживать при разработки для большего охвата аудитории. У каждого большого вендора Android-устройств по сути свой форк Android. Каждый норовит предоставить пользователю свой уникальный интерфейс, но для разработчика это выливается в гигантскую головную боль, которая выражается в том, что необходимо иметь порядка 20-30 устройств от этих всех вендоров и постоянном отлове различных специфичных багов для каждого из этих устройств + еще куча разрешений с различной плотностью, что в конечном итоге доставляет веселья не только разработчику, но и дизайнеру.

В.: Что перспективнее?

О.: Несмотря на дикую фрагментацию и много боли в Android разработке, доля Android-устройств на мировом мобильном рынке составляет более 80%. Гигантская аудитория. Гигантские объемы трафика. Если вы планируете делать бесплатное приложение с интересной рекламной стратегией, то однозначно самый перспективный рынок — это Android. Если у вас платное приложение или вы точно знаете, что большая часть аудитории пользуется iOS, то выбор за устройствами от яблочной компании. Однозначного ответа нет и быть не может.

В.: Или обязательно сразу выпускать приложение и там и там?

О.: Все упирается в ваш денежный бюджет и то, какими временными рамками вы располагаете. Конечно же, совсем необязательно выпускать приложение сразу под две платформы. Мой опыт показывает, что намного проще сделать сначала приложение под какую-то одну платформу, собрать все грабли, все проблемы по дизайну и UX. И уже на основе этого опыта захватывать новые рынки. Сейчас, зачастую большинство стартапов создает приложение под iOS, проверяет на нем свои гипотезы и уже потом, руководствуясь своим опытом, делает приложение под Android. Также хочу отметить, что у iOS и Android есть различия в подходе к дизайну, и если просто «вылизать» приложение под iPhone, а потом перенести на Android, то приложение получится несколько чужеродным.

Как вывод, повторюсь, что однозначного ответа на вопрос «А что же лучше?» — нет. После создания прототипа на одной из платформ и доказательства его жизнеспособности, вам будет необходимо делать экспансию вашего приложения на новые рынки, и для отработанной модели на одной из платформ жизненно необходимо иметь приложения под обе платформы.

Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на admin@tproger.ru, мы расскажем как это сделать.