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..ff0afd8 100644 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..2fc6e0d 100644 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..de9f416 100644 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..76cfccb 100644 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..698cca4 100644 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/lib/assets/app_icon/app_icon_blue.png b/lib/assets/app_icon/app_icon_blue.png new file mode 100644 index 0000000..c0bbaad Binary files /dev/null and b/lib/assets/app_icon/app_icon_blue.png differ diff --git a/lib/components/my_about_dialog.dart b/lib/components/my_about_dialog.dart index 351de35..738a201 100644 --- a/lib/components/my_about_dialog.dart +++ b/lib/components/my_about_dialog.dart @@ -16,10 +16,10 @@ class MyAboutDialog extends StatelessWidget { Text('About the app', style: TextStyle(fontSize: 18)), ], ), - content: SingleChildScrollView( + content: const SingleChildScrollView( child: ListBody( children: [ - const Row( + Row( children: [ Icon(Icons.apps, size: 50), SizedBox(width: 10), @@ -33,11 +33,11 @@ class MyAboutDialog extends StatelessWidget { ), ], ), - const SizedBox(height: 20), - const Text( + SizedBox(height: 20), + Text( '© 2024 Team ${Constants.appTitle}. All rights reserved.'), - const SizedBox(height: 20), - GestureDetector( + SizedBox(height: 20), + /*GestureDetector( onTap: () => {}, child: const Text( 'https://www.no-website.yet', @@ -46,9 +46,9 @@ class MyAboutDialog extends StatelessWidget { decoration: TextDecoration.underline, ), ), - ), - const SizedBox(height: 20), - const Text( + ),*/ + SizedBox(height: 20), + Text( '${Constants.appTitle} helps entrepreneurs find the right co-founders who complement their skills and also share their interests and business goals. ' 'Whether you are looking for a tech expert, a marketing guru, or a visionary partner. This app aims to help you finding a perfect co-founder to bring your startup ideas to life.', ), diff --git a/lib/components/my_app_icon.dart b/lib/components/my_app_icon.dart new file mode 100644 index 0000000..db655d2 --- /dev/null +++ b/lib/components/my_app_icon.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; + +class MyAppIcon extends StatelessWidget { + const MyAppIcon({super.key, this.size}); + + final double? size; + + @override + Widget build(BuildContext context) { + return Image.asset( + 'lib/assets/app_icon/app_icon_blue.png', + height: size, + width: size, + ); + } +} diff --git a/lib/components/my_drawer.dart b/lib/components/my_drawer.dart index a2851e0..f2123f0 100644 --- a/lib/components/my_drawer.dart +++ b/lib/components/my_drawer.dart @@ -24,12 +24,15 @@ class MyDrawer extends StatelessWidget { Column( children: [ // logo - DrawerHeader( - child: Center( - child: Icon( - Icons.people_alt, - color: Theme.of(context).colorScheme.primary, - size: 40, + SizedBox( + height: 100, + child: DrawerHeader( + child: Center( + child: Icon( + Icons.people_alt, + color: Theme.of(context).colorScheme.primary, + size: 40, + ), ), ), ), @@ -111,7 +114,6 @@ class MyDrawer extends StatelessWidget { title: const Text('My Profile'), leading: const Icon(Icons.edit_note), onTap: () { - // pop the drawer first, then navigate to destination Navigator.pop(context); Navigator.push( context, @@ -130,7 +132,6 @@ class MyDrawer extends StatelessWidget { title: const Text("App Settings"), leading: const Icon(Icons.settings), onTap: () { - // pop the drawer and navigate to settings page Navigator.pop(context); Navigator.push( context, @@ -143,11 +144,9 @@ class MyDrawer extends StatelessWidget { ), // horizontal line - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: Divider( - color: Theme.of(context).colorScheme.primary, - ), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: Divider(), ), // about tile diff --git a/lib/constants.dart b/lib/constants.dart index b6a2023..98ebd62 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -3,8 +3,8 @@ class Constants { /// Title of the app static const String appTitle = 'Cofounderella'; - static const String appVersion = '1.0.0'; - static const String appCompilationDate = '2024-06-14'; + static const String appVersion = '1.0.1'; + static const String appCompilationDate = '2024-06-19'; static const String dbCollectionFeedbacks = 'feedbacks'; static const String dbCollectionUsers = 'Users'; @@ -58,4 +58,6 @@ class Constants { static const String dbStoragePathProfiles = 'profile_images'; static const String pathLanguagesJson = 'lib/assets/languages.json'; + + static const String prefKeyThemeDarkMode = 'theme_dark_mode'; } diff --git a/lib/main.dart b/lib/main.dart index 0fa28d7..1ba9e81 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,4 @@ +import 'package:shared_preferences/shared_preferences.dart'; import '../constants.dart'; import '../services/auth/auth_gate.dart'; import '../themes/theme_provider.dart'; @@ -16,10 +17,14 @@ void main() async { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); - // Standard stuff + + // Init SharedPreferences + final prefs = await SharedPreferences.getInstance(); + final isDarkMode = prefs.getBool(Constants.prefKeyThemeDarkMode) ?? false; + runApp( ChangeNotifierProvider( - create: (context) => ThemeProvider(), + create: (context) => ThemeProvider(initialIsDarkMode: isDarkMode), child: const MyApp(), ), ); diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart index bfca7da..44423b3 100644 --- a/lib/pages/login_page.dart +++ b/lib/pages/login_page.dart @@ -1,5 +1,6 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; +import '../components/my_app_icon.dart'; import '../components/my_button.dart'; import '../components/my_textfield.dart'; import '../constants.dart'; @@ -16,7 +17,6 @@ class LoginPage extends StatelessWidget { LoginPage({super.key, required this.onTap}); - // login method void _login(BuildContext context) async { if (_emailController.text.trim().isEmpty || _passwordController.text.trim().isEmpty) { @@ -27,8 +27,6 @@ class LoginPage extends StatelessWidget { ); return; } - - // try login try { await AuthService().signInWithEmailPassword( _emailController.text, @@ -56,30 +54,24 @@ class LoginPage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ // logo and welcome message - Icon( - Icons.people_alt, - size: 60, - color: Theme.of(context).colorScheme.primary, - ), - const SizedBox(height: 16), + const MyAppIcon(size: 128), + const SizedBox(height: 8), Text( 'Welcome to ${Constants.appTitle}', style: TextStyle( color: Theme.of(context).colorScheme.primary, - fontSize: 16, + fontSize: 18, ), ), const SizedBox(height: 25), - // email textfield + // text fields MyTextField( hintText: 'E-Mail', obscureText: false, controller: _emailController, ), - - // password textfield MyTextField( hintText: 'Password', obscureText: true, @@ -94,28 +86,29 @@ class LoginPage extends StatelessWidget { onTap: () => _login(context), ), - const SizedBox(height: 25), - // register now - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'Don\'t have an account? ', - style: TextStyle( - color: Theme.of(context).colorScheme.primary, - ), - ), - GestureDetector( - onTap: onTap, - child: const Text( - 'Register now', + Padding( + padding: const EdgeInsets.all(24.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Don\'t have an account? ', style: TextStyle( - fontWeight: FontWeight.bold, + color: Theme.of(context).colorScheme.primary, ), ), - ), - ], + GestureDetector( + onTap: onTap, + child: const Text( + 'Register now', + style: TextStyle( + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), ) ], ), diff --git a/lib/pages/register_page.dart b/lib/pages/register_page.dart index 11565d8..b8672b1 100644 --- a/lib/pages/register_page.dart +++ b/lib/pages/register_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:firebase_auth/firebase_auth.dart'; +import '../components/my_app_icon.dart'; import '../components/my_button.dart'; import '../components/my_textfield.dart'; import '../utils/helper_dialogs.dart'; @@ -77,12 +78,8 @@ class RegisterPage extends StatelessWidget { children: [ const SizedBox(height: 25), // logo and register message - Icon( - Icons.people_alt, - size: 60, - color: Theme.of(context).colorScheme.primary, - ), - const SizedBox(height: 16), + const MyAppIcon(size: 128), + const SizedBox(height: 8), Padding( padding: const EdgeInsets.symmetric(horizontal: 25.0), child: Text( @@ -137,28 +134,29 @@ class RegisterPage extends StatelessWidget { }, ), - const SizedBox(height: 25), - // register now - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'Already have an account? ', - style: TextStyle( - color: Theme.of(context).colorScheme.primary, - ), - ), - GestureDetector( - onTap: onTap, - child: const Text( - 'Login now', + Padding( + padding: const EdgeInsets.all(24.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Already have an account? ', style: TextStyle( - fontWeight: FontWeight.bold, + color: Theme.of(context).colorScheme.primary, ), ), - ), - ], + GestureDetector( + onTap: onTap, + child: const Text( + 'Login now', + style: TextStyle( + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), ) ], ), diff --git a/lib/pages/settings_page.dart b/lib/pages/settings_page.dart index 7142f77..22eb5c8 100644 --- a/lib/pages/settings_page.dart +++ b/lib/pages/settings_page.dart @@ -25,12 +25,15 @@ class SettingsPage extends StatelessWidget { children: [ // dark mode switch const Text("Dark Mode"), - CupertinoSwitch( - value: - Provider.of(context, listen: false).isDarkMode, - onChanged: (value) => - Provider.of(context, listen: false) - .toggleTheme(), + Consumer( + builder: (context, themeProvider, child) { + return CupertinoSwitch( + value: themeProvider.isDarkMode, + onChanged: (value) { + themeProvider.toggleTheme(); + }, + ); + }, ), ], ), diff --git a/lib/themes/theme_provider.dart b/lib/themes/theme_provider.dart index f540476..b859bda 100644 --- a/lib/themes/theme_provider.dart +++ b/lib/themes/theme_provider.dart @@ -1,23 +1,35 @@ +import 'package:cofounderella/constants.dart'; import 'package:cofounderella/themes/dark_mode.dart'; import 'package:cofounderella/themes/light_mode.dart'; import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; class ThemeProvider extends ChangeNotifier { - ThemeData _themeData = lightMode; + ThemeData _themeData; + + ThemeProvider({required bool initialIsDarkMode}) + : _themeData = initialIsDarkMode ? darkMode : lightMode; ThemeData get themeData => _themeData; bool get isDarkMode => _themeData == darkMode; + set themeData(ThemeData themeData) { _themeData = themeData; notifyListeners(); + _saveTheme(); } void toggleTheme() { - if(_themeData == lightMode) { + if (_themeData == lightMode) { themeData = darkMode; } else { themeData = lightMode; } } -} \ No newline at end of file + + void _saveTheme() async { + final prefs = await SharedPreferences.getInstance(); + prefs.setBool(Constants.prefKeyThemeDarkMode, isDarkMode); + } +} diff --git a/pubspec.lock b/pubspec.lock index 6150b29..bdc8697 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -9,6 +9,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.35" + archive: + dependency: transitive + description: + name: archive + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + url: "https://pub.dev" + source: hosted + version: "3.6.1" args: dependency: transitive description: @@ -41,6 +49,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + url: "https://pub.dev" + source: hosted + version: "0.4.1" clock: dependency: transitive description: @@ -121,6 +145,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" file_selector_linux: dependency: transitive description: @@ -238,6 +278,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_launcher_icons: + dependency: "direct main" + description: + name: flutter_launcher_icons + sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + url: "https://pub.dev" + source: hosted + version: "0.13.1" flutter_lints: dependency: "direct dev" description: @@ -368,6 +416,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" + image: + dependency: transitive + description: + name: image + sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" + url: "https://pub.dev" + source: hosted + version: "4.2.0" image_cropper: dependency: "direct main" description: @@ -464,6 +520,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.1" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -560,6 +624,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + url: "https://pub.dev" + source: hosted + version: "2.2.1" percent_indicator: dependency: "direct main" description: @@ -576,6 +664,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + url: "https://pub.dev" + source: hosted + version: "3.1.5" plugin_platform_interface: dependency: transitive description: @@ -592,6 +688,62 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.2" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + url: "https://pub.dev" + source: hosted + version: "2.2.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" + url: "https://pub.dev" + source: hosted + version: "2.2.3" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" + url: "https://pub.dev" + source: hosted + version: "2.3.0" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + url: "https://pub.dev" + source: hosted + version: "2.3.2" sky_engine: dependency: transitive description: flutter @@ -733,6 +885,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.5.1" + win32: + dependency: transitive + description: + name: win32 + sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 + url: "https://pub.dev" + source: hosted + version: "5.5.1" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" xml: dependency: transitive description: @@ -741,6 +909,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.5.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" sdks: - dart: ">=3.3.3 <4.0.0" - flutter: ">=3.19.0" + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index d594718..954dab3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,39 +1,17 @@ name: cofounderella -description: "App for Cofounder Matching" -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. +description: "App for Co-Founder Matching" + publish_to: 'none' # Remove this line if you wish to publish to pub.dev -# The following defines the version and build number for your application. -# A version number is three numbers separated by dots, like 1.2.43 -# followed by an optional build number separated by a +. -# Both the version and the builder number may be overridden in flutter -# build by specifying --build-name and --build-number, respectively. -# In Android, build-name is used as versionName while build-number used as versionCode. -# Read more about Android versioning at https://developer.android.com/studio/publish/versioning -# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. -# Read more about iOS versioning at -# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -# In Windows, build-name is used as the major, minor, and patch parts -# of the product and file versions while build-number is used as the build suffix. -version: 1.0.0+1 +version: 1.0.1 environment: sdk: '>=3.3.3 <4.0.0' -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter - - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.6 firebase_core: ^2.30.1 firebase_auth: ^4.19.4 @@ -50,59 +28,25 @@ dependencies: percent_indicator: ^4.2.3 osm_nominatim: ^3.0.0 expandable_text: ^2.3.0 + shared_preferences: ^2.2.3 + flutter_launcher_icons: ^0.13.1 dev_dependencies: flutter_test: sdk: flutter - - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. flutter_lints: ^3.0.0 -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec +flutter_launcher_icons: + android: true + ios: false + image_path: "lib/assets/app_icon/app_icon_blue.png" # The following section is specific to Flutter packages. flutter: - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. uses-material-design: true - # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg assets: - lib/assets/languages.json - lib/assets/flag_icons/ - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/assets-and-images/#resolution-aware - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/assets-and-images/#from-packages - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/custom-fonts/#from-packages + - lib/assets/app_icon/app_icon_blue.png