porting

Портирование iOS и Android – когда 2 ОС лучше одной?

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

Отвечая на вопрос из заголовка… На первый взгляд всё просто — конечно, лучше сразу выпускать проект и для Android, и для iPhone, и захватить ещё и Windows Phone. И не “когда”, а сразу. Но как только начинается просчёт бюджета, выясняется, что выйти разом на несколько операционных систем это не только эффектно, но и не дёшево. Ниже обсудим зачем всё же стоит стремиться покрыть несколько платформ. И если не сразу, то постепенно – через портирование.

Android и iOS — это два разных мира. Не секрет, что по итогам 2015 года Android лидирует по количеству установок приложений, но при этом Apple стабильный лидер по монетизации.

Большинство пользователей Android не используют устройства на iOS — и наоборот. Если на азиатском рынке доля устройств на Android выше, то в Америке лидирует iOS. Агрессивные маркетинговые позиции Apple и Google превратили два типа программного обеспечения практически в две философии, два типа мышления…

Что это значит тех кто готовит к запуску свой проект?

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

Кроме того, известны истории проектов, которые не были популярны на одной ОС, но, после грамотного портирования, пришлись по вкусу пользователям другой платформы. Настоящий успех и быстрый рост аудитории, какой, например, наблюдается сейчас у Periscope, нельзя спрогнозировать. Но можно быть уверенным в одном — выходя только на одну платформу, вы автоматически говорите миллионам пользователей «нет», просто не оставляя им шанса оценить ваш труд.

Ответ на вопрос «Портировать ли своё мобильное приложение?» прост. Ваш продукт должен быть представлен на разных ОС, иначе вы искусственно сокращаете свою аудиторию, сокращая тем самым и свой заработок.

Какие есть нюансы?

Приняв решение о портировании, легко попасть в ловушку. У вас есть готовый продукт для одной платформы. Он хорош, и вам кажется, что всё уже готово. Но это не так. Вам предстоит пройти весь путь разработки практически заново — поменять дизайн, переписать программный код и протестировать работоспособность. Конечно, это не то же самое, что создать приложение с нуля. Ключевые моменты дизайна, функционал, даже основные технические решения могут быть перенесены безболезненно.

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

Не стесняйтесь ориентироваться на пример других компаний. Ваш клиент наверняка использует Facebook, VK или Instagram. Откройте их приложения на разных ОС, посмотрите, чем они отличаются. Использование чужого опыта поможет вам осознать задачу и подобрать оптимальное решение.

Безусловно, придумав приложение и запустив его для одной платформы, вы уже сделали большую часть работы. Но то, что вам ещё предстоит сделать, не менее важно — хотя, в общем случае, менее объёмно. Давайте рассмотрим процесс портирования приложения подробнее.

Что делать по шагам?

Не важно, состоялся ли уже релиз для одной операционной системы, или вы планируете выйти сразу на две платформы — первое, что вам нужно сделать, это сформулировать техническое задание. Мы уже обсудили, что, фактически, вы делаете не одно, а два приложения. Даже если вы уже есть на рынке и ваш продукт успешен, использовать старое техническое задание при разработке под новую платформу не вполне правильно.

Подготовка:

Выходя на новую платформу, вы получаете шанс переосмыслить то, как работает ваше приложение. В первую очередь это возможность переосмыслить юзабилити, убрать функции, которые оказались не нужны пользователям. При этом можно и добавить что-то новое. Возможно, исследуя рынок и анализируя деятельность конкурентов, вы придумали функцию, которой нет в уже вышедшем приложении. Хочется её протестировать, но вы боитесь резкой реакции старых пользователей на нововведения.

Тут вам тоже поможет портирование — новая аудитория не имеет конкретных ожиданий от вашего приложения. А значит, все отличия от версии, функционирующей на другой ОС, будут восприниматься независимо. Аудитория будет реагировать на все обновления просто как на набор функций нового приложения, а не как на внезапные изменения в любимом продукте.

Кроме этого, при составлении технического задания под вторую операционную систему, вам придётся учесть и чисто технические моменты. Часть функционала и программных решений просто невозможно оставить такими же при портировании, и вам придётся решить, как видоизменить те из них, от которых вы не хотите отказываться.

Дизайн:

Как мы уже говорили, отдельную масштабную работу нужно проделать над визуальной составляющей.

Портирование — это повод ещё раз обобщить и проанализировать пользовательский опыт. Если вы уже вышли на одну платформу, прочитайте всю обратную связь. Если ещё нет — посмотрите на опыт ближайших конкурентов. Ваше приложение, каким бы оно ни было, решает проблемы пользователя и/или вызывает у него эмоциональную реакцию. Поймите, какие решения в рамках новой операционной системы работают на получение того пользовательского опыта, который является для вас целевым. Возможно, вам придётся полностью переосмыслить дизайн. Но лучше потратить на это время на этапе портирования, чем потом кусать локти и выпускать к мобильному приложению десятки обновлений.

