Поздно вечером я решил обновить приложение Pebble от Rest, чтобы использовать цветовые функции BASALT, то есть цветовые функции Pebble Time.
В частности, я хотел, чтобы время отдыха показывалось зеленым, а сверхурочное время — красным. Это мои заметки, которые я собрал при портировании приложения на SDK 3, все еще поддерживая APLITE Pebble (или OG, как мне нравится думать).
раскладка
С моим приложением ActionBarLayer
справа есть стрелки и TextLayer
второй обратный отсчет. Я заметил, что при развертывании в BASALT позиция была отключена, и на самом деле все было ближе.
Я сделал несколько простых репозиций, но из скриншота ниже видно, что на ActionBarLayer
самом деле он немного шире:
Это подчеркивается, когда счет фактически уменьшается:
Это связано с тем, что BASALT по умолчанию является «полным экраном». Поэтому, чтобы компенсировать это, мне нужно сделать условное позиционирование элементов. Для позиции TextLayer
, которую я использую 134 - ACTION_BAR_WIDTH
(30 для BASALT и 20 для APLITE):
s_textlayer_120 = text_layer_create(GRect(0, 12, 134 - ACTION_BAR_WIDTH, 42));
Чтобы получить верхнее позиционирование на TextLayer
s, я не мог правильно рассчитать значения, поэтому у меня был условный набор определений:
#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
.