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
0
6.8k
3年間作り続けて来たアプリをSwift化した話
これで2番目に話したやつです
https://cyberagent.connpass.com/event/49553/
sun54907
March 01, 2017
Tweet
Share
More Decks by sun54907
See All by sun54907
CreateMLを使ってサクラを判定しよう | iOSDC 2018 LT
sun54907
1
1.3k
既存のプロジェクトに、Firestoreを導入してみた
sun54907
1
1.2k
stackViewを使ってボタンをつくった話
sun54907
0
1k
Introducing Password AutoFill
sun54907
1
580
Other Decks in Technology
See All in Technology
AIと融ける人間の冒険
pujisi
0
100
なぜ あなたはそんなに re:Invent に行くのか?
miu_crescent
PRO
0
240
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
3
400
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
220
LayerX QA Night#1
koyaman2
0
300
Directions Asia 2025 _ Let’s build my own secretary (AI Agent) Part 1 & 2
ryoheig0405
0
110
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
460
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
0
550
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
210
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.6k
MySQLのSpatial(GIS)機能をもっと充実させたい ~ MyNA望年会2025LT
sakaik
0
180
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
350
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
140
A better future with KSS
kneath
240
18k
Chasing Engaging Ingredients in Design
codingconduct
0
92
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
How to train your dragon (web standard)
notwaldorf
97
6.5k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
210
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
Building a Scalable Design System with Sketch
lauravandoore
463
34k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
73
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ॻ͖ͨ͘ͳ͍ΜͰ͢ΑͶʯ ࠾༻Ͱ͖ͣ