По большому счёту у вас есть один шанс заинтересовать пользователя вашим продуктом. И подходить к этому шансу стоит ответственно.

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

Вы не сможете протестировать и адаптировать ваше приложение ко всем работающим на Android устройствам сразу.

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

Разработка:

Сформировав техническое задание и адаптировав дизайн, вы приступите к разработке. В случае, если вы разрабатываете приложение сразу под две платформы, вам просто понадобится две команды. Здесь не кроется неожиданных сложностей и ловушек: необходимо разработать два продукта, имеющих почти одинаковый функционал, схожий дизайн и использующих одни и те же ключевые паттерны. Глава отдела разработки должен разбираться в том, как устроена программная «кухня» Android и iOS одновременно. Это позволит ему руководить двумя процессами параллельно и успешно привести вас к релизу.

Но давайте рассмотрим вариант, таящий в себе больше подводных камней. Вы портируете существующее приложение с одной платформы на другую. Сейчас Интернет пестрит статьями на тему того, как сразу сделать ваш код «кроссплатформенным». Результатом этой тенденции вместо увеличения количества качественных приложений становится увеличение количества «приложений-поделок», не стабильных и не приспособленных к манере поведения пользователя в рамках операционной системы.

Может показаться, что программистам предстоит сделать просто «перевод» кода с одного языка на другой. Но это не так. Вы разработали отдельный дизайн, составили отдельное техническое задание — и разработка тоже будет представлять собой отдельный процесс.

Опираясь на глобальные математические модели и программные паттерны, разработчикам предстоит пройти свой путь. Есть в этом и свои плюсы. Если команда программистов, по тем или иным причинам, полностью сменилась — для портирования это не будет большой потерей. Ключевые точки можно вычленить и из чужого кода, а конкретные решения в любом случае придётся писать с нуля.

Приложения на Android и iOS по-разному взаимодействуют с серверами, различными способами организована даже работа их API. Работая с iOS предпочтительней использовать JSON, в то время как Android лучше обменивается данными в формате XML. В процессе донастройки части приложения, осуществляющей back-end, различий между двумя ОС ещё больше — и то, насколько это будет критично для вас, зависит исключительно от масштабов и специфики вашего продукта.

Помимо различных операционных систем, существуют и различные версии одной и той же ОС. Вам необходимо поддерживать несколько — по очевидным причинам. Здесь максимально дружелюбны к разработчикам Apple. За время разработки вашего приложения сменится одна, максимум — две версии iOS. Нужно следить за обновлениями, но нет смысла стараться поддерживать всё. Если вы начали разработку во времена iOS 8, то к релизу нужно поддерживать iOS 7, 8 и 9, не закапываясь глубоко в историю.  

В случае же с Android обновления операционной системы выходят чаще. Мы рекомендуем сосредоточиться на наиболее популярной версии этой операционной системы (на данный момент — 4.4). Но нужно поддерживать и хотя бы две более ранние версий, и, конечно, все, вышедшие после. Таким образом, если вы начинаете разработку под Android прямо сейчас, вам нужно будет учесть версии 4.2, 4.4, 5.0, 6.0 и готовящуюся к релизу 7.0. Кроме того, не стоит забывать об обилии разрешений экрана и индивидуальных настроек пользовательского интерфейса от различных производителей.

Тестирование:

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

Когда разработка кипит полным ходом и кажется, что финал близок, очень хочется расслабиться. Вы продумали всё — от дизайна до того, на каких конкретно устройствах будет точно протестирован билд для Google. Команда давно собрана, маркетологи спланировали продвижение, а отдел разработки только что исправил последний критический баг. Но — увы — время почивать на лаврах ещё не наступило.

Как быть дальше?

До тех пор, пока ваш проект не увидят пользователи, любые прогнозы останутся просто прогнозами. Да, привлечение экспертов и серьёзный анализ рынка помогут вам лучше рассчитать приблизительные риски и ROI. Но нужно заранее приготовиться к тому, что в момент релиза ваша работа не закончится, а только начнётся.

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

После релиза проект ждёт доработка — и это абсолютно нормально. Приготовьтесь встретить этот этап развития проекта во всеоружии.

Завершая статью, хочется посоветовать вам быть внимательными к подводным камням разработки приложения на несколько ОС и сохранять целеустремлённость. Проектов, ставших успешными сразу, единицы. Создание или портирование своего мобильного приложения — это трудоемкий путь. Вступайте на него смело, и пусть все препятствия покажутся вам незначительными.

Оставайтесь с нами — мы продолжим рассказывать про разработку мобильных приложений. А пока вы можете прочитать, как мобильные приложения приносят свои владельцам прибыль и на что следует обратить внимание при разработке маркетинговой стратегии.

Если у вас остались вопросы — просто напишите нам. Мы с радостью обсудим с вами любые идеи, ответим на все вопросы, и, конечно, учтём рекомендации по содержанию блога!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *