Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Working as an iOS Developer at Classmethod
Search
Kato Jun
August 14, 2018
Programming
830
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Working as an iOS Developer at Classmethod
Kato Jun
August 14, 2018
More Decks by Kato Jun
See All by Kato Jun
love-swift-vol8
katoj
0
1.5k
Other Decks in Programming
See All in Programming
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
contenteditable と日本語入力に向き合う
colorful12
0
200
気持ちぃ〜角丸 Squircle
ryu1013
0
310
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
Jetpack Compose Mechanisms
skydoves
3
820
The Rails Doctrine Decade
koic
2
590
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
ActionController meets Protocol Buffers
sorah
0
520
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
270
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
820
The Cost Of JavaScript in 2023
addyosmani
55
10k
Music & Morning Musume
bryan
48
7.4k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Building Flexible Design Systems
yeseniaperezcruz
330
41k
The SEO Collaboration Effect
kristinabergwall1
1
590
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Balancing Empowerment & Direction
lara
6
1.3k
The Language of Interfaces
destraynor
162
27k
Transcript
8PSLJOHBTBO J04%FWFMPQFS BU$MBTTNFUIPE ,BUP+VO 1
"CPVUNF !2 wՃ౻५ wϞόΠϧΞϓϦαʔϏε෦ wJ04ΤϯδχΞ w$.ೖͬͯڧ wࡀʢࡀͷ່͕͍·͢ʣ
"HFOEB !3 wϞόΠϧΞϓϦαʔϏε෦ʹ͍ͭͯ wJ04ΤϯδχΞͷࣄ wҭࣇͱΫϥεϝιου wΫϥεϝιουͷจԽ w88%$Ͱൃද͞ΕͨؾʹͳΔ৽ػೳ
ϞόΠϧΞϓϦαʔϏε෦ ʢϓϦαʔʣͱʁ !4
ϓϦαʔͷ͓ࣄ !5 wࣄۀձ༷͚ࣾͷϞόΠϧΞϓϦʢJ04 "OESPJEʣͱͦͷόοΫΤϯυγεςϜ ʢ"84ʣΛ։ൃ w্هΛߦ͏͜ͱͰ͓٬༷ͷࣄۀɾϏδωεʹ ߩݙ͢Δɻ
͜ΜͳΞϓϦ࡞ͬͯ·͢ !6
͜ΜͳΞϓϦ࡞ͬͯ·͢ !7
͜ΜͳΞϓϦ࡞ͬͯ·͢ !8
Ҋ݅ͷ༰ɾن༷ʑ !9 w࠷ۙҎ্ͷൺֱతنͷେ͖ͳҊ͕݅ ૿͖͑ͯͨˠνʔϜ։ൃˠͭ·ΓνʔϜ֎ Θͣίϛϡχέʔγϣϯ͕ͱͯେࣄ wΞϓϦ͚ͩͷҊ݅͋Γ·͢ wҊ݅ʹґΒͣɺ͓٬༷ʹຬ͍ͯͨͩ͘͜͠ ͱ͕େࣄ
J04ΤϯδχΞͷࣄ !10
ྫ͑͜Μͳ͜ͱ !11 w͓٬༷ઌʹ๚ͯ͠ཁٻͷώΞϦϯά wٕज़తͳ؍͔Βཁ݅ఆٛʹࢀՃ wJ04ΤϯδχΞͷ؍͔ΒΞϓϦΛઃܭ w࣮ͪΖΜςετ w"OESPJEΤϯδχΞσβΠφʔαʔόʔαΠυΤϯδ χΞͱͷڠۀ
J04ΤϯδχΞͷ ؍͕େࣄ !12
J04ΤϯδχΞͷ؍ͱʁ !13 wJ04͔Β͜͏ͳΓ·͢Αʁ͜Μͳ͜ͱͰ͖ ·͢Αʁ wͦͷΓํ͏ݹ͍Ͱ͢Αʁ wࠓ͑Δ͚ͲඇਪʹͳΔͷͰผͷํ๏ߟ ͑ͳ͖ΌͰ͢Αʁ
ࣄΛ͢Δ্Ͱ ৺͕͚͍ͯΔ͜ͱ !14
ීஈ৺͕͚͍ͯΔ͜ͱ !15 w࣮ݱ͢Δํ๏͕ෳ͋Δ߹ͦΕͧΕͷϝ ϦοτσϝϦοτΛग़͓ͯ͠٬༷ʹબΜͰΒ ͏ʢͦͷ࣌ͪ͜ΒͷΦεεϝ999Ͱ͢Αͱ ͑Δʣ wʮ͜ΕͬͯͰ͖Δͷʁʯͬͯฉ͔Εͨ࣌ʹɺͰ ͖ΔͰ͖ͳ͍͚ͩ͡Όͳ͘ɺ࣮ݱ͢ΔͨΊͷલ ఏඞཁͳใɺײΛ͑Δ
ҭࣇͱΫϥεϝιου !16
உੑͷҭٳऔಘˋ !17 wˋͬͯݴ͏ͱӕͬΆ͘ฉ͑͜Δ͚ͲϚδ Ͱ͢ wࢲҭٳऔΓ·ͨ͠ʢϲ݄͚ؒͩͬͨͲɺͬ ͱऔΕΑ͔ͬͨʣ wपΓͷਓੵۃతʹҭࣇͯ͠·͢
͜Μͳ࣌ʹɺ͋͊Ϋϥεϝιου ͰΑ͔ͬͨͳ͊ͱࢥ͏ !18 wࢠڙ͕ٸʹΛग़͕ܴͯࣗ͑͠ʹߦ͔ͳ͘ ͯͳΒͳ͘ͳͬͨ wޕલதग़ࣾͯ͠ޕޙՈͰϦϞʔτϫʔΫ͢ ΔɺͳͲॊೈͳۈ͕Մೳ wݸਓͷ༧ఆͱࣄͷ༧ఆͷ߹͕͚͍ͭ͢
ΫϥεϝιουͷจԽ !19
ϒϩάʢ%FWFMPQFST*0ʣ !20
%FWFMPQFST*0ͱʁ !21 wࣾһ͕͍ͭͰ͖ͳ࣌ʹΞτϓοτͰ͖ Δ wϊϧϚͳ͍ wॻ͖͍ͨ࣌ʹॻ͖͍ͨ༰Λॻ͖͍ͨΑ͏ʹ ॻ͘
ϦϞʔτϫʔΫ !22
ϦϞʔτϫʔΫ !23 w௨ۈ࣌ؒͷɺࣄ͕Ͱ͖Δ wઇͷͳͲަ௨ػ͕ؔ͑ͳ͍߹ಛʹخ͍͠ wࣄ͕ऴΘͬͨΒ͙͢ʹՈͷࣄ͕Ͱ͖Δ w੍ͱͯ͠ϦϞʔτϫʔΫ͕͋ΔͷૉΒ͍͠ wͨͩ͠Ξτϓοτ͕͋Δ͜ͱ͕લఏ
Πϕϯτɾษڧձ !24
Πϕϯτɾษڧձ !25 wۀ࣌ؒதͰϒϩάΛॻ͚ ษڧձΠϕϯτʹߦ͚Δ wւ֎ΧϯϑΝϨϯεʹߦ͚Δ✈ wࠓ88%$ʹॳΊͯߦ͖·ͨ͠ʂ wνέοτɺߤඅɺϗςϧશ ֹձࣾෛ୲
!26
!27
!28
!29
!30
!31
!32
!33
ॳΊͯͷ88%$ !34 wJ04ΤϯδχΞͳͷͰճߦͬͯΈ͔ͨͬͨ wηογϣϯΛத৺ʹա͕ͨ͝͠໘ന͔ͬͨ w"QQMFͷΤϯδχΞʹ࣭Ͱ͖ΔϥϘʹ ػձ͕͋ΕߦͬͯΈ͍ͨ wߦ͔ͤͯ͘Εͨձࣾʹײँ
ࠓͨ͘͞Μͷ Ξοϓσʔτ͕͋Γ·ͨ͠ !35 w"3,JU w$PSF.- w/FUXPSL'SBNFXPSL w/BUVSBM-BOHVBHF w4JSJ4IPSUDVUT w"VUIFOUJDBUJPO4FSWJDFT wͳͲͳͲ
ࠓͨ͘͞Μͷ Ξοϓσʔτ͕͋Γ·ͨ͠ !36 w"3,JU w$PSF.- w/FUXPSL'SBNFXPSL w/BUVSBM-BOHVBHF w4JSJ4IPSUDVUT w"VUIFOUJDBUJPO4FSWJDFT wͳͲͳͲ
͓அΓ !37 w/%"ʹྀ͠ɺ9DPEFը໘ͷεΫϦʔϯ γϣοτࡌ͍ͤͯ·ͤΜ wJ04ϕʔλ൛Ͱͷಈ࡞֬ೝ݁ՌͳͷͰɺਖ਼ ࣜϦϦʔε࣌ʹڍಈ͕มΘΔՄೳੑ͕͋Γ ·͢
4JSJ4IPSUDVUTͱʁ !38 wϢʔβʔ͕ҰߦͳͬͨॲཧΛγεςϜʹొ w4JSJ͕Λֶशͯ͠εϙοτϥΠτݕࡧɺϩο ΫεΫϦʔϯͳͲʹαδΣετ w4JSJʹΑΔͰಛఆͷૢ࡞Λ࣮ߦ wಠࣗͷىಈϑϨʔζΛొ͢Δ͜ͱՄೳ
͜Ε·Ͱͷ4JSJ,JUͱԿ͕ҧ͏ͷʁ !39 w͜Ε·Ͱ4JSJͰ࣮ߦͰ͖Δૢ࡞͕ݶΒΕ͍ͯ ͨʢFY-JTUTBOE/PUFTυϝΠϯͰϝϞΛ࡞ ͢Δ*OUFOUͳͲʣ w4JSJ4IPSUDVUTͰΧελϜ*OUFOUͷ࡞ɺ طଘ*OUFOUͷΧελϚΠζ͕Մೳɺͭ·Γ4JSJ ͕༗ޮʹ͑Δγʔϯ͕૿͑ΔՄೳੑ͕͋Δ
4IPSUDVUTͷ"1*छྨ͋Δ !40 w/46TFS"DUJWJUZ w*OUFOUT
/46TFS"DUJWJUZ !41 wΞϓϦΛىಈͯ͠Կ͔Λදࣔ͢Δ߹ wطʹ)BOEP⒎ͳͲͰ͍ͬͯΔ߹Έࠐ Έ͍͢ w*OUFOUTʹൺ࣮͕͍ͯܰ
*OUFOUT !42 wΞϓϦΛىಈ͢Δ͜ͱͳ͘ॲཧΛ࣮ߦͰ͖Δ wͷϨεϙϯεͷΧελϚΠζɺΧελϜ6* ͷఏڙ͕Մೳ wϢʔβʔମݧతʹϦονͳͷ͕࡞Մೳ
*OUFOUT !43 wΞϓϦΛىಈ͢Δ͜ͱͳ͘ॲཧΛ࣮ߦͰ͖Δ wͷϨεϙϯεͷΧελϚΠζɺΧελϜ6* ͷఏڙ͕Մೳ wϢʔβʔମݧతʹϦονͳͷ͕࡞Մೳ
4IPSUDVUTͷ"1*छྨ͋Δ !44 w/46TFS"DUJWJUZ w*OUFOUT
࠷খͷ࣮ํ๏ ʢԿ͔ҙͷॲཧΛߦ͏ *OUFOUTʣ !45
*OUFOUT&YUFOTJPOΛՃ !46 w9DPEFͰϓϩδΣΫτϑΝΠϧΛબ͠ɺ 5"3(&54ͷࠨԼͷ ϘλϯΛΫϦοΫ͠ɺ *OUFOUT&YUFOTJPOΛՃ wΧελϜ6*Λද͍ࣔͨ͠߹ʮ*ODMVEF6* &YUFOTJPOʯʹνΣοΫ͢Δ
γϣʔτΧοτʢ*OUFOUʣΛఆٛ !47 wJOUFOUEFpOJUJPOϑΝΠϧΛ։͘ͱ࠷ॳԿ ͳ͍ۭͷঢ়ଶ wը໘ࠨԼͷ ϘλϯΛΫϦοΫͯ͠ʮ/FX *OUFOUʯΛબ
$VTUPN*OUFOU !48 w$BUFHPSZʢ֘͢ΔΧςΰϦΛબɻFYྉ ཧΛจ͢Δ4IPSUDVUͷ߹ʮ0SEFSʯΛ બʣ wࠓճʮ%PʯΛબ
$VTUPN*OUFOU !49 w5JUMF w%FTDSJQUJPO w%FGBVMU*NBHF w$POpSNBUJPOͷ6TFSDPOpSNBUJPOSFRVJSFEνΣοΫϘο Ϋεʢ࣮ߦ͢ΔલʹϢʔβʔͷ֬ೝΛߦ͏͔Ͳ͏͔ɻྫ͑ ྉཧΛจ͢Δ߹ͳͲνΣοΫΛ͚ͭͯ֬ೝ͢Δ ͖ʣ
1BSBNFUFST !50 w*OUFOUͷॲཧ͕ඞཁͱ͢ΔύϥϝʔλʔΛఆ ٛ wύϥϝʔλʔͷ໊લͱܕΛఆٛ wࠓճUBTL/BNFͱ͍͏4USJOHύϥϝʔλʔ Λͭఆٛ
4IPSUDVU5ZQFT !51 w1BSBNFUFSTͰఆٛͨ͠ύϥϝʔλʔΛΈ߹Θͤͯ ࡞͢Δ4IPSUDVUʢ4JSJͷϦΫΤετʣͷύλʔϯ wࠓճ5JUMFΛʮ%P\UBTL/BNF^ʯͱఆٛ w#BDLHSPVOEͷ4VQQPSUTCBDLHSPVOEFYFDVUJPOͷ νΣοΫϘοΫεʢόοΫάϥϯυ࣮ߦ͢Δ͔Ͳ͏ ͔ͷઃఆʣ
3FTQPOTFΛఆٛ !52 w4IPSUDVUΛ࣮ߦͨ݁͠Ռʢ4JSJ͔ΒͷϨεϙ ϯεʣͷܗࣜΛఆٛ w1SPQFSUJFTͰ1BSBNFUFSTͱಉ͡Α͏ʹϓϩ ύςΟͷ໊લͱܕΛఆٛ wࠓճ1BSBNFUFSTͱಉ༷ɺUBTL/BNFͱ͍͏ 4USJOHϓϩύςΟΛͭఆٛ
3FTQPOTFΛఆٛ !53 w3FTQPOTF5FNQMBUFT w4IPSUDVUͷ࣮ߦ݁ՌΛϢʔβʔʹ͑Δࡍͷϝοηʔ δςϯϓϨʔτΛఆٛ w$PEFʢॲཧޭࣦഊΛද͢ʣͱϝοηʔδΛఆٛ wࠓճ$PEF͕TVDDFTTͷ5FNQMBUFʹɺఆٛͨ͠ϓ ϩύςΟΛ͍ɺ*WFpOJTIFE\UBTL/BNF^ͱఆٛ
JOUFOUEFpOJUJPOϑΝΠϧ͔Β ίʔυ͕ࣗಈੜ !54 wϏϧυ͢ΔͱରԠ͢ΔΫϥε͕ࣗಈੜ͞Ε Δ
͜͜·Ͱ͕ 4IPSUDVUͷఆٛ !55
γϣʔτΧοτΛఏڙ !56 wࣗಈੜͨ͠ΫϥεΛͬͯγϣʔτΧοτΛγεςϜʹରͯ͠ఏڙ͢Δ w%P4PNFUIJOH*OUFOU͕JOUFOUEFpOJUJPOϑΝΠϧ͔Βࣗಈੜͨ͠*OUFOUΛද͢Ϋϥε w*OUFOUΛ࡞ͯ͠ඞཁใΛηοτͨ͠Βɺ*/*OUFSBDUJPOΛ࡞ͯ͠EPOBUF͢Δ͚ͩ let intent = DoSomethingIntent() intent.taskName
= "a certain task" let interaction = INInteraction(intent: intent, response: nil) interaction.donate { error in // handler error }
γϣʔτΧοτΛϋϯυϧ !57 wࣗಈੜͨ͠ΫϥεΛͬͯγϣʔτΧοτΛγεςϜʹରͯ͠ఏڙ͢Δ w*/&YUFOTJPOΛܧঝͨ͠ΫϥεͰIBOEMFS GPS ϝιουΛΦʔόʔϥΠυ wΠϯςϯτͷछྨʹԠͯ͡దͳϋϯυϥʔΦϒδΣΫτΛฦ͢ॲཧΛ͍ͯ͠Δ class IntentHandler: INExtension
{ override func handler(for intent: INIntent) -> Any? { switch intent { case is DoSomethingIntent: return DoSomethingIntentHandler() default: return nil } } }
γϣʔτΧοτΛϋϯυϧ !58 w࣮ࡍʹΠϯςϯτΛϋϯυϧ͢ΔΫϥεΛ࣮ w%P4PNFUIJOH*OUFOU)BOEMJOHࣗಈੜͨ͠ϓϩτίϧ wDPOpSN JOUFOUDPNQMFUJPO ϝιου͕ఆٛ͞Ε͍ͯ·͕ͨ͠ɺͪ͜Βͷ࣮ҙ wΠϯςϯτͷछྨʹԠͯ͡దͳϋϯυϥʔΦϒδΣΫτΛฦ͢ॲཧΛ͍ͯ͠Δ class DoSomethingIntentHandler:
NSObject, DoSomethingIntentHandling { func handle(intent: DoSomethingIntent, completion: @escaping (DoSomethingIntentResponse) -> Void) { guard let taskName = intent.taskName else { completion(DoSomethingIntentResponse(code: .failure, userActivity: nil)) return } // do something. let response = DoSomethingIntentResponse.success(taskName: taskName) completion(response) } }
͜͜·Ͱग़དྷΔͱʁ !59 wΞϓϦΛಈ͔ͯ͠ɺγϣʔτΧοτΛEPOBUF ͢ΔͱɺઃఆΞϓϦͷγϣʔτΧοτҰཡʹ දࣔ͞ΕΔ wಠࣗͷىಈϑϨʔζΛԻՄೳ
4JSJ4IPSUDVUT ͬͯΈ͍ͯͩ͘͞ !60
·ͱΊ !61
·ͱΊ !62 wΫϥεϝιουͷϞόΠϧΞϓϦαʔϏε෦Ͱ༷ʑͳҊ݅ɾࣄ͕ Ͱ͖·͢☺ wϒϩάॻ͖͍ͨਓɺษڧձʹొஃ͍ͨ͠ਓɺւ֎Πϕϯτߦ͖͍ͨਓɺ ߦ͚·͢Α wϦϞʔτϫʔΫͳͲɺ੍͏·͘׆༻͠Α͏ wࢠҭ͍ͯ͢͠Α w4JSJ4IPSUDVUTָ͍͠Α
5IBOLTʂ !63