Статьи

Примечания по переносу приложения My Pebble на SDK3

Поздно вечером я решил обновить приложение Pebble от Rest, чтобы использовать цветовые функции BASALT, то есть цветовые функции Pebble Time.

В частности, я хотел, чтобы время отдыха показывалось зеленым, а сверхурочное время — красным. Это мои заметки, которые я собрал при портировании приложения на SDK 3, все еще поддерживая APLITE Pebble (или OG, как мне нравится думать).

раскладка

С моим приложением  ActionBarLayer справа есть стрелки и TextLayerвторой обратный отсчет. Я заметил, что при развертывании в BASALT позиция была отключена, и на самом деле все было ближе.

Я сделал несколько простых репозиций, но из скриншота ниже видно, что на  ActionBarLayer самом деле он немного шире:

APLITE против BASALT бок о бок

Это подчеркивается, когда счет фактически уменьшается:

APLITE против BASALT бок о бок

Это связано с тем, что BASALT по умолчанию является «полным экраном». Поэтому, чтобы компенсировать это, мне нужно сделать условное позиционирование элементов. Для позиции TextLayer, которую я использую  134 - ACTION_BAR_WIDTH (30 для BASALT и 20 для APLITE):

s_textlayer_120 = text_layer_create(GRect(0, 12, 134 - ACTION_BAR_WIDTH, 42));

Чтобы получить верхнее позиционирование на  TextLayers, я не мог правильно рассчитать значения, поэтому у меня был условный набор определений:

#ifdef PBL_PLATFORM_BASALT
  #define MENU_TOP 16
  #define MENU_MIDDLE 64
  #define MENU_BOTTOM 112
#else
  #define MENU_TOP 6
  #define MENU_MIDDLE 54
  #define MENU_BOTTOM 102
#endif

Разработка для APLITE  и  BASALT

У меня есть оригинальный (кикстартер) Pebble и Pebble Time. Я привык к развертыванию на устройствах (а не на эмуляторах, хотя я подойду к этому).

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

Обходной путь — продолжать переключаться между двумя приложениями, устанавливая флажок разработчика.

Или … используйте эмулятор в командной строке. Это довольно солидно, и удобно, что вы можете одновременно использовать BASALT  и  APLITE (как вы видели из моих снимков выше).

UI Tweaks

Поскольку мое приложение Rest предназначено для использования в тренажерном зале (я использую тренажерный зал 4 раза в неделю и все  время использую приложение Rest  ), существует несколько важных требований:

  • Ясно читать (быстро)
  • Показать время

Ясность в чтении была мотивом использования цвета в моем приложении. Теперь я могу быстро увидеть, закончил ли я по цвету.

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

Что мне нужно было конкретно сделать, так это убедиться, что он  StatusBarLayer был  под  моим ActionBarLayer, иначе вы получите этот эффект, где  StatusBarLayer вырезы в меню.

Исправление просто обеспечить  ActionBarLayer рисуется  послеStatusBarLayer .