Как создать тему на symbian

Обновлено: 29.04.2024

Сейчас немало мобильных приложений пишутся с использованием HTML и Javascript. Оно и понятно — подобные приложения легче писать, легче переносить с одной мобильной платформы на другую, не нужно осваивать Java, Objective C и другие языки. Однако для большинства мобильных ОС все-таки требуется некая обертка. В самом простом случае необходимо написать небольшое приложение, которое будет представлять собой развернутое на максимум окошко встроенного веб-браузера. Для поддержки специальных возможностей (например, работы с контактами или файлами) нужно будет либо дописывать его для поддержки нужных функций, либо воспользоваться одним из фреймворков для написания мобильных приложений. В любом случае, вам понадобятся специальные инструменты, будь то компилятор или тот же фреймворк.

Однако в Symbian, начиная с Symbian S60 3rd Edition, появилась одна хорошая штука — Symbian Web Runtime (WRT). Она позволяет разрабатывать свои мобильные приложения с использованием HTML и Javascript, используя только стандартные средства практически любой десктопной операционки — текстовый редактор и ZIP-архиватор. По сути, это тоже мобильный фреймворк, но уже встроенный в систему, не требующий дополнительных инструментов или компиляции. Давайте посмотрим на него поближе?

Hello, world!

Будущее WRT-приложение (или правильнее, WRT-виджет) при первом рассмотрении представляет собой ZIP-архив с расширением .WGZ. В нем находится папка с файлами (если просто заархивировать файлы — работать не будет, только в папке). Внутри обязательно должен быть файл info.plist и основной HTML-файл. Также может быть файл icon.jpg с рекомендуемым размером 88x88 пикселей, который будет служить иконкой нашего виджета. Все остальное — на ваше усмотрение.

Формат файла info.plist почти точно такой же, как у Apple, и описан здесь. Вот пример:

Параметр Тип Использование Описание
DisplayName Строка Обязательный Название вашего виджета. Будет отображаться в главном меню телефона.
Identifier Строка Обязательный Уникальный идентификатор виджета.
MainHTML Строка Обязательный Относительный путь к основному HTML-файлу.
Version Строка Необязательный Версия виджета.
AllowNetworkAccess Boolean Необязательный Дать виджету доступ к сети. По умолчанию false — доступ только к локальным данным.
MiniViewEnabled Boolean Необязательный Дать возможность добавлять виджет на рабочий стол. По умолчанию false. Если устройство не поддерживает виджеты рабочего стола, то этот параметр игнорируется.

Если теперь создать файл index.html в той же папке, в нем написать что-то типа этого:


А затем сжать эту папку в ZIP-архив и поменять у него разрешение на .WGZ, то мы уже получим приложение для Symbian.

Вот для начала и все. Можете верстать странички, писать код на Javascript для них, тестировать в своем браузере, а потом легко и просто превращать их в мобильные приложения для Symbian. Стоит однако учесть, что для подключения CSS и Javascript файлов из интернета вам нужно будет включить параметр AllowNetworkAccess.

Локализация

Если вы желаете перевести свой виджет на множество языков, вам помогут встроенные средства локализации. Это довольно просто.


Для поддержки любого языка вам нужно создать внутри основной папки подпапку с названием <язык>.lproj (например, "en.lproj" или "fi.lproj"):

Если вы желаете перевести название вашего виджета, вам нужно создать файл infoplist.strings и поместить в него строчку примерно такого вида:


В остальном процесс локализации довольно прост. При загрузке файлов с каскадными таблицами стилей, скриптами, картинками или другими ресурсами WRT ищет их сначала в подпапке с локализацией, и только потом — в основной папке. Например:




Javascript

В результате для финского языка выведет финский флаг, для английского — английский, а для всех остальных — тот фиолетовый.

Web Runtime API

