アプリ開発の言語は、アプリをどこに届けるかを先に決めると、ほぼ自動的に絞り込まれます。言語の比較や一覧はいくらでも見つかりますが、本当に知りたいのは言語のカタログではなく「結局、自分は何を学べばいいのか」のはずです。言語そのものに絶対の優劣はなく、届け先が決まれば選択肢は数個まで減ります。届け先から逆算して言語を選ぶ考え方と、迷ったときの決め方を整理したうえで、それぞれの言語を詳しく学べる記事にもつなげます。
アプリ開発の言語は「どれが一番いいか」では決まらない
アプリ開発の言語を調べると、複数の言語を並べた比較がまず目に入ります。ですがどの言語にも得意分野があり、開発者ごとに前提(使える機材や作りたいもの)も違うため、「これが一番」という答えは実は存在しません。ランキング形式の情報を追うほど、かえって決められなくなるのはこのためです。
そこで発想を変えて、「言語」ではなく「届け先」から考えてみます。作ったアプリをiPhoneユーザーに届けたいのか、Androidユーザーにも届けたいのか、あるいはブラウザで動くWebアプリにしたいのか。届け先が決まれば、学ぶ言語はほぼ自動的に絞り込まれます。
考え方はシンプルで、届け先ごとに定番の言語をたどっていくだけです。iPhone向け、Android向け、Web、そして両方のOSに同時に出したい場合、の4パターンに分けて、それぞれの定番と個別記事への入り口をここから見ていきます。そのうえで、よくある誤解を整理し、迷ったときに使える3つの手がかりも紹介します。
iPhoneとAndroid、ネイティブ言語の定番
iPhoneやiPadに向けてアプリを作るなら、Swiftが公式のルートです。Apple自身が用意している言語で、開発環境のXcodeも含めて情報が集約されているため、初めての言語選びでも進み方が分かりやすいのが特徴です。ふだんMacやiPhoneを使っている人であれば、環境を揃える手間も少なく済みます。具体的な始め方は、Swiftを扱った個別記事の方が詳しく書いています。
Android向けであれば、いまはKotlinが第一候補です。GoogleもKotlinを軸に情報を整備していて、新しく学ぶ人はまずここから触れるケースが多くなっています。一方でJavaもいまなお現役で、既存のAndroidアプリの多くはJavaで書かれているため、案件や引き継いだコードに合わせて選ぶ場面も残っています。詳しい始め方は、それぞれの個別記事で確認してください。
iPhone向けとAndroid向け、どちらを選ぶか迷う場合は、自分がふだん使っている端末に合わせるのも一つの手です。使い慣れた環境のほうが、動作確認やちょっとした不具合の切り分けもしやすくなります。特にストア公開が初めての場合は、使い慣れた端末のほうが公開までの不安も少なく済みます。両方に届けたい場合の選択肢は、次で扱うクロスプラットフォームの範囲になります。
Webとクロスプラットフォームという道
スマホの機種を問わず「ブラウザで動くもの」として届けたい場合は、少し構図が変わります。サーバー側で処理を行う「ロジック側」の言語と、画面を動かす「ブラウザ側」の言語(JavaScriptが中心)の、役割の違う2つが必要になるためです。ネイティブアプリのようにストアを経由しない分、公開のハードルが下がるのも特徴です。とはいえ最近はブラウザとアプリの垣根も緩やかになっていて、作り方の選択肢自体は広がっています。
一方、iPhoneとAndroidの両方に、しかもアプリストア経由で届けたい場合は、1つのコードで両方を作れるクロスプラットフォームという選択肢があります。代表的なのはFlutter(言語はDart)で、1本のコードをベースに両OS向けの見た目を作れるのが特徴です。ほかにも同じ発想の選択肢はありますが、まずは代表例として押さえておく程度で十分です。
Web、ネイティブ、クロスプラットフォームのどれを選ぶかは、「どこで見つけてもらいたいか」で決まります。検索エンジンからの流入を重視するならWeb、ストアでの検索や一覧からの発見を重視するならネイティブかクロスプラットフォーム、という向きで考えると判断しやすくなります。
よくある誤解を整理しておく
「Pythonでスマホアプリは作れますか」という質問もよく見かけます。結論から言うと、作り方の選択肢はありますが、スマホアプリ開発の主流ルートとは学び方の勝手が変わってきます。Pythonが素直に力を発揮できるのは、サーバー側の仕組みやデータ処理、パソコンで動く道具づくりといった場所で、スマホアプリはその中心ではありません。どんな場面で相性がよいのかは、Pythonを扱った個別記事の方で具体的に解説しています。
もう一つの誤解が、「まず言語を完璧に覚えてから作り始める」という順番です。実際には逆で、作りたいものが決まると、覚えるべき範囲は自然と絞られます。全部を学んでから動くのではなく、必要な分だけ調べながら手を動かすほうが、結果的に早く形になります。
逆に、「とりあえず色々な言語を少しずつ試す」のも遠回りになりがちです。届け先が決まっていない段階で手を広げると、どれも中途半端なまま時間だけが過ぎてしまいます。まずは届け先を1つ決めて、その言語で最後まで1本作り切るほうが、結果的に得るものが多くなります。
迷ったら、3つの手がかりで絞り込む
それでも決めきれないときは、次の3つで絞り込むと1つに定まりやすくなります。①手持ちの機材がMacかWindowsか(SwiftでのiPhone開発はMacが前提になります)、②作りたいアプリの届け先はiPhoneかAndroidか両方か、③すでに少しでも触れたことのある言語があるか、の3点です。この3つは特別な準備がなくてもすぐに答えられる項目なので、まずは紙に書き出してみるのもおすすめです。
この3つを並べると、たいてい候補は1つか2つに絞られます。大事なのは完璧な選択より、最初の一歩を早く踏み出すことです。言語は途中からでも変えられますし、1本目のアプリで学んだことは、2本目以降でどの言語を選んでも無駄になりません。決まったら、その言語の個別記事で始め方を確認してください。
たとえば「Windowsしか持っていない」「作りたいのは家計簿のようなAndroid向けアプリ」「JavaScriptなら少し触ったことがある」という人であれば、候補はAndroid向けの言語に絞られます。逆に「Macがあり、iPhoneで使う道具アプリを作りたい」なら、Swiftから検討するのが素直な流れです。
言語選びより先に確かめたいこと
言語を決めることは大事ですが、実はその前に確認しておきたいことがあります。それは、作ろうとしているアイデアが、実際にどんな言葉で検索されているかです。検索する人がいなければ、どんなに得意な言語で丁寧に作っても、届く相手がいないままになってしまいます。
こうした需要の確認は、企画メモの段階で数分あれば終わります。AppLupeのようなツールを使うと、狙っているキーワードの検索ボリュームや関連キーワードを調べられるので、言語選びに入る前の下調べとして使えます。メール登録だけ(カード不要)で毎日3回まで無料で試せるので、アイデアを言語化する前の確認先として覚えておくと役立ちます。
なお、各言語の細かい仕様や書き方は更新が続くため、学習を始める段階では公式ドキュメントなど最新の情報も合わせて確認しておくと安心です。届け先とアイデアの需要さえ押さえておけば、あとは選んだ言語の個別記事に沿って手を動かしていくだけです。特に複数本のアプリを並行して考えている場合は、比較しながら優先順位をつけておくと、次に何を学ぶかも決めやすくなります。
よくある質問
Q. 結局、アプリ開発は何の言語から始めればいいですか?
「これが正解」という1つの答えはありません。iPhone向けならSwift、Android向けならKotlinが定番の入り口です。手持ちの機材と作りたいアプリの届け先を照らし合わせて選ぶと、候補は自然と1つか2つに絞られます。迷う場合は、機材・届け先・触れたことのある言語の3点で絞り込んでみてください。
Q. Pythonでスマホアプリを作ることはできますか?
作り方の選択肢としては存在しますが、iPhoneやAndroid向けアプリ開発の主流ルート(Swift・Kotlinなど)とは、学び方や向いている場面が変わってきます。Pythonがどんな用途に向いているかは、Pythonを扱った個別記事で詳しく解説しています。
Q. 一度決めた言語は、あとから変更できませんか?
変更できます。最初の選択を完璧にする必要はありません。1本目のアプリで学んだ考え方や検索対策の感覚は、別の言語に移ってもそのまま活かせます。まずは届け先を決めて、1本作り切ることを優先してください。言語選びに時間をかけすぎるより、早く手を動かすほうが結果的に近道です。
AppLupe(アップルーペ)運営ツールこのブログを運営しているAppLupeは、App Store対応のASOツールです。「作ったアプリが検索で見つからない」を解決するために、キーワード調査から順位計測までを1つにまとめています。
- キーワードの検索ボリューム(AppLupe指数)と関連キーワードを確認
- 競合アプリがどのキーワードから流入しているかを実測
- AIがタイトル・サブタイトル・スクリーンショットの改善案を自動生成
- 狙ったキーワードの検索順位を毎日自動トラッキング