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
83
Streamlitの入門書を執筆した話
Ayumu Yamaguchi
December 20, 2024
Tweet
Share
More Decks by Ayumu Yamaguchi
See All by Ayumu Yamaguchi
Streamlitで開発した自作データカタログの導入
ayumu_yamaguchi
4
690
Streamlitのデータカタログが社内にもたらした変化
ayumu_yamaguchi
1
1.4k
StreamlitとTerraformでデータカタログを作った話
ayumu_yamaguchi
1
2k
Streamlitを使ってデータカタログを作ってみた
ayumu_yamaguchi
1
450
Other Decks in Business
See All in Business
IT業界向けグループワーク「THEクリティカルパス オンライン版」
chibanba1982
PRO
0
350
ゲーム型ダイバーシティ&インクルージョン研修「バーンガ」
chibanba1982
PRO
0
780
会社案内資料
mkengineering
1
310
Fake “Agile” is the Norm: How to Instill Agility, not Agile Practices
johannarothman
PRO
0
1.4k
ARI会社説明
arisaiyou
1
6k
DNX Ventures Japan|Introduction Deck
natsumidnx
0
950
技術広報の集い #5 LT 資料 2025 年挑戦したいこと
n0mzk
0
200
ゲーム型ビジネスマナー研修「マナーストーリーカード版」
chibanba1982
PRO
0
240
【エンジニア採用】BuySell Technologies会社説明資料
buyselltechnologies
3
56k
Owned株式会社 採用ピッチ
owned_recruit
PRO
0
200
コンセンサスゲーム「雪山での遭難」
chibanba1982
PRO
0
820
営業疑似体験ゲーム「ヒアリングチャレンジオンライン版」
chibanba1982
PRO
0
250
Featured
See All Featured
Embracing the Ebb and Flow
colly
84
4.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Code Reviewing Like a Champion
maltzj
521
39k
Facilitating Awesome Meetings
lara
51
6.2k
Optimising Largest Contentful Paint
csswizardry
33
3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Gamification - CAS2011
davidbonilla
80
5.1k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
It's Worth the Effort
3n
183
28k
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以外に他に触れる必要のある技術が出てきたら、また書籍を書きたい ◦ 知識の定着に役立った ◦
他の人の学習にも役立てるので嬉しい • 営業職時代勉強に苦労したので、プログラミング学習初心者の人たちにも役立てたら嬉しい
感謝の言葉 読んでくださった方々、 レビューをしていただいた皆様、本当にありがとうございます。