SlideShare a Scribd company logo
Yuichi Yoshida
Chief engineer, DENSO IT Laboratory, Inc.
@sonson_twit
© 2014 DENSO IT Laboratory, Inc., All rights reserved. Redistribution or public display not permitted without written permission from DENSO IT Laboratory, Inc.
オールドタイプの奮闘
Programming Swift 2 (& LLDB) シンポジウム
Swiftをどうやって勉強するか
自己紹介
2tchの中の人
• iOS好きです
• 2tch(2ちゃんねるビューア)
• iOS SDK Hacksなど
• 研究・開発
• コンピュータビジョン
• 機械学習
• 画像検索サービスとか
• 車向けサービスやハードウェアとか
本業
Swiftを始めるにあたって,
どこから手を付けたらいいか,わからなくないですか?
プログラミング
• C
• C++(触るレベル)
• MATLAB
• Ruby(触るレベル)
• Javascript(適当レベル)
• Objective-C
たとえば,C→Ruby
int length = 10;
int *array = (int*)malloc(sizeof(int) * length);
// initialize array
for (int i = 0; i < length; i++) {
printf("%dn", array[i]);
}
free(array);
朝飯前だ!
たとえば,C→Ruby
var array = [10, 2, 3, 4, 5, 5, 2]
array.each{|e|
puts e
}
var array = [10, 2, 3, 4, 5, 5, 2]
for i in 0...array.count
puts array[i]
end
Before breakfast!
直訳
Piece of cake!
意訳
避けたいこと
• Rubyを始めたとき(今でも・・・だけど)
• CをそのままRubyにしただけ
• RubyでコンパイルできるC言語のコード・・・
• C→Rubyへのアドバンテージがない
• ライブラリやGemだけ
• Obj-C→Swiftの場合はそれすらない
その言語ならではの書き方を学ばなければ意味がない
Obj-Cっぽくないコード書くために
• !を使わない
• できる限り高階関数で実装する
• できる限りclassをstructに換える(意味ないのはダメ)
• protocolも使う
• Result<A>に挑戦する
• flatMapに挑戦する←イマココ
最初
• Swift,Optional,爆発しろ
現在
• Swiftかわいいよ,Swift・・・・
reddift
Swift Reddit API Wrapper
• 1億人以上のアメリカのSNS
• APIあり
• Objective-CのAPI Wrapperはあり
• OAuth2に対応してない
• Swiftじゃない
• よし,いっちょ,勉強がてら作るか!
• MIT License
https://github.com/sonsongithub/reddift
http://www.objc.io/books/
https://robots.thoughtbot.com/efficient-json-in-swift-with-
functional-concepts-and-generics
参考文献?
まとめ
• 勉強どう始める?
• Swiftっぽいコードを書かないと意味がない
• ちょっとずつSwiftっぽくしていけばいいんじゃね?
• 議論
• 何から始めればいいのか
• Swift っぽいコードとは?
• Swiftで関数型言語として実装すべきか
• 関数型と手続き型の中間だと思うけど・・・・
デンソーアイティーラボラトリでは、
         研究者,エンジニアを絶賛募集中です。
興味のある方はこちら。https://www.d-itlab.co.jp/recruit/
画像処理・機械学習・信号処理・自然言語処理など

More Related Content

PDF
Swift 2 (& lldb) シンポジウム
PDF
Swift 2 (& lldb) シンポジウム
PDF
Swift - Result&lt;t>型で結果を返すのは邪道か,王道か
PDF
Objective-Cプログラマのためのswift導入法
PDF
キーボードアプリとSketchのススメ
PDF
ROS JAPAN Users Group Meetup 03
PDF
Introduction of FPGA
PDF
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Swift - Result&lt;t>型で結果を返すのは邪道か,王道か
Objective-Cプログラマのためのswift導入法
キーボードアプリとSketchのススメ
ROS JAPAN Users Group Meetup 03
Introduction of FPGA
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる

What's hot (10)

