ユニット 11 / 11

エンドツーエンドのプロジェクト、人工知能の責任ある使用、および専門分野におけるロードマップ

利益:

  • モバイル機能をエンドツーエンドで開発し、設計、コード、AI 統合、プライバシー、テスト、デバッグ、パフォーマンス、リリースの各ステップで検証できる能力
  • 透明性、検証と責任、そして正義と非悪意の原則を備えた人工知能の責任ある倫理的な使用のための枠組みを確立する能力。
  • 人工知能が得意な分野と苦手な分野を区別し、最終的な決定を人間の手に委ねることで、持続可能な専門的実践を構築できるようになります。

このモジュール全体を通じて、コード生成、インターフェイス、オンデバイスとクラウドの AI 統合、テスト、デバッグ、パフォーマンス、プライバシー、ストア配信など、モバイル開発のあらゆる段階で AI を使用しました。この最後の単元では、これらすべての要素を 1 つのエンドツーエンドのフローに結合し、責任を持って倫理的に AI を使用するためのフレームワークを明確にし、これらのスキルを持続可能な専門的な実践に変える方法について説明します。核となるメッセージは変わっていませんが、現在ではしっかりと確立されています。AI は有能なモバイル開発者を倍増させる力です。代替品ではありません。製品の品質、安全性、ユーザーへの約束に対して責任を負う人です。

エンドツーエンドの機能: パーツの組み合わせ

AI サポートを利用して実際の機能を最初から最後まで開発すると、学習したすべての単元が連鎖的に結合されます。例:「レシートから経費を追加」機能。フローは次のように動作します。

  1. 設計 (ユニット 3)。 AIで画面と4つの状態(読み込み中/空/エラー/フル)をドラフトし、最初からアクセシビリティを要求します。
  2. コード (ユニット 2)。 MVVM を使用してカメラ、データ モデル、ViewModel をレイヤーごとに生成します。各レイヤーを確認します。
  3. オンデバイス AI (ユニット 4)。 ML Kit テキスト認識を使用してレシートから金額/日付を読み取ります。前処理と信頼スコアリングを検討してください。
  4. 機密保持 (ユニット 9)。最小限の権限でカメラの許可を要求し、拒否シナリオを作成し、データをデバイス上に保持します。
  5. テスト (ユニット 6)。抽出ロジックの単体テスト、表示の UI テストを生成します。国境州も含めます。
  6. デバッグ (ユニット 7)。 AI にコンテキストに基づいてクラッシュを分析させ、根本原因を解決します。
  7. 性能(8号機)。カメラ処理のバッテリーコストを測定し、バッテリーに優しい設定にします。
  8. 放送(ユニット10)。 AI の使用を透過的に報告し、プライバシー フォームに正直に記入し、セルフテストを実施します。

各ステップでAIが加速し、人間が検証して判断します。このループがモジュールの核心です。

ヒント: 1 つの巨大なリクエストで AI に複雑な機能を実行させようとしないでください。上記のように検証可能なステップに分割します。各ステップの出力をテストして次のステップに進むほうが安全であり、最終的には高速です。なぜなら、大きな間違いは最後ではなく最初の段階で気づくからです。

AI の責任ある倫理的な使用

技術的な能力だけでは十分ではありません。責任あるフレームワークがそれを完成させます。 3 つの原則:

透明性。ユーザーは、自分が AI と対話していることを認識する必要があります。秘密のAIは信頼の侵害です。 AI によって生成されたコンテンツにはタグが付けられます。 AI のアドバイスは、「厳しい真実」ではなく「役立つアドバイス」として提示されます。

検証と説明責任。 AI の出力は出発点であり、完成品ではありません。あなたは、公開されたコードのすべての行、すべての AI 応答、すべてのデータ トランザクションに対して責任を負います。 「AIがそう書いた」というのは弁護にはなりません。

正義と無害。 AI モデルには、トレーニングされたデータからのバイアスが含まれる可能性があります。顔認識は肌の色によっては機能が低下する場合があり、推奨エンジンがグループを除外する場合があります。製品がさまざまなユーザー グループ間で公平に動作することをテストするのはあなたの責任です。

注意: IT およびセキュリティの分野で学んだあらゆるテクニックは、許可された建設的な目的にのみ使用されます。 AI を使用してマルウェアを作成したり、許可なく他人のアプリケーションをクラックしたり、同意なしにユーザー データを収集したり、誤解を招くコンテンツを作成したりすることは違法であり、職業倫理に反します。力の尺度は、それを使わないところに現れます。

AIの限界を認識する

成熟した開発者は、AI がどこで優れているか、どこで不十分かを知っています。

AIは強力です

AIが弱い

金型コード、定型文の製造

製品とアーキテクチャの決定

テストとドキュメントのドラフト

ビジネスコンテキストとユーザーを理解する

クラッシュログの読み取り、エラースキャン

根本原因の明確な診断 (検証が必要)

学習・概念説明

現在の/未作成の API 情報

テキスト、説明、翻訳

倫理、セキュリティ、法的な最終決定

この違いを内面化することが、AI を効果的に使用し、その落とし穴を回避する鍵となります。

ミニケース3個

ケース 1 — エンドツーエンドの速度。ある個人開発者は、上記の 8 ステップのフローにより、「アンプラグド」機能を 4 日で完成させました。 AI がなければ、推定は 12 日でした。しかし、彼がすべてのステップを検証したため、初めて出版が承認されました。規律が本物だったからこそ、スピードも本物だった。教訓: AI + 検証は AI - 検証よりも高速です。

ケース 2 — バイアスがかかっている。 AI ベースの名詞の性別予測機能をテストしているときに、チームは一部のトルコ語の名詞に系統的な誤りがあることに気付きました。モデルは主に英語のデータでトレーニングされました。この機能は、間違った仮定を立てるのではなく、ユーザーに質問するように変更されました。教訓: モデルのトレーニング バイアスをテストするのは開発者の仕事です。

ケース 3 — 「AI がそう言った」という防御は崩壊しました。開発者は、AI が生成した支払いコードを検証せずに公開しました。極端なケースでは、コードが二重コレクションを実行していました。 「AIが書いた」といって責任がなくなるわけではない。アカウント所有者として、彼は開発者でした。教訓: 責任は委任できない。

弱いプロンプト / 強いプロンプト

弱いプロンプト: 「完全なレシート スキャン アプリケーションを書いてください。」

強力なプロンプト: 「「領収書から経費を追加する」機能をステップバイステップで開発するのを手伝ってください。各ステップを確認して承認したら、次のステップに進みます。1) 画面 + 4 つの状態 + アクセシビリティ 2) MVVM レイヤー (カメラ、モデル、ViewModel) 3) ML Kit による領収書からの金額/日付の読み取り + 信頼スコア 4) カメラの許可 (最小権限) + 拒否フロー 5) ユニットと UI のテスト それぞれのリスクと確認する必要があるポイントを教えてくださいステップ。」

コピー可能なテンプレート

エンドツーエンドの計画テンプレート: 「次の機能を開発します: [機能]。それを検証可能なステップに分割します: 設計、コード、AI 統合、プライバシー/許可、テスト、パフォーマンス、リリース。各ステップの出力、リスク、および検証基準を記述します。単一の巨大な製品を作成しないでください。」

倫理/バイアス監査テンプレート: 「次の AI 機能の公平性とバイアスを監査します: [機能]。どのユーザー グループのパフォーマンスが悪い可能性がありますか? トレーニング データはバイアスにどのように影響しますか? テスト方法、より包括的なものにする方法は?」

責任チェックのテンプレート: 「この AI 生成のコード/機能をリリースする前に尋ねるべき責任の質問を列挙します。理解したか、テストしたか、安全か、ユーザーに対して透過的か、合法/倫理的か?」

継続学習テンプレート: 「モバイル開発者の AI スキルを向上させるための 4 週間の実践的な計画を提案します。小規模なプロジェクトと検証の習慣を目標に、毎週 1 つのトピック (コード、統合、テスト、リリース) を取り上げます。」

