Apple iOS (ранее называвшаяся iPhone OS) – операционная система, разработанная компанией Apple на основе стационарной Mac OS X для мобильных устройств: iPhone, iPod Touch, iPad.
Сегодня это лидер рынка во многих странах, но в Азии и Европе, как и в России все еще сильны позиции устаревающей Symbian, а США в спину дышит молодая поросль Android и офисная Blackberry.
Рисунок 1.6 Дизайн iPhone OS
iOS – это полностью закрытая платформа, которая заставляет пользователя приобретать ее продукцию как софт так и хард, включая многочисленные аксессуары, а также контент и предоставляющая взамен простоту пользования, дружелюбный интерфейс, работоспособность и прочие добродетели.
Достоинства:
– Удобство пользования;
– Качественная служба поддержки;
– Регулярные обновления, устраняющие многие проблемы в работе;
– Возможность купить в App Store множество различных программ
Недостатки:
– Необходимость джайлбрейка для установки неофициальных приложений;
– Заблокированный характер ОС;
– Отсутствие многозадачности;
– Нет встроенного редактора документов.
Bada – собственная система компании Samsung. Она была представлена в феврале 2010 года, а первое устройство на этой ОС – Samsung 8500 Wave было очень успешным рынке. Легко различить у Самсунга устройства на BADA (морская тематика) называются Wave (Волна), на Android (космическая тематика) – Galaxy (Галактика)
Рисунок 1.7 Дизайн Bada
BADA – это скорее мобильная платформа, но при этом не полноценная операционная система.
В смысле развития собственной экосистиемы Samsung идет по стопам Apple, копируя их решения которые даже внешне похожи на яблочные :
– Книжный магазин содержит 60 000 книг и продолжает развиваться, клон Apple Bookstore;
– Сервис Dive позволяет найти телефон с помощью определения местоположения и закрыть к нему доступ или стереть информацию;
– Socilal Hub позволяет систематизировать работу с социальными сетями, обьединяя контакты, календарь и информацию поступающую от их в единый поток данных, который пользователь получает непрерывно с помощью push-технологий на свое мобильное устройство.
Рисунок 1.8 Дизайн Samsung
Пользовательский интерфейс TouchWiz (модели Samsung SGH-F480 TouchWiz, Samsung s8000 Jet, Samsung WiTu, Samsung M8800 Pixon) появился в результате эволюции интерфейса Croix (на фото – Samsung s8000 Jet).
Последняя версия – 2.0 – более «объемна» по дизайну и унифицирует то, как выглядят на экране различные платформы (Windows Mobile, Symbian, Android), а также организует рабочий стол в так называемый мультимедийный куб (кубический шестисторонний рабочий стол). В последней версии есть три панели для виджетов, которые можно перетягивать по экрану простым перемещением и вытягивать из боковой панели простым движением пальца. Одним движением можно настроить и сам экран (например, выбрать обои, раскрыв Home Screen Customizer), проскроллить основные пункты меню, создать сообщение и т. д.
В TouchWiz 2.0 также поддерживается акселерометр и приложение разблокировки, которое дает быстрый доступ к некоторым апплетам в заблокированном режиме.
Есть два принципиально различных типа программ для мобильных устройств: самостоятельные приложения и исполняемые файлы, которые запускаются только при наличии установленной в устройстве специальной среды – интерпретатора.
В первом случае для «перевода» текста программы на язык, понятный какой-либо платформе (операционной системе), необходим компилятор – специальное приложение, которое, как правило, входит в состав средств разработчика. Пропускаем написанный код через компилятор и на выходе получаем самостоятельное приложение для совместимой платформы. Достаточно скопировать его на соответствующий аппарат и элементарно запустить. Поясним: в случае с обычной Windows XP компилятор выдает EXE-файл. Все, что требуется от пользователя для запуска, – это двойной клик. Компилируемые языки программирования в освоении сложны, зато творческих возможностей предоставляют больше. C++, например, – стандарт де-факто при разработке ПО, в том числе и для многих мобильных платформ.
Первый метод создания программ отличается инструментами (для каждой операционной системы – свои) и файлы, созданные в этих инструментах, запускаются только на тех платформах, для которых они созданы.
Во втором случае – интерпретатор занимается тем, что объясняет данному устройству, как следует выполнять код программы. Пожалуй, самый известный пример интерпретатора – виртуальная машина Java, которая, кстати, по умолчанию наличествует не только в смартфонах, но и практически в любых современных телефонах. Интерпретатор Java – универсален. Одна и та же Java-программа, как правило, выполняется и на Windows Mobile коммуникаторе, и на каком-нибудь музыкальном телефоне Sony Ericsson.
Cсуществуют интерпретаторы для мобильных приложений, написанных на языках Python, mShell (создан фирмой infowing AG (www.mshell.net)) и Basic, хотя эти интерпретаторы скорее экзотика, чем норма.
Минусы интерпретаторов – в относительно медленной скорости работы, а кроме того, они обладают изрядным аппетитом в плане потребления ресурсов. Зато такие языки просты для изучения и инструменты для их создания носят универсальный характер и созданные программы работают на всех платформах одинаково.
Таким образом, в зависимости от типа (исполнения) программного обеспечения для мобильных устройств можно выделить следующие классы инструментария программиста:
1. Инструменты для разработки «мидлетов» – программ, выполняемых на виртуальных Java машинах мобильных устройств (или программ для других интерпритаторов);
2. Инструменты для создания специализированного программного обеспечения под одну из мобильных операционных систем.
1.9.1. Инструменты для разработки «мидлетов».
На данный момент почти все выпускаемые мобильные устройства имеют предустановленную возможность для запуска Java-программ (мидлетов). Большая распространенность этой технологии привлекает внимание разработчиков коммерческих продуктов (особенно игр), но и обычный пользователь может сделать что-нибудь свое.
Базовый язык для разработки программ под Java интерпретатор («мидлетов») Java ME. Чтобы вести программирование по этой технологии необходимо создать у себя на компьютере специальную среду разработки. Основу этой среды составляет Java ME SDK – специальный комплект средств разработки. В настоящее время существует несколько различных версий SDK от разных производителей, их использование позволяет создавать мобильные приложения, заточенные под определенные телефоны и мобильные платформы. Соответственно доступные программисту JSR расширения и функциональные возможности среды разработки будут сильно зависеть от выбранного SDK. Наиболее распространенные Java ME SDK программиста следующие:
– Sun Java ME SDK 3.0
– NetBeans 6.5 IDE
– MOTODEV Studio for Java ME
– Nokia S60 SDK
– Nokia S40 SDK
– Nokia NFC SDK
– BlackBerry JDE 4.7
– Sony Ericsson SDK 2.5 for Java ME
– LG SDK 1.2 for Java ME
Кроме того, для разработки «мидлетов» применяются специальные интегрированные среды, например – MIDletPascal.
Sun Java ME SDK 3.0
Sun Java ME SDK 3.0 стала де-факто стандартом на рынке мобильных программ. Java ME SDK – кульминация проекта Java Wireless Toolkit. J2ME SDK поддерживает следующие JVM платформы:
– CLDC/MIDP: Общая JVM конфигурация для мобильных телефонов.
– CDC/FP/PBP/AGUI: JVM конфигурация для high-end смартфонов
– CDC/FP/PBP/BD-J: JVM конфигурация для Blu-ray Disc плееров.
Java ME SDK – одна из нескольких доступных SDK ориентированных на некое гипотетические устройство, что дает возможность разрабатывать и отлаживать мобильные приложения перед «заточкой» их под конкретную мобильную платформу. SDK содержит Platform Manager, который позволяет эмулировать конкретную платформу. На рисунке 1.9 показан Java ME SDK 3.0 с запущенным эмулятором JavaFX телефона.
Рисунок 1.9 Вид среды разработки Sun Java ME SDK 3.0
В отличие от Java Wireless Toolkit, Java ME SDK содержит IDE и Вы можете разрабатывать и тестировать свои приложения в этой среде. Нужно отметить, что Java ME SDK не поддерживает разработку JavaFX приложений, однако он содержит несколько эмуляторов JavaFX 1.1 телефонов (один с тачскрином и один – без), которые позволяет запускать и тестировать JavaFX Mobile приложения. Для создания JavaFX Mobile приложений можно использовать NetBeans IDE. Основным отличием Java ME SDK 3.0 от предыдущих версий является процесс конфигурирования SDK для Blu-ray разработки. Последняя сборка содержит BD-J библиотеки. Таким образом, устранены преграды, стоявшие перед разработчиками BD-J приложений.
Одной из главных особенностей Java ME SDK 3.0 является возможность пошагово отлаживать приложения на реальном мобильном устройстве. Данная возможность пока доступна только для Windows Mobile 6 устройств.
MOTODEV Studio for Java ME
MOTODEV Studio for Java ME – еще одна Java ME SDK, ориентированная на Motorola устройства и имеющая ряд дополнительных сервисов:
– Bluetooth Service
– Landmark Storage
– Location Service
– Remote Control (Bluetooth)
– SIM Configuration
– SIP Proxy
– WMA Server
Эти сервисы позволяют Вам симулировать реальные события без необходимости отладки на реальном устройстве. Например, Bluetooth Service содержит Rococo Bluetooth симулятор, который позволяет симулировать Bluetooth устройства в MOTODEV Studio.
Рисунок 1.10 Вид среды разработки MOTODEV Studio for Java ME
MOTODEV Studio отлично подходит для разработки приложений ориентированных на Motorola утстройста. Вы можете отлаживать приложения на реальных устройствах подключив их по USB.
Nokia S60, S40, and NFC SDK
Nokia предлагает программистам 3 SDK для разработки мобильных приложений. В состав SDK различные утилиты, например SVG => SVG-Tiny конвертор, который может быть очень полезным, если Вы планируете использовать JSR 226 API для отображения векторной графики. Как и рассмотренные выше SDK, S60 SDK позволяет проводить отладку приложений на реальных устройствах, однако он имеет особенность, позволяя перенаправлять System. out и System.err сообщения.
S40 SDK включает Nokia Connectivity Framework, который позволяет эмулировать Bluetoth и SMS сообщения.
Если Вы хотите заняться разработкой для wireless smart card, Вам стоит задуматься над использованием инструментов S40 Nokia 6212 NFC SDK.
Рисунок 1.11 Вид среды разработки Nokia
Этот SDK не только поддерживает JSR 257 API, но и позволяет симулировать наличие либо отсутствие виртуальной смарт карты. SDK также поддерживает OMNIKEY и PEGODA карт-ридеры, которые подключены к Вашему настольному компьютеры, что позволяет быстро создавать и тестировать приложения на реальных NFC картах. Скриншот S40 Nokia 6212 NFC SDK показан выше.
BlackBerry JDE 4.7
BlackBerry JDE 4.7 – это полноценная среда для разработки и тестирования мобильного приложений для BlackBerry. Чтобы помочь разработчикам с их проектами, BlackBerry JDE 4.7 содержащих более 50 примеров проектов, которые используют Java ME JSR API и дополнительные BlackBerry API. JDE 4.7 содержит эмуляторы BlackBerry 9500/9530 с сенсорным экраном.
Рисунок 1.12 Вид среды разработки BlackBerry JDE 4.7
Кроме того эмулятор может реагировать на следующие события:
– Наличие USB соединения
– Наличие гарнитуры
– Эмуляция сенсорного-скрина
– Изменение ориентации (тряска устройства)
– Уровень батареи
– Установка или извлечение SD карты
– Входящий звонок
– Изменение GPS положения
– Использование камеры
Sony Ericsson SDK 2.5 for Java ME
Если Вы хотите сосредоточить свое внимание над экспериментами с JSR расширениями, можете поиграться с Sony Ericsson SDK 2.5 for Java ME. Особенно Вам следует обратить внимание на этот SDK, если Вы хотите использовать JSR 177 Security или Trust Services API (SATSA):
– SATSA APDU: Базовые соединения с Java Card апплетами на SIM карте
– SATSA Crypto: Для шифрования
– SATSA PKI: Цифровая подпись
– SATSA JCRMI: Для RMI соединения с Java Card апплетами на SIM картами
Sony Ericsson SDK 2.5 for Java ME поддерживает 3D графику и анимацию: JSR 184 (Mobile 3D Graphics), JSR 239 (Java Binding for OpenGL ES) и Mascot Capsule API. Sony Ericsson SDK 2.5 for Java ME один из нескольких SDK, которые поддерживают JSR 229 Java Payment API. На приведенном ниже рисунке показана интеграция Sony Ericsson SDK 2.5 в NetBeans 6.5 IDE.
Рисунок 1.13 Вид среды разработки Sony Ericsson SDK 2.5 for Java ME
LG SDK 1.2 for Java ME
LG SDK 1.2 for Java ME не блещет особой функциональностью и не очень хорошо поддерживает JSR расширения.
Рисунок 1.14 Вид среды разработки LG SDK 1.2 for Java ME
Однако, это единственный SDK с поддержкой JSR 300, и DRM API, которые обеспечивают работу с защищенным цифровым контентом (графикой, звуком, видео). LG SDK 1.2 for Java ME не содержит IDE, однако он, как впрочем и все другие SDK, может использоваться с NetBeans IDE.
LG SDK 1.2 может симулировать различные события:
– Изменения в файловой системе
– Изменение местоположения
– Транзакция оплаты
– Изменение состояние подключенного устройства
LG SDK 1.2 содержит также средства просмотра SVG файлов.
Для более удобного программирования в указанных выше SDK, удобно применять интегрированные среды разработчика (IDE), имеющие инструменты визуального программирования форм и встроенные отладчики. Наиболее применяемой IDE для создания «мидлетов» является среда NetBeans.
NetBeans 6.5 IDE
Если вы хотите поработать над визуальным аспектом своего приложения, то вам следует воспользоваться NetBeans IDE. Эта среда наиболее подходит для разработки, проектирования и тестирования JavaFX приложений. Основным принцип JavaFX – дать разработчикам возможность разрабатывать десктопные, веб-ориентированные и мобильные приложения, используя один API framework.
Рисунок 1.15 Вид среды разработки NetBeans 6.5 IDE
В состав NetBeans 6.5 IDE входит Mobility Visual Designer – WYSIWYG утилита, позволяющая в визуальном режиме проектировать интерфейс Вашего приложения. В состав NetBeans 6.5 IDE (org.netbeans. microedition) входят следующие визуальные компоненты: Alert, File Browser, Form, List, Login Screen, PIM Browser, SMS Composer, Splash Screen, Text Box, Wait Screen.
Mobility Visual Designer поддерживает векторную SVG графику и анимацию.
Язык Java показался сложным? Тогда стоит использовать программы-посредники: «скармливайте» им программу, написанную на родственниках таких популярных языков, как Pascal и Basic, и на выходе получайте готовый Java-мидлет. Ярким примером такого «посредника является IDE MIDletPascal.
О проекте
О подписке