PDF
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
PDF
Yidev201406.pub
PPT
How to make a cutting wiring board by desktop CNC
ODP
Hacking Robotics
PDF
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
PDF
Objective-C のアレはどこいったの?(Swift の話し
PDF
20130615 組込みの仕事場でRubyを使う
PPTX
FutureKreateロボットシミュレータ
PPTX
Androidやりませんか
PDF
Moveitを使ったアプリケーションの紹介
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
Yidev201406.pub
How to make a cutting wiring board by desktop CNC
Hacking Robotics
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
Objective-C のアレはどこいったの?(Swift の話し
20130615 組込みの仕事場でRubyを使う
FutureKreateロボットシミュレータ
Androidやりませんか
Moveitを使ったアプリケーションの紹介
Ad

Similar to Swift 2 (& lldb) シンポジウム (20)

PDF
Swift勉強会
PDF
Swiftプログラミングを考える
PDF
Swift事情2014夏 ~ Swift入門 beta6対応
PDF
勉強会資料ースイフト入門ー
PDF
20140822 Swift 勉強会 vol.3 - はぢめての Swift
PDF
Swiftビギナーズ勉強会 第一回@Co-Edo
PDF
ほんわかSwift勉強資料
PDF
Objective-CからSwiftへの移行講座
PDF
Study Swift
PDF
Swift を振り返ってみよう #cswift
PDF
Swift 3 その基本ルールを眺める #cswift
PDF
iOS 8/Swift 概要 #ios8yahoo
PDF
SwiftによるiOS開発再入門
PDF
Wolcome to swift
PDF
Swiftのアプリ開発でハマったこと
PDF
Swift使ってみた (2014/07/23)
PDF
Swift入門おさらい
PDF
Swift 2.0 で変わったところ「後編」 #cswift
PDF
Swiftアプリ制作入門 かんたんシューティングゲーム
PPTX
勉強会用Swift授業2018-0126
Swift勉強会
Swiftプログラミングを考える
Swift事情2014夏 ~ Swift入門 beta6対応
勉強会資料ースイフト入門ー
20140822 Swift 勉強会 vol.3 - はぢめての Swift
Swiftビギナーズ勉強会 第一回@Co-Edo
ほんわかSwift勉強資料
Objective-CからSwiftへの移行講座
Study Swift
Swift を振り返ってみよう #cswift
Swift 3 その基本ルールを眺める #cswift
iOS 8/Swift 概要 #ios8yahoo
SwiftによるiOS開発再入門
Wolcome to swift
Swiftのアプリ開発でハマったこと
Swift使ってみた (2014/07/23)
Swift入門おさらい
Swift 2.0 で変わったところ「後編」 #cswift
Swiftアプリ制作入門 かんたんシューティングゲーム
勉強会用Swift授業2018-0126
Ad

More from Yuichi Yoshida (11)

PDF
Halide, Darkroom - 並列化のためのソフトウェア・研究
PDF
Swiftで多層型で戻り値を返すことの是非と雑談
PDF
Machine Learning : The high interest credit card of technical debt
PDF
Handoff from Safari
PDF
Getting started with Handoff
PDF
Getting started with CloudKit
PDF
Handoffは動かない〜これから役立たないバッドノウハウ集
PDF
UIToolbarの同時タッチを防ぐ
PDF
UZTextView, UZMultilayeredPopoverControllerの解説
PDF
64bit化してみた話
PDF
Gitのすすめ
Halide, Darkroom - 並列化のためのソフトウェア・研究
Swiftで多層型で戻り値を返すことの是非と雑談
Machine Learning : The high interest credit card of technical debt
Handoff from Safari
Getting started with Handoff
Getting started with CloudKit
Handoffは動かない〜これから役立たないバッドノウハウ集
UIToolbarの同時タッチを防ぐ
UZTextView, UZMultilayeredPopoverControllerの解説
64bit化してみた話
Gitのすすめ

Swift 2 (& lldb) シンポジウム