よくある間違い

  • 1 つの巨大なリクエストで複雑な機能を作成します。検証できません。それをステップに分解します。
  • 「AIがそう書いた」と責任を回避する。公開されたコードについてはあなたが責任を負います。
  • AI のバイアスをテストしていません。このモデルは一部のグループではうまく機能しない可能性があります。正義を試す。
  • AI インタラクションをユーザーから隠します。透明性は信頼の基礎です。
  • AIの限界を忘れる。人々はアーキテクチャ、倫理、現在の API について最終決定権を持っています。
  • 学習をやめるということ。ツールや店のルールはすぐに変わります。常に最新の情報を入手してください。

要約すれば

エンドツーエンド機能では、設計、コード、AI 統合、プライバシー、テスト、デバッグ、パフォーマンス、リリースなど、モジュールのすべての部分がチェーン内で結合されます。各ステップで AI が加速し、人間が検証して決定します。複雑な作業は、検証可能な小さなステップに分割されます。責任ある使用は、透明性、検証(説明責任)、公平性(害を及ぼさない)の 3 つの原則に基づいています。 AI は強力な乗算器ですが、アーキテクチャ、倫理、セキュリティ、最新の知識については人間が最終決定権を持っています。 「AIがそのようにした」というのは弁護ではありません。あなたは自分の製品とユーザーとの約束に対して責任を負います。この規律により、AI はキャリアを通じてあなたをより速く、より包括的に、より強くします。

アプリケーションタスク

「エンドツーエンドの計画テンプレート」を使用して、選択したモバイル機能 (「音声メモによる要約」や「写真からの製品認識」など) を検証可能なステップに分割します。 AI を使用して少なくとも 1 つのステップを実際に開発および検証します。次に、その機能が問題を引き起こす可能性のあるユーザー グループを「倫理/偏見管理テンプレート」で分析し、「責任管理テンプレート」でリリース前に尋ねる必要がある質問に答えます。

チェックリスト

  • [ ] 単一の巨大なプロダクションではなく、機能を検証可能な小さなステップに分割しました
  • [ ] AI の出力をすべてのステップで検証し、決定を下しました
  • [ ] AI インタラクションをユーザーに透過的に提示しました
  • [ ] 機能がさまざまなグループ間で公平に/偏って機能するかどうかを評価しました
  • [ ] リリース前の責任に関する質問に回答しました (理解/テスト/安全/倫理)
  • [ ] 私は有能かつ建設的な目的でのみ AI を使用しており、今後も学習を続けるつもりです

モジュール試験

1. モバイル開発における人工知能の位置付けとして最も正確なものは次のうちどれですか?

  • A) AI が開発者に取って代わります。生成されたコードを読まなくても直接公開できます
  • B) 人工知能はテキストを書くときにのみ機能し、コード生成とは何の関係もありません
  • C) 人工知能はアシスタントおよびアクセラレーターです。アーキテクチャ、セキュリティ、ブロードキャストの決定に対する責任は人間にあります ✔
  • D) 人工知能は常に正しいコードを生成するため、追加のテストや検証は不要です

説明: 人工知能は、コード、設計図、ソリューションを生成するアシスタントおよびアクセラレータです。アーキテクチャ、許可、セキュリティ、出版などの決定に対する責任と最終承認は有能な開発者にあります。人間は公開されるすべての行に責任を負います。

2. 人工知能にモバイル コードをリクエストする場合、生成されるコードのアーキテクチャの品質を最も高めるものは何ですか?

  • A) プロンプトはできるだけ短くし、「アプリを書いてください」と言います。
  • B) まず、MVVM のようなアーキテクチャを適用し、コードをレイヤーごとに細かくリクエストします ✔
  • C) 機能全体を 1 つのプロンプトで 1 つの巨大なファイルとして生成する
  • D) アーキテクチャをまったく指定せず、人工知能に最適な決定を委ねる

説明: MVVM のようなアーキテクチャを強制し、AI にコードを直接書き込む前にレイヤーごとに要求することで、ロジックを画面から分離するテスト可能で保守可能な構造が生成されます。アーキテクチャのないリクエストは、画面上にすべてを詰め込んだコードを返します。

