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
97
Swiftで作るiOSアプリ開発入門_08
Schoo講義資料
jollyjoester
April 02, 2016
Tweet
Share
More Decks by jollyjoester
See All by jollyjoester
AIコードアシスタントとiOS開発
jollyjoester
1
300
市民のためのセキュリティ講座
jollyjoester
0
40
コミュニティMTG in WWDC24
jollyjoester
0
300
BengaluruでLTしてきた
jollyjoester
0
350
try! Swift Tokyo 2024
jollyjoester
0
340
エンジニアが直接会う場の価値について
jollyjoester
8
4.4k
来年Proposalを出すつもりで参加するときっともっと楽しい!
jollyjoester
0
370
My favorite sessions in WWDC 23
jollyjoester
0
660
みんなでAIと戯れよう
jollyjoester
0
150
Other Decks in Education
See All in Education
『会社を知ってもらう』から『安心して活躍してもらう』までの プロセスとフロー
sasakendayo
0
260
アントレプレナーシップ教育 ~ 自分で自分の幸せを決めるために ~
yoshizaki
0
170
新卒研修に仕掛ける 学びのサイクル / Implementing Learning Cycles in New Graduate Training
takashi_toyosaki
1
220
2026 g0v 零時政府年會啟動提案 / g0v Summit 2026 Kickstart
rschiang
0
260
シリコンバレーでスタートアップを共同創業したファウンディングエンジニアとしての学び
tomoima525
1
1.1k
~キャラ付け考えていますか?~ AI時代だからこそ技術者に求められるセルフブランディングのすゝめ
masakiokuda
7
460
仮説の取扱説明書/User_Guide_to_a_Hypothesis
florets1
4
380
H5P-työkalut
matleenalaakso
4
40k
RSJ2025 ランチョンセミナー 一歩ずつ世界へ:学生・若手研究者のための等身大の国際化の始め方
t_inamura
0
280
データで見る赤ちゃんの成長
syuchimu
0
270
2025年度春学期 統計学 第8回 演習(1) 問題に対する答案の書き方(講義前配付用) (2025. 5. 29)
akiraasano
PRO
0
140
Linuxのよく使うコマンドを解説
mickey_kubo
1
260
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Thoughts on Productivity
jonyablonski
70
4.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Navigating Team Friction
lara
189
15k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
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ϒϩά࿈ࡌ࢝Ί·ͨ͠ʂ