meideru blog

家電メーカーで働いているmeideruのブログです。主に技術系・ガジェット系の話を書いています。

Swiftを学ぼうと思っている人へ 〜 オススメの本など 〜

 

※今日出てくるSwift(スウィフト)という用語はスズキの車の名前ではありません。
※本の画像の上にモザイクがかかっていますが、これは自分で書いて付箋が貼ってあるのでそれを隠すためです。

@swiftのイメージデザイン(公式より拝借)
swifttoiupuroguraminngugenngo

目次

SwiftとはAppleが開発したプログラミング言語のこと

上にも書いていますが、車種の名前ではありません(笑)

プログラミング言語のことです。

この言語はスマホやタブレットで現在好調なApple(アップル)社が開発した言語です。

元々AppleはObjective-Cという言語を独自の言語をデベロッパーに使わせていましたが、この言語は極めてクセモノで多くのプログラマーから煙たがられていました。

恐らく、その原因は個性的な書き方にあったんだと思います。(因みに私はObjective-Cは使えません。Swiftはちょっと勉強したので多少は使えます)

そこで出てきたのがSwift(スウィフト)という言語です。比較的モダンな記述方法になっていて見ていて不自然ではありません。

個人的には
Appleが開発した言語 → Swift
Microsoftが開発した言語 → C#
だと思っています。

違いといえば、汎用性があるかないかでしょうね。

後者のC#はマイクロソフトが開発しましたが、その後、国際標準化機構 (ISO)によって標準化されたり、日本でも日本工業規格(JIS)によって採択されたりしているので汎用性があるといえばあります。(もちろんC#はWindowsプログラミングでも使えます!)

自分に関係がある点で言えば、たまに趣味でUnityというゲームエンジンを用いてクソゲー開発をしているんですが、そのときはC#を使っています。

一般的にWindowsプログラミングはC#の方が簡単にできますが、私はWindowsプログラミングをするときは極力C#ではなくC言語やC++でやるようにしています。そっちの方がカッコイイと思ってるんで(笑

【関連記事(Unity)】
開発中のクソゲー
クソゲー開発しました

話が少し反れてしまいましたね。何が言いたいのかと言うと、そういった意味ではC#は汎用性があるということです。

一方のSwiftは現時点でApple製品の開発しか使えない

今現時点(2015年3月5日)でSwiftはApple製品の開発に使うことしかできません。

私は熱心なApple信者なので使うことができます。余程の信仰心がない限りこんな無駄な言語は勉強しないですよ(笑

私はApple製品が大好きなので使えます。

@使っているのはもちろんiPhone
tukatteirunohamotironniphone

@使っているのはもちろんiPad
tukatteirunohamotironnipad

@使っているのはもちろんMac(サブ機ですが)
tukatteirunohamotironnmac

 

とにかく現時点ではSwiftはApple製品での開発にしか使えないんです。

何のためにSwiftを使うかということが重要

これはとても大切なことです。汎用性がない言語を習得することほど効率の悪いことはありません・・・。

iPhoneのアプリを作りたいと思っている人でもSwiftを使わない方法もある

ゲームを作りたいと思っている人は、Swiftを使わない方法があります。

もしもゲームを開発したいと思っているならばクロスプラットフォーム(色々なゲーム機で動く)で開発した方が遥かに良いです。

具体的に言うとUnityやCocos2d-xなどのゲームエンジンを用いて開発することです。この方法で開発すればSwiftを使わなくて済む上に、一度開発してしまえばiOSとAndroidの両方で動きます!

オススメは断然Unityですね。Cocos2d-xは使ったことがないので詳しいことは分かりませんが、提供している団体(会社)の本気度が違うような気がします。Unityは任天堂やSONY、マイクロソフトといった名だたるゲームメーカーが公式パートナーとしてサポートしているようです。

Cocos2d-xはよく知りません(笑

UnityはC#とJavaScriptのどちらかで開発できるんですが、オススメはC#です。コミュニティが多いですしね。

私はUnityとC#はこれを使って勉強しました。

@「Unity5 3D/2Dゲーム開発 実践入門」と「猫でもわかる C#プログラミング」
unitytocsha-punoosusumenohonn


(↑猫でもわかる(略)は新版のようです。内容は変わらないと思います。)

 

上で紹介しているUnityの本は2Dと3Dの両方の作り方をサンプルを作りながら解説しています。非常に分かりやすかったです。今でも辞書代わりとして重宝しています。

C#の本ですが、私は↑のものを使って勉強しました。サンプルプログラムが多いので、私はこれを使ってC#を勉強しました。ただし、色使いが単調なので見辛いという欠点はありました。でも、内容はわかりやすいです。この「猫でもわかるシリーズ」は他にも色々とあって、私は他には「猫でもわかる Windowsプログラミング」という本を所有しています。

それでもSwiftを使ってiPhoneのゲームを開発したいと思っている人はどうすれば良いのか

そうなると、アップル純正のフレームワークを使ってゲームを開発することになります。

具体的に言うと2Dゲームを作りたいならばSpriteKit、3Dゲームを作りたいならばSceneKitを使ってゲームを開発することになります。これらはApple純正のフレームワークですのでSwiftが使えます。

因みに私は後者のSceneKitはないですが、前者のSpriteKitを使って簡単な2Dゲームを開発したことがありますが、とても苦労した思い出があります。

何せコミュニティがないんですよ。基本的に分からないことがあったらコミュニティで質問するんですが、SpriteKitは使っている人がほとんどいないので聞ける人がいません。(ただし、私がSpriteKitを使ったのは1年くらい前なので今はどうだかはわかりません)

とりあえず、SpriteKitのオススメの本を紹介します。私はこれを使って勉強しました。

@SpriteKitではじめる2Dゲームプログラミング
osusumenospritekitnohonn

 

私も当時、色々と本を探したんですが、SpriteKitを扱っている本自体が少なく、唯一これが良い本でした。

ゲームを全く開発したことがない人でも分かるようにゲーム開発の基本から学べるようになっています。もちろんSpriteKitの解説もなされています。

 

でもやはり、iPhoneのゲームアプリを作りたいと思っているならば強くUnityをオススメします。

それ以外の用途でSwiftを使いたいと思っている方・・・

恐らく、Macのアプリ開発か、もしくはStoryboardを使ってのiPhoneのアプリの開発とかですよね・・・?

そしたらば、素直にSwiftの勉強をオススメします。

Swiftでオススメの本はこちらですね。

@Swift スタートアップガイドswiftnoosusumenohonn

 

Swiftも歴史が浅いせいか、解説してある本が少ないんですよね・・・。

私が探した中ではこれがベストでした。基本的なことは全て網羅してありました。

 

Storyboardの本ですが、一応、私が勉強に使った本を紹介しておきます。

@SwiftではじめるiPhoneアプリ開発の教科書
iphonenoapurikaihatudeosusumenohonn


(↑同じシリーズの新版のようです)

 

この本にStoryboardの使い方も少し載っていたと思います。

が、オススメはできません。

もう一度だけ繰り返します。

Storyboardなどの勉強でこの本を使用することはオススメしません。

まず何よりも扱っている内容が浅かったです。他にもSpriteKitやSceneKitも扱っていて、内容が広く浅いです。おまけに特別分かりやすいわけでもないです。

なので、オススメはしません。一応、この本を使って勉強はしたので紹介だけしておきます。

 

こんなところです!

 

ノシ

 -