Эта статья посвящена вопросам использования инструментов, входящих в состав Palm® Mojo™ SDK.

При создании приложения для Palm WebOS, используется такая последовательность действий:

WebOS Application Development Workflow

На данный момент официальная документация содержит описание всех этапов, кроме этапа подписывания приложения. Соответственно в SDK доступны утилиты командной строки, обеспечивающие работу на каждом из перечисленных выше этапов.

  • palm-generate — Для генерирования сцен и приложений
  • palm-package — Для создания инсталляционного пакета, который можно установить на устройство или в эмулятор
  • palm-install —Для установки пакетов на устройство или в эмулятор
  • palm-launch — Для удаленного запуска приложений на устройстве или в эмуляторе
  • worm.jar — Для профилировки приложений

palm-generate

Этот скрипт используется для создания приложений и сцен

Синтаксис вызова утилиты:

palm-generate options

Доступны следующие параметры запуска:

Опция Описание
-f
–overwrite
Перезаписывать существующие файлы
-l
–list
Вывести список доступных шаблонов.
-p {property}
–property={property}
Определяет свойства генерируемого шаблона. Параметр {property} содержит JSON-объект или пары ключ-значение в формате “ключ=значение”. В обоих случаях необходимо заключение значения в кавычки. Кроме того, если в значениях есть пробелы, то эти значения должны быть заключены в одинарные кавычки.
-t {template}
–template={template}
Указывает на необходимость использования шаблона {template}. Если этот параметр не указан, то по умолчанию будет генерироваться новое приложение – шаблон new{{_app}}.
–help Вывод справочной информации.
Примеры использования

Сгенерировать проект с названием “Sample Application” в папке ~/projects/SampleApp

palm-generate -p "title=Sample Application" ~/projects/SampleApp

Создать новое приложение и указать название, уникальный идентификатор и версию

palm-generate -p "{title:'Super Application', id:com.mystuff.superapp, version:'1.1'}" ~/projects/SuperApp

Добавить новую сцену с названием First в приложение HelloWorld

palm-generate -t new_scene -p "name=First" ~/projects/HelloWorld

palm-package

Утилита-упаковщик, которая создает .ipkg файл, который, в свою очередь, может быть установлен в эмулятор или на устройство.

Синтаксис вызова:

palm-package [options ] application-directory

Доступные опции:

Опция Описание
-o {directory}
–outdir={directory}
Каталог, в котором должен быть создан .ipkg файл. Если эта опция не задана, то установочный пакет приложения будет создан в текущем каталоге.
–exclude={pattern} Исключает из обработки файлы, которые подпадают под описание {pattern}. Шаблон {pattern} может также содержать символы * и ?. Значение шаблона чувствительно к регистру если не указана опция –ignore-case.
-X {pattern_file}
–exclude-from={pattern_file}
Исключает из обработки файлы, названия которых совпадают с любым из шаблонов, указанных в параметре {pattern_file}. В файле {pattern_file} указываются шаблоны названий файлов, по одному в каждой строке. Шаблоны названий файлов могут содержать символы * и ?. Значение шаблона чувствительно к регистру если не указана опция –ignore-case.
–ignore-case Указыват что регистр символов в названиях файлов должен быть проигнорирован.
–no-exclude-eclipse По умолчанию, файлы проектов Eclipse исключаются из обработки. Если нужно их включить в инсталляционный пакет, используется эта опция.
–no-exclude-hidden По умолчанию, скрытые файлы исключаются из обработки. Если нужно их включить в инсталляционный пакет, используется эта опция.
–no-exclude-vcs По умолчанию, файлы и каталоги, необходимые для работы систем контроля версий, исключаются из обработки. Если нужно их включить в инсталляционный пакет, используется эта опция.
–help Выводит справочную информацию.
Примеры использования

Создать приложение HelloWorld

palm-package ~/projects/HelloWorld

Создать приложение Sample но исключить из дистрибутива текстовые файлы и папку docs.

palm-package --exclude="*.txt" --exclude="docs" ~/projects/Sample

palm-install

Эта утилита устанавливает приложения в эмулятор или на устройство. Нельзя установить приложение если устройство находится в режиме синхронизации (Media Sync mode). Если приложение устанавливается на устройство, то устройство должно находиться в режиме Developer Mode (см. ниже)

Синтаксис вызова:

palm-install [options] [package]

Доступные опции:

Опция Описание
-d {device}
–device={device}
Указывает устройство, на которое должна производиться установка приложения:

  • tcp – эмулятор.
  • usb – устроство.
    Если эта опция не указана, то программа будет установлена на первое найденное устройство.
-l
–list
Выдает список приложений, установленных на устройстве.
-r {application}–remove {application} Удаляет приложение, уникальный идентификатор которого соответствует параметру {application}.
–help Выводит справочную информацию.
Примеры использования

Установить приложение

palm-install ~/projects/packages/com.example.app_1.0_all.ipk

Удалить приложение

palm-install -r com.example.app

Вывести список приложение в эмуляторе

palm-install -d tcp -l

palm-launch

Запускает приложение в эмуляторе или на устройстве

Синтаксис вызова:

palm-launch [options] {application}

{application} – уникальный идентификатор приложения

Доступные опции:

Опция Описание
-c
–close
Закрывает приложение вместо запуска.
-d {device}
–device={device}
Устройство:

  • tcp – эмулятор.
  • usb – устроство.
    Если эта опция не указана, то программа будет установлена на первое найденное устройство.
