A professional and fast Flutter application for converting numbers between different numeral systems (Binary, Octal, Decimal, Hexadecimal) with an elegant user interface and modern design.
- Instant conversion between 4 numeral systems:
- Binary (2): Binary number system
- Octal (8): Octal number system
- Decimal (10): Decimal number system
- Hexadecimal (16): Hexadecimal number system
- Real-time validation of number correctness
- Clear and helpful error messages
- Automatic prevention of incorrect inputs
- Glass Morphism design (glass-like effects)
- Professional dark theme that's easy on the eyes
- Smooth and fluid animations
- Instant response to user input
- Clean Architecture with complete separation of concerns
- BLoC Pattern for effective state management
- Maintainable and developable code
- Easy to add new features
- Instant conversions even for very large numbers
- Responsive interface with no lag
- Low resource consumption
- Flutter 3.9.2 or later
- Dart 3.9.2 or later
- Linux / macOS / Windows# 1. Install dependencies
cd /home/x/Desktop/Vaxp-Template
flutter pub get
# 2. Run the application
flutter run -d linux # or macos or windows
# 3. Or from VS Code
# Press F5 for direct run1. Enter the number you want to convert
2. Select the source numeral system (from)
3. Select the target numeral system (to)
4. Press the "Convert" button
5. Click the result to copy it automatically
| From | Input | To | Result |
|---|---|---|---|
| Decimal | 255 | Hexadecimal | FF |
| Hexadecimal | FF | Binary | 11111111 |
| Binary | 1010 | Decimal | 10 |
| Decimal | 64 | Octal | 100 |
| Octal | 77 | Decimal | 63 |
| Hexadecimal | ABC | Decimal | 2748 |
The project follows Clean Architecture with BLoC:
lib/
βββ domain/ # Domain (Business Logic)
β βββ entities/
β βββ repositories/
β βββ usecases/
βββ data/ # Data (Implementation)
β βββ repositories/
βββ application/ # Application (State Management)
β βββ blocs/
β βββ events/
β βββ states/
βββ presentation/ # Presentation (UI)
β βββ screens/
β βββ widgets/
βββ infrastructure/ # Infrastructure
β βββ services/
βββ core/ # Core Elements
βββ colors/
βββ theme/
βββ text/
- ConversionResult: Entity representing the result
- NumberRepository: Contract interface
- UseCases: Use cases (conversion, validation, numeral systems)
- NumberRepositoryImpl: Actual conversion implementation
- Precise and fast conversion algorithms
- NumberConversionBloc: State management
- Events: Events (convert, validate, clear)
- States: States (loading, success, error)
- ConverterScreen: Main screen
- BaseSelector: System selection
- NumberInputField: Number input field
- ResultDisplay: Result display
flutter_bloc: ^8.1.6 # State management
bloc: ^8.1.4 # Core logic
equatable: ^2.0.5 # Object comparison
window_manager: ^0.5.1 # Window management
venom_config: ^0.0.1 # Settings system- Primary: Dark gray used for main elements
- Secondary: Blue for secondary elements
- Glass Surface: Transparent glass effect
- β¨ Glassmorphism: Professional glass effect
- π Blur: Smooth blur effect
- π Smooth Animations: Fluid movements
- π¨ Dark Theme: Modern dark theme
User enters a number
β
Selects input and output systems
β
Presses "Convert" button
β
BLoC validates input
β
Repository performs conversion
β
State emits result
β
Interface displays result
- β Clean and organized code (Clean Code)
- β Dart and Flutter standards (Linting)
- β Comprehensive error handling
- β Clear error messages
- β Professional user interface
- β High and fast performance
- β Maintainable and developable
- π» Systems Programming: Understanding binary and Hex values
- π Education: Learning numeral systems
- π¨ Design: Converting RGB/HEX colors
- π Networking: IP calculations and masks
- π± Development: Data values and addresses
- π Conversion history
- π Batch conversion (Multiple conversions)
- πΎ Save favorites
- π Multi-language support
- π¨ Theme and color customization
- π Usage statistics
- Clean and easy-to-use interface
- Large numbers are fully supported
- Hexadecimal supports both A-F and a-f
- Conversion is instant with no delay
- Interface is intuitive for everyone
Solution: Make sure the numbers are correct:
- Binary: Only 0 and 1
- Octal: 0-7
- Decimal: 0-9
- Hexadecimal: 0-9, A-F
Solution: Enter a number before pressing convert
Solution: Make sure:
- All dependencies are installed (
flutter pub get) - Flutter is working correctly (
flutter doctor)
To add new features, follow the existing structure:
- Add UseCase in
domain/usecases/ - Add Implementation in
data/repositories/ - Add Event/State in
application/ - Add Widget/Screen in
presentation/
VAXP organization projects