TL;DR
なんやかんやあって途中で断念しました。
uisetlistPlayerって?
uisetlist互換アプリケーション向けのプレーヤー機能のみのネイティブアプリケーション。もともとはKotlinで書いてました。
github.com
Flutterで書き直そうと思った理由
Webとのクロスプラットフォームがふとやりたくなったので。あとはクロスプラットフォームのフレームワークを触ってみたかったので。
断念した理由
使われる見込みがないアプリケーションだったためモチベーションの維持が困難であったことが最も大きな理由です。ネイティブ側のアプリがある程度形になってきた時点で、フレームワークを触るという目的がある程度達成されたこともあります。
得られた知見
クロスプラットフォームはネイティブとWebになると幻想になってくる
Flutterは大抵の機能は探せばライブラリがあるのですが、AndroidとiOSのみサポートというものが多い印象でした。そのため、Webもサポートしたいとなるとプラットフォームごとの分岐がネイティブ開発中時点ですら増えることが見えている状況でした。
細かいことをやり始めると車輪の再発明がどうしても必要になってくる
前項で触れたライブラリですが、要求に合致するものがあればいいのですがなければどうしても独自で実装する必要が出てきます。
uisetlistPlayerではコア機能となるYouTubeのプレーヤー部分ですが、代表的なライブラリと思われるyoutube_player_iframeでは実現したいことが実現できず、結局独自で実装しました。
バックグラウンド再生時の通知作成もawesome_notificationsを使用しようとしましたが、これも使い方が悪いのかボタンがアイコンで表示されず……
今後について
作成中のコードはリポジトリのflutter_portingブランチにCommit済みです。本アプリの開発は現時点ではCloseする予定です。
次の開発目標とか決めていませんが、何か見つけます。そのうち。