Отдельно стоит упомянуть об WRT API. Оно позволяет осуществлять взаимодействие с Symbian. В WRT 1.0 функций не особо много, но начиная с WRT 1.1 есть возможность работать со многими сервисами этой мобильной операционки. Об работе с сервисами — чуть ниже. Полную документацию вы можете найти на странице «Symbian Web Runtime API reference» официальной документации. Ниже я вкратце переведу часть этой документации. Некоторые моменты в документации просто не описаны или спорны, так что если заметите ошибку — пожалуйста, напишите о ней, и я ее исправлю.

  • widget — базовые возможности WRT;
  • menu — работа с меню приложения;
  • MenuItem — класс для создания пункта меню;
  • device — работа с сервисами Symbian; появилось в WRT 1.1.
widget

Вот пример из документации:

Javascript
  • identifier — идентификатор виджета, объявленный в файле info.plist.
  • onshow — обработчик события показа виджета. Вызывается при переходе виджета из фона в активное состояние.
  • onhide — обработчик события скрытия виджета. Вызывается при переходе виджета в фоновое состояние.
  • onexit — обработчик события закрытия виджета. Вызывается при закрытии виджета.
  • isrotationsupported — если устройство поддерживает переключение между портретным и ландшафтным режимами, это свойство установлено в true. Если устройство поддерживает только один режим, то в false. Необходимо проверять значение этого свойства перед вызовами widget.setDisplayLandscape() и widget.setDisplayPortrait().

Доступен как window.menu или просто menu. При этом слово menu является в WRT зарезервированным и не должно использоваться как название переменной или функции.

При помощи этого объекта можно управлять меню приложения. Меню закреплено за левой программной кнопкой и не может быть переназначено на любую другую (например, на правую). Левая кнопка называется "Options" (или иначе в разных локализациях). Правая программная кнопка назвается "Exit" и завершает приложение. По умолчанию программные кнопки скрыты и показываются лишь тогда, когда пользователь нажимает одну из них (на клавиатуре устройства).

  • append(MenuItem menuItem) — добавление в меню пункта menuItem.
  • remove(MenuItem menuItem) — удаление из меню пункта menuItem.
  • getMenuItemById(Integer id) — получение объекта MenuItem с кодом id. Если такой отсутствует, возвращается undefined.
  • getMenuItemByName(String menuItemLabel) — получение объекта MenuItem с названием menuItemLabel. Если такой отсутствует, возвращается undefined. Что будет, если у двух пунктов совпадают названия, в документации не описано, но скорее всего вернет первый найденный.
  • setLeftSoftkeyLabel(String label, Function callbackfunc) — установка названия левой программной кнопки. Если title — пустая строка, то будет установлено значение по умолчанию ("Options" или др. в зависимости от локализации). callbackfunc — функция, вызываемая при нажатии на кнопку (по умолчанию — показ меню). Если в callbackfunc передано null, возвращает кнопке функцию по умолчанию.
  • setRightSoftkeyLabel(String label, Function callbackfunc) — установка названия правой программной кнопки. Если title — пустая строка, то будет установлено значение по умолчанию ("Exit" или др. в зависимости от локализации). callbackfunc — функция, вызываемая при нажатии на кнопку (по умолчанию — завершение приложения). Если в callbackfunc передано null, возвращает кнопке функцию по умолчанию.
  • showSoftkeys() — показать программные кнопки.
  • hideSoftkeys() — скрыть программные кнопки.
  • clear() — очистить меню.
  • onShow — обработчик события показа меню. Вызывается при показе меню.
MenuItem
  • new MenuItem(String label, Integer id) — конструктор. Создает новый пункт экземпляр MenuItem с названием label и кодом id.
  • append(MenuItem childMenuItem) — добавление в подменю пункта childMenuItem.
  • remove(MenuItem childMenuItem) — удаление из подменю пункта childMenuItem.
  • setDimmed(Boolean flag) — устанавливает, показывать или нет пункт меню. Если false, то пункт меню не показывается. Если true — пункт меню будет показан. По умолчанию true — показывать.
  • onSelect — обработчик события выбора пункта меню. Вызывается при выборе пункта меню. В функцию-обработчик также может передаваться Integer id — код выбранного пункта меню.

