LG.BALUKATION's Weblog

Ничего, это тоже кое-что… А при желании из него можно сделать что угодно

RIM BlackBerry

Posted by LG.BALUKATION на 2010/05/01

Не так давно я окончил очередной проект на работе и мне стало нечего там делать, совсем. Т. к. кроме меня в «бездельники» почти одновременно попал ещё один человек, нам решили вверить небольшую часть другого проекта. Команда уже некоторое время портировала игру на JavaME и всё вроде бы было даже готово, но вот требовалась ещё поддержка пяти сабжевых устройств — именно эту часть нам и поручили.

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

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

И знаете, мне очень понравилось. В основе плаформы лежит обычная JavaME (MIDP/CLDC), но она была существенно расширена. Фактически, это даже стало напоминать какую-нить полноценную среду, где можно много всяких разных и интересных штук делать, не особо-то изобретая велосипеды. Впрочем есть и свои «странности», кудаж без этого.

Так-как наша игра была уже практически готова в версии для JavaME, оставалось просто дописать в ней некоторые фирменные блекберривские штуки и на этом по-идее было всё. То есть, когда нет времени переписывать всё полностью на блекберри, можно просто конвертировать обычно jme-приложение и поправить найденные проблемы (правда это хорошо лишь для игр, потому как они обычно не используют всякие стандартные формы/кнопки и т п, заменяя их своими красивостями — классические GUI лучше полностью переделывать на blackberry). Насколько я помню потребовалось просто реализовать несколько листенеров (для клавиш, глобальных событий, системных штук и сенсоров).

С клавиатурой тут забавный нюанс — вроде бы она работает как обычно, но часть штук можно отловить только с помощью отдельного интерфейса (всякие «системные» кнопки вроде тех же меню или изменения уровня громкости). Кстати схема управления тут весьма обширная тема — многие устройство обладают тачскрином и с этим всё ещё куда не шло, но вот остальные всегда оснащены QWERTY-клавиатурой и, насколько я понял, разные издатели по-разному определяют управление на них. А ещё там часто есть трекболл и колёсико прокрутки ;-)

Прочие листенеры отлавливают уйму событий, тут даже принято уведомить о нюансах вроде «подключено зарядное устройство» или «погасла подсветка экрана». Система кстати многозадачная и это тоже приносит несколько забавных тонкостей — например в случае поступления звонка, приложение будет «свёрнуто» (в понимании обычной JavaME) в случае приёма звонка, а если звонок отклонить, то как будто ничего и не произойдёт. Так вот что бы такой неприятности не происходило, надо реализовывать листенер глобальных событий — одно из таких событий и есть показ диалога о поступлении входящего звонка, тогда можно будет приостанавливать игру даже на то время, пока пользователь размышляет кто ему там названивает и стоит-ли отвечать. Впрочем звонки не единственная штука, которая работает таким образом.

Многозадачность тут кстати нормальная — т. е. можно просто свернуть приложение (оно продолжит работу в фоне, если сочтёт нужным), запустить другое, переключаться между запущенными… и всё это в системе основанной на JavaME, пусть и очень расширенной! Лично мне показалось очень круто, как совместили все эти «новые фичи» со «старой платформой».

Правда у «старой платформы» есть набор волне известных проблем, которые время-от-времени проявляются (вроде как реализаций JVM не так уж и много, соответственно в рамках одной JVM баги одни и те же не зависимо от устройства). Однако особых сложностей тут не возникло — всё было уже или известно как решать или решение было совсем простым и быстро находилось своими силами, так что лично я последние дни перед дедлайном чаще бывал в офисе на полчасика/часик ради правки двух/пяти строчек и пересборки. Иногда это были мои косяки (нда, ехать ради классической ошибки в виде «увеличения на единицу» было не очень весело, но утро вечера мудренее и все дела), а потом вообще мега-фейл тестеров, когда им кое-что показалось неправильным, а потом выяснилось что это требования другого оператора — но все билды были возвращены мне на какое-то время.

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

Реклама

комментария 3 to “RIM BlackBerry”

  1. D_Alex said


    2:10 =))

    колесико прокрутки? вот это круто =)

  2. суровый видос %)

  3. D_Alex said

    дада =) сейчас выложу подборку таких =))

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s