前のパートに戻る 完了して次のパートへ  

  0-4 アプリの設計を考える

今回のパートではアプリを作る上でどのように設計を行うかを解説して行きます。

全画面の洗い出し


設計をする前に本講座で作成する画面を全て紹介します。 画面は全部で4画面あります。

アルバム画面

アルバム画面にはアプリに保存してある画像ファイルの情報が表示されます。お気に入りに設定した画像の情報を確認することもできます。

画像リスト画面

画像リスト画面では、アプリに保存されている画像ファイルがリスト形式で表示できます。また画像毎にお気に入りを設定できます。

画像スクロール画面

画像スクロール画面では、画像をスクロール表示できます。またグレースケールや色調反転などの画像処理を実装します。さらに簡単なアニメーション機能やマイクを使用した音声認識機能も実装します。

設定画面

iPhone, iPadの設定アプリにバージョン表示と設定値の初期化機能を実装します。

必要な情報の洗い出し


今回のコースで開発する機能は、以下の5つになります。

- SwiftUIを用いた画面機能
- お気に入り機能
- 画像処理機能
- マイク機能
- 設定画面への追加機能

本教材ではこれらの機能を開発する上で永続的に保存する情報はお気に入り機能に使用する情報のみです。

情報の保存方法を考える


iOS(iPhone, iPadのオペレーティングシステム)で情報を永続的に保存する方法は大きく分けて以下の4つになります。

  • ファイル保存
  • データベース保存
  • UserDefaults保存
  • 暗号化保存(キーチェーン)

各項目の概要を以下に説明します。

ファイル保存

本パートのファイル保存とは情報を加工せずそのまま保存することを指しています。ファイル保存では内容が暗号化されないため一時的に使用するキャッシュファイルや機密性の低い少量の情報を保存することに向いています。

データベース保存

データベースとは後で使いやすい形に整理した情報の塊のことを表します。データベース保存は大量の情報を管理することに優れています。データベースにはCoreData, SQL, Realmなどの種類があり、細かく知りたい方はご自身で調べていただきたくお願いいたします。

UserDefaults保存

UserDefaultsはiOSが提供する情報を保存できる機能です。UserDefaultsを使用すると簡単に情報を永続的に保存できます。UserDefaultsはどのような情報でも保存できますが、設定値のような少ないデータを保存する使い方が推奨されています。本教材ではUserDefaultsを使用して情報を保存します。

暗号化保存(キーチェーン)

機密性の高い情報(何らかのログインID, パスワードなど)は暗号化して保存する必要があります。iOSには情報を暗号化して保存する機能が用意されています。保存・復元の際には暗号化・複合化処理が必要なため他の保存方法に比べて多少負荷がかかります。

本教材でのお気に入り情報の保存方法


設計段階でお気に入り情報をどのように保存するか考える必要があります。(本教材でのお気に入り情報とは保存されている画像にお気に入りかどうかを設定するだけの情報になります。)お気に入り情報を機密性の高い情報だと判断する場合は暗号化保存が必要です。また画像ファイルを大量保存しなければならない場合はデータベース保存が向いています。実際に何かアプリ制作する場合はこのように適宜判断していく必要があります。

本教材ではUserDefaultsにお気に入り情報を保存します。保存は画像のファイル名称を配列と呼ばれるデータの塊に変換して行われます。

本来UserDefaultsはアプリ内の設定値を保存する使い方が推奨されています。お気に入り情報を設定値と捉えるか意見が分かれますが、最もポピュラーな保存方法を紹介するため、本教材ではあえて使用すると判断しました。

コードの完成版


今回開発するコードの完成版は下記に示します。

ダウンロード

ダウンロードしたプロジェクトは以下の設定値を設定すると実行できます。

議論

0 質問

このコースの評価は?