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

[Bluesky/ATProtocol 勉強会] bsky4j & SocialHub の紹介

[Bluesky/ATProtocol 勉強会] bsky4j & SocialHub の紹介

Bluesky/ATProtocol 勉強会#1.5
https://428lab.connpass.com/event/284777/

Akihiro Urushihara

June 02, 2023
Tweet

More Decks by Akihiro Urushihara

Other Decks in Programming

Transcript

  1. bsky4j https://github.com/uakihir0/bsky4j • Bluesky/ATProtocol の Java ライブラリ
 ◦ 主要な Lexicon

    については実装完了 
 ▪ Bluesky クライアント作る分には十分 
 ◦ 依存関係が少なく比較的ピュアな Java ライブラリとして実装 
 ▪ JVM, Android プロジェクトであれば、無理なく採用可能 
 ◦ Builder パターンを利用したパラメータの組み立てが特徴 
 
 
 うるし
 @uakihir0.com 

  2. • サンプルコード
 ◦ com.atproto.repo.createRecord (ポストの投稿) 
 ▪ Post レコード (app.bsky.feed.post)

    を作成するラッパー関数を用意 
 
 
 うるし
 @uakihir0.com 
 bsky4j https://github.com/uakihir0/bsky4j
  3. • Facets の自動作成 (mention or link)
 ◦ 必要な Facets を自動で作成する機能も用意

    
 ▪ 自前で実装するとちょっと面倒な部分 
 
 
 うるし
 @uakihir0.com 
 bsky4j https://github.com/uakihir0/bsky4j
  4. • (おまけで) PLC Directiry にリクエスト出す機能も実装済
 ◦ DID からハンドルの変更履歴を追ったりすることができる 
 ◦

    DID からハンドルを取得するサンプルコード 
 ▪ com.atproto.identity.resolveHandle でも同じことはできる
 
 
 
 うるし
 @uakihir0.com 
 bsky4j https://github.com/uakihir0/bsky4j
  5. SocialHub https://github.com/uakihir0/SocialHub • 複数の SNS を透過的に扱うことができる Java ライブラリ
 ◦ Bluesky,

    Mastodon, Misskey 等が同じ関数・モデルで扱うことが可能 
 ▪ 統一することで、使用するアプリが様々な SNS を使うことが可能に 
 ◦ Tumblr や Slack にも対応しているが対応している機能は一部 
 ◦ bsky4j のサンプル実装にもなっている 
 
 ◦ J2ObjC を使って Objective-C のコードに変換可能 (後述) 
 ◦ 同じ名前でこのライブラリを使用した iOS アプリを作成・公開中 (後述) 
 
 うるし
 @uakihir0.com 

  6. J2ObjC • Java → Objective-C コンパイラ (プログラミング言語変換) 
 ◦ Google

    主体で実装 (どうやら内部で使っている様子) 
 ◦ Objective-C は iOS 開発で昔使われていた言語 
 ▪ iOS アプリ開発で使用することが可能 
 ◦ 複雑な Java コードだと変換できない場合がある 
 ▪ bsky4j などがピュア Java なのはそれが理由 
 
 うるし
 @uakihir0.com 

  7. SocialHub (iOSApp) • 🎉 5/30 に Bluesky に対応 🎉
 ◦

    Bluesky と Mastodon, Misskey 等の SNS で統合 TL を作成可能に! 
 
 うるし
 @uakihir0.com 

  8. まとめ • Bluesky で色々作るための Java ライブラリを紹介しました
 • ↑ を使用したサンプルとして SocialHub

    アプリを紹介しました
 
 うるし
 @uakihir0.com 
 みなさんも是非アイデアを形にしてみてください!!!