株式会社PentagonにてFlutterエンジニアをしているtsurumiiiです
この記事では、初めてアプリ開発のディレクションをした時の、感想と反省点を書いていきます。
【こんな人に読んで欲しい】
これから開発のディレクションをする予定の人
将来PMになりたい人
【この記事を読むメリット】
アプリ開発する前に読むと、開発する順番を意識することが重要だと再確認できる。
【結論】
チームの全員がまだ触ったことがない領域や、ライブラリを使用する場合は先にそのタスクを始めることが大切。
開発の概要
今回私がディレクションしたアプリは、ティラノスクリプトというツールを使用したアプリ(ノベルゲーム要素を含むもの)でした。そのアプリのFlutterへリプレイス、そして追加機能の実装をしました。
ティラノスクリプトはWebベースになっているのでFlutterのWebViewで簡単に実装できるだろうと当初は思っていました.....
反省点その1
ティラノスクリプトの実装部分で2点詰まってしまった部分があります。
1点目は、ティラノスクリプトの再生の際に横向きにするのですが、横向きにすると縦幅がはみ出る現象に陥ったことです。
色々画面の向きを回転させる処理を遅らせたりなど、タイミングを試してみました。
結果的に、画面の向きを回転させる処理を2回することで、サイズが合うように調整されることが分かり解決したのです。
2点目は、ティラノスクリプトのボタンがAndroidで反応しない問題です。
ティラノスクリプトはWebで実装されているので、javascriptでのイベント処理を埋め込むことができます。その処理をFlutter側で検知するのですが、iosはwebview_flutterのjavascriptChannelsというので検知できます。しかし、Androidはうんともすんともいいません。
ios、Android両方のネイティブのコードを確認してみると、Android側はjsAlertを検知するようになっていたのです。イベントを検知・取得する方法はわかったのですが、webview_flutterではjsAlertを取得できませんでした。なので、代わりにflutter_inappwebviewを使用しました。
結果的に、Androidではflutter_inappwebviewを、iosではwebview_flutterを使用することになりwidgetの描画処理を分岐することになってしまったのです。
反省点その2
今回の開発の追加実装部分は、ガチャを引く課金処理です。
チームの中で課金処理を実装した人はいなかったので、手探り状態の実装でした。
課金処理をゼロから実装すると工数が増えてしまうので、課金の際のレシートなどを行ってくれるRevenueCatという課金プラットフォームを使用。
課金の実装は上手く行ったのですが、実装するタイミングを今回だいぶ後半に回しました。そのため、後半の方で課金のテストをする時間があまりなく不具合や考慮していない点などが多く発見されたのです。
まとめ
今回、初めてアプリ開発のディレクションをさせて頂いて反省点を2つ挙げました。
この反省点を今後の開発で改善するならば、2つとも共通で分からない領域や未知の部分は先に実装・調査を進めることです。実装のタイミングを後半に持っていくと、不具合が出ると、開発側は期限もあるのにと焦ります。前半やなんなら最初の方に実装すると後は既に知っている部分ばかりになるので、心理的にも楽に開発ができるようになると思いました。