本リポジトリはModdableの日本語翻訳プロジェクトです。
翻訳作業に参加したい方は日本語翻訳プロジェクトのREADMEを最初にお読みください。
Copyright 2017-2024 Moddable Tech, Inc., 2024 Shinya Ishikawa
改訂: 2024年4月3日
Moddable SDKは、マイクロコントローラー用のアプリケーションを作成するための開発ツールとランタイムソフトウェアの組み合わせです。
マイクロコントローラーは、現在主流であるコンピューターやモバイルデバイスと比べると、大幅に制約のあるデバイスです。Moddable SDKが対象とする代表的なマイクロコントローラーは、約45 KBの空きメモリ、1 MBのフラッシュROMを持ち、80 MHzで動作します。Moddable SDKは、こうした制約の中でも効率的に動作するために、ビルド時とランタイムの両方で様々な技術を使用します。
開発の主要なプログラミング言語はJavaScriptです。Moddable SDKの中核をなすXS JavaScriptエンジンは、2023年のJavaScript言語標準に99%以上準拠しています。[1] ただし、対象マイクロコントローラーの制約により、1つのアプリケーションで使用できる言語機能の組み合わせには制限がある場合があります。
Moddable SDKで実装されているJavaScript言語は、WebページやNode.jsで使用されるものと同じですが、スクリプトが実行されるマイクロコントローラーは、パソコンやサーバー、モバイルデバイスとは大きく異なります。こうした違いから、JavaScriptの使い方にも異なるアプローチが必要となることが少なくありません。Moddable SDKのAPIやオブジェクトは、メモリ使用を最小限に抑えることを目的として設計されており、かなり異なる特徴を持っています。JavaScriptに関する既存の経験を活かしつつ、パフォーマンス、コードサイズ、メモリ使用について異なる考え方をもつ必要があります。[2]
可能な限り、Moddable SDKはJavaScriptで実装されています。パフォーマンス向上やネイティブAPIへの直接アクセスのために、Moddable SDKの一部はCで実装されています。[3] C++は使用されていません。
マイクロコントローラー向けに効率的なソフトウェアを構築する上で重要な部分は、ビルド時の処理です。Moddable SDKには、ビルドプロセスのための多様なツールとオプションが盛り込まれています。[4] 最良の結果を得るために、これらについて学ぶ時間を取ることをおすすめします。
[1] 参照: XS 準拠
[2] 参照: XS の違い
[3] 参照: C言語でのXS
[4] 参照: ツール, マニフェスト
Moddable SDKはネットワークソケットと、HTTP/HTTPS、WebSocket、MQTT、mDNS、DNS、SNTP、およびtelnetを含む様々な標準的でセキュアな通信プロトコルを実装しています。
また、Bluetooth Low Energy(BLE)プロトコルのサポートもあり、BLEペリフェラルおよびセントラルデバイスの開発が可能です。
モダンなユーザーインターフェースを構築するための2つのAPIが利用可能です:
- Commodetto、ビットマップグラフィックスライブラリで、2DグラフィックスAPIを提供します。Commodettoには、軽量なPocoレンダリングエンジンが含まれており、フレームバッファを必要とせずに一度に1つのスキャンラインを効率的にレンダリングするディスプレイリストレンダラーです。
- Piu、Commodettoの上に構築されたユーザーインターフェースフレームワークです。Piuはオブジェクトベースのフレームワークで、複雑でレスポンシブなレイアウトを簡単に作成できます。
Moddable SDKには、画像形式の変換、画像圧縮、画像回転、フォント圧縮、ローカライゼーションなどのコマンドラインツールも含まれています。ビルドシステムは自動的にこれらのツールを使用します。
Moddable SDKはデジタル(GPIO)、アナログ、PWM、およびI2Cを含む様々なハードウェアプロトコルを実装しています。一般的な市販のセンサー用の多数のドライバと対応するサンプルアプリも利用可能です。
xsbug
JavaScriptデバッガーは、XSプラットフォームのモジュールやアプリケーションのデバッグをサポートするフル機能を備えたデバッガーです。
他のデバッガーと同様に、xsbug
はブレークポイントの設定、ソースコードの閲覧、コールスタックと変数の検査をサポートします。さらに、xsbug
デバッガーはリアルタイムの計測を提供し、メモリ使用量を追跡し、アプリケーションとリソース消費のプロファイルを提供します。
参照: xsbug ドキュメント
-
Moddable SDKを使用するには、まずコンピュータにインストールする必要があります。これには、このリポジトリのダウンロード、開発ツールのインストール、コマンドラインでの設定の構成、およびModdable SDKツールのビルドが含まれます。
documentation
ディレクトリの 入門ガイド では、Moddable SDKのインストールプロセス全体を詳しく説明しています。 -
Moddable SDKをインストールしたら、ハードウェアシミュレータでアプリをビルドして実行できます。
-
特定のデバイスで開発するには、そのデバイス用の追加ツールとSDKをインストールする必要があります。各デバイスのセットアッププロセスは異なりますが、通常は追加のSDK、ドライバ、および開発ツールをインストールすることを含みます。
特定のデバイスのSDKとツールはModdableによって作成または維持されていませんが、それらをインストールし、Moddable SDKでの開発を開始するための詳細な指示を提供しています。以下のセクションでは、サポートしているデバイスのいくつかのセットアップ手順/開発ガイドへのリンクを提供しています。
Moddable SDKには、macOS、Linux、Windowsで動作するシミュレータが含まれています。これらは入門に最適であり、開発の加速にも非常に役立ちます。
シミュレータを使用するには、Moddable SDK をインストールするだけです。
シミュレータに関する 動画デモ および情報は、ツールドキュメント の シミュレータ セクションで利用可能です。
ESP8266ベースのデバイスでModdable SDKを使用するには:
- Moddable SDK をインストールします。
- ESP8266 ツール をインストールします。
Moddable SDKはESP8266をベースにした多くのデバイスをサポートしており、以下に示すデバイスが含まれます。
Moddable One[5] |
Node MCU ESP8266[6] |
Moddable Three[7] |
[5] 参照: Moddable One 開発者ガイド, Moddable 製品ページ
[6] 参照: ESP8266でModdable SDKを使用する
[7] 参照: Moddable Three 開発者ガイド
ESP32ベースのデバイスでModdable SDKを使用するには、以下の手順が必要です:
Moddable SDKはESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, ESP32-H2をベースにした多くのデバイスをサポートしており、以下に示すデバイスが含まれます。
Moddable Two[8] |
Node MCU ESP32[9] |
M5Stack |
M5Stack Fire |
M5Stick C |
M5Atom Matrix |
[8] 参照: Moddable Two 開発者ガイド, Moddable 製品ページ
[9] 参照: ESP32でModdable SDKを使用する
PicoデバイスでModdable SDKを使用するには、以下の手順が必要です:
- Moddable SDKをインストールする
- Picoツールをインストールする
Moddable SDKは、以下に示すボードを含むRaspberry Pi Picoで構築された多くのデバイスをサポートしています:
Raspberry Pi Pico W |
Pimoroni Pico Display |
ili9341 |
Adafruit QT Py |
Sparkfun Pro Micro |
LILYGO T-Display |
nRF52デバイスでModdable SDKを使用するには、以下の手順が必要です:
- Moddable SDKをインストールする
- nRF5ツールをインストールする
- ブートローダーをインストールする。これはModdable Fourには不要です。Moddable Fourにはブートローダーがプリインストールされています
Moddable SDKは、以下に示すボードを含むnRF52で構築された多くのデバイスをサポートしています:
Moddable Four[10] |
Nordic DK pca10056 |
Sparkfun Pro nRF52840 |
Makerdiary nRF52840 MDK |
seeed XIAO-nRF52840 |
Adafruit ItsyBitsy nRF52840 |
[10] 参照: Moddable Four 開発者ガイド, Moddable 製品ページ
Moddable SDKをGeckoデバイスで使用するには、以下の手順が必要です:
以下の開発者リソースも利用可能です:
Moddable SDKは以下の4つのGeckoボードをサポートしています。
Giant Gecko |
Mighty Gecko |
Thunderboard Sense 2 |
Blue Gecko |
Moddable SDKをQCA4020で使用するには、以下の手順が必要です:
以下の開発者リソースも利用可能です:
- ModdableによるQualcomm QCA4020がModdable SDKに対応したブログ投稿
- Qualcomm Developer Network上のQCA4020 Moddable SDKでの入門ブログ投稿
- Qualcomm Developer Network上のQCA4020 Moddable SDKを使用したモダンUIアプリケーション開発ブログ投稿
WebAssemblyは、コンピュータやモバイルデバイスのモダンWebブラウザでサポートされています。Moddable SDKのWasmサポートは、Safari、FireFox、Chromeブラウザと互換性があります。
Moddable SDKをWebAssemblyで使用するには、以下の手順が必要です:
- ホストプラットフォーム用のModdable SDKのインストール
- Wasmツールのインストール
ESP8266とESP32で様々なSPIディスプレイをテストしました。これらのディスプレイのビデオデモは当社のウェブサイトにあります。配線ガイドはdocumentation/displaysディレクトリにあります。対応するディスプレイおよびタッチドライバのソースコードはmodules/driversディレクトリにあります。
Moddable SDKリポジトリには、以下のトップレベルディレクトリが含まれています:
- build: 特定のマイクロコントローラーターゲットに必要なファイル群、シミュレーター、および
tools
ディレクトリのビルドツール用のmakefile。 - contributed: Moddable APIを使用するための有用な技術を示す非公式のプロジェクトとモジュール。
- documentation: Moddable SDKのすべてのドキュメント。ドキュメントはマークダウン形式で提供されます。
- examples: Moddable SDKのさまざまな機能のサンプルアプリ。readme.md ドキュメントは、サンプルのビルド方法と、目的の種類のサンプルを見つけるのに役立つ情報を提供します。
- license: Moddable SDKに含まれるソフトウェアのライセンス契約。コントリビューターライセンス契約もここにあります。
- modules: Moddable SDKのランタイムを構成するソフトウェアモジュール。これには、通信、グラフィックス、ユーザーインターフェース、ハードウェアアクセス、暗号プリミティブ、およびデバイスドライバが含まれます。すべてのモジュールにはJavaScript APIがあります。多くのモジュールは部分的にCで実装されています。
- tools: Moddable SDKを使用してアプリケーションを構築するためのツール。これには、画像形式の変換、画像圧縮、画像回転、フォント圧縮、ローカライゼーション文字列の処理、リソースのコンパイル、JSONマニフェストファイルからのアプリケーションのビルド用のコマンドラインツールが含まれます。さらに、XSデバッガーであるxsbugもここにあります。
- xs: コンパイラーとリンカーを含むXS JavaScriptエンジン、およびtest262実行シェル。
Moddable SDKによってサポートされるJavaScript APIは、documentation ディレクトリの一連のドキュメントで文書化されています。ドキュメントは広範なリファレンスで、多数の例があります。主要な Piu ドキュメント だけで100ページ以上あります。すべてのドキュメントはマークダウン形式で提供されます。
そのディレクトリの readme ドキュメントでAPIドキュメントの概要をご覧ください。
このリポジトリのドキュメントと例に加えて、開発者向けのいくつかのリソースがあります。
私たちの Gitterチャットルーム は、Moddableチームのメンバーや他の開発者とModdable SDKについて質問したり議論したりするのに最適な場所です。 | |
Moddableブログ には、Moddableの新機能や興味深いプロジェクト、Moddable SDKやXS JavaScriptエンジンの重要なアップデートについての詳細な投稿が掲載されています。 | |
IoT Development for ESP32 and ESP8266 with JavaScript は、Moddableチームのメンバーである Peter Hoddie と Lizzie Prader によって書かれた本です。 | |
実践Moddable JavaScriptではじめるIoTアプリケーション (技術の泉シリーズ は、開発者の石川真也によって書かれた本です。 | |
Moddable SDKのアップデートに関する 詳細なリリースノート は、定期的にGitHubに投稿されます。 | |
Moddable SDKのビルドツールはTypeScriptをサポートしているため、組み込みコードでビルド時の型チェックを使用できます。詳細は ブログ にて。 |
Moddable SDKは、GPL 3.0、LGPL 3.0、Apache 2.0、およびCreative Commons Attribution 4.0ライセンスを含むライセンスの組み合わせの下で提供されています。(./licenses) ディレクトリには使用されているライセンスとライセンスオプションに関する追加情報が含まれています。Moddableウェブサイトの ライセンス記事 では、追加の背景と商用ライセンスオプションを説明しています。
Moddable SDKにセキュリティホールがないように努めています。しかし、すべてを排除することはほぼ不可能です。セキュリティ研究者の方々が当社のソフトウェアに潜在的なセキュリティ問題を特定した場合は、問題を報告することを奨励します。これらにはできるだけ迅速に対応します。もし希望される場合は、メールでセキュリティ問題を報告することもできます。
個人開発者の場合、質問があるか、プロジェクトについて話したい場合は、ディスカッションを開始するか、Gitterチャットルームに参加することをお勧めします。始めるのに困ったり、バグを見つけたりした場合は、問題を報告してください。できるだけ早く対応しますし、他の開発者もあなたの質問に対する回答から利益を得ることができます。
Moddableについてもっと知るには、当社のウェブサイトをご覧ください。
自社製品へのJavaScriptとModdable SDKの活用に関心のある企業向けに、Moddableはコンサルティングサービスを提供しています。設計、実装、トレーニング、サポートを支援します。
Twitter(@moddabletech)でもお問い合わせいただけます。新しいブログ投稿のアナウンスなど、Moddableの最新情報を知る最良の方法です。
直接メールでお問い合わせも可能です:[email protected].