From 373e34832e5266d626808dbe4d5af5b3c027342d Mon Sep 17 00:00:00 2001 From: Koen Van Looveren Date: Sun, 24 Dec 2023 09:56:32 +0100 Subject: [PATCH] feat: Basic di implementation added --- .gitignore | 4 ++++ lib/impaktfull_architecture.dart | 20 +++++++++++++++----- lib/src/di/di.dart | 22 ++++++++++++++++++++++ pubspec.yaml | 13 +++++++++++++ test/impaktfull_architecture_test.dart | 9 +-------- tools/format.sh | 3 +++ tools/packages_get.sh | 3 +++ 7 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 lib/src/di/di.dart create mode 100755 tools/format.sh create mode 100755 tools/packages_get.sh diff --git a/.gitignore b/.gitignore index ac5aa98..5e66b97 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,7 @@ migrate_working_dir/ **/doc/api/ .dart_tool/ build/ + +# flutter-plugins +.flutter-plugins +.flutter-plugins-dependencies \ No newline at end of file diff --git a/lib/impaktfull_architecture.dart b/lib/impaktfull_architecture.dart index 1d0198c..8ae2906 100644 --- a/lib/impaktfull_architecture.dart +++ b/lib/impaktfull_architecture.dart @@ -1,7 +1,17 @@ library impaktfull_architecture; -/// A Calculator. -class Calculator { - /// Returns [value] plus 1. - int addOne(int value) => value + 1; -} +// 3rd party packages +export 'package:connectivity_plus/connectivity_plus.dart'; +export 'package:device_info_plus/device_info_plus.dart'; +export 'package:dio/dio.dart'; +export 'package:get_it/get_it.dart'; +export 'package:injectable/injectable.dart' hide test; +export 'package:flutter_secure_storage/flutter_secure_storage.dart'; +export 'package:flutter_svg/flutter_svg.dart'; +export 'package:provider/provider.dart'; +export 'package:shared_preferences/shared_preferences.dart'; +export 'package:sprintf/sprintf.dart'; +export 'package:synchronized/synchronized.dart'; +export 'package:tuple/tuple.dart'; +export 'package:url_launcher/url_launcher.dart'; +export 'package:url_launcher/url_launcher_string.dart'; diff --git a/lib/src/di/di.dart b/lib/src/di/di.dart new file mode 100644 index 0000000..1efa4b7 --- /dev/null +++ b/lib/src/di/di.dart @@ -0,0 +1,22 @@ +import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:device_info_plus/device_info_plus.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:injectable/injectable.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +Future configureImpaktfullArchitecture(GetItHelper gh, + {bool isWeb = kIsWeb}) async { + await _register3rdPartyStorage(gh, isWeb: isWeb); +} + +Future _register3rdPartyStorage(GetItHelper gh, + {required bool isWeb}) async { + await gh.lazySingletonAsync( + () => SharedPreferences.getInstance(), + preResolve: true, + ); + gh.lazySingleton(() => Connectivity()); + gh.lazySingleton(() => DeviceInfoPlugin()); + gh.lazySingleton(() => const FlutterSecureStorage()); +} diff --git a/pubspec.yaml b/pubspec.yaml index 0891e83..ad1343c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -8,8 +8,21 @@ environment: flutter: ">=1.17.0" dependencies: + connectivity_plus: ^5.0.2 + device_info_plus: ^9.1.1 flutter: sdk: flutter + dio: ^5.4.0 + get_it: ^7.6.4 + injectable: ^2.3.2 + flutter_secure_storage: ^9.0.0 + flutter_svg: ^2.0.9 + provider: ^6.1.1 + shared_preferences: ^2.2.2 + sprintf: ^7.0.0 + synchronized: ^3.1.0+1 + tuple: ^2.0.2 + url_launcher: ^6.2.2 dev_dependencies: flutter_test: diff --git a/test/impaktfull_architecture_test.dart b/test/impaktfull_architecture_test.dart index 5df5957..c34a906 100644 --- a/test/impaktfull_architecture_test.dart +++ b/test/impaktfull_architecture_test.dart @@ -1,12 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:impaktfull_architecture/impaktfull_architecture.dart'; - void main() { - test('adds one to input values', () { - final calculator = Calculator(); - expect(calculator.addOne(2), 3); - expect(calculator.addOne(-7), -6); - expect(calculator.addOne(0), 1); - }); + test('no-op', () {}); } diff --git a/tools/format.sh b/tools/format.sh new file mode 100755 index 0000000..bad54c0 --- /dev/null +++ b/tools/format.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +fvm dart format . \ No newline at end of file diff --git a/tools/packages_get.sh b/tools/packages_get.sh new file mode 100755 index 0000000..c80a883 --- /dev/null +++ b/tools/packages_get.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +fvm flutter packages get \ No newline at end of file