迅速なエラー処理の計画が必要です

Appleでアプリを作成するための唯一の言語としてSwiftを使用することで、アプリのSwiftベースのエラーを計画して対応する方法を知ることが不可欠になりました。

予期しないエラーが常に発生します。開発者として、コードに可能な限り最善の変更を加えることができなかった方法と理由、またはユーザーの応答を支援する方法と理由について、できるだけ多くの情報が必要です。ただし、開発者にとって最も役立つことは、ユーザーにとって必ずしもそれほど役立つとは限りません。これは、アプリを成功させるために理解することが重要です。

この記事は、開発者とチームマネージャーの両方を支援することを目的としています。

成功したSwiftエラー処理は常に計画から始まります

アプリのコードベースを管理するチームに所属している場合、またはそのチームのマネージャーである場合は、エラーに対処するための効果的な計画を立てる必要があります。計画がない場合、または計画がすべての人に明確に理解されていない場合、不必要にすべての人の作業が増えることになり、一貫した満足のいくエクスペリエンスをユーザーに提供することは困難になります。

Swiftで構築されたアプリの効果的なエラー処理計画には、次のものが含まれている必要があります。

ジェフケリーとのエラー処理エピソードまたは360iDevからの彼のプレゼンテーションのリンクを確認することをお勧めします:

Swiftのテストアプローチを成功させるには、この機能を含める必要があります。これにより、予想されるエラーを事前に修正し、さらに重要なことに、予測して対応できるようになります。

計画の最後の部分である、エラーが発生した場合にユーザーと明確にコミュニケーションを取り、関与することは、非常に困難な場合があります。役立つように、発生する可能性のある最も一般的な3つのタイプのエラーの例と、エラーが発生したときにユーザーを引き付ける方法を紹介します。

ネットワークエラー—ユーザーを圧倒しないでください

Swiftを使用してアプリを開発する場合、ネットワークエラーが最も一般的なタイプのエラーである可能性があります。ほとんどのiOSアプリ、またはそれに関するあらゆる種類のアプリは、機能のコア部分としてネットワークを備えています。

予防策として、特に何かが進行中の場合は、ネットワーク接続があることを示す何らかの表示をアプリに組み込む必要があります。たとえば、アプリがデータを転送している場合は、そのことをユーザーに明確にし、切断しないように警告する必要があります。

ネットワークエラーは、ユーザーがアクションを実行する必要がある可能性が高い種類のエラーの良い例です。アプリが接続を試みてネットワークが利用できない場合は、接続が不十分なためにアプリが失敗したことをユーザーに説明するダイアログ画面を使用します。優れたユーザーエクスペリエンスを実現するには、可能であれば、ユーザーに再接続を試みるオプションを提供します。

ただし、再試行ボタンをコーディングしたことがある人なら誰でも知っているように、ネットワークアーキテクチャがアプリのUIから分離されていない場合(最近のほとんどのアプリで一般的)、これを行うのは難しい場合があります。 。エラーとそれが発生した理由を説明する情報は、ユーザーが応答できるポイントまで上げる必要があり、判断が難しい場合があります。

重要なのは、ユーザーに中継するネットワークエラーの詳細を検討することです。エラー番号とデータは開発者にとっては便利ですが、その多くの情報は技術者以外のユーザーにとっては圧倒されるでしょう。原則として、情報がユーザーエクスペリエンスに関連しない場合は、ユーザーから非表示にする必要があります。

権限—情報に通じたユーザーは幸せなユーザーです

ユーザーとの効果的なコミュニケーションに基づいて、アプリを再び機能させるためにユーザーが決定を下さなければならないエラーが発生する場合があります。保護されたリソースにアクセスするためのAppleのシステムは、このシナリオの優れた例のソースです。

Appleエコシステムのこの側面に精通していなくても、理解するのは簡単です。最近の携帯電話やデバイスには、私たちに関する機密情報がたくさんあります。多くのアプリは、このデータを使用してユーザーを支援しています。これには、位置情報、写真、カメラ自体へのアクセスなどが含まれます。これらは保護されたリソースとして知られています。

