Slide 1

Slide 1 text

αϙʔλʔζCoLabษڧձ 2018/11/15 cokaholic ~iPhone XରԠͷεεϝ in 2018~

Slide 2

Slide 2 text

cokaholic • iOS engineer at AbemaTV, Inc. • Github, Qiita: cokaholic • Twitter: @TK_u_nya • AppStore: Keisuke Tatsumi

Slide 3

Slide 3 text

ຊ೔ͷςʔϚ͸…

Slide 4

Slide 4 text

iPhone XରԠ

Slide 5

Slide 5 text

Agenda • What’s iPhone X • What’s Safe Area • How To “TRUE” Support iPhone X • Support iPhone X in 2018 • Summary

Slide 6

Slide 6 text

Agenda • What’s iPhone X • What’s Safe Area • How To “TRUE” Support iPhone X • Support iPhone X in 2018 • Summary

Slide 7

Slide 7 text

What’s iPhone X • 2017೥9݄12೔ʹ։࠵͞ΕͨApple Special Eventʹͯൃද͞Εͨ࠷৽ͷiPhone

Slide 8

Slide 8 text

One more thing…

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

৽ܕiPhoneΩλʔʂ

Slide 11

Slide 11 text

What’s iPhone X • 2017೥9݄12೔ʹ։࠵͞ΕͨApple Special Eventʹͯൃද͞Εͨ࠷৽ͷiPhone • Face IDʢإೝূʣʹΑΔϩοΫղআΛ౥ࡌ

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

ະདྷΩλʔʂ

Slide 14

Slide 14 text

Ͱ΋ɺ͍··ͰͷTouchIDೝূͷ࣮૷෦෼࢖͑ͳ͘Ͷʁ

Slide 15

Slide 15 text

Touch ID to Face ID • ੜମೝূ͸LocalAuthentication.frameworkͰ؅ཧ ͞Ε͍ͯΔ

Slide 16

Slide 16 text

Touch ID to Face ID • ੜମೝূ͸LocalAuthentication.frameworkͰ؅ཧ ͞Ε͍ͯΔ • LABiometryTypeͱ͍͏enumͰੜମೝূͷλΠϓ Λ؅ཧ͍ͯ͠Δ

Slide 17

Slide 17 text

Touch ID to Face ID • ੜମೝূ͸LocalAuthentication.frameworkͰ؅ཧ ͞Ε͍ͯΔ • LABiometryTypeͱ͍͏enumͰੜମೝূͷλΠϓ Λ؅ཧ͍ͯ͠Δ

Slide 18

Slide 18 text

Touch ID to Face ID • ੜମೝূ͸LocalAuthentication.frameworkͰ؅ཧ ͞Ε͍ͯΔ • LABiometryTypeͱ͍͏enumͰੜମೝূͷλΠϓ Λ؅ཧ͍ͯ͠Δ • framework಺ͰࣗಈͰݕ஌ͯ͠ɺͲͪΒΛ࢖͏͔Λ ൑அ͢ΔͨΊɺ࣮૷͸Touch IDͷͱ͖ͷ··Ͱྑ͍

Slide 19

Slide 19 text

Touch IDΛ࣮૷ࡁΈͷօ༷ ҆͝৺͍ͩ͘͞ʂ

Slide 20

Slide 20 text

What’s iPhone X • 2017೥9݄12೔ʹ։࠵͞ΕͨApple Special Eventʹͯൃද͞Εͨ࠷৽ͷiPhone • Face IDʢإೝূʣʹΑΔϩοΫղআΛ౥ࡌ • ϕθϧϨεσΟεϓϨΠ

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

͓Θ͔Γ͍͚ͨͩͨͩΖ͏͔ʁ

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

͑…͜Ε…ԜΈͷ෦෼ɺ΍͹͘Ͷʁ

Slide 25

Slide 25 text

ͦ͜Ͱొ৔͢Δͷ͕...

Slide 26

Slide 26 text

Safe Area

Slide 27

Slide 27 text

Agenda • What’s iPhone X • What’s Safe Area • How To “TRUE” Support iPhone X • Support iPhone X in 2018 • Summary

