Slide 1

Slide 1 text

bsky4j & SocialHub の紹介 うるし
 @uakihir0.com
 Bluesky/ATProtocol 勉強会 #1.5 2023/6/2

Slide 2

Slide 2 text

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


Slide 3

Slide 3 text

● サンプルコード
 ○ com.atproto.server.createSession (セッションの生成) 
 
 
 うるし
 @uakihir0.com 
 bsky4j https://github.com/uakihir0/bsky4j

Slide 4

Slide 4 text

● サンプルコード
 ○ com.atproto.repo.createRecord (ポストの投稿) 
 ■ Post レコード (app.bsky.feed.post) を作成するラッパー関数を用意 
 
 
 うるし
 @uakihir0.com 
 bsky4j https://github.com/uakihir0/bsky4j

Slide 5

Slide 5 text

● Facets の自動作成 (mention or link)
 ○ 必要な Facets を自動で作成する機能も用意 
 ■ 自前で実装するとちょっと面倒な部分 
 
 
 うるし
 @uakihir0.com 
 bsky4j https://github.com/uakihir0/bsky4j

Slide 6

Slide 6 text

● (おまけで) PLC Directiry にリクエスト出す機能も実装済
 ○ DID からハンドルの変更履歴を追ったりすることができる 
 ○ DID からハンドルを取得するサンプルコード 
 ■ com.atproto.identity.resolveHandle でも同じことはできる
 
 
 
 うるし
 @uakihir0.com 
 bsky4j https://github.com/uakihir0/bsky4j

Slide 7

Slide 7 text

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


Slide 8

Slide 8 text

SocialHub https://github.com/uakihir0/SocialHub ● サンプルコード
 ○ 透過的に扱うってどういうこと? 
 
 うるし
 @uakihir0.com 


Slide 9

Slide 9 text

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


Slide 10

Slide 10 text

J2ObjC ● iOSDC 2020 にて紹介したので詳しくはそちらを参照 
 
 うるし
 @uakihir0.com 


Slide 11

Slide 11 text

SocialHub (iOSApp) ● 2020年にリリースしたマルチ SNS クライアントアプリ
 ○ 複数の SNS を同時に見て操作することが可能なのが特徴
 
 うるし
 @uakihir0.com 


Slide 12

Slide 12 text

SocialHub (iOSApp) ● 🎉 5/30 に Bluesky に対応 🎉
 ○ Bluesky と Mastodon, Misskey 等の SNS で統合 TL を作成可能に! 
 
 うるし
 @uakihir0.com 


Slide 13

Slide 13 text

まとめ ● Bluesky で色々作るための Java ライブラリを紹介しました
 ● ↑ を使用したサンプルとして SocialHub アプリを紹介しました
 
 うるし
 @uakihir0.com 
 みなさんも是非アイデアを形にしてみてください!!!