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アプリ開発入門_08
Search
jollyjoester
April 02, 2016
Education
0
88
Swiftで作るiOSアプリ開発入門_08
Schoo講義資料
jollyjoester
April 02, 2016
Tweet
Share
More Decks by jollyjoester
See All by jollyjoester
コミュニティMTG in WWDC24
jollyjoester
0
130
BengaluruでLTしてきた
jollyjoester
0
210
try! Swift Tokyo 2024
jollyjoester
0
170
エンジニアが直接会う場の価値について
jollyjoester
8
3.9k
来年Proposalを出すつもりで参加するときっともっと楽しい!
jollyjoester
0
220
My favorite sessions in WWDC 23
jollyjoester
0
500
みんなでAIと戯れよう
jollyjoester
0
60
続く勉強会の作り方
jollyjoester
1
730
Code for INZAIの歩み
jollyjoester
0
280
Other Decks in Education
See All in Education
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
signer
PRO
1
1.5k
(2024) Histoire et histoires du lycée Saint-Louis
mansuy
0
100
Pen-based Interaction - Lecture 4 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.4k
Gemini in Android Studio 使ってますか?
satoryo56
0
130
Educació digital en l'adolescència
gonz1ale1
0
200
Web3の世界にようこそ
nabe33
0
260
week4@tcue2024
nonxxxizm
0
520
プロダクト・エンジニア・QAE 3軸でのナレッジシェアのススメ
hinac0
1
520
世界の子音探訪記
jamashita
0
230
2024年度春学期 統計学 第13回 不確かな測定の不確かさを測る ― 不偏分散とt分布 (2024. 7. 4)
akiraasano
PRO
0
110
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019538FNR)
signer
PRO
1
1.4k
Ch9_-_Partie_2.pdf
bernhardsvt
0
110
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
166
14k
Statistics for Hackers
jakevdp
792
220k
Designing Experiences People Love
moore
136
23k
4 Signs Your Business is Dying
shpigford
178
21k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
90
47k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
In The Pink: A Labor of Love
frogandcode
139
22k
GraphQLとの向き合い方2022年版
quramy
36
13k
Atom: Resistance is Futile
akmur
261
25k
How to Ace a Technical Interview
jacobian
274
23k
Making Projects Easy
brettharned
111
5.7k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
Transcript
SwiftͰ࡞Δ iOSΞϓϦ։ൃೖ 8ݶɿΞϓϦͷϥΠϑαΠΫϧΛཧղ͢Δ 1
ࣗݾհ ࣣౡҒ೭ʢͳͳ͠·ͻͰΏ͖ʣ Reproגࣜձࣾ iPhoneΞϓϦ։ൃ͕͖ 2
ࣗݾհ 3 https://repro.io
ຊίʔεͷඪ ۤΛΓӽ͑ͯ ָ͘͠ΞϓϦ։ൃͰ͖ΔΑ͏ʹͳΔʂ 4
෭ڭࡐ վగ൛ No.1εΫʔϧߨࢣਞʹΑΔ ੈքҰड͚͍ͨ iPhoneΞϓϦ։ൃͷतۀ (ٕज़ධࣾ) 5 AmazonͰˑ5ϨϏϡʔ͕૿͑ͯͨ⽃
ࠓճͷतۀͷඪ ΞϓϦͷϥΠϑαΠΫϧΛཧղ͢Δ 6
तۀͷલఏ݅ • ͓खݩͷMacʹXcode(version7.0Ҏ্)͕Πϯετʔ ϧ͞Ε͍ͯΔ͜ͱ • લճͷ͍ΞϓϦϓϩδΣΫτ͕͋ΔͱΑΓ༗ޮʹ ֶशͰ͖·͢ɻϓϩδΣΫτԼه͔Βμϯϩʔ υͰ͖·͢ɻ https://github.com/jollyjoester/Schoo-iOS-App- Development-Basic/archive/07.zip
7
ຊͷϝχϡʔ • ʢ४උʣը໘ભҠΛͯ͠ΈΔ • ը໘ͷϥΠϑαΠΫϧΛΔ • ΞϓϦͷϥΠϑαΠΫϧΛΔ 8
ͦͷલʹલճͷ࣭͝ ʢΞϓϦͰԻΛ໐Βͯ͠ΈΔʣ • ྫ֎ॲཧͬͯͳΜͰ͍ΔΜͰ͔͢ʁϋʔυΣΞΛ͏Α ͏ͳϓϩάϥϜྫ֎ॲཧ͕ඞཁͳ͜ͱ͓͓͍ΜͰ͢ ͔ ʁfrom தࢁ ཅհ͞Μ ‣
ྫ֎ΤϥʔॲཧΛ༰қʹ͢ΔͨΊʹ͋Γ·͢ɻͲ͜Ͱ Τϥʔ͕ൃੜ͢Δ͔͕Θ͔Γ͘͢ͳΓ·͢ʢdo-tryͷ தͰൃੜ͢Δʣ͠ɺΤϥʔ͕ൃੜͨ͠ͱ͖ʹ͠ͳ͚Ε ͳΒͳ͍͜ͱ͖ͬΓͱ͠·͢ʢcatchͷதʣɻ࠷ ۙͷݴޠͰ͋Ε͍͍ͩͨྫ֎ͱ͍͏ΈΛඋ͑ͯ ͍·͢ɻ 9
ͦͷલʹલճͷ࣭͝ ʢΞϓϦͰԻΛ໐Βͯ͠ΈΔʣ • ࠓͷतۀ༰ͷԠ༻ͰϏʔτϚχΞͷΑ͏ͳΞϓϦ࡞ Εͯ͠·͍·͔͢ʁ࣌ྲྀߦͬͯϋϚΓ·ͨ͠ͷͰɺ໘ന ͦ͏ͱࢥ͍·ͨ͠ɻfrom อࢤ ݈Ұ͞Μ ‣ ͪΖΜ࡞Ε·͢ʂ࣍ճͷδΣενϟʔΛݕ͢ΔΛ
ֶλοϓεϫΠϓΛͬͨΞϓϦΛ࡞ΕΔΑ͏ ʹͳΓ·͢ɻBGMΛྲྀͭͭ͠ɺλοϓεϫΠϓ͕λ Πϛϯάྑ͘͞Ε͔ͨΛఆͯ͠ɺGreatʂͱ͔Λදࣔ ͢ΔΑ͏ʹ͢ΕΠέͦ͏Ͱ͢Ͷɻ 10
Έͳ͞·࣭͋Γ·ͨ͠Βͥͻ࣭͍ͩ͘͝͞ɻ तۀதʹऔΓ্͛ΒΕͳͯ͘ ग़དྷΔݶΓ͓͑͠·͢ʂ ͳΔ΄ͲʂͱࢥͬͨΒʮͳΔ΄ͲʯϘλϯΛ ԡ͍͚ͯͨͩ͠ΔͱྭΈʹͳΓ·͢(`ŋωŋ´) 11
ʢ४උʣը໘ભҠΛͯ͠ΈΔ 12
13 ·࣮ͣફ
৽͍͠ը໘Λ࡞Δ • खॱ ‣ StoryboardʹViewControllerΛՃ͢Δ ‣ ιʔεϑΝΠϧʢxxxViewController.swiftʣΛՃ͢Δ ‣ StoryboardͷViewControllerͱιʔεΛඥ͚Δ 14
৽͍͠ը໘Λ࡞Δ ʢStoryboardͰը໘(ViewController)ΛՃ͢Δʣ 15
৽͍͠ը໘Λ࡞Δ ʢViewControllerͷαΠζΛมߋ͢Δʣ 16
৽͍͠ը໘Λ࡞Δ (ରԠ͢ΔιʔεϑΝΠϧΛ࡞͢Δ) 17
৽͍͠ը໘Λ࡞Δ (ରԠ͢ΔιʔεϑΝΠϧΛ࡞͢Δ) 18
৽͍͠ը໘Λ࡞Δ (ରԠ͢ΔιʔεϑΝΠϧΛ࡞͢Δ) 19
৽͍͠ը໘Λ࡞Δ (ରԠ͢ΔιʔεϑΝΠϧΛ࡞͢Δ) 20 ߲ આ໌ ೖྗ Class: ͜Ε͔Β࡞ΔViewControllerͷ໊લ SecondViewController Subclass
of: ͲΜͳػೳΛҾ͖ܧ͙͔ UIViewController Also create XIB file ݸผը໘ͷݟͨΛ࡞ΔXIBͱ͍͏ ͷΛ࡞Δ νΣοΫ͠ͳ͍ Language: ༻͢Δϓϩάϥϛϯάݴޠ Swift
৽͍͠ը໘Λ࡞Δ (ରԠ͢ΔιʔεϑΝΠϧΛ࡞͢Δ) 21
৽͍͠ը໘Λ࡞Δ (ରԠ͢ΔιʔεϑΝΠϧΛ࡞͢Δ) 22
৽͍͠ը໘Λ࡞Δ (࡞ͨ͠ιʔεͱStoryboardͷViewControllerΛඥ͚ͮΔ) 23
ը໘ભҠΛ͢Δ • खॱ ‣ ը໘ભҠͷΞΫγϣϯʢϘλϯͳͲʣΛՃ͢Δ ‣ ΞΫγϣϯ͔ΒભҠઌͷը໘ʹSegueΛଓ͢Δ 24
ը໘ભҠΛ͢Δ ʢը໘ભҠ͢ΔϘλϯΛՃ͢Δʣ 25
ը໘ભҠΛ͢Δ ʢը໘ભҠ͢ΔϘλϯΛՃ͢Δʣ 26
ը໘ભҠΛ͢Δ ʢϘλϯ͔Β࣍ը໘SegueΛଓ͢Δʣ 27
ը໘ભҠΛ͢Δ ʢϘλϯ͔Β࣍ը໘SegueΛଓ͢Δʣ 28
ը໘ભҠΛ͢Δ ʢϘλϯ͔Β࣍ը໘SegueΛଓ͢Δʣ 29
ը໘ભҠΛ͢Δ ʢ༨ஊɿ࠷ॳͷը໘Λࢦఆ͢Δʣ 30
ը໘ભҠΛ͢Δ ʢΕͳ͍ʣ 31 ❌
ը໘ભҠΛ͢Δ ʢφϏήʔλʔίϯτϩʔϥʔͰΕΔΑ͏ʹ͢Δʣ 32
ը໘ભҠΛ͢Δ ʢφϏήʔλʔίϯτϩʔϥʔͰΕΔΑ͏ʹ͢Δʣ 33
ը໘ભҠΛ͢Δ ʢΕͨʂ͚Ͳͪΐͬͱҧ͏ʣ 34
ը໘ભҠΛ͢Δ ʢ࠷ॳͷը໘ͷφϏήʔλʔίϯτϩʔϥʔΛඇදࣔʹ͢Δʣ 35 ViewController.swift
ը໘ભҠΛ͢Δ ʢભҠઌͷը໘ͷφϏήʔλʔίϯτϩʔϥʔΛදࣔ͢Δʣ 36 SecondViewController.swift
ը໘ભҠΛ͢Δ ʢͰ͖ͨʂʣ 37
ը໘ભҠΛ͢Δ ʢ͓·͚ʣ 38
39 ը໘ͷϥΠϑαΠΫϧΛΔ
40 ͔͜͜Β࠲ֶ
UIViewController 41 ͜Ε·Ͱ࣮͖ͯͨ͠ϓϩάϥϜશ෦ ViewController.swiftʹॻ͍͖ͯ·ͨ͠ ↓ ViewControllerͱԿͰ͠ΐ͏ʁ
UIViewController 42 ViewControllerͱʁ ↓ ը໘Λίϯτϩʔϧ͢Δͷ
UIViewController ʢܧঝʣ 43 ʰܧঝʱͱ͍͏ΈͰ͢Ͱʹ͋Δ UIViewControllerͷػೳΛҾ͖ܧ͍Ͱ ʮViewControllerʯͱ͍͏ը໘Λ࡞͍ͬͯΔ
UIViewController ʢoverrideʣ 44 ը໘ʹඞཁͳػೳͷ΄ͱΜͲ͕ UIViewControllerʹඋΘ͍ͬͯΔ͕ɺΞϓϦݻ ༗ͷॲཧΛՃ͍͑ͨͱ͖ʹʰoverrideʱʢ্ ॻ͖ʣͱ͍͏ΈͰಠࣗॲཧΛՃ͢Δ
UIViewController ʢ͍ͭݺΕΔʁʣ 45 viewDidLoadͱ͍͏ϝιου ࣗͰݺΜͰ͍ͳ͍͚Ͳ࣮ߦ͞ΕΔ ↓ UIViewControllerͷΈͰಛఆͷλΠϛϯάͰ ࣗಈతʹݺΕ͍ͯΔ
UIViewController ʢsuper.viewDidLoad()ʣ 46 ୯७ʹ্ॻ͖ͪ͠Ό͏ͱݩͷॲཧ͕ͳ͘ͳͬ ͯ͠·͏ͷͰsuperͰݩͷॲཧΛݺΜ্ͩͰͦ ͷԼʹಠࣗॲཧΛॻ͘
UIViewController ʢ্ॻ͖Ͱ͖Δॲཧ͍͔ͭ͋͘Δʣ 47 ϝιου໊ ݺΕΔλΠϛϯά viewDidLoad ը໘͕࡞ΒΕͨͱ͖ viewWillAppear ը໘͕දࣔ͞ΕΔલ viewDidApear
ը໘͕දࣔ͞Εͨޙ viewWillDisappear ը໘͕ফ͑Δલ viewDidDisappear ը໘͕ফ͑ͨޙ
࣮ࡍʹ֬ೝͯ͠ΈΑ͏ʂ 48 ViewController.swift
࣮ࡍʹ֬ೝͯ͠ΈΑ͏ʂ 49 SecondViewController.swift
࣮ࡍʹ֬ೝͯ͠ΈΑ͏ʂ 50
ϥΠϑαΠΫϧΛͬͨ۩ମྫ ʢ͏Ұͭͷը໘ͰԻΛ໐Β͞ͳ͍ʣ 51
UIViewController ʢUIViewControllerΛৄ͘͠ΈΔʣ 52
UIViewController ʢUIViewControllerΛৄ͘͠ΈΔʣ 53
54 ΞϓϦͷϥΠϑαΠΫϧΛΔ
ΞϓϦͷϥΠϑαΠΫϧ 55 • ΞϓϦͷىಈɺऴྃͳͲͷλΠϛϯάͰ ࣗಈతʹݺΕΔॲཧ͕͋Δ • AppDelegate.swift
AppDelegate 56 ϝιου໊ ݺΕΔλΠϛϯά application:didFinishLaunching WithOptions ΞϓϦ͕ϝϞϦ্ʹͳ͍ঢ়ଶͰ ىಈͨ͠ͱ͖ applicationWillResignActive ΞϓϦ͕ΞΫςΟϒͰͳ͘ͳΔͱ͖
applicationDidEnterBackground ΞϓϦ͕όοΫάϥϯυ ߦͬͨͱ͖ applicationWillEnterForeground ΞϓϦ͕ϑΥΞάϥϯυʹߦ͘ͱ͖ applicationDidBecomeActive ΞϓϦ͕ΞΫςΟϒʹͳͬͨͱ͖ applicationWillTerminate ΞϓϦ͕ऴྃͨ͠ͱ͖
࣮ࡍʹ֬ೝͯ͠ΈΑ͏ʂ 57 AppDelegate.swift
࣮ࡍʹ֬ೝͯ͠ΈΑ͏ʂ 58 • ΞϓϦىಈ • ௨ηϯλʔ or ίϯτϩʔϧηϯλʔ։ ͘ด͡Δ •
ϗʔϜϘλϯͰΞϓϦΛऴྃ͢Δ
࣮ࡍʹ֬ೝͯ͠ΈΑ͏ʂ 59 • ࠶ΞϓϦΛ্ཱͪ͛Δ • ϗʔϜϘλϯͰΞϓϦΛऴྃ͢Δ • ϝϞϦ͔Βআͯ͠શʹऴ͔ྃͤͯ͞ Β࠶ΞϓϦΛ্ཱͪ͛Δ
ຊͷ͓͞Β͍ • ը໘ɺΞϓϦͷϥΠϑαΠΫϧΛ্ͬͨͰదͳ λΠϛϯάʹॲཧΛ࣮͠Α͏ʂ 60
ࠂ 61 http://love-swift.connpass.com/ ࣍4݄24ʂ
ࠂ 62 http://liginc.co.jp/series/spaceapps LIGϒϩά࿈ࡌ࢝Ί·ͨ͠ʂ