アップデート内容
うわぁー! アプリ内のデータが消えてしまうリスクを軽減しました!
詳細
はいどーも! ハヤえもん開発者のりょーたです。
今回のアップデートでは、iOS 15以降の環境でアプリ内のデータが消えてしまうケースがあったのを修正しました。
この不具合により、データが消えてしまった方、誠に申し訳ありませんでした!
開発後記
バグ。アプリが意図しない動作をしてしまうこと。
アプリを開発する上で避けなければならないものの1つです。
そんなバグの中でも特に避けなければならないもの。
それが「アプリのクラッシュ」と「データの消失」です。
ハヤえもんでは、この問題に長らく取り組んできました。
まずは、クラッシュについて。
「ユーザーさんがクラッシュに遭遇するケースをできる限り減らしたい!」
そんな思いを抱き、ユーザーさんからいただいた情報をもとに、発生数が多く原因が特定できたものから順にクラッシュが発生しないように改善してきました。
次にデータの消失。
「データが消えました」
ユーザーさんからそんな連絡をいただくたび、何とか直せないかと試行錯誤を重ねてきました。
ソースコードをくまなく点検したり、ウェブから情報を集めたり、想定されるケースを洗い出したり、再現テストをしたりなどなど。
これもクラッシュ同様、原因が特定できたものから順に対処してきました。
今回の対応も、そんな中の1つです。
きっかけはユーザーさんからいただいた不具合のご連絡でした。
内容は「曲の再生中に充電が切れ、もう一度電源を入れ直してからしばらく経ってアプリを起動すると、アプリ内がすべてリセットされていて、チュートリアル画面が出てきた」というもの。
ぼくがビックリしたのが、「チュートリアル画面が出てきた」という点。
ハヤえもんでは、一度チュートリアルを見たら、左メニューの「チュートリアルを再表示」というメニューを選ばない限り、勝手にもう一度出てくるようなことはありません。
初回インストール時にしか出ないはずのチュートリアル画面が出てきた。文脈から「チュートリアルを再表示」を選んだわけでも無さそうです。
「え、これって、曲が消えただけじゃなくて、設定データ自体が空っぽになったってこと……?」
そう思い、ハヤえもんのソースコードを点検したところ、設定データを消すような処理はありません。
意味が分からず、ウェブ上で情報を集め始めました。
日本語や英語でひたすら検索しまくった結果、iOS 15で導入された「プレウォーミング」という機能に辿り着きました。
これは、アプリの起動時間を短縮化するための機能で、ユーザーさんがアプリを起動する前にiOS側でアプリを自動的に読み込んでおく機能のことです。
端末の画面がロックされた状態で、このプレウォーミング機能が働くと、どうやら設定データにアクセスできないケースがあるらしいという情報を見つけました。
そこで、「データが消えてしまった」という過去の質問を点検したところ、iOS 15以降ばかり。
「こ、これかも……!」
そんなわけで今回の対応にいたりました。
具体的には、プレウォーミングで呼び出される処理の範囲内では設定データにアクセスせず、アプリが実際に立ち上がってから設定データを読み込むような作りに変更しました。
この対応により、「データが消えました!」という悲しき自体が無くなりますように……!
そう願っています。とはいえ、クラッシュするケースもデータが消えてしまうケースもまだ残っているかもしれません。
安心してアプリを使っていただけるよう、今後も改善していきますので、なにか遭遇された方はアプリ内の「お問い合わせ」メニューからお気軽にご連絡くださいませ。
また、バグ以外でも端末が急に壊れるなんて事もあり得ますので、アプリ内の「データのバックアップ」機能を活用いただくとともに、大切なデータの保管は、外部ストレージにも複数箇所へのバックアップを推奨しております。
なにとぞ、よろしくお願いいたします。
それでは、Enjoy “Your” Music with Hayaemon!!
音楽を、もっと楽しく!