Country not specified
Unknown website Share

Apps4all

Страна: -
Город: -
Был онлайн: -
О себе:
 
08-07-2016, 11:36
Apps4all

Портирование мобильных игр с помощью Marmalade Juice

Введение

Что такое "портирование" в рамках экосистемы мобильных приложений? Это процесс создания приложений для более чем одной платформы – чаще всего имеется в виду более чем одна операционная система, иногда более чем один вид устройства, к примеру, портирование со смартфона на планшет.

Этот доклад освещает актуальные реалии портирования мобильных приложений – экономику, риски, возможности коммерческой прибыли. Здесь вы познакомитесь с новым уникальным продуктом Marmalade Juice, главной задачей которого является трансформировать способ портирования контента с iOS на другие платформы, включая Android.

Портирование набирает обороты

Зачем нам нужно портирование? Ответ предельно прост: потому что всегда будет больше, чем одна операционная система и больше, чем один вид устройства. В то время как iOS доминировала в экосистеме мобильных приложений по количеству приложений, поставкам устройств и доходам магазинов на протяжении нескольких лет, Android сейчас выбился в лидеры по всем параметрам, кроме последнего. Windows Phone и BlackBerry расположились посередине, занимая значительную долю рынка, по крайней мере для разработчиков, которые хотят максимально увеличить сферу влияния. Даже в рамках iOS экосистемы, разработчики iPhone, iPad, а теперь и iPad Mini вынуждены конкурировать между собой. И если верить предсказаниям, вскоре к этому мы сможем добавить ТВ экран.

Таким образом, большинство разработчиков нацелено минимум на iOS и Android и минимум на смартфоны и планшеты. А это значит, что большинство разработчиков будет заниматься каким-то видом портирования. Заглядывая наперед, едва ли iOS или Android прекратят быть привлекательной платформой для разработчиков в ближайшее время. Более вероятно, что Windows Phone, BlackBerry или, возможно, один из продуктов с операционной системой Linux (к примеру, Tizen) завоюют внимание разработчиков, создав "третью платформу" для портирования.

Бюджет на портирование

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

Что же из себя представляют эти изначальные бюджеты на разработку? Marmalade исследовал данный вопрос и классифицирует их следующим образом:

  • AAA (Премиум приложения)
    Крупные организации с профессиональными разработчиками, команда из 4-12 человек на 4-12 месяцев. Бюджет варьируется от 160 000 до $1.4 миллиардов.
  • AA (Стандартные приложения)
    Небольшие организации с профессиональными разработчиками, команда из 2-3 человек на 1-3 месяца. Бюджет варьируется от $12 000 до $90 000. Средний бюджет $50 000
  • A (Бюджетные приложения)
    Зачастую один разработчик, работа на 1-2 месяца. Средний бюджет $3 000

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

Marmalade провел свой подобный анализ, проверив типичный образец (100 приложений) самых популярных магазинов (App Store, Google Play, Amazon Appstore, BlackBerry World, Windows Phone 8 Store) и выяснил, что результаты по этим категориям необычайно схожи, независимо от магазина:

  • AAA (Премиум приложения) – менее 1%, главным образом 0.1% всех приложений в магазинах
  • AA (Стандартные приложения) – 30% всех приложений в магазинах
  • A (Бюджетные приложения) – 70% всех приложений в магазинах

Так какая же часть вышеупомянутых бюджетов необходима для портирования на другую платформу?

Цена портирования может быть разделена на две части:

1. Конвертация исходного кода между разными языками программирования и API. К примеру, портирование с Objective-C на C++, или с C++ на Java.

2. Оптимизация под определенные целевые платформы и устройства. К примеру, изменение кода пользовательского интерфейса и свойств с разрешающей способности iOS экрана на более полный набор разрешающей способности Android экрана; либо изменение кода биллинга с App Store биллинга на Google Play биллинг.

Баланс каждого бюджета портирования касательно этих двух частей существенно отличается. Это зависит от типового источника и целевых платформ; как "кросс-платформа" может быть оригинальным исходным кодом; какие характеристики исходной версии можно модифицировать либо удалять из целевой версии и т.д. Тем не менее, опыт анализа многих проектов по портированию c iOS на Android позволил Marmalade вывести основное правило:

  • AAA (Премиум приложения)
    Конверсия = 40% от оригинального бюджета, Оптимизация = 15% от оригинального бюджета
  • AA (Стандартные приложения)
    Конверсия = 60% от оригинального бюджета, Оптимизация = 30% от оригинального бюджета
  • A (Бюджетные приложения)
    Конверсия = 80% от оригинального бюджета, Оптимизация = 50% от оригинального бюджета

Так, для "Премиум приложений", полная цена портирования равна больше половины изначального бюджета на разработку приложения. Для "Стандартных приложений" цена поднимается практически до цены оригинального приложения. Для "Бюджетных приложений" цена портирования с iOS на Android может превысить цену за оригиальную разработку, потому что кодовая база относительно мала, цена конверсии и оптимизации на большее количество устройств может стать губительной для изначальных трудозатрат.

Существующие подходы к портированию

Главным образом выделяют два подхода к портированию:

1. "Кросс-платформенный" подход – строится на множестве внутренних целевых платформ, при использовании кросс-платформенных инструментов или просто с помощью кросс-платформенных методологий разработки. При этом подходе может понадобиться немного больше предварительных инвестиций (на планирование, инструменты и т.д.), но в конечном итоге это приводит к значительной экономии по всему набору целевых устройств.

Возвращаясь к вопросу соотношения конверсии/оптимизации детально рассмотренного выше, кросс-платформенный подход по большому счету исключает необходимость конверсии, которая в противном случае может составлять 70% от бюджета портирования.

2. "Одиночный вместо серийного" платформенный подход – изначально строится для одной платформы, потом портируется под дополнительные цели, методом перебора. Зачастую это обозназает изначальное создание под iOS, релиз на App Store, в дальнейшем – портирование на Android для релиза на Google Play и, возможно, Amazon Appstore и других магазинах Android.

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

Касательно соотношения конверсии/оптимизации, о котором уже упоминалось выше, обычно "Одиночный вместо серийного" подход требует дополнительной перекодировки с изначальной платформы на последующие целевые платформы, что может составить до 70% полного бюджета портирования.

Сравнительная характеристика App Store

Давайте конкретизируем. Сегодня большинство всех мобильных портирований попадает под одну категорию: портирование с iOS на Android. Почему так? Многие разработчики выбирают "Одиночный вместо серийного" платформенный подход, будучи изначально нацелены на iOS и App Store исключительно. Это можно объяснить двумя причинами:

  • Во-первых, App Store все еще выигрывает у Google Play по общим доходам, со счетом 3:15, как минимум. Т.е. App Store воспринимается как наиболее прибыльная платформа (тем не менее доходы Google Play растут в 10 раз быстрее, чем доходы App Store). Если ваше приложение не может принести доход на App Store, нет смысла выводить его на другие площадки, не так ли? Marmalade, пожалуй, не согласится с этим: существует множество возможностей для разработчиков, которые хотят тратить время на выход в такие магазины, как BlackBerry World и Windows Phone Store. Тем не менее, майндсет большинства разработчиков – изначальная нацеленность на iOS.
  • Во-вторых, фокусировка на iOS упрощает платформенную фрагментацию. Это значительный подвиг – ставить за цель многочисленные OS платформы и разные виды устройств, по меньшей мере без хороших инструментов и технологии. Поэтому сведение всего этого к одной OS платформе, определенному набору разрешающих способностей экрана станет большим облегчением для многих разработчиков.

По этим причинам большинство разработчиков в первую очередь выбирают разработку для iOS. И если вы уже пишете для iOS, ваш выбор по умолчанию – использование инструментов Apple. Так, много разработчиков прекращают использование Xcode, отдавая предпочтение Objective-C и Apple API.

И именно здесь заложена одна из основных на сегодня особенностей портирования мобильных приложений. Как язык программирования, Objective-C, разумеется, отождествляется с Apple. Никакой другой нативный мобильный SDK не поддерживает Objective-C на уровне исходного кода. Противопоставьте это таким языкам, как C++ и JavaScript, которые портируются почти на все нативные мобильные SDK.

Подобным образом фреймворки Cocoa Touch являются собственностью Apple и, конечно, не поддерживаются другими нативными мобильными SDK. Опять же, сравните это с API, как C standard libraries, the Standard Template Library, Boost, PhoneGap, jQuery и др., которые легко портируются на другие платформы.

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

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

Возвращаяь к вопросу экономики портирования, если взять "стандартное приложение" с изначальным бюджетом на разработку в $50 000 для iOS, цена перекодирования на Android может быть 60% от этой суммы, т.е. $30 000. Если 30% из всех 750,000 приложений на App Store относятся к категории стандартных, и если предположить, что 1/5 из них нужно портировать на Android и написаны они на Objective-C, то общая конверсия перекодировки превысит $1 миллиард. И это цена, которая не представляет никакой ценности для конечного потребителя.

