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
540
Other Decks in Programming
See All in Programming
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
190
VS Code Update for GitHub Copilot
74th
1
400
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
390
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
230
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
270
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
380
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
190
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
130
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
260
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
160
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
380
関数型まつりレポート for JuliaTokai #22
antimon2
0
160
Featured
See All Featured
Faster Mobile Websites
deanohume
307
31k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Music & Morning Musume
bryan
46
6.6k
The Language of Interfaces
destraynor
158
25k
Why You Should Never Use an ORM
jnunemaker
PRO
57
9.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
How STYLIGHT went responsive
nonsquared
100
5.6k
Side Projects
sachag
455
42k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
How GitHub (no longer) Works
holman
314
140k
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 みなさんも是非アイデアを形にしてみてください!!!