Автор : Газетдинов Альберт (по ссылке и оригиналы статей с картинками)
Все статьи Альберта в другом формате можно взять здесь
Программная платформа Symbian Series 60 (или S60) — самая популярная в мире смартфонов и коммуникаторов, если судить по продажам мобильных устройств. Поэтому приложения именно для этой платформы актуальны как никогда. Создание программ — процесс увлекательный, и данная статья поможет всем желающим попробовать свои силы в этом деле.
Казалось бы, совсем недавно смартфоны стоили весьма прилично, да и на прилавках появлялись редко; программирование для «умников» было увлечением сложным и малоперспективным. Однако сейчас приобрести «умный телефон» можно за приемлемую цену, а создавать для него программы имеют возможность не только профессионалы и энтузиасты, но и обычные пользователи. Причина этого в том, что появились простые в освоении языки программирования для Symbian Series 60.
КОМПИЛЯТОРЫ И ИНТЕРПРЕТАТОРЫ
Есть два принципиально различных типа программ: самостоятельные приложения и исполняемые файлы, которые запускаются только при наличии установленной в устройстве специальной среды — интерпретатора.
В первом случае для «перевода» текста программы на язык, понятный какой-либо платформе (в нашем случае S60), необходим компилятор — специальное приложение, которое, как правило, входит в состав средств разработчика. Итак, пропускаем написанный код через компилятор и на выходе получаем самостоятельное приложение для совместимой платформы. Достаточно скопировать его на соответствующий аппарат и элементарно запустить. Поясним. В случае с Windows XP компилятор выдает EXE-файл. Все, что требуется от пользователя для запуска, — это двойной клик. Компилируемые языки программирования в освоении сложны, зато творческих возможностей предоставляют больше. C , например, — стандарт де-факто при разработке ПО, в том числе и для многих мобильных платформ.
Плюсы
максимальная скорость и минимально потребляемые ресурсы
для работы программы требуются только ее собственные файлы
удобное средство для создания коммерческих продуктов
Минусы
— сложные для освоения языки
— необходимость создания различных версий продукта для разных платформ
Интерпретатор занимается тем, что объясняет данному устройству, как следует выполнять код программы. Пожалуй, самый известный пример интерпретатора — виртуальная машина Java, которая, кстати, по умолчанию наличествует не только в смартфонах, но и практически в любых современных телефонах. Интерпретатор Java — универсален. Одна и та же Java-программа, как правило, выполняется и на Windows Mobile коммуникаторе, и на каком-нибудь музыкальном телефоне Sony Ericsson.
Минусы интерпретаторов — в относительно медленной скорости работы, а кроме того, они обладают изрядным аппетитом в плане потребления ресурсов. Зато такие языки просты для изучения. Помимо Java, к интерпретаторам можно отнести, например, «настольный» Basic, который преподается почти во всех школах.
Плюсы
легкость освоения
в ряде случаев — возможность написания и отладка программ на самом устройстве
Минусы
— зависимость программы от интерпретатора
— медленная работа и большое потребление оперативной памяти
— трудность создания коммерческих продуктов
ПИТОН СЪЕЛ МЫШЬ
Как было сказано, интерпретаторы отлично подойдут для новичков и тех, кто хочет понять общие принципы написания программ Symbian Series 60. Здесь выбор будет лежать между двумя средами программирования: Python и mShell («Питон» и «Мышь» на жаргоне программистов).
Python — разновидность одноименного компьютерного языка программирования; официально поддерживается компаниями Symbian и Nokia. Установочные файлы можно найти на страничке https://sourceforge.net/project/showfiles.php?group_id=154155. Существуют различные версии для смартфонов с Symbian OS 6.1, 7.0s, 8.0, 8.1 и 9.1. Состоит Python из двух частей — PythonForS60 и PythonScriptShell. Первый файл отвечает за функции языка, а после установки второго в Меню смартфона появляется значок для запуска консоли Python.
После этого можно работать с файлами, имеющими расширение .py (содержат текст программы на языке Python), и писать программы прямо на смартфоне. Невидимая в Меню PythonInstaller поможет установить новые PY-файлы и библиотеки, а также создать на их основе программу со своим значком в Меню.
Плюсы
возможность использования сторонних библиотек
создание самостоятельных приложений на основе Python-программ
широкое распространение и наличие сообщества программистов
Минусы
— мало похож на популярные языки (Basic, Pascal, C)
— отсутствие собственного редактора для набора текста программы
mShell создан фирмой infowing AG (www.mshell.net). Поддерживаются смартфоны с Series 60 2nd Edition (Symbian OS v7.0s, v8.0, v8.1) и Series 60 3rd Edition (Symbian OS v9.1). После установки необходимо осуществить бесплатную процедуру регистрации через SMS. Оболочка mShell дает возможность запускать несколько M-файлов (текст программы на языке mShell) одновременно и редактировать их, а также предоставляет справку по любой функции.
Плюсы
Pascal-подобный язык
высокая скорость работы, особенно с двухмерной графикой
имеется собственная среда разработчика с удобной помощью
Минусы
— плохая распространенность
— запуск программ только из среды mShell
Итог: Python выглядит более привлекательным — он позволяет создавать приложения со своим значком в Меню, которые к тому же удастся упаковать в SIS-файлы. Однако mShell списывать со счетов не стоит — скорость работы и потребление ресурсов выгодно отличают его от других языков, к тому же разработчики обещали в будущем дополнить его компилятором (!).
ВЕЗДЕСУЩАЯ JAVA
На данный момент почти все выпускаемые сотовые телефоны имеют предустановленную возможность для запуска Java-программ (мидлетов). Большая распространенность этой технологии привлекает внимание разработчиков коммерческих продуктов (особенно игр), но и обычный пользователь может сделать что-нибудь свое. Для этого на компьютере необходимо установить следующие программы со страницы java.sun.com/javame/:
1) Java 2 Standard Edition SDK — компиляторы и утилиты для создания Java-мидлетов;
2) J2ME Wireless Toolkit — эмуляторы и средства для отладки Java-мидлетов;
3) NetBeans IDE (для работы с J2ME необходим еще и NetBeans Mobility Pack) — среда разработчика.
Продуктом процесса разработки станут JAD- и JAR-файлы. Выбор технологии Java будет оптимальным, если хотите, чтобы ваш продукт охватил большое количество телефонов.
Реализация Java на смартфонах с версией Symbian 6-8 оставляет желать лучшего: долгая загрузка, медленная скорость работы, большое потребление оперативной памяти. Однако Symbian 9.2 преподнесла сюрпризы: загрузка мидлетов моментальная, да и с оперативной памятью дело обстоит не так плачевно. Таким образом, все последующие модели смартфонов от Nokia начнут адекватно работать с технологией Java. А уверенность в безоблачном будущем — то, что нужно любому разработчику!
Плюсы
большая популярность и легкость создания программ
поддержка практически в любом сотовом телефоне
богатая документация и наличие ресурсов данной тематики
Минусы
— не самая высокая скорость работы
— нет доступа ко всем телефонным возможностям
ШИЛО НА МЫЛО
Язык Java показался сложным? Тогда стоит использовать программы-посредники: «скармливайте» им программу, написанную на родственниках таких популярных языков, как Pascal и Basic, и на выходе получайте готовый Java-мидлет.
MidletPascal можно скачать с сайта разработчиковwww.midletpascal.com(временно не работает), за пользование программой денег не просят. Поставляется MidletPascal с собственной, дружественной к пользователю средой разработки (IDE). Среда имеет встроенный компилятор, инспектор кода Java и обеспечивает построение архива JAR, что избавляет от установки Java SDK. В итоге компиляция и компоновка мидлетов проста, как нажатие на кнопку. Порадует вас встроенная справка по доступным функциям: работа с графикой, SMS, звуками, файлами и т. д.
OmegaBasic — специализированная среда разработки для создания программ и игр. Включает удобный редактор, поддерживает работу с проектами. Можно просматривать несколько файлов, ставить закладки, распечатывать справку по функциям. OmegaBasic позволяет работать с графикой, картами, звуком, музыкой, анимацией, видео и сетью. В качестве основного языка программирования используется Basic. Можно программировать и на Java, используя расширенный набор API OmegaBasic. Сайт разработчика — omegabasic.thegamecreators.com, оттуда можно скачать триальную версию, в которой программы ограничиваются 250 строками кода. Для функционирования OmegaBasic необходимо установить на ПК Java 1.4 SDK и Java Mobile 1.2 SDK.
MobileBasic — такая же специализированная среда. Ее особенность — наличие сервисов по так называемой немедленной OVER-THE-AIR («по воздуху») установке написанных мидлетов на телефоны. Написав программу, программист в MobileBasic может сохранить ее в виде JAD- и JAR-файлов. Эти файлы с помощью MidletUploader выгружаются на сервер MobileBasic. Сервер создает WAP/WML-страницы, подключившись к которым с помощью WAP-браузера телефона можно установить мидлет. Кроме этого сервиса, в MobileBasic имеется графический редактор, редактор карт и плиточных изображений, а также редактор мелодий для телефонов Nokia.
Скачать демо-версию MobileBasic можно со страницы www.mobilebasic.com/desktopedition.html. Стоимость продукта — 24,99 фунтов стерлингов, ограничение триальной версии — максимум 1 Кб исходного кода. На сайте не стоит пренебрегать регистрацией, иначе запустить MobileBasic получится не более 30 раз. Как и в прошлом случае, необходимы установленные на компьютер Java SDK.
Итог: OmegaBasic и MobileBasic — почти близнецы в плане подхода к написанию кода, к тому же обладают схожим функционалом. Недостатки: необходимость приобретать платную версию и устанавливать Java SDK. На этом фоне ярко выделяется MidletPascal — самый популярный, простой в установке, и главное — бесплатный!
ТЯЖЕЛАЯ АРТИЛЛЕРИЯ
C for Symbian — наилучший (и, по сути, единственный) язык для создания профессиональных и коммерческих приложений для смартфонов Symbian Series 60. Именно на нем пишется сама система и предустановленное программное обеспечение. Если вы полны решимости программировать на C for Symbian, то необходимо установить:
1) среду разработки — CodeWarrior (www.forum.nokia.com/codewarrior), Carbide.с (www.forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/) или другое;
2) SDK для Symbian соответствующей Edition и Feature Pack под нужную среду разработки (www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html);
3) Java 2 Standard Edition;
4) Perl версии не ниже 5.003.07.
При создании программ на C for Symbian можно получить доступ ко всем возможностям смартфона, что не идет ни в какое сравнение с Java и прочими интерпретируемыми языками. Полученные продукты будут потреблять минимум ресурсов и работать с максимальной скоростью, так как между программой и системой не будет посредников-интерпретаторов.
При компиляции программного кода создается не только приложение, а также иконка и необходимые файлы ресурсов. Все это в конце концов упаковывается в установочный файл SIS. После его подписи (если необходимо) разработчик может распространять и продавать программу как готовый продукт.
* * *
Экскурс подошел к концу, а значит пора решаться на выбор средства программирования. Если хотите получить профессиональный продукт — необходимо использовать C for Symbian, популярная Java не так быстра и не поддерживает всех возможностей платформы S60, зато может запускаться и на обычных телефонах, причем не только от Nokia.
Python — отличный выбор для тех, кто собирается писать несложные, но полезные программы; возможность отлаживать программы прямо на смартфоне уникальна. Мы подготовили серию статей, обучающих программированию на мобильном Python, и приложили ряд примеров и любопытных программ, написанных специально для Mobi. В наших закромах также найдется материал по работе с MidletPascal.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Самая популярная платформа
Платформу Series 60 создала компания Nokia. Финны решили поделиться удачной разработкой — они не только сами выпускают огромное количество S60-смартфонов, но и предоставляют лицензии другим производителям. S60-аппараты есть в активе Samsung, Panasonic, LG и других. Samsung, к примеру, недавно представила свой первый S60-смартфон с GPS — Samsung i550.
Темная лошадка
Невозможно не упомянуть о языке Ruby (русская страничка preview.ruby-lang.org/ru/). Он обладает двумя серьезными минусами, которые сдерживают его распространение на S60: отсутствие графического интерфейса и доступа к «телефонным» функциям смартфона. Программы на этом языке не могут работать с графикой, SMS, камерой и т. д. Выигрывает Ruby за счет быстрых математических вычислений и работы с интернетом. Будем ждать дальнейшего развития проекта!
Вооружение программиста
Программирование для любой платформы невозможно без SDK — Software Development Kit (набор разработчика), обычно его можно получить бесплатно из интернета. Практически всегда только SDK содержит компилятор, эмулятор и другие приложения.
Вся работа с компилятором и другими утилитами идет в командной строке DOS, а сама программа и конфигурационные файлы набираются в любом текстовом редакторе.
Для удобной работы существует IDE (Integrated Development Environment) — среда разработчика, посредник между SDK и пользователем. IDE содержит текстовый редактор, функции для создания и управления проектом, а также средства, автоматизирующие работу. IDE укажет компилятору из SDK обработать программу, создаст необходимые файлы и выведет ошибки, если таковые имеются. За такие блага часто приходится платить наличными — в основном IDE разрабатываются сторонними фирмами.
Кстати, некоторые IDE, например MidletPascal, обладают встроенным компилятором, что позволяет обойтись без установки SDK. Мобильные же интерпретаторы сами по себе реализованы как среда разработчиков, и компиляторов не предполагают.
Язык в языке
Существуют Java-мидлеты, которые позволяют прямо на смартфоне писать и запускать программы. MobileBasic, например, можно скачать со страницы www.mobilebasic.com/phoneedition.html. Стоимость — 9,99 евро, триальный период — 30 дней. Вся работа ведется в командной строке, где нужно набрать текст на языке Basic и нажать джойстик. В случае успешного выполнения будет напечатано READY, в противном случае появится подробное сообщение об ошибке.
На практике процесс ввода кода и запуска программы получился крайне неудобным. Тем не менее в последней версии разработчики обещают богатые возможности работы с вычислениями, графикой, файлами и интернетом.
Более привлекателен DROS — эмулятор старого доброго DOS. Мидлет позволяет запускать BAS-файлы — программы на языке Basic. Язык не так богат функциями, упор сделан на создание игр. Большой плюс — удобный редактор текста программы, а главное — он абсолютно бесплатен! Скачать ZIP-архив можно с сайта www.whoredoeuvre.com, где кроме самого мидлета будут примеры и инструкция с описанием программы и языка Basic.
Сертификация в Symbian 9
При написании коммерческого приложения для Symbian 9 (а это все новые смартфоны от Nokia) разработчик должен купить сертификат на право использования необходимых библиотек с нужными функциями, что стоит денег. Возможность доступа к функциям подтверждается соответствующей подписью установочного файла. Бесплатные приложения можно создать, но они буду иметь ограниченный функционал. Все это продвигается компанией Symbian и Nokia как новое слово в безопасности и борьбе с мобильными вирусами.
Похожие файлы
Создание и управление интерфейсом на Android с Python. Часть 4
Программирование для смартфоновФруктовый Python! Часть 2.
Программирование для смартфоновЗдесь находятся
всего 0. За сутки здесь было 0 человек
Комментарии 10
Еще ошибочка ... Java - это не интерпретатор, а виртуальная машина, и программы для нее тоже компилируются...
* редактировал(а) transparent 16:30 29 янв 2008
Ошибочка вышла! В самом начале статьи утверждается, что \компилятор выдает EXE-файл\. Вообще-то, компилятор выдает объектный файл (расширение файла obj), а EXE-файл выдает линкер (или компоновщик). Это вам любой программист скажет.
Кто бы скинул basic для компа который был на 386, 486 ibm, поностальгировать
* редактировал(а) angelripper 07:04 18 янв 2008
Спасибо за статью! В инсте изучаем c так как я на программиста учюсь. А разница есть между смартфонским и простым c ?
0 ответить