Обновить

О некоторых проблемах разработки для платформы bada

Разработка веб-сайтов
17 мая 2010 года стартовал конкурс Samsung bada Developer Challenge, который включал в себя Global Developer Challenge и Local Developer Challenge. Локальный конкурс проходил в том числе и в России.
image
В целом, про SDK на хабре уже хорошо написано здесь habrahabr.ru/blogs/development/101196 и здесь habrahabr.ru/blogs/mobiledev/105451.

Добавим от себя небольшой вклад...

Приложения (а особенно комплексные графические приложения) под баду писать сложно. Поэтому не стоит их ждать под платформу в большом количестве. Хотя платформа динамично развивается, и есть надежда, что, например, в bada 2.0 ситуация улучшится.
Отсутствует нормальный фреймворк для GUI (единственный нормальный путь сделать что-то графически сложное – рисовать самому по пикселям в OnDraw). Визуальный редактор GUI есть, но существует скорее для галочки, очень ограничен и подходит лишь для уровня Hello World.
Ручное управление памятью, причем если на симуляторе еще возможно отслеживание, сколько ваша программа потребляет памяти в процессе работы, то на реальном железе это не работает (о чем честно предупреждается в документации). Как-то понять, насколько мало приложение течет, можно лишь по вторичным признакам, когда, например, телефон начинает ругаться, что ему не хватает ресурсов, и пора бы все позакрывать. Таким образом, главный метод – внимательное отношение к коду и голова.

После того, как со всеми этими проблемами как-то получилось сладить и выдать продукт для первого апплоада через неделю ожидания мы получили репорт на 5 багов. К трем из них прилагались видео ролики, к одному просто скриншоты. Три из них были очевидными, и были быстро исправлены, а вот остальные два…

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

Второй: если во время записи аудио-заметки (есть у нас функция записи заметки и прикрепления ее к точке на карте) срабатывает будильник, то он срабатывает без звука.

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

Кстати, оказалось, что и нативный рекордер работает по такой же схеме. Есть подозрение, что программисты, разрабатывавшие операционную систему, резонно подумали: если в текущий момент идет запись на микрофон, то инициирование будильника приведет к “забиванию” звукового потока! И выключили на это время будильник. Возможно, это правильно.

Борьба с этими багами отняла у нас ещё некоторое время, но, всё-таки, мы разобрались и с этим.
И вот так, решая проблему за проблемой, мы сделали приложение, которое не просто было признано успешным, но и выиграло главный приз bada Developer Challenge в России! Теперь, заняв первое место на конкурсе, мы предоставляем возможность пользователям попробовать и оценить наш продукт.

PS. Пока не закончился глобальный конкурс, приложение недоступно в Samsung Store, но Вы можете попробовать аналогичные приложения на других платформах (пока без карты).
Теги:samsungbadasdkchallengeразработка
Хабы: Разработка веб-сайтов
Рейтинг +12
Количество просмотров 735 Добавить в закладки 7
Комментарии
Комментарии 36

Похожие публикации

Лучшие публикации за сутки