Открытие экосистемы iOS

Marmalade Juice был спроектирован и разработан в ответ на эти реалии. Marmalade Juice позволяет разработчикам писать вначале под iOS, фокусируясь на Android и дополнительные платформы, без необходимости преобразования кодовой базы с Objective-C на Apple API. Таким образом трудоемкий этап кодирования исключен и разработчики могут продолжать работать над единственной кодовой базой в уже привычном им Apple пространстве для разработок.

1.png
Как работает Marmalade Juice

Marmalade Juice работает благодаря расширению языковой поддержки Marmalade с C++ на Objective-C, и благодаря расширению Marmalade"s API со стандартного C API на Apple API. База кода iOS может быть перекомпилирована с помощью наборов инструментов Marmalade, и уже тогда, с помощью инструментов Marmalade установлена на Android , BlackBerry 10, Mac и определенные виды smart TV.

Заглядывая наперед, мы надеемся расширить Marmalade Juice с тем, чтобы он включал все платформы, поддерживающие Marmalade, включая Windows Phone 8.

Вначале Marmalade Juice конвертирует iOS Xcode Project File в Marmalade Juice Project File, который также может быть загружен на Xcode. Marmalade Juice Xcode project file позволяет оригинальным исходным данным (включая Objective-C, C++ и C) перекомпилироваться независимо от iOS SDK.

Там, где есть ссылка на iOS API, Marmalade Juice предоставляет свою собственную реализацию. Эта реализация использует существующие free open source projects, такие как Cocotron и Chameleon, модифицированные для работы с кодовыми базами iOS. Ни на одном из этапов компоненты iOS SDK не используются напрямую.

На этапе iOS API implementations используеся существующая Marmalade OS Abstraction. Это значит, что приложение компилируется в большей мере OS-агностическим способом, делая в конечном счете возможной установку на разных платформах, в том числе Android.

Последний шаг позволяет существующим Marmalade"s existing deployment tools создать набор по инсталяции стандартного приложения для желаемой цели, к примеру, APK file для Android. На любом из этапов, проект можно предварительно просмотреть на симуляторе рабочего стола.

Любой специальный исходный код для iOS (к примеру, сигналы iAd API), могут быть выгружены в эквивалентный кросс-платформенный код или специальный код для целевой платформы, к примеру Android. Сам по себе Marmalade предоставляет много кросс-платформенных API (например, cross-platform store billing API). Пользовательский интерфейс iOS свойств (XIB и NIB файлы) с легкостью может быть преобразован, чтобы поддерживать более широкий спектр разрешений экрана.

Пример: Как Marmalade Juice помогает Pocket Gems

Pocket Gems является очень успешным разработчиком мобильных игр премиум класса, находится в Сан Франциско. Их наиболее продавающеюся игру - "Tap Paradise Cove" нередко можно увидеть в ТОП-20 платных на Apple App Store.

2.jpg

Pocket Gems уже пользовались услугами Marmalade для разработки "с нуля" кросс-платформенных игр и были рады стать одними из первых, кто воспользуется Marmalade Juice. Немаловажно, что Pocket Gems хотели получить решение, которое бы позволило им приблизиться к одновременным обновлениям приложений игры, как на iOS, так и на Android версии, что позволило бы их iOS разработчикам оставаться в привычной рабочей атмосфере (Xcode, Objective-C, Apple API).

В 2012, Pocket Gems работали с Marmalade по портированию "Tap Paradise Cove" на Android, используя Marmalade Juice. Были внесены некоторые модификации по UI части, чтобы обеспечить более широкий выбор резолюций экрана Android, также был изменен биллинг код для поддержки Google Play и Amazon Appstore. После этапа дебаггинга, вся кодовая база iOS могла компилироваться и работать без Marmalade Juice.

"Tap Paradise Cove" была успешна запущена на Google Play и Amazon в середине декабря 2012, и уже спустя месяц достигла более 1 миллиона скачиваний, сохраняя звездный рейтинг 4+.

Заключение

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

По оценкам Marmalade свыше $1 миллиарда затрат на портирование с iOS экосистемы приложений может быть сэкономлено. Marmalade Juice дет к стабильной экономии в ценах и времени выхода на рынок, позволяя разработчикам улучшить качество, предоставляемое потребителю.

 
разработка
iOS
Android
статья
0 0 0

Чтобы оставлять комментарии вам необходимо зарегистрироваться