すべてのアプリがそれらにアクセスする必要があるわけではないため、デフォルトでは、Appleは保護されたリソースへのアクセスを制限しています。アプリが機能を実行するために保護されたリソースを必要とし、アクセス権がない場合、これによりエラーが発生します。アクセスするには、アプリは、特定のデータまたはハードウェア機能を使用するための許可が必要な理由を説明したケースリクエストを行う必要があります。次に、ユーザーはアプリに権限を付与するかどうかを決定します。

権限を処理する際の2つの重要な考慮事項があります。 1つ目は、アプリが特定の保護されたリソースにアクセスする必要がある理由をユーザーに明確にすることです。 Apple自体はこれについて明確です:

「アプリが機密データにアクセスする必要がある理由をユーザーに正確かつ簡潔に説明することで、通常は1つの完全な文で、ユーザーは十分な情報に基づいて決定を下し、アクセスを許可する可能性を高めることができます。 」

わかりやすい説明が必要なだけでなく、ユーザーエクスペリエンスが向上し、最終的にはアプリがより成功するようになります。

2番目の考慮事項は、権限を拒否するユーザーを処理する方法を決定することです。繰り返しになりますが、アクセスの拒否が役立つ場合は、アプリの機能の制限についてユーザーに明確に伝えます。また、コードレベルで、許可が拒否されたという永続的なエラーに対処する方法を決定する必要があります。

理想的には、特定のデータや機能が利用できない場合でも、ユーザーがアプリを使用できるようにする必要があります。同時に、ユーザーが保護されたリソースを必要とする何かをしたい場合は、設定に移動して権限を付与する必要があることを引き続き明確にすることが重要です。

注意すべき障害は、アクセスの欠如と入力の欠如の違いを(まだ)見分ける方法がない場合があります。この良い例は心拍数の監視です。アプリはユーザーの心拍数に関するデータを収集できないためにエラーが発生する可能性がありますが、これが許可の欠如によるものなのか、心拍数によるものなのかを報告することはできません。デバイスのセンサーが機能していません。

健康データを使用している場合、これは注意が必要です。

不足しているファイル—正常に失敗する方法

多くのエラーはユーザーの助けを借りて回復できますが、発生する可能性のあるエラーがあり、致命的となる場合があります。これらをどのように処理する必要がありますか?

理想的には、これらのエラーを可能な限りクリーンかつ適切に処理する必要があります。欠落しているファイルは、この一般的な例です。アプリが、ストーリーボードファイル、画像、データベース、主要なコードなど、機能するために必要な主要なリソースを見つけられない、またはアクセスできない場合です。エラーを確認して修正するには、アプリを閉じてバグレポートを開発者に送信する必要があります。

何かが深刻な問題を抱えており、アプリをシャットダウンする必要があることをユーザーに示します。おそらく、アプリを閉じてバグレポートが送信されたことを確認するためのボタンを提供します。グリッチだけではないのか、ユーザーがアプリを改ざんしたのかを知らせることもできます。

https://share.transistor.fm/s/03d8db53

Swiftのベストプラクティスの詳細については、BrightDigitニュースレターを購読してください

iOSとAppleのスペシャリスト開発者として、私は常に将来を見据えて、次に何が起こるのか、そしてどのようにしてお客様のためにより良いアプリを構築できるのかを見ています。 Swiftでエラー処理にプロアクティブに対処できることは、より優れたアプリを構築するだけでなく、アプリの存続期間にわたってアプリを管理するために必要な時間とリソースを最適化する上でも重要です。

それがあなたとあなたのビジネスが取り組んでいることである場合は、サブスクライブしてください。ここで、Appleアプリを作成および保守するための最新のベストプラクティスをお知らせします。

2020年12月8日に https://brightdigit.com で最初に公開されました。