Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Blueskyに伏せ字投稿ができるWebアプリの作り方
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ENDO Yasuyuki
February 21, 2024
Technology
640
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Blueskyに伏せ字投稿ができるWebアプリの作り方
Blueskyに伏せ字投稿ができるWebアプリ、Bluespoilerの技術寄りの発表資料です。
ENDO Yasuyuki
February 21, 2024
More Decks by ENDO Yasuyuki
See All by ENDO Yasuyuki
Bluespoilerのご紹介
eyasuyuki
0
520
幻のテスト技法「キーワード駆動テスト」を追い求めて
eyasuyuki
0
2.8k
キーワード駆動っぽいテストができるツールを開発した話
eyasuyuki
0
540
Kotlin Updates in LL2019
eyasuyuki
0
620
Learn Languages 2019
eyasuyuki
5
1.1k
Why Flutter excitement me?
eyasuyuki
3
1.2k
Kotlin vs Swift
eyasuyuki
0
550
フロントエンドだめ自慢
eyasuyuki
0
140
llot_frontend.pdf
eyasuyuki
0
71
Other Decks in Technology
See All in Technology
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
240
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
210
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
290
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
4
3.7k
並行性の問題を防げ!実践トランザクション入門
occhi
0
280
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
270
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
140
自作バイナリを動かす「入口」8選
puhitaku
1
400
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
360
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
100
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
310
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
550
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
310
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Transcript
Bluesky に伏せ字投稿ができる Web ア プリの作り方 2024-02-21 Yasuyuki ENDO 1
GitHub リポジトリ https://github.com/eyasuyuki/bluespoiler/ 2
説明すること どうやって伏せ字投稿するのか なぜ作ろうと思ったのか なぜWeb サービスやモバイルアプリとしてリリースしなかったのか なぜFlutter で書いたのか 画像サイズチェック Bluesky への接続とテスト
記事URL の推測 今後の展開 3
説明しないこと fusetter の伏せ字アルゴリズムを勝手に推測する Flutter のライブラリの使い方 Riverpod Freezed go_router flutter_hooks image_picker_web
Rich Text でURL をリンクさせる 4
詳しくは Zenn に書きました。 https://zenn.dev/eyasuyuki/articles/825b28b0ec0a4c ※ イイネください.... 5
どうやって伏せ字投稿するのか https://eyasuyuki.github.io/bluespoiler/ [ と] の間の文が◦ になる(fusetter の再発明) ネタバレの本文は画像のALT に入る 6
伏せ字投稿 ネタバレ ALT 7
デモ https://youtu.be/eZX9s03MDQc?si=bgW2A1EWXn87TGWZ 8
なぜ作ろうと思ったのか Bluesky にはfusetter がないので だがfusetter みたいに自前サーバーを持つのは面倒 画像のALT なら1000 文字まで入れられる( 邪道)
自前バックエンドは持たずにBluesky とだけ通信すればいい 9
なぜ Web サービスやモバイルアプリと してリリースしなかったのか Web サービスは維持費がかかるし無料枠だとしても維持するのが大 変 当初はモバイルアプリ版も作ろうと思った Web アプリとして公開してiPhone
のホーム画面に追加してみた。ア プリ必要ないじゃん 失敗したのは何もログを取っていないこと( ユーザーにとってはメリ ット) 10
なぜ Flutter で書いたのか 当初はモバイルアプリ版も出そうと思っていた React やVue などWeb クライアントサイドの流行を追うのは大変 Flutter ならモバイルもWeb
もデスクトップも同時開発できる Flutter は2 年ぐらい触ってないのでキャッチアップしたかった Bluesky.dart の情報がすぐに見つかった 11
画像サイズチェック 976.56KB を超える画像をアップロードするとエラーになる 976.56KB 以下に圧縮を試みたがWeb クライアントサイドでは無理 そう 単に警告するだけにした 12
画像選択部分のコード ※ Dart は new を省略できます。 13
Bluesky への接続とテスト Article クラス 14
Bluesky への投稿 15
テスト とりあえず本当に接続してテストする 本物のID/ パスワードを隠蔽するために flutter_dotenv を使う .gitignore に .env を追加する
プロジェクトルートに .env ファイルを作成 16
テスト main 17
画像投稿のテスト ※ 本当に投稿されます。 18
記事 URL の推測 Bluesky にPost すると例えばこんな結果が返る。 {"uri":"at://did:plc:dptps7rgxju4nrg6qskop2wz/app.bsky.feed.post/3kjmvo7ocl62e", "cid":"bafyreihxcb3n6hxucw3hdeb3kylhzkoumitkx4hygoy24tyxt4hemajdde"} Bluesky の記事URL
はこんな感じ。 https://bsky.app/profile/javaopen.org/post/3kjmvo7ocl62e 3kjmvo7ocl62e が記事のID っぽい javaopen.org の部分は session.data.handle で取得できる 19
記事 URL の生成 20
投稿後の画面 21
今後の展開 認証方法の改善(Bluesky 待ち) ログをとる(Google Analytics?) 伏せ字投稿ランキング? 発表させていただきありがとうございました。 22