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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Akihiro Urushihara
June 02, 2023
Programming
430
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[Bluesky/ATProtocol 勉強会] bsky4j & SocialHub の紹介
Bluesky/ATProtocol 勉強会#1.5
https://428lab.connpass.com/event/284777/
Akihiro Urushihara
June 02, 2023
More Decks by Akihiro Urushihara
See All by Akihiro Urushihara
iOSDC2020: J2ObjCを使ってJava資産 をiOS開発で使ってみた
uakihir0
2
590
Other Decks in Programming
See All in Programming
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
710
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.5k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
160
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
790
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
260
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
180
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.3k
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
dRuby over BLE
makicamel
2
380
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
WENDY [Excerpt]
tessaabrams
11
38k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
490
Google's AI Overviews - The New Search
badams
0
1k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Paper Plane (Part 1)
katiecoart
PRO
0
9.1k
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 みなさんも是非アイデアを形にしてみてください!!!