Пример из документации:

device

Доступен как window.device или просто device. При этом слово device является в WRT зарезервированным и не должно использоваться как название переменной или функции.

Этот объект присутствует начиная с WRT 1.1 и открывает огромные возможности по работе с сервисами Symbian при помощи всего одной функции.

Плюсы и минусы

  • легкость разработки;
  • возможность разработки без устройства под рукой (в эмуляторе или веб-браузере);
  • возможность использования множества сервисов Symbian;
  • наличие документации и примеров;
  • к сожалению, на большинстве устройств используется довольно старая версия WebKit, которая не поддерживает HTML 5 и CSS 3;
  • также на части устройств до сих пор используется WRT 1.0, функциональность которого крайне мала;
  • документация местами путана и противоречива, нет русского перевода.

Кстати говоря, на тех же Nokia N9 и Nokia N950, на базе ОС MeeGo с браузером Nokia Browser 8.5, HTML 5 вполне поддерживается — вы можете, к примеру, написать игру с использованием Canvas, с поддержкой жестов и акселерометра. Правда, там уже используется не WRT, а возможности HTML 5.

Спасибо за прочтение. Извиняюсь за возможные ошибки и буду рад полезным замечаниям.

Сегодня каждый из нас старается сделать свой смартфон как можно больше уникальным и индивидуальным. Это можно сделать поставив какую-нибудь мелодию на звонок, поставить картинку на рабочий стол или же просто создать свою тему. Да, конечно же можно скачать и чью-нибудь тему, но она уже будет не в единственном экземпляре! Именно о том как создать тему для смартфона с ОС Symbian 9.1 я и хочу рассказать Вам сегодня.

А именно привести несколько программ с помощью которых это можно сделать.

Carbide.ui s60 Theme Edition

Carbide.ui Theme Edition - простой в использовании и одновременно эффективный инструмент создания пользовательских интерфейсов для мобильных устройств series60.

Carbide.ui Theme Edition предлагает профессионалам уже знакомые функции, включая функцию «перетаскивания», плюс отличный набор графических инструментов для создания индивидуальных тем для смартфонов. Непрофессионалы также смогут использовать приложение для изменения всех элементов пользовательского интерфейса, начиная от фонов и навигационной панели и заканчивая звуковыми и анимационными эффектами.

Carbide.ui Theme Edition

Как только пользователь приложения создает новый интерфейс, Carbide.ui Theme Edition автоматически пакует его в инсталляционный файл, после чего любой владелец смартфона сможет установить новую тему на свой телефон.

Также Theme Edition обеспечивает:

  • поддержку сторонних графических и аудиоредакторов
  • поддержку различных видов разрешения дисплея: 352 x 416, 240 x 320 и 176 x 208 pixels
  • импорт различных форматов контента, включая SVG, BMP, GIF, Jpeg, PNG, SWF и TIFF.

Series 60 Theme Studio

Программа Theme Studio позволяет создавать темы с нуля или изменять уже существующие. Пользователи отмечают широкие возможности софта и дружелюбный интерфейс, однако размеры программы достаточно большие (60 Мб) - скачать ее получится лишь тем, у кого выделенная линия, да и компьютер для работы нужен мощный.

Sony Ericsson Themes Creator

Sony Ericsson Themes Creator

Theme DIY

И на последок программа при помощи которой можно создавать темы непосредственно прямо на смартфоне.

Theme DIY v1.0

Theme DIY – бесплатная утилита для создания тем без использования ПК. Позволяет настраивать фон, цвет индикатора батареи, вращать картинки, имеет 2 эффекта: blur и fade. Также программу можно использовать для создания полноэкранных "обоев" из любого изображения, которое хранится в памяти смартфона.

