Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 605 - 50オヤジでもできるiOS開発

2017年5月19日:Swift開発サイトのリンクを追加*1

初心者に解りやすいブログを書くつもりで、この「Swiftで遊ぼう!」を2014年7月にスタートさせました。

復習のための記録と備忘録を兼ねていたので、結果的に話題があちこちに飛んで分かりづらくなりました。中途半端に中断しているチュートリアルや説明に溢れた状態です。

先日、同世代の初心者の方から質問を受けました。

「どこから読めばSwiftが分かるようになるんですか?」

私のブログでSwiftの勉強はしづらい状況に気がつきました。

初心者のための学びの場にしたい私が初心者の域から脱せられないため本筋の通った話ができないんです(T_T) また、このブログの内容をまとめる時間もあまり無いんです。

それでも初心者に向けて指針となる記事を用意すべきと考えて、「初心者のつぶやき」というカテゴリーを加えました。

プログラミンを全く知らない人の道しるべになればと願っています。

はじめに

開発をするために必要なMacのスペックとか、開発ツールのXcodeをどうやってダウンロードしたらいいのか説明はしません。こういう内容は既にネットに溢れているので自力で調べて用意してください。最新の環境で開発の勉強をするスタンスなので、2017年4月の時点で私のMacBookProには「MacOSX10.12.5」が動いています。Xcodeはβ版も使いますが、β版の画面キャプチャはNGなので正式版で説明をします。今日の最新バージョンは「8.3」で、iOSは「10.2」です。

ブログで勉強をしようとしている人は基本的にお金をかけたくないという気持ちがあるんだと思います。私もそういう人間の一人で、ネットで調べられないものは無いと考え、アップルから無料で提供されている「Swift Programming Series(英語)」を読んで勉強しようと思ってました。

Swift Programming Seriesには以下の2つの本があります。

現在日本語翻訳版が用意されているのかどうか知りませんが*2、前者の「The Swift Programming Language」は必ず読まなければならない本だと思います。しかし、この本を最後まで読むとなると、初心者にはかなり困難です。というのも「iOS開発」がどういうものか理解していないからです。

まず、Swiftの文法的なルールを学ぶ必要はあります。The Swift Programming Languageの冒頭にある「A Swift Tour」がお勧めです。この内容をplaygroundを使って練習すると覚えやすいんです。理解できない箇所は詳しく説明している後半部分で調べるといいんです。それでも、ツアーを進めていくと説明を読んでも理解できなくなります。

なぜか? それはiOSというフレームワークオブジェクト指向プログラミング(OOP)をベースに組み立てられているからです。Swiftの文法の勉強と併行して次の本を読んで下さい。

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

Swiftで用意されている「Protocol」や「Extension」の存在理由が明らかになり、「あ!」という気づきによる理解度のパラダイムシフトが生じます。私は読み切った時にOOPの奥深さ神髄に触れた気がしました(^^)/

OOPがある程度理解できたら「道具」を意識することです。

「道具」とは? 道具の意味を含め、MVCの基本概念が理解できるチュートリアルを用意しました。

yataiblue.hatenablog.com

まとめ

Xcodeに備わっているplaygroundを使ってSwiftの文法に慣れることと、 オブジェクト指向でなぜつくるのか 第2版を読んでオブジェクト指向プログラミングを知ることら始めるといいでしょう。

私がチェックしている関連サイトへのリンク

続きはまた今度

PS.今日の記事を読んで疑問に思うことがあれば教えてください。

*1:2017年4月8日:チュートリアルを改訂、2016年12月13日:Xcodeを8.2にして、iOS10.2にアップデイト、2016年11月12日:少し改訂、2016年09月25日:またまたちょっとだけ改訂、2016年04月25日:ちょっと改訂

*2:Swifガオープンソース化したことで、日本語版も公開されました。本家アップルからじゃないのですが、かなり敷居が低くなりました。 Swiftで遊ぼう! - 634 - The Swift Programming Language日本語版 - Swiftで遊ぼう! on Hatena