An open API service indexing awesome lists of open source software.

https://github.com/victor-zarzar/flutter_boilerplate

A basic multi-platform flutter boilerplate for mobile and web, built with MVVM, i18n, Dark Mode, GoRouter, Notifications, Provider, Responsive, Sentry, Google fonts, Material Design 3.
https://github.com/victor-zarzar/flutter_boilerplate

android android-studio boilerplate dart flutter material-design mvvm xcode

Last synced: about 2 months ago
JSON representation

A basic multi-platform flutter boilerplate for mobile and web, built with MVVM, i18n, Dark Mode, GoRouter, Notifications, Provider, Responsive, Sentry, Google fonts, Material Design 3.

Awesome Lists containing this project

README

          


flutter_boilerplate - Flutter Multi-Platform Boilerplate


Dart
Flutter
Material Design 3
MVVM
Provider


A basic multi-platform Flutter boilerplate for mobile and web. Built with MVVM architecture, featuring i18n, Dark Mode, GoRouter, Notifications, Provider, Responsive layout, Sentry, Google Fonts, and Material Design 3.

---

Tech Stack







### Core Technologies

- **Dart** - Programming language
- **Flutter** - Cross-platform UI framework
- **Material Design 3** - Modern design system
- **MVVM** - Architecture pattern (Model - View - ViewModel)
- **Provider** - State management solution

### Features & Integrations

- **Multi-Platform Support** - Android, iOS, Web
- **Google Fonts** - Beautiful typography
- **i18n** - Multi-language support (EN / PT-BR / ES)
- **Dark Mode Provider** - Theme switching
- **GoRouter** - Declarative routing with adaptive navigation (mobile/web)
- **Flutter Local Notifications** - Push notifications
- **Responsive Layout** - Adaptive UI for mobile and web
- **Sentry Logs** - Error tracking and monitoring
- **Skeleton** - Skeleton Wrapper Widget Animation

---

Prerequisites

Before starting, ensure you have the following installed:

- [FVM (Flutter Version Management)](https://fvm.app/documentation/getting-started/installation) - Required for managing Flutter versions
- [Git](https://git-scm.com/)
- [Xcode](https://developer.apple.com/xcode/) (for iOS development on macOS)
- [Android Studio](https://developer.android.com/studio) (for Android development)

> **Note**: This project uses FVM for Flutter version management. You don't need to install Flutter globally.

> Optional: [VS Code](https://code.visualstudio.com/) or [Android Studio](https://developer.android.com/studio) with Flutter plugins for IDE support.

---

Installation & Setup

### 1. Clone the Repository (Template)

```bash
git clone https://github.com/Victor-Zarzar/flutter_boilerplate.git my_app
cd my_app
flutter pub get
```

### 2. Open in your editor (example: Zed Editor)

```bash
zed .
```

### 3. Install Dependencies

```bash
flutter pub get
```

---

Usage

### Local Development

#### Mobile (iOS Simulator)

```bash
make run-ios
```

### Inspect Devtools

```bash
dart devtools
```

#### Web (Google Chrome)

```bash
make run-chrome
```

#### Or Web Server default

```bash
make run-web-server
```

Access the application at `http://localhost:xxxx`

---

Development

### Code Analysis

Check for code issues:

```bash
flutter analyze
```

### Testing

Run all tests:

```bash
flutter test
```

### Format Code

Format all files:

```bash
dart format .
```

---

Deployment

### Android (Google Play Store)

Build release APK:

```bash
flutter build apk --release
```

Build release AppBundle:

```bash
flutter build appbundle --release
```

The generated files will be at:

- APK: `build/app/outputs/flutter-apk/app-release.apk`
- AppBundle: `build/app/outputs/bundle/release/app-release.aab`

### iOS (App Store)

```bash
flutter build ios --release
```

The generated files will be at:

- IPA: `build/ios/ipa/`

### Web

```bash
flutter build web --release
```

The generated files will be at: `build/web/`

### With Sentry Monitoring

For all platforms, pass your DSN as an environment variable:

```bash
SENTRY_DSN=your-dsn-here flutter build apk --release
SENTRY_DSN=your-dsn-here flutter build ios --release
SENTRY_DSN=your-dsn-here flutter build web --release
```

### Sentry Configuration

All production builds include:

- **Error tracking** with Sentry DSN
- **Code obfuscation** for security
- **Debug symbols** upload for crash symbolication

Make sure to:

1. Set your `SENTRY_DSN` from your Sentry project
2. Upload debug symbols to Sentry after each release for proper stack traces
3. Keep `build/debug-info/` directory for symbolication

---

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the project
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

---

License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

Contact

Victor Zarzar - [@Victor-Zarzar](https://github.com/Victor-Zarzar)

Project Link: [https://github.com/Victor-Zarzar/flutter_boilerplate](https://github.com/Victor-Zarzar/flutter_boilerplate)

---