Все вопросы связанные с данными программами можно обсудить на нашем форуме.

Павел : Люди, как называется программа, что бы из готовой темы вырвать данные нужные для переделки темы под себя, что бы не делать полностью новую тему?
ответить17:01 03.03.2010

валерка просто открой тему через зип и все она у всех на компах есть и делай че хочешь))
ответить12:04 21.01.2011

Нет, ее не извлекли из захоронений египетских фараонов! Phoebus MB6000 - это небольшое симпатичное устройство, которое использует 3G PCMCIA карту оператора, чтобы создать WiFi сеть.

Было бы здорово, если б сотовый телефон напоминал вам, что вы его забыли. Не правда ли? Конечно можно подумать о хирургическом вмешательстве, которое навсегда соединит вас с вашим любимым сотовым телефоном. Можно просто-напросто привязать телефон к себе :) А можно, что-нибудь изобрести…

"Меня зовут Мохамед Сокор, я пишу вам из лагеря беженцев в Даабе. Сэр, здесь просто ужасающая ситуация. Людям не хватает еды. Вы должны помочь", - такое письмо Мохамед написал с помощью мобильного телефона двум донорам из США.

Заглянул на огонек

Многие спрашивают "с помощью какой программы вы делаете такие замечательные темы?"

и так, вот список программ с помощью которых можно создовать темы, но какая из них лучшая?:

1. Theme Editor 6600

Одна из первых программ для создания тем. крайне не удобная программа.
В данный момент ей ни кто не пользуется.

Полная версия программы, для создания Тем для Nokia 6600/7610/6260 на PC.

2. Series60 Theme Studio 1.1.4

Первая официальная версия программы преднозначенная для создания тем под 7 версию ОС т.е. Symbian 7.* платформы Series60.

+ удобный интерфейс
+ с программой есть примеры готовых тем
+ предпросмотр создоваемой темы
|--------------
- порграмма тормозит
- делает темы только для Symbian 7.* (6600, 6620, 6670, 6260, 7610, 3230)
- не совместима с Photoshop (последних версий)

3. Series60 Theme Studio 1.2.1

На данный момент это самая лучшая программа, именно версия 1.2.1, для создания тем под Symbian 7.* / 8.*
Ей пользуются все создатили тем.
в отличии от версии 1.1.4 она стала менее тормозить, и добавилось много новых элементов, таких как маска (альфа канал, чтобы делать прозрасность), системные иконки и папки и множество других этементов.

+ удобный интерфейс
+ с программой есть новые примеры готовых тем
+ предпросмотр создоваемой темы
+ программа менее тормозит
+ совместима с Photoshop (последних версий)
+ появилась маска (альфа канал)
+ появилась другие иконки и папки
|--------------
- порграмма всёровно тормозит
- иногода выдоет ошидку при создании SIS-файла.

(почиму-то самой лучшой и нужной версии нет в разделе Downloads)

4. Series60 Theme Studio 2.0

Эта новая версия программы предназначенная для создания тем под Symbian 9.1
эту версию сейчас сложно найти т.к. это была тестовая версия программы.
она делала только темы для Symbian 9.1 и использовала векторную графику, а не растровую как в 1.2.1

5. Series60 Theme Studio 3.0

Новая и самая продвинутоя версия программы которая делает темы для Symbian 7.* / 8.* / 9.*

Эта версия как и предыдущая использует векторную графику и из за этого сложно найти новые иконки или другие элементы темы.
она стала проще, но она теперь стала поддерживать такие программы как Corel Drow и Adobe Illustrator
с Фотошопом в ней работать теперь не реально, но можно.
при создании тем под Symbian 7.* программа создает слишком маленькие иконки и не создает папки.
чтобы создать тему под Symbian 9.* теперь нужен сертификат в отличии от 2.0, а его нужно сделать самому при помощи командной строки.

