Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
Swift Concurrencyでのスケジュール処理を考える / Mobile Act OSAKA 17
yutailang0119
0
110
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
310
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
240
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
280
Apple Vision Pro購入RTA 1泊3日弾丸ハワイツアー / RTA: Purchase Apple Vision Pro in Hawaii
yutailang0119
0
1.5k
個人開発のたのしみ / Enjoying personal development
yutailang0119
0
1k
バックポートして学ぶ新APIの仕組み
yutailang0119
0
3.1k
Backport AsyncImage
yutailang0119
0
770
xcrun Essentials
yutailang0119
6
1.3k
Other Decks in Technology
See All in Technology
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
210
AI 駆動開発勉強会 フロントエンド支部 #1 w/あずもば
1ftseabass
PRO
0
400
MLflowダイエット大作戦
lycorptech_jp
PRO
1
140
[CMU-DB-2025FALL] Apache Fluss - A Streaming Storage for Real-Time Lakehouse
jark
0
120
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
210
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
180
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
AIの長期記憶と短期記憶の違いについてAgentCoreを例に深掘ってみた
yakumo
4
400
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
2.1k
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
220
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.4k
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
500
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Optimizing for Happiness
mojombo
379
70k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Code Review Best Practice
trishagee
74
19k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
What's in a price? How to price your products and services
michaelherold
246
13k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Being A Developer After 40
akosma
91
590k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Bash Introduction
62gerente
615
210k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
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ͷӅ͠ํ