Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
3年間作り続けて来たアプリをSwift化した話
Search
sun54907
March 01, 2017
Technology
6.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
3年間作り続けて来たアプリをSwift化した話
これで2番目に話したやつです
https://cyberagent.connpass.com/event/49553/
sun54907
March 01, 2017
More Decks by sun54907
See All by sun54907
CreateMLを使ってサクラを判定しよう | iOSDC 2018 LT
sun54907
1
1.4k
既存のプロジェクトに、Firestoreを導入してみた
sun54907
1
1.2k
stackViewを使ってボタンをつくった話
sun54907
0
1.1k
Introducing Password AutoFill
sun54907
1
600
Other Decks in Technology
See All in Technology
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
270
アクセスキー流出時の対応で再認識した攻撃側と防御側の非対称性について
kazzpapa3
0
170
DDDのエッセンスを取り入れたAIでの開発
ak2ie
1
220
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
1
350
AWS Blocks が楽しい #ゆるWeb札幌
tacck
PRO
0
140
【書籍出版記念】 10周回って、エージェント開発は RAGがすべてだった。〜RAGの歴史と開発現場で見えた実践知〜
akiratameto
20
7.3k
現場回帰したデータエンジニアが考える AI 時代のキャリア開発 / Career Development in the Age of AI Perspectives from a Hands-on Data Engineer
medley
0
330
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
440
AI時代の「OAuth認証」にどう物申すか?(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
180
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
1
680
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
460
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Un-Boring Meetings
codingconduct
0
390
New Earth Scene 8
popppiees
3
2.5k
So, you think you're a good person
axbom
PRO
2
2.1k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
440
For a Future-Friendly Web
brad_frost
183
10k
KATA
mclloyd
PRO
35
15k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Rails Girls Zürich Keynote
gr2m
96
14k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
310
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Transcript
3ؒ࡞Γଓ͚͖ͯͨ ΞϓϦΛSwiftԽͨ͠
ࣗݾհ ւ 28ࡀ (ג)ϚονϯάΤʔδΣϯτ iOSྺ 5 ͖: ͳΊ͜ ࠷ۙͷϚΠϒʔϜɿFGOɺFE
ώʔϩʔζ
ฐࣾΞϓϦհ
λοϓϧੜ ϚονϯάαʔϏε 201312݄͔Β։ൃɻ ཌ5݄ɺϦϦʔε 2017ݱࡏɺDAU11ສ (͏ͪiOS6ສ)
λοϓϧੜ iOS൛ SwiftԽϓϩδΣΫτ
࣍ ίʔυͷ༁ Obj-C → Swift 2.3 Swift 2.3 → Swift
3.0
ίʔυͷ༁
ίʔυͷ༁ SwiftԽ͢Δલ Objective-C 99.5% ݱࡏ Objective-C 81.2% Swift 18.6%
ίʔυͷྔ Swift͢Δલ .m, .hϑΝΠϧ߹Θͤͯ600ϑΝΠϧఔ ܭ60,000ߦ
Objective-C → Swift 2.3
͖͔͚ͬ ͍ϓϩδΣΫτͳͷͰɺٕज़తෛ࠴͕ଟ͍ ࢪࡦʹΘΕ͍ͯΔঢ়گ Ұճ͔ͬ͠Γͱվળ͚ͩΛ͍ͨ͠ 201611݄ɺվળͷͨΊɺ։ൃ߹॓Λ͢Δ͜ͱʹ ͳͬͨ
։ൃ߹॓ͷৄ͍ͪ͜͠Β https://developers.cyberagent.co.jp/blog/ archives/2055/
SwiftԽϩʔυϚοϓ 1ധ2ͷ։ൃ߹॓ͰҰؾʹΓ͖Δ ඪSwiftԽ100%! iOSΤϯδχΞ2ਓɺ࡞ۀ࣌ؒ16࣌ؒ΄Ͳɻܭ32 ࣌ؒ ίϯόʔλʔΛͬͯҰؾʹม ͱΓ͋͑ͣಈ͘Α͏ʹͯ͠ɺޙͰϦϑΝΫλϦϯά
ίϯόʔλͷछྨ Swiftify iSwift objc2swift
Swiftify ֹ݄14.99$ ແྉͩͱ10KB·ͰͷίʔυΛมͰ͖Δ ༗ྉͳΒϑΝΠϧ͝ͱɺϓϩδΣΫτ͝ͱมՄೳ Swift2.2, 3.0 ʹมՄೳ
iSwift ༗ྉ(14.99$) Σϒ্ͰมՄೳ MacΞϓϦ͕͋Γɺ1͚ͩແྉମݧͰ͖Δ Swift2.2, 3.0ʹมՄೳ
objc2swift ແྉ ίϚϯυϥΠϯ͔ΒมͰ͖Δ hϑΝΠϧɺmϑΝΠϧΛҰॹʹม͢Δ Swift2.xʹมͰ͖Δ Yahooͷਓ͕࡞ͬͨ
બΕͨͷ…
objc2swiftΛ࠾༻ ແྉʂ ίϚϯυϥΠϯ͍͍ͬͯ yahoo࡞ͱ͍͏৴པײ http://qiita.com/shu223/items/ 7a20d97d93e056a4e0ac
Start!
ૣน͕…
None
* ※࣌ͷͷͰͳ͘ɺswift3ରԠޙʹͬͨͷͳͷͰɺ AnyHashableͱ͔ͬͯ·͢
☠ܯࠂࡇΓ☠ ม͚ͩͰऴΘΔ͜ͱ100%ͳ͍ XcodeͷαδΣετ͕ग़Δܯࠂ͕͘Β͍ ΓࣗྗͰͲ͏ʹ͔͢Δ͔͠ͳ͍ ͍͍ͩͨ100ߦ͘Β͍Ͱ40ݸ΄Ͳܯࠂ͕ग़Δ
* ※࣌ͷͷͰͳ͘ɺswift3ରԠޙʹͬͨͷ ͜ΕΛ
͜ͷঢ়ଶ·Ͱ15 ~ 30͘Β͍͔͔Δ !ͱ͔ͬͯΔͷͰ·ͩमਖ਼͕ඞཁͩ͠ɺϩδοΫ͕ਖ਼͍͠ ͔ݕূ͕ඞཁ * ※࣌ͷͷͰͳ͘ɺswift3ରԠޙʹͬͨͷ
։ൃ߹॓ͷՌ .m : 317ϑΝΠϧ 50381ߦ → 269ϑΝΠϧ 44688ߦ .h :
324ϑΝΠϧ 10124ߦ → 262ϑΝΠϧ 7818ߦ swift : 3ϑΝΠϧ 199ߦ → 63ϑΝΠϧ 4297ߦ 7999ߦআɺ4098ߦՃ
શମͷ…
શମͷ…8%!
None
ল ؆୯ʹ͍͔ͳ͍ͷΘ͔͚ͬͯͨͲɺ͔ͳΓͩ ͱΘ͔ͬͨ ඪͪΌΜͱཱͯΑ͏
߹॓ͷΑ͔ͬͨϙΠϯτ SwiftԽͷ͖͔͚ͬʹͳͬͨ શମΛίϯόʔτ͢Δͷʹ͔͔Δ͕࣌ؒͬ͘͟Γ༧ ଌͰ͖ΔΑ͏ʹͳͬͨ جຊσʔλΛѻ͏ΫϥεΛશ෦มͰ͖ͨ
Objective-CͷΫϥεΛ Swift͔ΒݺͿͱ !ࡇΓͰ͍ * ※࣌ͷͷͰͳ͘ɺswift3ରԠޙʹͬͨͷ
࣮ߦ࣌ΤϥʔͷԹচͱͳΓ͔Ͷͳ͍ ݺͼग़͢ଆͰͳ͘ɺݺͼग़͞ΕΔଆ͔ΒSwiftԽ͠ ·͠ΐ͏ ͘͠Objective-Cଆʹɺnullable, nonnullΛ͚ͭΔ
Swift 2.3 → Swift 3.0
͖͔͚ͬ Xcode 8.3 ͔Β Swift 2.3 ରԠ͠ͳ͍ ! ͍!!
ͦͦͳͥ2.3ͩͬͨͷ? ͬͨίϯόʔλ͕ Swift2.3͔͠ରԠͯ͠ͳ͔ͬͨ ແྉͱ͍͏᠘ʹҾ͔͔ͬͬͨ
͏ίϯόʔλʔͪ͜Β
͏ม͜Γ͝Γ͓ͩ…>< ·ͨਏ͍࡞ۀ͕࢝·Δ…
͓…Swiftͷ༷ࢠ͕…
ҙ֎ͱ͏·͍ͬͨ͘Swift3Խ AppleఏڙίϯόʔλʔͰ͖Δ͜ ͍͍ͩͨͷΤϥʔ͕ΫϦοΫͰ࣏Δͭ 10࣌ؒఔͰ ͨ·ʹҾֻ͚ͬ͋Δ͔Βҙ
Ҿֻ͚ͬϙΠϯτ উखʹ!?͕ͭ͘ͷͰҙ
ࠓޙͷϩʔυϚοϓ ݱࡏ Swift 20% དྷظͰ80%Λࢦ͢ ຖ݄ͷϚΠϧετʔϯΛઃఆ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
SwiftԽ͢Δཧ༝
͑ʁͨΓલͩΑͶ…? Swiftࠓ࠷ͳݴޠɻObjective-Cݹ͍ Ϟμϯͳॻ͖ํ͕Ͱ͖Δɻܕਪɺstructɺ OptionalValueͳͲͳͲศརͳػೳ͕ଟ͍ ΤϯδχΞͱͯ͠ͷΛߟ͑ΔͱɺSwiftΛͬͨ ํ͕໌Β͔ʹ͍͍
ձࣾೲಘͯ͘͠Εͳ͍ SwiftԽʹԿϲ݄͔͔Δͷʁ ࠓͷίʔυͰԿ͔͕͋Δͷ͔ʁ SwiftԽͰ՝্͕ۚΔͷ͔ʁ Objective-Cͷํ͕ॻ͖׳ΕͯΔͰ͠ΐʁ
ࣄҊ: ࠾༻ࣦഊ ͍͍ײ͡ͷͰ͖ΔΤϯδχΞM܅͕དྷࣾ ͏ͪͷίʔυͷ༁Λઆ໌(swift20%) ʮObj-Cॻ͖ͨ͘ͳ͍ΜͰ͢ΑͶʯ ࠾༻Ͱ͖ͣ