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
1.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.3k
個人開発のたのしみ / Enjoying personal development
yutailang0119
0
830
バックポートして学ぶ新APIの仕組み
yutailang0119
0
2.4k
Backport AsyncImage
yutailang0119
0
630
xcrun Essentials
yutailang0119
6
1.2k
Let's Coding SwiftUI on iPad!
yutailang0119
1
470
Property Wrapperで遊ぼう / Play with Property Wrapper
yutailang0119
2
290
Back of First Screen AB test of Hatena Bookmark iOS app with Firebase AB Testing
yutailang0119
0
280
Lab of WWDC19
yutailang0119
1
490
Other Decks in Technology
See All in Technology
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
26
11k
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
150
UI State設計とテスト方針
rmakiyama
2
440
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
260
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
160
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
300
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
260
なぜCodeceptJSを選んだか
goataka
0
160
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building Adaptive Systems
keathley
38
2.3k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Documentation Writing (for coders)
carmenintech
66
4.5k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
A designer walks into a library…
pauljervisheath
204
24k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Mobile First: as difficult as doing things right
swwweet
222
9k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Done Done
chrislema
181
16k
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ͷӅ͠ํ