+ делает темы для Symbian 7.* / 8.* / 9.*
+ удобный интерфейс
+ с программой есть новые примеры готовых тем
+ предпросмотр создоваемой темы
+ использует разные разрешения экрана смартфона
|--------------
- программа тормозит при большом разрешении
- под Symbian 9.* нужен сертификат
- использут векторную графику

Если вы хотите делать темы для смартфонов на Symbian 7.* / 8.*
то лучшая программа это Series60 Theme Studio 1.2.1


Для всех тех, кто всё еще работает с темами в Symbian.

Как это не прискорбно, но век Symbian безвозвратно истек. На смену ему пришел Android , а его сменит еще кто-нибудь. Так что придется перестраиваться. Тем ненее для тех кто пока не подсел на Android , для них предназначена данная русифицированная програма по сборке тем - Carbide.ui Symbian Theme Edition v4.3 RUS

Новое направление в развитии приложения Carbide.ui Theme Edition. Программа является удобным, наглядным и эффективным инструментом для творческого подхода к созданию пользовательских интерфейсов (тем оформления) мобильных устройств Symbian ^ 1 и Symbian ^ 3.
Для создания тем Вам нет необходимости определять макет будущей темы, самостоятельно компилировать тему, не потребуются какие-либо специальные дизайнерские знания и навыки. Все инструменты наглядны и понятны для пользователя, создавая тему, Вы видите будущий макет интерфейса вашего экрана смартфона прямо в окне программы. Вы сможете использовать Carbide.ui Theme Edition для изменения практически всех элементов пользовательского интерфейса своего телефона, начиная от графики и заканчивая звуковыми эффектами.
По завершению работы по созданию темы, будет скомпилирован и подписан установочный пакет темы оформления, и прямо из программы Вы сможете выполнить установку данного файла в Ваш смартфон.

» Программа на русском языке
» Включена поддержка тем для аппаратов на базе Symbian ^ 3
» Улучшена производительность
» Поддержка Windows 7
» Добавлены новые цветовые группы для аппаратов на базе Symbian ^ 1 (платформа 5th Edition)
» Обновлена справка, теперь она на русском и это заслуга miron301963
» Установлены дополнительные и переведены (все) плагины:

S60 Theme Core-2.0.0
E6 - 1.2.0
E6Belle - 1.2.0
E66 - 1.6.1
E71 - 1.6.1
E72 - 1.1.0
E75 - 1.6.1
Italianlab_Belle - 5.1.0
N97 - 3.2.1
NokiaBelleFP1 - 1.0.0
NokiaBelleFP2 - 1.0.0
Symbian^3 - 1.3.0
Symbian^3_PR2.0 - 1.3.0
Symbian^3_Step1 - 1.5.0
S60_BASE - 3.4.1
S60_32 - 3.5.1
S60_5.0 - 2.1.1
TMA symbian^touch - 4.1

Эмулятор требует регистрации, поэтому работает только 14 дней в триальном режиме. Для сброса триала я написал этот bat-ник. Под Windows 7 и выше запускать с правами администратора.

(Устанавливаем по желанию)

Проблема со значками

"\Symbian\Carbide\workspace\GUIDemo\group\BLD.INF" FATAL ERROR(S): \Symbian\Carbide\workspace\GUIDemo\group\BLD.INF(21) : \Symbian\Carbide\workspace\GUIDemo\group\ICONS_SCALABLE_DC.MK does not exist

В файле проекта group/bld.inf меняем строку:

Ошибки "undefined reference . "

Ошибки вида:

Решение:

Нужно подключить lib-файл. (В данном случае lbs.lib). Открываем mmp-файл и добавляем библиотеку во вкладке Libraries.


Не создаются sis/sisx файлы

Проблема:

При компиляции проекта не происходит сборка sis(x) пакета.

Решение:

