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
91
Streamlitの入門書を執筆した話
Ayumu Yamaguchi
December 20, 2024
Tweet
Share
More Decks by Ayumu Yamaguchi
See All by Ayumu Yamaguchi
Streamlitで開発した自作データカタログの導入
ayumu_yamaguchi
4
720
Streamlitのデータカタログが社内にもたらした変化
ayumu_yamaguchi
1
1.4k
StreamlitとTerraformでデータカタログを作った話
ayumu_yamaguchi
1
2.1k
Streamlitを使ってデータカタログを作ってみた
ayumu_yamaguchi
1
470
Other Decks in Business
See All in Business
株式会社CINC 会社案内/Company introduction
cinchr
6
51k
ファブリカホールディングス_2025年3月期 第3四半期説明資料
fabrica_com
1
3k
VISASQ: ABOUT US
eikohashiba
15
480k
SHIFT ASIA 会社説明資料 V2.1
shiftasiarec
0
180
TSUIDE_採用ピッチ資料
tsuide
0
150
生成AIを活用した勉強法 ~電車内でできたAWS Certified AI Practitioner過去問対策~
yuta3110
0
240
第3回関東Kaggler会 LT Kaggleはうつ病患者の役に立つ
utm529f
2
170
ビジネスで活かす生成AIエージェント 〜業務利用を目指して今を俯瞰的に理解しよう〜
masatoto
4
220
不確実性の高い仮説を 迅速に検証するための開発プロセス
mkitahara01985
2
160
【全ポジション共通】㈱エグゼクション/会社紹介資料
exe_recruit
1
1k
セーフィー株式会社(Safie Inc.) 会社紹介資料
safie_recruit
6
310k
2024年12月期_通期決算説明資料
mobcast20040326
PRO
0
470
Featured
See All Featured
A better future with KSS
kneath
238
17k
Making Projects Easy
brettharned
116
6k
Docker and Python
trallard
44
3.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
GraphQLとの向き合い方2022年版
quramy
44
13k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
9
450
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Practical Orchestrator
shlominoach
186
10k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
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以外に他に触れる必要のある技術が出てきたら、また書籍を書きたい ◦ 知識の定着に役立った ◦
他の人の学習にも役立てるので嬉しい • 営業職時代勉強に苦労したので、プログラミング学習初心者の人たちにも役立てたら嬉しい
感謝の言葉 読んでくださった方々、 レビューをしていただいた皆様、本当にありがとうございます。