Pull to refresh

Разработка приложений на платформе Samsung Bada — Часть 2

Development of mobile applications *


Привет всем, эта статья — продолжение первой части. Я расскажу о своем опыте работы с Samsung Apps Store, какие могут быть затруднения и каков сухой остаток. Сначала будет теория, затем практика. Я постарался дать как можно больше советов, которые могут пригодиться.

Размещение в Samsung Apps Store

Напомню процесс размещения приложения в магазине. Мы создаем профиль приложения на developer.bada.com, затем создаем соответствующий профиль на seller.samsungapps.com. Думаю, особых затруднений не возникнет, если вам знаком английский. Очень понравилось то, что для любой страны можно задавать локализованное описание, ценовую политику и даже название.

В конце необходимо выгрузить пакет (package, архив с приложением) на сервер. Роботы проведут первичный анализ пакета — целостность, правильную структуру, манифест. Затем начинается многоступенчатый процесс принятия в магазин (approval). Относитесь к нему как к сдаче экзамена строгому преподавателю — терпение и труд все перетрут, и халявы ждать не стоит. Процедура состоит из 5 уровней:
  • Registration — Complete status. Проверяются данные профиля, описания, скриншоты, в общем — все, что заявлено о приложении. Обычно проблемы не возникают.
  • Approval — Pre-test. Глубокий анализ пакета. Проводится автоматически. К примеру, действительно проверяются используемые привилегии. Я провалил эту проверку лишь однажды, при самой первой сдаче.
  • Approval — Device Test. Поверхностная прогонка приложения на Bada-устройстве. Осуществляется вручную по списку тестов. Корейцы проверяют, запускается ли вообще приложение, нажимаются ли кнопки, что будет, если нажать «не туда» или перевернуть устройство в горизонтальное положение. Я также провалил эту проверку лишь однажды.
  • Approval — Content Review. Ручная проверка содержания. В профиле указывается, для какого возраста будет распространяться приложение. Существуют четкие правила, по которым следует определять целевой возраст. Критерии: порно, грязный язык, насилие и тому подобное. Также проверяются авторские права. У меня с этим проблем не возникло — я сдавал мирную утилиту.
  • Approval — Confirmation. Самое интересное — эвристическая проверка. Нет никаких правил. На этом этапе проверяется, делает ли ваше приложение то, что вы заявили. Оценивается качество и смысл. Последний уровень — самый сложный. Я два раза пытался его пройти, и лишь на третий мне улыбнулась удача.
После прохождения всех 5 уровней приложение наконец-то размещается в магазине. На втором, третьем и четвертом в случае неудачи корейцы пришлют подробный список всех ошибок, с комментариями и (device test) видео (!). После исправления ошибок по списку вас должны пропустить дальше. Однако на последнем уровне сдача будет проходить до первой критической ошибки. Вам также предоставят подробный отчет и видео. После исправления ошибки вполне вероятно, что найдут еще одну.

Типичная длительность одной попытки — две недели. Оптимистичный прогноз — одна неделя. Pre-test не занимает дольше дня, основное время уходит на device test и confirmation. После каждого отказа необходимо создать манифест с большей версией на developer.bada.com и использовать его при следующей сборке, иначе робот не позволит выгрузить пакет. Самый неприятный момент — во время сдачи нельзя выгрузить новую версию. Это означает, что перед тем как выгрузить обновленный пакет, необходимо десять раз проверить, все ли исправлено, не появилось ли новых ошибок и т.д. Потом будет слишком поздно.

Советы

Итак, у нас есть Bada приложение, которое мы протестировали на симуляторе и убедились, что оно работает. Первое правило, основанное на горьком опыте: следующий обязательный шаг — проверка приложения на железе. При каждом выходе новой версии. Каждый раз — полностью. Если железа нет, то можно воспользоваться Samsung RTL (о нем я уже писал). Для меня это был единственный выход. Не очень удобно и имеет существенные ограничения, но для статических вещей работает.

Во время тестирования на устройстве уделяйте внимания даже самым незначительным мелочам, надписям, кнопкам, размерам, повороту экрана. Не забудьте поменять splash screen с дефолтного на свой — это нарушение авторских прав Samsung. Следует применить методы белого и черного ящика. Это сэкономит вам время на device test.

После всестороннего тестирования необходимо тщательно пересмотреть код вручную и определить используемые привилегии. Встроенный анализ никуда не годен — в моем коде из трех привилегий он не определил ни одну. Этот шаг требует отличного знания системы привилегий наизусть, т.к. порой даже самые очевидные вызовы API оказываются под виртуальным замком. Это пригодится на pre-test.

Моя success story

Мое приложение — BadaArchiver. Страница в магазине. Это 7-Zip, собранный под Bada, обернутый в GUI. Сразу скажу, если бы не мой богатый опыт работы с 7-Zip, вряд ли мне удалось портировать код, и не стоит кидаться составлять мне конкуренцию в надежде быстрого порта. Очень много мелочей, ведомых лишь Игорю Павлову и мне. Извините, увлекся.
Я сдал приложение с пятой попытки и потратил на это 2 месяца. Я начинал абсолютным новичком, с небольшим опытом разработки на другие мобильные платформы.
Первая попытка не удалась на pre-test из-за привилегий. Я просмотрел Osp::Media::Image::DecodeN(), которая требует привилегию Osp::Media IMAGE.
Вторая попытка не удалась изза splash screen по умолчанию и непредусмотренного поворота экрана. Заставку я сменил, а поворот просто запретил.
Третья и четвертая попытка не удались изза серьезных недочетов. Например, я не предусмотрел действий в случае, если карта памяти не вставлена.

Примеры видео от корейцев, в которых они показывают ошибки:





Я назначил цену своего творения 10$ по всему миру, кроме России. Землякам поставил 100 рублей, добавил описание на русском и разрешил платить по SMS. За два дня продаж я заработал около 200$. Удивился, когда это обнаружил. Приятно. Через пару недель смогу предоставить статистику.

Итог

Разрабатывать Bada приложения можно. Процедура одобрения не самая быстрая, но максимально прозрачная и справедливая. Много деталей, которые слабо освещены в официальной документации, но все проблемы решаемы. Деньги платят, рынок активно развивается.
Пожалуй, мне больше нечего добавить. Как всегда, рад ответить на ваши вопросы.
Tags:
Hubs:
Total votes 49: ↑43 and ↓6 +37
Views 2.9K
Comments Comments 22