A comprehensive multi-platform project for dynamic forms with native implementations for Android and iOS, designed to handle complex form workflows with enterprise-grade architecture.
Dynamic Forms is a sophisticated form management system that dynamically renders forms based on JSON configurations. The project demonstrates modern mobile development practices with Clean Architecture, SOLID principles, and comprehensive testing strategies.
- Complete Clean Architecture Implementation with Domain, Data, and Presentation layers
- Advanced Form Engine supporting TEXT, NUMBER, DROPDOWN, and DESCRIPTION field types
- Sophisticated State Management with auto-save and draft capabilities
- Comprehensive Testing Suite covering all architectural layers
- Performance Optimizations including virtual scrolling for 200+ fields and memory management
- Edit Workflows with draft editing and submitted entry editing capabilities
- Real-time Validation with immediate feedback and error handling
- Section Organization with HTML-supported titles and progress tracking
- Complete SwiftUI Implementation with Clean Architecture and MVVM pattern
- Advanced Form Engine supporting all field types with dynamic rendering
- Sophisticated State Management using Combine and SwiftUI state management
- Dual Persistence Support with both Core Data and SwiftData implementations
- Comprehensive Module Structure using Swift Package Manager
- Edit Draft System with auto-save and conflict resolution
- Performance Optimizations including lazy loading and virtual scrolling
- Rich HTML Support for section titles and descriptions
This main repository contains:
- Shared configurations and documentation
- JSON schemas for dynamic forms (
200-form.json,all-fields.json) - Git submodules for native implementations with independent architectures
dynamic-forms-android/- Kotlin/Jetpack Compose (Production Ready) - Repositorydynamic-forms-ios/- Swift/SwiftUI (Production Ready) - Repository
git clone --recursive https://github.com/willianpinho/dynamic-forms.gitgit clone https://github.com/willianpinho/dynamic-forms.git
cd dynamic-forms
git submodule init
git submodule updategit submodule update --remotecd dynamic-forms-android # or dynamic-forms-ios
# Make changes, commits, etc.
# The submodule is an independent Git repository# After making commits in the submodule
git add dynamic-forms-android # or dynamic-forms-ios
git commit -m "Update Android submodule to latest version"- Clean Architecture with clear separation of concerns
- MVVM Pattern with ViewModels and StateFlow for reactive UI
- Dependency Injection using Hilt for scalable architecture
- Modular Design with feature-based modules
- Dynamic Form Rendering supporting TEXT, NUMBER, DROPDOWN, and DESCRIPTION fields
- Section-Based Organization with HTML support for titles and descriptions
- Auto-Save Functionality with background persistence and conflict resolution
- Draft Management with comprehensive edit capabilities
- Real-Time Validation with immediate feedback and error handling
- Virtual Scrolling for performance with large forms (200+ fields)
- Edit Workflows for drafts and submitted entries
- Kotlin (2.0.21) with K2 Compiler and Coroutines for asynchronous operations
- Jetpack Compose for modern declarative UI
- Room Database for local persistence
- Navigation Compose with type-safe arguments
- Hilt for dependency injection
- Timber for structured logging
- Clean Architecture with clear separation of concerns using Swift Package Manager
- MVVM Pattern with ViewModels and Combine for reactive UI
- Dependency Injection using protocol-based DI container
- Modular Design with feature-based Swift packages
- Dynamic Form Rendering supporting all field types with SwiftUI adaptive components
- Section-Based Organization with HTML support and progress tracking
- Auto-Save Functionality with intelligent timing and background persistence
- Edit Draft System with conflict resolution and state management
- Real-Time Validation with context-aware error handling
- Performance Optimizations with lazy loading and virtual scrolling
- Swift (5.9+) with modern concurrency and async/await
- SwiftUI for declarative UI framework
- Combine for reactive programming
- Core Data & SwiftData for dual persistence support
- Swift Package Manager for modular architecture
- Unit Tests for all use cases and repositories
- Integration Tests for database operations
- ViewModel Tests for state management validation
- UI Tests for component behavior validation
- TEXT - Text input with validation
- NUMBER - Numeric input with type checking
- DROPDOWN - Selection from predefined options
- DESCRIPTION - HTML content display
- Sections - Organized field grouping with progress tracking
- Validation - Required field checking and type validation
- Auto-Save - Automatic draft saving during form filling
- Edit Modes - New entry, draft editing, and submitted entry editing
- Progress Tracking - Visual indicators for completion status
200-form.json- Complex form with 200 fields across 10 sectionsall-fields.json- Comprehensive example showcasing all supported field types
- Large-Scale Forms - Performance testing with hundreds of fields
- Complex Validation - Multiple validation scenarios
- Section Organization - Logical grouping of related fields
- HTML Content - Rich text support in descriptions
- β Clean Architecture setup for both platforms
- β Core domain models implementation
- β Database layer with Room (Android) and Core Data/SwiftData (iOS)
- β Basic UI structure with Jetpack Compose and SwiftUI
- β Dynamic form rendering engine for both platforms
- β Field validation system with real-time feedback
- β Auto-save functionality with intelligent timing
- β Navigation implementation with type safety
- β Draft management system with edit capabilities
- β Edit workflows for existing entries
- β Performance optimizations including virtual scrolling
- β Comprehensive testing suite for both platforms
- β iOS complete implementation with SwiftUI and Combine
- β Android performance optimizations and Kotlin 2.0.21 upgrade
- β Cross-platform feature parity
- β Enterprise-grade architecture and testing
Both platforms are now production-ready with complete feature parity. Future development focuses on advanced capabilities:
- Advanced Field Types - Date pickers, file uploads, signature fields, multi-select
- Remote Form Loading - API integration for dynamic form definitions and cloud storage
- Offline Synchronization - Background sync capabilities and conflict resolution
- Analytics Integration - Form usage metrics, completion analytics, and user behavior insights
- Multi-language Support - Internationalization and localization support
- Accessibility Improvements - Enhanced screen reader support and accessibility features
- Cloud Integration - CloudKit (iOS) and Firebase/Google Cloud (Android) synchronization
MIT License - see the LICENSE file for details.
| Platform | Status | Version | Architecture | Features |
|---|---|---|---|---|
| Android | π Production Ready | 1.0.0 | Clean Architecture + MVVM | Complete with advanced optimizations |
| iOS | π Production Ready | 1.0.0 | Clean Architecture + MVVM | Complete with dual persistence support |
Last Updated: August 2025
Cross-Platform Feature Parity: β
Complete
Enterprise-Grade Architecture: β
Both Platforms