SlideShare a Scribd company logo
Swiftを使ってみて感じた
メリット・デメリット
2014.06.12
matsumoto@stulio.co.jp(@takashi9314)
松本 隆
本日の内容
• 自己紹介
• Swiftの第一印象
• Swiftの良いと思った点
• Swiftの悪いと思った点
• まとめ
自己紹介
• 松本 隆
• Twitter垢(@takashi9314)
• エンジニア歴1年と2ヶ月
• 使用言語:Objective-Cのみ
• フリマアプリSTULIOのiOSエンジニアです。
STULIO
• フリマアプリ
• 著名人の服やブランド品が良く取引されています。
• AppStoreの「カタログ」無料ランキングで、  
大体30位以内にいます。
• Twitter垢(@stulio_photo)
• http://www.stulio.co.jp
好きなアプリ・参考にするアプリ
• SnapDish(レシピ共有のSNSサービス )
• ナショナルジオグラフィック系
• Pinterst
• LIVE3(ライブ・イベント情報提供)
Swiftに対しての第一印象
• コード量は減りそう・分かり易そう
• オーバーライドしているメソッドが一目で分かる
• 型推論がある
• Swiftの「?」と「!」
• Objective-Cのみを触ってきたエンジニアにとって
は、参入障壁が高いかもしれない
コード量が減りそう
• Objective-Cの場合
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:
(NSInteger)section{
NSString * hoge = @ 初めての勉強会での発表、 ;
NSString * fuga = @ 私は恐らく緊張している。 ;
return [hoge stringByAppendingString:fuga];
}
コード量が減りそう
• Swiftの場合
override func tableView(tableView: UITableView!,
titleForHeaderInSection: Int) -> String {
let hoge = 初めての勉強会での発表、
let fuga = 私は恐らく緊張している。
return hoge + fuga
}
Swiftの良いと思った点
• コードの量は減る
• Objective-Cとの互換性!
• 「?」と「!」はぜひとも活用していきたい。
• Switch文が便利に
互換性
• プロジェクト内でのSwiftとObjective-Cのクラス
の共存はとても簡単。
• SwiftのクラスからObjCのクラスを使用する際  
プロジェクト名 -Bridging-Header.hファイルで、
とにかくimportしまくるだけ!
互換性
互換性
let con = KINWebBrowserViewController()
let URL = NSURL(string: http://stulio.co.jp )
con.loadURL(URL)
self.navigationController.pushViewController
(con, animated: true)
• .swiftファイルにはimportする必要なく、そのまま
使用する事が出来ます。
Swiftの「?」と「!」
• ?をつけるとそのオブジェクトが    
「Optional Value」になる。
var hoge:String = オプショナルじゃない
var fuga:String? = オプショナルだよ
!
hoge = nil //エラーする
fuga = nil //エラーしない!
Swiftの「?」と「!」
• オプショナルでない変数にオプショナルな変数を
代入する際の注意点
var hoge:String = オプショナルじゃない
var fuga:String? = オプショナルだよ
!
hoge = fuga //エラーする
hoge = fuga! //エラーしない!
Swiftの「?」と「!」
• nilを許容する宣言として「?」を
• 明示的にオブジェクトがnilでない事を表す為に
「!」を使用する
Switch文が便利になりました
• 数値以外のオブジェクトでも分岐が出来る
• さらばbreak
Switch文が便利になりました
var hoge = はらへった
let fuga = 米がある
!
switch fuga {
case 米がある :
hoge = カレーを作ろう
case パンがある :
hoge = ベーコンエッグ作ろう
default:
hoge = 吉野家行こう
}
Swiftの悪いと思った点
非常に個人的な観点ではありますが・・・
Swiftの悪いと思った点
Objective-Cばかり書いてきた開発者にはツラい
Swiftの悪いと思った点
• 皆さんの周りに、Objective-Cばかり書いてきた方
がいらっしゃる場合は早めに触り始める事を促して
ください。
まとめ
• コチラが主流になる。
• 書き易く、量が少なく、それでいてオプショナルバ
リュー等によって堅牢なコードになる。
• プログラミングを始めるなら、Swiftの方がもちろ
ん適している。
• Objective-Cしか書けないエンジニアは急いで対応
を始めた方が良い
ご清聴ありがとうございました。

More Related Content

Viewers also liked

DRAFT Academic Plan 2009 2014 091709
DRAFT Academic Plan 2009 2014 091709DRAFT Academic Plan 2009 2014 091709
DRAFT Academic Plan 2009 2014 091709
Jenny Darrow
 
Spectrum2015 DeLuca
Spectrum2015 DeLucaSpectrum2015 DeLuca
Spectrum2015 DeLuca
Todd DeLuca, MTSC
 
Pokemon Go - מחדד הרעיונות
Pokemon Go - מחדד הרעיונותPokemon Go - מחדד הרעיונות
Pokemon Go - מחדד הרעיונות
Leo Burnett Israel
 
4º básico a semana 02 abril al 06 mayo
4º básico a  semana 02 abril  al 06 mayo4º básico a  semana 02 abril  al 06 mayo
4º básico a semana 02 abril al 06 mayo
Colegio Camilo Henríquez
 
10 Dicas de Como Aumentar o ROI de seus Links Patrocinados
10 Dicas de Como Aumentar o ROI de seus Links Patrocinados10 Dicas de Como Aumentar o ROI de seus Links Patrocinados
10 Dicas de Como Aumentar o ROI de seus Links Patrocinados
Score Media
 
NYCTLF_SocialMediaStrategy_Nov2015
NYCTLF_SocialMediaStrategy_Nov2015NYCTLF_SocialMediaStrategy_Nov2015
NYCTLF_SocialMediaStrategy_Nov2015
SocMediaFin - Joyce Sullivan
 
Using Technology for Fun (and Profit)
Using Technology for Fun (and Profit)Using Technology for Fun (and Profit)
Using Technology for Fun (and Profit)
Amy Latta
 
4Patriots: Emergency Preparedness Company
4Patriots: Emergency Preparedness Company4Patriots: Emergency Preparedness Company
4Patriots: Emergency Preparedness Company
Allen Baler
 
Tamanhos de Imagens Para Redes Sociais 2014
Tamanhos de Imagens Para Redes Sociais 2014Tamanhos de Imagens Para Redes Sociais 2014
Tamanhos de Imagens Para Redes Sociais 2014
Score Media
 
How Agile Are You Really?
How Agile Are You Really?How Agile Are You Really?
How Agile Are You Really?
Karoliina Luoto
 
Heineken valentines day,date in a box
Heineken valentines day,date in a boxHeineken valentines day,date in a box
Heineken valentines day,date in a box
Mustahid Ali
 
Tms april 2016
Tms april 2016Tms april 2016
Tms april 2016
Raadhika Dosa
 
Hiring insights Sample Report
Hiring insights Sample ReportHiring insights Sample Report
Hiring insights Sample Report
Joseph Shao
 

Viewers also liked (13)

DRAFT Academic Plan 2009 2014 091709
DRAFT Academic Plan 2009 2014 091709DRAFT Academic Plan 2009 2014 091709
DRAFT Academic Plan 2009 2014 091709
 
Spectrum2015 DeLuca
Spectrum2015 DeLucaSpectrum2015 DeLuca
Spectrum2015 DeLuca
 
Pokemon Go - מחדד הרעיונות
Pokemon Go - מחדד הרעיונותPokemon Go - מחדד הרעיונות
Pokemon Go - מחדד הרעיונות
 
4º básico a semana 02 abril al 06 mayo
4º básico a  semana 02 abril  al 06 mayo4º básico a  semana 02 abril  al 06 mayo
4º básico a semana 02 abril al 06 mayo
 
10 Dicas de Como Aumentar o ROI de seus Links Patrocinados
10 Dicas de Como Aumentar o ROI de seus Links Patrocinados10 Dicas de Como Aumentar o ROI de seus Links Patrocinados
10 Dicas de Como Aumentar o ROI de seus Links Patrocinados
 
NYCTLF_SocialMediaStrategy_Nov2015
NYCTLF_SocialMediaStrategy_Nov2015NYCTLF_SocialMediaStrategy_Nov2015
NYCTLF_SocialMediaStrategy_Nov2015
 
Using Technology for Fun (and Profit)
Using Technology for Fun (and Profit)Using Technology for Fun (and Profit)
Using Technology for Fun (and Profit)
 
4Patriots: Emergency Preparedness Company
4Patriots: Emergency Preparedness Company4Patriots: Emergency Preparedness Company
4Patriots: Emergency Preparedness Company
 
Tamanhos de Imagens Para Redes Sociais 2014
Tamanhos de Imagens Para Redes Sociais 2014Tamanhos de Imagens Para Redes Sociais 2014
Tamanhos de Imagens Para Redes Sociais 2014
 
How Agile Are You Really?
How Agile Are You Really?How Agile Are You Really?
How Agile Are You Really?
 
Heineken valentines day,date in a box
Heineken valentines day,date in a boxHeineken valentines day,date in a box
Heineken valentines day,date in a box
 
Tms april 2016
Tms april 2016Tms april 2016
Tms april 2016
 
Hiring insights Sample Report
Hiring insights Sample ReportHiring insights Sample Report
Hiring insights Sample Report
 

Similar to Swift勉強会

大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―Hisao Soyama
 
ゲリラ的サービスの育て方
ゲリラ的サービスの育て方ゲリラ的サービスの育て方
ゲリラ的サービスの育て方
Hidetoshi Mori
 
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Relations Team
 
Swiftで初アプリリリースしてみて振り返り
Swiftで初アプリリリースしてみて振り返りSwiftで初アプリリリースしてみて振り返り
Swiftで初アプリリリースしてみて振り返り
Hikari Yanagihara
 
スマートフォンってなあに?さわってみようスマートフォン
スマートフォンってなあに?さわってみようスマートフォンスマートフォンってなあに?さわってみようスマートフォン
スマートフォンってなあに?さわってみようスマートフォン
高見 知英
 
Swift Scriptingのすゝめ
Swift ScriptingのすゝめSwift Scriptingのすゝめ
Swift Scriptingのすゝめ
Yuichiro Takahashi
 
アプクリ無料体験セミナー
アプクリ無料体験セミナーアプクリ無料体験セミナー
アプクリ無料体験セミナー
Haruyoshi Kuwamura
 
SwiftUIローカライズにつまずいた顛末
SwiftUIローカライズにつまずいた顛末SwiftUIローカライズにつまずいた顛末
SwiftUIローカライズにつまずいた顛末
Tomiji Suzuki
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
Kosuke Ogawa
 
kintone Café 福岡 LT
kintone Café 福岡 LTkintone Café 福岡 LT
kintone Café 福岡 LT
Tomoko Miyake
 
20170131 新潟セミナー
20170131 新潟セミナー20170131 新潟セミナー
20170131 新潟セミナー
Nishida Kansuke
 
App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!Kenichi Yoshida
 
iOSアプリのリジェクト体験談
iOSアプリのリジェクト体験談iOSアプリのリジェクト体験談
iOSアプリのリジェクト体験談
Hisaharu Kato
 
Swiftvol.1
Swiftvol.1Swiftvol.1
Swiftvol.1
Hikari Yanagihara
 
無料体験セミナー
無料体験セミナー無料体験セミナー
無料体験セミナー
Haruyoshi Kuwamura
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
 
Yumemi.swift #6 2020.5.15 presentation tomiji suzuki
Yumemi.swift #6 2020.5.15 presentation tomiji suzukiYumemi.swift #6 2020.5.15 presentation tomiji suzuki
Yumemi.swift #6 2020.5.15 presentation tomiji suzuki
Tomiji Suzuki
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublishedYoichiro Sakurai
 
Qt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたいQt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたい
You&I
 
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナーakihiro uehara
 

Similar to Swift勉強会 (20)

大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
大学生のTwitter利用に関する定量分析―利用目的とサービス設計の関係―
 
ゲリラ的サービスの育て方
ゲリラ的サービスの育て方ゲリラ的サービスの育て方
ゲリラ的サービスの育て方
 
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
 
Swiftで初アプリリリースしてみて振り返り
Swiftで初アプリリリースしてみて振り返りSwiftで初アプリリリースしてみて振り返り
Swiftで初アプリリリースしてみて振り返り
 
スマートフォンってなあに?さわってみようスマートフォン
スマートフォンってなあに?さわってみようスマートフォンスマートフォンってなあに?さわってみようスマートフォン
スマートフォンってなあに?さわってみようスマートフォン
 
Swift Scriptingのすゝめ
Swift ScriptingのすゝめSwift Scriptingのすゝめ
Swift Scriptingのすゝめ
 
アプクリ無料体験セミナー
アプクリ無料体験セミナーアプクリ無料体験セミナー
アプクリ無料体験セミナー
 
SwiftUIローカライズにつまずいた顛末
SwiftUIローカライズにつまずいた顛末SwiftUIローカライズにつまずいた顛末
SwiftUIローカライズにつまずいた顛末
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
 
kintone Café 福岡 LT
kintone Café 福岡 LTkintone Café 福岡 LT
kintone Café 福岡 LT
 
20170131 新潟セミナー
20170131 新潟セミナー20170131 新潟セミナー
20170131 新潟セミナー
 
App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!App Inventor 2でかんたんロボカー操縦!
App Inventor 2でかんたんロボカー操縦!
 
iOSアプリのリジェクト体験談
iOSアプリのリジェクト体験談iOSアプリのリジェクト体験談
iOSアプリのリジェクト体験談
 
Swiftvol.1
Swiftvol.1Swiftvol.1
Swiftvol.1
 
無料体験セミナー
無料体験セミナー無料体験セミナー
無料体験セミナー
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
Yumemi.swift #6 2020.5.15 presentation tomiji suzuki
Yumemi.swift #6 2020.5.15 presentation tomiji suzukiYumemi.swift #6 2020.5.15 presentation tomiji suzuki
Yumemi.swift #6 2020.5.15 presentation tomiji suzuki
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
Qt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたいQt5のセンサーAPIを使ってみたい
Qt5のセンサーAPIを使ってみたい
 
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
 

Swift勉強会