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
58
Streamlitの入門書を執筆した話
Ayumu Yamaguchi
December 20, 2024
Tweet
Share
More Decks by Ayumu Yamaguchi
See All by Ayumu Yamaguchi
Streamlitで開発した自作データカタログの導入
ayumu_yamaguchi
4
650
Streamlitのデータカタログが社内にもたらした変化
ayumu_yamaguchi
1
1.3k
StreamlitとTerraformでデータカタログを作った話
ayumu_yamaguchi
1
1.9k
Streamlitを使ってデータカタログを作ってみた
ayumu_yamaguchi
1
440
Other Decks in Business
See All in Business
署内デジタルインフォボードの開発
tokyo_metropolitan_gov_digital_hr
0
330
Japan Open Chain White Paper
gugroup
0
300
合議で決めたいわけではないけれど、 集合知で助けてほしい。_pmconf_2024
tomosooon
1
5.2k
ダイナミックプラス株式会社 CompanyDeck20241201
plus0601
0
220
UIL広島駅前 利用検討者への事業所紹介
ymtyhka7o4o8
0
260
enechain company deck
enechain
PRO
8
94k
freee + Product Design FY24 Q2
freee
4
9.4k
スーパーマーケットのこれまでとこれから
10xinc
3
2k
無自覚にメンバーの心理的安全性を奪っていた経験から得た学び
lighttiger2505
142
190k
なぜ施策優先度を意思決定しなければならないのか? 経験から得た要因と対策
mkitahara01985
2
230
ストーリーテリングでチームに”熱"を伝える🔥
inagakikay
1
10k
決算審査意見書自動作成ツール 改良プロジェクト
tokyo_metropolitan_gov_digital_hr
0
310
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Building an army of robots
kneath
302
44k
Mobile First: as difficult as doing things right
swwweet
222
9k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Facilitating Awesome Meetings
lara
50
6.1k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Making the Leap to Tech Lead
cromwellryan
133
9k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
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以外に他に触れる必要のある技術が出てきたら、また書籍を書きたい ◦ 知識の定着に役立った ◦
他の人の学習にも役立てるので嬉しい • 営業職時代勉強に苦労したので、プログラミング学習初心者の人たちにも役立てたら嬉しい
感謝の言葉 読んでくださった方々、 レビューをしていただいた皆様、本当にありがとうございます。