Android(アンドロイド)アプリの作り方~プログラミング前の準備~
「Android(アンドロイド)アプリを作りたい!!」と思っても、実際に「何から始めればいいのか?」がわからず、なかなか「Android(アンドロイド)アプリ開発」に踏み出せない方も多いのではないでしょうか。
実際に「どのようなアプリを作るのか?」というアイデアを持っている方であれば、次に行うことも見えてきますが、まだ「何のアプリを作るのか?」が決まっていない場合は、「コンセプト(概念)」や「コンテント(内容)」について考えていく必要があります。
「Android(アンドロイド)アプリ」のコンセプト&コンテント
まだどのようなアプリを作るのかが決まっていない方は、アプリの「コンセプト(概念)やコンテント(内容)」を先に決めていく必要がありますが、大切なことは「なぜアプリを作るのか?」を明確にしていくことです。
- 学習のため
- 生活の利便性を高めるため
- 収益を上げるため
- 仕事で必要なため
- 友達・家族にアプリの作成を頼まれたため
など、アプリを作るさまざまな理由があります。
「アプリ開発」は、開発に取り組む中で「大変なこと」も多いため「なぜアプリを作るのか?」という明確な理由が無いと、開発中に気持ちが揺らいでしまうかもしれません。
コンセプト
「こういう機能を持ったアプリを作りたい」という、「機能的概念」や「このアプリを使ったらこういう効果がある」という「効果的概念」などの「コンセプト(概念)」を考えていきます。
「概念」は、「抽象的」なものではなくて、説明ができるくらいの「明確さ」が必要です。
「自分のため」に作るのか、「他者のため」に作るのかや、「誰が使うアプリなのか?」なども考えていきます。
例えば、「前にいつ何時間くらいプログラミングを学習したのかを把握したい!」という要望があれば、「学習時間管理アプリを作ろう」となります。
そこで、「なぜ学習時間を管理したいのか?」や「自分または友人・知人だけが使うアプリなのか?他の人ももしかしたら同じ欲求を持っているんじゃないかな?」という風により発展的に考えていき、「コンセプト」を明確にしていきます。
コンテント
「コンセプト」が決定したら、次に「コンテント(内容)」について考えていきます。
「どのような動作をするのか?」や「どのようなデータを扱うのか?」を考えていきますが、「コンセプト」の例にあった「学習時間管理アプリ」について考えていくと、「学習時間データ」は具体的にどのような内容なのかや、「学習時間データの読込・追加・編集・削除」は、どうするのかなど、機能面についても掘り下げて考えていきます。
この段階では、考えるだけでは無く、「Android(アンドロイド)アプリの設計書」を作るということを意識して、
- 機能一覧リスト
- データ
- 画面構成と遷移関係
などを書き出しながら取り組んでみてください。
機能一覧リスト
「学習時間管理アプリ」を想定すると「機能一覧リスト」を
- 「学習日・学習項目・学習時間」の「読込・追加・更新・削除」ができる
- 「学習日・学習項目・学習時間」を一覧で表示することができる。
- 「月」ごとの「学習目標時間」を設定することができる。
- その月の「累計学習時間」を表示できる。
- その月の「目標達成率」を表示できる。
のように書き出していきます。
「機能面」だけに着目して「何ができるアプリなのか?」を書き出していきましょう。
開発が進んでから、後で「機能追加」や「機能変更」を行うと、「手戻り」が発生してしまいますので、時間を掛けてじっくりと考えていき「機能一覧リスト」を完成させていきましょう。
データ
次に「どのようなデータをアプリで管理していくのか?」を考えながら「データ構造」を決めていきます。
そのためには、まず「アプリで管理するデータ」について「データリスト」を作成していきましょう。
こちらも「学習時間管理アプリ」について考えていくと、
- データID
- 学習日
- 学習項目
- 学習時間
- 月ごとの学習目標時間
- 累計学習時間(※「学習時間」データより算出)
- 目標達成率(※「月ごとの学習目標時間」データと「学習時間」データより算出)
のように、必要なデータについて書き出していきます。
「累計学習時間」や「目標達成率」など、「別のデータ」から導出できるデータについて、「データリスト」に含める場合は、注記を入れておきましょう。
後ほど「データストア」について考える際に、誤って不要なデータを保存してしまうことを防ぐことができます。
画面構成と遷移関係
次に、どのような画面を作成するのかについて「画面構成」を考えていきます。
画面間に「遷移(それぞれの画面への移動)」が発生する場合は、それらについても併せて考えていきます。
まず、「どのような画面が必要になるのか?」を考えながら「画面リスト」を作っていきましょう。
こちらも「学習時間管理アプリ」を例にすると、
- 学習時間一覧画面(メイン画面)
- 学習時間登録画面
- 学習時間編集画面
- 目標達成率確認画面
のようになるのではないでしょうか。
そして、「画面遷移」についても下図のような、シンプルな「画面遷移図」などを作成してみると、画面間の遷移関係が把握しやすくなります。
まとめ
「Android(アンドロイド)アプリ開発」の「プログラミング前の準備」について見てきましたが、ここから、
- 画面内容の表示項目・レイアウト
- クラス
- データの保存方法(データストア)
などの詳細について決めていくことになります。
現在、「Android(アンドロイド)アプリ開発」では、
- Java
- Kotlin
のプログラム言語を選択することができます。
また、「データストア」についても、
- SQLiteデータベース
- Realmデータベース
- Shared Preferences
- ファイル保存
など、さまざまな方法があります。
実際のプログラムの書き方は、
をご覧いただければと思います。
さまざまなアイデアを出しながら、ぜひ「オリジナルアプリの開発」にチャレンジしてみください。