Swift 入門:プログラミング言語としてのSwiftのすすめ

iOSアプリ開発を習得するための言語の選び方を解説します。

疑問

プログラミングを学ぼうと思ってるんだけど、どの言語を選ぶのがよいのかなぁ? まずは、持っているiPhoneで自分のプログラムが動いたら嬉しいな。

このようなことを考えている方に対しての説明です。

これから学ぶプログラミング言語の選び方

作りたいアプリケーションのタイプによって、使うべき言語は変わります。

いろいろな選択肢がありますが、iPhoneアプリの開発を目指すなら、Swift しかありません。

お勧め言語:iPhoneアプリ開発者になりたいなら Swift

結論から書いてしまいますが、iPhone アプリを作りたいなら、Swift で間違いありません。

コンピュータの歴史に沿って、非常に多くの言語が開発され、使われてきています。Swiftは比較的新しい言語で以下のような歴史があります。

Swift の歴史

2014年に、Appleから発表された開発言語です。それまでは、Objective-Cという言語が、iPhone向けの開発言語でした。

Appleから発表された後、オープンソース化されました。いまでは、Apple のハードウェアだけではなく、サーバーでも使われる言語になっています。
つまり、iPhoneアプリの開発だけではなく、サーバーサイドの開発もできる言語になっています。

2014年に発表された以降も、着実に改良され続け、2019年には、Swift5が発表されています。

Swift5の発表と同時に、GUIもコード上で構築できるようなSwiftUI というフレームワークも発表されました。

毎バージョンのリリースごとに、確実に時流のコンセプトを取り入れてきています。言語の文法だけではなく、プログラミングの新しいコンセプトも同時に学ぶことができる言語です。

Swiftをお勧めする理由3つ

Swiftをお勧めする3つの理由です。

Swiftをお勧めする理由
  • 大手スマホベンダーAppleが力を入れている言語である
  • Declrative Programmingを、取り入れやすい言語である
  • Reactiveな概念を、取り入れやすい言語である

大手スマホベンダーAppleが力を入れている言語である

言わずもがなですが、Appleがその開発をリードしています。オープンソースですので、Appleがその決定を自由にできるわけではありませんが、Appleからのリクエストも多く反映されるでしょう。

もちろん、それは、アプリケーションを開発するために補助となる機能です。最近では、SwiftUIの記述方法が話題になっていますが、そのベースはSwift5になって取り入れられたSwift言語自体の機能に多く依存しています。

このように、Swift言語をチェックすることで、Appleが向かう方向も見据えることができます。

Declrative Programmingを、取り入れやすい言語である, Reactiveな概念を、取り入れやすい言語である

2つとも非常に技術的なことなので、まとめてしまいます。

どちらもここ数年話題になっているトピックです。SwiftUI以前から、Reactiveな概念を取り入れたRxSwiftというライブラリがありました。
SwiftUI/Combineがでてこなければ、デファクトスタンダードになっていきそうなライブラリでしたが、Appleは、Swift言語の改修も含めたアプローチを提示してきたことになります。

もちろん、RxSwiftが今日・明日になくなってしまうわけではありませんが、OSプロバイダのAppleがリリースしたものがある以上、そちらが本流になっていくことは明らかです。

また、Swift言語ではなくとも、このような概念を習得しておくことは、今後別の言語を習得していくときにも役に立ちます。

Flutterという選択肢もありますが・・・

Androidについて少し調べたことがあれば、Flutterというフレームワークを聞いたことがあり、こちらでも、iOS向けのアプリを開発する事ができると知っているかもしれません。

Android, iOS 並行して進めたいならば、Flutterも良い選択肢だと思います。

ただ、あくまでもFlutterはフレームワークであり、プログラミング言語としてはDartやC++といろいろとあります。
Androidにまで手を広げるとKotlinやJavaも、言語の候補になってきて、どれを選べば良いのかと悩みは広がり続けてしまいます。

これから新しいことを学ぶのであれば、「広く薄く」よりは、「狭く深く」学ぶのがお勧めです。

具体的には、iOS向けにSwiftをマスターし、Swiftで様々なプログラミングを体験後に、その後でFlutter等を学び始めても遅くはありません。

結論:まずは、Swift をマスターしましょう

まずは、1つの言語をマスターしてから、他の言語に広げていきましょう。

Swiftをマスターするために必要なものは2つです。

Swift学習に必要なもの
  • Mac
  • 参考書

Swift学習に必要なMac

最新のMacOS(Catalina)が動くMacが必要となります。Macがあれば、開発環境であるXcodeは無償で入手可能です。

つまり、Macを手に入れれば、開発環境を整えたことになります。

Swiftはオープンソースになっていて、Linux等で動く環境も存在しますが、開発環境の問題でつまずきたくないですよね。ここ数年でずいぶん安くなっていますので、必要な投資と割り切って購入しましょう。
MacProのような高額な機種は、開発力が上がってからで十分ですので、MacBookProやMacMiniが良いのではないでしょうか。

Swift学習に最適な参考書

Webで検索するといろいろな参考書が見つかるかもしれません。"Swift5対応"であることを確認して購入してください。

以下の書籍がお勧めです。

プログラムを書き始めて、ちょっとした文法を確認するには、以下の書籍が便利です。

独習に最適な学習サイト

参考書と同じくらい、検索するとたくさんのサイトが見つかります。

1つのトピックを詳細に説明してくれるサイト、全体像を説明してくれるサイト。

Swiftを学習していくならば、1から順番に全体をカバーしてくれるサイトを参考にすることがお勧めです。

理解が進んだ後に、個別項目を詳細に解説してくれているサイトを参考にしましょう。

全体をカバーしてくれるサイトも多く見つかると思いますが、以下のサイトがお勧めです。
100 DAYS of Swift

100日分に分けて、学習できるようになっています。残念ながらすべての説明が英語なので、英語力が必要ですが、コースの内容は非常によくできています。

最後に、修了試験が用意されていて、一定以上の割合で正解できると修了証がもらえるようになっています。(自己申告でも嬉しいです)

また、Swiftコースを終えた後にちょうど良いSwiftUIコースも用意されています。

いろいろとつまみ食いするよりは、1つのコースをじっくりと進めた方が、最終的にはきちんと理解できると思います。

独学を続けるのがつらくなったら

独学を続けるのが辛い時は、オンラインスクール等の助けを得るのも1つです。別の人の説明を聞いたりすると理解が進むと思いますし、質問できるのもありがたいですよね。

Swiftを学ぶなら、ここのiPhoneアプリコースがよさそうです。