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

Preview:

DESCRIPTION

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

Citation preview

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

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

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

森 哲哉

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

こんばんは!

………。

Swift のおはなし

と、いうわけで

おしながき

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

• Point 2: Objective-C との違い

• Point 3: Collection

• Point 4: Enumeration

• Point 5: Objective-C との共存

自己紹介

$ whoami

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

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

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

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

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

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

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

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

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

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

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

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

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

$ ls -la apps/

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

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

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

なりきり!! ママごっこ

お弁当をつくろう!

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

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

飛行機を 組み立てよう!

i18n i18n

i18n i18n

Work in Progress

Point 1

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

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

• https://developer.apple.com/

• Apple Developer Program への登録必須

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

環境構築

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

• “The Swift Programming Language”

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

環境構築

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

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

環境構築

ね?簡単でしょう?

Point 2

Objective-C との違い

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

• 使える API は殆ど同じ

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

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

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

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

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

Objective-C との違い

• 強力 (?) な型推論

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

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

Point 3

Collection

• 配列・連想配列

• Array, Dictionary が標準で便利

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

Collection• Array

Collection• Dictionary

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

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

Collection

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

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

Point 4

Enumeration

• 列挙型

• 省エネコードが書ける

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

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

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

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

Point 5

Objective-C との共存

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

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

• Swift→ObjC も ObjC→Swift も可能

Swift → ObjC

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

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

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

ObjC → Swift

• もちろん、逆も可能

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

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

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

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

まとめ

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

Thank you foryour attention !