main-visual

スマートフォンアプリ開発案件特集

スマートフォンやタブレットの利用者増加に伴い、iOS向けアプリやAndroid向けアプリの開発エンジニアへの需要は高まっています。
「Web系開発エンジニアとスマホアプリ開発の違いは?」
「スマホアプリ開発は独学でできる?」
「開発に必要なツールは?どんな手法で開発できる?」
など、スマホアプリ開発に関心がある方も多いと思います。
そこでこの記事では、スマホアプリ開発を考える方に役立つスマホアプリの開発方法、必要な技術やツールについてiOSとAndroidに分けてお話ししていきます。
また、デバイスを問わず同時に開発できる「PWA」や「ハイブリッドアプリ」、アプリ開発エンジニアの仕事についても触れますので、スマホアプリ開発に興味がある方はぜひ参考にしてみてください。

アプリの種類

アプリには、大きく分けてiOS・Androidスマホにインストールして使用する「ネイティブアプリ」、そしてマルチプラットフォームとしてスマホだけでなく、ブラウザ上でも使用できる「Webアプリ」の2つがあります。
この記事では、スマホアプリ開発に特化して、iOSアプリとAndroidアプリそれぞれの特徴と技術の違い、開発手法についてお話ししていきます。

iOSアプリの開発について

日本では、AndroidよりiOSの方が利用者が多い印象がありますよね。
iOSアプリは、App Storeの審査が厳しい、既に多くのアプリがリリースされているので差別化が難しいといったデメリットはある一方、開発環境はAppleが一括管理したものを使用するので機器ごとのバラつきが出にくく、テスト・検証の手間が少なく済む、というメリットがあります。

iOSアプリの特徴と開発に必要なツール

必要な環境:Xcode

iOSアプリを実際にプログラミングを実行するためには、「Xcode」という動作プラットフォームが必要です。
Xcodeは、Apple社が開発しているソフトウェアでMacやiPhone、iPad向けのアプリケーションの開発に特化しており、アプリ開発の一連の流れをサポートする統合開発環境(IDE)と呼ばれています。

使用言語:Swift・Objective-C

かつてはC言語をベースに作られた「Objective-C」が主流でしたが、文法がわかりにくく、学習コストがかかるため初心者が習得するには難しいという欠点がありました。
2014年にApple社が開発した「Swift」は、シンプルで習得しやすい、動作が早いというメリットがあるため、今ではこちらが主流言語となっています。
SwiftとObjective-Cは互換性があるため、過去にObjective-Cで作られたライブラリも使用することができます。これからiOSアプリの開発に携わるなら、Swift習得を目指すといいでしょう。
後ほど紹介するクロスプラットフォームを利用すれば、iOSもAndroidも共通の言語で作ることができるので、環境によっては使わずに開発できる場合もあります。

他に必要なツール:Apple Developer Program・Macパソコン

iOSアプリをリリースするためには、Appleの開発者登録IDが必要になります。
この「Developer ID」は、Apple Developer Programのサイトにて取得できますが、年間12,980円(税込)費用がかかることも覚えておきましょう。
加えて、iOSの動作プラットフォームであるXcodeは、Macパソコンでの利用が基本。Windowsパソコンでもクラスプラットフォームの「xamarin」があれば開発可能ですが、少し手間がかかるため、Macパソコンの利用がおすすめです。

iOSアプリの開発手順

1. 企画:アプリの仕様を考える
2. 環境構築:開発するための環境を整える
3. 開発:プログラミング
4. テスト
5. リリース

1. 企画:アプリの仕様を考える

まずは、仕事や遊びの中で思いついた「こんなアプリがあったらいいな」というアイデアを元に、どんなアプリを作るのか企画を考えます。
iOSアプリとAndroidアプリどちらにするのか、両方でリリースするのかも考えておきましょう。
アイデアが思いついたら、アプリに必要な機能やアプリ画面のデザインイメージ、アプリのボタンの動き方など具体的にイメージしていきます。
既に市場にはたくさんのアプリが存在するため、その中から自分のアプリを選んでもらうためには何を差別化するのか、ユーザーが求めていること、不満に思っていることを見つけて解決していこうという意識が大切になります。

2. 環境構築:開発するための環境を整える

