私達の生活に完全に浸透したスマホ。中にはそれぞれの好みや仕事に合わせてたくさんのアプリが入っていますよね。
これだけ身近になれば、「アプリを作ってみたい」、「アプリを作る仕事をしたい」と考えるのも自然なことで、実際にスマホアプリエンジニアを目指す方も増えています。
高収入を目指せることも人気の理由の一つです。
では独学でアプリを作る際には何が必要で、どうやって勉強したら良いのでしょうか。
スマホアプリに限らず、プログラミングの学習は外国語や楽器の習得のように挫折率が高いものです。
せっかくアプリ開発に着手するなら、きちんとアプリが作れるようになりたいですよね。
今回は日本唯一のiOSエンジニア専門オンラインプログラミングスクールである「iOSアカデミア」より、スマホアプリ、特に日本でシェアの高いiOSアプリの作り方についてご紹介します。
挫折せずにやりきる方法までご案内しますので、是非最後までご覧ください。
スマホアプリは独学で開発可能!ただし…
結論から言えばスマホアプリの開発は独学でも可能です。
ただし、ここには「簡単なアプリならば」という条件がついてしまいます。
昔からプログラミング学習の最初の一歩は、画面に「Hello World」という文字を表示させることと良く言われます。
ここまでは教材を見て進めれば誰でもできるでしょうし、すこし進んで簡単なメモアプリでも誰でも作れそうです。
しかしながら、実際に私達が使っているアプリは遥かに複雑な作りになっています。
データ通信を行い、複雑な要件定義が必要なアプリとなると、独学でたどり着ける方はかなり少ないのが現状です。
そもそも企業が開発している大規模アプリの場合は数十人~数百人のチームで開発を行っています。独学でそのレベルまで行くのも大変ですが、独力で作れる範囲を超えているアプリが沢山あるのも現実です。
ちなみにiOSアカデミア代表の山田は独学でiOSアプリ開発に取り組みましたが、アプリを完成させるまで1年弱の期間がかかっています。収益を得られるレベルのアプリを独学で完成させるには、そのくらいの時間がかかることを念頭に置いておきましょう。
スマホアプリの開発手順
では実際にアプリを開発する手順を見ていきましょう。アプリの種類や規模により若干の違いはありますが、基本的には以下のような流れになります。
- 要件定義
- アプリの設計
- 開発スケジュール決め
- 開発
- テスト
- リリース
要件定義のような耳慣れない言葉もありますので、一つずつ具体的に見ていきましょう。
要件定義
先ずはアプリのコンセプトを決定しましょう。コンセプトというのは少し抽象的な言葉ですが、目安としては「どんなアプリを作っているの?」と聞かれて一言で説明できるくらいまで。
ここまで具体化しておくと、後で迷うことがなくなります。
初心者が開発する場合は総合SNSのような何でもできるアプリではなく、例えば「料理のレシピを投稿する」といったシンプルなアプリから取り掛かると良いでしょう。
コンセプトが決まったら要件=満たすべき条件をリストアップしていきます。
料理レシピアプリであれば、
- 料理のレシピを投稿/閲覧出来る
- レシピに従えば目的の料理が作れる
- 料理中にも見やすい
- 初心者でも作業がイメージしやすい
などが要件になります。
アプリのコンセプトを実現するために必要な要件を漏れなく、重複なくリストにしていきましょう。
アプリの設計
実際にどんなアプリになるのかを設計していきます。
前段でリストアップした要件を満たすために、必要な機能をリスト化します。
例えば「レシピに従えば目的の料理が作れる」という要件を満たすためには、「わかりやすいように写真を入れられる」や、「調味料にはマークを付ける」といった機能をつけることが考えられます。
最初に必要な機能を全て把握しておかないと、後になって手戻りが発生しますので、ここも漏れなくリストアップしておきましょう。
機能が決まればデータの設計も固まってきます。機能を満たすために必要なデータをこちらも漏れなくリストアップしましょう。
レシピアプリですから、レシピ名、画像、動画、タイトル、手順、材料名、カテゴリーなどが必要になります。
データの設計ができたらアプリのレイアウトを決める「ワイヤーフレーム」を作成します。
大枠の見た目と、画面遷移図もここで作成すると良いでしょう。
ワイヤーフレームの作成にはdiagrams.netがおすすめです。
個人アプリとかWEBサービス作るならGoogle Drive上で無料で使えるhttps://t.co/8EGnGmFkqeが圧倒的にオススメ
— ヤマタク@iOSアカデミア (@yamataku_init) October 22, 2021
ドラッグ&ドロップでサクサクワイヤーフレーク作れるし、それだけである程度ならデザインが完成出来ちゃう
画面遷移図とか、ビジネスロジックフロー図とかをまとめるのにもいい感じ pic.twitter.com/NVxmJT3LB6
開発スケジュール決め
ここまでで設計は終わりましたので、開発のスケジュールを決めていきます。
タスクを洗い出し、リスト化し、それらをプロジェクト単位にまとめていきます。リスト化にはGitHub issueというツールを、プロジェクト管理にはGitHub Projectというツールを使ってまとめていきます。
全体のタスクや工数、スケジュールを把握しておくことで自分が今どのあたりにいるのかがわかりやすくなりますので、重要な工程です。
開発
ここまで事前準備が出来たらいよいよ実際の開発に入ります。初心者のうちはどれだけ事前準備をしても不測の事態は起こります。
エラーや設計変更の必要が発生しても焦らず、設計や要件の段階から見直して丁寧に進めていきましょう。
テスト
開発が終わったら、イメージ通りに動作しているか、バグはないか、エラーがないか、動作が遅くないか、といった使い勝手をテストしていきます。
ユーザーは開発者の思いもよらないような挙動をするものです。
様々な角度から検証し、不具合やバグはこの段階で修正しておきましょう。
リリース
テストが終わったらいよいよリリースです。自分の作ったアプリがApp Storeに並んでいる姿は感慨深いものですが、アプリは開発して終わりではありません。
PRや運用、機能追加やデータ分析など様々なタスクが待っています。リリースで終わりと思わず、どんどん改善をしていきましょう。
追加:スマホアプリの開発手順について、より詳しく知りたい方はスマホアプリ開発手順の記事も参照ください。
独学でスマホアプリ開発をする人がよくする失敗3選
前の章ではスマホアプリの開発の流れをご紹介しましたが、初心者がこの流れの通りスムーズに開発できることはほぼありません。
たくさんの方に指導してきた中で見てきた、「初心者がよくする失敗」を3つご紹介します。
事前に把握、注意することで是非同じ失敗を避けてください。
いきなりコードを書き始める
これはプログラミングに限らず、何かを製作する場合に初心者がやってしまいがちな失敗の第一位です。
料理をする時にいきなりお肉を切ってしまうと、包丁やまな板が汚れるので野菜を切る前に洗う必要がでてきたり、といろいろ問題が起きるのに似ています。
プログラミングの場合は、いきなりコードを書き始めると大きな手戻りが発生してしまいます。画面遷移が繋がらない、必要な機能が不足している、データ自体がない、などもう一度最初から考えることになりかねません。
コードを書き始める前にしっかりと「これ以上はできない」と言えるまで、要件定義やデータ設計をしておきましょう。
データソースを考えていない
ある程度実用的なアプリを作る場合には何かしらの「データ」が必要になります。
「料理レシピ投稿」アプリなら入れ物を用意してあげれば「データ」はユーザーが書き込んでくれますが、仮にこれが「プロのレシピ集アプリ」だった場合はどうでしょうか。
当然ながら「プロのレシピ集」というデータが必要なわけですが、このデータ自体の入手ができなければこのアプリ自体の製作が不可能になります。
事前に必要なデータは入手できるのか、また無料なのか有料なのかを確認しておきましょう。
アプリ運営コストに関する考慮をしていない
アプリ製作をする際に使う外部APIやホスティングサーバーなどの中には、月額で課金が発生するようなツールも数多くあります。
もちろんその分機能が優秀なことが多いのですが、収益化の目処が立たないアプリから毎月支払いが発生するとアプリの継続が難しくなってしまいます。
初心者はまず有料の外部APIやホスティングサーバーなどを使わずにアプリを作ると良いでしょう。
また、少しレベルの高い話ですが、AppStoreには課金に関するルールがあります。アプリ内でデジタルコンテンツを販売する場合はAppleへの手数料15~30%が発生します。
こういったお金周りのことを事前に整理しておくことも、アプリの開発・継続にとって重要な点になります。
スマホアプリ開発を独学で勉強する方法
では実際にアプリ開発を独学で勉強する方法のご紹介に入ります。
理論的に独学は可能で、よくプログラマー出身のインフルエンサーが「プログラミングは誰でも独学で習得できる」と話したりしますが、実際には挫折率が高いのが実情です。
事前に勉強方法を知り、自分に向いている方法を選びましょう。
基礎学習は動画教材・書籍でも可能
先ずは基礎学習が必要になりますが、この段階は独学でも十分可能でしょう。
現代は動画コンテンツや書籍が豊富ですので、それらを用いて進めていくことで十分理解が得られます。
注意点としては、プログラミング関係のコンテンツは古くなると、自分が使用しているツールのバージョンに差分がでてきてしまいますので、できるだけ新しいコンテンツを選びましょう。
この段階ではプログラミング言語や開発環境など、基本的な道具の使い方を学びます。
開発はオンラインスクール・メンターの利用がおすすめ
基礎学習が終わったら実際に開発に入っていきますが、このあたりから独学が難しくなってきます。
先述の通り理論上独学は可能ですが、要件定義や機能の洗い出しなどに引っかかって挫折してしまう初心者がとても多くでてきます。特に要件定義などは書籍があるわけでもなく、勉強する方法自体がないのが実情です。
独学で進めていくには、長い時間と精神的なタフさが求められます。ほとんどの方にとっては難しい内容になりますので、プログラミングスクールやメンターといった「教えてくれる人」に頼るのもおすすめです。
スマホアプリ開発についてよくある質問
最後にスマホアプリ開発についてよくある質問をまとめました。これからスマホアプリ開発に挑戦しようと思っている方は、ぜひご覧ください。
Q.独学でスマホアプリ開発をするにはどのくらいの期間がかかる?
独学で開発した場合、期間は1年弱、勉強時間は600~700時間くらいかかります。これはiOSアカデミア代表山田の実体験です。
ちなみにiOSアカデミアで学んだ場合、期間は4カ月~6カ月、勉強時間は300~400時間に短縮できます。アプリ開発の過程ではエラーがたびたび生じるのですが、プログラミングスクールに通っていればすぐに講師に質問ができます。また次に何を学習すればいいかロードマップが明確な点もメリット。
独学でアプリ開発をすると、どうしても次に何をすればいいか調べる時間やエラーを解決する時間がかかってしまいます。これらの時間を省くためには、メンターやプログラミングスクールの活用がおすすめです。
Q.スマホアプリ開発を開発するための環境は?
スマホアプリはパソコンがあれば開発できます。iOSアプリの場合MacOSのパソコンにXcodeという開発環境をダウンロードして、Swiftという言語をプログラミングしていきます。
ただしXcodeも万能ではなく、状況に応じてさまざまなツールを使いこなすことで、より素早く完成に近づけます。スマホアプリ開発環境については「スマホアプリの最適な開発環境を現役エンジニアが徹底解説|お役立ちツールも紹介」も参考にしてください。
Q.スマホアプリ開発にかかる費用は?
スマホアプリ開発には開発環境・スキル取得・サーバー・アプリリリースにそれぞれ費用がかかります。iOSアプリの場合MacOSのパソコンが必要なので、少なくとも10万円は必要になります。スマホアプリ開発にかかる必要については「個人がスマホアプリ開発にかかる費用を完全公開!費用を安くすませる方法も紹介」も参考にしてください。
Q.スマホアプリ開発でどうやって稼ぐ?
スマホアプリ開発のスキルを身につけた方の稼ぎ方は、以下の2つがあります。
- スマホアプリエンジニアになる
- 自分でアプリを開発して収益を得る
スマホアプリエンジニアはWEBエンジニアと比べて年収が高く、今後の需要もあります。そのためスマホアプリエンジニアに転職する方も多くいらっしゃいます。また自分でアプリを開発して、広告収入や課金で収益を得るパターンもあります。詳しくは「【報酬画面公開】スマホアプリ開発で毎月稼ぐ事例を紹介|稼ぐために必要な意識とは」をご覧ください。
iOSアカデミアはアプリ開発をサポート
iOSアカデミアは、特に日本でシェアが高いiOSアプリ開発に特化したプログラミングスクールです。
近年数多くのプログラミングスクールがありますが、ほとんどはWebアプリと言われるパソコンのブラウザで使うアプリを開発するコースがメインで、スマホアプリは1コースに留まっています。
iOSアプリに特化したiOSアカデミアだからこそ蓄積している豊富なノウハウを元に、iOSアプリ開発が学べます。
学習計画や作るアプリのアイディアの相談から講師がアドバイスをしますし、アプリが完成した後の就職までフォローさせていただきますので、安心して学習を進められます。
今なら現役エンジニアが無料相談を受け付けていますので、スマホアプリ開発について相談したいことがあれば、お気軽にお問い合わせください。
監修者
-
エンジニア経験0の状態から1年間独学で勉強して独立
さまざまなiOSアプリの開発に携わる
2021年6月にiOS専門のオンラインプログラミングスクール「iOSアカデミア」を開校。iOSエンジニアを目指す人のサポートにも力を入れています