Date: Sun, 6 Oct 2024 12:55:30 +0300
Subject: [PATCH] Refactor project with custom changes and enhancements: -
Applied Null Safety throughout the project - Added mocktail for test-driven
development - Replaced data_connection_checker with
data_connection_checker_tv for connection checking - Integrated
very_good_analysis for code analysis and linting - Enhanced the app's user
interface for a more modern and clean look - Added 'Poppins' font for
improved typography and visual appeal
---
.flutter-plugins-dependencies | 2 +-
README.md | 106 ++-
analysis_options.yaml | 10 +
android/.gitignore | 13 +
android/app/build.gradle | 65 +-
android/app/src/debug/AndroidManifest.xml | 6 +-
android/app/src/main/AndroidManifest.xml | 46 +-
.../MainActivity.kt | 5 +
.../MainActivity.kt | 13 -
.../res/drawable-v21/launch_background.xml | 12 +
.../app/src/main/res/values-night/styles.xml | 18 +
android/app/src/main/res/values/styles.xml | 14 +-
android/app/src/profile/AndroidManifest.xml | 6 +-
android/build.gradle | 21 +-
android/gradle.properties | 6 +-
.../gradle/wrapper/gradle-wrapper.properties | 3 +-
android/settings.gradle | 30 +-
architecture-proposal.png | Bin 16033 -> 0 bytes
assets/fonts/Poppins-Bold.ttf | Bin 0 -> 153900 bytes
assets/fonts/Poppins-Regular.ttf | Bin 0 -> 158192 bytes
assets/images/background.png | Bin 0 -> 35247 bytes
assets/images/number_trivia_app.png | Bin 0 -> 134749 bytes
ios/.gitignore | 34 +
ios/Flutter/AppFrameworkInfo.plist | 4 +-
ios/Flutter/Debug.xcconfig | 1 +
ios/Flutter/Release.xcconfig | 1 +
ios/Flutter/flutter_export_environment.sh | 13 +-
ios/Podfile | 44 ++
ios/Runner.xcodeproj/project.pbxproj | 227 ++++--
.../contents.xcworkspacedata | 2 +-
.../xcshareddata/IDEWorkspaceChecks.plist | 8 +
.../xcshareddata/WorkspaceSettings.xcsettings | 8 +
.../xcshareddata/xcschemes/Runner.xcscheme | 21 +-
.../xcshareddata/IDEWorkspaceChecks.plist | 8 +
.../xcshareddata/WorkspaceSettings.xcsettings | 8 +
ios/Runner/AppDelegate.swift | 4 +-
.../Icon-App-1024x1024@1x.png | Bin 11112 -> 10932 bytes
.../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 564 -> 295 bytes
.../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 1283 -> 406 bytes
.../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 1588 -> 450 bytes
.../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 1025 -> 282 bytes
.../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 1716 -> 462 bytes
.../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 1920 -> 704 bytes
.../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 1283 -> 406 bytes
.../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 1895 -> 586 bytes
.../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 2665 -> 862 bytes
.../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 2665 -> 862 bytes
.../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 3831 -> 1674 bytes
.../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 1888 -> 762 bytes
.../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 3294 -> 1226 bytes
.../Icon-App-83.5x83.5@2x.png | Bin 3612 -> 1418 bytes
ios/Runner/Info.plist | 8 +-
ios/Runner/Runner-Bridging-Header.h | 2 +-
ios/RunnerTests/RunnerTests.swift | 12 +
lib/core/.gitkeep | 0
lib/core/error/.gitkeep | 0
lib/core/error/exceptions.dart | 4 +
lib/core/error/failures.dart | 6 +-
lib/core/network/network_info.dart | 16 +-
lib/core/usecases/.gitkeep | 0
lib/core/usecases/usecase.dart | 28 +-
lib/core/util/input_converter.dart | 16 -
lib/core/utils/app_strings.dart | 16 +
lib/core/utils/input_converter.dart | 24 +
lib/features/.gitkeep | 0
lib/features/number_trivia/data/.gitkeep | 0
.../number_trivia/data/datasources/.gitkeep | 0
.../number_trivia_local_data_source.dart | 30 +-
.../number_trivia_remote_data_source.dart | 25 +-
.../number_trivia/data/models/.gitkeep | 0
.../data/models/number_trivia_model.dart | 28 +-
.../number_trivia/data/repositories/.gitkeep | 0
.../number_trivia_repository_impl.dart | 57 +-
lib/features/number_trivia/domain/.gitkeep | 0
.../number_trivia/domain/entities/.gitkeep | 0
.../domain/entities/number_trivia.dart | 15 +-
.../domain/repositories/.gitkeep | 0
.../number_trivia_repository.dart | 9 +-
.../number_trivia/domain/usecases/.gitkeep | 0
.../usecases/get_concrete_number_trivia.dart | 31 +-
.../usecases/get_random_number_trivia.dart | 21 +-
.../number_trivia/presentation/.gitkeep | 0
.../number_trivia/presentation/bloc/bloc.dart | 3 -
.../presentation/bloc/number_trivia_bloc.dart | 137 ++--
.../bloc/number_trivia_event.dart | 18 +-
.../bloc/number_trivia_state.dart | 34 +-
.../number_trivia/presentation/pages/.gitkeep | 0
.../number_trivia_screen.dart} | 40 +-
.../presentation/widgets/.gitkeep | 0
.../presentation/widgets/loading_widget.dart | 14 +-
.../presentation/widgets/message_display.dart | 17 +-
.../presentation/widgets/trivia_controls.dart | 69 +-
.../presentation/widgets/trivia_display.dart | 21 +-
.../presentation/widgets/widgets.dart | 2 +-
lib/injection_container.dart | 169 +++--
lib/main.dart | 29 +-
linux/.gitignore | 1 +
linux/CMakeLists.txt | 145 ++++
linux/flutter/CMakeLists.txt | 88 +++
linux/flutter/generated_plugin_registrant.cc | 11 +
linux/flutter/generated_plugin_registrant.h | 15 +
linux/flutter/generated_plugins.cmake | 23 +
linux/main.cc | 6 +
linux/my_application.cc | 124 +++
linux/my_application.h | 18 +
macos/.gitignore | 7 +
macos/Flutter/Flutter-Debug.xcconfig | 2 +
macos/Flutter/Flutter-Release.xcconfig | 2 +
macos/Flutter/GeneratedPluginRegistrant.swift | 12 +
macos/Podfile | 43 ++
macos/Runner.xcodeproj/project.pbxproj | 705 ++++++++++++++++++
.../xcshareddata/IDEWorkspaceChecks.plist | 8 +
.../xcshareddata/xcschemes/Runner.xcscheme | 98 +++
.../contents.xcworkspacedata | 7 +
.../xcshareddata/IDEWorkspaceChecks.plist | 8 +
macos/Runner/AppDelegate.swift | 9 +
.../AppIcon.appiconset/Contents.json | 68 ++
.../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes
.../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes
.../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes
.../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes
.../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes
.../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes
.../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes
macos/Runner/Base.lproj/MainMenu.xib | 343 +++++++++
macos/Runner/Configs/AppInfo.xcconfig | 14 +
macos/Runner/Configs/Debug.xcconfig | 2 +
macos/Runner/Configs/Release.xcconfig | 2 +
macos/Runner/Configs/Warnings.xcconfig | 13 +
macos/Runner/DebugProfile.entitlements | 12 +
macos/Runner/Info.plist | 32 +
macos/Runner/MainFlutterWindow.swift | 15 +
macos/Runner/Release.entitlements | 8 +
macos/RunnerTests/RunnerTests.swift | 12 +
pubspec.lock | 366 ++++++---
pubspec.yaml | 45 +-
test/core/.gitkeep | 0
test/core/error/.gitkeep | 0
test/core/network/network_info_test.dart | 35 +-
test/core/usecases/.gitkeep | 0
test/core/util/input_converter_test.dart | 67 +-
test/features/.gitkeep | 0
test/features/number_trivia/data/.gitkeep | 0
.../number_trivia/data/datasources/.gitkeep | 0
.../number_trivia_local_data_source_test.dart | 98 +--
...number_trivia_remote_data_source_test.dart | 181 ++---
.../number_trivia/data/models/.gitkeep | 0
.../data/models/number_trivia_model_test.dart | 85 +--
.../number_trivia/data/repositories/.gitkeep | 0
.../number_trivia_repository_impl_test.dart | 303 ++++----
test/features/number_trivia/domain/.gitkeep | 0
.../number_trivia/domain/entities/.gitkeep | 0
.../domain/repositories/.gitkeep | 0
.../number_trivia/domain/usecases/.gitkeep | 0
.../get_concrete_number_trivia_test.dart | 37 +-
.../get_random_number_trivia_test.dart | 36 +-
.../number_trivia/presentation/.gitkeep | 0
.../number_trivia/presentation/bloc/.gitkeep | 0
.../bloc/number_trivia_bloc_test.dart | 239 +++---
.../number_trivia/presentation/pages/.gitkeep | 0
.../presentation/widgets/.gitkeep | 0
test/fixtures/trivia.json | 10 +-
test/fixtures/trivia_cached.json | 6 +-
test/fixtures/trivia_double.json | 8 +-
test/widget_test.dart | 29 +
web/favicon.png | Bin 0 -> 917 bytes
web/icons/Icon-192.png | Bin 0 -> 5292 bytes
web/icons/Icon-512.png | Bin 0 -> 8252 bytes
web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes
web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes
web/index.html | 38 +
web/manifest.json | 35 +
windows/.gitignore | 17 +
windows/CMakeLists.txt | 108 +++
windows/flutter/CMakeLists.txt | 109 +++
.../flutter/generated_plugin_registrant.cc | 11 +
windows/flutter/generated_plugin_registrant.h | 15 +
windows/flutter/generated_plugins.cmake | 23 +
windows/runner/CMakeLists.txt | 40 +
windows/runner/Runner.rc | 121 +++
windows/runner/flutter_window.cpp | 71 ++
windows/runner/flutter_window.h | 33 +
windows/runner/main.cpp | 43 ++
windows/runner/resource.h | 16 +
windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes
windows/runner/runner.exe.manifest | 20 +
windows/runner/utils.cpp | 65 ++
windows/runner/utils.h | 19 +
windows/runner/win32_window.cpp | 288 +++++++
windows/runner/win32_window.h | 102 +++
190 files changed, 5056 insertions(+), 1176 deletions(-)
create mode 100644 analysis_options.yaml
create mode 100644 android/.gitignore
create mode 100644 android/app/src/main/kotlin/com/example/clean_architecture_tdd_course/MainActivity.kt
delete mode 100644 android/app/src/main/kotlin/com/resocoder/clean_architecture_tdd_course/MainActivity.kt
create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml
create mode 100644 android/app/src/main/res/values-night/styles.xml
delete mode 100644 architecture-proposal.png
create mode 100644 assets/fonts/Poppins-Bold.ttf
create mode 100644 assets/fonts/Poppins-Regular.ttf
create mode 100644 assets/images/background.png
create mode 100644 assets/images/number_trivia_app.png
create mode 100644 ios/.gitignore
create mode 100644 ios/Podfile
create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
create mode 100644 ios/RunnerTests/RunnerTests.swift
delete mode 100644 lib/core/.gitkeep
delete mode 100644 lib/core/error/.gitkeep
delete mode 100644 lib/core/usecases/.gitkeep
delete mode 100644 lib/core/util/input_converter.dart
create mode 100644 lib/core/utils/app_strings.dart
create mode 100644 lib/core/utils/input_converter.dart
delete mode 100644 lib/features/.gitkeep
delete mode 100644 lib/features/number_trivia/data/.gitkeep
delete mode 100644 lib/features/number_trivia/data/datasources/.gitkeep
delete mode 100644 lib/features/number_trivia/data/models/.gitkeep
delete mode 100644 lib/features/number_trivia/data/repositories/.gitkeep
delete mode 100644 lib/features/number_trivia/domain/.gitkeep
delete mode 100644 lib/features/number_trivia/domain/entities/.gitkeep
delete mode 100644 lib/features/number_trivia/domain/repositories/.gitkeep
delete mode 100644 lib/features/number_trivia/domain/usecases/.gitkeep
delete mode 100644 lib/features/number_trivia/presentation/.gitkeep
delete mode 100644 lib/features/number_trivia/presentation/bloc/bloc.dart
delete mode 100644 lib/features/number_trivia/presentation/pages/.gitkeep
rename lib/features/number_trivia/presentation/{pages/number_trivia_page.dart => screens/number_trivia_screen.dart} (52%)
delete mode 100644 lib/features/number_trivia/presentation/widgets/.gitkeep
create mode 100644 linux/.gitignore
create mode 100644 linux/CMakeLists.txt
create mode 100644 linux/flutter/CMakeLists.txt
create mode 100644 linux/flutter/generated_plugin_registrant.cc
create mode 100644 linux/flutter/generated_plugin_registrant.h
create mode 100644 linux/flutter/generated_plugins.cmake
create mode 100644 linux/main.cc
create mode 100644 linux/my_application.cc
create mode 100644 linux/my_application.h
create mode 100644 macos/.gitignore
create mode 100644 macos/Flutter/Flutter-Debug.xcconfig
create mode 100644 macos/Flutter/Flutter-Release.xcconfig
create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift
create mode 100644 macos/Podfile
create mode 100644 macos/Runner.xcodeproj/project.pbxproj
create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata
create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
create mode 100644 macos/Runner/AppDelegate.swift
create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
create mode 100644 macos/Runner/Base.lproj/MainMenu.xib
create mode 100644 macos/Runner/Configs/AppInfo.xcconfig
create mode 100644 macos/Runner/Configs/Debug.xcconfig
create mode 100644 macos/Runner/Configs/Release.xcconfig
create mode 100644 macos/Runner/Configs/Warnings.xcconfig
create mode 100644 macos/Runner/DebugProfile.entitlements
create mode 100644 macos/Runner/Info.plist
create mode 100644 macos/Runner/MainFlutterWindow.swift
create mode 100644 macos/Runner/Release.entitlements
create mode 100644 macos/RunnerTests/RunnerTests.swift
delete mode 100644 test/core/.gitkeep
delete mode 100644 test/core/error/.gitkeep
delete mode 100644 test/core/usecases/.gitkeep
delete mode 100644 test/features/.gitkeep
delete mode 100644 test/features/number_trivia/data/.gitkeep
delete mode 100644 test/features/number_trivia/data/datasources/.gitkeep
delete mode 100644 test/features/number_trivia/data/models/.gitkeep
delete mode 100644 test/features/number_trivia/data/repositories/.gitkeep
delete mode 100644 test/features/number_trivia/domain/.gitkeep
delete mode 100644 test/features/number_trivia/domain/entities/.gitkeep
delete mode 100644 test/features/number_trivia/domain/repositories/.gitkeep
delete mode 100644 test/features/number_trivia/domain/usecases/.gitkeep
delete mode 100644 test/features/number_trivia/presentation/.gitkeep
delete mode 100644 test/features/number_trivia/presentation/bloc/.gitkeep
delete mode 100644 test/features/number_trivia/presentation/pages/.gitkeep
delete mode 100644 test/features/number_trivia/presentation/widgets/.gitkeep
create mode 100644 test/widget_test.dart
create mode 100644 web/favicon.png
create mode 100644 web/icons/Icon-192.png
create mode 100644 web/icons/Icon-512.png
create mode 100644 web/icons/Icon-maskable-192.png
create mode 100644 web/icons/Icon-maskable-512.png
create mode 100644 web/index.html
create mode 100644 web/manifest.json
create mode 100644 windows/.gitignore
create mode 100644 windows/CMakeLists.txt
create mode 100644 windows/flutter/CMakeLists.txt
create mode 100644 windows/flutter/generated_plugin_registrant.cc
create mode 100644 windows/flutter/generated_plugin_registrant.h
create mode 100644 windows/flutter/generated_plugins.cmake
create mode 100644 windows/runner/CMakeLists.txt
create mode 100644 windows/runner/Runner.rc
create mode 100644 windows/runner/flutter_window.cpp
create mode 100644 windows/runner/flutter_window.h
create mode 100644 windows/runner/main.cpp
create mode 100644 windows/runner/resource.h
create mode 100644 windows/runner/resources/app_icon.ico
create mode 100644 windows/runner/runner.exe.manifest
create mode 100644 windows/runner/utils.cpp
create mode 100644 windows/runner/utils.h
create mode 100644 windows/runner/win32_window.cpp
create mode 100644 windows/runner/win32_window.h
diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies
index ee15714..36a79ff 100644
--- a/.flutter-plugins-dependencies
+++ b/.flutter-plugins-dependencies
@@ -1 +1 @@
-{"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"shared_preferences","dependencies":["shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]}]}
\ No newline at end of file
+{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"shared_preferences_foundation","path":"/Users/linkawy/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"android":[{"name":"shared_preferences_android","path":"/Users/linkawy/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.0/","native_build":true,"dependencies":[]}],"macos":[{"name":"shared_preferences_foundation","path":"/Users/linkawy/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/linkawy/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/linkawy/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.0/","native_build":false,"dependencies":["path_provider_linux"]}],"windows":[{"name":"path_provider_windows","path":"/Users/linkawy/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/linkawy/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.0/","native_build":false,"dependencies":["path_provider_windows"]}],"web":[{"name":"shared_preferences_web","path":"/Users/linkawy/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.1/","dependencies":[]}]},"dependencyGraph":[{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]}],"date_created":"2024-10-06 12:51:25.711950","version":"3.22.2"}
\ No newline at end of file
diff --git a/README.md b/README.md
index 0280f8c..e78f647 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,104 @@
+
# TDD Clean Architecture for Flutter
-### The whole accompanying tutorial series is available at :point_right: [this link](https://resocoder.com/flutter-clean-architecture-tdd/) :point_left:.
+
+
+
+
+
Number Trivia App
+
+ Number Trivia App using clean architecture and test-driven development
+
+ Project inspired by Reso Coder's Clean Architecture TDD Course.
+
+
+