Pull to refresh

Что можно ещё выжать из J2ME?

Reading time3 min
Views10K
В последнее время всё внимание разработчиков и журналистов направлено на смартфоны а интерес к обычным телефонам совершенно пропал.
Теме не менее, доля продаж обычных трубок (где возможно запускать только J2ME-приложения) очень высока. Можно посмотреть статистику из отчёта агентства Gartner за прошлый год — всего продано более 400 миллионов трубок, смартфонов из них только 80 миллионов. Путём нехитрых вычислений получается такая картина:

image

Как видим, смартфонов продали в 4 раза меньше чем обычных дешёвых трубок. И только внутри этих 19-ти процентов iOS борется с Android за первое место.

Понятно, зачем делать приложения для владельцев несмартфонов (т.к. их много) но какие программы можно делать под дешёвые трубки? Прежде всего нужно учитывать неудобную клавиатуру, отсутсвие тачскрина и маленький экран. Вероятно это должны быть приложения где можно что-то быстро выбрать из меню и не тратить время на сложную навигацию. Например J2ME-версия почтовыго клиента GMail удобна но пользоваться ей для написания писем практически невозможно.

Зачем делать приложения на J2ME если можно сделать мобильную версию сайта? У приложений есть ряд преимуществ перед сайтами:
— мобильный интернет оооочень мееееедленный, если в приложении больше 10 страниц то, вероятно, пользователи никогда не зайдут дальше десятой
— в приложениях можно организовать обратную связь через отсылку SMS (что очень удобно т.к. SMS автоматически привязаны к номеру абонента и его виртуальному счёту у провайдера)

Хорошим примером таких приложений может служить мобильный клиент от Альфа-банка:

image

в нём можно выполнять типовые операции по переводу денег и проверке балланса.

Обход ограничений платформы J2ME


Большинство ограничений связаны с требованием работать на любых, даже очень слабых аппаратах. Например телефон может легко воспроизводить полнометражные фильмы с карты памяти но откажется запускать J2ME-приложение размером больше 500кб. Преодолеть ограничения без потери совмесимости со всем разнообразием выпускаемых моделей невозможно. Но их можно обойти. Необходимо изменить саму идеологию приложения:

— использовать только стандартные элементы GUI. Выглядеть будет не особо красиво и по-разному на разных моделях, но будет работать везде и всегда.
— вместо загрузки данных из внешнего источника хранить их в самом .jar-файле. Типовая реализация MIDP просто не имеет функций доступа к памяти, а сжатый в .jar ресурс прекрасно читается стандартным this.getClass().getResourceAsStream(name).
— вместо обновления данных приложения делать новую версию с новыми данными. Обычно трубки уже имеют встроенную в меню функцию для скачивания новых версий приложений, в .jad дескрипторе достаточно увеличить счётчик в поле MIDlet-Version.
— для каждого пользователя нужно делать персональное приложение с его собственными данными. Мидлет это простой zip-архив, в нём достаточно разместить новые данные не перекомпилируя сам код (разумеется нужно ещё поменять размер в поле MIDlet-Jar-Size у .jad-дескриптора).

Пример сервиса использующего описанные принципы можно посмотреть на странице MRF. Можно внести свои данные в веб-форму:

image

и получить примерно такое приложение:

image

Можно протестировать примеры готовых мидлетов из галереи — даже самые старые трубки легко открывают справочники на 5-10 тысяч строк (например англо-русский словарь или расписание пригородных электричек). Готовые мидлеты ничем не отличаются от полученных обычным способом и могут быть размещены, скажем, в магазине Nokia.

Организация обратной связи


В интерактивных приложениях типа клиентского ПО банка или каталога заказа пиццы на дом необходима обратная связь с приложением. В приложения можно вставлять кнопки для отсылки SMS с кодом товара и эти сообщения надо как-то принимать.

Для приёма SMS есть несколько решений.

Решение «на коленке» — можно купить GPRS модем от МТС или Билайн. Если покопаться в ПО модема то выяснится что все присланные на номер модема SMS-сообщения хранятся в обычной базе данных MS Access:

image

В случае модема МТС файл базы это C:\Program Files\Connect Manager\db.dat. К базе можно подключаться (скажем, через ODBC) непосредственно во время работы модема, проверено.

Более серьёзное решение это купить SMS-сервис у провайдера сотовой связи, например у Билайн описание подобных услуг выглядит так. Кроме того, можно сразу работать через аггрегатора (например AvisoSMS). Это позволит организовать через мидлеты продажи услуг/товаров без заключения отдельных договоров с каждым оператором сотовой связи.

Итого


Возможно через сколько-то лет несмартфоны перестанут выпускать, но пока обычных трубок продаётся в разы больше чем Айфонов. И для них можно и нужно делать приложения.
Tags:
Hubs:
Total votes 32: ↑27 and ↓5+22
Comments75

Articles