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
API diffsからiOS10を妄想する
Search
Yutaro Muta
June 30, 2016
Technology
0
1k
API diffsからiOS10を妄想する
Oasisさんで行われた"iOS Creators' Meetup vol.1"
http://oi-study.connpass.com/event/32826/
に参加してきました
Yutaro Muta
June 30, 2016
Tweet
Share
More Decks by Yutaro Muta
See All by Yutaro Muta
Apple Vision Pro購入RTA 1泊3日弾丸ハワイツアー / RTA: Purchase Apple Vision Pro in Hawaii
yutailang0119
0
1.2k
個人開発のたのしみ / Enjoying personal development
yutailang0119
0
780
バックポートして学ぶ新APIの仕組み
yutailang0119
0
2.3k
Backport AsyncImage
yutailang0119
0
610
xcrun Essentials
yutailang0119
6
1.2k
Let's Coding SwiftUI on iPad!
yutailang0119
1
460
Property Wrapperで遊ぼう / Play with Property Wrapper
yutailang0119
2
280
Back of First Screen AB test of Hatena Bookmark iOS app with Firebase AB Testing
yutailang0119
0
270
Lab of WWDC19
yutailang0119
1
480
Other Decks in Technology
See All in Technology
ABEMA のコンテンツ制作を最適化!生成 AI x クラウド映像編集システム / abema-ai-editor
cyberagentdevelopers
PRO
1
180
「最高のチューニング」をしないために / hack@delta 24.10
fujiwara3
21
3.4k
Fargateを使った研修の話
takesection
0
110
オニオンアーキテクチャで実現した 本質課題を解決する インフラ移行の実例
hryushm
14
3k
Java x Spring Boot Warm up
kazu_kichi_67
2
490
Amazon FSx for NetApp ONTAPを利用するにあたっての要件整理と設計のポイント
non97
1
160
一休.comレストランにおけるRustの活用
kymmt90
3
580
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
5
330
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
180
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
6
1.1k
LeSSに潜む「隠れWF病」とその処方箋
lycorptech_jp
PRO
2
120
AIを駆使したゲーム開発戦略: 新設AI組織の取り組み / sge-ai-strategy
cyberagentdevelopers
PRO
1
130
Featured
See All Featured
It's Worth the Effort
3n
183
27k
RailsConf 2023
tenderlove
29
880
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
For a Future-Friendly Web
brad_frost
175
9.4k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
GitHub's CSS Performance
jonrohan
1030
460k
Rails Girls Zürich Keynote
gr2m
93
13k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
Docker and Python
trallard
40
3.1k
Side Projects
sachag
452
42k
Transcript
API diffs͔Β iOS10Λໝ͢Δ 2016/06/28_iOS Creators' Meetup vol.1 Yutaro (@yutailang0119)
͓લ୭Αʁ • ໂా ༟ଠ (@yutailang0119) • iOS App Developer •
ΞϥΠυΞʔΩςΫπ, Inc.ɺ৽ଔ2 • iOSྺ10ϲ݄ڧ(Objective-C : Swift = 9 : 1)
ࣾͰiOSΤϯδχΞগ • جຊWeb (PHP, Java) ͷձࣾ • அยతʹ͔࣍͠ظόʔδϣϯͷΩϟονΞο ϓ͕͞Εͯͳ͍͜ͱ͕ଟ͍
ࣾͰiOSΤϯδχΞগ • جຊWeb (PHP, Java) ͷձࣾ • அยతʹ͔࣍͠ظόʔδϣϯͷΩϟονΞο ϓ͕͞Εͯͳ͍͜ͱ͕ଟ͍ =>
ແཧΛఏࣔ͞ΕΔ͜ͱ͕ଟ͍…
ʮʓʓΈ͍ͨͳʙʙɺ˚˚Έ͍ͨͳʙʙʯ ؾ͍ͮͨΒࣗͰΑ͘Θ͔Βͳ͍ίʔυ͕૿͑Δ iOSͷόʔδϣϯΞοϓʹै͢Δͷ͕ਏ͍ ݱঢ়༷͕ෆ໌ྎ
Γ͍ͨ͜ͱɺͰ͖Δ͜ͱΛ ͖ͪΜͱڞ༗Ͱ͖͍ͯΕ ඪ४APIͰղܾͰ͖͍ͯͨ (ͣ)
ʲඪʳ API DiffsϕʔεͰ iOS10ͰมΘΔ͜ͱɺ Ͱ͖ͦ͏ͳ͜ͱΛ ਖ਼͘͠ཧղ͢Δ (Γ͍ͨ͜ͱ͑Δ)
ؾʹͳͬͨ͜ͱ • Interests, InterestsUI • UserNotifications, UserNotificationsUI • UIKit
1. Interests, InterestsUI https://developer.apple.com/reference/intents https://developer.apple.com/reference/intentsui
1. Interests, InterestsUI • SiriͱMapsʹؔΘΔFramework (SiriKit) • Ͱ͖Δ͜ͱిֻ͚ͨΓɺϝοηʔδૹͬͨΓ (Intents Domain
6ͭ) • ಛఆͷޠኮΛొͯ͠ɺSiriʹೝࣝͤ͞Δ͜ͱՄ ೳ • (࡞Δ࣌ʹ͔͚͠Δͷஏ͔͍ͣ͠)
Intents Domain • Audio or video calling • Messaging •
Payments • Searching photos • Workouts • Ride Booking @mo_to_44͞ΜͷεϥΠυ͕ৄ͍͠ͷͰͪ͜ΒΛ https://speakerdeck.com/mnat44/sirikit
Appleతʹ iOS10SiriKitԡͬ͠Ά͍ (͕ɺϢʔβʔ͕͍ͬͯΔֆ͕૾Ͱ͖ͳ͍…)
2. UserNotifications, UserNotificationsUI https://developer.apple.com/reference/usernotifications https://developer.apple.com/reference/usernotificationsui
2. UserNotifications, UserNotificationsUI • ௨ڐՄ͞Εͨ͜ͱΛCallBackϋϯυϧͰ͖ ΔΑ͏ʹͳΔʂʂʂ => ѻ͍͘͢ͳͬͨʂʂʂʂ UNUserNotificationCenter.current().requestAuthorization([.alert, .so
und, .badge]) { (granted, error) in if granted == true { //ڐՄ͞Ε͍ͯΔ } else { //ڐՄ͞Ε͍ͯͳ͍ } } //ࠓͷઃఆঢ়ଶͷऔಘͰ͖Δ UNUserNotificationCenter.current().getNotificationSettings { (settings) in }
2. UserNotifications, UserNotificationsUI • ϑΥΞάϥϯυͰ௨ΛදࣔͰ͖ΔΑ͏ ʹͳΔʂʂʂ => ಠࣗͷΞϥʔτग़͞ͳͯ͘ࡁΉ func userNotificationCenter(_
center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler handlerBlock: (UNNotificationPresentationOptions) -> Void) { //Roll banner and sound alert handlerBlock([.alert, .sound]) } ※ ศརͳ໘ɺPush͔ΒͷભҠʹΑͬͯɺͦΕ·Ͱͷϑϩʔ่͕յ͢ΔՄೳੑ͕͋ΔͷͰɺे ͳߟྀ͕ඞཁ
2. UserNotifications, UserNotificationsUI • ௨ΛΧελϚΠζͰ͖Δʂʂʂ => ࣸਅɺΧϨϯμʔɺTextField
ᙱ͍ॴʹͬͱख͕ಧ͍ͨײ UXʹ݁͢ΔͷͰ ݸਓతʹ༏ઌߴ͍
3. UIKit https://developer.apple.com/library/prerelease/content/ releasenotes/General/iOS10APIDiffs/Swift/UIKit.html
UIColor https://developer.apple.com/videos/play/wwdc2016/712/ https://developer.apple.com/reference/uikit/uicolor/ 1648568-init
UIColor.init(displayP3Red:green:blue:alpha:) • Display P3 ʹରԠͨ͠ΠχγϟϥΠβ • දࣔͰ͖ͳ͍߹sRGBʹม͞ΕΔ • ݱঢ়iOSͰରԠ͍ͯ͠ΔͷiPad ProͷΈ
=> iPhone7Display P3͔ʁʁʁ
UITabBarItem https://developer.apple.com/reference/uikit/uitabbaritem
UITabBarItem.badgeColor UITabBarItem.setBadgeTextAttributes(_:for:) • TabBarItemʹ͚ͭΔόοδͷ৭Λ͍͡Δ͜ͱ ͕Ͱ͖ΔΑ͏ʹͳΔ => ʹനจࣈҎ֎͕͑ΔΑ͏ʹͳΔ • ຯʹخ͍֦͠ு
UIViewPropertyAnimator https://developer.apple.com/videos/play/wwdc2016/216/ https://developer.apple.com/reference/uikit/ uiviewpropertyanimator
UIViewPropertyAnimator • iOS10͔ΒͷΞχϝʔγϣϯ • ΞχϝʔγϣϯͷPause͕Ͱ͖Δ • Ξχϝʔγϣϯͷ్தʹผͷΞχϝʔγϣϯΛ ։࢝Ͱ͖Δ • Ϣʔβʔͷૢ࡞ʹ߹ΘͤͯɺΞχϝʔγϣϯΛ
ૢ࡞͢Δ͜ͱՄೳ
جຊͷ͍ํ let timing = UICubicTimingParameters(animationCurve: .easeInOut) let animator = UIViewPropertyAnimator(duration:
2.0, timingParameters: timing) animator.addAnimations { //ΞχϝʔγϣϯͷऴΛఆٛ } animator.addCompletion {_ in //Ξχϝʔγϣϯऴྃ࣌ͷॲཧ } animator.startAnimation()
جຊͷ͍ํ let timing = UICubicTimingParameters(animationCurve: .easeInOut) let animator = UIViewPropertyAnimator(duration:
2.0, timingParameters: timing) animator.addAnimations { //ΞχϝʔγϣϯͷऴΛఆٛ } animator.addCompletion {_ in //Ξχϝʔγϣϯऴྃ࣌ͷॲཧ } animator.startAnimation()
Ξχϝʔγϣϯϑϩʔ animator.startAnimation() //ελʔτ ->ɹstatus: active animator.pauseAnimation() //ϙʔζ -> status: active
animator.stopAnimation(_ withoutFinishing: Bool) //ετοϓ /* withoutFinishing: ture -> status: inactive false -> status: stopped */ animator.finishAnimation(at: UIViewAnimatingPosition) //ऴྃ /* status: inactive at: .end: Ξχϝʔγϣϯͷऴྃ .start: Ξχϝʔγϣϯͷ։࢝ .current: ࠓͷ */
UISpringTimingParametersͰ͜Μͳ͜ͱͰ͖ΔΒ͍͠ https://developer.apple.com/videos/play/wwdc2016/216/
Ͱ͖ͦ͏ͳΞχϝʔγϣϯΛ νʔϜͰߟ͍͑ͨ (؆୯ʹͳͬͨͱ͍͑ɺΞχϝʔγϣϯَ)
• (iOS9·ͰΛͲ͏͢Δ͔ͷௐࠪͭͭ͠ɺ) UserNotificationsૣΊʹରԠ͍ͨ͠ • (ݸਓతʹ) SiriKitͬͯΈ͍ͨ • Ξχϝʔγϣϯ͏গ͠ௐ͕ࠪඞཁ ॴײ +
ఏҊ
͜͜·Ͱ
ʲએʳ
PyCon JP 2016ʹདྷ·ͤΜ͔? • https://pycon.jp/2016/ • WebɺαΠΤϯε༷ʑͳόοΫάϥϯυ ͷਓ͕͍ΔͷͰɺiOSͷਓָ͠ΊΔͣ • 2ؒͷ͓னͱॳͷύʔςΟࠐͰ1ສԁ!!!
• νϡʔτϦΞϧ: 9/20 • ΧϯϑΝϨϯε: 9/21-22 • εϓϦϯτ: 9/23-24 νέοτ:
http://pyconjp.connpass.com/event/30692/ PyCon JP 2016։࠵֓ཁ
• https://github.com/pyconjp/pyconjp-ios • 7݄ϦϦʔε༧ఆ (·ͩશવͯ͠ͳ͍) • PR͓͍ͪͯ͠·͢ʂʂʂ PyCon JP 2016
iOSΞϓϦ࡞ͬͯ·͢
ʲ؇ืʳ (cocoapods-keysҎ֎Ͱ) XcodeϓϩδΣΫτΛ GitͰެ։͢Δ࣌ͷ APIKeyͷӅ͠ํ