3. 人工知能とのインターフェイスを作成するときに最も見落とされがちなものは何ですか?また、実際の使用において最も重要なものは何ですか?

  • A) 全画面だけでなく、読み込み状態、空状態、エラー状態を設計する ✔
  • B) 他のケースをスキップして、最も見栄えの良いフルスクリーンのみを生成します。
  • C) 各画面にできるだけ多くの色とアニメーションを追加する
  • D) アクセシビリティタグを最後に残し、外観のみを扱う

説明: 開発者は多くの場合、「フル」状態のみを考慮します。一方、実際には、ユーザーはほとんどの場合、読み込み中、空の状態、およびエラー状態に遭遇します。 4 つの状態 (読み込み中、空、エラー、フル) をすべて生成することが、堅牢なインターフェイスの秘密です。

4. 機密の個人データ (健康測定など) を処理する機能のデフォルトの選択肢としてオンデバイス AI が選ばれることが多いのはなぜですか?

  • A) オンデバイス モデルは常にクラウドよりも正確です
  • B) オンデバイス処理ではバッテリーやプロセッサーのコストが発生しません
  • C) オンデバイス処理はモデルのサイズに関して無制限です
  • D) データが携帯電話から流出しないため、プライバシーとユーザーの信頼の点で大きな利点が得られます ✔

説明: オンデバイス処理では電話機からデータは削除されません。これはプライバシー コンプライアンスとユーザーの信頼の点で大きな利点であり、さらにオフラインで瞬時に機能します。その制限は、デバイスの電力とモデルのサイズです。

5. オンデバイス モデルの統合で、無意味な結果を引き起こし、エラー メッセージを生成しない、最も一般的な「サイレント」エラーは何ですか?

  • A) モデルのファイル名のスペルが間違っています。
  • B) アプリケーションアイコンの解像度が低い
  • C) 不正な入力前処理 (サイズ/正規化) ✔
  • D) ダークスクリーンテーマ

説明: 入力の前処理を誤って実行すると、エラーはスローされずに完全に間違った結果が生成されます。前処理値はモデルのドキュメントから確認する必要があります。

6. クラウド LLM をモバイル アプリケーションに統合する場合、最もセキュリティ クリティカルなルールは何ですか?

  • A) API キーはクライアントではなくバックエンドにのみ保持する必要があります。リクエストはプロキシを経由する必要があります ✔
  • B) 便宜上、API キーをアプリケーション コードに直接埋め込む必要があります。
  • C) API キーはアプリケーションの説明で共有する必要があります
  • D) API キーはクライアント内に保持し、名前を変更することによってのみ非表示にする必要があります。

開示: API キーがモバイル アプリケーション コードに埋め込まれることはありません。アプリケーションをリバース エンジニアリングしてキーを抽出できるためです。正しいアーキテクチャは、キーをバックエンドにのみ保持し、独自のプロキシ サーバー経由でリクエストを渡すことです。

7. LLM の長い回答でユーザーが認識する速度と機能の完了率を最も高めるものは何ですか?

  • A) 答え全体が生成されるまで待って、それを一度に表示する
  • B) ストリーミングを使用して、生成された回答を単語ごとに表示する ✔
  • C) リクエストごとにチャット履歴全体をモデルに送信する
  • D) モデル命令を拡大して、応答を可能な限り延長します。

説明: ストリーミングでは、応答が生成されるたびに単語ごとに表示されるため、体感速度と流暢さが大幅に向上します。ユーザーは空白の画面で待つのではなく、テキスト フォームを監視します。これにより、放棄率が大幅に減少します。

8. 人工知能によって生成されたテストで、テストの価値を失わせる最も一般的な問題は何ですか?

  • A) テストでカバーする限界状態が多すぎます
  • B) テストでは実際のサービスではなくモック オブジェクトを使用します
  • C) テストは非常に高速に実行されます
  • D) 実際に動作を検証しない空の/役に立たないテストによるスコープの肥大化 ✔

説明: 人工知能は、実際には出力を検証しないテストを生成することがあります (たとえば、関数を呼び出して空のアサーションを記述するだけ)。これらは補償範囲の数字を膨らませますが、実際の保護を提供するものではありません。意味のある動作を確認するには、各テストをチェックする必要があります。

