App Architecture
🆕 はiOS 15.0
から導入されたものです。
Launching
- Provide a launch screen. → コンテンツのロード中にユーザを待機させない 参考: Launch Screen
- Launch in the appropriate orientation. → アプリ起動時の画面の向きを考慮する 参考: Adaptivity and Layout
- Avoid asking for setup information up front. → 設定画面は最小限に(カスタマイズ性より汎用性 ※ユーザ意識)
- Avoid showing in-app licensing agreements and disclaimers. → App Store等に規約を明示する(ユーザにとって不要なダウンロードは避ける)
- Restore the previous state when your app restarts. → 何度も同じ手順を踏ませない
- Don't encourage rebooting. → 何度も再起動させない
- Avoid asking people to rate your app too quickly or too often. → レビューを強要しない
Onboarding
- Provide onboarding that helps people enjoy your app, not just set it up. → 有意義な情報を精査する
- Get to the action quickly. → チュートリアルはスキップ可能にする
- Anticipate the need for help. → ユーザが困りそうな(または既に困っている)タイミングでチュートリアルを挿入する
- Stick to the essentials in tutorials. → チュートリアルに含む情報を精査する
- Make learning fun and discoverable → 体験学習をさせる(仕様を眺めさせない)
Loading
- Make it clear when loading is occurring. → ユーザに待機させる場合はインジケーターを表示する
- Show content as soon as possible. → プレースホルダを用意して画面だけは先に表示する
- Educate or entertain people to mask loading time. → ロード時間を利用してTipsを提供する
- Customize loading screens. → インジケーターはアレンジする 参考: Progress Indicators
Modality
- Use modality when it makes sense. → モーダルはユーザに重要な情報を提供するときのみ利用する
- Reserve alerts for delivering essential - and ideally actionable - information. → アラートはユーザ操作を阻害するものであることを念頭に置いておく
- In general, keep modal tasks simple, short, and narrowly focused. → モーダルはなるべく手短に済ませる
- Consider using a fullscreen modal style for immersive content or a complex task. → モーダルはフルスクリーン表示の方が没頭させられる
- Always include a button that dismisses the modal view. → モーダルは常に解除(非表示)できるようにする
- When necessary, help people avoid data loss by getting confirmation before closing a modal view. → データが消える場合にモーダルを利用する
- Make it easy to identify a modal view's task. → モーダルを表示する際はそのモーダルの責務を示す
- Coordinate the modal view's appearance with your app. → アプリケーションのUIに沿ったモーダルを作る
- Choose a modal transition style tat makes sense in your app. → モーダルの遷移スタイルは一貫させる
Navigation
- Always provide a clear path. → 直感的に分かる遷移にする
- Design an information structure that makes it fast and easy to get to content. → 目的のコンテンツまで最短で遷移させる
- Use touch gestures to create fluidity. → ジェスチャーによる遷移を可能にする
- Use standard navigation components. → 標準的なナビゲーション部品を利用する
- Use a navigation bar to traverse a hierarchy of data. → ナビゲーションバーを利用する場合はタイトルに現在の階層を明示する 参考: Navigation Bars
- Use a tab bar to present peer categories of content or functionality. → タブバーを利用してコンテンツのカテゴリごとにまとめる 参考: Tab Bars
- On iPad, use a split view instead of a tab bar. → iPadの場合はタブバーの代わりにSplit Viewを利用する 参考: Split Views
- Use a page control when you have multiple pages of the same type of content. → Page Controlを利用して類似コンテンツ間の遷移を可能にする 参考: Page Controls
Accessing User Data and Resources
Requesting Access Permission
- Request permission only when your app clearly needs access to the data or resource. → リソースを利用するときにのみパーミッションダイアログを表示する 参考: Using the Location Button
- Request permission at launch only when the data or resource is necessary for your app to function. → アプリ全体でリソースを利用する場合は利用前にパーミッションダイアログを表示し、その旨も明示する
- Write copy that clearly describes how your app uses the data or resource you're requesting. → パーミッションダイアログでリソースを利用する場面とその理由を明示する 参考: Requesting Access to Protected Resources / App Tracking Transparency
🆕 Using the Location Button
- Consider using the location button to give people a lightweight way to share their location for specific app features. → 位置情報を「一度のみ利用」すると予想できる場合はLocation Buttonでの実装を検討する
- Consider customizing the location button to harmonize with your UI. → アプリケーションのUIに合うようにカスタマイズする
🆕 Using the Microphone in a ShazamKit App
- Stop recording as soon as possible. → 音声認識機能は短時間での利用に留める
- Let people opt in to storing your app's recognized songs to their iCloud library. → 音声認識によって判別した曲はiCloudに保管できるようにする 参考: ShazamKit
Displaying Custom Messaging Before the Alert
- Make it clear that opening the system alert is the only action people can take in your custom-messaging screen. → ユーザがリソースの利用を許可すると容易に想像できる場合は、パーミッションダイアログを表示する前に説明書きを表示する(続行ボタンのラベルは「続ける」や「次へ」を利用する)
Clarifying Tracking Requests
- Never precede the system-provided alert with custom messaging that could confuse or mislead people. → パーミッションダイアログ表示前の説明書きでは、ユーザがリソースの利用を承認するように仕向けない
Settings
- Infer what you can from the system. → リソースを利用することでユーザの設定項目を極力減らす
- Thoughtfully prioritize configuration options within your app. → 設定項目の重要度に応じてメイン画面とサブ画面に配置を分ける
- Expose infrequently changed configuration options in Settings. → 変更頻度の低い設定項目はアプリ内で設定できるようにする 参考: Implementing an iOS Settings Bundle
- Provide shortcuts to Settings when appropriate. → 「設定」アプリに遷移する場合は遷移先に直接飛べるようにする 参考: openSettingsURLString