diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4..17890fd 100755 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b7..ba1215b 100755 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 09d4391..e3b618a 100755 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d..e73e960 100755 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372e..4bde9c1 100755 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/assets/images/logo.png b/assets/images/logo.png new file mode 100644 index 0000000..e33fabc Binary files /dev/null and b/assets/images/logo.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index d36b1fa..d807305 100755 --- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,122 +1,120 @@ { - "images" : [ + "images": [ { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" + "filename": "Icon-App-20x20@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "20x20", + "platform": "ios" }, { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" + "filename": "Icon-App-20x20@3x.png", + "idiom": "universal", + "scale": "3x", + "size": "20x20", + "platform": "ios" }, { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" + "filename": "Icon-App-29x29@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "29x29", + "platform": "ios" }, { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" + "filename": "Icon-App-29x29@3x.png", + "idiom": "universal", + "scale": "3x", + "size": "29x29", + "platform": "ios" }, { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" + "filename": "Icon-App-38x38@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "38x38", + "platform": "ios" }, { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" + "filename": "Icon-App-38x38@3x.png", + "idiom": "universal", + "scale": "3x", + "size": "38x38", + "platform": "ios" }, { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" + "filename": "Icon-App-40x40@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "40x40", + "platform": "ios" }, { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" + "filename": "Icon-App-40x40@3x.png", + "idiom": "universal", + "scale": "3x", + "size": "40x40", + "platform": "ios" }, { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" + "filename": "Icon-App-60x60@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "60x60", + "platform": "ios" }, { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" + "filename": "Icon-App-60x60@3x.png", + "idiom": "universal", + "scale": "3x", + "size": "60x60", + "platform": "ios" }, { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" + "filename": "Icon-App-64x64@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "64x64", + "platform": "ios" }, { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" + "filename": "Icon-App-64x64@3x.png", + "idiom": "universal", + "scale": "3x", + "size": "64x64", + "platform": "ios" }, { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" + "filename": "Icon-App-68x68@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "68x68", + "platform": "ios" }, { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" + "filename": "Icon-App-76x76@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "76x76", + "platform": "ios" }, { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" + "filename": "Icon-App-83.5x83.5@2x.png", + "idiom": "universal", + "scale": "2x", + "size": "83.5x83.5", + "platform": "ios" }, { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" + "filename": "Icon-App-1024x1024@1x.png", + "idiom": "universal", + "scale": "1x", + "size": "1024x1024", + "platform": "ios" } ], - "info" : { - "version" : 1, - "author" : "xcode" + "info": { + "author": "icons_launcher", + "version": 1 } -} +} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index dc9ada4..18c6a30 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 797d452..34036f5 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index 6ed2d93..23cf16d 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index fe73094..8379736 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png index 321773c..d9c8044 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index 502f463..173ad81 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index 0ec3034..fa61698 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index 0ec3034..fa61698 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index e9f5fea..1189e07 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index 8953cba..e70551d 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index 0467bf1..676f4e0 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/lib/core/constants/api_const.dart b/lib/core/constants/api_const.dart index 9dff8c0..1f7c3d6 100644 --- a/lib/core/constants/api_const.dart +++ b/lib/core/constants/api_const.dart @@ -2,4 +2,10 @@ abstract class ApiConst { static const String baseUrl = "https://superapp.felixits.uz/api/v1"; static const String login = "/auth/login"; + static const String register = "/auth/register/create_user"; + static const String resetPassword = "/auth/reset_password"; + static const String forgotPassword = "/auth/forgot_password"; + static const String sendCode = "/auth/send_code"; + static const String verifyCode = "/auth/register/verify_code"; + static const String verifyPhone = "/auth/register/verify_phone"; } diff --git a/lib/core/constants/app_locale_keys.dart b/lib/core/constants/app_locale_keys.dart index 9580854..af53ea5 100644 --- a/lib/core/constants/app_locale_keys.dart +++ b/lib/core/constants/app_locale_keys.dart @@ -10,7 +10,7 @@ abstract class AppLocaleKeys { static const String fontLight = "fontLight"; static const String imageUrl = - "https://xsznseejebbai1lj.public.blob.vercel-storage.com/homepage/hero/hero-1.webp"; + "https://www.peanutbutterandfitness.com/wp-content/uploads/2023/07/Healthy-Weekly-Meal-Plan-Recipes-7.9.23-1.jpg"; static const String foodImageUrl = "https://www.precisionorthomd.com/wp-content/uploads/2023/10/percision-blog-header-junk-food-102323.jpg"; diff --git a/lib/feature/auth/data/datasource/auth_datasource.dart b/lib/feature/auth/data/datasource/auth_datasource.dart index b621d6b..d75b105 100644 --- a/lib/feature/auth/data/datasource/auth_datasource.dart +++ b/lib/feature/auth/data/datasource/auth_datasource.dart @@ -1,5 +1,9 @@ import 'package:food_delivery_client/core/services/request_handler_service.dart'; import 'package:food_delivery_client/feature/auth/data/models/response/login_response.dart'; +import 'package:food_delivery_client/feature/auth/domain/usecases/register_usecase.dart'; +import 'package:food_delivery_client/feature/auth/domain/usecases/reset_password_usecase.dart'; +import 'package:food_delivery_client/feature/auth/domain/usecases/verify_otp_code_login_usecase.dart'; +import 'package:food_delivery_client/feature/auth/domain/usecases/verify_phone_login_usecase.dart'; import 'package:food_delivery_client/food_delivery_client.dart'; abstract class AuthDatasource { @@ -7,6 +11,26 @@ abstract class AuthDatasource { required String phoneNumber, required String password, }); + + Future verifyPhoneResetPassword({ + required VerifyPhoneNumberParams params, + }); + + Future verifyOtpCodeResetPassword({ + required VerifyOtpCodeParams params, + }); + + Future resetPassword({required ResetPasswordParams params}); + + Future verifyPhoneRegister({ + required VerifyPhoneNumberParams params, + }); + + Future verifyOtpCodeRegister({ + required VerifyOtpCodeParams params, + }); + + Future register({required RegisterParams params}); } @LazySingleton(as: AuthDatasource) @@ -27,4 +51,88 @@ class AuthDatasourceImpl implements AuthDatasource { fromJson: (response) async => LoginResponseModel.fromJson(response.data), ); } + + @override + Future register({required RegisterParams params}) async { + return _requestHandlerService.handleRequest( + path: ApiConst.register, + method: RequestMethodEnum.post, + + data: { + "firstName": params.firstName, + "lastName": params.lastName, + "password": params.password, + "phoneNumber": params.phoneNumber, + }, + + fromJson: (response) async { + return SuccessModel.fromJson(response.data); + }, + ); + } + + @override + Future resetPassword({ + required ResetPasswordParams params, + }) async { + return _requestHandlerService.handleRequest( + path: ApiConst.resetPassword, + method: RequestMethodEnum.post, + data: { + "newPassword": params.newPassword, + "phoneNumber": params.phoneNumber, + }, + + fromJson: (response) async => SuccessModel.fromJson(response.data), + ); + } + + @override + Future verifyOtpCodeRegister({ + required VerifyOtpCodeParams params, + }) async { + return _requestHandlerService.handleRequest( + path: ApiConst.verifyCode, + method: RequestMethodEnum.post, + data: {"code": params.otpCode, "phoneNumber": params.phoneNumber}, + fromJson: (response) async => SuccessModel.fromJson(response.data), + ); + } + + @override + Future verifyOtpCodeResetPassword({ + required VerifyOtpCodeParams params, + }) async { + return _requestHandlerService.handleRequest( + path: ApiConst.forgotPassword, + method: RequestMethodEnum.post, + data: {"code": params.otpCode, "phoneNumber": params.phoneNumber}, + fromJson: (response) async => SuccessModel.fromJson(response.data), + ); + } + + @override + Future verifyPhoneRegister({ + required VerifyPhoneNumberParams params, + }) async { + return _requestHandlerService.handleRequest( + path: ApiConst.verifyPhone, + method: RequestMethodEnum.post, + + data: {"phoneNumber": params.phoneNumber}, + fromJson: (response) async => SuccessModel.fromJson(response.data), + ); + } + + @override + Future verifyPhoneResetPassword({ + required VerifyPhoneNumberParams params, + }) async { + return _requestHandlerService.handleRequest( + path: ApiConst.sendCode, + method: RequestMethodEnum.post, + data: {"phoneNumber": params.phoneNumber}, + fromJson: (response) async => SuccessModel.fromJson(response.data), + ); + } } diff --git a/lib/feature/auth/domain/usecases/register_usecase.dart b/lib/feature/auth/domain/usecases/register_usecase.dart new file mode 100644 index 0000000..340285c --- /dev/null +++ b/lib/feature/auth/domain/usecases/register_usecase.dart @@ -0,0 +1,13 @@ +class RegisterParams { + final String firstName; + final String lastName; + final String phoneNumber; + final String password; + + RegisterParams({ + required this.firstName, + required this.lastName, + required this.phoneNumber, + required this.password, + }); +} diff --git a/lib/feature/auth/domain/usecases/reset_password_usecase.dart b/lib/feature/auth/domain/usecases/reset_password_usecase.dart new file mode 100644 index 0000000..0bd302d --- /dev/null +++ b/lib/feature/auth/domain/usecases/reset_password_usecase.dart @@ -0,0 +1,6 @@ +class ResetPasswordParams { + final String newPassword; + final String phoneNumber; + + ResetPasswordParams({required this.newPassword, required this.phoneNumber}); +} diff --git a/lib/feature/auth/domain/usecases/verify_otp_code_login_usecase.dart b/lib/feature/auth/domain/usecases/verify_otp_code_login_usecase.dart new file mode 100644 index 0000000..e11eaaf --- /dev/null +++ b/lib/feature/auth/domain/usecases/verify_otp_code_login_usecase.dart @@ -0,0 +1,6 @@ +class VerifyOtpCodeParams { + final String otpCode; + final String phoneNumber; + + VerifyOtpCodeParams({required this.otpCode, required this.phoneNumber}); +} diff --git a/lib/feature/auth/domain/usecases/verify_otp_code_register_usecase.dart b/lib/feature/auth/domain/usecases/verify_otp_code_register_usecase.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/feature/auth/domain/usecases/verify_phone_login_usecase.dart b/lib/feature/auth/domain/usecases/verify_phone_login_usecase.dart new file mode 100644 index 0000000..b0530c7 --- /dev/null +++ b/lib/feature/auth/domain/usecases/verify_phone_login_usecase.dart @@ -0,0 +1,5 @@ +class VerifyPhoneNumberParams { + final String phoneNumber; + + VerifyPhoneNumberParams({required this.phoneNumber}); +} diff --git a/lib/feature/auth/domain/usecases/verify_phone_register_usecase.dart b/lib/feature/auth/domain/usecases/verify_phone_register_usecase.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/feature/auth/presentation/pages/login_page/widgets/login_body.dart b/lib/feature/auth/presentation/pages/login_page/widgets/login_body.dart index a75fe6b..cb988b4 100644 --- a/lib/feature/auth/presentation/pages/login_page/widgets/login_body.dart +++ b/lib/feature/auth/presentation/pages/login_page/widgets/login_body.dart @@ -33,7 +33,12 @@ class _WLoginBodyState extends State { @override Widget build(BuildContext context) { - return BlocBuilder( + return BlocConsumer( + listener: (context, state) { + if (state.status.isLoaded()) { + context.go(Routes.main); + } + }, builder: (context, state) { return Form( key: _formKey, @@ -105,7 +110,7 @@ class _WLoginBodyState extends State { alignment: AlignmentGeometry.centerRight, child: TextButton( onPressed: () { - context.push(Routes.verifyPhoneNumber, extra: false); + // context.push(Routes.verifyPhoneNumber, extra: false); }, child: Text( context.loc.forgot_password, @@ -124,15 +129,16 @@ class _WLoginBodyState extends State { ).paddingOnly(left: 10), onPressed: () { if (_formKey.currentState?.validate() ?? false) { - context.read().add( - LoginEvent.login( - LoginParams( - phoneNumber: - "+998${_phoneController.text.trim().replaceAll(" ", "")}", - password: _passwordController.text.trim(), - ), - ), - ); + context.go(Routes.main); + // context.read().add( + // LoginEvent.login( + // LoginParams( + // phoneNumber: + // "+998${_phoneController.text.trim().replaceAll(" ", "")}", + // password: _passwordController.text.trim(), + // ), + // ), + // ); } }, borderRadius: 15, @@ -148,10 +154,7 @@ class _WLoginBodyState extends State { ), TextButton( onPressed: () { - context.push( - Routes.verifyPhoneNumber, - extra: true, - ); + // context.push(Routes.verifyPhoneNumber, extra: true); }, child: Text( context.loc.sign_up, diff --git a/pubspec.lock b/pubspec.lock index 8319a88..c7bc367 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -17,6 +17,14 @@ packages: url: "https://pub.dev" source: hosted version: "8.4.0" + archive: + dependency: transitive + description: + name: archive + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" + url: "https://pub.dev" + source: hosted + version: "4.0.7" args: dependency: transitive description: @@ -397,6 +405,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + icons_launcher: + dependency: "direct main" + description: + name: icons_launcher + sha256: "6317d56a73ee528f1dd570d7cd7be120ce58014e0fe635d141ada3d88782f58d" + url: "https://pub.dev" + source: hosted + version: "3.0.3" iconsax_flutter: dependency: transitive description: @@ -405,6 +421,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.1" + image: + dependency: transitive + description: + name: image + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + url: "https://pub.dev" + source: hosted + version: "4.5.4" injectable: dependency: "direct main" description: @@ -653,6 +677,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.2" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" provider: dependency: transitive description: @@ -914,6 +946,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + url: "https://pub.dev" + source: hosted + version: "2.2.2" uuid: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index aae1427..9d1bbb7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -53,12 +53,22 @@ dependencies: #loading: skeletonizer: ^2.1.0+1 + #Icon launcher + icons_launcher: ^3.0.3 + dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 build_runner: ^2.10.0 +icons_launcher: + image_path: "assets/images/logo.png" + platforms: + android: + enable: true + ios: + enable: true flutter: generate: true @@ -88,3 +98,5 @@ flutter: fonts: - asset: assets/fonts/UberMoveTextLight.otf weight: 300 + +