9. 人工知能の提案によってクラッシュをトライキャッチすることでクラッシュを沈黙させるのに十分な解決策ではないのはなぜですか?

  • A) try-catch はモバイル アプリケーションではまったく使用できません
  • B) クラッシュは停止しますが、根本原因が解決されていないため、問題は別の形で再発します ✔
  • C) try-catch の使用はアプリケーションの速度を低下させるため禁止されています
  • D) サイレントエラーはストアによって自動的に拒否されます

説明: 症状を沈黙させても根本原因は解決されません。クラッシュは停止しますが、元の問題 (データ接続の切断など) が別の形 (データ損失など) で再発します。プロフェッショナルなデバッグの目標は、症状ではなく根本原因を解決することです。

10. パフォーマンスの最適化において従うべき基本的な黄金律は何ですか?

  • A) まずプロファイルを取得し、実際のボトルネックを測定してから最適化します ✔
  • B) どこが遅いかを推測し、そこに集中する
  • C) あらゆる機能で小さな利益を追求する
  • D) エミュレータ上でパフォーマンスを測定し、実際のデバイスを決して試さない

説明: 最初に測定し、後で最適化します。実際のボトルネックは、ほとんどの場合、予測とは異なる場所にあります。プロファイリングを行わない最適化は盲目的な推測であり、多くの場合、労力の無駄になります。

11. 常時実行されている AI 機能 (ライブ カメラ翻訳など) におけるエンジニアリング上の最も重要な懸念事項は何ですか?

  • A) この機能は、できるだけ多くの権限を要求します。
  • B) サンプリング周波数とバッチ処理による連続処理のバッテリーとプロセッサーのコストを管理する ✔
  • C) 最も高価な携帯電話でのみ機能を実行する
  • D) 可能な限り最高のフレーム レートでカメラを継続的にレンダリングする

説明: 常に動作するモデル、カメラ、ネットワーク。バッテリーが急速に消費され、デバイスが発熱し、システムによって制限される可能性があります。サンプリング頻度を減らし、バッチ処理し、必要な場合にのみ実行することは、バッテリーのコストを管理する方法です。

12. モバイル開発における権限管理における「最小特権」の原則は何を意味しますか?

  • A) 念のため、起動時に可能なすべての権限をリクエストします。
  • B) 許可が拒否された場合にアプリを操作できなくする
  • C) 最も広範囲の許可を求め、後で許可を絞り込むことを計画しています。
  • D) 拒否シナリオを使用して、必要に応じて最も狭い範囲内で実際に必要な許可のみを要求する ✔

説明: 最小権限とは、実際に必要な権限のみを、必要なときに、可能な限り狭い範囲で要求することです。権限が多すぎると、ユーザーの信頼が損なわれ、ストアの拒否につながり、データ漏洩のリスクが高まります。

13. 人工知能を備えたアプリケーションをストアに提示する場合、どのような特定の要件を満たす必要がありますか?

  • A) コンテンツの透明性、コンテンツの管理、および機密保持の形で人工知能に送られるデータの開示 ✔
  • B) 人工知能の使用をユーザーから隠す
  • C) プライバシーフォームで実際に収集されていないデータにマークを付ける
  • D) 説明には存在しない有望な機能

開示: ストアは、コンテンツの透明性 (AI を生成しているという声明)、コンテンツの管理 (有害な出力のフィルタリングとユーザー通知)、および人工知能を含むアプリケーションからのデータ使用の開示を期待します。敏感な領域では精度警告が必要です。これらを省略した申請は無効となります。

14. 公開された AI 生成コードでエッジ ケース エラーが発生した場合、「AI がそのように書いた」という防御が無効になるのはなぜですか?

  • A) 人工知能は常にエラーのないコードを生成するため、エラーはユーザーから発生します。
  • B) AI が生成した正しいコードを自動的に保存するため
  • C) 責任を人工知能に移すことができないため。開発者は公開されたコードとデータに対して責任を負います ✔
  • D) 人工知能が生成したコードは決して実行されないため

説明: AI 出力は出発点であり、完成品ではありません。公開されたすべての行、処理されたすべてのデータ、および行われたすべての約束に対して責任を負うのは開発者です。 AI に責任を委任することはできないため、出力は公開前に理解し、テストする必要があります。