Top View


Author Daiki Urata

Fusicフロントエンド座談会 from 雅 2024/04/18

2024/04/23

はじめに

みなさんこんにちは、フロントエンドチーム「雅」の浦田です。 「Fusicフロントエンド座談会」は、Fusicのフロントエンドチーム「雅」が、チーム内で気になった記事や技術情報を共有し、ちょっとだけ深ぼりしていく会です。

この座談会を始めてなんと1年が経ちました! 流れの速いフロントエンド業界ですが、これのおかげでチームみんながキャッチアップできたと思いますのでこれからも続けていきます。

前回の記事

議事録

translate、rotate、scaleの独立プロパティ

/* これが */
.sample {
  transform: translateX(12px);
  transform: rotate(45deg);
  transform: scale(1.2);
}

/* こうなる */
.sample {
  translate: 12px;
  rotate: 45deg;
  scale: 1.2;
}
  • translate、rotate、scaleの独立したプロパティの使い分けについて解説
  • 独立したプロパティを使う利点はアニメーションの管理が容易になり、記述が簡潔になる
  • transformプロパティと併用も可能
  • 主要ブラウザ全てでサポートされている

iPadOS 17.4でQRコードがスキャンできない

  • 17.4以降、iPadでQRが読めない可能性あり
  • サードパーティー製のアプリも対象
  • 対象デバイス
    • iPad (7th Generation)
    • iPad (6th Generation)
    • iPad Pro 12.9-inch (2nd Generation)
    • iPad Pro 10.5-inch

TypeScriptにArray.filterでType Guardが効くようになるPRがマージされた

  • 神アプデ
  • これで無駄な as をしなくて良くなる!

WinterJS v1.0

  • Rustで書かれた非常に高速なJavaScriptランタイム
  • WebAssemblyにコンパイルできるため、Wasmer Edgeで実行可能
  • WinterCG仕様と互換性がある
  • Cloudflare APIに対応
  • Webフレームワーク対応: Next.js(Reactサーバーコンポーネント対応)、Hono、Astro、SvelteKitなど
  • React Server Componentsに対応

チェックボックスの indeterminate 状態は将来多分なくなる

  • たしかにCheckboxはtrue/falseが自然(中間の状態が本来は不自然)
  • 子チェックボックスが選択されている場合は、別の手段で伝える手段(UI)が良いのでは?

Storyshots migration guide

  • StoryshotsはStorybookを書いたらsnapshotを生成してくれるものだった
  • なくなったので、今まで通りjestなどのテストランナーでsnapshotをとるコードを書く必要が生まれた
  • Storybook 8.0以降では@storybook/test-runnerを使ってDOM/image snapshotを書くのが推奨

Arcブラウザの簡易ノート機能がなくなった

  • 代替策として設定からNotion/Word/Confluenceあたりをノートとして開けるようにできる

Arc Max

  • Arcに搭載されたAI機能
  • 有料レベルの神機能
  • 記事をすぐに要約してくれる
  • ただ、ファイル名を勝手に変えてくれる機能は煩わしかったのでオフにしてる

「Reactは悪い意味でも現在のjQueryだし、それを受け止めないと前に進めないということ」

【Arc Maxによる要約】 具体的には、Reactのバンドルサイズが大きく、読み込みが遅いこと、仮想DOMによるオーバーヘッドが大きいこと、対抗フレームワークの登場によりこれらの問題が明らかになったことなどを例に挙げています。またjQuery時代の批判と同様の視点からReactを見直す必要がある、と主張しています。

「アクセシビリティを担保するためにESLintの独自ルールを作っている話」

  • ブラウザ読み上げ機能について、URLは読み上げなくて良い(リンク先に遷移できれば良いんじゃないかな?)と感じるので、必要となる背景・ユースケースを知りたい

require(esm) in Node.js

  • CommonJSをいい感じにESMへ移行するためにでてきた?(ワカラナイ)

Notifee

  • React NativeのPush通知ライブラリ
  • いつもはExpo Notification使ってたけど、こちらも選択肢としてはありかも

「ZOZOTOWNのマーケティングプラットフォームでのフロントエンドの取り組み」

  • App Router事例
  • Next.jsを使うにあたっての詰まった点などが書かれている
    • Server Componentsがユニットテストに対応してないなど

「Reactを学習できるサービスmosya Reactの技術的な紹介」

  • Reactを学習できるサービスの仕組み
  • Service Workerを使ってエディターに書いたコードを受け取り、そのコードをコンパイルしてプレビュー画面に表示している

「TypeScript 開発言語を統一 〜フロントからバックまで活用〜 Lunch LT」

  • インフラ構築、クライアント構築など全構築をTSでやっている話があった

Welcome to Canva, Affinity!

  • CanvaがAffinityを買収した話

「横断エンジニア組織で、チーム内コミュニケーションを活性化するために実践したこと」

  • チーム内のコミュニケーションを活性化するために取り組んだ内容について紹介されている
  • ライトニングトークを定期開催した
  • 知見共有、開発面の問題解決、人材の流動性につながった
  • 外部発信の練習にもなっている

PlanetScale forever

  • 無料枠がなくなってしまった。月45ドルくらいかかる
  • 代替はNeonとか?

「フロントエンド技術選定 〜ゼロランタイムCSS in JSとTailwind CSS編〜」

  • 登壇企業のプロダクトの構成などを紹介してくれた

「実践JavaScript!: プログラミングを楽しみながらしっかり身につける」

  • そんなに難しくなさそうなので、教育とかに良さそう

ソフトウェアテスト関係者くらいしか使わない絵文字

  • おもしろい

NSCatWindow

  • かわいい

「Making state easy with D1 GA, Hyperdrive, Queues and Workers Analytics Engine updates」

  • D1がGA
  • まだDBクラアントソフトからアクセスできない!?(やり方あったら知りたい)

「Vue Fes Japan 2024の開催決定!」

  • 去年参加したが雰囲気がすごく良かった。コミュニケーションをサポートしようとする雰囲気がよかった
  • Vueはファンが多いイメージ

Biome - Git Hooks - Lefthook

  • Lefthookはクロスプラットフォーム対応だからRails + React案件に相性良さそう
  • commit前に毎回動いてテストしてくれる
  • 設定も楽でymlファイルでOK

「WebViewからReact Nativeの関数を型安全に呼び出す」

  • React NativeでWebViewを型安全に呼び出す話
  • @react-native-webview-rpc/native を使ってWebViewとネイティブ間を型安全にやりとりできる

新たなパッケージシステム「vlt」

  • npmに替わる新しいパッケージシステム
  • npm/JSR/vltがあってどれを選べば…

「MoonBit が WebAssembly 時代の理想(の原型)だった」

  • GC付きのRustってどうなん、ということで話題になっていた
  • Rust - 所有権 + GC 的な言語

Shorebird v1.0

  • FlutterでOTAアップデートできる

「今ホットなHonoってどんなフレームワーク? 開発者ゆーすけべーさんに聞く」

  • 意外とProductionで使われていることが分かった
  • HonoのRPCモード良い
  • 中学生3人コントリビュータいるのすごすぎ

Farm v1.0

  • 新しいビルドツール
  • Viteの弱点をカバーしていて良さそう

Biome v1.7

  • ESLint、Prettierの設定からマイグレーションするコマンドが追加された

pnpm v9.0.0

Teslaアプリ(Expo製)の3Dがすごい

  • TeslaアプリもExpoで使われている
  • 意外とExpo製アプリ多い
Daiki Urata

Daiki Urata

Twitter X

フロントエンド/モバイルアプリなどを主に開発しています。