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
jollyjoester
February 27, 2016
Education
0
82
Swiftで作るiOSアプリ開発入門_04
Schoo講義資料
jollyjoester
February 27, 2016
Tweet
Share
More Decks by jollyjoester
See All by jollyjoester
市民のためのセキュリティ講座
jollyjoester
0
28
コミュニティMTG in WWDC24
jollyjoester
0
290
BengaluruでLTしてきた
jollyjoester
0
330
try! Swift Tokyo 2024
jollyjoester
0
320
エンジニアが直接会う場の価値について
jollyjoester
8
4.3k
来年Proposalを出すつもりで参加するときっともっと楽しい!
jollyjoester
0
350
My favorite sessions in WWDC 23
jollyjoester
0
640
みんなでAIと戯れよう
jollyjoester
0
150
続く勉強会の作り方
jollyjoester
2
860
Other Decks in Education
See All in Education
2025/06/05_読み漁り学習
nag8
0
150
Tangible, Embedded and Embodied Interaction - Lecture 7 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.7k
Are puppies a ranking factor?
jonoalderson
0
870
SkimaTalk Tutorial for Students
skimatalk
0
1.8k
(キラキラ)人事教育担当のつらみ~教育担当として知っておくポイント~
masakiokuda
0
110
Constructing a Custom TeX Ecosystem for Educational Institutions—Beyond Academic Typesetting
doratex
1
10k
Data Management and Analytics Specialisation
signer
PRO
0
1.4k
Tutorial: Foundations of Blind Source Separation and Its Advances in Spatial Self-Supervised Learning
yoshipon
1
120
Human-AI Interaction - Lecture 11 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
470
The Art of Note Taking
kanaya
1
140
ANS-C01_2回不合格から合格までの道程
amarelo_n24
1
260
20250611_なんでもCopilot1年続いたぞ~
ponponmikankan
0
100
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Bash Introduction
62gerente
613
210k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Balancing Empowerment & Direction
lara
1
430
Why Our Code Smells
bkeepers
PRO
336
57k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Unsuck your backbone
ammeep
671
58k
Navigating Team Friction
lara
187
15k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
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ϒϩά࿈ࡌ࢝Ί·ͨ͠ʂ