Macパソコン、Xcode、そしてテストで使うiPhoneスマホやタブレットが必要になります。

3. 開発:プログラミング

アプリ開発が未経験の場合は、動画学習サイトなどを活用し、手を動かしながら習得していきましょう。
YouTubeなどの無料動画にも作り方が紹介されているほか、「Udemy」というサイトでは、オンラインで学びたい技術のみを選択して習得できるのでおすすめです。

4. テスト

Xcode上のiOSシミュレーターでのテスト後、実際にiPhone端末にアプリをインストールし、不具合が無いかどうかをテストします。

5. リリース手順

iOSアプリをリリースするときには、以下の工程があります。

1. Apple Developer Programに登録
2. App IDの作成
3. Certificate(証明書)の作成
4. Provisioning fileの作成
5. iTunes Connectにアプリを登録
6. App情報編集
7. バージョン情報編集
8. アーカイブ作成&アップロード
9. App Store Connectで審査申請

Apple Developer Programに登録する際には年間12,980円(税込)かかります。また、App IDは個人で既に持っている場合でも、開発用に新規取得しておきましょう。
そのほか、Apple承認の開発者であることの証明となる「Provisioning file」や、アプリを管理するツール「iTunes Connect」などに登録します。
審査では、著作権や景品表示法といった法的な面や利用規約もチェックの対象となります。App Storeの審査は人力で行われており、時間がかかる場合もあるため、スケジュール組みにも注意しましょう。

Androidアプリの開発について

日本ではiPhoneを使う人が多い印象をもつ方もいるかもしれませんが、世界的に見ると実は少数派。世界のスマホ保有者の71.9%(※)がAndroidを使用しています。

※参考:https://gs.statcounter.com/os-market-share/mobile/worldwide

そのため、海外に向けてアプリをリリースしたいと考えるなら、Androidアプリを開発するのがおすすめです。

Androidの特徴と開発に必要なツール

必要な環境:Android Studio

iOSアプリ開発ではXcodeが必須のように、Androidアプリ開発では「Android Studio」が必要です。
Google社公認の開発ツールで、Androidアプリ開発のコードを書いたりプログラムを実行するための開発環境となります。

使用言語:Java・Kotlin

Javaはアプリ以外にも業務システムなど様々な開発で使用できて汎用性が高いため、Javaを使うことの多いバックエンドエンジニアなら、アプリ開発もしやすいでしょう。
それに対してKotlinは2017年~Androidアプリが開発されるようになってから、グンと知名度が上がった言語です。Javaとの互換性もあり、シンプルなコードでわかりやすい言語なので、新たに習得するならKotlinが得策といえます。

他に必要なツール:JDK・Googleアカウント・パソコン

JDK(Java Development Kit)にはJavaで開発するためのさまざまなツールが入っているため、AndroidアプリをJavaで開発する場合には、必要になります。
また、Androidアプリをリリースするために、デベロッパーとして登録するGoogleアカウントも準備しておきましょう。
パソコンはMac・Windows・LinuxどのOSでも対応可能です。

Androidアプリの開発手順

1. 企画:アプリの仕様を考える
2. 環境構築:開発するための環境を整える
3. 開発:プログラミング
4. テスト
5. リリース

1. 企画:アプリの仕様を考える

まずは、仕事や遊びの中で思いついた「こんなアプリがあったらいいな」というアイデアを元に、どんなアプリを作るのか企画を考えます。
iOSアプリとAndroidアプリどちらにするのか、両方でリリースするのかも考えておきましょう。
アイデアが思いついたら、アプリに必要な機能やアプリ画面のデザインイメージ、アプリのボタンの動き方など具体的にイメージしていきます。
既に市場にはたくさんのアプリが存在するため、その中から自分のアプリを選んでもらうためには何を差別化するのか、ユーザーが求めていること、不満に思っていることを見つけて解決していこうという意識が大切になります。

2. 環境構築:開発するための環境を整える

Android開発に必要なAndroid Studioのほか、Javaの開発ツールJDK、そして足りない機能を追加できるSDKは随時、インストールしていきます。

3. 開発:プログラミング

こちらもiOSアプリ開発と同様、Kotlinなどを使用したことがない方は「Udemy」での学習がおすすめです。

