
あなたは今、アプリを作りたくてウズウズしているところではないでしょうか?アプリを自作するためにはまずはプログラミングについて勉強するところから始める必要があります。
世の中にはアプリを作るための便利ツールは様々ありますが、どれもできることが限られています。汎用性を求めるのであれば自分でプログラミングスキルを磨く必要があるでしょう。そんな勉強する時間も取れないし、勉強嫌いな人は外注することも検討して良いかもしれません。
弊社は、会社を設立してから25年経つシステム開発会社で、日々Webシステムやアプリを開発しています。そんな会社に所属している私がアプリの作り方について解説します。本記事を読んでいただき、アプリの作り方について少しでも掴んでいただけると幸いです。
目次
1.アプリを作る前の下準備
1章ではアプリを作る前に何を準備したら良いのか解説します。そもそもandroidとiPhoneで使う開発言語が異なります。なので、android版のアプリができたからそのままiPhoneにも使いまわし、、それができないのです。世の中にandroidしか対応していない(その逆も)アプリもあります。。それは開発言語がそもそも異なるからiPhone版として開発していないだけなのです。と、前段が長くなってしまいましたが、1章を見ていきましょう。
1-1.作りたいアプリの種別を決める
まずは、作りたいアプリの種別を決めましょう。既に自分の中で決まっている場合はここの話はすっ飛ばしてください。いくつか種別があるので、まずはどれを選択するか決めていきましょう。
<アプリには2つの種類が存在>
- ネイティブアプリ:ダウンロードして利用するアプリ
- Webアプリ:ダウンロード不要(ブラウザ)で利用できるアプリ
ネイティブアプリとは、、
Google PlayやApp Store等でダウンロードするとスマホにアイコンが表示されると思いますが、それがまさにダウンロードして利用するアプリです。
Webアプリとは、、
主にブラウザで完結できるアプリです。ECサイト系なんかはブラウザで完結できますよね。その手のアプリはダウンロード不要で利用できます。
※両方を兼ね備えたアプリも存在します。
1-2.作りたいアプリのOSを選択する
<アプリはiPhone向けとAndroid向けがある>
- iPhone向けに作る
- android向けに作る
前段の通り、iPhoneとandroidで使用する開発言語が異なります。それでは、どちら向けに作った方が良いのかしら、、シェア率はほぼ同率、iPhoneの方が開発は簡単でアプリ公開までの審査が早い!ということで、初心者の方はiPhoneの方が作りやすいかもしれません。
ただ、自分の端末がandroidだったり、android愛が強い人は止めたりしません。
1-3.アプリの作り方を選択する
<アプリの作り方は1つではなく、いくつか存在>
- 自分でプログラミングする
- プロ集団がいる会社に外注する
- アプリ開発ツール(ASP)を活用する
- オープンソースを活用する
- クラウド、SaaS系のソフトを活用する
オリジナリティにこだわりたい方は自分でプログラミングするのがベストでしょう。ただ、IT知識ゼロの人にとっては苦労するかもしれません、、ゼロから勉強するにもなかなか時間が掛かるので、ご依頼主が企業だったり、個人でもお金に余裕があれば外注するのが最善策となります。外注に関しては詳細は、4章で解説します。
開発手法 | 汎用性 | コスト | IT知識 |
自分でプログラミングする | ☆☆★★★ | ☆☆☆☆★ | ★★★★★ |
外注(フルスクラッチ) | ★★★★★ | ★★★★★ | ★★★★★ |
無料ASP | ☆☆☆★★ | ☆☆☆☆★ | ☆☆☆★★ |
有料ASP | ☆☆★★★ | ☆☆☆★★ | ☆☆☆★★ |
オープンソース | ☆☆★★★ | ☆☆☆★★ | ☆☆★★★ |
クラウド、SaaS | ☆★★★★ | ☆☆★★★ | ☆☆★★★ |
それぞれについて、さらに詳しく見てみましょう。
- ASPの特徴
ASPは中でも安価に気軽にECサイトを作ることができるので人気があります。それ以前にASPって何の略や…アプリケーションサービスプロバイダ(Application Service Provider)の略で、インターネットを経由してソフトウェアを提供してくれる事業者のことを指しています。
このソフトウェアたちはIT知識が無くても簡単に作れるようになっているのが特徴的です。また、ただ使うだけであれば基本的に費用は掛かりません。
商品の売買が成立したときに手数料として売上からマイナスされるのが基本的な形となっています。とはいえ、気軽に始められますし、何となくやってみようみたいな人には向いていると思います。
- オープンソースの特徴
続いて、オープンリソースとはECサイトのプログラムコードが無料で一般的に公開されており、それをカスタマイズしてECサイトを構築していく手法です。ASPと比較して、プログラミング知識が多少なりとも必要になってきます。ただ、調べながらでも構築を進めることができるので、プログラミングに抵抗がない人であればそこまで難しい作業にはならないでしょう。
一方でオープンということで、悪い人の目にも止まりやすいです。悪い人は改ざんして、安易に中まで入って来れます。昨今は個人情報流出事件も実際に発生しているので、セキュリティ面では不安が残ります。
- クラウド、SaaS系のソフトの特徴
ツールに比べてやや費用は高くなりますが、ある程度自分でオリジナルなモノを作ることができます。多少のプログラミング知識が必要になりますが幅は広がります。自分がプログラミングに疎ければ得意な人に任せることでも成り立ちますね。
1-4.アプリを作るための道具を揃える
どのようなアプリを作りたいか決めたところで、次はアプリを作るための道具が必要になってきます。道具といってもパソコンがあれば、ほとんど完結できてしまうわけですが、、とはいえ最低限のスペックがあるので紹介します。
まず、iPhoneとAndroidで必要なスペックが異なりますので気を付けましょう。
iPhoneアプリ | Androidアプリ | |
端末 | Mac | ・Windows ・Mac ・ゲーミングPC ※いずれか1台 |
スペック | CPU:Core i7 メモリ:4GB以上 HDD:64GB以上 | CPU:Core i7 OS:Windows8、64bit以上 メモリ:8GB以上 HDD:64GB以上 |
ソフトウェア | Xcode Visual Studio ※あくまで代表例 | Android Studio Visual Studio ※あくまで代表例 |
PCと必要なソフトウェアの準備ができたら、アプリの中身を作るための準備へ進めましょう。2章をご覧ください。
2.アプリの作り方(進め方)
それでは、具体的にどうやってアプリを作っていけば良いか2章では紹介したいと思います。
2-1.アプリの仕様書を作成する
まずは、今回発明したアプリの内容を仕様書としてドキュメント化する必要があります。自分の頭では出来上がっていてもそれを実際に開発する人達に共有するにはどうしても避けられない道ですね。自分の頭の中を整理するという意味でも良いかもしれません。仕様書には例えばこんなものを盛り込んでみましょう。
- アプリの画面遷移図
- アプリの各画面構成
- BGMやSEを付ける場合はその流すタイミング
- リリースまでのスケジュール
- テスト評価基準(各機能ごとのテスト要件等)
2-2.アプリに必要な素材を集める
アプリで必要なBGM、SE、画面の中に入れたい図形やデザイン等の素材を集める必要があります。世の中にはフリー素材もありますので、フリー素材を活用することもできます。ただ、自分が満足できる素材を見つけるのはなかなか時間が掛かります。自分でデザインから作ってしまう方が楽ですが、そのようなスキルがない場合は外注した方が早いでしょう。ただ、その分コストは掛かるわけですが、、
2-3.プログラミングする
ここがメインイベントですね。実際にプログラミングを進めていきます。この記事を読んでいる方の中には本当に初心者の方もいるでしょう。そもそも何を勉強したら良いのかは、3章で紹介します。
ちなみにChatGPTを使ってコードを書いてもらうこともできますが、AIに頼るのも1つの手ですがあまりおススメしません(自分のためにもなりません)。複雑なものだと自分で書いた方が早いでしょう(エラーが発生しやすく、自分が思い描いたものができづらいです)。例えば、足し算ゲームをChatGPTさんに書いてもらいました。Pythonで書かれています。
※このコードを公開しても良いかChatGPTさんに確認済みです。
2-4.テストする
プログラミングまで書き終えたら、そのコードがちゃんと動作するかテストします。必ずエラーはいくつか発生するものなので、テストは必須で実施する必要があります。
テストは3つの工程に分けることができ、それぞれ実施する必要があります。
(1)単体テスト
単体テストは、開発した機能単体の動作をテストすることです。開発したエンジニアがそのまま単体テストをするケースが多く、その機能単体がどのような動作をするのが正解か明確なはずです。
単体テストの詳細については、「単体テストとは?テストする観点と結合/総合テストとの違いを解説」の記事をご参照ください。
(2)結合テスト
結合テストは、機能と機能を組み合わせて動作させた時に意図した通りの動きをするかテストすることです。挙動だけではなく、その挙動が仕様書に沿っているか、機能と操作の組み合わせが適切か、様々な観点で確認します。そのため、1回のテストで終わることはなく複数回繰り返してテストします。
結合テストの詳細については、「結合テストとは?テストする観点と単体/システムテストとの違いを解説」の記事をご参照ください。
(3)システムテスト(総合テスト)
システムテストは、基本設計書通りに機能や性能が動作するかテストすることです。別名・「総合テスト」とも呼びます。実際の使用状況を想定して、作業する環境・端末の設定等を整えたうえで多角的にテストしていきます。
システムテスト(総合テスト)の詳細については、「システムテスト(総合テスト)とは?観点と単体/結合テストとの違いを解説」の記事をご参照ください。
2-5.アプリをリリースする
無事にすべてのテストをクリアしたら、開発したゲームアプリをリリースしましょう。iPhoneとAndroidにアプリをリリースするために審査を通らないといけません。リリースする手順は長くなるので、以下の外部サイトをご参照ください。
・iPhone
(2024年版)iPhoneアプリをApp Storeで公開する手順まとめ
・Android
Google Play StoreにAndroidアプリをリリースする手順2023(令和最新版)
3.アプリを作る上で必要なスキル
続いて、3章ではアプリを作る上で身に付けておきたいスキルです。まずは勉強するところから、、になりますが、ここで挫折してしまう人が大半です。まず大前提としてiPhoneとAndroidで、求められるスキル…というか開発言語が異なります。両方を対象に1人で開発するとなるとそれなりに勉強時間が必要になってきます。
ただ、折角優良アプリを発案したのに開発できないなんて惜しいですよね。そういう人は3章に進みましょう。お金は掛かりますが、外注をおススメします。
比較的iPhoneの方が扱いやすい言語になっています。
勉強する上で、活躍する書籍については「入社3ヶ月の新卒エンジニアにおすすめするプログラミング入門書10選」の記事をご参照ください。
3-1.iPhone開発言語を勉強する
iPhone用に開発するのに必要な言語を紹介します。言語としては、「Swift」、「Python」、「JavaScript」などがあります。
特にSwiftとPythonはコード構成がわかりやすく作られているので、初めてアプリを作る人にも使いやすいとされています。Pythonは、AIにも活用することができるので、本格的に勉強していきたい人にはPythonをおススメします。また、JavaScriptはWebサイト上で動きをつけることに向いており、少し凝った動き・処理を入れたい場合はJavaScriptが必要になってくるでしょう。
3-2.Android開発言語を勉強する
続いて、Android用に開発するのに必要な言語を紹介します。「Java」や「C++」、「Kotlin」、「C#」などがあります。
Javaは、Android向けのプログラムの基礎知識を得ながら使える言語を習得するという意味で、初心者にはJavaの学習が推奨されています。
C++はC言語を拡張したもので、動作が早いことを特徴としています。そのため、データが重いアプリを開発する際に向いています。
KotlinはAndroid向けアプリ開発用言語の代表的存在となっています。Javaで長い記述を必要としていた部分を大幅に短縮できるなどの特徴を持っています。
3.開発言語を勉強したくない人は外注へ
本を手に取ると分かりますが、だんだん複雑化していき頭が追い付かなくなる人が多いです。本を読むだけではマスターすることはできないので、実際に手を動かしながら学ぶことが重要でしょう、、それでも挫折してしまう人がほとんどです。では、そんな時には外注を検討してみてはいかがでしょうか?
3-1.外注を検討した方が良い理由
まず外注することで、その道のプロ集団にお願いすることになるので、初心者級の自分で開発するよりも品質が高いモノが出てくるのは確実です。また、自分が手を動かす必要はないので、考案したアプリの中身をさらに濃くすることができるのではないでしょうか。付加価値を付けていって、みんなに愛されるアプリにしていきましょう。売上に繋がるかもしれません!?
3-2.外注の選択肢
続いて外注の選択肢です。外注と一言でいってもいくつか手段があります。今回開発したいアプリの規模に応じて選ぶと良いかもしれません。
タイプ | こんな人におススメ | こんな人には向かない |
国内企業 |
|
|
フリーランス |
|
|
海外企業 (オフショア開発) |
|
|
3-3.会社の選び方
ここまで来たら会社選びで押さえておきたいポイントを紹介します。会社を選ぶ際は複数社から見積もりを取ることもポイントです。会社によって金額や考え方は異なるので自分にマッチするところを最終的に選ぶようにしましょう。
(1)過去5年の売上が右肩上がり
・過去5年間右肩上がりで上昇している会社はビジネスが回っている証拠として見て良いでしょう。
(2)資本金1,000万円以上
・資本金があまりにも低いと茶威力がない会社と見られます。何かトラブルなどが生じた際に、支払遅滞や支払能力無しという可能性が出てきます。
(3)帝国データバンクでの評価
・帝国データバンクで、その会社の評定をしてもらうことができます。
(4)過去の裁判沙汰等のトラブル確認
・過去に大きなトラブルを起こしていないか確認しましょう。信用度に繋がる問題なので、大事なところになります。
(5)口コミサイトの検索
実際の利用者の声は参考にすべき要素の1つです。ただ、鵜吞みにしすぎるのも危険なので1つの指標として参考にしてください。
※社内で外注するための規定が設定されている場合は、所属している会社の規定に沿ってまずは対応してください。
(6)これまでの実績を確認
・コーポレートサイトに掲載されているケースが多いので、まずはホームページを確認しましょう。
・それだけでは不安 or 掲載されていない場合は、直接問い合わせて類似実績を出してもらいましょう。
※実績を見てしっくりこない場合は、他の会社が良いかもしれないです。
(7)個人情報取り扱いに関する資格を確認
・「ISO27001(ISMS)」を取得しているか。
組織が情報セキュリティを確保するための仕組みを構築・運用できていることを証明するセキュリティに関する国際規格の認証です。国際規格なので、下記のPマークよりも難易度は高めともいえるでしょう。
・「Pマーク」を取得しているか。
Pマークとは、個人情報の適切な取り扱いを行っていることを示す日本独自の認証です。日本工業規格に基づく監査が必要で、Pマークの取得には特定の要件を満たす必要があるので、取得している企業は個人情報を適切に取り扱っている証拠にもなります。
(8)比較サイトを利用する
比較サイトで複数の企業からの提案を見ることで、比較検討がよりしやすくなると考えられます。ただ、上記の確認ポイントや、次項で解説する内容を網羅している会社を優先することを忘れないようにしてください。
「アプリ 作り方」まとめ
アプリの作り方について解説してきました。アプリは自分でも作ることができます。ただ、プログラミングをゼロから学ぶにはそれなりの勉強時間と労力が必要になります。まずは自分でチャレンジしてみたい人は、プログラミング初心者の本を手に取ってみてはどうでしょうか?中身を見てみて続けられるかどうか判断すると良いでしょう。
そんな時間取れそうもない人は外注をおススメします。お金は掛かりますが、その道のプロなので自分が思っていたモノを作り上げることができます。それが爆発的にヒットすれば外注費用なんてすぐにペイできるでしょう。
弊社は会社を立ち上げたから25年が経ちます。オフショア開発、ニアショア開発、常駐型と様々な形で体制構築できることが強みです。アプリの外注先としていかがですか?相談は無料!どんな些細なことでも、お気軽にお問い合わせいただければと存じます。