「アプリ」と一口に言っても、ブラウザ上で動作するWebアプリと、端末にインストールして端末上で動作させるネイティブアプリがあります。本記事では、OSに依存して動作するネイティブアプリケーションを対象とします。
ネイティブアプリは特定のOSにロックインされる変わりに、WEBアプリなどのマルチプラットフォームアプリでは実現が難しいような高機能なアプリが作れます。
それではネイティブアプリ開発についてみていきましょう。
- ネイティブアプリはプラットフォーム間で互換性がない
- 初心者の場合、実際に動かしながらコードを書く進め方がオススメ
- 積極的にライブラリなどを使って効率よく開発を進めよう
- Android、iOSもテスト用に実機で動作させる分にはお金はかからない
初心者がアプリ開発をするには
ネイティブアプリはAndroidやiOS等のプラットフォーム間で互換性を持たないため、アプリを作るための開発環境や費用も開発するアプリのOSによって全く異なるものになります。すでにエンジニアとして企業に勤めていて業務上プログラミングが必要になる場合では、対象のOSや使用するプログラミング言語が決まっているでしょう。
そうでなく、独学や個人でアプリを製作する場合等、初めてアプリ開発に挑戦する場合は、まず対象のOSを決め、学習する言語を自分で決めておく必要があります。本記事では、アプリを開発するための心構えや、ネイティブアプリを作る際の環境、言語、費用などの違いを解説します。どんなアプリを作成するか決めるための参考にしてみて下さい。
心構え
まずは動かして確認することを第一に
全くの初心者であれば、初めに使うプログラミング言語の文法やお作法を覚える必要があります。ただ、文法を淡々と覚えるだけではモチベーション的にも身につき方もなかなかつらいものがあります。
プログラミングの学習は、自分で手を動かして記述したコードが動いていく実感を持ちながら学習していくスタイルをお勧めします。文法が理解できなくてもとにかく記述してみて、動かなかったら動かない理由を探してみる、動いたらなぜ動くようになったか考えてみる、といったことを繰り返していきましょう。
参考書の中には、実際に手を動かすことでだんだん多くのことを理解していくような書籍が多く出版されています。最初にそういった参考書を選んで、アプリの開発に役立てていくのがお勧めです。
ライブラリ等の部品を積極的に利用する
アプリ開発を通してプログラミングを学習したり実践で使っているうちにも、言語やプロミングの環境等は日々進化しています。過去の技術の上にさらに新しい技術が上乗せされていくイメージです。
昔は機能を実現するためにイチからプログラミングする必要があったものが、フレームワークやライブラリ等が開発され日々更新され、それらの活用によりイチから自分でプログラミングをしていく必要がなくなっています。勉強のために仕組みを知ることも時には必要になりますが、ライブラリを使えば実装できる部分がある場合は、積極的に使うようにしましょう。
開発のスピードが上がるとともに、出来る範囲も広くなります。限りある時間の中で、自分のできることを最大限にすることを心がけましょう。
モチベーションを保つための工夫をしよう
アプリ開発のために独学で言語を学んでいる場合、アイデアの枯渇やモチベーションの維持に悩まされることが多くなります。そのため、勉強会やネットのコミュニケーションツール等を利用して技術者のつながりを作っておく事は、アプリの開発を進め続けるための大きな手助けになります。
住んでいる地域がある程度の都会であれば、各地で初心者から上級者まで様々なレベルの技術者が学ぶことのできる勉強会が開かれています。地方でも、インターネット環境があればコミュニケーション機能のついているプログラミングの学習サイト等を探すことで、他の技術者との交流ができます。
一人で悩むだけでは出ないアプリケーションのアイデアが、他の参加者からのヒントで見つかることもあるかもしれません。このような交流の機会を見つけて、積極的に参加してみるようにしましょう。
独学に行き詰まるならスクールも検討を
分からないことが解決できず、時間ばかり使ってしまうとモチベーションを保つことが難しくなります。お金はかかりますが、プログラミングスクールに入ると、分からないことをすぐにチャット等で聞ける環境が手に入ります。
そして、スクールで学ぶなら「ポテパンキャンプ」がオススメです。Rubyの学習に強みがあるスクールで最短5ヶ月でエンジニアとしての実践的なスキルが身につくカリュキュラムがあります。
プログラミングの基礎から実戦にも役立つ力が身につくスクールはこちら
必要な環境
前述したとおり、ネイティブアプリ開発に必要な環境は、OSごとに異なります。本章では、OSごとに必要な環境について解説します
Android
Androidを開発するための環境は下記のとおりです。
・OS:Windows、MacOS、Linux
・IDE(統合開発環境):Android Studio
・開発言語:JavaもしくはKotlin
Androidのネイティブアプリで開発ができる言語は、JavaもしくはKotlinです。Javaは元々業務系からWebアプリまで、さまざまなシーンで使われている言語です。Java11よりOracleJDKが有償化されますが、Android Studioの標準はOracleJDKではなくOpenJDKを採用しているため、OracleJDKを使用しない限り、無料で開発することができます。
Kotlinは、2017にGoogleがAndroidアプリ開発用として使用できることを発表した言語です。JVM上で動作しJavaと互換性があるため、Androidアプリ開発を行う手段として採用されました。
iOS
iOSを開発するための環境は下記のとおりです。
・OS:MacOS
・IDE(統合開発環境):XCode
・開発言語:SwiftもしくはObjective-C
Apple系OSで動作するアプリは元々、「Objective-C」という言語で作られていましたが、2014年から「Swift」という新しく開発された言語でも書くことができるようになりました。Swiftはシンプルに記述できて動作も軽いというのと、実用の開発案件でも十分実績があることから、これから開発するのであればSwiftでのコーディングがおすすめです。
プログラミングの基礎から実戦にも役立つ力が身につくスクールはこちら
費用
アプリを開発するまでは無償で開発できますが、AndroidではGoogle Play、iOSではApp Storeのそれぞれで公開するために開発用アカウントが必要になります。
Android
Google Playからアプリをリリースするために、デベロッパーアカウントへの登録料が25$かかります。その他の費用はとくにかからず、登録時に1回支払うのみです。
iOS
App Storeからアプリをリリースするために、開発者(Apple Developer Program)登録料が年間で99$かかります。以前はテストで実機を使うためにこの開発者登録が必要でしたが、今はApple IDの登録があればテストも実施できるようになっています。
始めてからは
アプリのリリースには費用がかかりますが、面白いとか便利なアプリが開発できたら、積極的に公開するようにしましょう。Google PlayやApp Storeでアプリを公開すると、ユーザーからコメントや評価をもらうことができます。前向きなコメントをもらうことで、そのアプリの改良や他の新しいアプリの開発の励みになり、マイナスなコメントをこれからの改良に結びつける事ができます。
アプリの出来に自信があれば有料アプリとして公開したり、アプリ内の一部機能を有料することで収入を得ることができます。アプリ内にバナー広告やアイコン型広告を表示する事で、広告収入を得る方法もあります。
プログラミングの基礎から実戦にも役立つ力が身につくスクールはこちら
まとめ:アプリ開発をしよう!
本記事では、アプリの開発の中でも、ネイティブアプリの開発を中心に解説してきました。
端末にインストールして端末上で動作させるネイティブアプリでは、AndroidとiOSで開発環境も言語も全く違います。開発したいOSに絞って、言語を決めて学習、開発していくのが良いでしょう。
アプリのリリースにはそれぞれのOSで費用がかかりますが、積極的に公開することをおすすめします。
「こんなアプリでも公開して大丈夫かな?」と思ってアプリを公開するのを躊躇するかもしれませんが、著作権などに気をつければ大丈夫です。もちろん、初心者が作ったアプリの場合、ダウンロード数も伸びず、時には批判コメントを受けるかもしれませんが、それも経験として捉えて、悲観せずにどんどん前進していきましょう。