iOSアプリ開発とマイコン開発の比較
iOSプラットフォームは研究を始めやすい
iOSにはカメラ、LiDAR、モーション(加速度、角加速度)センサ、マルチタッチ、可能なディスプレイなどのさまざまな入力をもち、ディスプレイ、スピーカー、触覚フィードバックなどの出力、また、Bluetooth、Wi-Fi、Felicaなどの非接触通信をサポートしています。これらを用いた研究や開発を行う場合、iOSは理想的なプラットフォームです。工学的な研究は特に相性がいいでしょう。
どこまで自作する?
もちろん、iOSを使わなくとも、ArduinoやM5Stickなどの使いやすいマイコン(マイクロコントローラ)やPICマイコン、AVRマイコンのような組み込み技術を用いることで必要なものだけを用意してデバイスを自作することは可能です。全部やりたい気持ちもわかりますが、時間は有限であり効率的に開発を進める必要があります。
ここで、加速度による歩数計の開発の流れを例に、iOSとマイコンの比較します。
- iOS
- 加速度センサはデバイスに搭載されているためハードウェアに関する準備は特になし
- SwiftプログラムでCoreMotionフレームワークを使って加速度を取得
- 加速度から歩数を計算
- SwiftUIで歩数をディスプレイ上に表示
- そのほかにセンサ精度は公開されていないことは問題
- マイコン
- 必要な電子品を決定(加速度センサ、ディスプレイ、抵抗、バッテリor電池など)- 分解能や通信方法、部品サイズなどの要件をもとに複数の部品をデータシートで比較して電子部品を選定
- 加速度センサを含む電子部品の配線を決定し、基板やブレッドボード上で配線
- 加速度センサから取得された電圧値を正しく加速度に変換できるように校正
- 加速度から歩数を計算
- 外部ライブラリを用いて歩数をディスプレイ上に表示
どうでしょうか?マイコンの場合は加速度を取得するまでに多くの手間がかかっていますが、iOSではCoreMotionを使うだけで済んでいます。いちいちバッテリの充電制御や適切な電子部品の剪定を行う実用がなく、一気に作りたいものが作れます。
また、開発者に必要な能力に関しても比較してみましょう。
- iOS
- 英語のSwift Documentsを読む力
- Swift言語の理解
- CoreMotionフレームワークの理解
- SwiftUIの理解
- マイコン
- 英語のデータシートを読む力
- マイコンの知識(PICなどの場合レジストリなど)
- 電子回路の理解と計算(回路理論、基板の設計、電子部品の特徴)
- シリアル通信などの知識
- C系言語の理解
- 外部ライブラリの使用に関する理解
マイコンでの方が習得に時間がかかりそうな能力が多いと思います。もちろん、全てにこだわりたい場合には全てのパーツを選ぶことができるマイコンの方がいいでしょう。自作デバイスを作ることにも意義がありますが、その技術の習得には車輪の再発明を意図的に行うような経験が必要であり非効率的な部分もあります。
ノウハウがないならiOS
ここまでに述べたようにiOSの方が基本的に敷居が低いと思います。ですが、実際にiOSアプリのリリースとなると、有料のDeveloper Programへの登録などが必要であり、審査があったりするので大変なところがあります。ですが、Macさえあれば物理的な部品在庫や収納場所が必要ない点においてもiOSアプリ開発の方が簡単だと思います。
Discussion