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
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
66
Apple Vision Pro購入RTA 1泊3日弾丸ハワイツアー / RTA: Purchase Apple Vision Pro in Hawaii
yutailang0119
0
1.4k
個人開発のたのしみ / Enjoying personal development
yutailang0119
0
900
バックポートして学ぶ新APIの仕組み
yutailang0119
0
2.5k
Backport AsyncImage
yutailang0119
0
660
xcrun Essentials
yutailang0119
6
1.2k
Let's Coding SwiftUI on iPad!
yutailang0119
1
480
Property Wrapperで遊ぼう / Play with Property Wrapper
yutailang0119
2
300
Back of First Screen AB test of Hatena Bookmark iOS app with Firebase AB Testing
yutailang0119
0
290
Other Decks in Technology
See All in Technology
事業継続を支える自動テストの考え方
tsuemura
0
300
AndroidデバイスにFTPサーバを建立する
e10dokup
0
240
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
1
1.3k
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.5k
Postmanを使いこなす!2025年ぜひとも押さえておきたいPostmanの10の機能
nagix
2
120
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1k
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
130
自動テストの世界に、この5年間で起きたこと
autifyhq
10
7.1k
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
670
Building Products in the LLM Era
ymatsuwitter
10
4.4k
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
1
1.1k
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
0
120
Featured
See All Featured
KATA
mclloyd
29
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
A Philosophy of Restraint
colly
203
16k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
29
2.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
GraphQLとの向き合い方2022年版
quramy
44
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Thoughts on Productivity
jonyablonski
69
4.5k
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ͷӅ͠ํ