Swiftって何?
Swift(スウィフト)とは、プログラミング言語の一種です。
プログラミング言語には、Java、Python、C#、Go、JavaScript、PHPなど色々ありますが、Swiftはその中の一つということですね。
プログラミング言語には、当然ながらそれを開発した人や会社が存在するのですが、Swiftを開発したのはiPhoneでお馴染みのApple社です。
Apple社が開発したプログラミング言語ということもあり、Apple社製品(iPhoneやiPadなど)で動作するアプリと非常に相性が良く、それらを制御するのに最適なプログラミング言語です。
SwiftはApple社製品のOSでしか動作しないプログラミング言語というわけではないのですが、実質的には、Apple社製品のアプリを開発・制御するためのプログラミング言語であると、認識しておいて特に問題はありません。
よって、Swiftでできること=Apple社製品のアプリ開発…と言って差し支えないかと思います。
広範囲をカバーするクロスプラットフォームのFlutterが使えるDartや、幅広い環境で活用可能なJavaなどと比べると、Swiftの活用範囲は限定的と言えますね。
Flutterを利用すると、iOSアプリだけでなくAndroidアプリや、デスクトップアプリ(Windows、macOS)、Webアプリなども作れてしまうほどカバー範囲が広いですが、SwiftではAndroidやWindowsなどApple社以外のOSで動作するアプリを作るのは難しいです。
ですがその代わり、SwiftではApple社製品の機能・性能を最大限に活用できます。
よってSwiftは、『色々な環境で動くプログラム(アプリ)を作りたい』と考えている人には向かないプログラミング言語である一方、『Apple社製品が大好きで、iPhoneやmacOSのアプリを作りたい』と考えている人にはピッタリだと言えます。
しかし、実はSwiftだけを学んでもアプリは作れません。
SwiftはApple社製のアプリを開発するのに最適だと言ったばかりなのに、矛盾しているように思えますよね。
一体どういうことなのでしょうか?詳しくは、次の章で説明します!
POINT!
- ・Swiftはプログラミング言語の一種で、Apple社が開発したもの!
- ・Swiftは、Apple社製品のアプリを開発するのに最適な言語!
- ・ただし、Swiftだけを学んでもアプリは作れない(詳しくは次章)!
SwiftUIって何?
実際にSwiftを学んでみると分かると思いますが、プログラミングでは“1 + 1 = 2”みたいなデータの処理は簡単にできても、『タップすると色が変わるボタンを配置する』といった視覚的な処理は、意外にも簡単にはできません。
ボタンを1つ配置するたびに何十行にも及ぶコードを記述していくのは大変ですし、めちゃくちゃ非効率的ですよね。
そこでプログラミングの世界では、よく使う機能やパーツをまとめたライブラリやフレームワークと呼ばれる便利なものを利用するのが当たり前になっています。
ライブラリやフレームワークを利用すると、ボタンを配置したり、タップやスワイプなどユーザーのアクションに合わせて処理を行わせたり…みたいなのが、たった数行のコードで簡単に書けるようになります。
そして、SwiftUIとはSwiftを使ったモダンなフレームワークです。
SwiftUIを利用することで、アプリでよく使われるUIパーツ(ボタンや入力フォームなど)を簡単に設置できる他、ナビゲーションメニューを作ったり、画像やテキストをリスト形式で表示したり…といったことが、とても簡単にできるようになります。
逆に言えば、SwiftUIなどのフレームワークを頼らずに、Swiftというプログラミング言語だけでアプリを作るのは不可能と言っても過言ではありません。
なので、Apple社製品のアプリを作りたければ、Swiftというプログラミング言語だけでなく、SwiftUIというフレームワークの使い方も学ぶ必要があるということになります。
書店に行くと、Swiftに関する本よりもSwiftUIについて書かれた本の方が多く見かけられると思いますが、これは『アプリを作りたければ、結局SwiftUIについて重点的に学ぶ必要があるから』なんですね。
Swiftだけを学んでもアプリは作れない=Swiftだけを解説した本の需要があまりない…ということです。
ただし、SwiftUIがメインの本であっても、序章や巻末でSwiftの基本もちゃんと解説されていることが多いので心配は無用です。
SwiftとSwiftUIは別々に学ぶものではなく、同時に触れながら学んでいくものと言えます。
ちなみに、アプリ開発に利用できるフレームワークはSwiftUIだけではなく他にも色々あるのですが、UI(ユーザーインターフェース)を構成するアプリの基盤となる部分は、ほぼSwiftUIだけで作成可能です。
それにSwiftUIは2023年現在、Apple社が力を入れて開発・サポートしている主流なフレームワークであるため、初心者がSwiftとセットで学ぶフレームワーク=SwiftUIと認識しておいて問題ありません。
POINT!
- ・プログラミングではデータの計算や処理は簡単にできるが、ボタンの配置などは意外と面倒!
- ・ボタンなどアプリに必要なパーツや機能をまとめたものがフレームワークであり、SwiftUIはSwiftが使えるフレームワーク!
- ・SwiftとSwiftUIはセットで学ぶものと言え、個別に学んでそれぞれ個別に使えるような関係ではない!
Swiftの将来性
これから何かしらのプログラミング言語を学んでみたいと考えていて、Swiftに興味を持っている方が一番気になる点が『Swiftというプログラミング言語の将来性』ではないでしょうか?
IT・プログラミングの世界は技術の発展スピードが凄まじく、せっかく身につけたスキルが廃れてしまってあまり役に立たなくなることも珍しくはありません。
Web制作の世界を例にすると、jQueryという一世を風靡したJavaScripライブラリがあるのですが、登場から年月が経ってその勢いはだいぶ下火になっているので、もし今から時間をかけてがっつり学びたいという人がいたら、筆者としては少し注意を促すかもしれません。
jQueryを学ぶのが無駄だとか、時代遅れだと言いたいわけではないのですが、今から時間をかけて何かを学ぶ余裕があるのであれば、他にも学んで役に立ちそうな候補を色々調べて検討した方が良いのは間違いないかと思います。
少し話が逸れましたが、せっかく時間や書籍代・スクールの授業料といった学習コストをかけてプログラミング言語を学ぶのであれば、できるだけ廃れにくく、長く使われそうなものの方が良いですよね。
その点、Swift(とSwiftUI)はどうなのでしょうか?
もちろん、筆者にも未来のことはわかりませんが、現在の状況から予測される将来を元に、考察してみたいと思います。
結論から言えば、Swiftの将来性は明るいと思います。
その根拠は2つです。
1つは、Swiftは比較的新しいプログラミング言語であるという点です。
Swiftは2014年に初めて世に発表されたプログラミング言語であるため、この記事を執筆している2023年現在において、登場からまだ10年も経過していないことになります。
新しいプログラミング言語=シンプルでモダンな記述に対応しており、他のプログラミング言語にとって代われる可能性が低く、これからしばらくは活躍できる…ということが一般的には言えるので、Swiftもまだまだ活躍してくれるはずです。
ただし、新しいプログラミング言語であればそれだけで将来性が保証されるというわけではありません。
たとえば、Dartは既存の(歴史が古い)JavaScriptの代わりとなる新しいプログラミング言語として開発されたのですが、JavaScriptがあまりにも広く普及していて多くの人に慣れ親しまれていたため、結果的にDartは古い言語であるJavaScriptに負けました。(Flutterの登場により今は活躍できていますが)
なので、新しければ良いというわけではないということも言えるわけですが、2つ目の根拠により、Swiftに関しては問題ないと考えています。
その2つ目の根拠は、Swiftは既にApple社製品のアプリ開発言語としての地位を獲得しているという点です。
もしSwiftの開発元がApple社ではなかったら、Apple社製品のアプリ開発言語として何らかのプログラミング言語が新しく生まれて競争になる可能性が高いと思いますが、SwiftはApple社が開発した言語であるためApple社が全力でSwiftをサポートしています。
SwiftやSwiftUIを学びやすいように、Swift Playgroundsという公式の学習アプリもあって、macOSのPCを持っていなくてもiPadがあれば、気軽にSwiftを学んでコードを動かすことができます。
Apple社としては、Apple社製品のアプリを開発するためのプログラミング言語としてSwift以外のプログラミング言語を優遇するような理由は全くなく、Swiftをさらに普及させようと頑張ってくれているわけです。
なので、iPhoneなどのApple社製品の勢いが急激に衰えるといったような、極めて考えにくい奇跡が起こらない限り、Swiftは一定の地位を築き続けるだろうと筆者は考えています。
POINT!
- ・Swiftの将来性は明るいと言える!
- ・Swiftは2014年に登場した、比較的新しいプログラミング言語!
- ・Apple社が積極的にサポートしてくれているので、Swiftの地盤は固いと言える!
Swiftを学ぶ・動かすには
『なんだかSwiftを実際に学んでみたくなってきた!』という方に向けて、この章ではSwiftを学ぶために必要な環境について軽く触れておきたいと思います。
本だけでもSwiftに関する知識を得ることはできますが、プログラミング言語の学習において大切なのは『実際にコードを書いて、それを実行してみること』です。
本などでインプットした知識をアウトプットする作業ですね。
プログラムコードを書いて動かす=パソコンがあればOK…と考えるかもしれませんが、Swiftに限って言えばパソコンなら何でもOKというわけにはいきません。
SwiftはmacOSでしか動作しないわけではないのですが、初心者の方がプログラムコードを書いて動かし、コードを色々と試してみるには、やはりApple社製のPC(macOS)の方が間違いなく良いです。(WindowsPCではダメということです)
SwiftをWebブラウザ上で実行できるサービスなどもありますが、これらはあくまで簡易的に確認できるものであったり、SwiftUIまではサポートされていなかったりします。
なので、ほんの数行程度のコードを実行するぐらいであれば良いかもしれませんが、学習用として利用するのは微妙と言わざるを得ません。(SwiftはSwiftUIとセットで学んでこそ意味があることを忘れないでください)
macOSのPCであれば、SwiftとSwiftUIを使ってコードを書けるApple公式のアプリをApp Storeから無料でダウンロードできます。
具体的には、Xcodeもしくは、Swift Playgroundsです。
Xcodeは本格的なアプリを開発するための、言わばプロ用のツールであり、様々な機能が搭載されています。
反面、初心者が学習で使うには無駄に機能が多く、扱いが難しいと感じられることもあるかと思います。
そこでおすすめなのが、Swift Playgroundsの方です。
Swift Playgroundsは、SwiftやSwiftUIの学習用のアプリですが、学習用だからといって子供だましのようなものではなく、Swiftのコードを実際に入力して実行できる本格的なアプリです。
下の動画は、Swift Playgroundsでコードを書いている様子(画面の一部)を録画したものですが、記述したコードがしっかり反映されていて、決してオモチャのようなアプリではないことが分かるかと思います。
Swift/SwiftUIでコードを書いて実行できる
シンプルなアプリならばSwift Playgroundsだけでも作れてしまうほど本格的である一方、Xcodeほど複雑な機能は搭載していないのでバランスが良く、プログラミング初心者でも扱いやすいです。
さらに、前章でチラッと述べましたがこのSwift Playgroundsはなんと、PCじゃなくiPadでもダウンロード可能でバッチリ動作します。
なので、『Swiftを学ぶためにわざわざmacOSのPCを買うなんて無理だけど、iPadなら持ってる』…という人にピッタリかと思います。
まずはiPadでSwiftとSwiftUIを学んで動かしてみて、その後さらに興味が出てきたらMacBookとかmacOS搭載のPCの購入を検討するというのも、良いかもしれないですね。
筆者も、最初はiPadのSwift Playgroundsから始めました。
筆者の場合、PCを机に置いてPCで作業をするのって『仕事している感』が強く感じられるのであまりやる気が出ないんですが、iPadなら膝の上に置いたりもできますし、持ち運びも楽なので気軽にSwiftについて学べました。
なので、iPadのSwift Playgroundsで学習を始めてみるのはけっこうおススメですよ!
ただし、さすがにiPhoneではSwift Playgroundsのダウンロードができないので、最低でもiPad以上のデバイスを用意する必要がある点にご注意下さいね。
POINT!
- ・SwiftとSwiftUIを動かすには、基本的にmacOSのPCかiPadが必要!
- ・SwiftとSwiftUIは、XcodeもしくはSwift Playgroundsというアプリで動かせる!
- ・Swift PlaygroundsならiPadで動作するので、気軽に学びたいという人におすすめ!