43
はぢめての Swift - この3日で、Swift 情報をまとめてみた! 抑えておきたい5つのポイント - 株式会社キッズスター システムデベロプメントチーム リーダー 森 哲哉 2014.08.22 (Fri) / Swift 勉強会 vol.3

20140822 Swift 勉強会 vol.3 - はぢめての Swift

Embed Size (px)

DESCRIPTION

2014年08月22日に TechBuzz スペースにて開催された「第3回 Swift 勉強会」で発表した際の資料です。 ※発表時から一部資料を修正しております。

Citation preview

Page 1: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

はぢめての Swift- この3日で、Swift 情報をまとめてみた!

抑えておきたい5つのポイント -

株式会社キッズスター システムデベロプメントチーム リーダー

森 哲哉

2014.08.22 (Fri) / Swift 勉強会 vol.3

Page 2: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

こんばんは!

Page 3: 20140822 Swift 勉強会 vol.3 - はぢめての Swift
Page 4: 20140822 Swift 勉強会 vol.3 - はぢめての Swift
Page 5: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

………。

Page 6: 20140822 Swift 勉強会 vol.3 - はぢめての Swift
Page 7: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Swift のおはなし

と、いうわけで

Page 8: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

おしながき

Page 9: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

おしながき• Point 1: 環境構築

• Point 2: Objective-C との違い

• Point 3: Collection

• Point 4: Enumeration

• Point 5: Objective-C との共存

Page 10: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

自己紹介

Page 11: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

$ whoami

• “森 哲哉” と申します。

• a.k.a: もんりぃ / T: @monry / F: monry84

• 29歳 / ♂ / O型 / 天秤座 / 既婚

• 趣味は「お酒」と「合唱」です。

Page 12: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

$ whoami• 大学を (自主的に) 卒業後、ベンチャーを転々。

• Web のフロントエンド、サーバサイドが得意。

• ようやく Unity 歴 1 年チョイになりました。

• AWS とキャッキャウフフするのも好きです。

• 何故か社内インフラも やらされ… やってます。

• 近頃は Backbone.js (と CoffeeScript と SASS) と戯れてます。

Page 13: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

$ jobs• “株式会社キッズスター” って会社で働いてます。

• 未就学児~小学生のお子さまをお持ちのファミリーをターゲットにした、知育/教育に関わるアプリ・サービスを展開しております。

• お陰様で EdTech な知育分野に於いてNo.1 規模で展開しております!(当社調べw)

Page 14: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

$ ls -la apps/

森のえほん館 なりきり!! ごっこランド

パズル&テイルズおかしのくにを つくるのじゃ!!

なりきり!! アイスクリーム 屋さんごっこ

なりきり!! ママごっこ

お弁当をつくろう!

こえほん おかしの家を つくろう!

ハンバーガー やさんごっこ

飛行機を 組み立てよう!

i18n i18n

i18n i18n

Work in Progress

Page 15: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Point 1

Page 16: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

環境構築• 何はなくとも Xcode6

• 2014-08-22 現在 Beta6 が最新

• https://developer.apple.com/

• Apple Developer Program への登録必須

• インストール直後の起動はメッチャ時間かかる

Page 17: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

環境構築

• iBooks に言語リファレンス有り (無料)

• “The Swift Programming Language”

• 英語だけど、割と読めるw

Page 18: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

環境構築

• Xcode でプロジェクト作る時にLanguege: Swift を選択

• お馴染みの構成で .swift なファイルが生成

Page 19: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

環境構築

ね?簡単でしょう?

Page 20: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Point 2

Page 21: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Objective-C との違い

• 言語的な意味での仕様は大きく異なる

• 使える API は殆ど同じ

• Xcode の使い方も基本的に同じ

Page 22: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Objective-C との違い• クラス名・変数名などにマルチバイト文字や 絵文字が使える

• Objective-C と絡めるとハマるかも?

Page 23: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Objective-C との違い• ショートハンドが盛り沢山

• Closure とかは変態的に書けるかも?

Page 24: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Objective-C との違い

• 強力 (?) な型推論

• ドキュメントの至る所に “infer” って出てくる

• 可読性・保守性と相談する必要あり

Page 25: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Point 3

Page 26: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Collection

• 配列・連想配列

• Array, Dictionary が標準で便利

• かなり LL な書き方できる

Page 27: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Collection• Array

Page 28: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Collection• Dictionary

Page 29: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Collection• Initializer の仕様がドキュメントと違う…?

• Java ライクな書き方が出来なかった

Page 30: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Collection

• 値の書き換えやら nil 代入やらは色々地雷

• 詳しくはググってくださいw

Page 31: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Point 4

Page 32: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Enumeration

• 列挙型

• 省エネコードが書ける

• 相当パワーアップしてる印象

• 代数的データ型 × パターンマッチ

Page 33: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Enumeration• メソッド持てるようになった

Page 34: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Enumeration• 代数的データ型 (Algebraic DataType)

Page 35: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Point 5

Page 36: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Objective-C との共存

• 過去の資産は有効活用できる

• ヘッダファイルによる橋渡しが必要

• Swift→ObjC も ObjC→Swift も可能

Page 37: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Swift → ObjC

• Objective-C なクラスを追加しようとするとヘッダファイル作るかどうかを聞かれる

• 連携予定があろうがなかろうが作っておいた方が良いかも?

Page 38: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Swift → ObjC• ここで出来たヘッダファイル内にSwift から呼び出したいクラスのヘッダファイルを列挙

Page 39: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

ObjC → Swift

• もちろん、逆も可能

• 需要があるかどうかは分からんがw

• こちらもヘッダファイルで情報をやりとり

Page 40: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

ObjC → Swift• プロジェクト外に存在するヘッダファイルを 読み込ませる

• 実体は ~/Library/Developer/Xcode/DerivedData/以下の深いところにある

Page 41: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

まとめ

Page 42: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

リファレンス読みましょう

Page 43: 20140822 Swift 勉強会 vol.3 - はぢめての Swift

Thank you foryour attention !