Karee Inject
Library used to help developers to better manage dependency injection during flutter development.
Usage
Karee Inject
provide an amazing collection of annotation like Service
for services, Value
for reading value from application config file, Autowired
to auto initialize classe and Persistable
A simple usage example:
Use of @Persistable
with data model
import 'package:karee_inject/karee_inject.dart';
@Persistable
class User {
double id;
String name;
User(this.id, this.name);
}
Use of Service
to define a service, Autowired
and Value
to inject application configuration and other services.
@Service
class ServiceUser {
@Value('@{application.server.base-url}')
late final String baseUrl;
@Autowired
late final DatabaseInterface db;
User? getUserById(double id){
return db
.find(User.runtimeType)
.where('id', isEqualTo: id);
}
}
Use of Controller
to define a Controller, and Autowired
to inject Services property;
@Controller
class UserController {
@Autowired
late final UserService userService;
void showUserDetailView(double id){
User? user = userService.getUserById();
if(user == null){
screen(UserNotFoundScreen(), RouteMode.PUSH);
return;
}
screen(UserDetailScreen(user: user), RouteMode.PUSH);
}
}
Test
# Generate additional source first
flutter packages pub run build_runner build --delete-conflicting-outputs
# Then run test
flutter test
Libraries
- karee_inject
- Karee.annotations