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
AWSコンテナ本出版から3年経った今、もし改めて執筆し直すなら / If I revise our container book
iselegant
15
3.9k
Automated Promptingを目指すその前に / Before we can aim for Automated Prompting
rkaga
0
110
マネジメント視点でのre:Invent参加 ~もしCEOがre:Inventに行ったら~
kojiasai
0
440
話題のGraphRAG、その可能性と課題を理解する
hide212131
4
1.4k
クライアントサイドでよく使われる Debounce処理 をサーバサイドで3回実装した話
yoshiori
1
140
ネット広告に未来はあるか?「3rd Party Cookie廃止とPrivacy Sandboxの効果検証の裏側」 / third-party-cookie-privacy
cyberagentdevelopers
PRO
1
120
「最高のチューニング」をしないために / hack@delta 24.10
fujiwara3
21
3.4k
IaC運用を楽にするためにCDK Pipelinesを導入したけど、思い通りにいかなかった話
smt7174
1
110
プロダクトチームへのSystem Risk Records導入・運用事例の紹介/Introduction and Case Studies on Implementing and Operating System Risk Records for Product Teams
taddy_919
1
160
チームを主語にしてみる / Making "Team" the Subject
ar_tama
4
300
Fargateを使った研修の話
takesection
0
110
Commitment vs Harrisonism - Keynote for Scrum Niseko 2024
miholovesq
6
1k
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
7.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Being A Developer After 40
akosma
86
590k
Bash Introduction
62gerente
608
210k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.1k
Designing Experiences People Love
moore
138
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
13
1.9k
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ͷӅ͠ํ