Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[Bluesky/ATProtocol 勉強会] bsky4j & SocialHub の紹介
Search
Akihiro Urushihara
June 02, 2023
Programming
1
390
[Bluesky/ATProtocol 勉強会] bsky4j & SocialHub の紹介
Bluesky/ATProtocol 勉強会#1.5
https://428lab.connpass.com/event/284777/
Akihiro Urushihara
June 02, 2023
Tweet
Share
More Decks by Akihiro Urushihara
See All by Akihiro Urushihara
iOSDC2020: J2ObjCを使ってJava資産 をiOS開発で使ってみた
uakihir0
2
530
Other Decks in Programming
See All in Programming
💎 My RubyKaigi Effect in 2025: Top Ruby Companies 🌐
yasulab
PRO
1
110
Investigating Multithreaded PostgreSQL
macdice
0
130
JSAI2025 RecSysChallenge2024 優勝報告
unonao
1
340
CursorとDevinが仲間!?AI駆動で新規プロダクト開発に挑んだ3ヶ月を振り返る / A Story of New Product Development with Cursor and Devin
rkaga
5
1.9k
當開發遇上包裝:AI 如何讓產品從想法變成商品
clonn
0
1.5k
PT AI без купюр
v0lka
0
160
What Spring Developers Should Know About Jakarta EE
ivargrimstad
1
450
TSConfig Solution Style & subpath imports to switch types on a per-file basis
maminami373
1
160
try-catchを使わないエラーハンドリング!? PHPでResult型の考え方を取り入れてみよう
kajitack
3
180
Parallel::Pipesの紹介
skaji
2
770
External SecretsのさくらProvider初期実装を担当しています
logica0419
0
200
鯛変だったRubyKaigi 2025 ── それでも楽しかった!
pndcat
0
130
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
740
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
1
62
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Code Review Best Practice
trishagee
68
18k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Documentation Writing (for coders)
carmenintech
71
4.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Transcript
bsky4j & SocialHub の紹介 うるし @uakihir0.com Bluesky/ATProtocol 勉強会 #1.5 2023/6/2
bsky4j https://github.com/uakihir0/bsky4j • Bluesky/ATProtocol の Java ライブラリ ◦ 主要な Lexicon
については実装完了 ▪ Bluesky クライアント作る分には十分 ◦ 依存関係が少なく比較的ピュアな Java ライブラリとして実装 ▪ JVM, Android プロジェクトであれば、無理なく採用可能 ◦ Builder パターンを利用したパラメータの組み立てが特徴 うるし @uakihir0.com
• サンプルコード ◦ com.atproto.server.createSession (セッションの生成) うるし @uakihir0.com
bsky4j https://github.com/uakihir0/bsky4j
• サンプルコード ◦ com.atproto.repo.createRecord (ポストの投稿) ▪ Post レコード (app.bsky.feed.post)
を作成するラッパー関数を用意 うるし @uakihir0.com bsky4j https://github.com/uakihir0/bsky4j
• Facets の自動作成 (mention or link) ◦ 必要な Facets を自動で作成する機能も用意
▪ 自前で実装するとちょっと面倒な部分 うるし @uakihir0.com bsky4j https://github.com/uakihir0/bsky4j
• (おまけで) PLC Directiry にリクエスト出す機能も実装済 ◦ DID からハンドルの変更履歴を追ったりすることができる ◦
DID からハンドルを取得するサンプルコード ▪ com.atproto.identity.resolveHandle でも同じことはできる うるし @uakihir0.com bsky4j https://github.com/uakihir0/bsky4j
SocialHub https://github.com/uakihir0/SocialHub • 複数の SNS を透過的に扱うことができる Java ライブラリ ◦ Bluesky,
Mastodon, Misskey 等が同じ関数・モデルで扱うことが可能 ▪ 統一することで、使用するアプリが様々な SNS を使うことが可能に ◦ Tumblr や Slack にも対応しているが対応している機能は一部 ◦ bsky4j のサンプル実装にもなっている ◦ J2ObjC を使って Objective-C のコードに変換可能 (後述) ◦ 同じ名前でこのライブラリを使用した iOS アプリを作成・公開中 (後述) うるし @uakihir0.com
SocialHub https://github.com/uakihir0/SocialHub • サンプルコード ◦ 透過的に扱うってどういうこと? うるし @uakihir0.com
J2ObjC • Java → Objective-C コンパイラ (プログラミング言語変換) ◦ Google
主体で実装 (どうやら内部で使っている様子) ◦ Objective-C は iOS 開発で昔使われていた言語 ▪ iOS アプリ開発で使用することが可能 ◦ 複雑な Java コードだと変換できない場合がある ▪ bsky4j などがピュア Java なのはそれが理由 うるし @uakihir0.com
J2ObjC • iOSDC 2020 にて紹介したので詳しくはそちらを参照 うるし @uakihir0.com
SocialHub (iOSApp) • 2020年にリリースしたマルチ SNS クライアントアプリ ◦ 複数の SNS を同時に見て操作することが可能なのが特徴
うるし @uakihir0.com
SocialHub (iOSApp) • 🎉 5/30 に Bluesky に対応 🎉 ◦
Bluesky と Mastodon, Misskey 等の SNS で統合 TL を作成可能に! うるし @uakihir0.com
まとめ • Bluesky で色々作るための Java ライブラリを紹介しました • ↑ を使用したサンプルとして SocialHub
アプリを紹介しました うるし @uakihir0.com みなさんも是非アイデアを形にしてみてください!!!