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
Streamlitの入門書を執筆した話
Search
Ayumu Yamaguchi
December 20, 2024
Business
1
160
Streamlitの入門書を執筆した話
Ayumu Yamaguchi
December 20, 2024
Tweet
Share
More Decks by Ayumu Yamaguchi
See All by Ayumu Yamaguchi
Streamlitで実現できるようになったこと、実現してくれたこと
ayumu_yamaguchi
2
330
Cortex_Searchを活用したメタデータ検索Chatbot開発.pdf
ayumu_yamaguchi
0
50
Streamlitで開発した自作データカタログの導入
ayumu_yamaguchi
4
840
Streamlitのデータカタログが社内にもたらした変化
ayumu_yamaguchi
1
1.6k
StreamlitとTerraformでデータカタログを作った話
ayumu_yamaguchi
1
2.6k
Streamlitを使ってデータカタログを作ってみた
ayumu_yamaguchi
1
540
Other Decks in Business
See All in Business
20250816 「アジャイル」って?~"Do Agile"から"Be Agile"へ~
east_takumi
0
3k
"遠くて近い"チームをつくる──リモートワークで「開発現場に必要とされる人材」になる方法
cysphere
0
200
会社紹介資料 / ProfileBook
gpol
4
45k
営業職/新卒向け会社紹介資料(テックファーム株式会社)
techfirm
1
900
技術的負債に立ち向かう、 ひとりから始めるチームづくり / From One to Team: Building Momentum Against Technical Debt
yoshiyoshifujii
1
190
Mercari-Fact-book_en
mercari_inc
2
27k
enechain company deck
enechain
PRO
9
130k
sample
mamiko
0
100
GeminiのCanvas機能で脳を悦ばせてみた
o2mami
1
230
ブランド・プランナー協会講座概要
brandingtechnology
0
400
VISASQ: ABOUT US
eikohashiba
15
510k
株式会社ボスコ・テクノロジーズ 採用ピッチ資料
boscotechrecruit
0
1.3k
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
890
Building Flexible Design Systems
yeseniaperezcruz
328
39k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Designing for Performance
lara
610
69k
What's in a price? How to price your products and services
michaelherold
246
12k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
KATA
mclloyd
32
14k
Six Lessons from altMBA
skipperchong
28
4k
How GitHub (no longer) Works
holman
315
140k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Transcript
Streamlitの入門書を作成した話 2024.12.20 山口歩夢
自己紹介
自己紹介 【所属】 株式会社GENDA データエンジニア 【経歴】 営業職 :4年 データエンジニア:3年 【発信】 著書 :Streamlit入門
Pythonで学ぶデータ可視化 &アプリ開発入門 ブログ :https://qiita.com/Ayumu-y X(旧Twitter) :https://x.com/Yamaguchi_aaaaa Snowflake Squad:https://www.snowflake.com/en/snowflake-squad/ 【趣味】 音楽 筋トレ 山口歩夢
Streamlitとの出会い • Streamlitのもくもく会 (毎週土曜日の 9時~)に誘ってもらったのがきっかけ • 「30 Days of Streamlit」を使いながら学習
• 少ないコードで簡単にインタラクティブなアプリケーションを開発できることに驚いた • 元々営業職でプログラミングの勉強に苦労したことがあり、 Streamlitの便利さに感銘を受けた
作ったアプリケーション • データカタログ • ダッシュボード • 社内業務の DXアプリ 便利な関数が多く用意されていて、 Pythonを使って非常に簡単にアプリケーションを開発できるのが
Streamlitの魅力!
入門書執筆の経緯と目的
Streamlitの入門書を作ろうと思った理由 • 実際に使ってみて感動した ◦ 非常に短いコードで高度なアプリケーションが開発できる • 日本語の情報が他の技術と比べて少なかった • Streamlitについて体系的に学べる日本語版の書籍が無かった
Streamlitの入門書を作ろうと思った理由 • 実際に使ってみて感動した ◦ 非常に短いコードで高度なアプリケーションが開発できる • 日本語の情報が他の技術と比べて少なかった • Streamlitについて体系的に学べる日本語版の書籍が無かった 技術書典というものがあるらしいので同人誌を頒布してみよう!
技術書典とは • 年二回開催される IT技術などの同人誌を頒布するイベント ◦ オンラインのみの参加もオンライン +オフラインで参加することが可能 • たくさんのエンジニアが自分の好きな技術の同人誌を頒布
一作目を執筆してみた • Streamlitの概要 • Streamlitの基本的な使い方 ◦ Streamlitの始め方 ◦ Session State扱い方
◦ キャッシュの扱い方 • 基本的な関数 ◦ 自分がよく使うものをピックアップして紹介 • Streamlitの実践的な内容 ◦ StreamlitからSnowflakeを操作する方法 ◦ Streamlit in Snowflakeの使い方 • StreamlitとSnowflakeでデータカタログを作成した話 Streamlit データ可視化入門 (約100p)
一作目を頒布した結果
一作目を頒布した結果 • 非常に好評だった ◦ 多くの人に購入いただけた ◦ ポジティブな感想が多かった • Streamlitの知識がたくさん身についた
• 出版社の方から商業本出版に興味がないかとお声がけいただいた
ご好評いただいたので、もっと良いものを書いて商業本出版しよう!
二作目を執筆した 半年以上かけて一作目より更に詳しく書き、技術書典でも頒布 一作目からページ数を 3倍に大増量! • Streamlitとは • 基本的な機能 • 基本的な関数
◦ 多くの関数や関数毎のオプションを網羅的に解説 • 実践的なアプリケーション開発 ◦ ユースケース毎にアプリケーションや サンプルコードを紹介 • StreamlitとSnowflakeでデータカタログを作成した話 • StreamlitとSnowflake CortexでChatBotを開発 Streamlit入門 Pythonで学ぶデータ可視化 &アプリ開発ガイド (約300p)
この二作目が商業本として出 版されました!
どのようにして技術書を書いたのか
書籍作成ツールを使用した • 「Re:View Starter」や「Re:View」という 技術同人誌を書くためのツールを使用した • どちらも使ってみた感想としては Re:View Starterの方がおすすめ ◦
Re:View Starterは初期設定を GUIで行える ◦ サンプルコードなどを自動的に折り返してくれる Re:View Starter初期設定画面
英語のドキュメントを読んで Streamlitを頑張って理解した • ドキュメントを読み込んで、一つ一つ理解していった ◦ 英語の文章を翻訳したり、 翻訳しづらいところは英語のまま ◦ Snowflakeのクイックスタートを使って、 ChatBotの作成手順や仕組みを調査
• 関数の動きを一つ一つ試した ◦ 関数毎に簡単なアプリを作り、 関数のパラメータ一つ一つの挙動を確認 • streamlit-extrasやthird party componentsを読み漁り、 読者に有益なものをピックアップ
咀嚼した知識を解説 • テキストエディタで Streamlitについて理解した内容を書いた • 業務などで発生したユースケースやデータカタログの作成方法についてもまとめた
編集作業 • コードや文章の改行を一つ一つ対応 ◦ 商業本には Re:Viewを使用する必要があった • 画像やコードブロックに注釈を入れたり、 文章中に図表番号などを入れていく •
フッターをつける ◦ 引用先の URLなどを添付 ◦ これも改行処理を行う必要があった
こちらを半年以上コツコツ続けました
最終確認(レビュー) そして、最後に皆さんにレビューをしていただきました! ありがとうございます! • 株式会社インプレス 山城敬さん • 本橋峰明さん (@mmotohas) •
檜山徹さん (@toru_data) • 小宮山紘平さん (@kommy_jp)
Streamlit入門の内容
目次 第1章 Streamlitとは 第2章 基本的な機能 第3章 用意されている便利な関数 第4章 基本的なアプリケーション開発 第5章
データカタログの作成 第6章 StreamlitでChatBotを開発する
第1章 Streamlitとは 概要などの基本的な知識を解説 • StreamlitやSnowflakeの概要 • Streamlit in Snowflakeについて •
Pythonスクリプト実行の仕組み
第2章 基本的な機能 アプリ開発をする上での 基本的な知識を紹介 • Streamlitの始め方の手順 • アプリケーションの 外観などの基本設定 •
マルチページ機能の実装 • Session Stateの扱い方 • キャッシュの扱い方
第3章 用意されている便利な関数 様々な種類の関数を紹介 • テキスト表示 • レイアウト変更 • データ可視化 •
データフレームの表示や カラムの詳細設定 • インタラクティブな ウィジェットの作成
第4章 実践的なアプリケーション開発 様々なアプリの作り方を解説 • Snowflakeのデータを Streamlitで可視化 • マスタデータをメンテナンス • ドリルダウン機能
• GUIでカテゴリ選択 • クリップボードにデータをコピー • 位置情報を使った地図 • PyGWalkerでのデータ探索
第5章 Streamlit in Snowflakeでのデータカタログの作成 データカタログの解説や作り方を解説 • データカタログとは • Streamlitでデータカタログを作成した経緯 •
Streamlit in Snowflakeにデプロイ • データカタログの操作方法
第6章 StreamlitでChatBotを開発する StreamlitとSnowflake Cortexで ChatBotアプリを開発する方法を解説 • Snowflake Cortexの概要 • Snowflake
Cortexの関数の解説 • ChatBotアプリ開発のための Streamlit関数 • ChatBotの開発手順
まとめ・今後の展望
まとめ 結論、執筆して良かったです! • 執筆して多くのことを学べた ◦ 関数や関数のパラメータ一つ一つの使い方 ◦ cacheやsession_stateなどの理解が曖昧だった機能の扱い方 • 喜んでくださる人が居た
◦ 同人誌を書いた時に、物理本を欲してくださる人がいて嬉しかった ◦ ポジティブなフィードバックを貰えて嬉しかった
今後の展望 • Streamlitで面白いアプリは引き続き開発したい ◦ LLMを使ったアプリの開発をやりたい • Streamlit以外に他に触れる必要のある技術が出てきたら、また書籍を書きたい ◦ 知識の定着に役立った ◦
他の人の学習にも役立てるので嬉しい • 営業職時代勉強に苦労したので、プログラミング学習初心者の人たちにも役立てたら嬉しい
感謝の言葉 読んでくださった方々、 レビューをしていただいた皆様、本当にありがとうございます。