Нужно зайти в Project → Properties → Carbide.c++ → Build configurations . Выбрать в Active Configuration в выпадающем списке значение Phone release (GCCE) . Во вкладке SIS Builder нажать кнопку Add . Выбрать PKG-файл, потом нажать Ok .


Включение пиктограммы в меню

Проблема:

При создании консольного приложения из шаблона Basic Console Application (EXE) не добавляется пиктограмма в меню приложений.

Решение: ToDo: почему-бы не создать bat-ник для автоматизации?

В папке data создать файл с именем

и следующим содержимым (здесь и далее выделенные жирным значения поменяйте на свои):

В mmp-файл добавить:

В pkg-файл добавить:

Приложение не совместимо с телефоном

Проблема:

При установке sis-пакета появляется ошибка "Приложение не совместимо с телефоном"

Причина:

В pkg файле должно быть прописано для каких платформ и/или отдельных моделей телефонов подходит данное ПО. Это предупреждение появляется если данный телефон не поддерживается, либо список в pkg вообще не указан (что, например, происходит при создании нового проекта из шаблона Basic console application (EXE) ).

Решение:

В файл sis/YourAppName.pkg нужно добавить список поддерживаемых продуктов (можно более одного) в виде строк:

  • ProductUID - Уникальный идентификатор платформы/модели в виде 16-ричного числа (список будет приведён чуть ниже)
  • VersionRange - Версия прошивки платформы (я всегда ставлю 0.0.0 , что значит любая прошивка)
  • ProductName - Название платформы (насколько я понял, оно ни на что не влияет), обязательно в кавычках

Это значит, что программа предназначена для S60v3 и S60v5 (Symbian 9.1 и 9.4). (Пример PKG-файла целиком)

Имеется обратная совместимость (сверху вниз) версий 9.X. Другими словами, если программа предназначена, например, для Symbain 9.2, то она также должна работать и на 9.1.

Список идентификаторов основных платформ:

Платформа ID
S60 3rd Edition (Symbian 9.1) 0x101F7961
S60 3rd Edition FP1 (Symbian 9.2) 0x102032BE
S60 3rd Edition FP2 (Symbian 9.3) 0x102752AE
S60 5th Edition (Symbian 9.4) 0x1028315F
UIQ3 (Symbian 9.1) 0x101F6300
UIQ3.1 (Symbain 9.2) 0x101F63DF

Более полный список можно найти в программе SISContents или на этом сайте.

Как узнать какие версии SDK установлены или заменить текущую?

В командной строке используйте команду devices . Доступные аргументы:

Если не находит команду, добавьте следующий путь в переменную среды PATH : C:\Program Files\Common Files\Symbian\Tools (или C:\Program Files (x86)\Common Files\Symbian\Tools ).

Для получения списка всех установленных на компьютере SDK выполните команду devices без аргументов:

Сделать SDK текущим можно опцией -setdefault (не забудьте указать префикс @ перед идентификатором SDK):

Особенности экспорта значков в формате SVG из InkScape

ToDo: добавить раздел и в англ. версию.

Нажимаем Сохранить как и выбираем формат Простой SVG . Затем преобразовываем получившийся файл в формат Tiny-SVG при помощи утилиты SVG2SVGT , входящей в комплект SDK.

2) Проблема с ломаными линиями

По умолчанию, когда InkScape сохраняет фигуру, содержащую прямые линии, он опускает команду L / l в атрибуте d (и действительно — по стандарту она не обязательна). Пример записи:

Symbian OS такие фигуры читать правильно не может, поэтому нужно явно прописывать команду L / l . Корректный пример:

Чтобы InkScape использовал полный формат, заходим в Правка > Параметры. > Ввод и вывод > Экспорт в SVG и включаем опцию Данные контура > Принудительно повторять команды .

3) Исчезают цвета в градиентах (выглядят чёрно-белыми)

В коде созданном InkScape можно увидеть, что используется два отдельных тега для каждого градиента (т.е. наследование градиентов).

Читайте также: