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
Swiftへの愛2018
Search
hirothings
December 08, 2018
Programming
1
3k
Swiftへの愛2018
Swiftの魅力
最近のSwift
これからのSwift
について発表した資料になります
hirothings
December 08, 2018
Tweet
Share
More Decks by hirothings
See All by hirothings
VIPER with アーキテクチャ選定 実践入門 / VIPER Architecture
hirothings
4
970
実践Dark Mode対応 / Implementing Dark Mode
hirothings
4
180
iOS標準UIワークショップ / iOS Default UI Workshop
hirothings
3
10k
Modernizing Your UI for iOS 13
hirothings
1
1.1k
WWDC2019 pre party LT
hirothings
0
2.4k
iOSなアーキテクチャVIPERのススメ
hirothings
5
3.3k
Swift2年生
hirothings
4
34k
Swiftへの愛
hirothings
0
35k
Other Decks in Programming
See All in Programming
The New Developer Workflow: How AI Transforms Ideas into Code
danielsogl
0
140
Designing Your Organization's Test Pyramid ( #scrumniigata )
teyamagu
PRO
5
1.7k
私のRubyKaigi 2025 Kaigi Effect / My RubyKaigi 2025 Kaigi Effect
chobishiba
1
170
2025年のz-index設計を考える
tak_dcxi
13
4.9k
ASP.NETアプリケーションのモダナイゼーションについて
tomokusaba
0
270
CQRS/ESのクラスとシステムフロー ~ RailsでフルスクラッチでCQRSESを組んで みたことから得た学び~
suzukimar
0
120
クラシルリワードにおける iOSアプリ開発の取り組み
funzin
1
180
LRパーサーはいいぞ
ydah
7
1.5k
VibeCoding時代のエンジニアリング
daisuketakeda
0
260
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
160
クラス設計の手順
akikogoto
0
120
MySQL初心者が311個のカラムにNot NULL制約を追加していってALTER TABLEについて学んだ話
hatsu38
2
150
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
122
52k
How to train your dragon (web standard)
notwaldorf
91
6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.4k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
Speed Design
sergeychernyshev
29
940
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Scaling GitHub
holman
459
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
BBQ
matthewcrist
88
9.6k
Transcript
Love Swift 2018 @hirothings
10Ͱ͢͜ͱ • Swiftͱʁ • Swiftͷັྗ • ࠷ۙͷSwift • ͜Ε͔ΒͷSwift •
Hello Swift!
ࣗݾհ • @hirothings (Objective-ͻΖC) • ݩϥʔϝϯళ • ৭ʑ͋ͬͯݱࡏiOSσϕϩούʔ
Swiftͱͷग़ձ͍ • ΤϯδχΞͱͯ͠ΩϟϦΞΛελʔτͨ͠2015 ౙ..ɻ • ͦΕ·ͰJS, PHPΛগʑ͚ͩͬͨͲઓྗʹͳΒͣɺ Ҋ݅ͷSwiftࢼͯ͠ΈΔ୲ʹͳΓSwiftͱग़ձ͏͜ ͱʹ
Swiftͱ • Apple͕2014ʹൃදͨ͠ϓϩάϥϛϯάݴޠ • ͷͪΦʔϓϯιʔεԽ https://github.com/apple/swift • ࣮ߦ͕͍, Ϟμϯ, ҆શ
• ΞΠίϯΞϚπόϝ https://www.apple.com/jp/swift/ ΑΓ
Swiftͷັྗ • ݫ֨ͳܕγεςϜ • Ϟμϯͳจ๏ • null҆શͳݴޠ • ܕத৺ͷݴޠ •
GenericsΛ༻͍ͨॊೈ͞
ݫ֨ͳܕγεςϜ • ੩తܕ͚ݴޠ • ίϯύΠϥ͕ίʔυͷ҆શੑΛ୲อͯ͘͠ΕΔ • ҉తͳίʔυ͕গͳ͘ͳΔ • ܕʹରͯ͠ݫࣗ͘͠વͱλΠϓηʔϑͳॻ͖ํ Λʹ͚ͭΒΕΔ
Ϟμϯͳจ๏ • ܕਪ • Ϋϩʔδϟ • ߴ֊ؔ (map, flatMap, filter,
reduce..) • ϓϩτίϧ / ϓϩτίϧ֦ு • δΣωϦΫε • λϓϧ / ෳͷΓ • ϝϞϦͷࣗಈཧ(ARC)
null҆શͳݴޠ null҆શͱ: null͕ݪҼͰ࣮ߦ࣌ΤϥʔʹͳΒͳ͍Έ OVMM҆શͰͳ͍ݴޠɺϨΨγʔݴޠͩIUUQTRJJUBDPNLPIFSJUFNT FCECBCΑΓ
null҆શͳݴޠ • nullνΣοΫΛίϯύΠϧ࣌ʹνΣοΫͰ͖Δ • मਖ਼͠ͳ͍ͱͦͦϏϧυ͕௨Βͳ͍
ܕத৺ͷݴޠ ࢀরܕͷ • ίʔυΛΘͳ͍ͱɺͲ͜·ͰΠϯελϯε͕ ڞ༗͞Ε͍ͯΔͷ͔ෆ໌ +BWBTDSJQUͷ"SSBZ ࢀরܕ ͷྫ
ඪ४ϥΠϒϥϦͷ΄ͱΜͲ͕ ܕ • String • Array • Dictionary • Bool
• Int • Double • Float
ίϐʔ͝ͱʹίετ͕͔͔Δ ͷͰʁ
Copy on Write • ೖ࣌Ͱίϐʔ͕ൃੜ͠ͳ͍ • Λมߋ࣌ɺॳΊͯΠϯελϯε͕࡞ΒΕΔ Έ • ͜ͷΈͷ͓͔͛ͰArrayͳͲͰܕΛ࣮ݱ
GenericsΛ༻͍ͨॊೈ͞ • 2ͭͷҾΛswap͢Δؔ • IntܕͷҾͷΈαϙʔτ • ৼΔ͍ಉ͕ͩ͡ɺ͋ΒΏΔܕΛαϙʔτͨ͠ ͍..
• GenericsͰղܾ • ܕύϥϝʔλ <T> • ؔ, δΣωϦοΫܕ(Class, Struct)ɺ͋ΒΏΔ ໘Ͱ͑Δ
IUUQTEPDTTXJGUPSHTXJGUCPPL-BOHVBHF(VJEF(FOFSJDTIUNM
࠷ۙͷSwift • όʔδϣϯΞοϓ͕ΊΜͲ͏ʁ • Φʔϓϯιʔεͱͯ͠ͷػೳڧԽ
• Swift2 to 3ͷΑ͏ͳࠈͳ͍ • Swift3ͰObj-CʹҾͬுΒΕ༷ͨΛόοαϦͬͯ҆ఆ͖ͯͨ͠ • Swift4.1 to 4.2ͷMigration࣌ؒͰऴΘͬͨɻ
• XcodeͷMigrationػೳ + ͪΐͬͱͨ͠मਖ਼ͰDone • Ξοϓσʔτͷ͍ϥΠϒϥϦSwift3ͰίϯύΠϧ όʔδϣϯΞοϓ͕ΊΜͲ͏ʁ
• จࣈྻͷڧԽ • StringͷCollection TypeԽ • ෳߦจࣈྻϦςϥϧͷαϙʔτ • Randomؔͷ࣮ •
ࠓ·ͰCͷؔarc4random_uniform Λ͍͕ͬͯͨɺLinuxڥͰ αϙʔτ͞Εͯͳ͍ͨΊ໘ͩͬͨ • Dynamic Member Lookup Φʔϓϯιʔεͱͯ͠ͷػೳڧԽ
͜Ε͔ΒͷSwift • ABI҆ఆԽ • async / await
ABI҆ఆԽ • (ͣͬͱ༏ઌ՝͚ͩͲ)Swift5ͷϦϦʔεཁ݅ • ෳͷSwiftόʔδϣϯͷڞଘ • ҠߦͷπϥϛݮΔ • ϥΠϒϥϦ੍࡞ऀخ͍͠ •
ݱࡏϞδϡʔϧ୯ҐͰSwift3 or 4Λࢦఆͯࠞ͠ࡏͤ͞ Δ͜ͱՄೳ
async / await • ඇಉظॲཧΛಉظॲཧతʹॻ͚Δ • ࠓ·ͰRxSwiftͳͲؔܕϓϩάϥϛϯάͷΞϓϩʔν ΛಋೖͤͶͳΒͣ؆୯Ͱͳ͔ͬͨ • ࣮࣌ظ·ͩະ֬ఆ
• KotlinͰ͢ͰʹίϧʔνϯಋೖࡁΈ • SwiftͷੜΈͷΫϦεϥτφʔ͕proposalग़ͨ͠
Before async / await
After (Proposalͷྫ) async / await
Hello! Swift
Swift Playgrounds • iPadͰήʔϜײ֮ͰSwiftΛ৮ΕΔެࣜΞϓϦ IUUQTXXXBQQMFDPNKQTXJGUQMBZHSPVOET
Playground • ϦΞϧλΠϜͰ࣮ߦ͞ΕΔΤσΟλ • ཁXcode
Server Side Swift • UIKitʹڵຯͳ͍ํʹΦεεϝ • Ϗϧυ͍͠ɺ؆୯ͳAPIͳΒϗεςΟϯά·Ͱ Ͱ͖ΔϑϨʔϜϫʔΫ(ݸਓΞϓϦͷAPISSSͰ࣮ͯ͠·͢)
One more things..
࠷ۙͷXcodeʹ͍ͭͯ
ෳγϛϡϨʔλΛͬͨฒྻςετ
Diffʹ৭͕ͭ͘Α͏ʹͳͬͨ!!
Xcode10Ͱ͍ͭʹϚϧνΧʔιϧରԠ!!
Fin