JAVA: скрытые таланты вашего телефона
Что «умеет» ваш телефон? Фотографировать? Громко и красиво воспроизводить mp3-файлы? Связываться с ПК без проводов посредством Bluetooth? Перекачивать огромные массивы информации с помощью EDGE? Здорово. А что ещё? SMS, MMS, WAP… Тоже мне, удивили. Задумались? Фонарик, радио? Отлично, великолепно, потрясающе. Ах, ещё и карточки памяти. Подождите, у вас часом не Nokia 6230i? Молчу-молчу, вопрос нескромный. Перечень функциональных благ закончился? Только не нужно расстраиваться и выкидывать телефон в форточку. Не ровен час, попадёте в кого… Смею заверить: ваш телефон «умеет» гораздо больше. Куда уж больше? Легко. Перечисляя технические «вкусности» вашего аппарата, вы забыли о Java. Только не нужно делать такие большие глаза. Как, вы человек серьёзный и у вас нет времени толком позавтракать, какие уж тут игрушки? Охотно верю. Только Java – это игрушки настолько же, насколько рояль – это инструмент для исполнения исключительно «Собачьего вальса», а телескоп – средство для ежевечернего созерцания соблазнительных картин в окнах напротив. Интересно? Ещё бы.
Что к чему?
Оптимальная функциональная насыщенность мобильного терминала разработана и внедрена довольно давно. Тенденции дня сегодняшнего в этом отношении прозрачны: наращивание аппаратных ресурсов, то есть массивов памяти и вычислительных мощностей, а также в 85% случаев провальные попытки засунуть в многострадальный корпус телефона ещё одну "революционную" возможность. Первое направление пока гораздо перспективней. Мобильный телефон – это мультимедийная платформа, требующая определённой технической оснащённости. В идеале – отдельный процессор для работы с графикой (в том числе трёхмерной) и звуком (естественно, не только с midi-партитурами). То есть на нашей ладони фактически умещается ну очень маленький, но вполне персональный компьютер. Отсюда вполне напрашивается вывод, что на базе этих вычислительных мощностей может работать разнообразное ПО, причём разработанное сторонними компаниями. Всё просто? Не так, как хотелось бы. Впрочем, по порядку.
Кто?
Компания Sun Microsystems. Деятельность её, к слову, оставила несколько заметных даже невооружённым взглядом чайника вех в истории развития ПК и глобальной сети Интернет. Всем нравятся динамические и "умные" web-странички, не так ли? Язык гипертекстовой разметки страниц HTML всем хорош, но является, по сути, мёртвой основой. Именно язык объектно-ориентированного программирования Java, построенный на базе таких языков, как Pascal, Smalltalk и С++, простой, гибкий и нетребовательный к ресурсам, способствовал оживлению Интернета и превращению его в полноценное интерактивное мультимедийное пространство. Java-скрипты и сценарии на сегодняшний день настолько прочно срослись с самой сутью Сети, что гигант Microsoft, скрипя зубами, включил платформу от Sun под названием Java 2 Standard Edition в комплект поставки Windows XP. На резонный вопрос читателя о том, как соотносятся мобильные телефоны и всё вышеописанное, ответим слоганом, под которым Java продвигается на рынок: "Написано однажды, работает везде". Одно и то же приложение должно запускаться на всех моделях мобильных телефонов – резонно, не так ли? А в условиях, когда вендоры горло друг другу грызут за патенты (недавние конфликты между LG и Pantech, а также Ericsson и Sendo тому наглядная иллюстрация), такое не представляется возможным в принципе. Тем не менее, всё в этом мире делается для нас, дорогие покупатели (пока мы платим деньги, по крайней мере). Поэтому, хорошенько подумав и решив всё-таки предоставить пользователю возможность использовать телефон на полную катушку его функциональности, но в то же время не поступиться корпоративными интересами, производители дали все карты в руки Sun Microsystems. А уж эти головастые ребята живо соорудили платформу Java 2 Micro Edition и портировали Виртуальную Машину Java в мобильные телефоны.
Как?
Максимально упростив схему и не вдаваясь в дебри программирования, всё это можно описать следующим образом. Производитель телефона продолжает дрожать за свои драгоценные патенты и никому их не показывать. Ну и пусть себе хоть подавится. Самое главное: в памяти аппарата установлена практически автономная относительно остальной прошивки Виртуальная Машина (Virtual Machine) Java и выделен определённый массив для установки приложений. Записываем нужную софтинку (в данном случае "мидлет") в аппарат, запускаем Виртуальную Машину, выбираем соответствующее приложение, открываем его и наслаждаемся. Всё остальное – не наша забота. Ключевое слово здесь – Виртуальная машина. Именно на этой и благодаря этой своеобразной платформе и работает Java-приложение.
Когда?
Относительно недавно. Будучи ещё в статусе "перспективной разработки" (то есть на момент выхода первого набора API под названием MIDP 1.0 в 2000 году) виртуальная машина была установлена на культовом аппарате Siemens SL45i (была ещё Motorola i85s, но за океаном и не для GSM-сетей). Тогда ещё едва уловимый запах денег почувствовали и в Финляндии: следом за немцами Nokia оперативно выпустила телефон 6310i. Камень стронулся и шустро покатился под гору: спустя полдесятилетия отсутствие Virtual Machine на борту современной GSM-трубки считается верным признаком ущербности модели. Развитие технологии не стоит на месте: появление MIDP 2.0 (2002 год) во многом (хотя и не полностью) решило проблему досадной несовместимости приложений, написанных с использованием первого набора API, с разными моделями телефонов. Дело в том, что раньше вендорам приходилось добавлять в API некоторые пакеты собственной разработки, что, понятно, делало уже упомянутый лозунг от Sun Microsystems не совсем применимым к J2 ME.
Для тех, кто прочитал это раздел и ничего не понял, поясню, что API (Application Programming Interface) – это набор системных библиотек, который издатель софтверной платформы предоставляет в полное пользование сторонним разработчикам ПО. Грубо говоря – детали своеобразного конструктора. Теперь, надеюсь, всё встало на свои места.
И, всё-таки, зачем?
Потенциал платформы просто огромен, но на сегодняшний день из всех мидлетов наиболее распространены Java-игры. Гораздо реже встречаются карты местности, обучающие программы, словари, Интернет-мессенджеры на манер ICQ, программы для чтения книг и т.д. Кстати, мягко говоря, однобокое использование технологии вызвало некоторое разочарование Sun Microsystems. Обидно, конечно, что микроскоп используется для забивания гвоздей, а рояль – для игры в карты. Причём бесстрастные цифры вовсе не способствуют улучшению настроения разработчика J2ME: по состоянию дел на сегодняшний день, львиную долю рынка мобильных Java-приложений составляют разнообразные игрища, которые приносят их создателям и контент-провайдерам нешуточные доходы. Быть разработчиком мобильных игр куда как менее хлопотно, чем «взрослым» девелопером, вроде iD Software, Blizzard или EA. Написать сносную Java-забаву можно самое большее за неделю. А вспомните, сколько мы ждали Doom III. То-то.
Впрочем, всё не так плохо. Порыскав в Сети, можно обнаружить приличное количество действительно полезных мидлетов, которые очень удачно дополнят функциональность вашего мобильного друга и помощника. Причём, что характерно: этим хитрым программулькам вовсе не обязательна поддержка даже MIDP 2.0, не говоря уж о трёхмерном профиле M3G/JSR 184. Чаще всего достаточно полноценной «дружбы» телефона с MIDP 1.0 и, желательно, возможности без лишних проблем и телодвижений закачать мидлет «ручками» (последнее удобства ради и комфорта для).
Рассказывали вам мы это всё, конечно же, не просто так, а с умыслом. Причём вовсе не злобным, а вполне себе благородным. Если вы твёрдо решили облегчить себе жизнь с минимальными затратами – читайте дальше. Мы собрали, на наш взгляд, наиболее удачные Java-софтины и сейчас с удовольствием вам о них расскажем. А чтобы повествование не было голословным, каждое ревью будет аккуратнейшим образом снабжено прямой ссылочкой на мидлет. Не ползать же нашему любимому читателю по Сети в поисках заинтересовавшей его программы. Кстати, практически все описанные приложения замечательно работают на любом аппарате с поддержкой Java.
Приступим.
TequilaС at BookReader
(Требования: MIDP 1.0)
Безусловно, когда человек перестал использовать в качестве носителя информации глиняные таблички, восковые дощечки и пергамент и начал фиксировать свои бесценные знания на бумаге, читать написанное стало гораздо удобнее. Сел в кресло, развернул газету и тут же узнал последние события в китайской провинции Хэйлунцзян. Здорово. Вообще говоря, чтение – чуть ли не единственный способ убийства времени с пользой для себя. Современный человек огромное количество времени проводит в разъездах: на работу с утра, с работы вечером, на дачу в выходной день. Сидеть, считать телеграфные столбы и набрасывать в голове план «Путешествия из Петербурга в Москву – 2»? Сомнительное времяпровождение, особенно если учесть, что полное собрание сочинений Шекспира, или, на худой конец, «Ночной дозор» вы прочитать пока не удосужились. С другой стороны, таскать с собой громоздкие тома – удовольствие, прямо скажем, ещё то. Что делать, если томик «Фауста» не умещается в модную нынче маленькую сумочку, а до коликов интересно, что поведает Фаусту гомункул? Сначала внимательно перечитать и осмыслить всё вышенаписанное, а потом скачать замечательную программу TequilaСat BookReader, которая поможет превратить текст любимой книги в мидлет. Последний, в свою очередь, обоснуется в памяти вашего телефона и пробелы в вашем образовании будут наконец-то ликвидированы. По крайней мере, тот факт, что из всех книг за последние три года вы держали в руках лишь книгу бухучёта, мотивировать отсутствием времени уж точно не получится.
Утилита TequilaCat Book Reader состоит из двух частей. Первая (“Shell”) представляет собой удобное приложение с интуитивно понятным интерфейсом, которое за считанные секунды может превратить любой документ формата . txt в . jar-файл, попутно приписав «в нагрузку» . jad. Вторая – непосредственно сам мидлет. Что характерно: независимо от того, русифицирован ли ваш аппарат, вы увидите на экране телефона текст во вполне внятной кириллической кодировке. Дело в том, что мидлет использует собственные шрифты, прозорливо не полагаясь на системные. Полученное Java-приложение прекрасно распознает любой аппарат с поддержкой J2ME MIDP 1.0. Отныне целая мобильная библиотека может поместиться в памяти вашего мобильного телефона!
Программа распространяется абсолютно бесплатно и, что особенно приятно, имеет русские корни (её автором является Алексей Вдовиченко aka tequilacat).
Основные возможности и особенности утилиты TequilaСat BookReader 1.6.10: |
Выбор шрифтов: поддерживаются абсолютно все Windows-шрифты фиксированной ширины. |
Поддержка MS ClearType – шрифтов, специально оптимизированных для ЖК-экранов. |
Настраиваемая автопрокрутка текста (построчно или постранично). |
Переход по тексту (на позицию в процентах от длины текста). |
Поиск (в т.ч. на русском языке). |
Форматирование текста: перенос по словам, перенос по слогам (только для русского языка) и выравнивание по ширине. |
Удобная разбивка по главам: просмотр, переименование и объединение глав. |
Отображение текста слева направо или сверху вниз, в зависимости от размеров экрана. |
Поддержка UNICODE . |
Часы: полезная возможность узнать, который час, не закрывая приложение. |
Поддержка телефонов с сенсорным экраном (Motorola Accompli). |
Включение и выключение подсветки для некоторых моделей телефонов |
Автоматическая разбивка текста на мидлеты фиксированного размера (для моделей с ограничением на объём одного приложения). |
Возможность прокрутки боковыми клавишами (для Sony Ericsson T610). |
Похожие утилиты : ReadManiac, BookReader, Mobile Bookshelf, ReadM.
Особое внимание на эти программы стоит обратить, конечно же, мученикам от высшего образования: бедным, голодным, но всё-таки почти поголовно мобильным студентам.
Dictionary
(Требования: MIDP 1.0)
Без знания иностранных языков современному человеку прожить решительно невозможно. Вот посылает руководство компании своего сотрудника в командировку в Париж, а он из всего языка Гюго и Золя знает лишь фразу “месье, же не манж па си жур”, вдолбленную ему ещё в юности незабвенным Кисой Воробьяниновым. Да и с английским туговато: в школе на уроках играл в “Морской бой”, а в университете на семинарах строил глазки симпатичным однокурсницам. В общем, без словаря просто никак и никуда.
В итоге внутри и так набитого под завязку командировочного чемодана (не отказываться же от поездки, в самом-то деле) придётся находить место для огромного тома «от А до Я». А потом, разгуливая по Елисейским полям, этот самый том нужно будет носить под мышкой, вызывая тем самым повышенный интерес окружающих. Да, кстати, когда вы последний раз пользовались словарём? В пятом классе? Смею вас заверить: с тех пор в издательском деле изменилось, конечно, многое, но вот систему гипертекстового поиска в книгу пока ещё никто засунуть не сумел. Перспектива же, стоя перед витриной, судорожно листать страницы в поисках слов «голландский» и «сыр», для разбалованного Rambler’ом человека выглядит малоаппетитной. Как, вы уже купили билет на самолёт? И КПК у вас, конечно же, нет. Не торопитесь в магазин: можно обойтись и без дополнительных затрат. Для этого вам нужно просто загрузить в свой телефон приложение Dictionary, которое способно запросто заменить многостраничный талмуд. Интерфейс утилиты максимально упрощён: от вас требуется лишь ввести искомое слово. Перевод вы сможете увидеть на экране менее, чем через секунду.
Основные возможности и особенности утилиты Dictionary: |
Поиск, как по целому слову, так и по его префиксу (в последнем случае на экран выводится список слов, начинающихся с этого префикса). |
Доступны: словарь английского языка из 6630 слов (60 K байт), словарь из 28389 слов и полная версия словаря Мюллера (2,5 M байт). |
Этот мидлет так же, как и предыдущий, необходим каждому уважающему себя студенту.
MobiTutor
(Требования: MIDP 1.0)
Предположим, вы всё-таки съездили в командировку в Париж. И, как ни странно, оттуда вернулись. Привезли, конечно же, с собой полную котомку сувениров и впечатлений. А ещё алмазно укрепились в убеждении, что так жить нельзя, и иностранный язык вам всё-таки необходим. Естественно, освоить разговорный английский вы решили в наикратчайшие сроки, записались на лучшие курсы и накупили уйму справочной литературы. Но мысль о том, что вы теряете уйму времени в разъездах, на скучных планёрках и во время перерывов на обед решительно не даёт вам покоя.
Что же, это легко исправимо и, как вы уже догадались, посредством всё того же многострадального мобильного телефона. Для этого вам понадобится приложение MobiTutor, которое каждую свободную минуту будет пополнять ваш словарный запас. И, что самое приятное, согласно девизу современной педагогики: «Учимся – играя». На экран выводится слово и четыре варианта его перевода. Ваша задача, конечно же, выбрать правильный ответ. Как видите, всё очень просто. Но действенно – и это самое главное.
Основные возможности и особенности утилиты MobiTutor: |
В меню приложения можно выбрать направление перевода: англо-русское, русско-английское, смешанное. |
При неправильном ответе утилита извещает вас об этом и предлагает попробовать ещё раз. |
Если вы не угадали несколько раз, то слово заносится в «список для повторения». Каждый пятый раз программа будет предлагать для перевода случайно выбранное слово из этого списка. Слово удаляется из списка для повторения, если вы перевели его правильно. |
Реализован режим словаря, в котором вы можете просмотреть все варианты перевода искомого слова. |
Доступны: компактная (92 K байт) и расширенная (339 K байт) версии MobiTutor. |
MetroNavigator
(Требования: MIDP 1.0)
Скажите, вы москвич? Ну разумеется, как я мог усомниться: коренной и, безусловно, в шестом поколении. Простите за нескромный вопрос. А помните, когда вы впервые очутились в московском метрополитене? Лично я не забуду этого никогда: ощущение полной беспомощности, ошарашенность истинно титаническим размахом… Довольно сильные, доложу я вам, впечатления. Заблудиться в хитросплетениях столичного метро не составит труда даже человеку бывалому, проводящему в вагоне по часу в день. Удержать все ветки и все станции в голове очень трудно и, прокладывая новый маршрут, приходится подолгу стоять около карты и водить по ней пальцем. Не очень удобно, согласитесь. А вот, положим, очутились вы на какой-нибудь станции, и стоит перед вами чёткая задача: доехать туда-то и как можно быстрее. Каждая секунда, как водится, на счету и от лишней пересадки, как всегда, зависит ваша жизнь и благосостояние. Типичная, одним словом, ситуация. Вокруг суета, голова занята насущными проблемами, и трезво проложить оптимальный маршрут очень трудно. Можно ли этот процесс автоматизировать? Запросто!
Поможет вам в этом замечательное приложение MetroNavigator, к которому, как и к большинству утилит, описанных в этом материале, приложил руку замечательный программист Константин Книжник. Карта метрополитена, которая всегда под рукой, – уже здорово, не правда ли? Но вся прелесть программы вовсе не в этом. Этот мидлет с завидной машинной бесстрастностью способен в считанные секунды вычислить оптимальный маршрут между двумя указанными станциями, наглядно отметив его на схеме. Одним словом – загляденье. И всё, что требуется от вашего телефона – поддержка MIDP 1.0. Безусловно, эту софтинку должен иметь при себе каждый «москвич и гость столицы».
Основные возможности и особенности утилиты MetroNavigator: |
Получение исчерпывающей справочной информации обо всех линиях и станциях метрополитена. |
Наглядное построение маршрута с указанием примерного времени в пути и количества пересадок. |
Также доступны: версии для Санкт-Петербурга, Киева и Мюнхена. |
TripMate
(Требования: MIDP 1.0)
Спутниковая навигация GPS вошла в арсенал подручных средств жителя XXI века прочно, оккупировав военное дело, мореплавание и серьёзный туризм. Сейчас технология начинает понемногу вторгаться в совсем уж потребительский сектор рынка. Уважающий себя рыболов без GPS’ника из дому ни ногой, продвинутые грибники также начинают лениться ориентироваться по солнцу. GPS, по сути, вдохнула вторую жизнь в КПК. Телефонов-«звездочётов», конечно, в продаже пока немного, да и стоят они изрядно. Но это вовсе не означает, что с помощью «мобильника» нельзя худо-бедно, но ориентироваться в пространстве. Поможет нам в этом, как вы уже и догадались, J2ME. Ну, положим, не она сама, а приложение TripMate.
Вот типовая ситуация: вы наконец-то вырвались в отпуск и решили первый раз за пять лет навестить свой дачный особняк на опушке брянского леса. Естественно, тяга к природе тут же берёт верх, и вы, сменив туфли Hush Puppies на резиновые сапоги и вооружившись лукошком, отправляетесь за грибами. И в лесных дебрях находите невообразимо грибное место. Как его запомнить? Если бы у вас не было с собой мобильного телефона с установленной утилитой TripMate, вы бы разбрасывали белые камушки и ломали ветки. Действенно, но несколько архаично: есть способ лучше.
Достаём мобильный телефон, запускаем приложение и, мирно вышагивая, отмечаем все повороты. Получившийся таким образом маршрут, если пройти по нему обратно примерно в том же направлении и примерно с той же скоростью, запросто приведёт вас к заветному местечку. В чём секрет? Неужели телефон получает способность принимать сигналы со спутников? Нет. Всё гораздо проще и изящней: утилита «привязана» к часам телефона и просто замеряет время, которое вы затратили на конкретном участке пути. Гениально, не так ли?
Впрочем, прежде чем, скачав мидлет, отправляться за грибами, потренируйтесь где-нибудь в черте города. Или хотя бы вспомните, с какой стороны на деревьях растёт мох. Мало, знаете ли, что.
Основные возможности и особенности утилиты TripMate: |
Приложение запоминает несколько маршрутов. |
Можно просмотреть подробное описание этапов маршрута. |
Возможно следование как в прямом, так и в обратном направлении. |
При отставании по времени можно приостановить движение. Или перейти к следующему этапу при слишком быстром движении. |
Доступны два вида отображения: графический и текстовый (описание текущего этапа, прошедшее время и время до конца и маршрута). |
Направления движения можно редактировать. |
Shopper 2
(Требования : MIDP 1.0)
Определённо, ходить по магазинам – занятие вопиюще не мужское. Ежедневные походы за пельменями и пивом, конечно же, не в счёт. А вот от бесцельных многочасовых пробежек по всем этажам гигантского торгового центра каждый уважающий мужчина может сойти с ума. Поэтому многие следуют похвальной максиме: сильная половина должна добывать средства, а слабая – эти самые средства тратить. Конечно же, самостоятельно, однако с обязательными финансовыми отчётами. Между тем, перспектива рутинного похода по магазинам без соблазнительных трат, вроде норковой шубы или, хотя бы, тюбика губной помады, возбуждают далеко не каждую представительницу прекрасного пола. Надавив своими недюжинными слабостями, принципиальная «представительница» может безапелляционно отправить добытчика за покупками. И что характерно: при даче ЦУ в устной форме самец обычно приносит в лучшем случае две трети всего наказанного. А при составлении списка в сумке оказываются… Те же самые две трети. Потому как: а) маленькая бумажка теряется в карманах, б) благополучно вытаскивается вместе с сигаретами и пускается в свободный полёт. Конечно, записи можно делать на руке, но это негигиенично. А можно установить в свой телефон программу Shopper 2 и совершать покупки, глядя на экран своего аппарата. Его ведь вы терять не собираетесь, верно? Кроме того, в большинстве случаев и писать-то ничего не надо: в информационной базе мидлета уже записаны и, что немаловажно, удобно структурированы наиболее типичные покупки, которые нужно просто отметить. Удобного вам шоппинга.
Основные возможности и особенности утилиты Shopper 2: |
Можно добавлять, переименовывать и удалять «секции», а также добавлять и удалять наименования товаров в них. |
При добавлении или переименовании «секции» с ней ассоциируется иконка по умолчанию. |
Для пущего удобства выбор в списках на телефонах Nokia осуществляется кнопкой вызова. |
Puring Kitty
(Требования: телефон Nokia с поддержкой MIDP 1.0)
Держу пари: практически у каждого где-нибудь в шкафу валяется старый вибромассажёр с огромным количеством насадок в комплекте. Про него все забыли, и он лежит себе, пылится и скучает, мечтая выйти, наконец, на свет и начать лечить своих хозяев от всех мыслимых и немыслимых хворей. Но из шкафа его не достанут уже никогда, и дни свои он окончит на свалке. Вот так вот грустно.
А между тем, в суматохе дней иногда очень хочется прижать к ноющей пояснице что-нибудь вибрирующее. Что не удивительно при сидячем образе жизни. Между тем, почти во все телефоны нынче встраивается вибромоторчик – просто грех им не воспользоваться… кхе-кхе… по назначению. Если вы чувствуете в этом необходимость, но считаете глупым постоянно набирать свой номер с другого аппарата – просто скачайте этот мидлет и установите его к себе в телефон. В своё распоряжение вы тут получите полноценный мобильный вибромассажёр с возможностью регулирования интенсивности колебаний.
Да, кстати, авторы этой утилиты предупреждают, что при использовании их продукта именно по тому самому назначению, о котором вы сейчас подумали, никакой ответственности «в случае чего» они не несут. Знаете, их можно понять.
Основные возможности и особенности утилиты Puring Kitty: |
Забавное приложение, которое, всё-таки, может иногда оказаться полезным. Главное – не забывать о предупреждении разработчиков! |
JAVная польза
Вы убедились, что ваш телефон может гораздо больше, чем вы могли себе представить? Скажем вам по секрету: это далеко не все полезные умения, которые, при желании, можно выжать из J2ME. Подобные приложения не выходят десятками в неделю, и ими чаще всего не торгуют контент-провайдеры. Но, постаравшись, найти их можно. И, что самое приятное, их авторы чаще всего стесняются требовать за них деньги. За что им огромное спасибо.