自分で考えたアイデアをもとに、アプリケーションを自分で作ってみたい場合、プログラミングをする必要があります。
ただ、プログラミング言語はたくさんあって、どれを選べばいいのかがわかりにくいです。
このページでは、スマートフォン上で動作するアプリケーションを作りたい場合の代表的なプログラミング言語の特徴と習得難易度を整理しています。
(他のページでWebアプリとデスクトップアプリも整理します。)
(目次)
スマホアプリとは?
スマホアプリとは、スマートフォンにダウンロード及びインストールして動作するアプリケーションのことです。
データや設定ファイルなどは、ネットワーク(インターネットや社内のネットワークなど)上に存在する場合もありますが、プログラムの本体としては、スマートフォンの中に存在します。
スマートフォンの中のプログラム本体を起動して、アプリケーションが動作します。
Swift(スウィフト)
SwiftはAppleが開発したプログラミング言語であり、iOSおよびmacOSアプリケーション開発に特化しています。
Swiftは安全なプログラミングを重視しており、メモリ安全性の向上や安全なコードの実行をサポートしています。
また、Playgroundと呼ばれる環境を提供しており、リアルタイムでコードを書いて実行結果を即座に確認することができます。この機能により、プログラムのテストが簡単に行えます。
Swiftはシンプルな文法と読みやすい構文を持つため、プログラミング初心者にとって学びやすい言語です。特に、Playgroundを活用することで、リアルタイムでプログラムを試すことができるので、結果をイメージしやすいことも学びやすさのポイントです。
あと、iOSアプリケーションの開発には、XcodeというAppleの統合開発環境(が必要です。XcodeはSwiftとObjective-Cの両方の言語をサポートしております。
Objective-C(オブジェクティブ-C)
Objective-Cは従来からのiOSアプリケーション開発のための主要言語です。
Objective-CはC言語をベースにしており、iOSのフレームワークに直接アクセスすることができます。
ただ、プログラミング初心者にとっては、学習のハードルが高いです。Objective-Cの特有の構文や概念(例:メッセージング構文、メモリ管理)に慣れる必要があります。
また、Objective-CはAppleのプラットフォーム上での開発において非常に重要な役割を果たしてきましたが、最近ではSwiftがより主流となっています。
あと、iOSアプリケーションの開発には、XcodeというAppleの統合開発環境(が必要です。XcodeはSwiftとObjective-Cの両方の言語をサポートしております。
Java(ジャバ)
Javaは長い間Androidアプリ開発の主要な言語でした。
Androidの公式開発言語としてサポートされており、広範なドキュメントやリソースが利用できます。Javaはオブジェクト指向プログラミング言語であり、Android SDK(Software Development Kit)と組み合わせて使用されます。
習得難易度は、若干高めです。
近くにサポートしてくれる人がいるのであれば大丈夫ですが、独学の場合は行き詰る可能性もありますので、他の言語から始めた方がいいと思います。
Kotlin(コトリン)
Kotlinは近年Android開発で急速に人気を集めている言語です。
Googleが公式にサポートしており、Javaとの相互運用性が高いため、既存のJavaコードとの統合も容易です。KotlinはJavaよりもコンパクトで読みやすく、生産性の向上や安全性の強化などの特徴があります。
Androidアプリ開発においても公式のサポートがありますので、Javaと比較して、より現代的なアプリケーション開発を行うことができます。
ただ、ある程度Javaの知識が必要なこととプログラム構文に関する概念を覚える必要がりますので、初心者にとっての学習難易度は高めです。
参考)世界のプログラミング言語使用ランキング
TIOBEで、プログラミング言語の人気度ランキングを提供しています。
「何を作りたいのか?」や「習得難易度」のカテゴリは無いのですが、どんな言語が人気なのかがわかります。
2023年現在は、Pythonが一位になっています。