ししかわ商店

2019/09/08

技術書典7でM5StackとModdableの本を頒布します

M5StackModdable技術書典
placeholdercover image

TL;DR技術書典7にて、サークル「北南書房」からM5StackとModdableの本を頒布します。M5Stackへの自作Moddableアプリの書き込み頒布もやります。当日はマイM5Stackを持ってブース「し39D」へ、どうぞお越しください!

書籍「実践Moddable」

ModdableはESP32などのマイコンでJavaScriptを動かせるプラットフォームです。 軽量・省メモリなJavaScriptランタイム「xs」と、コンパイラやデバッガなどの周辺ツールから構成されます。 Moddableを使えば、M5Stackで動くアプリもJavaScriptで書けます。

Moddableロゴ

このModdable、私が今一番推していきたいプラットフォームです。 特に「M5Stackなどを使ってものつくりを始めたいWeb開発者」にModdableをおすすめします。 たとえば次のような良さがあります。

モダンなJavaScriptで書ける: JavaScriptの最新仕様であるECMAScript2019に99%準拠しています。 const/letやasync/awaitはもちろんのこと、例えばまだそれほど浸透していないであろうプライベートフィールドとか、 BigIntにも対応しています。babel等のトランスパイラを別途使う必要もありません。 これほんとうにDX高くて、アプリを書く上で「これがM5Stackの上で動く」ということをほぼ意識せずとも動いてしまいます。

private fieldの各ブラウザの実装状況。今の所ブラウザはChromeとOperaのみ。だけどModdableでは使える!

イケてるUIが書ける: UIフレームワーク「piu」描画ライブラリ「commodetto」が付属しています。 画像や音声を使ったおしゃれな画面が簡単に作れます。

https://twitter.com/i/status/1164221017738211328

M5StackのArduinoライブラリは他の多くのサードパーティ製ライブラリに依存していて、ライブラリ間の互換性の問題もたまに起きますが、 ModdableはESP-IDFの上に直接公式のモジュール群の実装があるので安心感がありますね。 私が半年ほど使い込んでみて、バグも無くとても安定して動いている印象です。

オフラインで動くJohnny-Fiveobnizと違い、外部のサーバを必要としません。 M5Stack単体でJavaScriptのプログラムを動かすことができます。

Moddableを知ったのが昨年12月。以降、色々手を動かしながら推し活動をしていて、 今までにM5StickCをModdableに対応させたりM5Stackのユーザミーティングで紹介したりLINE ThingsのModdable版スターターキットを公開したりしてきましたが、 「実際に使ってみた!」というユーザの方がなかなか現れません。

で、まだ日本語の情報が少ないのも原因のひとつだろうと思い、「実践Moddable」の技術書典7での頒布に踏み切った次第です。 次のような内容になります。

  • Moddableとは
  • Moddableの環境構築
  • Moddableの使い方(画像や音声の扱い、外部のセンサーとの通信、HTTPサーバ/クライアント、BLEなど)
  • 他の「JavaScriptでIoT」なプラットフォーム達との比較
  • 付録:ModdableをJavaScript開発支援ツールで書く(TypeScript、ESLint、Prettier)

今回は本気の普及活動が目的なので、 興味ある方の手に確実に渡るよういっぱい刷って、技術書典以降のさまざまなイベントにも持っていく予定です。 (booth等で紙書籍の販売もしたいと思っています。)

印刷部数の参考にしたいので、ちょっとでも気になる方はサークルチェックしていただけると嬉しいです!

https://techbookfest.org/event/tbf07/circle/5686446375567360

おまけ

当日、マイM5Stackを持ってブースに来場された方に、 Moddableで作ったアプリ「たたけ!ボンゴキャット」を無料で頒布します。

ボンゴキャットがボンゴをたたく!ニャーンと鳴く!

もちろんGitHubに公開してあるサンプルを自身でビルドいただくこともできますが、 まずはアプリを触ってほしいという思いでやってみました。 (M5Stackをその場で書き込む形になるので、M5Stackのロット起因の問題とかでうまく行かない場合もあるかもなのはご了承ください)

以上です〜