Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Swiftで作るiOSアプリ開発入門_04
Search
jollyjoester
February 27, 2016
Education
0
84
Swiftで作るiOSアプリ開発入門_04
Schoo講義資料
jollyjoester
February 27, 2016
Tweet
Share
More Decks by jollyjoester
See All by jollyjoester
AIコードアシスタントとiOS開発
jollyjoester
1
330
市民のためのセキュリティ講座
jollyjoester
0
53
コミュニティMTG in WWDC24
jollyjoester
0
310
BengaluruでLTしてきた
jollyjoester
0
360
try! Swift Tokyo 2024
jollyjoester
0
350
エンジニアが直接会う場の価値について
jollyjoester
8
4.5k
来年Proposalを出すつもりで参加するときっともっと楽しい!
jollyjoester
0
380
My favorite sessions in WWDC 23
jollyjoester
0
680
みんなでAIと戯れよう
jollyjoester
0
160
Other Decks in Education
See All in Education
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
2.7k
アジャイルの知見から新卒研修作り、そして組織作り
pokotyamu
0
110
Réaliser un diagnostic externe
martine
0
640
The knowledge panel is your new homepage
bradwetherall
0
210
~キャラ付け考えていますか?~ AI時代だからこそ技術者に求められるセルフブランディングのすゝめ
masakiokuda
7
540
TeXで変える教育現場
doratex
0
2.4k
1021
cbtlibrary
0
360
子どもが自立した学習者となるデジタルの活用について
naokikato
PRO
0
150
Master of Applied Science & Engineering: Computer Science & Master of Science in Applied Informatics: Artificial Intelligence and Data Science
signer
PRO
0
850
HCI and Interaction Design - Lecture 2 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.4k
HTML5 and the Open Web Platform - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
2
3.1k
20250830_MIEE祭_会社員視点での学びのヒント
ponponmikankan
1
190
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Music & Morning Musume
bryan
46
7k
Building Adaptive Systems
keathley
44
2.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The Cult of Friendly URLs
andyhume
79
6.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
78
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
960
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
SwiftͰ࡞Δ iOSΞϓϦ։ൃೖ ̐ݶɿΞϓϦͷϓϩάϥϛϯάʹ༻͍ΔSwiftΛֶͿ 1
ࣗݾհ ࣣౡҒ೭ʢͳͳ͠·ͻͰΏ͖ʣ Reproגࣜձࣾ iPhoneΞϓϦ։ൃ͕͖ 2
ࣗݾհ 3 https://repro.io
ຊίʔεͷඪ ۤΛΓӽ͑ͯ ָ͘͠ΞϓϦ։ൃͰ͖ΔΑ͏ʹͳΔʂ 4
෭ڭࡐ վగ൛ No.1εΫʔϧߨࢣਞʹΑΔ ੈքҰड͚͍ͨ iPhoneΞϓϦ։ൃͷतۀ (ٕज़ධࣾ) 5
ࠓճͷतۀͷඪ Swiftͱྑ͘ͳΔʂ ྑ͘ͳΔͷ͕͍͠ ʮܕʯ ʹ͍ͭͯΛத৺ʹ 6
तۀͷલఏ݅ • ͓खݩͷMacʹXcode(version7.0Ҏ্)͕Πϯετʔ ϧ͞Ε͍ͯΔ͜ͱ 7
ຊͷϝχϡʔ • Swiftʹ͍ͭͯΔ • Playgroundͷ͍ํ • Swiftͷجຊ 8
ͦͷલʹલճͷ࣭͝ ʢAutoLayoutͰΞϓϦͷݟͨΛ͑Δʣ • ʮconstrain to marginsͷON/OFFঢ়ଶΛޙ͔Β֬ೝ͢Δʹ ɺͲ͏͢Ε͍͍Ͱ͔͢ʁʯ from ล ढ़͞Μ
‣ Relative to marginͷઃఆΛ֬ೝ͠·͢ɻ • ʮiPhone͝ͱͷϑΥϯταΠζΛม͍͑ͨ߹Ͳ͏ͨ͠ Βྑ͍ͷͰ͠ΐ͏͔ɻʯ from લా ܒ͞Μ ‣ AutoshrinkΛ͏ͱͰ͖ͦ͏Ͱ͢ɻ 9
Έͳ͞·࣭͋Γ·ͨ͠Βͥͻ࣭͍ͩ͘͝͞ɻ तۀதʹऔΓ্͛ΒΕͳͯ͘ ग़དྷΔݶΓ͓͑͠·͢ʂ ͳΔ΄ͲʂͱࢥͬͨΒʮͳΔ΄ͲʯϘλϯΛ ԡ͍͚ͯͨͩ͠ΔͱྭΈʹͳΓ·͢(`ŋωŋ´) 10
Swiftʹ͍ͭͯΔ 11
Swiftొ 20146݄2 WWDC ↓ ৽͍͠ϓϩάϥϛϯάݴޠͱͯ͠ ҟྫͳ΄ͲٸʹΛूΊΔʂ 12
Swiftొ 20146݄2 WWDC ↓ ৽͍͠ϓϩάϥϛϯάݴޠͱͯ͠ ҟྫͳ΄ͲٸʹΛूΊΔʂ 13
Swiftͷಛ • Ϟμϯ • ҆શ • ΠϯλϥΫςΟϒ 14
Swiftͷಛ • Ϟμϯ ‣ ৽͍͠ػೳʢΦϓγϣφϧͳͲʣ ‣ ৽͍͠ελΠϧʢจίϩϯͳ͠ͳͲʣ • ҆શ •
ΠϯλϥΫςΟϒ 15
Swiftͷಛ • Ϟμϯ • ҆શ ‣ ܕνΣοΫ ‣ ෆ۩߹Λى͜͠ʹ͍͘จ๏ •
ΠϯλϥΫςΟϒ 16
Swiftͷಛ • Ϟμϯ • ҆શ • ΠϯλϥΫςΟϒ ‣ ॻ͍ͨͦͷͰ࣮ߦͰ͖ͨΓ͢Δ ‣
Playground 17
Swiftͷྺ࢙ 18 ొ݄ όʔδϣϯ ରԠXcode 2014/09 1.0 6.0 2014/10 1.1
6.1 2015/04 1.2 6.3.1 2015/09 2.0 7.0 2015/10 2.1 7.1 2015/12 2.2 7.2 2016/06 2.3 8.0 2016/09 3.0 8.0
Swiftҙ όʔδϣϯʹΑͬͯॻ͖ํ͕มΘΔʂ • Xcodeͷόʔδϣϯͷҧ͍ʹҙʂ • Webॻ੶͔ΒใΛ୳͢ͱ͖όʔ δϣϯʹҙ 19
Swiftҙ όʔδϣϯʹΑͬͯॻ͖ํ͕มΘΔʂ • Xcodeͷόʔδϣϯͷҧ͍ʹҙʂ ‣ ৗʹ࠷৽ͷXcodeΛ͏ͱ٢ ‣ ίʔυΛमਖ਼͢Δඞཁ͕͋Δͱ֮ޛ͢Δ ʢΉ͠ΖษڧʹͳΔͱتͿʣ •
Webॻ੶͔ΒใΛ୳͢ͱ͖όʔδϣϯʹ ҙ 20
Swiftҙ όʔδϣϯʹΑͬͯॻ͖ํ͕มΘΔʂ • Xcodeͷόʔδϣϯͷҧ͍ʹҙʂ • Webॻ੶͔ΒใΛ୳͢ͱ͖όʔδϣϯʹҙ ‣ ݕࡧ͢Δͱ͖ʹόʔδϣϯೖΕΔ ʢex. touchesBegan
Swift 2.2ʣ ‣ ॻ੶৽ͳ͏ͪʹফԽ͢Δʂ ʢੈքҰຊมߋ͕͋ͬͨΒग़൛ࣾͷ͍߹Θͤϖʔ δʹܝࡌ͍ͯ͠Δʣ 21
Playgroundͷ͍ํ 22
Playgroundͱ 23 Playground = ༡ͼ SwiftΛͦͷͰॻ͍࣮ͯߦͰ͖Δ
Playground࡞ ʢϝχϡʔ͔Β࡞ʣ 24
Playground࡞ ʢPlayground໊ΛܾΊΔʣ 25
Playground࡞ ʢอଘઌΛܾΊΔʣ 26
Playground࡞ ʢ࡞ྃʣ 27
Playground 28
Playground 29
Playground 30
Swiftͷجຊ 31
ͲΜͳϓϩάϥϛϯάݴޠΛͬͨ͜ͱ͕͋Γ·͔͢ ॳΊͯͷํॳΊͯͱ͓͍͑ͩ͘͞ʂ 32 ࣭Ͱ͢ʂ
ίϝϯτ 33 • ϓϩάϥϜͱͯ͠ղऍ͞Εͳ͍෦ • ਓ͕ؒಡΉ༻ͷ༰Λॻ͖
import 34 • ಛघͳػೳΛ࣋ͬͨframeworkͱ͍͏ͷΛ͏ͨ Ίͷɻޙʑ͍Ζ͍Ζग़ͯ͘Δɻ ʢԼهUIKit.frameworkΛ͏ͨΊͷهड़ɻࠓճ ಛʹΘͳ͍ʣ
มɺೖɺจࣈྻ 35 • มʹΛೖΕͯɺͦΕʹ͍Ζ͍ΖॲཧΛ͢Δ͜ ͱͰϓϩάϥϜ͍ͯ͘͠ ᶃ ͜Ε͔Βstrͱ͍͏໊લͷมΛ͍·͢ ᶄ strʹ”Hello, Swift”ͱ͍͏Λೖ͠·͢
ᶅ ݁Ռstr”Hello, Swift”ͱ͍͏ʹͳ͍ͬͯ·͢
มɺೖɺจࣈྻ 36 • એݴͨ͠มޙ͔Β͑Δ • ೖͯ͠Λมߋ͢Δ͜ͱͰ͖Δ • μϒϧΫΥʔςʔγϣϯͰғ·ΕͨͷΛจࣈྻ ͱ͍͏
ࣈΛೖ 37 • ࣈΛೖ͠Α͏ͱ͢ΔͱΤϥʔ ʢStringܕͷมʹIntܕͷΛׂΓͯΔ͜ͱͰ͖·ͤΜʣ
มʹܕ͕͋Δ 38 • ࠷ॳʹೖͨ͠ʹΑͬͯࣗಈతʹܕ͕ܾ·Δ ʢܕਪʣ • ผͷܕೖ͠Α͏ͱ͢ΔͱΤϥʔʹͳΔ
جຊతͳܕ 39 • String ʢจࣈྻʣ • Intɹɹʢʣ • Doubleʢখʣ •
Boolɹʢਅِʣ
ܭࢉͯ͠ΈΔ 40 • ܕ͕ಉ͡ͷಉ࢜ܭࢉͰ͖Δ
ܭࢉͯ͠ΈΔ 41 • ܕ͕ҧ͏ͷಉ࢜ܭࢉͰ͖ͳ͍ ʢStringͱIntʹ+ԋࢉࢠద༻Ͱ͖·ͤΜʣ ʢIntͱDoubleʹ+ԋࢉࢠద༻Ͱ͖·ͤΜʣ
ܕΛม͢Δ 42 • ܕ͕ಉ͡ͷಉ࢜ܭࢉͰ͖Δ
ԿͰܕมͰ͖Δʁ 43 • ಛघͳ݅Ͱͳ͍ͱมͰ͖ͳ͍ʂ • มʹࣦഊ͢ΔͱʮnilʯʹͳΔ • ࣦഊ͢ΔՄೳ͕͋Δͱ͖ΦϓγϣφϧܕʹͳΔ ʢΦϓγϣφϧܕͷInt?Ξϯϥοϓ͞Εͯ·ͤΜʣ
Φϓγϣφϧܕ 44 • Int?ΛΞϯϥοϓʢதΛऔΓग़͢ʣ͢Δͱ ‣ த͕͋ͬͨΒInt͕ग़ͯ͘Δ ‣ த͕ͳ͔ͬͨΒnil • IntͱInt?·ͬͨ͘ҧ͏ܕ
ʢIntͱInt?ܭࢉͰ͖ͳ͍ʣ
ΦϓγϣφϧܕதΛऔΓग़͢ ʢڧ੍Ξϯϥοϓʣ 45 • ʂͰதΛऔΓग़͢ த͕nilͷ߹ʹ࣮ߦ࣌ΤϥʔʹͳΔ ʢ࣮ߦ࣌ΤϥʔΞϓϦ͕མͪΔݪҼʂ࣮֬ʹnil ͡Όͳ͍ͬͯΘ͔ͬͯΔͱ͖ʹ͏ʣ
ΦϓγϣφϧܕதΛऔΓग़͢ (νΣοΫͯ͠औΓग़͢) 46 • if let ͱ͍͏ߏจΛ͏ͱத͕͋ͬͨͱ͖͚ͩॲ ཧΛ͢Δ͜ͱ͕Ͱ͖Δ
࠶ೖͰ͖ͳ͍มlet 47 • ҰॳظԽ͢ΔͱΛมߋͰ͖ͳ͍ม • ΉΈʹมߋ͞ΕΔՄೳੑ͕͋ΔvarΛ͏ͷό άͷݩɻʢ׳Εͳ͍͏ͪجຊletΛ͍ɺมߋ͢ Δඞཁੑ͕ग़͖ͯͨΒvarʹมߋ͢Δͷ͕٢ɻʣ
ifจ 48 • ैདྷͷifจͱ΄΅มΘΒͣ • ݅ఆͷ෦ͷ()Λॻ͔ͳ͍ͷ͕ࠓ෩ʁ
switchจ 49 • ॻ͖ํैདྷͱ͋·ΓมΘΒ͕ͣͩ݅ͳͲΛࢦ ఆͰ͖ΔΑ͏ʹͳͬͯେ෯ύϫʔΞοϓʂ
forจ 50 • …͘͠..<ͰൣғࢦఆՄೳ • ैདྷͷforจʢԼʣSwift3.0Ͱͳ͘ͳΔ༧ఆ
forจ 51 • άϥϑͰͷมԽΛݟΕͨΓ͢Δ
ϝιου 52 • ࣗͰॲཧͷմΛఆٛͰ͖Δɻʢৄࡉޙͷत ۀͰʣ
ຊͷ͓͞Β͍ • ϓϩάϥϜͷֶशେͷSwiftͰܾ·Γʂ • PlaygroundͰͨ͘͞Μॻ͍֮ͯ͑Α͏ʂ • SwiftܕΛҙࣝ͢Δͷ͕ϙΠϯτʂ 53
ࢀߟਤॻ ৄղ Swift վగ൛ Xcode7.1Ͱಈ࡞֬ೝΛ͍ͯ͠Δͱͷ͜ͱ ͔ͬ͠Γղઆ͞Ε͍ͯΔͷͰͪΐͬͱ͠ Ί͔ɻΏͬ͘ΓਐΊ͍͖ͯ·͠ΐ͏ɻ ʢͰSwift3.0͕ग़Δલ·Ͱʹؤுͬͯʣ 54
ࠂ 55 http://love-swift.connpass.com/event/25716/ ݄࣍̏̎̕ʂ
ࠂ 56 http://liginc.co.jp/?p=228155 LIGϒϩά࿈ࡌ࢝Ί·ͨ͠ʂ