Slide 28

Slide 28 text

What’s Safe Area API Roadmap • Apple͕iOS11͔Βಋೖͨ֓͠೦

Slide 29

Slide 29 text

What’s Safe Area API Roadmap • Apple͕iOS11͔Βಋೖͨ֓͠೦ • φϏήʔγϣϯόʔ΍εςʔλεόʔͳͲͷ֎ ଆͷUIʹඃΒͳ͍҆શͳྖҬΛऔಘͰ͖Δ

Slide 30

Slide 30 text

What’s Safe Area API Roadmap • Apple͕iOS11͔Βಋೖͨ֓͠೦ • φϏήʔγϣϯόʔ΍εςʔλεόʔͳͲͷ֎ ଆͷUIʹඃΒͳ͍҆શͳྖҬΛऔಘͰ͖Δ • iPhone XͷΑ͏ͳԜΈΛؚΜͩը໘ʹ΋ରԠ Ͱ͖Δ

Slide 31

Slide 31 text

What’s Safe Area API Roadmap • Apple͕iOS11͔Βಋೖͨ֓͠೦ • φϏήʔγϣϯόʔ΍εςʔλεόʔͳͲͷ ֎ଆͷUIʹඃΒͳ͍҆શͳྖҬΛऔಘͰ͖Δ • iPhone XͷΑ͏ͳԜΈΛؚΜͩը໘ʹ΋ରԠ Ͱ͖Δ • Xcode9+ɺiOS11+ SDK͕ඞཁ

Slide 32

Slide 32 text

What’s Safe Area API Roadmap • ηʔϑΤϦΞΛ༗ޮʹ͢Δ 1. StoryboardΛ։͘ 2. ӈଆʹ͋ΔInterface BuilderͷΠϯεϖ ΫλΛ։͘ 3. ʮUse Safe Area Layout Guidesʯͷ νΣοΫΛONʹ͢Δ 4. ࣗಈͰηʔϑΤϦΞ(UILayoutGuide) ͕ ௥Ճ͞ΕΔ

Slide 33

Slide 33 text

What’s Safe Area API Roadmap • ͍··ͰͷStoryboardͰηʔϑΤϦΞΛ༗ޮʹ͢Δͱɺ Top Layout Guide΍Bottom Layout Guideʹ઀ଓ͍ͯ͠ ͨϏϡʔ͸ࣗಈͰηʔϑΤϦΞͷTopɺBottomʹࠩ͠ସ ͑ͯ͘ΕΔ ηʔϑΤϦΞద༻લ ηʔϑΤϦΞద༻ޙ

Slide 34

Slide 34 text

Safe Area Preview API Roadmap J1IPOF9 J1IPOF 1PSUSBJU -BOETDBQF എܠ৭෇͖ͷϥϕϧΛSafeAreaʹදࣔ͢ΔΑ͏ʹ੍໿Λ௥Ճ࣮ͯ͠ߦͨ͠৔߹

Slide 35

Slide 35 text

ͭ·Γ

Slide 36

Slide 36 text

ԜΈΛ੾Δ͜ͱͰ

Slide 37

Slide 37 text

iPhone XରԠ׬ྃʂ

Slide 38

Slide 38 text

ͱ͸͍͖·ͤΜ

Slide 39

Slide 39 text

Agenda • What’s iPhone X • What’s Safe Area • How To “TRUE” Support iPhone X • Support iPhone X in 2018 • Summary

Slide 40

Slide 40 text

How To “TRUE” Support iPhone X API Roadmap • ༨ന෦෼ͷഎܠʹؾΛ͚ͭΑ͏

Slide 41

Slide 41 text

API Roadmap Designing for iPhone X - Fall 2017 - Videos - Apple DeveloperΑΓ ηʔϑΤϦΞͰ੾ΓऔΔ͚ͩͷσβΠϯ͸ඇਪ঑

Slide 42

Slide 42 text