4. テスト

Androidアプリの場合は、エミュレーターでのテスト後、実際にAndroid端末にアプリをインストールした上でのテストを行います。ちなみにエミュレーターはWindows・Macの両方に対応する「Nox Player」などがおすすめです。

5. リリース手順

Androidアプリは、Google Playでリリースするのが一般的で、審査はiOSよりも敷居が低く、リリースにかかる工数は少なく済む傾向があります。

1. Googleディベロッパーアカウントを作成:作成時に25ドルかかる
2. デジタル署名したパッケージファイル(apkファイル)を準備
3. GooglePlayにアプリケーションを登録してリリース

Androidアプリをリリースするにはディベロッパーとして登録する必要があり、登録費用として25ドル支払いますが、それ以降はずっと使用可能です。
また、Androidアプリは自動化された審査システムがテストを行うので、iOSより早く審査が終わる傾向です。

iOS・Android・Webを同時に開発できるもの

ここまでiOSでのアプリ、Androidでのアプリ開発についてお話してきましたが、両方のOSアプリを同時にリリースできる開発手法も登場してきました。
「クロスプラットフォーム」と呼ばれる開発環境で、iOS・Androidアプリを同時に開発することができます。
特に、WebブラウザでネイティブアプリのようなUIが実現可能な「PWA」と、Webアプリの良い面を取り入れた「ハイブリッドアプリ」が注目されています。

PWA

PWA(Progressive Web Apps)とは、モバイル向けのWebサイトをそのままスマホアプリのように使えるようにしたもの。
ユーザーはアプリのストアからダウンロードする必要が無く、ネイティブアプリのようにプッシュ通知が使える・全画面表示ができるといった特徴があります。
PWAはあくまでWebサイトなので、Swift、Kotlinは使用せず、主にJavaScriptを使用して開発します。

PWA導入のメリット
開発がラクになる

iOS用に開発したアプリはAndroidやWebブラウザで動作しませんが、PWAで一度サイトを作ってしまえばデバイスを問わず使用することができます。

すぐにリリースでき、多くのユーザーを取り込める

PWAはWebベースなので、AppleやGoogleの審査に通す必要がありません。
また、ユーザーはわざわざAppStoreなどに行ってアプリをインストールしなくても「サイトをホーム画面に追加」するだけでアイコンが作成され、アプリのように使えるので、多くのユーザーを取り込みやすいというメリットがあります。

高速通信・プッシュ通知の活用により集客率UP

PWAサイトは読み込みが早い&オフラインでも使用可能なので、ユーザーの直帰率を下げることができ、SEO対策にもつながります。また、アイコン通知やプッシュ通知を活用して、ユーザーのサイト訪問や購買につなげられるメリットもあります。
ユーザーにとっても、読み込み時間が少なく、オフラインでも動作するので閲覧時のストレスは軽減されます。

PWA導入事例

PWAは、実際に多くの企業で導入されています。いくつか実際の導入例とその効果を紹介します。

SUUMO

不動産・住宅サイトの「SUUMO」は、スマホ用Webサイトに、Webブラウザの最新技術「Service Worker」を利用してプッシュ通知機能を可能にしました。
それにより、ページの読み込み時間が75%減少、さらに、アプリを使用していないユーザーへの新着物件に関するプッシュ通知が可能になり、結果、通知の開封率が31%まで改善しました。

参考:https://www.recruit.co.jp/newsroom/recruit-sumai/press/151216_serviceworker_push.pdf

日経電子版

日本経済新聞は、通常のアプリに加えてPWAも導入した結果、速度面で大きく改善効果が見られています。表示速度は2倍になり、読み込み速度が75%改善された結果、オーガニック流入が2.3倍に増え、会員登録数が58%増加しています。

参考:https://developers.google.com/web/showcase/2018/nikkei?hl=ja

ハイブリッドアプリ

