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

Bluesky と Android / Bluesky and Android

鎌倉
March 17, 2023

Bluesky と Android / Bluesky and Android

Bluesky/ATProtocol用の勉強会の資料です。

現在Bluesky用のAndroidクライアント「青雲」の開発を行っているので、開発に至った経緯やBluesky/ATP向けアプリをAndroidで開発するときのポイントなどを簡単に話しています。

鎌倉

March 17, 2023
Tweet

More Decks by 鎌倉

Other Decks in Technology

Transcript

  1. ΞδΣϯμ • Nostr ͱ Bluesky • Android Ϣʔβͱ Bluesky •

    ੨Ӣ • Android ΞϓϦ։ൃͱ Bluesky • Android ϢʔβΛऔΓר͘ঢ়گͷ·ͱΊ
  2. Nostr Websocket ্Ͱಈ͘෼ࢄ SNS ༻ϓϩτίϧ ʮૄ݁߹ͳ෼ࢄγεςϜʯ + ʮރΕٕͨज़ ͷਫฏࢥߟ ʯͱ͍͏งғؾͰΤϯδχΞత

    ʹ༡ͼ͕͍͕͋Δ Bluesky ΋ Nostr ΋ ϊεഇͷ δϟοΫɾ υʔγʔ͕ग़ࢿ ʮBluesky ϦϦʔε·Ͱͷ଴ػॴʯͱᎏ᎐ʁ ͞ΕΔ (ͨ) ͜ͱ΋
  3. ΩϨΔAndroidϢʔβ ͜ͷஈ֊Ͱ Bluesky ʹࢀՃͰ͖Δͷ͸ • ެࣜ iOS ΞϓϦ • ໺ྑΫϥΠΞϯτ

    (͔֬͜ͷஈ֊Ͱ͸ Ϗϡʔϫ) • curl ΍ެࣜϥΠϒϥϦͰ API Λ௚઀ୟ͘
  4. ੨Ӣ (͓ͦΒ͘) ੈքͰ།ҰϦϦʔε͞Ε͍ͯ Δ Bluesky ༻ͷ Android ΫϥΠΞϯτ ࡢ೔ Google

    Play Store ͰΦʔϓϯςε τΛ։࢝ https://play.google.com/store/apps/ details?id=io.github.akiomik.seiun
  5. ࢖༻ٕज़ Lang: Kotlin API: Retro fi t2 + Moshi +

    Eithernet UI: Jetpack compose + Material 3 Android ॳֶऀͳΓʹؤுͬͯ࡞ͬ ͍ͯ·͢🥺
  6. ΫϥΠΞϯτϥΠϒϥϦ͕ͳ͍ • ެ͔ࣜΒఏڙ͞Ε͍ͯΔͷ͸ node ͱ golangͷΈ • ATP ༻ͷ SDK

    Λࣗ෼Ͱ։ൃ͢Δඞཁ͕͋Δ NOTE: Dart༻ͷ΋ͷͳΒՃ౻͞Μ࡞ͷϥΠϒϥϦ͕͋Δ • https://pub.dev/documentation/atproto/latest/
  7. ΏΔ;Θ XRPC • JWT Λ࢖ͬͨೝূ (Authorization: Bearer $accessJwt) • `type:

    query` ͸ GET ͰΫΤϦύϥϝʔλʹ৐ͤͯϦΫΤετ • `type: procedure` ͸ POST Ͱbody͸json (blobΛআ͘) • `type: record` ͱ `schemaϓϩύςΟ` ͕΍ΓͱΓ͢Δσʔλܕ
  8. ͍͔ͭ͘ͷϋϚΓͲ͜Ζ • Moshi ͷ೔࣌ܕ͸ RFC 3339 ͔͠ѻ͑ͳ͍͕ɺXRPC ͸ ISO 8601

    • 㱺 Retro fi t ͷ Converter Adapter Λ࣮૷ (ਖ਼͘͠΍Δʹ͸) • EitherNet Ͱ͸ۭͷϨεϙϯεΛѻ͏͜ͱ͕Ͱ͖ͳ͍ • 㱺 EitherNet Λϥοϓͨ͠ Retro fi t ͷ Converter Adapter Λ࣮૷ • Blob ͷ౤͛ํ͕ௐ΂ͯ΋Θ͔Βͳ͔ͬͨ (ࠓ͸ RequestBody Λ࢖ͬͯΔ)
  9. ެࣜΫϥΠΞϯτ iOS ͱ Web (PC) ͷΈ (3/17 ݱࡏ) Android ޲͚ʹ

    PWA ԽΛਐΊΔͱ ͷ͜ͱ (3/16 ࣌఺ͷ৘ใ)