
「Swiftってどんなプログラミング言語なの?」
「プログラミング言語の中では簡単って聞くけどホント?」
「独学で勉強することは出来る?」
Swiftは「iPhoneのアプリが作れるプログラミング言語」と認識している方も多いですよね。
「自分でもアプリが開発できたらめっちゃ格好いい!」と思って学習し始める方も多いはず。
特にSwiftはプログラミング言語の中では簡単に習得できて、初心者に優しい言語であると言われています。
実は僕自身2018年5月〜8月の3ヶ月間、Swiftを使ってサービスを開発しようと思い勉強していました。(まぁ紆余曲折あって今はWebライターをしていますが・・・)
その結果、もともとプログラミングを触ったことがなかった僕でも、3ヶ月で簡単にSNSを作れるまでになったんです!
そこで今回は、これからSwiftを始めようとしている方に向けて、Swiftを3ヶ月本気で勉強していた僕が、
- Swiftはどんな言語なのか
- 今だから言えるおすすめの勉強法は何か
- 独学におすすめの教材は何か
などについて、詳しく解説します。

記事を読み終えれば「自分はどうやって勉強すれば良いのか」を理解できる記事に仕上げています。これからSwiftを学んでみようか悩んでいる方は、ぜひ参考にしてみてくださいね!!
Swiftとは?

SwiftはAppleによって2014年に開発されたプログラミング言語です。
それまでiOSのアプリ開発には「Objective-C」という言語が使われていました。
しかしObjective-Cは独特な構文や特徴を持っていたために、開発の敷居が高く、初心者が使うには難しい言語でもあったのです。
こういった理由から、Swiftは 「より広範的に世界の人々に使って欲しい」という願いを込めて作られました。
僕自身はiOSのアプリ開発しか経験はありませんが、Swiftで開発出来るものは、
- iPhoneやiPadなどのiOSアプリ
- Macアプリ
- Apple Watchアプリ
- Apple TVアプリ
- Webアプリケーション
など多岐に渡ります。
Swiftは汎用性の高いプログラミング言語として、今後ますます需要が増していく言語であるとも言われています。

Appleのプロダクトを作る時に使われることが多いですが、Webアプリまで作れるため、汎用性が増していくのでは?と噂されています。
Swiftの特徴

Swiftの特徴としては、Appleが発表したものとして以下の4つがSwiftの特徴として挙げられています。
- Modern(現代的)
- Fast(迅速)
- Interactive(相互的)
- Safe(安定性)
「現代的」コードが書きやすく読みやすい
Swiftは現代的なプログラミング言語であることを目指して作られました。
現代的と言われてもあまりピンとこないかもしれませんが、一言で言うと「コードが書きやすくて読みやすい」ことを指しています。
なぜ「現代的」=「書きやすく読みやすい」となるのかわからない方も多いですよね。
では、現代的ではないと、どうなるのかを考えてみましょう。
「現代的」の対義語は、「古典的」です。
古い言語(例えばC、Java)は、昔に作られた言語なので、新しい言語よりも無駄に記述しなければならないところが多いのが特徴。
Swiftをはじめ、RubyやPythonなど近年開発された言語と比較すると、非常に習得が難しいと言われています。
一方でSwiftは古い言語の悪しき部分を取り除き、それぞれの言語のいい特徴だけを取り入れて、よりわかりやすく学習しやすいように工夫されているのです。
こういった理由から、Swiftは現代的であると言われています。
「迅速」処理速度も非常に速い
Swiftは、処理速度も他の言語より遥かに速いことでも知られています。
これまでの言語より処理速度が大幅に高速化しており、Objective-Cよりも最大2.6倍、Pythonよりも最大で8.4倍の速度で処理することができます。
「相互的」Playgroundsでデバックが簡単に出来る
Swiftでは「Playgrounds」と呼ばれる、コードの結果をアプリケーションの実行を行わなくても確認することが出来る機能が付帯しています。
これまでC言語やJavaなどで開発を行う場合は、コードの追加や修正によって動作がどう変化するのかを、実際にシステムやアプリケーションで実行することによって確認する必要がありました。
Swiftの前身であるObjective-Cも同様です。
しかし、Playgroundを使えばこういったことがアプリケーションを実行することなく行えるため、面倒な手間がかからなくて済みます。
結果的に時間を短縮することに繋がるのです。
「安定性」エラーを厳しく指摘してくれる
Swiftはとにかく厳しくエラーを返してくれます。
初心者の方は、「逆に面倒くさいんじゃないの?」 と思うかもしれません。
しかし細かくコードを間違いを指摘してくれることで、安定してアプリやシステムを開発することができます。
エラーを細かく返してくれない言語だと、実行した時に不具合が生じてしまい、アプリがクラッシュしてしまう原因にもなります。
特にアプリが開発されたあとにこういった致命的なバグが見つかってしまうと、サービス自体に大きな損失を及ぼしてしまう危険性もあるのです。
このように、プログラマーのミスを事前に防ぐために、Swiftはエラーを厳しく返してくれるよう設計されているのです。
Swiftの開発環境導入方法