ハイブリッドアプリとは、Webアプリとネイティブアプリの良いところをハイブリッドさせたアプリのこと。
Webアプリの良いところは、例えばGmailアプリのようにiOS・Androidどちらでも使うことができる「マルチプラットフォーム」の性質があること。
ネイティブアプリであれば、デバイスの電話やマイク・カメラ機能が使えるということが利点としてあげられます。
また、HTML、JavaScriptのようなWebの開発技術でスマホアプリを開発できるのが大きな特徴です。PWAと仕様は似ていますが、PWAはWebアプリをスマホでも使えるようにしたもの、ハイブリッドアプリはWebとスマホを同時にカバーしたものとなります。

ハイブリッドアプリ導入のメリット
低コストで開発が可能

iPhone向け、Android向けとそれぞれ別々に開発する必要が無いので低コストで済むこと、HTMLやCSSといったWeb開発技術があれば開発できる、というハードルの低さは大きなメリットです。
また、仕様に修正があった場合も1度の修正作業でiOSとAndroidそれぞれに対応でき、ユーザーの希望に瞬時に応えられるため、ユーザーの満足度UPにもつながります。

ネイティブ機能を利用できる

プッシュ通知はもちろん、カメラや位置センサーなどが利用できるため、デバイスを問わず「スマホのカメラ機能を使って商品のバーコードを読みとり、それをWeb上で検索する」のような一連の動作が可能になります。
こういったメリットの一方で、ネイティブアプリと比べて動作が重い、オフラインでは利用しにくいといった改善点はあります。

ハイブリッドアプリ導入事例
クックパッド

料理レシピアプリのクックパッドは、当初はWebサイトを運営していましたが、iOS・Android向けのハイブリッドアプリを開発しています。
アイコン画像を印象的な画像にすることで会社の知名度を上げる、アプリで自社ホームページやECサイトを表示可能にする、店舗の会員システムをオンライン化する、といった工夫により、現在は2,000万DLを突破しています。

参考:https://yapp.li/magazine/3190/

iOS、Androidどちらも開発可能なフレームワーク

ここでは、マルチプラットフォーム開発をするために必要なフレームワークの中で、代表的なものをいくつか紹介します。保有する技術や、開発したいアプリに合わせてフレームワークを選んでみてください。

Flutter(使用言語:Dart・C++)

JavaScriptの後継言語として開発された言語「Dart」のフレームワークが「Flutter」です。
DartはもともとWebブラウザ組み込み用言語として開発された言語ですが、iOSとAndroid両方の開発ができるFlutterが登場したことで注目を集めています。
Flutterは、ネイティブアプリだけでなくWindows、Mac、Linuxなどのデスクトップアプリ、Google Chrome、Safari、Microsoft Edgeなどのブラウザアプリを全て1つのコードで開発ができます。
JavaScriptやTypeScript、Java、C言語に似ているので、これらをマスターしている方には、扱いやすいフレームワークといえます。

React Native(使用言語:JavaScript)

JavaScriptでWebアプリケーションを開発するときに便利なライブラリ「React」があり、モバイルニーズの高まりによって、iOS、Android上でも開発できるクロスプラットフォーム「React Native」が開発されました。
JavaScriptを扱うことの多いフロントエンドエンジニアにとって、特に使いやすいフレームワークでしょう。

Monaca(使用言語:HTML5・CSS・JavaScript)

こちらは、エンジニア歴が浅い方でも比較的習得しやすいHTML5を使ったフレームワークです。
日本企業が提供していて、実際に導入している企業も多いため、初めてハイブリッドアプリを開発する企業やエンジニアにとって扱いやすいフレームワークといえます。

スマホアプリ開発案件について

実際に、スマホアプリの開発ができると、どんな案件に参画できて、単価はどのくらい得られるのか気になりますよね。
ここからは、案件の選び方や、高単価案件に参画するためのコツなどをご紹介します。

スマホアプリ開発エンジニアの働き方・単価

スマホアプリ開発エンジニアの主な仕事は、アプリの開発・保守・運用です。
チームで編成され、プランナーやデザイナーと協力しながら開発を行います。
フリーランスのスマホアプリ開発エンジニアの年収相場は以下となります。

iOSエンジニア
Androidエンジニア
最低単価(年収)
35万円(420万円)
36万円(432万円)
最高単価(年収)
125万円(1,500万円)
125万円(1500万円)

※参考サイト:https://freelance.levtech.jp/guide/detail/592/
※参考サイト:https://freelance.levtech.jp/guide/detail/641/

