Toolset · Dart, Riverpod, single codebase
Flutter
- Dart
- Flutter
- Riverpod
Flutter gives one codebase across iOS and Android. Our stack keeps state predictable, storage transactional, and secrets off the device filesystem — the failure modes that bite cross-platform apps hardest.
Where two tools compete, the one marked our default is what we reach for.
Build & dependencies
1 toolDart's package manager and registry; dependencies declared in pubspec.yaml. Pin versions and audit transitive packages.
Dependency injection
1 toolA service locator (get_it) plus optional codegen (injectable) for registration. Our default — simple and testable.
final getIt = GetIt.instance;
void setup() {
getIt.registerLazySingleton<ApiClient>(() => ApiClient());
getIt.registerFactory<UserRepository>(() => UserRepository(getIt()));
}
// use: final repo = getIt<UserRepository>();State management
2 toolsNetworking
2 toolsLocal storage
3 toolsReactive, type-safe SQLite with real transactions — avoid the load-mutate-store races that plague blob stores (see the local-first blueprint). Our default.
Fast key-value store; keep writes single-writer to avoid lost updates.
Keychain/Keystore-backed secure storage for tokens.
Serialization & navigation
2 toolsImmutable models, unions, and JSON codegen. Our default for data classes.
Declarative, deep-link-friendly routing.
Testing
2 toolsWidget/unit tests with null-safe mocking. Our default.
First-party end-to-end tests on a real device/emulator.
Monitoring & observability
4 toolsCrash reporting for Flutter on iOS and Android; record Dart errors and native crashes together. Our default.
Crashes, performance, and error monitoring across Flutter with a single SDK and dashboard.
Automatic and custom performance traces — app start, network calls, and screen rendering.
Timeline, memory, and widget-inspector profiling in development.
CI/CD
4 toolsCI for analyze / test / build; cache pub and the Flutter SDK. Our default CI.
Flutter-specialised CI/CD with signing and store publishing built in.
Store deployment automation for the iOS and Android outputs.
Beta builds to testers on both platforms.
Linting & formatting
3 toolsThe built-in analyzer with the recommended lint set enabled. Our default.
The official, zero-config formatter. Our default for formatting.
A stricter lint ruleset when you want more rigour.
Building on Flutter?
We ship production Flutterwith exactly this stack. Tell us what you're building.
Start a conversation