エンジニアの井立田です。 本記事では、最近注目されているMCPの基本的な概念について、簡潔にわかりやすく解説します。
続きを読むRedis Streamsを利用した通知アーキテクチャ
◆はじめに
揮発性のある軽量な通知機能をWebアプリに実装する必要があり、時系列でメッセージを記録可能で既読処理も単体で実現できるRedis Streamsが適当だと思い採用した。以下、その時行ったサーバー側実装を備忘録的にまとめる。
(※実際の名称などは変えています)
続きを読むTanstack Router
今回のフロントエンド勉強会では、話題のルーティングライブラリ TanStack Router を取り上げました。
現在、弊社で開発中のプロダクトにおいて採用を検討しており、要件を満たせるかどうかの観点から調査を行いました。今回はその中でも、導入前に最低限押さえておきたいポイントに絞って、公式ドキュメントや関連リンクとともに紹介していきます。
続きを読むDjango と Quarkus + Kotlin に学ぶバックエンド開発スタイル比較
1. Djangoとは
- オープンソースのPython製フルスタックWebフレームワーク(初版 2005 年)。
- MTV構造:Model=DB層、View=ロジック、Template=画面。役割が分かれ保守しやすい。
- “Batteries‑included” フィロソフィ ─ ORM・管理画面・認証・国際化などを標準搭載し 迅速なプロトタイプ開発 が可能。
- URL ディスパッチャ + テンプレートエンジンにより 疎結合なページ生成、CSRF/XSS 対策などセキュリティ機能も内蔵。
- よく使われる場面:CMSや社内システム、スタートアップのMVP、大規模サービス(例:Instagram)。
Reactの<ViewTransition>コンポーネントを使ってみた
ViewTransitionAPIとは
- ページを遷移する際にスムーズなアニメーションを追加できるブラウザネイティブのAPI
- メリット
- 遷移アニメーションがスムーズ
- 記述が簡単
- ブラウザネイティブの機能ため、JavaScriptによるアニメーションよりパフォーマンスが優れている
ReactでViewTransitionコンポーネントが利用できるようになる
<ViewTransition>コンポーネントが実験的にReactに追加された
<ViewTransition>で子要素をラップすることで、それらの間の変化をアニメーション機能を提供する<ViewTransition>を使う場合、Reactのコンポーネントを切り替えても内部のDOMノードが自動的に同じview-transition-nameを持つ場合、アニメーションが適用される(defaultでname=”auto”が割り当てられる)
ViewTransitionコンポーネントの使用方法
react@experimentalをinstallnpm install react@experimental現時点で実験的な機能なため
unstable_ViewTransitionとしてimportするimport { unstable_ViewTransition as ViewTransition } from 'react'conditionの変更はstartTransitionでラップする必要があるfunction App() { const [condition, setCondition] = useState(true) const changeCondition = () => { startTransition(() => { setCondition(prev => !prev) }) } return ( <> <botton onClick={changeCondition}> change condition </button> <ViewTransition> {condition ? <ComponentA /> : <ComponentB />} </ViewTransition> </> ) }
アニメーションのカスタマイズ
<ViewTransition>コンポーネントは、デフォルトでview-transition-name: autoを適用し、簡単なトランジションを自動的に行うより詳細なアニメーションを制御したい場合は、
nameプロパティを指定<ViewTransition name="sloq-fade"> {page === 'A' ? <PageA /> : <PageB />} </ViewTransition>これにより、CSSの
::view-transition-old(slow-fade)と::view-transition-new(slow-fade)疑似要素を使用して、アニメーションをカスタマイズできる
::view-transition-old(.slow-fade) { animation-duration: 500ms; } ::view-transition-new(.slow-fade) { animation-duration: 500ms; }
Suspenseのfallbackと組み合わせる
<ViewTransition>でfallbackとContentをラップすると、スケルトンからコンテンツへの切り替えも スムーズなクロスフェード になる<ViewTransition> <Suspense fallback={<Skeleton />}> <Content /> </Suspense> </ViewTransition>
Next.jsでの使い方
- Next.js 15.2では、実験的にReact View Transitions APIのサポートが追加された
<ViewTransition>コンポーネントを利用するには、next.config.jsでviewTransitionフラグをtrueに設定する// next.config.js module.exports = { experimental: { viewTransition: true, }, };
まとめ
- ViewTransitionコンポーネントは、ページ遷移ではなく、コンポーネント内での小さなUI変更をスムーズにしたい場合に利用する
- 完全なページ遷移で利用したい場合はstartViewTransitionを使う