• スマホアプリやWebアプリにおすすめの開発言語は何?【初心者向け】

    公開日:2020年12月22日 最終更新日:2021年12月20日

    未経験・個人開発・独学からでもアプリが作れるようになりたいけど、どの言語を選べば良いのかわからないという方の悩みを解決します。アプリの種類といってもさまざまなものがあり、開発したいアプリによっておすすめの言語も違ってきます。今回は、アプリケーションの種類・開発事例、アプリ開発言語の選び方などを解説します。

    1. アプリ開発の基礎

    アプリ開発といってもさまざまな種類のものがあります。

    今回は、

    • 【スマホ向け・Web向け】アプリの種類
    • 【アプリの種類別】代表的な開発事例

    について、詳しく見ていきましょう。

    ▲ページトップへ戻る

    1.1 【スマホ向け・Web向け】アプリの種類

    スマホ・Webアプリの種類としては、主に4つあります。

    • Webアプリケーション
    • デスクトップアプリ
    • スマホアプリ
    • ハイブリッドアプリ

    ▲ページトップへ戻る


    1.1.1 Webアプリケーション

    Webアプリケーションとは、インターネット(Web)経由で利用するアプリケーションのことです。例えば、YouTubeやGmailはWebアプリケーションの一種。
    対義語は「ネイティブアプリ」になります。
    ネイティブアプリとWebアプリの違いは、インストールの有無です。デバイス(PC/スマホ)にインストールし、端末の処理能力を使い各種処理を行うのがネイティブアプリです。一般的に「スマホアプリ」と呼ばれるものは、ネイティブアプリの中でもスマホ向けのものになります。Webアプリケーションは端末へのインストールはせず、インターネット経由で利用し、処理はGoogle Chromeなどブラウザが行います。

    ▲ページトップへ戻る


    1.1.2 デスクトップアプリ

    デスクトップアプリは、コンピュータにインストールしてデスクトップ上で利用するアプリケーションです。ネイティブアプリのうち、パソコン向けのものを指します。近年はブラウザで処理を行うWebアプリケーションが人気でしたが、徐々にデスクトップアプリにも再注目が集まっています。理由は負荷が大きい処理を求めるWebアプリケーションの増加にあります。デスクトップアプリはパソコン端末の処理能力を使い、ブラウザに処理を任せません。ブラウザでは処理が重いアプリ(チャットアプリなど)でもデスクトップアプリなら軽量の動作が実現できます。デスクトップアプリ開発向けのフレームワークとして「Electron」が登場したことも、デスクトップアプリに再注目が集まる理由になっています。

    ▲ページトップへ戻る


    1.1.3 スマホアプリ

    スマホアプリとは、iOS/Androidのスマートフォン向けのネイティブアプリです。ガラパゴスケータイ(携帯電話端末)が主流だったころは、ガラケー向けに提供されるゲームはブラウザ経由で利用するのが主流でした。一方スマホアプリが主流になってからは、iOSの場合はApp Store、AndroidはGoogle Play経由でアプリをダウンロードしてプレイするのが主流になりました。端末の処理能力を活用できるためスムーズに動作することに加え、ネット環境がなくてもプレイできることが魅力です。また、電話やマイク、カメラなどの端末の機能を使えることも良い点です。

    ▲ページトップへ戻る


    1.1.4 ハイブリッドアプリ

    ハイブリッドアプリとは、Webアプリとネイティブアプリの良いところを組み合わせた特長を持ったアプリです。HTML5、CSS、JavaScriptなどのWeb技術で開発しており、且つカメラやGPSなどのデバイスのネイティブ機能を利用します。

    ハイブリットアプリの特徴は以下の通りです。

    • Webアプリの良い所である、アプリをインストールするだけで、WindowsやMac、Android、iPhoneなどOSを問わず使用できる「クロスプラットフォーム」を取り入れている

    • ネイティブアプリの良い所である、カメラ機能や、位置センサー機能、プッシュ通知機能などの「デバイス固有機能の利用が可能」という部分を取り入れている

    • 1つのコードでiOS、Androidで動作させることができる

    • iOS/Androidを同時に開発できるため開発コストも安い

    一方で動作がネイティブアプリに比べて遅いことや、複雑なアプリには向かないことが欠点になります。

    ▲ページトップへ戻る

    1.2 【アプリの種類別】代表的な開発事例

    代表的な開発事例をアプリの種類別にご紹介します。

    今回は以下の4つについて見ていきましょう。


    • 【Webアプリ】クックパッド
    • 【デスクトップアプリ】Atom
    • 【スマホアプリ】NewsPicks
    • 【ハイブリッドアプリ】ジャパンネット銀行

    ▲ページトップへ戻る


    1.2.1 【Webアプリ】クックパッド

    出典:クックパッド株式会社|Ruby Association

    クックパッドはクックパッド株式会社が提供する、掲載レシピ数120万品以上、月間ユニークユーザー1,500万人以上、月間PV5億の巨大サイトです。多くの方が、献立を考える時にクックパッドを使ったことがあるのではないでしょうか。
    クックパッドで使われている言語やフレームワークは以下の通りです。

    • Ruby
    • Ruby on Rails
    • ColdFusion(2008年よりRubyに移行)

    参照:クックパッド株式会社|Ruby Association

    ▲ページトップへ戻る


    1.2.2 【デスクトップアプリ】Atom

    出典:Atom

    Atomはオープンソースのコードエディターで、OSはWindows/Linux/Macで利用可能です。さまざまなパッケージで機能を自由に拡張できるのが特徴です。例えば、「GitHub」リポジトリをAtom上で扱えたり、コーディングをリアルタイムで共有できる「Teletype for Atom」などさまざまなパッケージがダウンロード可能です。

    Atomで使われている言語やフレームワークは以下の通りです。

    • Electron
    • Node.js

    参照:https://github.com/electron/electron

    ▲ページトップへ戻る


    1.2.3 【スマホアプリ】NewsPicks

    出典:NewsPicks

    NewsPicksは「経済を、もっとおもしろく。」をキャッチに掲げるソーシャル経済メディアです。国内外90以上のメディアから経済ニュースを配信しており、各業界の著名人や有識者のコメントとともに読むことができるのが特徴です。

    NewsPicksで使われている言語やフレームワークは以下の通りです。

    • Kotlin
    • Java(Kotlinに移行)
    • Grizzly
    • Jersey
    • Kodein
    • Hibernate
    • Jedis
    • Retrofit
    • Jackson

    参照:https://medium.com/@monzou/newspicks-kotlin-server-18804392946f

    ▲ページトップへ戻る


    1.2.4 【ハイブリッドアプリ】ジャパンネット銀行

    出典:ジャパンネット銀行 残高確認|Monaca

    Monacaは2013年9月12日に正式リリースされ、Onsen UIというUI用コンポーネントと、HTML/CSSの他、AngularJSというJavaScriptのフレームワークを使用しています。Monacaはクラウド技術を活用した多様なアプリ開発が可能なプラットフォームで、以下のようなアプリを作成できます。

    • モバイル(iOS、Android)
    • デスクトップアプリ(Windows、macOS)
    • Webアプリ(SPA、PWA)

    多彩なアプリ開発に対応するクラウドサービスを中心に、DevOps・コンサルティング・テクニカルサポートなどのサポート面も充実しており、あなたのプロジェクトを成功に導いてくれます。全てのOSに対応しているクロスプラットフォームなので、必要な作業量や開発コストを抑えることができ、特に初歩的なアプリを作りたい人にはおすすめです。


    Monacaで作られたシステムの中に、「ジャパンネット銀行の残高確認アプリ」があります。使い方はとてもシンプルで、Visaデビットの買い物時や外出時でも、残高や最新明細を確認することができるアプリです。

    ジャパンネット銀行で使われている言語やフレームワークは以下の通りです。

    • HTML/CSS
    • JavaScript
    • AngularJS

    ▲ページトップへ戻る

    2. 代表的なアプリ開発向け言語

    続いて、代表的なアプリ開発向け言語をご紹介します。

    今回は、代表的な開発事例と同じく

    • Webアプリケーション
    • デスクトップアプリ
    • スマホアプリ
    • ハイブリッドアプリ

    それぞれについて詳しく見ていきましょう。

    ▲ページトップへ戻る

    2.1 Webアプリケーション

    PHP、Python、GoなどもWebアプリケーション開発に使われますが、ここではプログラミングスクールでよく教えられている言語という観点からRubyとJavaを紹介します。


    2.1.1 Ruby

    Rubyは、オブジェクト指向のプログラミング言語です。オブジェクト指向とは簡単にいうと、物事を分かりやすくまとめたり、整理整頓すること。
    動作手順を一からプログラミングするのではなく、使用するモノの属性や動作を定義づけておき、それを操作するという考え方が、オブジェクト指向です。
    オブジェクトは「モノ」を表します。例えば「電子レンジ」を操作するとき、「ボタン」を押せば動きます。オブジェクト指向のプログラミング言語を使用して開発を進めると手続き型の言語と比べて、シンプルかつ短いコードで、複雑な機能が利用しやすくなります。

    Rubyは、Webシステム、Webアプリケーション開発において主に使われ、特にスタートアップベンチャー企業などスピード感のある企業でよく採用されています。


    OS インストール方法
    Windows インストールツール「RubyInstaller」を使用
    Mac rbenvまたはRVMを使用

    ダウンロード等は、Ruby公式サイトを参照ください。


    Rubyについてさらに詳しく知りたい方はこちらの記事も参照ください。

    ▲ページトップへ戻る


    2.1.2 Java

    Javaもオブジェクト指向のプログラミング言語で、Webアプリケーションの開発に向いています。JavaはOS問わず、JVM(Java仮想マシン)上でプログラムを動かせることができるので、汎用性の高い言語です。また、Javaは静的型付け言語で、開発当初からセキュリティを考慮した設計となっており、銀行や官公庁の基幹システムなど、堅牢性が求められる開発に使用されています。
    静的型付け言語とは、データ型の宣言が必要な言語のことで、コンパイル前に変数や、サブルーチンの引数や返り値などの値があらかじめ決められています。
    Webアプリケーションを動かすためには、Webサーバー上で動かすためのJavaサーブレットやJSP(JavaServer Pages)が必要です。


    OS インストール方法
    Windows 公式サイトからダウンロード
    Mac 公式サイトからダウンロード

    ダウンロード等は、Java公式サイトを参照ください。


    Javaについてさらに詳しく知りたい方はこちらの記事も参照ください。

    ▲ページトップへ戻る

    2.2 デスクトップアプリ

    デスクトップアプリの注目すべきトレンドとして「HTML/CSS/JavaScript」と「Node.js」を紹介します。HTML/CSS/JavaScirptとNode.jsは、クロスプラットフォームでのデスクトップアプリ開発ができるフレームワーク「Electron」で採用されている言語です。
    Electronは、HTMLやJavaScriptなどフロントエンドの技術でデスクトップアプリを開発可能。近年では「Visual Studio Code」や「Microsoft Teams」「Twitch」などに採用されており、注目度が高まっています。

    Electronの公式ウェブサイトはこちらです。
    Electron

    ▲ページトップへ戻る


    2.2.1 HTML/CSS/JavaScript

    HTML/CSS/JavaScriptはセットで覚えるべき言語です。フロントエンド側の言語で、HTML/CSSでサイトの土台やデザインを作り、JavaScriptで動きを加えます。JavaScriptを使用すると、ユーザーアクションに応じたコンテンツ表示、グラフィックアニメーションなども表示することができ、多彩な表現でユーザーを魅了することが可能です。


    OS インストール方法
    Windows 不要。テキストエディタのみで開発できる
    Mac 不要。テキストエディタのみで開発できる

    公式サイトはこちらです。
    MDN web docs


    JavaScriptについてさらに詳しく知りたい方はこちらの記事も参照ください。

    ▲ページトップへ戻る


    2.2.2 Node.js

    Node.jsは業界でも近年注目されているサーバサイドで動くJavaScriptです。先述したAtomに関連する「Electronを使ったデスクトップアプリ開発」でもNode.jsが用いられています。
    また業務チャットツールのSlackやコードエディターであるVisualStudio Codeにも使用されています。


    OS インストール方法
    Windows 公式サイトからダウンロード
    Mac 公式サイトからダウンロード

    ダウンロード等は、Node.js公式サイトを参照ください。

    ▲ページトップへ戻る

    2.3 スマホアプリ

    スマホアプリ開発には、Flutter(Dart)、ReactNative(JavaScript)、Javaなども使われますが、ここでは現在シェアの高いSwiftとKotlinの2つご紹介します。


    2.3.1 Swift

    SwiftはApple社より発表されたiOSアプリ開発に特化したプログラミング言語です。

    Swiftの特徴としては以下が挙げられます。

    • 現代的なモダンなコーディングが可能

    • Objective-Cに代用できるよう設計されているため高速なパフォーマンスが可能

    • Swiftの開発環境「Playground」を利用することで、コーディング中に動作やロジックの確認ができる

    Swiftは、コードが書きやすく、読みやすい言語です。Objective-C、Ruby、Python、Javaなどの良い所を吸収して、よりわかりやすく学習しやすい言語に工夫されています。また、C言語ベースで作られたObjective-Cに代用できるよう設計されているため、高速なパフォーマンスが可能である点です。例えば、Objective-Cの最大2.6倍、Pythonの最大8.4倍の速度を誇ります。

    参照:Swift|Apple

    またSwift向け開発環境「Playground」を利用することで、コーディングしながらリアルタイムで動作の確認ができるため、修正しやすく、開発時間の効率化にも貢献しています。
    また、今までMac環境でしか動作しなかったのですが、最近ではWindows環境でも動作するようにバージョンアップされました。


    OS インストール方法
    Windows 公式サイトからダウンロード
    Mac 公式サイトからダウンロード

    ダウンロード等は、Swift公式サイトを参照ください。


    Swiftについてさらに詳しく知りたい方はこちらの記事も参照ください。

    ▲ページトップへ戻る


    2.3.2 Kotlin

    Kotlin(コトリン)は、スマホアプリの中でもAndroidアプリ開発向けの言語です。2017年にGoogle社がKotlinをAndroidの公式開発言語として採用したことがきっかけで注目を集めており、人気が高くなっています。今までAndroidアプリではJavaが採用されていることが多かったのですが「Javaよりコードが書きやすい点」「文法面のNull Safetyによる安全性の高さ」、「Javaと相互運用ができること」などから、Androidアプリ開発現場ではKotlinが使用されるようになってきています。


    OS インストール方法
    Windows Kotlin Tutorials
    Kotlin Reference
    Kotlin リファレンス(日本語)
    などを参照してください。
    Mac Kotlin Tutorials
    Kotlin Reference
    Kotlin リファレンス(日本語)
    などを参照してください。

    ダウンロード等は、Kotlin公式サイトを参照ください。


    Kotlinについてさらに詳しく知りたい方はこちらの記事も参照ください。


    スマホアプリ向け開発言語では、ReactNative、Flutterが伸びては来ていますが、SwiftやKotlinと比べるとまだ普及しきっていません。

    ▲ページトップへ戻る

    2.4 ハイブリッドアプリ

    ハイブリッドアプリは、HTML/CSS/JavaScriptの言語を主に使用しています。


    2.4.1 HTML/CSS/JavaScript

    Monacaを活用したハイブリッドアプリ開発が主流です。HTML5アプリの開発となるためHTML/CSS/JavaScriptを使います。


    OS 使用方法
    Windows 公式サイトからログイン
    Mac 公式サイトからログイン

    ログイン等は、Monacaを参照ください。

    ▲ページトップへ戻る

    3. 【目的別】アプリ開発言語の選び方

    あなたが作りたいアプリはどんなものなのか、初めにざっくりとイメージでも良いので決めて、作りたいアプリ開発に合う言語を選択するようにしましょう。
    具体的な例を下記でご紹介します。

    ▲ページトップへ戻る

    3.1 主にPCユーザーを対象としたリッチなWebサービスを作りたい

    RubyRuby on Railsによる開発がおすすめです。Rubyは日本人開発者が開発した言語のため公式の日本語ドキュメントが充実していて学びやすいのが特徴です。クックパッドをはじめとするリッチなWebアプリが実用レベルでリリースされています。一方、将来的に大企業や官公庁の案件を受託したいなどと考えている場合は堅牢性が高い静的言語のため、Javaから学ぶのも良いです。

    ▲ページトップへ戻る

    3.2 iOSアプリを作りたい

    Swiftがおすすめです。iOSアプリ(ネイティブアプリ)ではObjective-CとSwiftが主流で、Objective-CはC言語ベースの言語です。C言語は初心者にとっては習得難易度が高い言語で、なおかつC言語にオブジェクト指向の考え方が加わっていて、高度な開発になるほど構文も複雑になり、バグが起きやすいです。Swiftはよりモダンな言語で、簡単な構文でコードが書けるのが特徴です。

    ▲ページトップへ戻る

    3.3 Androidアプリを作りたい

    Kotlinがおすすめです。KotlinはJavaと相互運用性を持っています。Javaは、constructorやgetterを定義する必要があり、どうしてもデータクラスの記述量が増えがちになりますが、Kotlinはデータクラスを綺麗に保つことができます。

    ▲ページトップへ戻る

    3.4 リアルタイム性が高いチャットアプリを作りたい

    Electronを活用したデスクトップアプリ開発がおすすめです。端末性能が使えるため動作が高速かつ、Node.jsはリアルタイム性が高い処理に強いです。

    ▲ページトップへ戻る

    3.5 まずは初歩的なスマホアプリを作りたい

    Monacaによるハイブリッドアプリ開発がおすすめです。全てのOSに対応しているクロスプラットフォームなので、必要な作業量や開発コストをおさえることができます。

    ▲ページトップへ戻る

    4. まとめ

    今回は、スマホ・Webアプリの種類・開発事例、アプリ開発言語の選び方などを解説しました。アプリ開発をする場合は、まず初めにどんなアプリを作りたいのか、ざっくりとしたイメージでも良いので決めるようにしてから最適な言語を選択するようにしましょう。本記事を読んで、アプリ開発について理解を深めて頂ければ幸いです。

    ▲ページトップへ戻る


    Webエンジニアの最新求人情報をチェック!

    月額単価60万円〜90万円
    勤務地 東京都 千代田区
    月額単価70万円〜
    勤務地 東京都 港区
    勤務地 フルリモート
    月額単価70万円〜
    勤務地 東京都 渋谷区
    月額単価50万円〜70万円
    勤務地 東京都 新宿区

    フリーランスの方でこのようなお悩みありませんか?

    • 定期的に案件を紹介してほしい
    • 完全フルリモートワークや、週1出勤など、働き方を選びたい
    • 単価交渉など営業周りが苦手なので、誰かに任せたい

    プロエンジニアにお任せください!

    プロエンジニアはほとんどEND直案件!高額単価案件ならお任せください。
    完全フルリモートや、週1出勤など、希望に合わせた働き方ができる案件を多数ご用意しています。
    単価や契約交渉などは弊社キャリアコンサルタントに全てお任せください。

    無料登録して、あなたの希望に合った案件をチェック!

    簡単60秒!無料登録はこちらから

    おすすめ記事

  • ピックアップ

    フリーランス

    NEW 【言語複数】フルスタックエンジニア★某有名経済情報サービスを展開している企業での開発

    今回は、BtobB向け経済情報プラットフォームの開発に関わっていただきます。 新しいチームが組成される...

    月額単価:60万円〜90万円

    フリーランス

    NEW 【Next.js/Ruby】フルスタックエンジニア★インフルエンサー管理システムの開発

    Youtuber等のマネジメントを行う某上場企業にて、インフルエンサー管理システムの開発に携わっていただ...

    月額単価:70万円〜

    フリーランス

    NEW 【Ruby/React/Node.js】フルスタックエンジニア★動画配信プラットフォームの開発

    動画配信プラットフォームを提供する企業にて、Ruby / React、Node.js のフルスタックエンジニアとして...

    月額単価:70万円〜

    フリーランス

    【Java】システムエンジニア★業務システムの新規開発

    アプリケーションソフトウェア/パッケージソフトウェアの企画・開発・販売を行っている企業にて、Java ...

    月額単価:50万円〜70万円

SCROLL TOP