Fast Notion v2.0 を審査に提出した

📆August 04, 2020🔖 Fast Notion

Fast Notion v2.0 を App Store に提出しました。本日提出したので、何事もなければ明日か明後日あたりには公開されることになるかと思います。とは言っても、ユーザーの方への影響はほぼないアップデートなので、期待させてしまった方がいたら申し訳ありません。(内部的なアップデートが中心なので、この記事はその話をしていきたいと思います。)


今回のアップデートは、今後の機能拡充をしやすくするための土台作りみたいなことを行っていました。具体的に言うと、以下の2点になります。

  • Expo eject して bare workflow への切り替え
  • In App Purchase の組み込み
  • そして、この2つを実装するのに訳1ヶ月の期間を要してしまいました(けっこうかかった)。それぞれについて自分の備忘録も兼ねて少し書き残しておきたいと思います。

    Expo eject

    正直、だいぶハマりました。eject してビルド通すところまでも工数がだいぶかかったし、アイコンやスプラッシュスクリーンの再設定等をしたりしました。そして一番ハマったのは release build でだけアプリが毎回クラッシュするというバグでした。はじめは Test Flight でだけクラッシュするという事象で、そこから原因を探っていくプロセスでだいぶ疲弊しました。

    結局、 expo-updates というライブラリとの相性が悪くてクラッシュしているというところまで突き止めて解決しました。気が向いたら別記事書こうと思います。

    「大きめの改修」と呼んでいたのがこれのことでした。正直ナメてた。個人開発なのでまとまった時間もなかなか取れず、モチベーションの低下に繋がったりしました(なんとか保てて良かった!)

    In App Purchase の組み込み

    そして、App 内課金のモジュールを仕込みました。こちらの必要条件に Expo の eject があったので、今回 eject を行ったという背景です。eject 後、Apple での様々な申請作業を済ませて、In App Purchase の組み込みを行いました。こちらの、ネイティブモジュールを使用して、組み込みの実装を行っていきました。

    https://docs.expo.io/versions/latest/sdk/in-app-purchases/

    特にハマったところはなかったのですが、インターネット上にあまり知見がなく、ベストプラクティスが分かっておらず(サブスクで現在課金済みのユーザーかどうかの判定はどのメソッドで行えば良いのか?等)、探り探りの実装になったので、けっこう慎重になりました。(このあたり、もし詳しい方がいたら教えていただきたいです)

    いつものシミュレータでの開発だけでは完結せず、実機ビルドしたり、テストフライトで何度もデバッグしたり等をしました。

    今回のリリースでは、課金すると特に何か機能が増えるとかはないのですが、今後そういう機能を増やしていこうと思っています。(導線だけ設置したので、シンプルに応援いただける方は、プロプランへアップグレードしてもらえると嬉しいです🙏)

    ここにプロプランへの導線をセットしました
    ここにプロプランへの導線をセットしました

    まとめ

    ということで、v2.0 がリリースされます。まあ何はともあれ、土台作りの部分に関するリリースは無事できそうで何よりです。機能リクエスト、沢山もらってるのに実装できてなくてゴメンナサイ。リリースされて、不具合なく正常に動くことが確認できたら、機能追加にフォーカスして頑張っていきたいと思っています。

    (バグとかあったらこっそり教えてもらえたら嬉しいです。)

    これからも引き続き Fast Notion をよろしくお願いします。

    iOS / Android


    (2020/08/04 追記)

    まとめ・反省点

    メッチャ時間がかかってしまった。

    途中で気付いたのですが、スコープが拡大しすぎてしまったので、Expo eject と In App Purchase を同時並行で実装するのではなく、細かくリリースすべきだった。eject したらリリース、In App Purchase を組み込んだらリリース、とスコープ調整をすべきでした。

    今回ハマったバグも、何起因のものかの調査にだいぶ時間がかかってしまいました。細かく進めていけば原因の絞り込みももっとスマートにできたのではないかと思っているので、次回に活かした気持ちです。