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
87
Swiftで作るiOSアプリ開発入門_08
Schoo講義資料
jollyjoester
April 02, 2016
Tweet
Share
More Decks by jollyjoester
See All by jollyjoester
BengaluruでLTしてきた
jollyjoester
0
150
try! Swift Tokyo 2024
jollyjoester
0
78
エンジニアが直接会う場の価値について
jollyjoester
8
3.7k
来年Proposalを出すつもりで参加するときっともっと楽しい!
jollyjoester
0
160
My favorite sessions in WWDC 23
jollyjoester
0
440
みんなでAIと戯れよう
jollyjoester
0
34
続く勉強会の作り方
jollyjoester
1
660
Code for INZAIの歩み
jollyjoester
0
230
OSSへの貢献をサポートするための体制づくり
jollyjoester
0
1.1k
Other Decks in Education
See All in Education
LTをすべき100の理由
eltociear
0
180
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4019538FNR)
signer
PRO
0
1.7k
D&I推進レポート〜テクノロジー分野のジェンダーギャップとその取り組みについて〜
codeforeveryone
1
410
Поступление в ТОГУ 2024
pnuslide
0
25k
Pre-enrollment Information for UTokyo International Students
utokyoissr2360
0
3.8k
1,000年後の未来人に届くWebサイトを作りたい!
oguemon
2
1.1k
Ch5_-_Partie_3.pdf
bernhardsvt
0
150
Padlet opetuksessa
matleenalaakso
3
11k
Pen-based Interaction - Lecture 4 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.2k
Information Architectures - Lecture 2 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.1k
STEAM教育の枠組で行うプログラミング学習
asial_edu
0
160
Design Guidelines and Principles - Lecture 7 - Information Visualisation (4019538FNR)
signer
PRO
0
1.6k
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
48
9.1k
Designing with Data
zakiwarfel
94
4.8k
The Invisible Customer
myddelton
114
12k
Designing for humans not robots
tammielis
247
25k
Unsuck your backbone
ammeep
660
56k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
343
19k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Automating Front-end Workflow
addyosmani
1353
200k
GraphQLとの向き合い方2022年版
quramy
28
12k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
111
35k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
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ϒϩά࿈ࡌ࢝Ί·ͨ͠ʂ