LoginSignup
1
0

2024年の 実践Moddable 補足

Posted at

はじめに

日本語でModdableを解説している技術書である実践Moddableが発売されてから4年が経過しようとしています。
内容としては概ね現在読んでも問題が内容ではありませんが、現在までのModdableはアップデートし続けおり、本記事ではそれに伴う補足について記載していきます。

これから実践Moddableを読んでModdableでの開発を始めようとする方の参考になれば幸いです。

発売当時から現在までのModdableのアップデート内容全般はボリュームが多くなりすぎるため、実践Moddableで取り扱う項目をベースに触れていくことはご了承ください。

発売当時はどんな時

ベースとして紹介されているコミットは79b50f5です。その時点でのコミット数は2632です(現時点では8100コミット)

差異については以降で触れていきます

また、デバイスとしては本文中にも触れられてますが、M5stack core2が発売される少し前ごろで、ESP32で対応しているデバイスはM5stack、M5stick-cなど10種類程度です。

1. Moddable 概説

2. Moddableをはじめよう

  • 環境構築手順は、Moddableのリポジトリから最新のものを参照しましょう

  • xs-devというModdableおよびESP-IDFなどのツールチェインまで自動的にセットアップするCLIツールが誕生したので、それを使えば環境構築はすぐに完了するようになりました

  • mcconfig実行時にenv ESPBAUD=1500000 DEBUGGER_SPEED=1500000 を指定していますが、これらは各デバイスごとのmanifest.json で指定されるようなったため付与は不要になります

3. サンプルで理解するModdable

  • 3.2でM5Stackのディスプレイ色反転問題の処置方法がありますが、これは自動的に判別して正しい色となるように修正されているため、現在では起きない問題です
  • 3.2末の起動音鳴らさないについては、manifest.json で制御できるようになっています。config.startupSoundを空文字にしましょう
    • core2の起動時のバイブレーションも同様に config.startupVibration0にすると無効になります
  • 3.6、3.7でドライバーを実装していますが、最近ではEcma-419準拠で実装することが多いです
  • 3.8、3.9のネットワークス関連機能もEcma-419のものが使えますが、特にHttpリクエストではfetchが使えるようになっています

付録A

  • JavaScriptで開発できるIotプラットフォームでは、DeviceScriptEdison.jsが誕生しています。私はどちらも触ったことがないですが、認識としては遠隔操作方式に該当します

付録B

  • npmを使った外部パッケージの追加は、mcpackという新しく追加されたコマンドを使うとできるようになります
    • とは言えAPI互換性の問題やコードサイズやメモリ使用量といった課題があることには変わらずです
    • Moddableに特化した外部パッケージをnpm経由で追加することもできますが、現時点でそういったモジュールを開発している事例はほとんど見たことがありません
    • また、外部モジュールを利用する仕組みとしては、マニフェストファイルに対象gitリポジトリのURLとマニフェストファイルパスを指定する方法も追加されています

おわりに

出版から今までの大きなトピックとしては、著者であるししかわさんが手のひらサイズロボットのスタックチャンの開発が始まります。TypeScriptメインでの実装やModdableの機能をふんだんに盛り込んだソフト構成となっており、スタックチャン駆動でModdableへコントリビューションすることもしばしば。一方で、スタックチャンからModdableに入門したもののキャッチアップする事項が多いことも課題となっており、そこで、アールティ版スタックチャンで始めるModdable入門という駆け足気味の入門記事を書いたりもしましたので、もし興味があればご参照ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0