Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Widget Suggestions 対応と
ヤフーの新OS対応

Widget Suggestions 対応と
ヤフーの新OS対応

ヤフー × LINE iOS Meetup
https://line.connpass.com/event/228428/
#iOS_meetup

Tatsuya Tanaka

November 02, 2021
Tweet

More Decks by Tatsuya Tanaka

Other Decks in Programming

Transcript

  1. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    Widget SuggestionsରԠͱ

    Ϡϑʔͷ৽OSରԠ
    Tatsuya Tanaka / ాத ୡ໵
    Ϡϑʔ × LINE iOS Meetup #iOS_meetup

    View full-size slide

  2. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    ాத ୡ໵ / ͨͳͨͭ
    • Ϡϑʔגࣜձࣾ


    ɹɾiOSΞϓϦͷԣஅత։ൃ΍ٕज़త՝୊ͷղܾ


    ɹɾiOSΞϓϦࠇଳ
    @tattn
    @tanakasan2525
    @tattn
    ※ࠇଳ੍౓ͱ͸ɿ֤ྖҬʹ͓͍ͯಥग़ͨ͠ઐ໳ੑΛ࣋ͭࣾһΛࠇଳͱͯ͠೚໋͠ɺࣾ಺֎ʹ͓͚Δ׆ಈΛձࣾͱͯ͠ࢧԉ͢Δ੍౓

    View full-size slide

  3. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    iOSDCͰ΢ΟδΣοτͷ࿩Λ͠·ͨ͠
    IUUQTGPSUFFKQJPTEDKBQBOQSPQPTBMDBGDDBBCCBDBBD
    ಈը
    εϥΠυ

    View full-size slide

  4. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    ͜ͷ෦෼ʹ͍ͭͯ࿩ͤͳ͔ͬͨ͜ͱΛ࿩͠·͢

    View full-size slide

  5. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    γεςϜͱͷ࿈ܞ

    View full-size slide

  6. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    γεςϜʹΑΔΞϓϦͷϨίϝϯυ
    Siri͔ΒͷఏҊͱͯ͠ΞϓϦͷػೳૌٻ͕Ͱ͖Δ
    ϩοΫը໘ͰͷSiri͔ΒͷఏҊ
    ΫΠοΫϝϞ (Quick Note)
    εϙοτϥΠτͰͷ

    Siri͔ΒͷఏҊ

    View full-size slide

  7. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    ΢ΟδΣοτͱγεςϜͷ࿈ܞ
    Smart Rotate
    ಛఆͷ࣌ؒʹ

    εϚʔτελοΫΛճసͤͯ͞

    ΢ΟδΣοτΛදࣔ͢Δ
    (iOS 14)

    View full-size slide

  8. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    ΢ΟδΣοτͱγεςϜͷ࿈ܞ
    Widget Suggestions
    εϚʔτελοΫʹ

    ઃஔ͞Ε͍ͯͳ͍΢ΟδΣοτΛ

    ͓͢͢Ίͱͯ͠Ծઃஔ͢Δ
    (iOS 15)

    View full-size slide

  9. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    ΢ΟδΣοτͱγεςϜͷ࿈ܞ
    Widget Suggestions
    (iOS 15)
    Smart Rotate
    (iOS 14)
    "EEJOUFMMJHFODFUPZPVSXJEHFUT88%$7JEFPT
    IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED
    Apple͸͜ΕΒΛIntelligence (஌ੑ) ͱݺΜͰ͍Δ

    View full-size slide

  10. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    Widget Suggestions

    View full-size slide

  11. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    Widget Suggestions (΢ΟδΣοτͷఏҊ)
    εϚʔτελοΫʹઃஔ͞Ε͍ͯͳ͍΢ΟδΣοτΛ

    ͓͢͢Ίͱͯ͠Ծઃஔ͢Δ
    ΢ΟδΣοτͷఏҊʹΑͬͯදࣔ͞Εͨ΢ΟδΣοτʹ͸

    ಛผͳϝχϡʔ͕௥Ճ͞ΕΔ

    View full-size slide

  12. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    Widget Suggestionsͷ࣮૷ํ๏
    ࣮૷ํ๏͸2ͭ
    ɾINRelevantShortcut

    ɾINInteraction

    View full-size slide

  13. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    INInteraction
    Intent is eligible for Siri SuggestionsͷνΣοΫ͕ඞਢ

    View full-size slide

  14. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    INInteraction
    let intent = ConfigurationIntent()


    intent.ϓϩύςΟ = දࣔʹඞཁͳ஋Λઃఆ


    let interaction = INInteraction(intent: intent, response: nil)


    interaction.donate { error in }
    Ҏ্ɺͱͯ΋؆୯ʂ

    γεςϜֶ͕शΛͯ͠ɺద੾ͳλΠϛϯάͰαδΣετͯ͘͠ΕΔ

    View full-size slide

  15. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    INInteraction
    ←ͷΑ͏ʹγϣʔτΧοτͷఏҊ΍

    Siri Watch FaceͳͲʹදࣔ͞ΕΔͷͰ஫ҙ

    (ඞཁʹԠͯ͡ϧʔςΟϯάͷ࣮૷͕ඞཁ)

    View full-size slide

  16. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    INRelevantShortcut (IntentCon
    fi
    guration)
    let intent = ConfigurationIntent()


    intent.ϓϩύςΟ = දࣔʹඞཁͳ஋Λઃఆ


    let shortcut = INShortcut(intent: intent)


    let relevantShortcut = INRelevantShortcut(shortcut: shortcut)


    relevantShortcut.shortcutRole = .information


    relevantShortcut.widgetKind = "AwesomeWidget" // ର৅ͷ΢ΟδΣοτͷKindΛઃఆ͢Δ


    // ۭͷ഑ྻʹͨ͠৔߹͸ΞϓϦͷར༻ঢ়گ͔ΒγεςϜ͕Α͠ͳʹαδΣετλΠϛϯάΛܾΊΔ


    relevantShortcut.relevanceProviders = [


    INDateRelevanceProvider(start: Date(), end: Date(timeIntervalSinceNow: 60 * 30)),


    ]


    INRelevantShortcutStore.default.setRelevantShortcuts([relevantShortcut]) { error in }
    ͲͷظؒʹαδΣετ͢Δ͔Λઃఆ͢Δ

    View full-size slide

  17. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    INRelevantShortcut (StaticCon
    fi
    guration)
    let activity = NSUserActivity(activityType: "sample.WidgetSuggestions.suggest")


    activity.title = "Widget suggestions app"


    let shortcut = INShortcut(userActivity: activity)


    let relevantShortcut = INRelevantShortcut(shortcut: shortcut)
    NSUserActivity͔ΒINShortcutΛͭ͘Δ

    View full-size slide

  18. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    INRelevanceProviderͷ੍໿
    let relevantShortcut = INRelevantShortcut(shortcut: shortcut)


    relevantShortcut.relevanceProviders = [


    INDateRelevanceProvider(start: Date(), end: Date(timeIntervalSinceNow: 60 * 30)),


    ]
    ↓ଞʹ΋ศརͦ͏ͳ΋ͷ͕ఏڙ͞Ε͍ͯ·͕͢ɺ

    ͜ΕΒ͸WatchͷͨΊͷػೳͰɺ΢ΟδΣοτʹ͸࢖͑·ͤΜɻ

    ΞϯυΩϡϝϯτͰWWDCͷηογϣϯͰͷΈݴٴ͞Ε͍ͯΔͷͰ஫ҙ͠·͠ΐ͏
    INDailyRoutineRelevanceProvider(situation: .morning),


    INLocationRelevanceProvider(region: CLCircularRegion(


    center: CLLocationCoordinate2D(latitude: 35.652832, longitude: 139.839478),


    radius: 1000,


    identifier: "Tokyo, Japan")


    )
    IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED

    View full-size slide

  19. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    Ϡϑʔͷ৽OSରԠ

    View full-size slide

  20. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    ࣾ಺WWDCใࠂձ
    ֤෼໺ͷઐ໳Ո΍

    ৽ػೳʹڵຯͷ͋ΔΤϯδχΞ͕

    ര଎Ͱࣾ಺ใࠂձΛ։࠵


    (σϞͳͲΛަ࣮͑ͨફతͳ಺༰)
    ࣌ؒ τϐοΫ
    ɹ 4XJGU$PODVSSFODZ
    ɹ 6*,JU
    ɹ 4XJGU6*
    ɹ 8JEHFU
    ɹ 4IBSF1MBZ
    ɹ 4BGBSJ&YUFOTJPO
    ɹ 9DPEF
    ɹ ௨஌
    ɹ $PSF.-$SFBUF.-
    ɹ 7JTJPO
    ɹ ηΩϡϦςΟϩάΠϯ
    ɹ ϓϥΠόγʔ
    ɹ "QQ4UPSF
    ࠓ೥͸3࣌ؒʂʂ

    View full-size slide

  21. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    #ios15νϟϯωϧ / ԣஅ։ൃνʔϜ
    φϨοδ͕νʔϜͰด͡ͳ͍Α͏ʹ

    #ios15νϟϯωϧͰࢼͨ͜͠ͱ΍٧·ͬͨ͜ͱͳͲԣల։


    ͞Βʹ৽ػೳͷ։ൃϦιʔεΛิ͏ͨΊɺ

    ԣஅ։ൃνʔϜ͕αϯϓϧίʔυΛ࡞੒ͨ͠Γɺ

    ϖΞϓϩͳͲͰ։ൃͷαϙʔτΛ͢Δମ੍

    View full-size slide

  22. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    ·ͱΊ

    View full-size slide

  23. ©︎
    2021 Yahoo Japan Corporation All rights reserved.
    ·ͱΊ
    ɾγεςϜͱͷ࿈ܞ͸େ੾Ͱ͢


    ɾWidget Suggestions͸ҙ֎ͱ؆୯ʹରԠͰ͖·͢


    ɾͨͩ͠ɺϢʔβʔ͕ݟͨ͘ͳ͍৘ใ͸දࣔ͠ͳ͍౳ͷ

    ɹɹΠϯΫϧʔγϒσβΠϯͷҙࣝ͸େࣄ

    View full-size slide