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
WebフロントエンジニアはOSの夢を見る
Search
uzimaru0000
July 18, 2020
Programming
0
350
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
160
git入門
uzimaru0000
1
320
Webフロントエンド入門
uzimaru0000
1
430
BrainFuckをつくった
uzimaru0000
0
460
Elmで作るCLI
uzimaru0000
0
130
Blogを作った話 -Zli x DeNA-
uzimaru0000
1
180
Compression Vue App
uzimaru0000
0
120
好きなライブラリ_OSS
uzimaru0000
0
220
Other Decks in Programming
See All in Programming
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
250
선언형 UI에서의 상태관리
l2hyunwoo
0
150
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
180
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
1
370
プロダクトの品質に コミットする / Commit to Product Quality
pekepek
2
770
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.9k
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
250
tidymodelsによるtidyな生存時間解析 / Japan.R2024
dropout009
1
770
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
42 best practices for Symfony, a decade later
tucksaun
1
180
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
210
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
KATA
mclloyd
29
14k
Agile that works and the tools we love
rasmusluckow
328
21k
How to Ace a Technical Interview
jacobian
276
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
A Philosophy of Restraint
colly
203
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Product Roadmaps are Hard
iamctodd
PRO
49
11k
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