$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WebフロントエンジニアはOSの夢を見る
Search
uzimaru0000
July 18, 2020
Programming
0
360
WebフロントエンジニアはOSの夢を見る
Zli x DMM 合同LTで発表した資料です。
https://www.youtube.com/watch?v=BjFDjxSTR78
uzimaru0000
July 18, 2020
Tweet
Share
More Decks by uzimaru0000
See All by uzimaru0000
OGPを使いたい
uzimaru0000
0
170
git入門
uzimaru0000
1
350
Webフロントエンド入門
uzimaru0000
1
450
BrainFuckをつくった
uzimaru0000
0
540
Elmで作るCLI
uzimaru0000
0
140
Blogを作った話 -Zli x DeNA-
uzimaru0000
1
200
Compression Vue App
uzimaru0000
0
130
好きなライブラリ_OSS
uzimaru0000
0
230
Other Decks in Programming
See All in Programming
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
330
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
2.6k
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
150
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.3k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
410
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
160
エディターってAIで操作できるんだぜ
kis9a
0
730
AIコーディングエージェント(skywork)
kondai24
0
170
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
11
11k
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
310
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
430
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Scaling GitHub
holman
464
140k
Side Projects
sachag
455
43k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Code Review Best Practice
trishagee
74
19k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Transcript
WebフロントエンジニアはOS の夢を見る うじまる
自己紹介 - B4 - うじまる - Webフロントエンド - TypeScript -
Elm - 最近Rustをやってます。 - Twitter - @uzimaru0000 - GitHub - @uzimaru0000
今回話すこと
None
え、OS作ったんですか!?
いいえ
ポートフォリオサイトです https://uzimaru.dev
使った技術
None
わかる
まぁわかる
????
Webキメラ
仕組み - いわゆるWebアプリケーション - ReactやVueやElmといった フレームワークで出来てる - 大体のWebアプリケーションの フレームワークは1つ -
Twitter ---> React - note ---> Vue
仕組み - 一般的なアプリケーション - Windowという共通のフレームの 中にアプリが動いている - アプリがどのように動いているかは自由
仕組み - OS - 複数のアプリが起動している - Systemはそれの管理をしている - それぞれのアプリは(ry
仕組み - ベースとしてWebComponentsを利用している(TypeScript) - その中のアプリケーションという形で様々な言語・フレームワークを利用 - React - Elm -
Vue - Unity
None
WebComponents Web Components(ウェブコンポーネンツ)はHTML要素をコンポーネント化する技術群の 総称、またそれらを用いて作成されたコンポーネントである。 ― wikipediaより - CustomElement - ShadowDOM
- HTMLTemplate YouTubeでもつかわれている!!
LitElement - 簡単にWebComponentsを作るための フレームワーク - 右のコードのような感じでWebComponentsを 作ることができる - lit-htmlというライブラリを使って宣言的なUI
を書ける
構成 - `x-system` - 全体を管理する役割、前のスライドのOSに当たる部分 - `x-window` - windowを管理する役割
アプリの削除・最小化・サイズ調整をしている - `x-hoge` - アプリケーションをmountする役割 一般的なSPAのWebアプリのエントリーポイント 余談 CustomElementは `(.+)-(.+)` の形式になってないとダメ!
辛かったところ
ShadowDOMとCSS in JS の相性の悪さ
ShadowDOM と CSS in JSの相性が悪い! 三行で - 一般的なCSS in JSのライブラリは
<head>の中に<style>を作る - ShadowDOMはそのDOMの中で 閉じたCSSを使える(便利!) - <head>で定義されたStyleは貫通しない
Reactの場合
を使いたかった
が、使えなかったので
free-style
free-style - CSS in JSをするためのライブラリ - ”””自分でstyleタグを作る必要がある””” ShadowDOMの中に<style>を作れる!!
Vueの場合
単一コンポーネントファイル!
が、使えなかったので
lit-elementのstyleに書く
Vueの場合 WebComponents用にビルドもできるらしいがめんどくさそうだった そもそもビルドにparcelを使ってるからどうやるか分からなかった
Elmの場合
rtfeldman/elm-css を使いたい!
使えます
Elmの場合 なんで使えたのか - rtfeldman/elm-css は純Elm製のパッケージ - ElmはDOMを直接操作するAPIを提供していない - 結果的にアプリケーションのDOMに <style>
を作っていたので ShadowDOMでもStyleを当てることができた
まとめ - 自分の使える技術を1つのページに集めることができる! - 各アプリケーションを小さいアプリにできるので作ってて楽しい! - 情報が少ない - やってる人がいなすぎる
- Reactのイベント周りの処理でも不具合があった - 日本語記事は無かった(気がする) 今後 - Rustを勉強中なのでWASMを使いたい - もうちょっとリッチなアプリも実装したい
最後に
Webキメラなんて誰がつかうんや
マイクロフロントエンドという 考え方
マイクロフロントエンド マイクロサービスを更に拡張した考え方
ありがとうございました! https://uzimaru.dev