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



    Привет всем, эта статья — продолжение первой части. Я расскажу о своем опыте работы с 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 приложения можно. Процедура одобрения не самая быстрая, но максимально прозрачная и справедливая. Много деталей, которые слабо освещены в официальной документации, но все проблемы решаемы. Деньги платят, рынок активно развивается.
    Пожалуй, мне больше нечего добавить. Как всегда, рад ответить на ваши вопросы.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 22

      0
      200$ за 2 дня за архиватор — вполне не плохо. публикуйте дальнейшую статистику — интересно.
        0
        очень интересно… надо будет еще раз пересмотреть свое время и попробовать себя в bada.

        дополнительная статистика будет очень интересна. кстати, а цену можно менять на свое приложение? допустим сегодня продавать бесплатно для фидбека и рекламы, а завтра установить желаемый ценник.
          +1
          Наши программы в топселлинге UK висят разброс до 40го места — но я бы не сказал что все весело.
          Продажи практически никакие, в Эпл сторе — повеселее как-то продеться.
            +1
            процесс принятия (approval) выглядит жестче чем в apple store, а как ведь хаяли их за это в свое время :)
            в случае с apple я понятия не имею о том сколько у них этапов проверки и как они проводятся, отослал бинарник и ждешь ответа
            тут накрутили еще больше и это, я считаю, правильно
            будет меньше хлама и сырых приложений
              +1
              90% приложений под баду в их магазине — сырой хлам, к несчастью.
              0
              Спасибо автору за опыт :)
                0
                Очень инетерсно почитать хоть я и не программист.

                Не знал, что по рез-тату тестирования можно получить видео. Я как-то иначе себе это представлял — отфутболили и сиди себе сам ищи почему. Или написали причину, но не не думал, что видео снимают.

                Огорчило графическое исполнение. Сам интерфейс, понятно, стандартен, но иконка приложения и иконки внутри него очень плохие. Можно же взять легальные бесплатные иконки хотя бы. Уверен, что очень многое зависит от иконки приложения, особенно, когда оно не единственное на сторе.
                  0
                  Я же программист в первую очередь, а потом уже дизайнер. Основные силы были брошены на порт кода.
                  Кстати иконки я брал отсюда: icons.mysitemyway.com/category/glowing-purple-neon-icons
                  Лицензия позволяет использовать их везде, а сам бы я низачто не нарисовал.
                  0
                  А лицензия на 7-Zip не конфликтует с Samsung Apps Store?
                    0
                    Лицензия 7-Zip есть Public Domain. Т.е. что хотим, то и воротим
                      0
                      Спасибо, понятно. Думал, что 7-Zip под GPL распространяется.
                    0
                    2 месяца — только на паблишинг в магазине?
                    А сколько ушло на само портирование?
                      0
                      На паблишинг. Так трудно сказать, я же неплохо разбирался до этого в коде. Приблизительно несколько месяцев. Непосредственно работа заняла месяц.
                        0
                        А еще куда-нибудь портировать планируете?
                          0
                          В общем-то на баде начинается и заканчивается список актуальных мобильных платформ, допускающих разработку на C++. Возможно, когда я поближе познакомлюсь с новыми Symbian а-ля ^4 и MeeGo, портирую на них.
                            0
                            Скажем так, в bade очень много общего, я бы даже сказал слишком, с Symbian C++. И то и другое — суперсет C++.
                            На Symb'е также есть библиотеки POSIX и еще пара других, допускающие разработку на чистом C/C++.
                            А ждать Symbian^4 не вижу смысла — писать под него UI придется на Qt. Это можно делать уже и сейчас с S^1 и S^3.
                              0
                              Тогда Симбиан обречен быть с 7-Zip :-)
                              Кстати, в настоящее время я портирую OpenSSH/SSL (aka BadaSSH). В далеких планах замахнуться на SDL, и тогда все бабы будут моими
                      0
                      Как в итоге на данный момент с монетизацией — сколько получилось заработать, пошли ли покупки на спад, подъем или на одном уровне держатся?
                        0
                        Получилось заработать около 400$. Цены критикуют, говорят много слишком. Продажи идут на спад, буду предпринимать меры.
                          0
                          Спасибо

                          А как оттуда вообще выводить деньги?
                            0
                            При регистрации обязательно указывают номер счета в банке. Перечисляют на любой счет в долларах
                              0
                              В принципе — неплохо

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое