Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ストアが紡ぐ地図アプリケーション

 ストアが紡ぐ地図アプリケーション

2024.08.30『Svelte Japan Online Meetup #4』で発表
#svelte #mierune #sveltejapan #sveltesapporo

ブーチョ

August 30, 2024
Tweet

Other Decks in Technology

Transcript

  1. MIERUNE について 位置情報に特化した様々なソリューションを提供 https://speakerdeck.com/sorami/svelte-japan-online-meetup-number-3 Svelte Japan Online Meetup #3 では

    技術リードが採用の経緯を発表! 札幌初?! 2024年より、Svelteを全社標準スタックとして採用 2024.08.30 Svelte Japan Online Meetup #4
  2. 2024.08.30 Svelte Japan Online Meetup #4 しばしば起こる 状態管理ライブラリなに使う問題 React Redux

    Recoil Zustand Jotai ... Vue.js Vuex Pinia ... または inject・provider? svelteのストア
  3. 2024.08.30 Svelte Japan Online Meetup #4 ストアの概念 svelte/storeモジュール ストア ストアコントラクト

    カスタムストア svelteのストア 値を格納する場所 Svelteが提供するストア機能のモジュール writable, readable, derivedを用いてストアを作成 基本的なインターフェイス subscribe, set, update 独自実装するストア
  4. 2024.08.30 Svelte Japan Online Meetup #4 svelteのストア svelte/storeモジュール ストア ストアコントラクト

    カスタムストア 定義 writable, readable, derivedに準拠 利用方法を定義 データベースを作る・蔵書APIを作る 本を取る・追加する 新たな利用方法を定義 subscribe, set, update
  5. 地図アプリのつらみ 2024.08.30 Svelte Japan Online Meetup #4 例えば↓の3D地図アプリ Svelte4+CesiumJSで構築          が提供する

    3D地理空間データの可視化を提供する オープンソースJavaScriptライブラリ CesiumJSとは・・・ fyi: Svelte5では依存関係が複雑で利用は 厳しい
  6. 地図アプリのつらみ 2024.08.30 Svelte Japan Online Meetup #4 src/
 ├─ routes


    │ └─ +page.svelte // ルートコンポーネント
 └─ components
 ├─ MapPane.svelte // 地図描画用コンポーネント
 ├─ Sidebar.svelte // サイドバー用コンポーネント
 └─ measurement
 ├─ MeasurementModal.svelte // 計測モーダル 
 ├─ Distance.svelte // 距離測定用コンポーネント
 └─ Elevation.svelte // 標高取得用コンポーネント
  7. 2024.08.30 Svelte Japan Online Meetup #4 データバインドの複雑化&密結合 +page.svelte MapPane.svelte 地図画面

    MeasureModal.svelte 計測モーダル Elevation.svelte 標高計測モーダル ⁨ ⁩ Distance.svelte 距離計測モーダル Sidebar.svelte サイドバー src/
 ├─ routes
 │ └─ +page.svelte // ルートコンポーネント
 └─ components
 ├─ ├─ Sidebar.svelte // サイドバー用コンポーネント
 └─ measurement
 ├─ MeasurementModal.svelte // 計測モーダル 
 ├─ Distance.svelte // 距離測定用コンポーネント
 └─ Elevation.svelte // 標高取得用コンポーネント MapPane.svelte // 地図描画用コンポーネント
 地図インスタンス・関数 地図アプリのつらみ 機能が増えるほど このようなバケツリレーが 往々にして起こりうる
  8. ストアの活用 2024.08.30 Svelte Japan Online Meetup #4 +page.svelte MapPane.svelte 地図画面

    MeasureModal.svelte 計測モーダル Elevation.svelte 標高計測モーダル Elevation.svelte 標高計測モーダル ⁨⁩Distance.svelte 距離計測モーダル ⁨⁩Distance.svelte 距離計測モーダル Sidebar.svelte サイドバー 地図インスタンス・関数 地図インスタンス ストア 購読(subsctibe) update カスタムストア関数 get カスタムストア関数 MapPane.svelte 地図画面 Sidebar.svelte サイドバー 計算ロジック
  9. ストアの活用 2024.08.30 Svelte Japan Online Meetup #4 疎結合の実現 保守性・拡張性の担保 “Svelteらしい”コードに

    バケツリレーの解消 Elevation.svelte 標高計測モーダル ⁨⁩Distance.svelte 距離計測モーダル 地図インスタンス ストア 購読(subsctibe) update カスタムストア関数 get カスタムストア関数 MapPane.svelte 地図画面 Sidebar.svelte サイドバー 計算ロジック