idev_viewer 1.0.6
idev_viewer: ^1.0.6 copied to clipboard
IDev-based template viewer plugin for Flutter with 100% identical rendering across all platforms (Android, iOS, Web, Windows)
Changelog #
All notable changes to the IDevViewer project will be documented in this file.
1.0.6 - 2025-10-26 #
๐ง Changed #
base href๋ฅผ Flutter ํจํค์ง ๊ฒฝ๋ก๋ก ์๋ ์์ (/assets/packages/idev_viewer/assets/idev-app/)- ๋น๋ ์คํฌ๋ฆฝํธ์์
idev-viewer.js์คํฌ๋ฆฝํธ ํ๊ทธ ์๋ ์ถ๊ฐ - postMessage ํธ๋ค๋ฌ ์๋ ์ฝ์ ๊ฐ์ (Python ์คํฌ๋ฆฝํธ ์ฌ์ฉ)
- ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ๊ฐ์ (์ฌ์ ์ฒดํฌ, ์์ ์ถ๋ ฅ, ๋ค๋จ๊ณ ๊ฒ์ฆ)
๐ Fixed #
build-viewer.sh์ perl ์ ๊ท์ ๋ฌธ์ ํด๊ฒฐ- postMessage ํธ๋ค๋ฌ๊ฐ ๋๋ฝ๋๋ ๋ฌธ์ ์์
- ์ค๋ณต ํ ํ๋ฆฟ ์ฒ๋ฆฌ ๋ก์ง ์์ ํ
๐ Documentation #
pub-dev-deployment-guide.md์ ๋ฐ์ดํธrunning-guide.md์ ๋ฐ์ดํธ (ํฌํธ ๋ฒํธ ํต์ผ, ์์ ๊ตฌ์กฐ ๋ช ํํ)README.md์ ๋ฐ์ดํธ (์ํฌํ๋ก์ฐ ๊ฐ์ํ)- ๋ถํ์ํ ์คํฌ๋ฆฝํธ ์ ๊ฑฐ ์๋ด
๐๏ธ Removed #
sync-idev-core-sources.sh์ ๊ฑฐ (์ฌ์ฉํ์ง ์์)sync-idev-viewer-assets.sh์ ๊ฑฐ (pubspec.yaml assets ์ฌ์ฉ)build-idev-viewer-package.sh์ ๊ฑฐ (ํตํฉ ๋น๋๋ก ๋์ฒด)
๐๏ธ Infrastructure #
- ํตํฉ ๋น๋ ์คํฌ๋ฆฝํธ (
build-viewer.sh)๋ก ๋ชจ๋ ์์ ์๋ํ - Flutter ํจํค์ง ์์ ์์คํ ์ฌ์ฉ (ํ๋ซํผ๋ณ ์์ ๋๋ ํ ๋ฆฌ ์ ๊ฑฐ)
1.0.0 - 2025-10-26 #
โจ Added #
- ์ด๊ธฐ ๋ฆด๋ฆฌ์ฆ
- Flutter Web์ฉ ์ฝ๊ธฐ ์ ์ฉ ํ ํ๋ฆฟ ๋ทฐ์ด ๊ตฌํ
- iframe ๊ธฐ๋ฐ ๊ฒฉ๋ฆฌ ์คํ ํ๊ฒฝ
- PlatformView๋ฅผ ์ฌ์ฉํ Web ํตํฉ
- ๋์ ํ ํ๋ฆฟ ์ ๋ฐ์ดํธ ๊ธฐ๋ฅ
- Hot Restart ์๋ ๊ฐ์ง ๋ฐ ์ฌ์ฌ์ฉ
- ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅํ ๋ก๋ฉ ํ๋ฉด
- ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅํ ์๋ฌ ์ฒ๋ฆฌ
onReady์ฝ๋ฐฑ ์ง์
๐ Fixed #
- Hot Restart ์ iframe ์ค๋ณต ์์ฑ ๋ฌธ์ ํด๊ฒฐ
- "Container not found" ์๋ฌ ํด๊ฒฐ (PlatformView ๋ฑ๋ก ํ์ด๋ฐ ๊ฐ์ )
- ํ
ํ๋ฆฟ ์ค๋ณต ํธ์ถ ๋ฐฉ์ง (
lastTemplateId์ค๋ณต ์ฒดํฌ) window.flutterConfiguration์ง์ ์ค๋จ ๊ฒฝ๊ณ ํด๊ฒฐ (engineInitializer์ฌ์ฉ)- 404 ์๋ฌ ํด๊ฒฐ (viewer-app assets ๋ฑ๋ก)
- ์ด๊ธฐํ ๋ฒํผ์ด ์ฌํ์ฑํ๋๋ ๋ฌธ์ ํด๊ฒฐ
- ๋ทฐ์ด ํ๋ฉด ์ค์ฒฉ ๋ฌธ์ ํด๊ฒฐ
๐ง Changed #
dart:ui์์dart:ui_web๋ก ๋ง์ด๊ทธ๋ ์ด์ (platformViewRegistry)idevAppPath๋ฅผidev-app์ผ๋ก ์ฌ์ฉ (idev-viewer.jsํฌํจ)- Ready ํ์์์์ 10์ด๋ก ์ฆ๊ฐ
- ์ปจํ
์ด๋ ID๋ฅผ ๊ณ ์ ๊ฐ(
idev-viewer-container-singleton)์ผ๋ก ๋ณ๊ฒฝ - ๋๋ฒ๊น ๋ก๊ทธ ์ ๊ฑฐ (ํ๋ก๋์ ์ค๋น)
viewer-app์ ๊ฑฐํ๊ณidev-app๋จ์ผ ๊ฒฝ๋ก๋ก ํตํฉ
๐ Documentation #
- ์์ธํ ํตํฉ ๊ฐ์ด๋ ์์ฑ (
VIEWER_INTEGRATION_GUIDE.md) - README ์์ฑ
- ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ ์ถ๊ฐ
- ํธ๋ฌ๋ธ์ํ ๊ฐ์ด๋ ์ถ๊ฐ
- ์ฌ์ฉ ์์ ์ถ๊ฐ
๐๏ธ Architecture #
- JavaScript ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ Hot Restart ๋์
- postMessage ๊ธฐ๋ฐ Dart-JavaScript ํต์
- ์ค๋ณต ๋ฐฉ์ง ํ๋๊ทธ ์์คํ ๊ตฌํ
- DOM ์ปจํ ์ด๋ ๋๊ธฐ ๋ก์ง ๊ตฌํ (50ํ ์ฌ์๋, 5์ด)
- ํ ํ๋ฆฟ polling ์ค๋ณต ๊ฐ์ง ๋ฉ์ปค๋์ฆ
๐ฆ Assets #
idev-app(Flutter ์ฑ + idev-viewer.js) ํฌํจ- JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํตํฉ (
idev-viewer.js)
[Unreleased] #
๐ฎ Planned #
- ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ถ๊ฐ (
onEvent์ฝ๋ฐฑ) - ์ค์ ์ต์ ํ์ฅ (ํ ๋ง, ๋ก์ผ์ผ)
- ์ฑ๋ฅ ์ต์ ํ
- TypeScript ํ์ ์ ์ ์ถ๊ฐ
- ๋จ์ ํ ์คํธ ์ถ๊ฐ
- E2E ํ ์คํธ ์ถ๊ฐ
๋ฒ์ ํ์ #
ํ์์ Keep a Changelog์ ๋ฐ๋ฅด๋ฉฐ, ๋ฒ์ ๊ด๋ฆฌ๋ Semantic Versioning์ ๋ฐ๋ฆ ๋๋ค.
๋ฒ์ ๊ท์น #
- MAJOR: ํธํ๋์ง ์๋ API ๋ณ๊ฒฝ
- MINOR: ํ์ ํธํ ๊ฐ๋ฅํ ๊ธฐ๋ฅ ์ถ๊ฐ
- PATCH: ํ์ ํธํ ๊ฐ๋ฅํ ๋ฒ๊ทธ ์์
๋ณ๊ฒฝ ์ ํ #
- Added: ์๋ก์ด ๊ธฐ๋ฅ
- Changed: ๊ธฐ์กด ๊ธฐ๋ฅ ๋ณ๊ฒฝ
- Deprecated: ๊ณง ์ ๊ฑฐ๋ ๊ธฐ๋ฅ
- Removed: ์ ๊ฑฐ๋ ๊ธฐ๋ฅ
- Fixed: ๋ฒ๊ทธ ์์
- Security: ๋ณด์ ๊ด๋ จ ๋ณ๊ฒฝ