2023年10月4日

スマートフォンアプリ開発とは~Android開発編~

目次

Contents

はじめに

みなさん初めまして。
私は普段はシステム開発部署にて、システム開発工程の中でも詳細設計以降のいわゆる「製造」工程を担当しています。
主に、仕様が決まってからのコーディング、テストがメイン業務ですが、近ごろでは「システム開発」といっても「スマートフォンアプリ開発」が、その中でも特にAndroid系の開発が非常に多くなってきています。
ストアに公開してある、多くの人を対象としたゲームのような開発の場合、クロスプラットフォームでの開発、若しくはAndroid、iOS個別に最適化してアプリケーションを開発しますが、私が携わる業務系のアプリケーションでは、動作環境を予め取り決めることで特定OSのみを対象にして開発を行います。
Androidが多い背景には、タブレット端末はiOSではiPadしか選択肢がなく、コスト面で安価なAndroidタブレットを採用する企業が多いためと感じています。

それでは、改めてスマートフォンアプリ開発について書いていきたいと思います。

Android開発とは

Android開発とはAndroidスマートフォンやタブレットに向けのアプリを作成することです。Google Playのストアにあるアプリを想像していただけると分かりやすいと思います。
(ゲームは作り方が異なります。)
私は今までAndroid開発で以下のようなものに携わっておりました。
・カレンダーアプリ
・Bluetoothでデバイスを操作するアプリ
・業務支援アプリケーション

Androidアプリ開発に使用する言語

Androidアプリ開発ではKotlinまたはJavaという言語を使用して開発することが多いです。
昔はJavaでの開発でしたが2017年にKotlinの公式サポートを発表し、現在GoogleはKotlinをAndroidアプリケーション開発の推奨言語としています。
iPhoneアプリ(iOS)はSwiftで開発することが多いです。

私は現在、Javaで作られた業務支援アプリケーションのOSバージョンアップ対応をしているため、Javaを使って作業をしております。新しくアプリを作るケースではKotlinが良いと思います。
JavaとKotlinでは下記のような違いがあります。
【Java】
古くから使われており、幅広い開発に利用できるプログラミング言語です。
開発できるエンジニアも多い一方で、近年プログラムを学んだエンジニアにとっては
少々複雑だと思います。KotlinはJavaと互換性がある言語です。
そのためJavaがわかるとKotlinも違和感なく使えると思います。

【Kotlin】
KotlinはAndroidアプリをより効率よく作成できるプログラミング言語です。
Javaと比べてもコード量は明らかに少なく、
Kotlinの方が素早くコードを書ける利点があります。
ただ、Android開発以外ではあまり利用はされておりません。

今では新規開発においてはKotlinを利用する場合がほとんどとなりましたが、業務アプリケーションは前述のとおりJavaで書かれていることも多く、その保守作業にはJavaを使える必要がありますので、これからのエンジニアであってもJavaの習得はオススメです。なによりJavaは腐りにくく他言語への応用も効きます。

Androidアプリ開発に使用するIDE

Androidアプリ開発で使用するIDE(統合開発環境)はAndroid Studioになります。
Googleが提供している公式のAndroid開発環境です。
以前はEclipseを使っていましたがGoogle がAndroid 開発 (ADT) のサポートと開発が正式に終了しています。
Studioはコード編集機能、コードの管理機能、テストツール等を取り揃えています。

Androidアプリ開発に必要なもの

Androidアプリ開発は実はとても手軽です。
前述のAndroid Studioをインストールした際にJDK(Java)やAndroid SDK(必要なプログラムやライブラリなどをまとめた開発キット)はそろいます。それだけでアプリを開発することは可能になります。
私が開発する際はその他に実機(Androidスマートフォンやタブレット)をケーブルにつないで動作やレイアウトの確認を行うことが多いです。

どのようにAndroidアプリ開発してるの?

私が携わる工程は冒頭に書いたとおり、製造工程となります。
この段階では主に、レイアウトをxmlなどのファイルに記載して画面のデザインをした後、ボタンなど画面を操作した際の処理をプログラムしています。処理や実装すべき機能は上流工程にて定義されていますので、この段階ではプログラムが定義とおりの振る舞いをするか、様々な条件にてテストを繰り返し、都度発生するバグを丁寧に潰して行くこととなります。
設計やデザイン段階においても実装が可能かどうか、不具合が出そうかどうか共有をしています。
テスト段階では、このような経験あるエンジニアとしての視点の他、ユーザー目線でのテストも非常に重要となります。今ではテレビが映らないときに叩いて直す人は多くないと思いますが、ボタンを連打したり、急にアプリを閉じる、ブラウザバックやアプリではなくAndroid側の戻るボタンを操作するなど、強引な操作を行うユーザーはやはり多く、予期せぬ操作を行うことも多々発生します。また、ネットワーク遮断やフライトモード等のオフライン時の動作も検証が必要です。

システム開発の中でも特にコーディング・テストに関わる工程は生成系AIがコードを書ける今であっても(逆に今だからかもしれません)エンジニアの力量が試される場面です。

最後に

今回のブログでは、私の担当工程である「製造」について書かせていただきましたが、我々再春館システムは要求定義から製造の全行程にて沢山の開発プロジェクトに従事してきました。
その経験により、システム構築工程の他にも、コンサルやPMOのようなプロジェクトマネジメントのご支援まで幅広くを担うことができます。

昨今では、独自固有化していた業務アプリケーションの統廃合が急激に進み、スマートフォンアプリ自体もそのような統廃合の中にあって、その立ち位置の再定義や基幹連携といった課題のご相談も多くなってきました。
それは、これまでの「システムは業務処理のためのもの」といった考え方から、企業の価値創造のための情報資産の活用や業務の品質向上といった企業課題そのものと直結させ「差別化を図るための手段」としてシステムを再定義、再構築するといった考え方の変化でもあります。
そのようなニーズの変化に対して、我々再春館システムもこれまでの「注文のシステムを作る」といった、いわゆる「システム屋さん」の関わり方から1歩踏み込み、お客様の企業課題の解決策を共に考え、その後の要求定義、要件定義~製造を経て運用保守までを連続した直列設計とする伴奏型支援「BizDevOps」をご提案しております。
直接的なシステム構築に関係するか否かに関わらず、どんな些細なお悩みでも聞かせて下さい。
多くの経験に基づいた確かな技術力に加え、再春館グループ独自のエッセンスである「お客様の悩みに寄り添う」という軸をもって、お客様の企業課題の解決をご支援させていただきます。

BizDevOpsについてはこちら

スマートフォンアプリ開発から少々話題が逸れてしまいましたが、次回ブログは開発の場面で気を付けていることについて、深掘りしていきたいと思います。

記事 : S.N

「再春館システム システムインテグレーション」はこちら