ITmedia NEWS > STUDIO >

自作のiOS音楽アプリをAndroid対応させたい…… Googleの「Flutter」を使ってみたら簡単さに驚き古代サンプラーがアプリになるまで(2/3 ページ)

» 2022年11月30日 17時45分 公開
[山崎潤一郎ITmedia]

Flutter開発、プログラマーの本音は?

 The Manetronでは、Androidスマートフォンやタブレットへの対応を進めている。初代マネトロンの時代から、Android版のManetronを出して欲しいという要望が世界のメロトロンファンから寄せられたことは前回のコラムでもご紹介した。

 今回、Androidに対応するにあたり、共同開発しているプログラマーのbismark氏のアドバイスで「Flutter」(フラッター)というGoogleが開発したアプリ用フレームワークを用いた。Flutterは、Androidはもちろん、iOS、Web、Windows、macOSといったプラットフォームにマルチ対応した開発ツールだ。

Galaxy A7(Android 10)のような、今となっては非力な端末でもちゃんとプレイできる

 恐らく、Flutterを用いた楽器アプリの開発は、世界的にみても珍しいのではないだろうか(筆者調べ)。以下、bismark氏によるFlutter開発における感想や手応えを筆者が代弁する形でお伝えする。

 bismark氏自身、MIDIや音楽関係のプログラミングに精通しており、iOSアプリ開発の経験も豊富だ。「bs-16i」という16マルチティンバーのプレイバックサンプラーアプリは、世界中のモバイル系DTMユーザーから熱い支持を得ている。

photo bs-16iはサウンドフォントやDownloadable Soundsなどの形式の読み込みに対応しており、鍵盤楽器だけでなくMIDI音源としても機能する

Flutter、やってみたらこんなに簡単にできちゃった

 これまで、多くのマルチプラットフォーム対応のフレームワークが登場してきたが、発音タイミングが命の楽器アプリの開発には不向きだと考えていた。実際、これまでの経験では、満足できるレベルまで発音時のレイテンシーを削り込むことは難しかった。

 しかし、「Flutterはレスポンスがいい」といううわさを耳にするようになり、楽器アプリ開発でも試してみる価値はあると思うようになった。また、「Androidの本家本元であるGoogleが開発した」という事実も背中を押した。

 実際に試してみると、UIの実装がとても簡単だった。マルチプラットフォーム対応のフレームワークで楽器アプリを開発する場合、鍵盤の実装に多くのリソースを割かなければならず、それがネックとなっていた。鍵盤のユーザーインタフェース(UI)からタッチイベントを拾う場合、その方法論は各プラットフォームにより異なるからだ。

 そのため従来のフレームワークだと、これらのイベントが抽象化されてしまうことが多く、鍵盤独特の細かな操作を具現化することが困難になることが多かった。

 それがFlutterだと、iOSもAndroidも同じように鍵盤のタッチイベントを詳細なレベルで受け取ることができるので、満足できる実装が可能になるとともに、省力化も実現する。実際のところ、「やってみたらこんなに簡単にできちゃった」という感じで両方のプラットフォームに対応できることに驚いた。あくまでもイメージだが、2〜3割の省力化を実現したと思う。

 次のスクリーンショットは、Android Studioでflutterの開発をしているところだ。flutterの開発はMicrosoft VisualCodeもしくは、Google Android Studioで行われていることが多い。この図ではAndroid Studioで、flutter (.dart)、iOS(.swift)、Android(.kotlin)のそれぞれのファイルを開きつつ、デバッグ実行している状態を示している。デバッグ実行しているのはiOS Simulatorだ。

photo Android Studioでflutterの開発をしているところ デバッグ実行しているのはiOS Simulator

Copyright © ITmedia, Inc. All Rights Reserved.