reactive_mind_map 1.0.5
reactive_mind_map: ^1.0.5 copied to clipboard
A customizable mind map widget for Flutter apps. Create interactive mind maps with various layout options, themes, and interactions.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.5 - 2024-12-16 #
๐ ์๋ก์ด ๊ธฐ๋ฅ / New Features #
- CameraFocus ๊ธฐ๋ฅ ์ถ๊ฐ: ๋ง์ธ๋๋งต์ ์นด๋ฉ๋ผ ํฌ์ปค์ค๋ฅผ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ ์ดํ ์ ์๋ ๊ธฐ๋ฅ
CameraFocus.rootNode: ๋ฃจํธ ๋ ธ๋ ์ค์ฌ์ผ๋ก ํฌ์ปค์คCameraFocus.center: ์บ๋ฒ์ค ์ ์ค์์ผ๋ก ํฌ์ปค์คCameraFocus.fitAll: ๋ชจ๋ ๋ ธ๋๊ฐ ๋ณด์ด๋๋ก ์๋ ์กฐ์ (์ค๋งํธ ์ค์ผ์ผ๋ง)CameraFocus.firstLeaf: ์ฒซ ๋ฒ์งธ ๋ฆฌํ ๋ ธ๋๋ก ํฌ์ปค์คCameraFocus.custom: ํน์ ๋ ธ๋ ID๋ก ํฌ์ปค์ค (focusNodeId์ ํจ๊ป ์ฌ์ฉ)
- ํฌ์ปค์ค ์ ๋๋ฉ์ด์
:
focusAnimation์์ฑ์ผ๋ก ๋ถ๋๋ฌ์ด ํฌ์ปค์ค ์ด๋ ์ ๋๋ฉ์ด์ ์ง์ - ํฌ์ปค์ค ์ฌ๋ฐฑ:
focusMargin์์ฑ์ผ๋ก ํฌ์ปค์ค ์ ์ฌ๋ฐฑ ์กฐ์ ๊ฐ๋ฅ - ์์ Container ํ๊ฒฝ ์ต์ ํ: ์ ํ๋ ๊ณต๊ฐ์์๋ ๋ง์ธ๋๋งต์ด ์ ๋ณด์ด๋๋ก ๊ฐ์
๐ ๏ธ ๊ฐ์ ์ฌํญ / Improvements #
- ์นด๋ฉ๋ผ ํฌ์ปค์ค ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ๋ ์ ์ฐํ ๋ทฐ ์ ์ด ๊ฐ๋ฅ
fitAll๋ชจ๋์์ ์ค๋งํธ ์ค์ผ์ผ๋ง์ผ๋ก ๋ชจ๋ ๋ ธ๋๋ฅผ ํจ์จ์ ์ผ๋ก ํ์- ํธ๋์คํผ ์ ๋๋ฉ์ด์ ์ฑ๋ฅ ์ต์ ํ
- ์์ Container์์์ UX ๋ํญ ๊ฐ์
๐ฆ ์๋ก์ด API #
cameraFocus: ์นด๋ฉ๋ผ ํฌ์ปค์ค ์ต์ ์ค์ focusNodeId: ํฌ์ปค์คํ ํน์ ๋ ธ๋ IDfocusAnimation: ํฌ์ปค์ค ์ ๋๋ฉ์ด์ ์ง์์๊ฐfocusMargin: ํฌ์ปค์ค ์ ์ฌ๋ฐฑ ์ค์
๐ฏ ์ฌ์ฉ ์ฌ๋ก #
์์ ์์ ฏ์ด๋ ์ ํ๋ ๊ณต๊ฐ์์ ๋ง์ธ๋๋งต์ ์ฌ์ฉํ ๋ ํนํ ์ ์ฉํฉ๋๋ค:
Container(
height: 200,
child: MindMapWidget(
data: data,
cameraFocus: CameraFocus.fitAll,
focusAnimation: Duration(milliseconds: 500),
focusMargin: EdgeInsets.all(10),
),
)
1.0.4 - 2025-06-19 #
Added #
- ๐ฏ ์๋ ์ค์ ์ ๋ ฌ ๊ธฐ๋ฅ: ์ด๊ธฐ ๋ก๋ ์ ๋ฃจํธ ๋ ธ๋๊ฐ ์๋์ผ๋ก ํ๋ฉด ์ค์์ ์์น / Auto-centering: Root node automatically centers on initial load
- ๐ ์ด๊ธฐ ์ค ์ค์ผ์ผ ์ค์ :
initialScale์์ฑ์ผ๋ก ๊ธฐ๋ณธ ํ๋/์ถ์ ๋ ๋ฒจ ์กฐ์ ๊ฐ๋ฅ / Initial zoom scale:initialScaleproperty for default zoom level control - ๐ ๋
ธ๋ ๊ธฐ๋ณธ ํ์ฅ ์ํ:
isNodesCollapsed์์ฑ์ผ๋ก ๋ ธ๋ ์ด๊ธฐ ์ํ ์ ์ด / Default node expansion:isNodesCollapsedproperty for initial node state control - ๐ธ ์ด๋ฏธ์ง ์บก์ฒ ๊ธฐ๋ฅ:
captureKey์์ฑ์ผ๋ก ๋ง์ธ๋๋งต์ ์ด๋ฏธ์ง๋ก ์ ์ฅ ๊ฐ๋ฅ / Image capture:captureKeyproperty for saving mind map as image - ๐ TransformationController ์ง์: ๋ทฐํฌํธ ์์น ๋ฐ ์ค ๋ ๋ฒจ ํ๋ก๊ทธ๋๋ฐ ์ ์ด / TransformationController support: Programmatic viewport and zoom control
Improved #
- ๐ง ํ
์คํธ ๋ ๋๋ง ํ์ง:
softWrap: true์ ์ฉ์ผ๋ก ํ ์คํธ ์ค๋ฒํ๋ก์ฐ ๋ฐฉ์ง / Text rendering quality:softWrap: trueprevents text overflow - โก ์ด๊ธฐ ๋ก๋ฉ ์ฑ๋ฅ: ์๋ ์ค์ ์ ๋ ฌ๋ก ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ / Initial loading performance: Auto-centering improves user experience
- ๐จ InteractiveViewer ์ต์ ํ: ๋ ๋ถ๋๋ฌ์ด ํฌ/์ค ์ธํฐ๋์ / InteractiveViewer optimization: Smoother pan/zoom interactions
- ๐ฑ ๋ฐ์ํ ๊ฐ์ : ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์์ ๋ ๋์ ์ ์์ฑ / Responsive improvements: Better adaptation to various screen sizes
Fixed #
- โ ์ด๊ธฐ ๋ทฐํฌํธ ๋ฌธ์ : ๋ฃจํธ ๋ ธ๋๊ฐ ํ๋ฉด ๋ฐ์ ์์นํ๋ ๋ฌธ์ ํด๊ฒฐ / Initial viewport issue: Fixed root node appearing outside viewport
- ๐ค ํ ์คํธ ์๋ฆผ ๋ฌธ์ : ๊ธด ํ ์คํธ์ ํ์ ์ค๋ฅ ํด๊ฒฐ / Text clipping issue: Fixed display errors with long text
- ๐ฏ ๋ ธ๋ ํฌ์ปค์ค ๋ฌธ์ : ์ฌ์ฉ์๊ฐ ๋ง์ธ๋๋งต์ ์ฐพ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ํด๊ฒฐ / Node focus issue: Fixed difficulty finding mind map content
Breaking Changes #
- None - ์ด ์ ๋ฐ์ดํธ๋ ๋ชจ๋ ๊ธฐ์กด API์ ํธํ๋ฉ๋๋ค / This update is fully compatible with existing APIs
Usage Examples #
MindMapWidget(
data: yourMindMapData,
initialScale: 0.8, // ์ด๊ธฐ 80% ์ค ๋ ๋ฒจ
isNodesCollapsed: false, // ๋ชจ๋ ๋
ธ๋ ๊ธฐ๋ณธ ํ์ฅ
captureKey: GlobalKey(), // ์ด๋ฏธ์ง ์บก์ฒ์ฉ ํค
style: MindMapStyle(
// ... ๊ธฐ์กด ์คํ์ผ ์ค์
),
)
Contributors #
- Special thanks to @TOZXII for the major contributions including auto-centering, initial scale, and image capture features
1.0.3 - 2025-06-06 #
Added #
- ์ค์ ๋ ธ๋ ์์น ๊ธฐ๋ฐ ๋์ ์บ๋ฒ์ค ํฌ๊ธฐ ๊ณ์ฐ ์์คํ / Dynamic canvas sizing system based on actual node positions
- ์ฝํ ์ธ ๊ฒฝ๊ณ ๋ฐ์ค ๊ณ์ฐ์ผ๋ก ์ ํํ ์บ๋ฒ์ค ํฌ๊ธฐ ๊ฒฐ์ / Accurate canvas sizing through content bounding box calculation
- ์ค๋งํธ ํจ๋ฉ ์์คํ ์ผ๋ก ์ต์ ํ๋ ์ฌ๋ฐฑ ๊ด๋ฆฌ / Smart padding system for optimized margin management
Improved #
- ํ ์คํธ ๋ผ์ธ ์ ์ ํ ํด์ (๋ฌด์ ํ ํ ์คํธ ํ์ ๊ฐ๋ฅ) / Unlimited text lines support (removed maxLines restriction)
- ํ๊ตญ์ด/์์ด ์ฃผ์ ์์ ํ์คํ (ํ๊ตญ์ด ๋จผ์ , ์์ด ๋์ค) / Standardized Korean/English comment order
- ๋น๋์นญ ํธ๋ฆฌ ๊ตฌ์กฐ์์๋ ์ ํํ ๋ ์ด์์ ๊ณ์ฐ / Accurate layout calculation even for asymmetric tree structures
- ๋ ธ๋ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ๋์ ์ฌ๋ฐฑ ์กฐ์ / Dynamic margin adjustment based on node sizes
- InteractiveViewer ๊ธฐ๋ณธ ์ค์ ๊ฐ์ (constrained: true, ๊ฒฝ๊ณ ๋ง์ง ์ถ์) / Improved InteractiveViewer defaults
Fixed #
- ํฐ ๋ง์ธ๋๋งต์์ ๋ ธ๋๊ฐ ์บ๋ฒ์ค ๊ฒฝ๊ณ๋ฅผ ๋ฒ์ด๋๋ ๋ฌธ์ ํด๊ฒฐ / Fixed nodes exceeding canvas boundaries in large mind maps
- ์ฝํ ์ธ ํฌ๊ธฐ์ ์บ๋ฒ์ค ํฌ๊ธฐ ๋ถ์ผ์น ๋ฌธ์ ํด๊ฒฐ / Resolved content size and canvas size mismatch issues
- ๋ฃจํธ ๋ ธ๋ ์์น ๊ณ์ฐ ์ ํ๋ ํฅ์ / Improved root node positioning accuracy
- MindMapWidget์ด Expanded ์์ ฏ ์์์ ํ๋ฉด์ ๋ฒ์ด๋๋ ๋ฌธ์ ํด๊ฒฐ / Fixed MindMapWidget exceeding screen boundaries inside Expanded widget
Technical Details #
- 2๋จ๊ณ ๋ ์ด์์ ์์คํ : ์์ ๊ณ์ฐ โ ์ค์ ํฌ๊ธฐ ๊ณ์ฐ โ ์ฌ์กฐ์ / Two-stage layout system: temporary calculation โ actual size calculation โ readjustment
_calculateRequiredCanvasSize()๋ฉ์๋๋ก ์ ํํ ์บ๋ฒ์ค ํฌ๊ธฐ ๊ณ์ฐ / Precise canvas size calculation with_calculateRequiredCanvasSize()method_collectAllVisibleNodes()๋ฉ์๋๋ก ํจ์จ์ ์ธ ๋ ธ๋ ์์ง / Efficient node collection with_collectAllVisibleNodes()method- README์ ์ค์ํ ์ฌ์ฉ๋ฒ ์ฃผ์์ฌํญ ์ถ๊ฐ / Added important usage notes to README
1.0.2 - 2025-06-13 #
Added #
- Screenshots and demo GIF in README
- GitHub raw links for images to ensure pub.dev compatibility
- Improved README readability with emojis and cleaner formatting
- Bilingual documentation (Korean/English)
Improved #
- Dynamic spacing calculation based on node sizes
- Better curve control points for connections
- Code comments with English translations
- Documentation structure and visual presentation
Fixed #
- Image display issues on pub.dev by using GitHub raw URLs
- Code formatting and removed unnecessary comments
1.0.1 - 2025-06-13 #
Added #
- Dynamic node sizing based on text content
- Enhanced spacing calculations for better layout
- Improved connection line rendering
- Auto-sizing configuration options
Improved #
- Node overlap prevention
- Curve connection quality
- Layout consistency across all directions
- Performance optimizations
Fixed #
- Connection point calculations for variable node sizes
- Layout issues in split arrangements
- Animation smoothness
1.0.0 - 2025-06-13 #
Added #
- Initial release of Reactive Mind Map package
- Multiple layout options (right, left, top, bottom, radial, horizontal, vertical)
- Six node shapes (rounded rectangle, circle, rectangle, diamond, hexagon, ellipse)
- Comprehensive styling system with MindMapStyle
- Interactive features (tap, long press, double tap, expand/collapse)
- Smooth animations with customizable curves and duration
- Pan and zoom functionality
- Rich customization options for colors, fonts, and effects
- Shadow effects for nodes
- Connection line customization
- Comprehensive test suite
- Example application demonstrating all features
- MIT License
- Complete documentation
๊ธฐ์ ์ ํน์ง #
- Flutter 3.0+ ์ง์
- ๋ฐ์ํ ๋์์ธ
- ์ ๊ทผ์ฑ ๊ณ ๋ ค
- ํ์ ์์ ์ฑ
์ง์ ํ๋ซํผ #
- Android
- iOS
- Web
- Windows
- macOS
- Linux