্Լͷഎܠͱίϯςϯπ༹͕͚ࠐΉΑ͏ʹ iPhoneXͷγϛϡϨʔλͰ֬ೝͰ͖ΔApple͕ఏڙ͍ͯ͠ΔΞϓϦͷྫ News Files Reminder

Slide 43

Slide 43 text

How To “TRUE” Support iPhone X API Roadmap • ༨ന෦෼ͷഎܠʹؾΛ͚ͭΑ͏ • ඞཁͳՕॴͰclipsToBoundsʹͳ͍ͬͯΔ͔ؾ Λ͚ͭΑ͏

Slide 44

Slide 44 text

What’s clipsToBounds API Roadmap • ਌Viewͷ্ʹ௥Ճ͞Εͯ͋ΔSubview͕਌ViewͷྖҬΛ͸Έग़ͨ৔߹ʹɺ ͸Έग़ͨ෦෼Λදࣔ͢Δ͔Ͳ͏͔ΛࢦఆͰ͖ΔUIViewΫϥεͷϓϩύςΟ view1.clipsToBounds = false View1.clipsToBounds = true

Slide 45

Slide 45 text

ͳͥclipsToBoundsʁ

Slide 46

Slide 46 text

API Roadmap ※ը૾͸։ൃதͷ΋ͷͰ͢ɻରԠ൛Ͱ͸ى͖·ͤΜͷͰɺ҆͝৺͍ͩ͘͞ɻ clipsToBoundsΛ໌֬ʹࢦఆ͓͔ͯ͠ͳ͍ͱɺ ηʔϑΤϦΞ͕શવηʔϑʹͳΒͳ͘ͳΔྫ ແ೦ʹ΋͸Έग़ͯ͠͠·ͬͨ…

Slide 47

Slide 47 text

How To “TRUE” Support iPhone X • ༨ന෦෼ͷഎܠʹؾΛ͚ͭΑ͏ • ඞཁͳՕॴͰclipsToBoundsʹͳ͍ͬͯΔ͔ؾ Λ͚ͭΑ͏ • ίʔυϕʔεͷϏϡʔʹؾΛ͚ͭΑ͏

Slide 48

Slide 48 text

• ίʔυϕʔεͰViewControllerͷViewͳͲʹ௥Ճ͠ ͍ͯΔViewʹ͸ࣗಈͰηʔϑΤϦΞ͸ద༻͞Εͳ͍ • iOS11͔Β͸UIViewͷϓϩύςΟʹsafeAreaInsets (UIEdgeInsets) ͕௥Ճ͞Ε͍ͯͯɺ͔ͦ͜Βηʔϑ ΤϦΞͷϚʔδϯΛऔಘͰ͖Δ • iOS11+͔͠࢖͑ͳ͍ϓϩύςΟͷͨΊɺ
 #available(iOS 11, *) Ͱͷ෼ذ͕ඞཁ How To Get Safe Area

Slide 49

Slide 49 text

