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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
uzimaru0000
July 18, 2020
Programming
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WebフロントエンジニアはOSの夢を見る
Zli x DMM 合同LTで発表した資料です。
https://www.youtube.com/watch?v=BjFDjxSTR78
uzimaru0000
July 18, 2020
More Decks by uzimaru0000
See All by uzimaru0000
OGPを使いたい
uzimaru0000
0
180
git入門
uzimaru0000
1
360
Webフロントエンド入門
uzimaru0000
1
460
BrainFuckをつくった
uzimaru0000
0
580
Elmで作るCLI
uzimaru0000
0
140
Blogを作った話 -Zli x DeNA-
uzimaru0000
1
210
Compression Vue App
uzimaru0000
0
130
好きなライブラリ_OSS
uzimaru0000
0
240
Other Decks in Programming
See All in Programming
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
1k
Contextとはなにか
chiroruxx
1
390
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
230
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
1k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
スマートグラスで並列バイブコーディング
hyshu
0
270
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
0
120
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
160
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
240
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
630
どこまでゆるくて許されるのか
tk3fftk
0
300
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
170
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Embracing the Ebb and Flow
colly
88
5.1k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
600
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Claude Code のすすめ
schroneko
67
230k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
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