О некоторых проблемах разработки для платформы 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, но Вы можете попробовать аналогичные приложения на других платформах (пока без карты).

    Средняя зарплата в IT

    113 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 5 253 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

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

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

      +9
      Борьба с этими багами отняла у нас ещё некоторое время, но, всё-таки, мы разобрались и с этим.

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

        По поводу GPS, при последующем сабмите мы написали, что эту ситуацию повторить не можем, однако сделали определение координат «более надёжным» (хотя фактически почти ничего не сделали).

        По поводу проблемы с будильником был создан баг в саппорте разработчиков бады, и они быстро подтвердили, да баг есть, будем думать. При сабмите мы сослались на этот баг, и написали, что ничего поделать не можем.

        Так что тут главное — communication skills.
        –3
        Девушка симпатичная по ссылке вашей. Покажите, лучше, еще ее фоток, а?
          +2
          Девушку не отдадим.
          Кстати, в жизни она еще лучше, чем на этих фотках.
            –3
            Ну спасибо, блин. Жалко, да? (:
              +3
              дрочер)
          +1
          >Отсутствует нормальный фреймворк для GUI (единственный нормальный путь сделать что-то графически сложное – рисовать самому по пикселям в OnDraw). Визуальный редактор GUI есть, но существует скорее для галочки, очень ограничен и подходит лишь для уровня Hello World.

          Помню спорил с кем-то из представителей Самсунга здесь на Хабре, что sdk без нормального позиционирования элементов gui использовать невозможно. Основной довод «заставить разработчиков вручную вылизывать гуй для каждого устройства». А в итоге все опускается до уровня «сделай сам».
            +1
            Со времени написания тех моих двух статей утекло много времени… Намучался я с тех пор с бадой мама не горюй. Аппрув порой бессмысленен и беспощаден. Например, в бада 1.1 (новые вейвы, которые еще Ксения Собчак рекламировала) нельзя копировать файлы в места, где пользователь мог бы их увидеть (/Media, etc.) если файлы «не в поддерживаемом формате». Это означает, что по сути кроме картинок да видео с музыкой ничего из недр /Home родить нельзя. И хоть бы кто в документации об этом написал. В итоге 2 недели потерянного времени впустую (суть приложения была как раз в этом).
            Когда у приложения кончается память, оно может даже не сообщить об этом и просто тихо сдохнуть. И не дай бог во время интенсивного использования процессора нажать на какую-нибудь кнопку телефона — виснет намертво. При аппруве на кнопку обязательно нажмут и радостно снимут видео, как они на нее нажали.
            Вот найду время, напишу «часть 3» про мучения
              0
              я читал где то на форуме, человек жаловался, что в 1.1 при загрузке и интренетов в /media все пнг автоматически скейлились в два раза (а потом еще раз в два раза, когда он их рисовал на экране).

              но мы под 1.0 только писали, эти проблемы у нас впереди:)
                0
                то есть в /home конечно
                0
                Вот могли же взять EFL и не изобретать глючной лисапед. А теперь вот они за GTK3 взялись, совсем странные ребята Оо
            • НЛО прилетело и опубликовало эту надпись здесь
                0
                А Вы бы что посоветовали?
                • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    Хорошо, считайте, что здесь только 30%. 70% которые выкинуты, оказались примерно там. Поищите завтра в любителях гаджетов.
              • НЛО прилетело и опубликовало эту надпись здесь
                +1
                Кстати GUI вы таки сами рисуете, или всё таки на стандартных компонентах построили?
                  +1
                  кнопки, табы, плеер, элементы списка — кастомные контролы

                  карта, сам список — стандартные
                    0
                    ясно. я просто думал, что раскопали недокументированные контролы :-)
                  0
                  Вопрос!

                  Вот эти контролы вы как сделали? Хотел тоже сделанть как в их клендаре, но не нашел вроде такого в доках.

                  my.jetscreenshot.com/13/20101125-txlt-14kb

                  Ну а по поводу отладки — одно раздражает — нельзя в watches ничего кроме простых типов смотреть. приходиться писать в лог :-(

                  Сам framework — вполне нормален, легко писать свои контролы.
                    0
                    Стринги можно смотреть в watches… Остальное к сожалению да :(
                      0
                      ответил выше
                      эти контролы собственные
                      наследуем от Controls::Panel
                      и в OnDraw, битмапами…
                      0
                      Не совсем проблем разработки, но все же. Есть samsung wave и как-то решил посмотреть что из себя представляет sdk под bada. Зарегистрировался на сайте но так и не смог скачать. В течение двух дней ставил на закачку раз десять, всегда обрывалась на 50-80%. Специально даже поставил free download manager (обычно все качаю через торренты) — не помогло (похоже что сервер не поддерживает докачку). В итоге забил. Странно, канал не такой уж и слабый — 1024.
                        0
                        странно, не было проблем

                        качала много раз разные версии

                        какую версию качали?
                          0
                          Обе что были на тот момент. Вроде 1.0.0 и 1.0.1b (про вторую с номер не уверен, помню точно что бета).
                            0
                            Может в «час пик» попали… Вообще от качества канала многое зависит. У меня проблем с этим не возникало
                        0
                        Это только мне кажется, что на заглавной картинке телефон обнимает некий червяк?
                          0
                          Зачем заминусовали человека?
                          Бренд-имидж действительно неоднозначный. Не очень ясно, на какую целевую группу он ориентирован. Возможно, в Корее это все как-то связано с какими-то неведомыми европейцам культурными особенностями.
                          Мне, например, как Коту Тузле, все это напоминает зеленых мышек. И приведения.
                          +2
                          Bada по сравнению с Android API проигрывает на порядок. напомнило API для Symbian — монструозно и неудобно
                            0
                            Я вот пишу приложение и ничего — все нормально. все претензии только к IDE в режиме отладки.

                            Да API беднее чем андроид и iOS — но и ему лет-то сколько. Наполнится.
                            0
                            Надо было под заголовком сразу написать
                            «bada — плохая платформа»
                              0
                              С чего бы это? Как правильно написано выше — молодая, со всеми вытекающими тараканами.

                              Другое дело, Samsung вступил в конкуренцию с Андроидом и Айфонами, и непонятно, насколько это было целесообразно с его стороны, хватит ли им ресурсов.
                                –1
                                С того, что современная платформа должна удовлетворять требованиям пользователей и разработчиков, позволяя разрабатывать мириады устойчивых прикладных приложений тесно взаимодействующих с различными апи телефона, чего достигнуть не удастся,
                                если память надо контролировать вручную, и платформа для разработки сырая
                                  0
                                  apple и google тоже поначалу выбросили на рынок сырые платформы. Сравните android 1.6 и 2.2 или iOS 4 и например 2.0…

                                  Нельзя предвидеть всё и выпустить продукт, который не надо дорабатывать и улучшать, если только это не echo «Hello, world!»

                                  Самсунг идет проторенной, но тернистой дорожкой. И у них получается. bada 1.2 готова, 2.0 на подходе в начале 2011. Допиливание SDK тоже продвигается. Так что жалобы пользователей и разработчиков обоснованы, но они должны в первую очередь доходить до самсунга, чтобы последний учитывал пожелания своих клиентов.

                                  Еще один момент. У самса есть наверняка кое-какие обязательства перед операторами сотовой связи. Мы часто забываем, что в европе и америке покупка контракта (а не телефона) очень популярна, и именно она в глобальном масштабе влияет на продажи сотовых телефонов. Поэтому некоторые неумные люди считают, что сделав такой стратегический шаг, как выпуск своей платформы, производитель просто обязан пропустить в свой магаз ПО всё, что связано с VoIP. Skype выпустил версию для айфона в марте 2009, для андроида — 5 октября этого года, то есть через два года после появления самой платформы. Не думаю, что дело в том, что они два года своё приложение отладить не могли…

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

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

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