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
React + PloneによるSPAの実現方法2種類を解説
Search
Manabu TERADA
October 24, 2020
Technology
0
590
React + PloneによるSPAの実現方法2種類を解説
静的サイトジェネレータ「Gatsby」 / SPAツールキット「Volto」
Plone Users Group Japan 寺田 学
OSC オンライン 2020 秋
Manabu TERADA
October 24, 2020
Tweet
Share
More Decks by Manabu TERADA
See All by Manabu TERADA
Python Web UIフレームワークのススメ
terapyon
0
700
LLMを用いたPloneベクター検索 アドオンの開発の説明
terapyon
0
63
PyCon APACの軌跡
terapyon
0
1.6k
Pythonエンジニアになるためのテクニカルハイライトと学習方法
terapyon
0
81
Multi lingual Vector search using LLM
terapyon
1
74
メモリプロファイラMemrayのススメ
terapyon
3
970
PoC for LLM search on Plone
terapyon
1
87
LLMを用いたPloneベクター検索 アドオンの開発状況の紹介
terapyon
0
95
オープンセミナー香川 Pythonの現状・データ分析・LLM
terapyon
0
550
Other Decks in Technology
See All in Technology
プロダクトエンジニアを支えるための開発生産性向上施策
tsukakei
0
140
ロボットアームを遠隔制御の話 & LLMをつかったIoTの話もしたい
soracom
PRO
1
370
効果的なオンコール対応と障害対応
ryuichi1208
5
2.8k
Creative UIs with Compose: DroidKaigi 2024
chrishorner
1
450
ついに出た!OpenAIの最新モデル「o1」って何がすごいの?
minorun365
PRO
3
570
四国のあのイベントの〇〇システムを45日間で構築した話 / cloudohenro2024_tachibana
biatunky
0
330
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
120
JEP 480: Structured Concurrency
aya_ebata
0
130
Swift Testingのconfirmationを コードリーディング/Dive into Swift Testing confirmation
laprasdrum
1
250
Technical Writing Meetup vol.35
soracom
PRO
2
110
突撃! 隣のAmazon Bedrockユーザー 〜YouはどうしてAWSで?〜
minorun365
PRO
3
370
CRTO/CRTL/OSEPの比較・勉強法とAV/EDRの検知実験
chayakonanaika
1
1.1k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
How to train your dragon (web standard)
notwaldorf
85
5.6k
Six Lessons from altMBA
skipperchong
26
3.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
48k
Debugging Ruby Performance
tmm1
72
12k
Building Adaptive Systems
keathley
36
2.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
The Cult of Friendly URLs
andyhume
76
6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
The Brand Is Dead. Long Live the Brand.
mthomps
53
38k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
326
21k
Transcript
CC BY 4.0 React + PloneによるSPAの 実現方法 2種類を解説 ─静的サイトジェネレータ「Gatsby」─ ─SPAツールキット「Volto」─
Plone Users Group Japan 寺田 学 「オープンソースカンファレンス2020 Online/Fall 」 2020年10月24日
CC BY 4.0 セッション中の諸注意 • スライドは公開済み • 写真撮影可能、録音・録画可能 • Twitterなどでのつぶやき
歓迎
CC BY 4.0 自己紹介 寺田 学 (Manabu TERADA) • Pythonエンジニア
• Podcast 「terapyon channel」(https://podcast.terapyon.net) • 主な関連書籍(共著・監修・監訳) ◦ 機械学習図鑑(翔泳社 : 2019年4月) ◦ Pythonによるあたらしいデータ分析の教科書(翔泳社 :2018年9月) ◦ スラスラわかるPython(翔泳社:2017年8月) ◦ Pythonハッカーガイドブック(マイナビ : 2020年5月)
CC BY 4.0 本日のトークと関連組織 Plone Users Group Japan として、トークします。 •
一般社団法人PyCon JP Association代表理事 • 株式会社 CMSコミュニケーションズ 代表取締役 • 一般社団法人Pythonエンジニア育成推進協会顧問理事 • Plone Foundation Ambassador • PSF Fellow member 2019Q3 & Contributing member
CC BY 4.0 Plone Foundation Plone Foundationは、グローバルに導入されているCMSフレームワーク「Plone」の普及・ 開発を支援することを目的に2004年に設立された非営利組織です。主な活動内容は、 Ploneソフトウェアの知財管理と、カンファレンスや開発スプリントの開催を通じたコミュニ ティへの支援です。
• Plone ・・CMSツール • Guillotina ・・次世代ヘッドレス非同期サーバフレームワーク • Pyramid ・・汎用Webフレームワーク • Zope ・・Webアプリケーション基盤 • Volto ・・SPAツールキット
CC BY 4.0 本日のトーク内容 SPAサイトの実現方法を ヘッドレスCMSとしてPloneを用い Reactで作ることを説明します。
CC BY 4.0 SPAとは
CC BY 4.0 SPAとは ─ 1 • SPAは、Single Page Applicationの略
• JavaScriptを用いたWebアプリの実装方法 • サーバから1ページのHTMLを返し、ルーティング機能を持つ • URLによって画面の状態を変更できる • JavaScriptで作られたアプリを読み込む • REST APIでJSONをやりとり • スマホアプリのような動き
CC BY 4.0 通常のWebサイトの場合、 次のページを閲覧する際にハイパーリンクを用いて、 サーバに別のページをリクエストするが、 SPAではアプリ内でルーティングし、 APIをコールするなどして別の情報が表示される SPAとは ─
2
CC BY 4.0 SPAとは ─ 3 なぜ SPA と思った方は OSCオンライン2020
東京春 SPA CMSツールVolto for Ploneの紹介とPWAへの展望 https://speakerdeck.com/terapyon/spa-cmsturuvolto-for-plonefalseshao-jie-topwahefalsezhan-wang
CC BY 4.0 静的サイトジェネレータとは
CC BY 4.0 静的サイトジェネレータとは ─ 1 広義な意味 • 静的なHTML/CSS/JavaScriptのみで構成 •
バックエンドDBから動的(リアルタイム)に情報を取得しない • CloudのストレージやWebサーバのみで構成できる • ページやサイト構造を作る仕組みがある
CC BY 4.0 静的サイトジェネレータとは ─ 2 広義な静的サイトジェネレータの例 • Jekyll ・・Rubyベース •
Hugo ・・Goベース • Pelican ・・Pythonベース • Sphinx ・・Pythonベース • 商用CMSの一部
CC BY 4.0 静的サイトジェネレータとは ─ 3 最近の注目 • SPAに対応した、静的サイトジェネレータがある •
動的サイトのように動きのあるサイトが作れる
CC BY 4.0 静的サイトジェネレータとは ─ 2 SPAとなる静的サイトジェネレータの例 • Gatsby ・・Reactベース •
VuePress ・・Vue.jsベース • Next.js ・・Reactベース、静的サイトジェネレータ以外も • Nuxt ・・Vue.jsベース、静的サイトジェネレータ以外も
CC BY 4.0 静的サイトジェネレータの良さ • 運用コストが安く、管理が楽 • CI/CDツールでビルドからデプロイまで管理できる • Netlifyのようなホスティングサービスがある
CC BY 4.0 静的サイトジェネレータとPlone GatsbyとPloneが連携 • フロントエンドをGatsbyで構築 • コンテンツをPloneで管理 •
静的サイトビルド時 ◦ PloneのRestAPI経由で ◦ Gatsbyの内部構造である、GraphQLへ
CC BY 4.0 静的サイトジェネレータとPlone GatsbyとPloneのサンプル
CC BY 4.0 SPAツールキットVoltoとは
CC BY 4.0 SPAツールキットVoltoとは ─ 1 • Plone専用のフロントエンドアプリとして開発がスタート • 当初は、plone.reactと言われていた
• ReactベースのCMS用のフロントエンド実装 • MITライセンス • Ploneやguillotina CMSに対応しているSPAを作る為のもの
CC BY 4.0 SPAツールキットVoltoとは ─ 2 • 編集画面等のCMS管理もすべてVoltoで行う想定 • Blockでページを構成する
• 次期PloneのメジャーバージョンPlone 6でVoltoが標準? • Semantic UI ベース https://semantic-ui.com/ • カスタマイズを行うことで見た目や機能拡張が可能な仕組みを 提供
CC BY 4.0 Volto編集画面
CC BY 4.0 Volto表示画面
CC BY 4.0 SPAツールキットの良さ • Webページが、アプリ化 • 編集画面の変容 ◦ TinyMCEなどのWYSIWYGで書いて良いの?
◦ WordPressやMediumなどの編集画面 • Webサイトは、スマホやタブレットからの閲覧がますます多くな り、スマホアプリとの差を減らす
CC BY 4.0 SPAツールキットとCMS リッチなWeb でもコンテンツ重要と思った方は SPAツールキットを模索してみては・・・
CC BY 4.0 ヘッドレスCMSの役割
CC BY 4.0 ヘッドレスCMSの役割 ─ 1 • 閲覧側のテンプレートは不要 • 編集やシステム管理用の画面は必要な場合もある
• データを永続化し管理する
CC BY 4.0 ヘッドレスCMSの役割 ─ 2 • REST API ◦
JSON形式でデータを出力 ◦ JSON形式でデータを受け取る ◦ 表示側だけではなく、編集機能もあるとよい • JavaScriptアプリを読み込ませる1枚のHTML出力 • パーマリンクからのアプリ起動
CC BY 4.0 Ploneとは
CC BY 4.0 Plone(プローン)は、約20年の歴史 オープンソースCMS エンタープライズ対応の高度な機能を備えており、多くの人と組織が 関わるウェブサイトの管理に力を発揮します。 規模に関わらず、社内情報の共有・蓄積も得意分野です。 Ploneとは ─
1
CC BY 4.0 Ploneのスナップショット
CC BY 4.0 Ploneが提供する主な機能 ─ 1 • エンタープライズ環境との統合 • 柔軟なワークフロー・強固なセキュリティ
• すぐれた拡張性 • 高いスケーラビリティ • 多言語対応 • アクセシビリティ対応 • 認証とシングルサインオン
CC BY 4.0 全体構成を確認
CC BY 4.0 全体構成 ─ 1 静的サイトジェネレータ コンテンツを エディタで書く 静的ファイルを 生成
サーバでホスト ビルド アップロード
CC BY 4.0 全体構成 ─ 2 Gatsby + Ploneの場合 コンテンツを エディタで書く
Gatsbyアプリを 生成 サーバでホスト ビルド アップロード
CC BY 4.0 全体構成 ─ 3 Volto + Ploneの場合 コンテンツを サーバのアプリで書く
CC BY 4.0 デモ
CC BY 4.0 ご清聴 ありがとうございました。
CC BY 4.0 Q&A