-f
–relaunch
Перезапускает приложение.
-i Запускает приложение в Inspector.
-l
–list
Выводит список установленных приложений.
-p {parameters}–params={parameters} Указывает параметры запуска. Значение {parameters} содержит JSON-объект или пары ключ-значение в формате “ключ=значение”. В обоих случаях необходимо заключать все в двойные кавычки.
–help Выводит справочную информацию.
Примеры использования

Запустить приложение

palm-launch com.example.app

Запустить приложение в режиме отладки

palm-launch -p "{mojoConfig:true, debuggingEnabled:true}" com.example.app

Включение Developer Mode

  1. В Card view или в Launcher ввести текст:
    upupdowndownleftrightleftrightbastart
  2. Нажать на иконку Developer Mode Enabler.
  3. В приложении установить значение слайдера Developer Mode в позицию On.
  4. Нажать Reset the Device.

После перезагрузки режим Developer Mode будет включен.

Previous ArticleNext Article
Технический директор IT-Dimension, компании-разработчика кросс-платформенного программного обеспечения

Leave a Reply

Your email address will not be published. Required fields are marked *

С.

Средства разработки для Palm webOS можно попробовать уже сейчас

Ну наконец-то Palm дает возможность разработчикам попробовать в работе раннюю версию SDK для разработки под webOS для устройств Palm Pre. Вчера они анонсировали кампанию под названием Palm Mojo SDK early access program, в рамках которой можно получить средства разработки и доступ к порталу разработчиков для Palm webOS.

Для участия в программе необходимо заполнить форму. Я уже заполнил, жду подтверждения. Судя по вебкасту, довольно интересная платформа.

Л.

Локализация приложений для Palm WebOS

Чем больше поддерживаемых языков в вашем приложении, тем больше целевая аудитория. Не каждый у нас знает английский, точно так же обстоят дела и во многих других странах, поэтому наличие локализированной версии будет выгодно отличать ваше приложение от приложений конкурентов.

В Palm WebOS локализация происходит достаточно прозрачно. Никаких сверхъестественных знаний не требуется.

Локализируем имя приложения, отображаемое в Launcher

Для того, чтобы в Launcher’е ваше приложение меняло название при смене системных настроек локализации, необходимо скопировать файл appinfo.json в папку с локализированными ресурсами.

Путь для размещения локализированных ресурсов формируется таким образом:

  • В каталоге с проектом создается папка resources
  • В папке resources для каждого языка создается отдельная папка и в ней необходимо размещать файлы локализации, соблюдая структуру каталогов.

Например мы создали приложение следующим образом:

palm-generate -p "id=com.mobiledeveloper.localizableapp" -p "title=Localizable Application" LocalizableApplication
palm-generate -t new_scene -p "name=Main" LocalizaleApplication

Получаем appinfo.json такого вида:

{
 "id": "com.mobiledeveloper.localizableapplication",
 "version": "1.0.0",
 "vendor": "Mobile-Developer.ru",
 "type": "web",
 "main": "index.html",
 "title": "LocalizableApplication",
 "icon": "icon.png"
}

Теперь нам необходимо сделать локализацию. Для этого файл appinfo.json мы копируем в /resources/es_us/appinfo.json и текст файла заменяем на следующий:

{
 "id": "com.mobiledeveloper.localizableapplication",
 "version": "1.0.0",
 "vendor": "Mobile-Developer.ru",
 "type": "web",
 "main": "../../index.html",
 "title": "Translated Application",
 "icon": "../../icon.png"
}

В результате, при смене языка на испанский, получим такое в Launcher’е:
WebOS Localized Application in Launcher

Локализируем HTML-текст сцен

Для того чтобы создать локализированную версию HTML-файла сцены, его также необходимо скопировать в папку с локализированными ресурсами, соблюдая структуру каталогов.

Допустим, у нас был файл /views/main/main-scene.html

<div class="row" style="padding-left: 5px;">
    My<br />text <b>here</b>!
</div>

Для создания испанской локализации нам надо скопировать его в /resources/es_us/views/main/main-scene.html и заменить текст:

<div class="row" style="padding-left: 5px;">
    Your<br />image <b>there</b>!
</div>

После смены языковых настроек в системе, мы увидим измененный текст.

Локализация строк в JavaScript

Все строки, для которых необходима локализация, должны быть помещены в функцию $L():

$L("My text here");

Если по каким-то причинам вы не можете использовать исходную строку в качестве ключа, то значение ключа в словаре с переводом можно указать вручную.

$L("value":"Done", "key": "done_key");

Файл со словарем должен находиться непосредственно в каталоге с локализированніми ресурсами и называться strings.json

{
"My text here": "Mi texto aquí",
"done_key": "Listo",
}

Файл со словарем должен иметь кодировку UTF-8 (без BOM). Если работаете в Eclipse, то, если не указать кодировку для файла и попытаться ввести неанглийские символы и сохранить файл, должно появиться сообщение об ошибке.

Если в строку необходимо подставлять значения переменных, то не надо делать конкатенацию строк, лучше переменные указать в тексте. Это делается потому что для каждого языка положение этих переменных в тексте и последовательность следования переменных может отличаться.

Например английская версия строки может выглядеть так:

"Not enough memory to #{action} the file #{fname}."

…а финская так:

"Liian vähän muistia tiedoston #{fname} #{action}."

Чтобы правильно сделать локализацию подобных строк, нужно использовать метод interpolate():

var data={num:10};
var localizedText = $L("You have #{num} messages").interpolate(data);

или класс Template

var template = new Template($L("You have #{num} messages"));
var localizedText = template.evaluate({num: 10});

Скачать исходный код к статье.