simply 2.0.2
simply: ^2.0.2 copied to clipboard
Flutter made simple, Simply is a light-weight package for creating production-ready applications easily and quickly, although it handles dependency injection/state-management, however it doesn't enfor [...]
example/main.dart
import 'package:flutter/material.dart';
import 'package:simply/simply.dart';
void main() {
runApp(TestApp());
}
//App
class TestApp extends SimpleMaterialApp {
TestApp({Key? key}) : super(key: key);
@override
MaterialApp buildApp(SimpleServiceProvider provider, String payload) {
return const MaterialApp(
home: TestWidget(),
);
}
@override
Future<void> initialize(SimpleServiceRegistry registery) async {
registery.register<IMenuItemsRepo>(service: MenuItemsRepo());
}
@override
Widget splashPage() => const SimpleSplashPage();
@override
Widget startupErrorPage(String errorMessage) =>
SimpleStartupErrorPage(errorMessage: errorMessage);
}
//Home Page
class TestWidget extends StatelessWidget {
const TestWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
var menuItemsRepo = SimpleServiceProvider.of<IMenuItemsRepo>(context);
return Scaffold(
appBar: AppBar(title: const Text("Simple Restuarant")),
body: Center(
child: FutureBuilder<List<String>>(
future: menuItemsRepo.getMenuItemNames(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return const CircularProgressIndicator();
}
return ListView.builder(
itemBuilder: (context, index) => ListTile(
title: Text(snapshot.data![index]),
),
itemCount: snapshot.data!.length,
);
},
),
),
);
}
}
//Dependencies
abstract class IMenuItemsRepo extends ISimpleService {
Future<List<String>> getMenuItemNames();
}
class MenuItemsRepo implements IMenuItemsRepo {
@override
Future<List<String>> getMenuItemNames() async {
return ["Burger", "Pizza", "Juice"];
}
}