How To Get Safe Area import UIKit class ViewController: UIViewController { // ͜͜ͰsafeAreaInsets͕ॳΊͯ֬ఆ͢Δ override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() // iOS11͔Ͳ͏͔Ͱ෼ذ͢Δ let safeAreaInsets: UIEdgeInsets if #available(iOS 11, *) { safeAreaInsets = view.safeAreaInsets } else { safeAreaInsets = .zero } print("safeAreaInsets: \(safeAreaInsets)") } } ViewController.swift ᶃ safeAreaInsetsΛUIView͔Βऔಘ͢Δ

Slide 50

Slide 50 text

How To Get Safe Area import UIKit class ViewController: UIViewController { // ͜͜ͰsafeAreaInsets͕ॳΊͯ֬ఆ͢Δ override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() // iOS11͔Ͳ͏͔Ͱ෼ذ͢Δ let safeAreaInsets: UIEdgeInsets if #available(iOS 11, *) { safeAreaInsets = view.safeAreaInsets } else { safeAreaInsets = .zero } print("safeAreaInsets: \(safeAreaInsets)") } } ViewController.swift ᶃ safeAreaInsetsΛUIView͔Βऔಘ͢Δ ຖճ͜ͷ෼ذΛॻ͘ͷ͸໘౗͡Όͳ͍ʁ

Slide 51

Slide 51 text

How To Get Safe Area import UIKit extension UIView { var viewSafeAreaInsets: UIEdgeInsets { guard #available (iOS 11, *) else { return .zero } return safeAreaInsets } } UIViewExtension.swift ᶄ safeAreaInsetsΛऔಘ͢ΔͨΊͷUIViewͷExtensionΛ࡞੒

Slide 52

Slide 52 text

How To Get Safe Area ᶄ safeAreaInsetsΛऔಘ͢ΔͨΊͷUIViewͷExtensionΛ࡞੒ ͜ΕͰຖճ෼ذॻ͘໰୊͸ղܾʂ" import UIKit class ViewController: UIViewController { // ͜͜ͰsafeAreaInsets͕ॳΊͯ֬ఆ͢Δ override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() let safeAreaInsets = view.viewSafeAreaInsets print("safeAreaInsets: \(safeAreaInsets)") } } ViewController.swift

Slide 53

Slide 53 text

How To Get Safe Area import UIKit class ViewController: UIViewController { // ͜͜ͰsafeAreaInsets͕ॳΊͯ֬ఆ͢Δ override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() let safeAreaInsets = view.viewSafeAreaInsets print("safeAreaInsets: \(safeAreaInsets)") } } ViewController.swift ᶄ safeAreaInsetsΛऔಘ͢ΔͨΊͷUIViewͷExtensionΛ࡞੒ ͑ʁϓϩύςΟ໊มΘΔͷͬͯ෼͔ΓͮΒ͘ͳ͍ʁ

Slide 54

Slide 54 text

How To Get Safe Area ᶅ safeAreaInsetsΛsafeAreaInsetsͰऔಘ͢ΔͨΊͷUIViewͷExtensionΛ࡞੒ Extension༻ͷϓϩύςΟ (exͳͲ) Λܦ༝ͯ͠ Extensionఆٛͨ͠΋ͷ͔ΒΞΫηε͢Ε͹ɺ ͦͷ··ͷϓϩύςΟ໊ͰΞΫηεͰ͖Δʂ ࢀߟهࣄɿSwiftͷExtensionΛϞμϯͰΦγϟϨʹ࣮૷͢Δ - Qiita URLɿhttps://qiita.com/motokiee/items/e8f07c11b88d692b2cc5

Slide 55

Slide 55 text

How To Get Safe Area struct Extension { let base: Base init (_ base: Base) { self.base = base } } protocol ExtensionCompatible { associatedtype Compatible static var ex: Extension.Type { get } var ex: Extension { get } } extension ExtensionCompatible { static var ex: Extension.Type { return Extension.self } var ex: Extension { return Extension(self) } } BaseExtension.swift ᶅ safeAreaInsetsΛsafeAreaInsetsͰऔಘ͢ΔͨΊͷUIViewͷExtensionΛ࡞੒

Slide 56

Slide 56 text

How To Get Safe Area ᶅ safeAreaInsetsΛsafeAreaInsetsͰऔಘ͢ΔͨΊͷUIViewͷExtensionΛ࡞੒ import UIKit extension UIView : ExtensionCompatible {} extension Extension where Base: UIView { var safeAreaInsets: UIEdgeInsets { guard #available (iOS 11, *) else { return .zero } return base.safeAreaInsets } } UIViewExtension.swift

Slide 57

Slide 57 text

How To Get Safe Area ᶅ safeAreaInsetsΛsafeAreaInsetsͰऔಘ͢ΔͨΊͷUIViewͷExtensionΛ࡞੒ import UIKit extension UIView : ExtensionCompatible {} extension Extension where Base: UIView { var safeAreaInsets: UIEdgeInsets { guard #available (iOS 11, *) else { return .zero } return base.safeAreaInsets } } UIViewExtension.swift ͜ΕͰϓϩύςΟ໊͕มΘͬͯ͠·͏໰୊΋ղܾʂ"

Slide 58

Slide 58 text

How To Get Safe Area import UIKit class ViewController: UIViewController { // ͜͜ͰsafeAreaInsets͕ॳΊͯ֬ఆ͢Δ override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() let safeAreaInsets = view.ex.safeAreaInsets print("safeAreaInsets: \(safeAreaInsets)") } } ViewController.swift ᶅ safeAreaInsetsΛsafeAreaInsetsͰऔಘ͢ΔͨΊͷUIViewͷExtensionΛ࡞੒

Slide 59

Slide 59 text

How To Detect Change Safe Area • iOS11͔Β͸ηʔϑΤϦΞͷมԽΛײ஌͢ΔͨΊʹUIViewʹ open func safeAreaInsetsDidChange() ͕ɺUIViewController ʹ open func viewSafeAreaInsetsDidChange() ͕௥Ճ͞Εͯ ͍Δ • ͦΕͧΕɺΦʔόʔϥΠυ͢Δ͜ͱͰɺϝιου಺Ͱηʔϑ ΤϦΞͷมԽΛײ஌Ͱ͖Δ • มԽ͸ݕ஌Ͱ͖Δ͕ɺҾ਺Ͱ safeAreaInsets ͸ड͚औΕͳ͍ ͨΊɺϝιου಺Ͱࣗ਎Ͱऔಘ͢Δඞཁ͕͋Δ

Slide 60

Slide 60 text

How To “TRUE” Support iPhone X API Roadmap • ༨ന෦෼ͷഎܠʹؾΛ͚ͭΑ͏ • ඞཁͳՕॴͰclipsToBoundsʹͳ͍ͬͯΔ͔ؾ Λ͚ͭΑ͏ • ίʔυϕʔεͷϏϡʔʹؾΛ͚ͭΑ͏ • ϑϧεΫϦʔϯදࣔͰͷΞεϖΫτൺ͸कΖ͏

Slide 61

Slide 61 text

Designing for iPhone X - Fall 2017 - Videos - Apple DeveloperΑΓ ίϯςϯπΛϑϧεΫϦʔϯදࣔ͢Δࡍʹ͸ΞεϖΫτൺΛอͪ·͠ΐ͏ iPhone8 (16:9) Λج४ʹ͢Δ৔߹ ࠨӈΛ੾Γऔͬͯදࣔ ্ԼΛԜ·ͤͯදࣔ or

Slide 62

Slide 62 text

Designing for iPhone X - Fall 2017 - Videos - Apple DeveloperΑΓ ίϯςϯπΛϑϧεΫϦʔϯදࣔ͢Δࡍʹ͸ΞεϖΫτൺΛอͪ·͠ΐ͏ iPhoneX (18:9) Λج४ʹ͢Δ৔߹ ্ԼΛ੾Γऔͬͯදࣔ ࠨӈΛԜ·ͤͯදࣔ or

Slide 63

Slide 63 text

جຊతʹ͸ɺiPhone8ج४ͰӈଆͷύλʔϯΛ࠾༻͢Δ͜ͱ͕ଟ͍ iPhone8 (16:9) Λج४ʹ͢Δ৔߹ ࠨӈΛ੾Γऔͬͯදࣔ ্ԼΛԜ·ͤͯදࣔ or

Slide 64

Slide 64 text

͔͠͠ɺ͜͜Ͱ໰୊͕

Slide 65

Slide 65 text

Safe Area Preview API Roadmap J1IPOF9 J1IPOF 1PSUSBJU -BOETDBQF എܠ৭෇͖ͷϥϕϧΛSafeAreaʹදࣔ͢ΔΑ͏ʹ੍໿Λ௥Ճ࣮ͯ͠ߦͨ͠৔߹

Slide 66

Slide 66 text

Safe Area Preview API Roadmap J1IPOF9 J1IPOF 1PSUSBJU -BOETDBQF എܠ৭෇͖ͷϥϕϧΛSafeAreaʹදࣔ͢ΔΑ͏ʹ੍໿Λ௥Ճ࣮ͯ͠ߦͨ͠৔߹

Slide 67

Slide 67 text

Safe Area Preview API Roadmap J1IPOF9 J1IPOF 1PSUSBJU -BOETDBQF എܠ৭෇͖ͷϥϕϧΛSafeAreaʹදࣔ͢ΔΑ͏ʹ੍໿Λ௥Ճ࣮ͯ͠ߦͨ͠৔߹ ఈ͕੾ΕͪΌͬͯΔΜͰ͚͢Ͳ…

Slide 68

Slide 68 text

How To Support Fullscreen API Roadmap • Bottomͷ੍໿Λ࣍ͷΑ͏ʹมߋ͠·͠ΐ͏ Portraitͷͱ͖

Slide 69

Slide 69 text

How To Support Fullscreen API Roadmap • Bottomͷ੍໿Λ࣍ͷΑ͏ʹมߋ͠·͠ΐ͏ Portraitͷͱ͖

Slide 70

Slide 70 text

How To Support Fullscreen API Roadmap • Bottomͷ੍໿Λ࣍ͷΑ͏ʹมߋ͠·͠ΐ͏ Landscapeͷͱ͖

Slide 71

Slide 71 text

How To Support Fullscreen API Roadmap • Bottomͷ੍໿Λ࣍ͷΑ͏ʹมߋ͠·͠ΐ͏ Landscapeͷͱ͖

Slide 72

Slide 72 text

How To Support Fullscreen ͜ΕͰແࣄʹϑϧεΫϦʔϯදࣔ׬ྃʂ

Slide 73

Slide 73 text

How To Support Fullscreen ͜ΕͰແࣄʹϑϧεΫϦʔϯදࣔ׬ྃʂ

Slide 74

Slide 74 text

How To Support Fullscreen Home Indicator ͕अຐͳΜͰ͚͢Ͳ…

Slide 75

Slide 75 text

How To Support Fullscreen • Home Indicator ͸ඇදࣔʹͰ͖Δ ‣ iOS11͔Β͸UIViewControllerͷΦʔόʔϥΠυϝιο υͱͯ͠ɺ༻ҙ͞Ε͍ͯΔ import UIKit class ViewController: UIViewController { private var isHiddenHomeIndicator: Bool = true override func viewDidLoad() { super.viewDidLoad() // HomeIndicatorͷදࣔΛߋ৽͢ΔͨΊͷϝιου if #available(iOS 11, *) { setNeedsUpdateOfHomeIndicatorAutoHidden() } } @available(iOS 11, *) override func prefersHomeIndicatorAutoHidden() -> Bool { return isHiddenHomeIndicator } } UIViewController.swift

Slide 76

Slide 76 text

How To Support Fullscreen Preview

Slide 77

Slide 77 text

How To Support Fullscreen ͜ΕͰຊ౰ʹϑϧεΫϦʔϯදࣔ׬ྃʂ"

Slide 78

Slide 78 text

Agenda • What’s iPhone X • What’s Safe Area • How To “TRUE” Support iPhone X • Support iPhone X in 2018 • Summary

Slide 79

Slide 79 text

࣌͸2018೥9݄12೔

Slide 80

Slide 80 text

New iPhoneX

Slide 81

Slide 81 text

࣌͸2018೥10݄30೔

Slide 82

Slide 82 text

New iPad Pro

Slide 83

Slide 83 text

New iPad Pro Good bye, home buttonʂ

Slide 84

Slide 84 text

Support iPhone X in 2018 • isIphoneX͸΋͏࢖͑ͳ͍

Slide 85

Slide 85 text

iOS Devices With Safe Area 2017೥11݄࣌఺Ͱ͸ηʔϑΤϦΞΛ࣋ͬͨiOS୺຤͸iPhone X ͚ͩͰ͕ͨ͠… 2018೥11݄ݱࡏɺηʔϑΤϦΞΛ࣋ͬͨiOS୺຤͸ҎԼͷ5छ ྨʹͳΓ·ͨ͠ ‣ iPhone X ‣ iPhone XS ‣ iPhone XS Max ‣ iPhone XR ‣ iPad Pro (mid2018)

Slide 86

Slide 86 text

iOS Devices With Safe Area 2017೥11݄࣌఺Ͱ͸ηʔϑΤϦΞΛ࣋ͬͨiOS୺຤͸iPhone X ͚ͩͰ͕ͨ͠… 2018೥11݄ݱࡏɺηʔϑΤϦΞΛ࣋ͬͨiOS୺຤͸ҎԼͷ5छ ྨʹͳΓ·ͨ͠ ‣ iPhone X (5.8 inch) ‣ iPhone XS (5.8 inch) ‣ iPhone XS Max (6.5 inch) ‣ iPhone XR (6.1 inch) ‣ iPad Pro (mid2018) (11 inch, 12.9 inch)

Slide 87

Slide 87 text

Good Bye isIphoneX ͍··Ͱ͸ Ekhoo/Device ͳͲͰ୺຤όʔδϣϯ΍ը໘αΠζΛ࢖ͬͯ isIphoneX: Bool ͳΔ൑ఆΛߦ͏͜ͱ͕Ͱ͖͕ͨɺ΋͸΍͜Ε·Ͱ Ekhoo/Device https://github.com/Ekhoo/Device

Slide 88

Slide 88 text

Support iPhone X in 2018 • isIphoneX͸΋͏࢖͑ͳ͍ • iPadͰ͋ͬͯ΋ηʔϑΤϦΞΛߟྀ͢Δඞཁ ͕͋Δ

Slide 89

Slide 89 text

Support New iPad Pro ͍··Ͱ͸iPadͰ͸ߟྀ͠ͳͯ͘Α͔ͬͨηʔϑΤϦΞ ͕ͩɺࠓճͷ৽ܕiPad Pro͔Β͸ߟྀ͕ඞཁ

Slide 90

Slide 90 text

Support New iPad Pro Xcode 10.1Ҏ߱ͰϏϧυ͠ͳ͍ͱɺ৽ܕiPad Proͷ ηʔϑΤϦΞ͸֬ೝͰ͖ͳ͍

Slide 91

Slide 91 text

Support iPhone X in 2018 • isIphoneX͸΋͏࢖͑ͳ͍ • iPadͰ͋ͬͯ΋ηʔϑΤϦΞΛߟྀ͢Δඞཁ ͕͋Δ • ͜Ε͔Βͷ͜ͱΛߟ͑Α͏

Slide 92

Slide 92 text

Think About The Future • ࠓ೥ͷ৽ܕiOS୺຤ͷൃදΛݟΔݶΓɺࠓޙൃද͞ΕΔ ୺຤͸͢΂ͯηʔϑΤϦΞΛ͍࣋ͬͯΔՄೳੑ͕͋Δ • ηʔϑΤϦΞΛߟྀͨ͠࡞Γʹ͓͚ͯ͠͹ɺͲΜͳ୺຤ ͕དྷͯ΋ා͘ͳ͍ͷͰɺීஈ͔ΒηʔϑΤϦΞΛҙࣝ͠ ͨΞϓϦ։ൃΛ৺͕͚Δ

Slide 93

Slide 93 text

Agenda • What’s iPhone X • What’s Safe Area • How To “TRUE” Support iPhone X • Support iPhone X in 2018 • Summary

Slide 94

Slide 94 text

Summary • iPhone XʹରԠ͢Δʹ͸ηʔϑΤϦΞͷ֓೦͕ॏཁʹͳ Δ • ηʔϑΤϦΞ಺Ͱ׬݁͢Δ͚ͩͰ͸iPhoneXରԠʹ͸ͳ Βͳ͍ • ԜΈΛ੾Δ͚ͩͰͳ͘ɺԜΈΛ࢖ͬͯɺԜΈΛ׆͔ͨ͠ ࣮૷͕ඞཁ • ීஈ͔ΒηʔϑΤϦΞΛҙࣝͨ͠։ൃΛ৺͕͚Δ

Slide 95

Slide 95 text

Summary ʲਵ࣌ߋ৽ʳiPhoneX׬શରԠϚχϡΞϧ - Qiita
 https://qiita.com/cokaholic/items/6a8ee3852c8ed28ea2aa

Slide 96

Slide 96 text

Thank youʂ