Swiftがどんな言語か分かったところで、早速開発環境を実装してみましょう。
Swiftの場合は、
- MacAppStoreからXcodeと呼ばれる開発環境をダウンロード。
- Xcodeを起動して、「Get started with a playground」を選択。
これでPlaygroundが起動したら、導入はとりあえず完了です。
試しに「print(“Hello world”)」と入力してみましょう。
下のデバッガーのところに「Hello world」と表示されれば問題ありません。
Swiftは独学で勉強出来る?

「Swiftは独学で勉強出来るのか?」
プログラミング初心者の方は、1番疑問を持つ内容かもしれません。
同じくプログラミングを全くやったことが無かった私も、最初は自分1人で勉強することが出来るのか不安に思っていました。
しかし3ヶ月Swiftを勉強して、アプリをいくつか開発した私の経験から言うと、Swiftは「ある程度までは」独学で学習することが可能です。
ただ基礎的なことが身について、応用的な自分のアプリを作ろうとしたところからが問題でした。
僕は結局自分の作りたいアプリは作れませんでした。
自分のアプリを作ろうとしたところで頓挫した
僕の場合、当時は「大学生向けのノートシェアリングSNS」を開発することが目標でした。
何も分からなかったので、僕は下記の手順で学習を進めていきました。
- 入門書を購入してSwiftの基礎を学ぶ
- UdemyやYoutubeで講座を購入して学ぶ
- 学んだ技術を応用して自分でオリジナルアプリを開発する
1.~2.まで2ヶ月ほど頑張ったところ、ようやくInstagramのクローンが作れるようになり、
「これで自分の作りたかったSNSが作れるぞ!」
と意気込んでいました。
しかし僕は自分のオリジナルアプリを作りはじめたところでつまづいてしまったのです。
やはり応用的な機能を追加しようとすると、うまく作動しなかったり、思ったような機能が作れなかったりします。
私の場合、周りに質問出来る人がいなかったので、「スタック・オーバーフロー」や「teratail」などのネットの質問サイトで聞きまくりました。
しかし質問サイトで質問しても、返ってくる回答はまばらで、時間がかかってしまいました。
中には質問したにも関わらず回答が来なくて全然解決しない問題も。
- 自分で考えても分からない
- でも聞く人がいないので考えるしかない
- 治らない
この無限ループを繰り返しをしてしまい、結局開発するモチベーションを失ってしまったのです。
このような僕の経験から言えることは「独学はある程度まで可能だが、時間はかかるし、聞ける人がいないので非常に辛い」ということです。
これからプログラミングを学習しようとしている人に僕が強くおすすめしたいのは、質問できる人が近くにいる状態で学習するということ。
分かる人に聞くことによって、無駄な時間がかかることを防げますし、何より気持ちよく開発することができるからです。
「MENTA」などのメンターサービスを使ったりするのもアリですが、メンターはなかなか見つけづらいのが現実です。
より効率的にプログラミングを学ぶなら、プログラミングスクールを利用して学習するのもおすすめです。
特にTechAcademy(テックアカデミー)なら「完全オンライン」で学べるので、通学の必要もなく時間がない人でも学べるためおすすめです。
>>Tech AcademyのiPhoneアプリケーションコースを見てみる

料金も1ヶ月15万円くらいでリーズナブルだし、メンターにいつでも質問できるのでめちゃおすすめですね。
独学でSwiftを学んで作ったアプリケーション