iOSエンジニア・Androidエンジニアともに平均月単価は77万円となります。
最低単価は、だいたいスマホアプリ開発経験1年ほどのエンジニアが該当し、最高単価はスマホアプリ開発経験が5年以上ある上級エンジニアが該当します。
いずれも、アプリ開発そのものの経験年数であって、それ以前にWeb開発経験があること前提となります。

スマホアプリ開発エンジニアに求められるもの

エンジニア未経験の方の中には「アプリ開発エンジニアは希少性が高いのでアプリ開発エンジニアを目指す」という方がいるかもしれません。
ただ、全くの実務未経験のエンジニアが、アプリ開発技術だけを習得していきなり案件に参画するのはやや難易度が高いといえます。
実際のフリーランスエンジニアの求人を見てみましょう。

【案件】
自社POSシステムのアプリ開発

【概要】
Androidタブレットやスマートフォンを利用した、
クラウド型のPOSシステムの開発・運用業務の開発全般
飲食店で行うレジの券売のタブレットの開発,ネイティブアプリ。

工程:要件定義~リリース
現在体制:業務委託エンジニア3名 PM1名(正社員)
言語:AndroidJava

【スキル】
必須:
・Android Javaでのアプリ開発経験5年以上
・長期で参画可能な方
尚可:
・PHPでのサーバーサイド開発経験

この案件の面談では、開発対象はAndroiⅾとなっていますが、実際の面談ではWebアプリ開発の組み込み経験や、アプリ開発以外のシステム開発業務に関する経験も問われています。
アプリとして機能させるためには、SwiftやKotlinを使った画面UIの実装だけでなく、データ連携などのバックエンドの実装も必要になります。
分業体制のとれた大規模な現場では、画面UIの実装のみを担当する案件もありますが、小規模の現場では、バックエンドの経験もある方が有利です。
実務経験が少ない方は、アプリ開発と関連性の高いJavaScriptやC言語、PHP、RubyなどのWeb系開発言語を扱うWeb系の自社開発企業などで入社し、正社員としてフロントやバックの実務経験を積みましょう。 同時に独学でSwiftやKotorinなどのアプリ開発技術を学びながら、自分でスマホアプリ開発をしてみるのがおすすめです。

高単価案件に参画するには

スマホアプリ開発は、実際に扱えるエンジニア数が少ないため、アプリ開発の実務経験が無く、個人開発の経験のみであっても十分強みになります。Web系の開発エンジニアとしての実務経験がある方なら、さらに高単価を狙えるでしょう。
個人で開発したアプリをポートフォリオとして掲示する場合は、そのアプリの開発理由や工夫した点をアピールしましょう。スマホアプリはリリースに手間がかかるため、そこまでチャレンジした経験があるとさらに有利です。
また、Web開発と同じく、新しい開発手法やツールのリリース、OSの定期的なバージョンアップがあるので、最新技術やトレンド情報の収集は必須です。

まとめ

今回は、スマホアプリ開発に関わるために必要な技術やツール、そしてiOSとAndroid両方の開発ができるPWAやハイブリッドアプリについてお話ししてきました。
それぞれのOS向けにアプリを開発するだけでなく、Webアプリとの連携や移行、クロスプラットフォームでの開発など、業務内容はこれからますます多岐にわたっていくでしょう。
また、業種によってはその業界に関する知識が求められることもあるため、関わりたい企業がある方は、関連する業界知識について知識を深めておくとよいでしょう。
今のキャリアではどのアプリ開発に参画可能かな?アプリ開発の案件に関してもっと情報が欲しい!と思ったら、ぜひエージェントを活用してみてください。

特集一覧へ

counseling-image

・フリーランスだけど安定して働いていきたい
・年収アップするためにはどうしたらいいのだろう

気になることは、どんな些細なことでも
お気軽にご相談ください。

IT業界において経験豊富な弊社キャリアサポーターが、1対1でお話をさせていただきます。フリーランスの皆様のスキル、過去のご経験を元に今後のキャリアプランを一緒に築いていくためのご提案させていただきます。
今後のキャリアや、技術面において不安な事もお気軽にご相談下さい。

オンライン相談をしてみる

無料会員登録

60秒で登録完了!