$30 off During Our Annual Pro Sale. View Details »

Android Bazaar and Conference 2021 Spring

Android Bazaar and Conference 2021 Spring

2021年6月21日に開催された「Android Bazaar and Conference 2021 Spring」の発表資料です。

発表動画
https://www.youtube.com/watch?v=DfJ5CNdNR3k&t=1715s

ARIYAMA Keiji

June 20, 2021
Tweet

More Decks by ARIYAMA Keiji

Other Decks in Technology

Transcript

  1. ༗ࢁɹܓೋ

    "OESPJE#B[BBSBOE$POGFSFODF4QSJOH

    ઀৮֬ೝ"1*

    &YQPTVSF8JOEPXNPEF΁ͷରԠʹ
    ޲͚ͨݕ౼ʹ͍ͭͯ

    View Slide

  2. ໨࣍
    w ͸͡Ίʹ
    w &YQPTVSF/PUJ
    fi
    DBUJPOT"1*ͱ͸
    w ઀৮֬ೝΞϓϦʮ$0$0"ʯͷ&YQPTVSF8JOEPXNPEFରԠ
    w 9BNBSJO޲͚&/"1*ϥΠϒϥϦ$BQQVDDJOP
    w &YQPTVSF8JOEPXNPEFҠߦʹ͋ͨͬͯͷ஫ҙ

    https://speakerdeck.com/keiji/android-bazaar-and-conference-2021-spring

    View Slide

  3. C-LIS CO., LTD.

    ༗ࢁܓೋʢ"3*:".",FJKJʣ
    $-*4$0 -5%
    Photo : Koji MORIGUCHI (MORIGCHOWDER)
    "OESPJEΞϓϦ։ൃνϣοτσΩϧ
    ػցֶश͸ͪΐͬͱ΍ͬͨ͜ͱ͋Γ·͢
    ઀৮֬ೝΞϓϦ$0$0"044ίϥϘϨʔλʔ
    https://speakerdeck.com/keiji/android-bazaar-and-conference-2021-spring

    View Slide

  4. ໔੹ࣄ߲%JTDMBJNFS

    ຊࢿྉͷ಺༰͸ɺ༗ࢁܓೋͷݸਓͷݟղͰ͋Γɺ

    ॴଐ·ͨ͸ؔ༩͢Δ૊৫Λ୅ද͢Δ΋ͷͰ͸͋Γ·ͤΜɻ
    https://speakerdeck.com/keiji/android-bazaar-and-conference-2021-spring

    View Slide

  5. αϙʔτ4VQQPSU

    https://blog.keiji.dev/2021/06/abc2021s
    ຊࢿྉͷ಺༰ʹؔ͢Δ͓໰͍߹Θͤɾαϙʔτ͸ɺ

    ࣍ͷαΠτͰ͝Ҋ಺͠·͢ɻ

    View Slide


  6. ઀৮֬ೝ"1*ͱ͸

    View Slide

  7. &YQPTVSF/PUJ
    fi
    DBUJPOT"1*
    &YQPTVSF/PUJ
    fi
    DBUJPOTʢ઀৮֬ೝʣ"1*͸ɺεϚʔτϑΥϯͷ#MVFUPPUIΛ
    ར༻ͯ͠ɺਓͱਓ͕઀৮ͨ͜͠ͱΛݕ஌ɺه࿥͢ΔͨΊͷ࢓૊Έɻ
    (PPHMFͱ"QQMF͕ڞಉͰ։ൃ͍ͯ͠Δ͜ͱ͔Βɺ("&/ʢ(PPHMF"QQMF
    &YQPTVSF/PUJ
    fi
    DBUJPOʣͱݺ͹ΕΔ͜ͱ΋͋Δɻ
    &YQPTVSF/PUJ
    fi
    DBUJPOT"1*ʢ&/"1*ʣΛ࢖ͬͨΞϓϦΛʮ઀৮֬ೝΞϓϦʯ
    ͱݴ͏ɻ
    ઀৮֬ೝΞϓϦͷར༻ऀ͸ɺར༻ऀ͕৽ܕίϩφ΢Πϧεʢ$07*%ʣײછ
    ঱ͷཅੑ͕֬ఆͨ͠ͱ͖ʹɺҰఆظؒ಺ʢײછྗΛ࣋ͭͱ͞ΕΔظؒʣʹ઀৮͠
    ͨଞͷ઀৮֬ೝΞϓϦͷར༻ऀʹಗ໊Ͱ௨஌Ͱ͖Δɻ

    View Slide

  8. ઀৮Λه࿥͢Δ࢓૊Έ
    &/"1*͸ɺಈ࡞͢Δ୺຤ͷ#MVFUPPUIΛ࢖ͬͯ৘ใΛൃ৴ɺ·ͨ͸ଞͷ୺຤͕
    ൃ৴ͨ͠৘ใΛड৴ͯ͠ه࿥͢Δɻ

    View Slide

  9. ൃ৴͞Ε͍ͯΔ৘ใ

    View Slide

  10. 4FSWJDF%BUBηΫγϣϯ

    17 16 6f fd 29 ac 0d 91 7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9
    Rolling Proximity Identi
    fi
    er


    16 bytes
    Encrypted

    Metadata


    4 bytes
    Length


    1 byte
    Type


    1 byte
    UUID


    1 byte
    23 0xfd6f
    16
    https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti
    fi
    cation-BluetoothSpeci
    fi
    cationv1.2.pdf

    View Slide

  11. 3PMMJOH1SPYJNJUZ*EFOUJ
    fi
    FSʢ31*ʣ

    17 16 6f fd 29 ac 0d 91 7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9
    Rolling Proximity Identi
    fi
    er


    16 bytes
    Encrypted
    fi
    cation-BluetoothSpeci
    fi
    cationv1.2.pdf

    View Slide

  12. 3PMMJOH1SPYJNJUZ*EFOUJ
    fi
    FS͸มԽ͢Δ

    View Slide

  13. 31*͸5&,͔Βੜ੒͞ΕΔ
    5FNQPSBSZ&YQPTVSF,FZʢ5&,ʣ
    Ұఆ࣌ؒͰมߋ͞ΕΔCZUFͷϥϯμϜͳ஋ɻݱࡏͷ࢓༷Ͱ͸࣌ؒʹҰճม
    ߋ͞ΕΔͨΊɺʮ೔࣍ݤʯͱݺ͹ΕΔ͜ͱ΋͋Δɻ
    5&,ͷ༗ޮظؒ i
    ʹੜ੒͞ΕΔ31*͸ɺ࣍ͷࣜͰද͞ΕΔɻ

    TEK → RPIͷܭࢉ͸͔ΜͨΜ
    RPI → TEKΛܭࢉ͢Δͷ͸Ή͔͍ͣ͠
    https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti
    fi
    cation-CryptographySpeci
    fi
    cationv1.2.pdf
    RPIKi ← HKDF(teki, NULL, UTF8(“EN-RPIK”), 16)
    RPIi,j ← AES128(RPIKi, PaddedDataj)
    ظؒ j
    ͷ৘ใؚ͕·ΕΔ

    View Slide

  14. ཅੑऀొ࿥
    ཅੑͱ൑ఆ͞Εͨར༻ऀ͕઀৮֬ೝΞϓϦͰཅੑऀొ࿥Λߦ͏ͱɺ઀৮֬ೝΞ
    ϓϦ͸ɺ&/"1*ʹΞΫηεͯ͠୺຤ʹه࿥͞Ε͍ͯΔ5&,Λऔಘͯ͠ɺײછྗ
    ͕͋Δͱ͞ΕΔظؒͷ΋ͷΛ਍அΩʔαʔόʔʹૹ৴ʢΞοϓϩʔυʣ͢Δɻ
    ˞୺຤ʹอଘ͞Ε͍ͯΔ5&,͸࠷େ೔෼ɻ

    ਍அΩʔαʔόʔ
    ઀৮֬ೝΞϓϦ
    TEK
    TEK
    TEK
    TEK
    TEK
    TEK

    View Slide

  15. ਍அΩʔΛ഑෍
    ਍அΩʔαʔόʔ͸ཅੑऀͷ5&,Λ·ͱΊͯిࢠॺ໊Λͯ͠ʮ਍அΩʔʢ%JBHOPTJT
    ,FZʣʯΛ࡞੒ɺެ։͢Δɻ
    ઀৮֬ೝΞϓϦ͸ɺҰఆ࣌ؒ͝ͱʹ਍அΩʔαʔόʔʹ਍அΩʔΛϦΫΤετɾμ΢ϯ
    ϩʔυ͢Δɻ

    ਍அΩʔαʔόʔ
    ઀৮֬ೝΞϓϦ
    TEK
    TEK
    TEK
    TEK
    TEK
    TEK
    ిࢠॺ໊
    ਍அΩʔ
    ઀৮֬ೝΞϓϦ
    ઀৮֬ೝΞϓϦ

    View Slide

  16. ઀৮֬ೝ
    ઀৮֬ೝΞϓϦ͸ɺऔಘͨ͠਍அΩʔΛ઀৮ͱΈͳ͢৚݅ͱͱ΋ʹ&/"1*ʹೖ
    ྗ͢Δɻ
    &/"1*͸ɺ਍அΩʔʹؚ·ΕΔ5&,͔Βɺظؒ಺ʹଘࡏ͢Δ31*Λܭࢉͯ͠ɺ
    ઃఆ͞Εͨ৚݅ʹ߹͏઀৮͕ه࿥͞Ε͍ͯΔ͔Λ֬ೝ͢Δɻ
    ৚݅ʹ߹͏઀৮͕ه࿥͞Ε͍ͯΕ͹ʮ઀৮͋Γʯͱͯ͠઀৮֬ೝΞϓϦʹ݁Ռ
    Λฦ͢ɻ
    ઀৮֬ೝΞϓϦ͸ɺཅੑऀͱͷೱް઀৮ͱͯ͠ར༻ऀʹදࣔ͢Δɻ

    View Slide

  17. "exposure_summary": {


    "AttenuationDurationsInMinutes": [


    1800,


    480,


    0


    ],


    "DaysSinceLastExposure": 0,


    "MatchedKeyCount": 2,


    "MaximumRiskScore": 255,


    "SummationRiskScore": 54560


    },






    &YQPTVSF4VNNBSZ

    &YQPTVSF*OGPSNBUJPO
    https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V1)
    "exposure_informations": [


    {


    "AttenuationDurationsInMinutes": [


    1436,


    0,


    0


    ],


    "AttenuationValue": 26,


    "DateMillisSinceEpoch": 1622851200000,


    "Duration": 30.0,


    "TotalRiskScore": 256,


    "TransmissionRiskLevel": 4


    },



    https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Legacy-v1)

    View Slide


  18. View Slide


  19. #MVFUPPUIͷి೾ڧ౓΍ड৴ײ౓
    ୺຤ؒͷࠩҟ

    View Slide

  20. &ODSZQUFE.FUBEBUB

    17 16 6f fd 29 ac 0d 91 7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9
    Rolling Proximity Identi

    Metadata


    4 bytes
    Length
    fi
    cation-BluetoothSpeci
    fi
    cationv1.2.pdf

    View Slide

  21. &ODSZQUFE.FUBEBUB

    ʠ"TTPDJBUFE&ODSZQUFE.FUBEBUB "&.
    Š"
    QSJWBDZQSFTFSWJOHFODSZQUFENFUBEBUBUIBUTIBMM
    CFVTFEUPDBSSZQSPUPDPMWFSTJPOJOHBOEUSBOTNJU
    5Y
    QPXFSGPSCFUUFSEJTUBODFBQQSPYJNBUJPO
    5IF"TTPDJBUFE&ODSZQUFE.FUBEBUBDIBOHFT
    BCPVUFWFSZNJOVUFT BUUIFTBNFDBEFODFBT
    UIF3PMMJOH1SPYJNJUZ*EFOUJ
    fi
    FS UPQSFWFOUXJSFMFTT
    USBDLJOHPGUIFEFWJDFʡ
    xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
    xxxx xx xx
    Major
    Minor
    35 f6 0e b9
    Reserved


    1 byte
    Transmit power level


    1 byte
    Versioning


    1 byte


    LSB
    fi
    rst
    Reserved


    1 byte
    Decrypt AES-CTR
    Reserved
    https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti
    fi
    cation-BluetoothSpeci
    fi
    cationv1.2.pdf


    https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti
    fi
    cation-CryptographySpeci
    fi
    cationv1.2.pdf

    View Slide

  22. 5SBOTNJUQPXFSMFWFMʢ59@QPXFSʣͱ344*DPSSFDUJPO
    σόΠε͝ͱͷి೾ಛੑʹΑΓڑ཭ͷܭଌޡࠩΛվળ͢Δ࢓૊Έɻ
    ൃ৴ଆσόΠε͸ɺൃ৴͢Δ৘ใʹɺ͋Β͔͡Ίܭଌͯ͋͠Δʮૹ৴ి೾ڧ౓
    ͷิਖ਼஋ʢ5SBOTNJTTJPOQPXFSMFWFMʣʯΛ෇Ճ͢Δɻ
    ·ͨड৴ଆσόΠε΋ɺ৘ใΛड৴ͨ͠ࡍʹ344*ʹ͍ͭͯܭଌࡁΈͷิਖ਼஋Λ
    ద༻͢Δ͜ͱͰɺڑ཭ͷܭଌޡࠩΛվળ͢Δɻ
    ֤σόΠεͷิਖ਼஋͸ެ։͞Ε͍ͯΔɻ
    IUUQTEFWFMPQFSTHPPHMFDPNBOESPJEFYQPTVSFOPUJ
    fi
    DBUJPOT
    fi
    MFTFODBMJCSBUJPODTW
    (PPHMF͸ɺ୺຤ϝʔΧʔʹิਖ਼஋ͷܭଌͱఏڙΛݺͼ͔͚͍ͯΔɻ

    https://developers.google.com/android/exposure-noti
    fi
    cations/ble-attenuation-procedure

    View Slide


  23. &/"1*ͷόʔδϣϯ

    View Slide

  24. &/"1*ͷΞοϓσʔτ
    &/"1*͸ɺ(PPHMFͱ"QQMF͕ڞಉͰ։ൃ͍ͯ͠Δɻ(PPHMFͱ"QQMF͸&/
    "1*ΛΞοϓσʔτ͢Δ͜ͱ͕͋Δɻ
    Ξοϓσʔτ͸(PPHMFͱ"QQMF͕ߦ͍ɺ઀৮֬ೝΞϓϦଆ͔Β͸੍ޚ͸Ͱ͖ͳ
    ͍ɻ
    (PPHMFͱ"QQMFͰΞοϓσʔτઓུ͕ҟͳΔɻ

    View Slide

  25. &/"1*ͷΞοϓσʔτઓུ
    (PPHMFʢ"OESPJEʣ
    "1*͸ɺϓϥοτϑΥʔϜ͔Β෼཭͞Εͨ(PPHMF.PCJMF4FSWJDFTʢ(.4ʣͷ
    όʔδϣϯʹඥ෇͘ɻ"OESPJEͷόʔδϣϯʹґଘ͠ͳ͍
    "QQMFʢJ04ʣ
    J04ͷόʔδϣϯʹඥ෇͘ɻݹ͍όʔδϣϯͷJ04Ͱ͸ɺͦͷ࣌఺ͰରԠ͍ͯ͠
    Δ"1*͔͠࢖͑ͳ͍ɻ

    View Slide

  26. όʔδϣϯͷมભ
    "OESPJE
    v1.5 earlier


    v1.5 - July 2020


    v1.6 - August 2020


    v1.7 - September 2020


    v1.7.2 - October 2020


    v1.8 - January 2021

    J04
    iOS 13.5 - May 2020


    iOS 13.6 - July 2020


    iOS 13.7 - September 2020


    iOS 12.5 - December 2020


    iOS 14.4 - January 2021

    View Slide

  27. J04
    iOS 13.5 - May 2020


    iOS 13.6 - July 2020


    iOS 13.7 - September 2020


    iOS 12.5 - December 2020


    iOS 14.4 - January 2021
    "OESPJE
    v1.5 earlier


    v1.5 - July 2020


    v1.6 - August 2020


    v1.7 - September 2020


    v1.7.2 - October 2020


    v1.8 - January 2021
    ೥݄ͷΞοϓσʔτͰ&YQPTVSF8JOEPX͕ಋೖ

    ExposureSummary

    ExposureInformation
    DailySummary


    ExposureWindow

    View Slide

  28. "exposure_summary": {


    "AttenuationDurationsInMinutes": [


    1800,


    480,


    0


    ],


    "DaysSinceLastExposure": 0,


    "MatchedKeyCount": 2,


    "MaximumRiskScore": 255,


    "SummationRiskScore": 54560


    },






    &YQPTVSF4VNNBSZ

    &YQPTVSF*OGPSNBUJPO
    https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V1)
    "exposure_informations": [


    {


    "AttenuationDurationsInMinutes": [


    1436,


    0,


    0


    ],


    "AttenuationValue": 26,


    "DateMillisSinceEpoch": 1622851200000,


    "Duration": 30.0,


    "TotalRiskScore": 256,


    "TransmissionRiskLevel": 4


    },



    https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Legacy-v1)

    View Slide

  29. "daily_summaries": [


    {


    "DaysSinceEpoch": 1622937600000,


    "DaySummary": {


    "MaximumScore": 1860.0,


    "ScoreSum": 51660.0,


    "WeightedDurationSum": 51660.0


    },


    "ConfirmedClinicalDiagnosisSummary": null,


    "ConfirmedTestSummary": {


    "MaximumScore": 1860.0,


    "ScoreSum": 51660.0,


    "WeightedDurationSum": 51660.0


    },


    "RecursiveSummary": null,


    "SelfReportedSummary": null


    },

    %BJMZ4VNNBSZ

    &YQPTVSF8JOEPX
    "exposure_windows": [


    {


    "CalibrationConfidence": 3,


    "DateMillisSinceEpoch": 1622937600000,


    "Infectiousness": 1,


    "ReportType": 1,


    "ScanInstances": [


    {


    "MinAttenuationDb": 24,


    "SecondsSinceLastScan": 300,


    "TypicalAttenuationDb": 25


    },


    {


    "MinAttenuationDb": 24,


    "SecondsSinceLastScan": 240,


    "TypicalAttenuationDb": 25


    },





    https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V2)
    https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Exposure-Window-mode)
    ؒҧ͍

    View Slide

  30. J04
    iOS 13.5 - May 2020


    iOS 13.6 - July 2020


    iOS 13.7 - September 2020


    iOS 12.5 - December 2020


    iOS 14.4 - January 2021
    "OESPJE
    v1.5 earlier


    v1.5 - July 2020


    v1.6 - August 2020


    v1.7 - September 2020


    v1.7.2 - October 2020


    v1.8 - January 2021
    ϓϥοτϑΥʔϜͰ"1*ͷݺͼํ͕ҟͳΔ

    Version 2
    Version 1
    ExposureWindow mode
    Legacy v1 mode

    View Slide


  31. &/"1*Λ࢖ͬͨ

    ઀৮֬ೝΞϓϦͷ։ൃ

    View Slide

  32. &/"1*ͷอޢ
    ઀৮֬ೝΞϓϦ
    ࣄલʹ(PPHMF"QQMF͔ΒೝূΛड͚ͨূ໌ॻͰॺ໊౳Λͨ͠ΞϓϦέʔγϣ
    ϯɾόΠφϦʹݶఆͯ͠ɺ&/"1*΁ͷΞΫηε͕ڐՄ͞ΕΔɻ

    ਍அΩʔαʔόʔ
    ਍அΩʔ͸ɺ(PPHMF"QQMFʹొ࿥͞Εͨূ໌ॻͰॺ໊͞Ε͍ͯΔඞཁ͕͋Δ
    ઀৮֬ೝΞϓϦ͕ɺ&/"1*ʹ઀৮֬ೝΛϦΫΤετ͢Δͱɺ&/"1*͸਍அ
    Ωʔͷॺ໊Λ֬ೝͯ͠ɺݕূͰ͖ͨ৔߹ͷΈ઀৮֬ೝ͕ߦΘΕΔɻ

    View Slide


  33. &/"1*ͷσόοά

    View Slide

  34. "OESPJE
    (PPHMF͕ϗϫΠτϦετʹొ࿥ͨ͠(PPHMFΞΧ΢ϯτΛϓϥΠϚϦΞΧ΢ϯ
    τͯ͠αΠϯΠϯͨ͠୺຤͕ඞཁɻ

    View Slide

  35. σόοάઃఆ"OESPJE

    View Slide













  36. com.apple.developer.exposure-notification





    com.apple.developer.exposure-notification-test





    com.apple.developer.exposure-notification-test-skip-file-verification











    J04
    "QQMF͔ΒೝূΛड͚ͨ։ൃऀΞΧ΢ϯτͰൃߦͨ͠ಛผͳϓϩϏδϣχϯά
    ϓϩϑΝΠϧΛ࢖͏͜ͱͰσόοάϞʔυΛ༗ޮʹͨ͠ΞϓϦΛΠϯετʔϧ
    Ͱ͖Δɻ

    Entitlements.plist

    View Slide


  37. ઀৮֬ೝΞϓϦʮ$0$0"ʯͷ

    &YQPTVSF8JOEPXNPEFରԠ

    View Slide

  38. $0$0"͸9BNBSJOͰͰ͖͍ͯΔ
    ʠ9BNBSJO͸ɺ/&5Λ࢖༻ͯ͠ɺJ04ɺ"OESPJEɺ8JOEPXT޲͚ͷ࠷৽Ͱ
    ߴੑೳͳΞϓϦέʔγϣϯΛϏϧυ͢ΔͨΊͷΦʔϓϯιʔεͷϓϥοτ
    ϑΥʔϜͰ͢ɻʡ
    https://docs.microsoft.com/ja-jp/xamarin/get-started/what-is-xamarin


    7JTVBM4UVEJPͰ։ൃ
    ࢖༻ݴޠ͸$
    ϥΠϒϥϦɾύοέʔδ͸/V(FUΛ௨ͯ͡ར༻

    View Slide

  39. 9BNBSJO&YQPTVSF/PUJ
    fi
    DBUJPO
    9BNBSJOެࣜͷ&/"1*༻ͷϥΠϒϥϦɻ
    $0$0"ʢ೔ຊʣͱ4NJUUFTUPQQʢσϯϚʔΫɾϊϧ΢Σʔʣ͕࠾༻͍ͯ͠
    Δɻ
    $0$0"
    https://github.com/cocoa-mhlw/cocoa


    4NJUUFTUPQ
    https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App

    https://github.com/xamarin/XamarinComponents/tree/main/XPlat/ExposureNoti
    fi
    cation

    View Slide

  40. &YQPTVSF8JOEPXNPEFରԠঢ়گ
    9BNBSJO&YQPTVSF/PUJ
    fi
    DBUJPO͸ɺ೥݄೔࣌఺Ͱ
    &YQPTVSF8JOEPXNPEFʹରԠ͍ͯ͠ͳ͍ɻ
    ೥݄೔͔Β1VMM3FRVFTUʮ*NQMFNFOUUIFTIBSFE"1*GPSWʯͰ
    ࡞ۀதʢEFWBQJWϒϥϯνʣɻ
    https://github.com/xamarin/XamarinComponents/pull/955


    ࠷ऴߋ৽͸݄೔ͱϲ݄Ҏ্ɺදͩͬͨಈ͖͕ͳ͍ঢ়گɻ

    View Slide

  41. 4NJUUF4UPQQ͸&YQPTVSF8JOEPXNPEFʹରԠ
    /V(FUύοέʔδʢ9BNBSJO&YQPTVSF/PUJ
    fi
    DBUJPOBMQIBOVQLHʣ
    ΛϩʔΧϧʹ͍࣋ͬͯΔɻ
    https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/tree/dev/NDB.Covid19/
    TempNugetFeed


    ΋ͱ΋ͱόοΫάϥ΢ϯυॲཧΛಠ࣮ࣗ૷͢ΔͳͲɺ
    9BNBSJO&YQPTVSF/PUJ
    fi
    DBUJPOʹґଘ͠ͳ͍࢓૊Έʹ͍ͯͨ͠ɻ
    https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/blob/dev/NDB.Covid19/
    NDB.Covid19.iOS/Utils/BackgroundServiceHandler.cs

    https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/issues/223

    View Slide


  42. 9BNBSJO޲͚&/"1*ϥΠϒϥϦ
    $BQQVDDJOP

    View Slide

  43. $BQQVDDJOPʢΧϓνʔϊʣͱ͸
    Φʔϓϯιʔεͷ9BNBSJO޲͚&/"1*ϥΠϒϥϦɻ
    9BNBSJO&YQPTVSF/PUJ
    fi
    DBUJPOͷΑ͏ʹόοΫάϥ΢ϯυॲཧΛϋϯυϦϯ
    ά͠ͳ͍ɻ
    ϓϥοτϑΥʔϜʢ"OESPJEJ04ʣͱ&/"1*ͷόʔδϣϯʢ-FHBDZW
    &YQPTVSF8JOEPXNPEFʣͦΕͧΕઃఆ߲໨Λಠཱ͍ͯ͠Δɻ
    https://github.com/keiji/chino/wiki/Default-ExposureCon
    fi
    guration


    "OESPJEJ04ͷബ͍ϥούʔͱͯ͠ಈ࡞͢Δ͜ͱΛ໨ࢦ͍ͯ͠Δɻ
    .*5ϥΠηϯεɻ

    https://github.com/keiji/chino

    View Slide

  44. 4BNQMFΞϓϦʢ"OESPJE J04ʣ

    Sample.Android Sample.iOS

    View Slide

  45. ରԠ͍ͯ͠Δ"1*
    &/"1*ͷ༗ޮɾແޮ੾Γ׵͑
    5&,ཤྺͷऔಘ
    ઀৮֬ೝ
    -FHBDZ7
    &YQPTVSF8JOEPXNPEF
    1SFBVUIPSJ[F"1*

    View Slide


  46. ௨ৗͷ5&,औಘ

    View Slide


  47. 1SFBVUIPSJ[F"1*

    View Slide

  48. <&YQPTVSF/PUJ
    fi
    DBUJPO>4VQQPSU1SF"VUIPSJ[BUJPO
    9BNBSJOͷ&YQPTVSF/PUJ
    fi
    DBUJPO#JOEJOHଆͷରԠ͕ඞཁɻ
    1VMM3FRVFTU͸݄೔ʹఏग़ࡁΈɻ

    https://github.com/xamarin/XamarinComponents/pull/1133

    View Slide

  49. 9BNBSJO'PSNTʢ1SJTNʣ࣮૷αϯϓϧ

    https://github.com/keiji/chino.prism

    View Slide

  50. ݱঢ়ͷ՝୊

    https://github.com/keiji/chino/issues

    View Slide


  51. &YQPTVSF8JOEPXNPEFҠߦʹ

    ͋ͨͬͯͷ஫ҙ

    View Slide

  52. ϩʔΧϧ௨஌ͷ࣮૷ʢJ04ʣ

    ઀৮৘ใΛऔಘ͢Δͱ͖ʹ௨஌͕දࣔ͞Εͳ͍
    ˠɹϩʔΧϧ௨஌Λ࣮૷͢Δඞཁ͕͋Δ

    View Slide

  53. ઀৮൑ఆͷઃఆ
    -FHBDZWͷઃఆ͸࠶ར༻Ͱ͖ͳ͍ͷͰɺ࠶౓ઃఆΛઃܭ͠௚͢ඞཁ͕͋Δɻ

    https://developer.apple.com/documentation/exposurenoti
    fi
    cation/enexposurecon
    fi
    guration
    ը૾͸Apple DeveloperΑΓҾ༻

    View Slide


  54. "UUFOVBUJPO%VSBUJPO5ISFTIPME
    "apple_exposure_config_v2": {


    "attenuation_duration_thresholds": [


    50,


    70,


    90


    ],
    https://developer.apple.com/documentation/exposurenoti
    fi
    cation/enexposurecon
    fi
    guration
    ը૾͸Apple DeveloperΑΓҾ༻

    View Slide

  55. "OESPJEͱJ04ͰઃఆՄೳͳ஋ͷൣғ͕ҧ͏
    ஋ͷൣғ͕ҟͳΔ߲໨͕͋ΔͷͰ஫ҙ͕ඞཁɻ

    "infectiousness_weights": {


    "High": 1.0,


    "Standard": 1.0,


    "None": 1.0


    },


    "report_type_weights": {


    "Con
    fi
    rmedClinicalDiagnosis": 1.0,


    "Con
    fi
    rmedTest": 1.0,


    "SelfReport": 1.0,


    "Recursive": 1.0,


    "Revoked": 1.0,


    "Unknown": 1.0


    }
    "infectiousness_high_weight": 100.0,


    "infectiousness_standard_weight": 100.0,


    "report_type_con
    fi
    rmed_clinical_diagnosis_weight": 100.0,


    "report_type_con
    fi
    rmed_test_weight": 100.0,


    "report_type_recursive_weight": 100.0,


    "report_type_self_reported_weight": 100.0,
    100 - 250 (iOS)
    1.0 - 2.5 (Android)

    View Slide

  56. "OESPJEͱJ04ͰઃఆՄೳͳ஋ͷൣғ͕ҧ͏
    ஋ͷൣғ͕ҟͳΔ߲໨͕͋ΔͷͰ஫ҙ͕ඞཁɻ

    "report_type_con
    fi
    rmed_clinical_diagnosis_weight": 99.0,


    "report_type_con
    fi
    rmed_test_weight": 250.0,


    "report_type_recursive_weight": 251.0,


    "report_type_self_reported_weight": 1.0,
    100 - 250 (iOS)
    RpTyW { CTest 250, CClin 99, SelfR 1, Recurs 251 }

    View Slide

  57. 1MBUGPSN͝ͱͷσʔλͷදݱͷҧ͍

    https://github.com/keiji/chino/issues/34

    View Slide


  58. https://github.com/keiji/chino/issues/34

    View Slide

  59. "daily_summaries": [


    {


    "DaysSinceEpoch": 1622937600000,


    "DaySummary": {


    "MaximumScore": 1860.0,


    "ScoreSum": 51660.0,


    "WeightedDurationSum": 51660.0


    },


    "ConfirmedClinicalDiagnosisSummary": null,


    "ConfirmedTestSummary": {


    "MaximumScore": 1860.0,


    "ScoreSum": 51660.0,


    "WeightedDurationSum": 51660.0


    },


    "RecursiveSummary": null,


    "SelfReportedSummary": null


    },

    %BJMZ4VNNBSZ

    &YQPTVSF8JOEPX
    "exposure_windows": [


    {


    "CalibrationConfidence": 3,


    "DateMillisSinceEpoch": 1622937600000,


    "Infectiousness": 1,


    "ReportType": 1,


    "ScanInstances": [


    {


    "MinAttenuationDb": 24,


    "SecondsSinceLastScan": 300,


    "TypicalAttenuationDb": 25


    },


    {


    "MinAttenuationDb": 24,


    "SecondsSinceLastScan": 240,


    "TypicalAttenuationDb": 25


    },





    https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V2)
    https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Exposure-Window-mode)
    ؒҧ͍

    View Slide

  60. ·ͱΊ
    &YQPTVSF8JOEPXNPEF͸ɺ&/"1*͔ΒಘΒΕΔ઀৮৘ใͷܗ͕ࣜมΘΔͩ
    ͚Ͱ͸ͳ͍ɻ
    ΞϓϦͦͷ΋ͷͷڍಈʢ௨஌λΠϛϯάͳͲʣ΋ௐ੔͢Δඞཁ͕͋Δɻ
    ઀৮൑ఆͷઃఆ஋Λ࠶ઃܭ͢Δඞཁ͕͋Δɻ
    ϓϥοτϑΥʔϜ͝ͱʹҟͳΔઃఆ஋ɾσʔλදݱ͕͋Δ͜ͱΛ೺Ѳɺௐ੔͠
    ͨϥΠϒϥϦΛ࡞Δඞཁ͕͋Δʢ9BNBSJOݻ༗ͷ՝୊ʣɻ

    View Slide

  61. ຊࢿྉ͸༗ࢁܓೋͷஶ࡞෺Ͱ͢ɻຊࢿྉͷશ෦ɺ·ͨ͸Ұ෦ʹ͍ͭͯɺஶ࡞ऀ͔ΒจॻʹΑΔڐ୚Λಘͣʹෳ੡͢Δ͜ͱ͸ې͡ΒΕ͍ͯ·͢ɻ
    ֤੡඼໊ɾϒϥϯυ໊ɺձ໊ࣾͳͲ͸ɺҰൠʹ֤ࣾͷ঎ඪ·ͨ͸ొ࿥঎ඪͰ͢ɻຊࢿྉதͰ͸ɺ˜ɺšɺäΛׂѪ͍ͯ͠·͢ɻ
    ຊࢿྉͷ಺༰͸ɺൃදऀݸਓͷݟղͰ͋Γɺॴଐ·ͨ͸ؔ༩͢Δ૊৫Λ୅ද͢Δ΋ͷͰ͸͋Γ·ͤΜɻ
    https://github.com/cocoa-mhlw/cocoa/
    $0$0"΁ͷίϯτϦϏϡʔτ
    ͓଴͍ͪͯ͠·͢ɻ

    View Slide