この記事は1年以上編集されていないため、情報が古い可能性がございます。
ご注意ください。

このWordPress pluginを配布しています

先日、知り合いが実装をお手伝いしたアプリがリリースされたのですが、レビューがひどいことになっていて悲しくなりました。
評価がほとんど1で、コメントも「強制終了ばかりで何もできない」といったものが多かったです。

彼はあんなにも「深夜帰り」を繰り返したのに、、、これは救われません。

落ちバグは救われない

このアプリに限らず、悪いレビューが付く最も多い理由はやはり『アプリの強制終了』でしょうか。だって、アプリが動かなかったら何にもできませんからねぇ。

クラッシュなどという表現もありますが、このブログではアプリ落ちと表現します。

私も公開されているゲーム系のアプリを数多くプレイしていますが、ユーザ視点でアプリ落ちに遭遇すると、控えめに表現して「腹が立ち」ます。
私は開発も行っていますので、「なぜ落ちるのか」の見当がつく場合もありますが、エンジニアではない普通のユーザさんの反応はこんな感じだと思います。

  • 意味が分からなくて困惑する
  • 速攻でアプリをアンインストールする
  • そしてレビューで1をつける

「アプリ落ち」はこのようにプレイヤー離れに直結しますよー。最優先で対処しなければなりません。

アプリが落ちる原因

アプリ落ちが発生する原因は大きく以下に分けられます。

  1. メモリ不足
  2. リソースの破損
  3. アプリのバグ

メモリ不足

端末側でたくさんのアプリを起動しており、システムメモリの空き容量に余裕がないにアプリ落ちが発生することがあります。
PCもスマホもマシン性能の発達が著しく、1年前のモデルと現行モデルでメモリが半分ということもあります。

開発者側が低い性能のマシンをベースに開発、デバッグを行えばよいのですが、性能の低い端末で検証することがそもそも開発者のストレスになってしまうため、結局「最新モデルでデバッグしちゃう」ということやってしまいがちです。

また、デバッグが甘くメモリリークを修正しきれずアプリ落ちにつながるということもあります。
メモリリークは端末のメモリを食いつぶす実装上のバグです。

リソースの破損

据え置きゲーム機も含め、インターネット上から追加コンテンツをダウンロードゲームが主流となってきました。
このように後からコンテンツを差し込める仕組みは短い期間でコンテンツを提供できるというメリットがあり、今後も増えていくと思います。

問題なのは「インターネットは通信に失敗する」ことでしょう。
正常に通信が完了しなかった場合でも、アプリ側でそれを感知することができず、ダウンロードリソースを参照しようとしてアプリ落ちが発生してしまうことがあります。この通信エラーを想定しておらず、破損したファイルにアクセスしてアプリが落ちてしまうこともあります。

ファイルの破損については、画像ファイルのファイルサイズが異様に小さいとか、Packデータの展開に失敗するとかで見てみるとファイルサイズがゼロとか、中身が500エラーと書かれていたなどということもあります。

ネット接続をアプリ側から制御することは絶対に不可能であるため、キャッシュクリアボタンを配置してユーザさんに「ゴメンナサイ、リソースダウンロードしなおしてくださいね」とするのですね。

アプリのバグ

アプリ落ちや進行不能となるようなバグは、開発段階できるだけ取り除いていきますが、「取り切れないバグ」というものがどうしても一定数残ってしまいます。
また近年スピード感がものすごい早く、十分なデバッグ期間を確保することがだんだん難しくなってきていると感じます。

落ちないアプリを作りたい

バグを出して嬉しいエンジニアなんていません。
自分が一生懸命作ったアプリで喜んでもらいたい、その気持ちはどのエンジニアも同じなはずです。

ファミコンのゲームで落ちることなんてなかった」と、かつて後輩エンジニアが私に語ってくれました。しかし、ファミコンソフトと今のアプリでは仕様の複雑さもアプリのボリュームも月とスッポンですよ。

アプリの複雑さや実装難易度がどんどん上昇しているのにもかかわらず、同時に短納期化もどんどん進んでいくという流れに今はあると思います。

エンジニアは「せめて落ちない」を目指して、それを実現できるように日々情報収集とシェアに努めてレベルアップを果たさないといけないのかなと思います。
そして同時に「落ちない」という当たり前を死守するために、プロジェクト責任者を啓蒙していくことも必要だと、私は考えています。

離れてしまったユーザを呼び戻すことはほぼ不可能です。ユーザが離脱してしまった原因が「アプリ落ち」では何とも、情けない。

ですから、期日を急ぐあまり中途半端なものを世に出すよりは、練り込まれた高品質なものに仕上げてから世に出す方が100倍良い、と主張します。


※過去に異なるタイトルで公開していたエントリを加筆・修正して再掲しました。

スポンサーリンク
ad_336
ad_336
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存