私はアプリケーションエンジニアでは無いので、Web系の知識がほぼ皆無に等しいですが、一応ソフト屋です。
ひょんなきっかけから、最近Alexa skillを作成する機会がありました。
いざ、作ってみると思ったより簡単で、プログラミングの入門にも良さそう。
何故そう思ったのか、綴ってみたいと思います。
1. 構成がシンプル
動く仕組みがとてもシンプルで、理解しやすいです。
基本的な仕組みは、ユーザから発せられた声を分解し、プログラム側に引っ張って、処理して、結果を返す。
これだけの流れです。
コーディングが一切不要なスキル作成サービスもありますので、まずはここから基本概念を学んでみても良いでしょう。
2. 開発がほぼWeb上で完結する
Webページ上で設定をいじっていくだけで、基礎的な動作はほぼ実現できます。
コードも書けますし、シミュレータ(仮想実行環境)もあるので、デバッグもできます。
また、ビルドはサーバ側で行うので、PCのスペックが低くても問題無いです。
Webだけでは面倒になりがちな、テーブルデータなどはcsvからインポートもできるので良く考えられてます。
声だけの操作なので、Webのシミュレータでも十分。
もちろん、完成したところで実機確認もできます。
3. Web系開発に繋げられる
イベントハンドラ(コマンドを受けた時の振る舞い)の基本的な処理部分はJavaScript(JS)で記載していきます。
JSはWeb系のプログラミング言語として非常にメジャーな言語。
そして、プログラミング言語の中では比較的習得難易度が低く、初心者向きだと言えます。
スキル作成のためにJSの文法も覚えておけば、今後その経験を活かして、Web系の開発にシフトしていくこともできると思います。
学習したことが無題にならないので、取り組みやすいですね。
4. UI開発が要らない
アプリやWeb開発は、ユーザインターフェース(画面デザインなど)の部分と、バックエンド(ボタンを押したときの動作部分など)の部分をそれぞれ開発するため、
完成するまでにはそこそこの工数が必要ですし、デザインセンスも問われます。
その点、Alexa skillは声による応答なので、UI開発が必要ありません。
厳密に言うとEcho showのようなディスプレイ向けの表示もカスタマイズできますが、必須では無いです。
よって、バックエンドの開発に集中できますし、それによってコードも複雑化しにくいところも良いです。
5.認定が親切
Alexaスキルを作成したら、一般公開したいと思うでしょう。
一般公開するためには、アプリなどの開発同様、Amazonによる認定が必要になります。
この認定ですが、レスポンスがかなり早いかつ、的確にアドバイスしてくれます。
私の場合だと、提出して3時間ほどで認定結果が返ってきました。(却下ですが)
その際、「ここのURLみて、これに従ってね」というような投げやりな指摘では無く、具体的にどこが悪いのかを細かく指摘してくれます。
しかも、自分が申請したスキルを例にとった再現手順を事細かに記載してくれるのです。
それでも分からないことがあれば、質問することが出来ます。
Web系の専門用語使われて難解な指摘を受けるようなことが無いので、初心者に優しいと言えます。
6. 対応デバイス数が多い
今話題のAlexaは、Amazon Echoシリーズに留まらず、3rd party製のデバイスにも搭載されていますし、アプリを入れればスマホにも対応しています。
今後も対応デバイスは増える一方でしょう。
そのため、知り合いに宣伝して自分が作ったスキルを使ってもらう、、みたいなことも出来ます。
開発難易度が低いのに、多くの人に使ってもらえるプラットフォームですので、作るモチベーションに繋がりやすいです。
まとめ
何となくVoice UIは難しそうなイメージがありましたが、
私のような非アプリケーションエンジニアでも比較的楽に開発できました。
今話題になっているデバイスですし、結果が実機で見えるのでプログラミングの教育にも良い教材かと思います。