Лучшие смарт-часы — Pebble. Даже с учетом того, что компания, производящая их, была продана, а новых устройств больше не будет, это все равно лучшие смарт-часы, которые можно купить.

Это особенно верно, если вы разработчик программного обеспечения или просто любите играть с кодом. Pebbles предоставляет вам мощный, но простой SDK для C и Javascript. И классная веб-IDE — CloudPebble. В результате очень легко разрабатывать приложения и циферблаты.

Но вы, наверное, знаете, что я большой поклонник Kotlin, поэтому C и Javascript мне явно недостаточно! Поскольку Kotlin-native на данный момент не поддерживает платформы, используемые в Pebble, я решил использовать KotlinJS.

KotlinJS — это способ преобразования кода Kotlin в Javascript. За отправную точку я взял это репо — https://github.com/pebble/pebblejs. В этом репозитории вы сможете разрабатывать приложения для Pebble на Javascript локально.

Во-первых, вам нужно следовать этим инструкциям https://developer.pebble.com/sdk/install/ для установки PebbleSDK. Кроме того, вам необходимо настроить инструменты командной строки Kotlin. Для этого я использую SDKMan. Как только у вас есть все, что вам нужно идти.

Итак, я сделал форк репозитория pebblejshttps://github.com/gimlet2/pebblekt. Первое, что нужно проверить, это build.sh скрипт. Он состоит из трех шагов:

  1. Соберите код Kotlin в Javascript с помощью kotlinc-js
  2. Удалите неиспользуемый код с помощью kotlin-dce-js
  3. И pebble buildдля фактического создания артефакта для Pebble.
  4. Последний шаг, который не является частью скрипта — установка — вы можете использовать разные опции команды pebble install.

Последнее, на чем стоит сосредоточиться — папка src:

  1. в папке js вы найдете оригинальный SDK PebbleJS. Также здесь в файле app.js можно найти результат транспиляции Kotlin.
  2. Стандартная библиотека KotlinJs находится в папке kotlinjs. Он огромен, но kotlin-dce-js поможет это исправить.
  3. И, наконец, папка kotlin содержит привязки к js-коду (например, ui.kt), некоторые вспомогательные функции в pebble.kt и app.kt — код приложения.

Если вы соберете и запустите этот код, вы получите типичное приложение Hello world, подобное этому:

В этом проекте я хочу попробовать расширить Kotlin на новую платформу. Стоит отметить последний релиз Kotlin-native(0.6.0) с поддержкой чипов STM32. Но это история для другого поста.