こんにちは、まっさん(@Tera_Msaki)です。
この記事はSIベンダーで28年あまりシステムエンジニアとして、いろいろなシステムを開発してきた経験をもとにアプリ開発についてまとめたものです。
アプリケーション開発(アプリ開発)から遠ざかっていたせいか、久々にアプリ開発してみると、アプリ開発の敷居は随分下がったとように感じました。
これは開発する環境が整ってきたという意味で、要求される技術レベルが下がったという意味ではありません。むしろ、専門性が高くなり、技術の細分化が進み、一人でなんでもこなすには難しくなってきたと考えています。
少し昔を思い出しながらになりますが、
「アプリ開発するためにはどうすればいいのか」を掘り下げてみたいと思います。
この記事を読めば、 アプリ開発の大まかな流れが分かります。
アプリ開発のフェーズ
通常、アプリとそれが動く環境(ハードウェアやOS、ミドルウェアなど)をまとめてシステムと呼びます。
ここでは、わかりやすくアプリ(アプリケーション)と定義します。
つまり、広義ではアプリ開発ではなくシステム開発です。
アプリ開発のフェーズには、大きく分けて、5つ(※)のフェーズがあります。
※もう少し細分化されているのですが、SIベンダー固有の方言が存在します。
要件定義
アプリで実現したい機能(目的)を定義します。
あと、動作する環境や求められる性能、条件などを合わせて整理します。
動作する環境や求められる性能、条件は、直接的に実現したい機能に結びつかないこともあり、非機能要件と呼ばれています。
要件定義の前に構想とか企画フェーズとかありますが、実現したい機能=目的が見えた段階がアプリ開発の始まりと考えています。
また、実務レベルでは、業務フローなどの業務要件、システムの各種構成、画面や帳票、バッチ、データ、インタフェースなどの各種要件を必要に応じて定義します。
基本設計
アプリで実現したい機能の実現方法を具体的に設計(デザイン)します。
画面や帳票の一覧やイメージ、画面や帳票に表示(出力)する内容や機能を具体的に記述します。
同意として概要設計、機能設計や外部設計などに細分化することもあります。
詳細設計
画面や帳票に表示(出力)する内容や機能をプログラム構成レベル(関数やロジック)まで設計します。
製造
プログラム構成レベルまで設計したものをコーディング(プログラミング)します。
テスト
コーディングしたものを実行して結果を確認します。
詳細設計で設計された内容を確認することを単体テストと呼び、基本設計で設計された内容を確認することを結合テストと呼ぶことが多いです。あと、アプリが動く環境でテストすることからシステムテストと呼ぶこともあります。
開発したAndroidアプリのご紹介
このサイトを開設するにあたり、開発したAndroidアプリを紹介します。
Androidアプリの開発自体は初めてで、調査から開発の期間は約2か月です。
ダウンロードして動かしてもらえれば、うれしいです。
GPS走行記録アプリ Archive
モータスポーツ向けのGPSを利用した走行データやセッティングを記録するアプリです。
この下にあるアイコンから、
Archive – GPSで走行データの記録&ビジュアル表示をダウンロード(無料)できます。
アプリはいろいろな機器とつながることで可能性が生まれます。
GPSタイム計測アプリ Laps
GPSの位置情報を利用して、事前に登録したゴール地点(2点間)を通過するまでの経過時間を計測するアプリです。
この下にあるアイコンから、
Laps – GPSで計測ラインを通過するまでの時間を計測♪をダウンロード(無料)できます。
性能を向上する手段として機器とつなげる方法もあります。