ITmedia NEWS > STUDIO >

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

» 2022年11月30日 17時45分 公開
[山崎潤一郎ITmedia]
前のページへ 1|2|3       

コーディングとUI実装が直結

 これまでUIの実装は、Appleのプログラミング言語「Swift」を利用して開発していた。ストーリーボードでUIを構築したら、そこに該当するコードを連結させるという作業が発生していた。しかし、Flutterは、コードを書いたら、そのままUIの要素に反映させることができる。この辺りが省力化のポイントだと思う。

 Apple自身も「Swift UI」という、最小限のコードの記述でUIを簡単に実装するフレームワークを提供しているが、残念ながらAndroidには対応していない。

 ただ、注意して欲しいのは、音を扱う領域のプログラムは、従来通り各プラットフォームのネイティブコードで記述しているという点だ。つまり、発音部分のプログラミングは従来通り、iOSはSwift、AndroidはKotlinで構築し、さらに音源エンジンはC言語で実装している。今回は、UIが絡む部分だけFlutterで構築したことになる。

 さらに、The Manetronでは、Appleのオーディオ機能「Audio Units(AUv3)」に対応させる必要があるため、その部分のUIは従来通りSwiftで記述した。つまり、UI周辺の実装についていうと、iOSとAndroid用にFlutterで1回、AUv3用にSwiftで1回と、合計2回記述したことになる。

 AUv3のUIもFlutterで記述することは可能かもしれないが、変則的なアプローチが必要になることから、今回は素直にSwiftで記述した方が早いと判断した。

photo AUv3の開発をXcodeで実施中の図。.storyboardと.swiftを開いている

起動時にレイテンシーに関するアラート

 The Manetronのレイテンシーは現状、約100ミリ秒だが、なんとか許容できるレベルにある。メロトロンのようにコードを中心に弾く鍵盤楽器であれば、約100ミリ秒の遅れは演奏者が脳内で補正しながら対応可能だ。

 ただ、Amazonの「Fireタブレット」のように、とても耐えられないレベルのレイテンシーが発生する端末もある。そのような端末からGoogle Play にアクセスしても、アプリを見えなくする仕組みはあるが、今回はその仕組みを利用しないで、起動時にレイテンシーに関するアラートを出すようにした。

photo 初めて起動する際に表示される、遅い端末向けのレイテンシー警告

 全てではないが、今後、開発する楽器アプリもFlutterの活用が可能だと思う。Flutterには、たくさんのプラグインが用意されている点も有利だ。さまざまな機能を付加するプラグインを利用することで、マルチプラットフォーム対応の省力化が実現する。例えば、位置情報を取りたければ「Location」「Flutter」で検索するとさまざまなプラグインが見つかる。

 The Manetronに関しては、iOS版はApp Store、Android版はGoogle Playからリリースされているので、Flutterで開発したマルチプラットフォーム対応の楽器アプリの現実をぜひ体感してほしい。

著者プロフィール

山崎潤一郎

音楽制作業の傍らライターとしても活動。クラシックジャンルを中心に、多数のアルバム制作に携わる。Pure Sound Dogレコード主宰。ライターとしては、講談社、KADOKAWA、ソフトバンククリエイティブなどから多数の著書を上梓している。また、鍵盤楽器アプリ「Super Manetron」「Pocket Organ C3B3」「Alina String Ensemble」などの開発者。音楽趣味はプログレ。Twitter ID: @yamasakiTesla


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.