WIFI 接続望遠鏡アダプタ · 2018. 11. 13. · WIFI接続望遠鏡アダプタの操作方法 Windowsパソコンで使用する Windowsソフトウェアをインストールする・・・・・・・・・
objc2swift (続・自動変換の野望)
-
Upload
taketo-sano -
Category
Software
-
view
1.415 -
download
1
Transcript of objc2swift (続・自動変換の野望)
Obj-C → Swift 自動変換の野望
@taketo1024
2015/06/16 potatotips #18
次なるプロジェクトに取り組み中
WWDC2015 参加してきました!
SwiftPanel @ Realm で Swift の生みの親 Chris Lattner に会えて感激!
本題
動機• 新しいプロジェクトなんだから Swift で書きたい!
• 過去のコード資産はできるだけ使い回したい。
• でもコードを全部書きなおすのは面倒臭い。
→ 機械的な作業は機械がやるべきに決まってる。
ANTLR v4
ANTLR文法ファイル Parser
2秒でわかる ANTLR
@interface A : NSObject
@end
Obj-C
class A : NSObject {
}
Swift
あのときのDEMO
かなり進化しました!
@interface A : NSObject
@end
Obj-C
class A : NSObject {
}
Swift
.h / .m ファイルの merge
@implementation MyClass
@end
Obj-C
self.somethingWithArg1("hello", arg2: 0)
Swift
method-call
[self somethingWithArg1:@"hello" arg2:0];
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]; } }
many many more!• primitive-types
• class-method
• enum
• protocol
• property
• block -> closure
• stringWithFormat
• error reporting
実際に現プロジェクトで使ってます
• iOS 開発メンバー 4人(including me)
• 既存コードを変換し、まずビルドが通るように修正する。
• その上で Swift っぽくいい感じに書き直していく。
→ だいぶ開発効率が上がるし、機械的な変換作業から解放されエンジニアとしての生きがいを感じられる。
まだできてないこと
• 宣言後1回しか代入してなかったら let にする
• Optional 周りの改善
• Foundation / UIKit など既存 API への最適化
OpenSourced!
https://github.com/yahoojapan/objc2swift
Scala Programmer Wanted!!!
and also...
Web UI
近日公開 & OSS 化!
DEMO
Thanks!
Twitter: taketo1024Blog: http://taketo1024.hateblo.jp/