Suche senden
Hochladen
objc2swift (続・自動変換の野望)
•
9 gefällt mir
•
4,272 views
Taketo Sano
Folgen
ObjC -> Swift 自動変換器の開発
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 22
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Recomendados
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
Taketo Sano
UniRx勉強会 reactive extensions inside(公開用)
UniRx勉強会 reactive extensions inside(公開用)
wilfrem
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
UnityTechnologiesJapan002
IL2CPPに関する軽い話
IL2CPPに関する軽い話
Wooram Yang
Perl motion
Perl motion
Kazutake Hiramatsu
SwiftでRiemann球面を扱う
SwiftでRiemann球面を扱う
hayato iida
C#とILとネイティブと
C#とILとネイティブと
信之 岩永
Rx入門
Rx入門
Takaaki Suzuki
Más contenido relacionado
Was ist angesagt?
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
動的なILの生成と編集
動的なILの生成と編集
terurou
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Yuichi Yoshida
Clrh 20140906 lt
Clrh 20140906 lt
Tomoyuki Obi
PerlMotion
PerlMotion
Kazutake Hiramatsu
async/await不要論
async/await不要論
bleis tift
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
mametter
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
Shinnosuke Tokuda
Ruby For Work
Ruby For Work
bash0C7
Rx Showcase
Rx Showcase
Takaaki Suzuki
ReactiveSignalR
ReactiveSignalR
Takaaki Suzuki
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vault
Takekazu Omi
RcppEigen and SVD
RcppEigen and SVD
Xiangze
The Next Generation for C# Developers
The Next Generation for C# Developers
Takayoshi Tanaka
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
Rubinius Under a Microscope
Rubinius Under a Microscope
高広 内山
bicep 0.5 pre
bicep 0.5 pre
Takekazu Omi
C#で速度を極めるいろは
C#で速度を極めるいろは
Core Concept Technologies
マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介
mametter
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋
Hiroki Mizuno
Was ist angesagt?
(20)
Riverpodでテストを書こう
Riverpodでテストを書こう
動的なILの生成と編集
動的なILの生成と編集
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
Clrh 20140906 lt
Clrh 20140906 lt
PerlMotion
PerlMotion
async/await不要論
async/await不要論
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
Ruby For Work
Ruby For Work
Rx Showcase
Rx Showcase
ReactiveSignalR
ReactiveSignalR
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vault
RcppEigen and SVD
RcppEigen and SVD
The Next Generation for C# Developers
The Next Generation for C# Developers
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
Rubinius Under a Microscope
Rubinius Under a Microscope
bicep 0.5 pre
bicep 0.5 pre
C#で速度を極めるいろは
C#で速度を極めるいろは
マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋
Andere mochten auch
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
Taketo Sano
プログラマのための線形代数再入門
プログラマのための線形代数再入門
Taketo Sano
何もないところから数を作る
何もないところから数を作る
Taketo Sano
appcode_potatotips
appcode_potatotips
Hiroki Kouchi
Alternative WebView
Alternative WebView
Shigeki Yamato
[potatotips #18] Android M Developer Preview & Wear 最新トピック
[potatotips #18] Android M Developer Preview & Wear 最新トピック
Kenichi Kambara
How to measure UIView position on Native App
How to measure UIView position on Native App
Daisuke Yamashita
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
Taketo Sano
How to make workout app for watch os 2
How to make workout app for watch os 2
Yusuke Kita
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
Taketo Sano
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
Taketo Sano
コードを書けば複素数がわかる
コードを書けば複素数がわかる
Taketo Sano
何もないところから数を作る
何もないところから数を作る
Taketo Sano
Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするために
Shuichi Takaya
情報幾何学 #2.4
情報幾何学 #2.4
Taketo Sano
情報幾何学 #2 #infogeo16
情報幾何学 #2 #infogeo16
Taketo Sano
Swift2.x を Scala からみる
Swift2.x を Scala からみる
Yuichi Adachi
Contents blocker on iOS9
Contents blocker on iOS9
toyship
iOS 9 の新機能 Core Image 編
iOS 9 の新機能 Core Image 編
Shuichi Tsutsumi
Andere mochten auch
(20)
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
プログラマのための線形代数再入門
プログラマのための線形代数再入門
何もないところから数を作る
何もないところから数を作る
appcode_potatotips
appcode_potatotips
Alternative WebView
Alternative WebView
[potatotips #18] Android M Developer Preview & Wear 最新トピック
[potatotips #18] Android M Developer Preview & Wear 最新トピック
How to measure UIView position on Native App
How to measure UIView position on Native App
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
How to make workout app for watch os 2
How to make workout app for watch os 2
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
コードを書けば複素数がわかる
コードを書けば複素数がわかる
何もないところから数を作る
何もないところから数を作る
Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするために
情報幾何学 #2.4
情報幾何学 #2.4
情報幾何学 #2 #infogeo16
情報幾何学 #2 #infogeo16
Swift2.x を Scala からみる
Swift2.x を Scala からみる
Contents blocker on iOS9
Contents blocker on iOS9
iOS 9 の新機能 Core Image 編
iOS 9 の新機能 Core Image 編
Ähnlich wie objc2swift (続・自動変換の野望)
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
Yoshiki Shibukawa
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
Kanako Kobayashi
120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs
Takayoshi Tanaka
Interactive Application using Kinect and Android
Interactive Application using Kinect and Android
Hirotaka Niisato
How to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping Application
Hirotaka Niisato
ゆるかわPhp
ゆるかわPhp
Ryota Mochizuki
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
Tomoki Hasegawa
Nullabilityについて
Nullabilityについて
ishikawa akira
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
NTT Software Innovation Center
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
Koichiro Sumi
iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理
Tomoya Hayakawa
Source kittenについて
Source kittenについて
佐藤 俊太郎
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C code
Chiharu Nameki
Study Swift
Study Swift
Akihiro Urushihara
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話
akatsuki174
20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある
IgaHironobu
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
apuruni
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発
Shuto Suzuki
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
Tomoki Hasegawa
Deploy TypeScript Application by CodePipeline
Deploy TypeScript Application by CodePipeline
bitbank, Inc. Tokyo, Japan
Ähnlich wie objc2swift (続・自動変換の野望)
(20)
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs
Interactive Application using Kinect and Android
Interactive Application using Kinect and Android
How to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping Application
ゆるかわPhp
ゆるかわPhp
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
Nullabilityについて
Nullabilityについて
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理
Source kittenについて
Source kittenについて
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C code
Study Swift
Study Swift
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話
20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
Deploy TypeScript Application by CodePipeline
Deploy TypeScript Application by CodePipeline
Mehr von Taketo Sano
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
Taketo Sano
トポロジーと圏論の夜明け
トポロジーと圏論の夜明け
Taketo Sano
Swift で数学研究のススメ
Swift で数学研究のススメ
Taketo Sano
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
Taketo Sano
特性類の気持ち
特性類の気持ち
Taketo Sano
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
Taketo Sano
山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門
Taketo Sano
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
Taketo Sano
2015 02-18 xxx-literalconvertible
2015 02-18 xxx-literalconvertible
Taketo Sano
let UIWebView as WKWebView
let UIWebView as WKWebView
Taketo Sano
虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数
Taketo Sano
ひろ子 in Objective-C
ひろ子 in Objective-C
Taketo Sano
Objective-C が好きになる Tips & Hack
Objective-C が好きになる Tips & Hack
Taketo Sano
Konashi で始める iOS 電子工作
Konashi で始める iOS 電子工作
Taketo Sano
下位互換コード隠蔽のストイシズム
下位互換コード隠蔽のストイシズム
Taketo Sano
Mehr von Taketo Sano
(15)
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
トポロジーと圏論の夜明け
トポロジーと圏論の夜明け
Swift で数学研究のススメ
Swift で数学研究のススメ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
特性類の気持ち
特性類の気持ち
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
2015 02-18 xxx-literalconvertible
2015 02-18 xxx-literalconvertible
let UIWebView as WKWebView
let UIWebView as WKWebView
虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数
ひろ子 in Objective-C
ひろ子 in Objective-C
Objective-C が好きになる Tips & Hack
Objective-C が好きになる Tips & Hack
Konashi で始める iOS 電子工作
Konashi で始める iOS 電子工作
下位互換コード隠蔽のストイシズム
下位互換コード隠蔽のストイシズム
objc2swift (続・自動変換の野望)
1.
Obj-C → Swift 自動変換の野望 @taketo1024 2015/06/16
potatotips #18
2.
次なるプロジェクトに取り組み中
3.
http://maths4pg.connpass.com
4.
WWDC2015 参加してきました! SwiftPanel @
Realm で Swift の生みの親 Chris Lattner に会えて感激!
5.
本題
7.
動機 • 新しいプロジェクトなんだから Swift
で書きたい! • 過去のコード資産はできるだけ使い回したい。 • でもコードを全部書きなおすのは面倒臭い。 → 機械的な作業は機械がやるべきに決まってる。
8.
ANTLR v4
9.
ANTLR文法ファイル Parser 2秒でわかる ANTLR
10.
@interface A :
NSObject @end Obj-C class A : NSObject { } Swift あのときのDEMO
11.
かなり進化しました!
12.
@interface A :
NSObject @end Obj-C class A : NSObject { } Swift .h / .m ファイルの merge @implementation MyClass @end
13.
Obj-C self.somethingWithArg1("hello", arg2: 0) Swift method-call [self
somethingWithArg1:@"hello" arg2:0];
14.
Obj-C for var i
= 0; i < 10; i++ { for var j = 0, k = 1; j < 5; j++ { foo = self.hoge() } } Swift control-flow for (int i = 0; i < 10; i++) { for (int j = 0, k = 1; j < 5; j++) { foo = [self hoge]; } }
15.
many many more! •
primitive-types • class-method • enum • protocol • property • block -> closure • stringWithFormat • error reporting
16.
実際に現プロジェクトで使ってます • iOS 開発メンバー
4人(including me) • 既存コードを変換し、まずビルドが通るように修正する。 • その上で Swift っぽくいい感じに書き直していく。 → だいぶ開発効率が上がるし、機械的な変換作業から解放され エンジニアとしての生きがいを感じられる。
17.
まだできてないこと • 宣言後1回しか代入してなかったら let
にする • Optional 周りの改善 • Foundation / UIKit など既存 API への最適化
18.
OpenSourced! https://github.com/yahoojapan/objc2swift Scala Programmer Wanted!!!
19.
and also...
20.
Web UI 近日公開 &
OSS 化!
21.
DEMO
22.
Thanks! Twitter: taketo1024 Blog: http://taketo1024.hateblo.jp/
Jetzt herunterladen