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
400
[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
550
Other Decks in Programming
See All in Programming
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
590
SOCI Index Manifest v2が出たので調べてみた / Introduction to SOCI Index Manifest v2
tkikuc
1
110
tool ディレクティブを導入してみた感想
sgash708
1
150
CSC305 Summer Lecture 06
javiergs
PRO
0
100
AI OCR API on Lambdaを Datadogで可視化してみた
nealle
0
180
Rancher と Terraform
fufuhu
0
100
Introduction to Git & GitHub
latte72
0
120
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
330
Laravel Boost 超入門
fire_arlo
1
120
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
980
学習を成果に繋げるための個人開発の考え方 〜 「学習のための個人開発」のすすめ / personal project for leaning
panda_program
1
110
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Speed Design
sergeychernyshev
32
1.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
Optimizing for Happiness
mojombo
379
70k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Code Reviewing Like a Champion
maltzj
525
40k
Scaling GitHub
holman
462
140k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Facilitating Awesome Meetings
lara
55
6.5k
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 みなさんも是非アイデアを形にしてみてください!!!