SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Obj-C → Swift
自動変換の野望
@taketo1024
2015/06/16 potatotips #18
次なるプロジェクトに取り組み中
http://maths4pg.connpass.com
WWDC2015 参加してきました!
SwiftPanel @ Realm で Swift の生みの親
Chris Lattner に会えて感激!
本題
objc2swift (続・自動変換の野望)
動機
• 新しいプロジェクトなんだから 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: taketo1024
Blog: http://taketo1024.hateblo.jp/

Más contenido relacionado

Was ist angesagt?

Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こうShinnosuke Tokuda
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集terurou
 
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウムSwift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウムYuichi Yoshida
 
async/await不要論
async/await不要論async/await不要論
async/await不要論bleis tift
 
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能mametter
 
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計Shinnosuke Tokuda
 
Ruby For Work
Ruby For WorkRuby For Work
Ruby For Workbash0C7
 
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key VaultTakekazu Omi
 
RcppEigen and SVD
RcppEigen and SVDRcppEigen and SVD
RcppEigen and SVDXiangze
 
The Next Generation for C# Developers
The Next Generation for C# DevelopersThe Next Generation for C# Developers
The Next Generation for C# DevelopersTakayoshi Tanaka
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope高広 内山
 
マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介mametter
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Hiroki Mizuno
 

Was ist angesagt? (20)

Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こう
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
Swift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウムSwift 2 (& lldb) シンポジウム
Swift 2 (& lldb) シンポジウム
 
Clrh 20140906 lt
Clrh 20140906 ltClrh 20140906 lt
Clrh 20140906 lt
 
PerlMotion
PerlMotionPerlMotion
PerlMotion
 
async/await不要論
async/await不要論async/await不要論
async/await不要論
 
本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能本番環境で使える実行コード記録機能
本番環境で使える実行コード記録機能
 
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
 
Ruby For Work
Ruby For WorkRuby For Work
Ruby For Work
 
Rx Showcase
Rx ShowcaseRx Showcase
Rx Showcase
 
ReactiveSignalR
ReactiveSignalRReactiveSignalR
ReactiveSignalR
 
jazug34 Container Apps Key Vault
jazug34 Container Apps Key Vaultjazug34 Container Apps Key Vault
jazug34 Container Apps Key Vault
 
RcppEigen and SVD
RcppEigen and SVDRcppEigen and SVD
RcppEigen and SVD
 
The Next Generation for C# Developers
The Next Generation for C# DevelopersThe Next Generation for C# Developers
The Next Generation for C# Developers
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
Rubinius Under a Microscope
Rubinius Under a MicroscopeRubinius Under a Microscope
Rubinius Under a Microscope
 
bicep 0.5 pre
bicep 0.5 prebicep 0.5 pre
bicep 0.5 pre
 
C#で速度を極めるいろは
C#で速度を極めるいろはC#で速度を極めるいろは
C#で速度を極めるいろは
 
マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介マニアックなRuby 2.7新機能紹介
マニアックなRuby 2.7新機能紹介
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋
 

Andere mochten auch

「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学Taketo Sano
 
プログラマのための線形代数再入門
プログラマのための線形代数再入門プログラマのための線形代数再入門
プログラマのための線形代数再入門Taketo Sano
 
何もないところから数を作る
何もないところから数を作る何もないところから数を作る
何もないところから数を作るTaketo Sano
 
[potatotips #18] Android M Developer Preview & Wear 最新トピック
[potatotips #18] Android M Developer Preview & Wear 最新トピック[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 AppHow to measure UIView position on Native App
How to measure UIView position on Native AppDaisuke Yamashita
 
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話Shuichi Tsutsumi
 
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)objc2swift (自動変換の野望)
objc2swift (自動変換の野望)Taketo Sano
 
How to make workout app for watch os 2
How to make workout app for watch os 2How to make workout app for watch os 2
How to make workout app for watch os 2Yusuke Kita
 
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列Taketo Sano
 
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計Taketo Sano
 
コードを書けば複素数がわかる
コードを書けば複素数がわかるコードを書けば複素数がわかる
コードを書けば複素数がわかるTaketo Sano
 
何もないところから数を作る
何もないところから数を作る何もないところから数を作る
何もないところから数を作るTaketo Sano
 
Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにAndroidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにShuichi Takaya
 
情報幾何学 #2.4
情報幾何学 #2.4情報幾何学 #2.4
情報幾何学 #2.4Taketo Sano
 
情報幾何学 #2 #infogeo16
情報幾何学 #2 #infogeo16情報幾何学 #2 #infogeo16
情報幾何学 #2 #infogeo16Taketo Sano
 
Swift2.x を Scala からみる
Swift2.x を Scala からみるSwift2.x を Scala からみる
Swift2.x を Scala からみるYuichi Adachi
 
Contents blocker on iOS9
Contents blocker on iOS9Contents blocker on iOS9
Contents blocker on iOS9toyship
 
iOS 9 の新機能 Core Image 編
iOS 9 の新機能 Core Image 編iOS 9 の新機能 Core Image 編
iOS 9 の新機能 Core Image 編Shuichi Tsutsumi
 

Andere mochten auch (20)

「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
 
プログラマのための線形代数再入門
プログラマのための線形代数再入門プログラマのための線形代数再入門
プログラマのための線形代数再入門
 
何もないところから数を作る
何もないところから数を作る何もないところから数を作る
何もないところから数を作る
 
appcode_potatotips
appcode_potatotipsappcode_potatotips
appcode_potatotips
 
Alternative WebView
Alternative WebViewAlternative WebView
Alternative WebView
 
[potatotips #18] Android M Developer Preview & Wear 最新トピック
[potatotips #18] Android M Developer Preview & Wear 最新トピック[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 AppHow to measure UIView position on Native App
How to measure UIView position on Native App
 
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
 
objc2swift (自動変換の野望)
objc2swift (自動変換の野望)objc2swift (自動変換の野望)
objc2swift (自動変換の野望)
 
How to make workout app for watch os 2
How to make workout app for watch os 2How to make workout app for watch os 2
How to make workout app for watch os 2
 
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
 
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
 
コードを書けば複素数がわかる
コードを書けば複素数がわかるコードを書けば複素数がわかる
コードを書けば複素数がわかる
 
何もないところから数を作る
何もないところから数を作る何もないところから数を作る
何もないところから数を作る
 
Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにAndroidアプリ開発を楽にするために
Androidアプリ開発を楽にするために
 
情報幾何学 #2.4
情報幾何学 #2.4情報幾何学 #2.4
情報幾何学 #2.4
 
情報幾何学 #2 #infogeo16
情報幾何学 #2 #infogeo16情報幾何学 #2 #infogeo16
情報幾何学 #2 #infogeo16
 
Swift2.x を Scala からみる
Swift2.x を Scala からみるSwift2.x を Scala からみる
Swift2.x を Scala からみる
 
Contents blocker on iOS9
Contents blocker on iOS9Contents blocker on iOS9
Contents blocker on iOS9
 
iOS 9 の新機能 Core Image 編
iOS 9 の新機能 Core Image 編iOS 9 の新機能 Core Image 編
iOS 9 の新機能 Core Image 編
 

Ähnlich wie objc2swift (続・自動変換の野望)

東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみたYoshiki Shibukawa
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!Kanako Kobayashi
 
120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejsTakayoshi Tanaka
 
Interactive Application using Kinect and Android
Interactive Application using Kinect and AndroidInteractive Application using Kinect and Android
Interactive Application using Kinect and AndroidHirotaka Niisato
 
How to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping ApplicationHow to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping ApplicationHirotaka Niisato
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Tomoki Hasegawa
 
Nullabilityについて
NullabilityについてNullabilityについて
Nullabilityについてishikawa akira
 
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向NTT Software Innovation Center
 
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話Koichiro Sumi
 
iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理Tomoya Hayakawa
 
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C codeHow to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C codeChiharu Nameki
 
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話akatsuki174
 
20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある20181025 若手LT会 Codableあるある
20181025 若手LT会 CodableあるあるIgaHironobu
 
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
既存Objective-CプロジェクトをSwiftに移行した時ハマったことapuruni
 
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発Shuto Suzuki
 
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Tomoki Hasegawa
 

Ähnlich wie objc2swift (続・自動変換の野望) (20)

東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
 
120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs
 
Interactive Application using Kinect and Android
Interactive Application using Kinect and AndroidInteractive Application using Kinect and Android
Interactive Application using Kinect and Android
 
How to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping ApplicationHow to MAKE HVC-C Protyping Application
How to MAKE HVC-C Protyping Application
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
Nullabilityについて
NullabilityについてNullabilityについて
Nullabilityについて
 
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
 
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
毎日2000個のコンテナをstartする鯖が突然死して僕が驚愕した話
 
iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理
 
Source kittenについて
Source kittenについてSource kittenについて
Source kittenについて
 
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C codeHow to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C code
 
Study Swift
Study Swift Study Swift
Study Swift
 
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話
 
20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある20181025 若手LT会 Codableあるある
20181025 若手LT会 Codableあるある
 
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
既存Objective-CプロジェクトをSwiftに移行した時ハマったこと
 
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発
 
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
 
Deploy TypeScript Application by CodePipeline
Deploy TypeScript Application by CodePipelineDeploy 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...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 で数学研究のススメSwift で数学研究のススメ
Swift で数学研究のススメTaketo Sano
 
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ(意欲的な中高生のための)トポロジー・圏論・コンピュータ
(意欲的な中高生のための)トポロジー・圏論・コンピュータTaketo Sano
 
特性類の気持ち
特性類の気持ち特性類の気持ち
特性類の気持ちTaketo Sano
 
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
Swift で数学のススメ 〜 プログラミングと数学は同時に学べSwift で数学のススメ 〜 プログラミングと数学は同時に学べ
Swift で数学のススメ 〜 プログラミングと数学は同時に学べTaketo Sano
 
山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門Taketo Sano
 
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先Taketo Sano
 
2015 02-18 xxx-literalconvertible
2015 02-18 xxx-literalconvertible2015 02-18 xxx-literalconvertible
2015 02-18 xxx-literalconvertibleTaketo Sano
 
let UIWebView as WKWebView
let UIWebView as WKWebViewlet UIWebView as WKWebView
let UIWebView as WKWebViewTaketo Sano
 
虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数Taketo Sano
 
ひろ子 in Objective-C
ひろ子 in Objective-Cひろ子 in Objective-C
ひろ子 in Objective-CTaketo Sano
 
Objective-C が好きになる Tips & Hack
Objective-C が好きになる Tips & HackObjective-C が好きになる Tips & Hack
Objective-C が好きになる Tips & HackTaketo Sano
 
Konashi で始める iOS 電子工作
Konashi で始める iOS 電子工作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...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 で数学研究のススメ
 
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ(意欲的な中高生のための)トポロジー・圏論・コンピュータ
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
 
特性類の気持ち
特性類の気持ち特性類の気持ち
特性類の気持ち
 
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
Swift で数学のススメ 〜 プログラミングと数学は同時に学べSwift で数学のススメ 〜 プログラミングと数学は同時に学べ
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
 
山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門山手線は丸いのか?プログラマのためのトポロジー入門
山手線は丸いのか?プログラマのためのトポロジー入門
 
基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先基底変換、固有値・固有ベクトル、そしてその先
基底変換、固有値・固有ベクトル、そしてその先
 
2015 02-18 xxx-literalconvertible
2015 02-18 xxx-literalconvertible2015 02-18 xxx-literalconvertible
2015 02-18 xxx-literalconvertible
 
let UIWebView as WKWebView
let UIWebView as WKWebViewlet UIWebView as WKWebView
let UIWebView as WKWebView
 
虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数虚数は作れる!Swift で学ぶ複素数
虚数は作れる!Swift で学ぶ複素数
 
ひろ子 in Objective-C
ひろ子 in Objective-Cひろ子 in Objective-C
ひろ子 in Objective-C
 
Objective-C が好きになる Tips & Hack
Objective-C が好きになる Tips & HackObjective-C が好きになる Tips & Hack
Objective-C が好きになる Tips & Hack
 
Konashi で始める iOS 電子工作
Konashi で始める iOS 電子工作Konashi で始める iOS 電子工作
Konashi で始める iOS 電子工作
 
下位互換コード隠蔽のストイシズム
下位互換コード隠蔽のストイシズム下位互換コード隠蔽のストイシズム
下位互換コード隠蔽のストイシズム
 

objc2swift (続・自動変換の野望)