この章では、僕が3ヶ月の独学で作ったアプリを紹介します。
僕自身、要領があまり良くない方ですが、簡単にSNSくらいは作れるようになりました。
これから学習する人は是非参考にしてみてください。
そういえば!
Day14日目の成果物あげ忘れていたので!3日目にAppleのNewsRoomからRSSでニュースを読み込みアプリを作りました。#文系がつくるアプリ pic.twitter.com/9ydczSwpom— ゆーが📝Webライター (@yuga_th119) 2018年5月7日
1ヶ月とちょいで簡易版インスタが作れるようになりました!
機能としては、
・メールログイン機能
・投稿機能
・フィードの表示機能
・プロフィール設定機能ぐらいです。まだまだ追加したい機能たくさんあるから頑張ります!6月はもっと追い込まねば。#Swift#iOS pic.twitter.com/fVET2h2mJh
— ゆーが📝Webライター (@yuga_th119) 2018年5月31日
ファイルの整理をしていたら8月に作ったアプリが出てきて懐かしくなったので撮影してみた。
・ログイン/ログアウト機能
・位置情報出力機能
・フィード投稿機能など簡単なチュートリアルを組み合わせて作った「NearBuddy」
「場所で繋がるSNS」を目指していた。懐かしい。👨💻 pic.twitter.com/sIdVxlAyFz— ゆーが📝Webライター (@yuga_th119) 2018年12月29日

いやー割と頑張ったと思いますよ。まあここが限界でしたね。悲しいですけど。。。
Swiftを独学するのに使った本とWebサイト
絶対に挫折しない iPhoneアプリ開発「超」入門 第8版 【Xcode 11 & iOS13】 完全対応
絶対に挫折しない iPhoneアプリ開発「超」入門 第8版 【Xcode 11 & iOS 13】 完全対応
この本はどんな入門本よりも1番分かりやすいので、右も左も分からない初心者の方おすすめです!
Amazonでの評価もさることながら、実際に読みながら作業すると、概念の部分から優しく詳しい知識を教えてくれるので理解度が半端じゃありません。

冗談抜きでめちゃ分かりやすいです。。。何も分からなかった僕に全てを教えてくれました。
詳解 Swift 第5版
より詳しくコードや文法について学びたい人におすすめです。
僕は後半の開発で使っていましたが、浅い知識をより深い理解に繋げてくれるので非常に役立ちます。

詳解はかなり業務レベルの内容になっているため、初心者の方には難しいですが、意味分からない部分の理解を深めるためにはもってこいです。
Udemy

Udemy は有料動画学習サービスで、動画を見ながらコードの書き方を学習することができます。
Udemy最大の特徴は、動画で見ることの分かりやすさ。
Swiftに関しては、初心者向けに複数のチュートリアルがセットになっている講座もたくさんあります。
「本やサイトを見て、ゆっくり進んでいきたい!」
という方よりも、
「実際に作っているところを見ながら、実践的に学習したい!」
という方にUdemyはとてもおすすめです。
>>【6日で速習】iOS 11 Swift 4アプリ開発入門決定版 20個のアプリを作る
上のコースは、僕がアプリ学習をする上で非常に役に立った学習コースです。

このコースは僕が作りたかった「SwiftでSNSを作る基礎」の内容も後半で出てくるので、めちゃくちゃタメになりましたね。
YouTube

YouTubeと聞いて意外に思うかもしれませんが、YouTube上には無料でSwiftの講座を上げている開発者が何人もいます。
残念ながら、日本人の開発者の動画は少ないので、あまり参考になりません。
しかし海外の開発者達が、Swiftのアプリ開発動画をいくつも上げているので、英語の字幕を見ながらであれば学べます。

より発展的なデモアプリを作りたい方は、YouTubeで発掘してみると発見があるはず!!
まとめ
今回は、プログラミング言語Swiftとはどんな言語なのかについて、また独学でアプリは開発できるのかについて実体験を交えてご紹介してきました。
個人的にRubyも触ったことがあるのですが、やはりSwiftの方が簡単に感じますし、何より実機で自分の作ったアプリが動いた時の感動は何にも代え難いものがあります。
ただもう一度結論を言うと、個人的には「発展的な内容まで学びたい方は、メンターをつけて分かる人に聞くか、プログラミングスクールに入ること」をおすすめします。
>>Tech AcademyのiPhoneアプリケーションコース
ただ最初からスクールに入っても、基礎文法や概念の理解に時間を使うのはかなり勿体無いです。
僕的に「ベストな学習方法」だと感じるのは、
- 独学で基礎〜簡単なデモアプリを作る
- プログラミングスクールやMENTAなどを利用して分からない部分を聞く
上記の流れで進めていくことです。
この流れで進めていけば、応用部分だけ徹底的にすごいメンター陣に教えてもらうことが出来ますからね!

僕のようにならないように、皆さんは学習効率をなるべく最大化してアプリ開発を楽しんでくださいね!