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で作るiOSアプリ開発入門_04
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
340
市民のためのセキュリティ講座
jollyjoester
0
63
コミュニティMTG in WWDC24
jollyjoester
0
320
BengaluruでLTしてきた
jollyjoester
0
370
try! Swift Tokyo 2024
jollyjoester
0
360
エンジニアが直接会う場の価値について
jollyjoester
8
4.5k
来年Proposalを出すつもりで参加するときっともっと楽しい!
jollyjoester
0
400
My favorite sessions in WWDC 23
jollyjoester
0
700
みんなでAIと戯れよう
jollyjoester
0
170
Other Decks in Education
See All in Education
【dip】「なりたい自分」に近づくための、「自分と向き合う」小さな振り返り
dip_tech
PRO
0
230
令和エンジニアの学習法 〜 生成AIを使って挫折を回避する 〜
moriga_yuduru
0
240
国際卓越研究大学計画|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
47k
JAPAN AI CUP Prediction Tutorial
upura
2
720
1216
cbtlibrary
0
140
IKIGAI World Fes:program
tsutsumi
1
2.6k
ロータリー国際大会について~国際大会に参加しよう~:古賀 真由美 会員(2720 Japan O.K. ロータリーEクラブ・(有)誠邦産業 取締役)
2720japanoke
1
780
GOBUSATA紹介
chankawa919
0
100
NUTMEG紹介スライド
mugiiicha
0
930
子どもが自立した学習者となるデジタルの活用について
naokikato
PRO
0
190
Cifrado asimétrico
irocho
0
390
子どものためのプログラミング道場『CoderDojo』〜法人提携例〜 / Partnership with CoderDojo Japan
coderdojojapan
PRO
4
18k
Featured
See All Featured
Crafting Experiences
bethany
1
52
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
エンジニアに許された特別な時間の終わり
watany
106
230k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
A Tale of Four Properties
chriscoyier
162
24k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Technical Leadership for Architectural Decision Making
baasie
2
250
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
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ϒϩά࿈ࡌ࢝Ί·ͨ͠ʂ