Лучшие смарт-часы — 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. Как только у вас есть все, что вам нужно идти.
Итак, я сделал форк репозитория pebblejs — https://github.com/gimlet2/pebblekt. Первое, что нужно проверить, это build.sh
скрипт. Он состоит из трех шагов:
- Соберите код Kotlin в Javascript с помощью
kotlinc-js
- Удалите неиспользуемый код с помощью
kotlin-dce-js
- И
pebble build
для фактического создания артефакта для Pebble. - Последний шаг, который не является частью скрипта — установка — вы можете использовать разные опции команды
pebble install
.
Последнее, на чем стоит сосредоточиться — папка src:
- в папке js вы найдете оригинальный SDK PebbleJS. Также здесь в файле
app.js
можно найти результат транспиляции Kotlin. - Стандартная библиотека KotlinJs находится в папке kotlinjs. Он огромен, но
kotlin-dce-js
поможет это исправить. - И, наконец, папка kotlin содержит привязки к js-коду (например,
ui.kt
), некоторые вспомогательные функции вpebble.kt
иapp.kt
— код приложения.
Если вы соберете и запустите этот код, вы получите типичное приложение Hello world, подобное этому:
В этом проекте я хочу попробовать расширить Kotlin на новую платформу. Стоит отметить последний релиз Kotlin-native(0.6.0) с поддержкой чипов STM32. Но это история для другого поста.