├── test
├── helpers
│ ├── helpers.dart
│ ├── json_reader.dart
│ ├── pump_app.dart
│ ├── test_helper.dart
│ └── dummy_data
│ │ └── dummy_data_volumes.json
├── data
│ ├── models
│ │ ├── volume_request_model_test.dart
│ │ └── volume_response_model_test.dart
│ ├── data_sources
│ │ └── volumes_data_source_test.dart
│ └── repositories
│ │ └── volumes_repository_impl_test.dart
└── domain
│ └── use_cases
│ └── get_volumes_use_case_test.dart
├── ios
├── Runner
│ ├── Runner-Bridging-Header.h
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── 100.png
│ │ │ ├── 114.png
│ │ │ ├── 120.png
│ │ │ ├── 128.png
│ │ │ ├── 144.png
│ │ │ ├── 152.png
│ │ │ ├── 16.png
│ │ │ ├── 167.png
│ │ │ ├── 172.png
│ │ │ ├── 180.png
│ │ │ ├── 196.png
│ │ │ ├── 20.png
│ │ │ ├── 216.png
│ │ │ ├── 256.png
│ │ │ ├── 29.png
│ │ │ ├── 32.png
│ │ │ ├── 40.png
│ │ │ ├── 48.png
│ │ │ ├── 50.png
│ │ │ ├── 512.png
│ │ │ ├── 55.png
│ │ │ ├── 57.png
│ │ │ ├── 58.png
│ │ │ ├── 60.png
│ │ │ ├── 64.png
│ │ │ ├── 72.png
│ │ │ ├── 76.png
│ │ │ ├── 80.png
│ │ │ ├── 87.png
│ │ │ ├── 88.png
│ │ │ └── 1024.png
│ │ ├── AppIcon-dev.appiconset
│ │ │ ├── 16.png
│ │ │ ├── 20.png
│ │ │ ├── 29.png
│ │ │ ├── 32.png
│ │ │ ├── 40.png
│ │ │ ├── 48.png
│ │ │ ├── 50.png
│ │ │ ├── 55.png
│ │ │ ├── 57.png
│ │ │ ├── 58.png
│ │ │ ├── 60.png
│ │ │ ├── 64.png
│ │ │ ├── 72.png
│ │ │ ├── 76.png
│ │ │ ├── 80.png
│ │ │ ├── 87.png
│ │ │ ├── 88.png
│ │ │ ├── 100.png
│ │ │ ├── 1024.png
│ │ │ ├── 114.png
│ │ │ ├── 120.png
│ │ │ ├── 128.png
│ │ │ ├── 144.png
│ │ │ ├── 152.png
│ │ │ ├── 167.png
│ │ │ ├── 172.png
│ │ │ ├── 180.png
│ │ │ ├── 196.png
│ │ │ ├── 216.png
│ │ │ ├── 256.png
│ │ │ └── 512.png
│ │ ├── AppIcon-stg.appiconset
│ │ │ ├── 16.png
│ │ │ ├── 20.png
│ │ │ ├── 29.png
│ │ │ ├── 32.png
│ │ │ ├── 40.png
│ │ │ ├── 48.png
│ │ │ ├── 50.png
│ │ │ ├── 55.png
│ │ │ ├── 57.png
│ │ │ ├── 58.png
│ │ │ ├── 60.png
│ │ │ ├── 64.png
│ │ │ ├── 72.png
│ │ │ ├── 76.png
│ │ │ ├── 80.png
│ │ │ ├── 87.png
│ │ │ ├── 88.png
│ │ │ ├── 100.png
│ │ │ ├── 1024.png
│ │ │ ├── 114.png
│ │ │ ├── 120.png
│ │ │ ├── 128.png
│ │ │ ├── 144.png
│ │ │ ├── 152.png
│ │ │ ├── 167.png
│ │ │ ├── 172.png
│ │ │ ├── 180.png
│ │ │ ├── 196.png
│ │ │ ├── 216.png
│ │ │ ├── 256.png
│ │ │ └── 512.png
│ │ └── LaunchImage.imageset
│ │ │ ├── LaunchImage@1x.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── README.md
│ │ │ └── Contents.json
│ ├── AppDelegate.swift
│ ├── Base.lproj
│ │ ├── Main.storyboard
│ │ └── LaunchScreen.storyboard
│ └── Info.plist
├── Flutter
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── AppFrameworkInfo.plist
├── Runner.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ ├── staging.xcscheme
│ │ ├── production.xcscheme
│ │ └── development.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── RunnerTests
│ └── RunnerTests.swift
├── .gitignore
└── Podfile
├── makefile
├── .gitattributes
├── web
├── favicon.png
├── icons
│ ├── favicon.png
│ ├── Icon-192.png
│ └── Icon-512.png
└── manifest.json
├── android
├── gradle.properties
├── app
│ └── src
│ │ ├── main
│ │ ├── ic_launcher-playstore.png
│ │ ├── res
│ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── values
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── styles.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ ├── drawable-v21
│ │ │ │ └── launch_background.xml
│ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ └── values-night
│ │ │ │ └── styles.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── emeksiz
│ │ │ │ └── MainActivity.kt
│ │ └── AndroidManifest.xml
│ │ ├── staging
│ │ ├── ic_launcher-playstore.png
│ │ └── res
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── values
│ │ │ └── ic_launcher_background.xml
│ │ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ ├── development
│ │ ├── ic_launcher-playstore.png
│ │ └── res
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── values
│ │ │ └── ic_launcher_background.xml
│ │ │ └── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── .gitignore
├── settings.gradle
└── build.gradle
├── macos
├── Runner
│ ├── Configs
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ ├── Warnings.xcconfig
│ │ └── AppInfo.xcconfig
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ ├── 1024.png
│ │ │ ├── 128.png
│ │ │ ├── 16.png
│ │ │ ├── 256.png
│ │ │ ├── 32 1.png
│ │ │ ├── 32.png
│ │ │ ├── 512.png
│ │ │ ├── 64.png
│ │ │ ├── 256 1.png
│ │ │ ├── 512 1.png
│ │ │ └── Contents.json
│ │ ├── AppIcon-dev.appiconset
│ │ │ ├── 16.png
│ │ │ ├── 32.png
│ │ │ ├── 64.png
│ │ │ ├── 1024.png
│ │ │ ├── 128.png
│ │ │ ├── 256 1.png
│ │ │ ├── 256.png
│ │ │ ├── 32 1.png
│ │ │ ├── 512 1.png
│ │ │ ├── 512.png
│ │ │ └── Contents.json
│ │ ├── AppIcon-stg.appiconset
│ │ │ ├── 16.png
│ │ │ ├── 32.png
│ │ │ ├── 64.png
│ │ │ ├── 1024.png
│ │ │ ├── 128.png
│ │ │ ├── 256 1.png
│ │ │ ├── 256.png
│ │ │ ├── 32 1.png
│ │ │ ├── 512 1.png
│ │ │ ├── 512.png
│ │ │ └── Contents.json
│ │ └── LaunchImage.imageset
│ │ │ ├── LaunchImage@1x.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── Contents.json
│ ├── AppDelegate.swift
│ ├── Release.entitlements
│ ├── DebugProfile.entitlements
│ ├── MainFlutterWindow.swift
│ └── Info.plist
├── .gitignore
├── Flutter
│ ├── Flutter-Debug.xcconfig
│ ├── Flutter-Release.xcconfig
│ └── GeneratedPluginRegistrant.swift
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Runner.xcodeproj
│ └── project.xcworkspace
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── RunnerTests
│ └── RunnerTests.swift
└── Podfile
├── windows
├── runner
│ ├── resources
│ │ └── app_icon.ico
│ ├── resource.h
│ ├── CMakeLists.txt
│ ├── utils.h
│ ├── runner.exe.manifest
│ ├── flutter_window.h
│ ├── main.cpp
│ ├── utils.cpp
│ ├── flutter_window.cpp
│ ├── Runner.rc
│ └── win32_window.h
├── flutter
│ ├── generated_plugin_registrant.cc
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
└── .gitignore
├── lib
├── core
│ ├── cubit
│ │ ├── base_state.dart
│ │ └── base_cubit.dart
│ ├── constants
│ │ ├── hive_type_constants.dart
│ │ ├── flavor_constants.dart
│ │ ├── environment_constants.dart
│ │ ├── color_constants.dart
│ │ └── locale_key_constants.dart
│ ├── utils
│ │ ├── extensions
│ │ │ ├── widget_extensions.dart
│ │ │ └── context_extensions.dart
│ │ ├── observers
│ │ │ └── bloc_observer.dart
│ │ └── mixins
│ │ │ └── network_handler_mixin.dart
│ ├── config
│ │ ├── localization_config.dart
│ │ ├── types.dart
│ │ └── flavor_config.dart
│ ├── widget
│ │ └── base_widget.dart
│ ├── api
│ │ ├── dio_client.dart
│ │ └── hive_client.dart
│ ├── error
│ │ └── failure.dart
│ └── view
│ │ └── base_view.dart
├── domain
│ ├── use_cases
│ │ ├── close_favorite_use_case.dart
│ │ ├── remove_favorites_use_case.dart
│ │ ├── get_favorites_use_case.dart
│ │ ├── stream_favorites_use_case.dart
│ │ ├── add_favorite_use_case.dart
│ │ └── get_volumes_use_case.dart
│ ├── repositories
│ │ ├── local
│ │ │ └── favorites_repository.dart
│ │ └── remote
│ │ │ └── volumes_repository.dart
│ └── entities
│ │ ├── volume_request_entity.dart
│ │ └── volume_response_entity.dart
├── presentation
│ ├── theme
│ │ └── theme_data.dart
│ ├── widgets
│ │ ├── flavor_banner.dart
│ │ ├── custom_app_bar.dart
│ │ └── custom_scaffold.dart
│ └── views
│ │ ├── favorites
│ │ ├── widget
│ │ │ └── favorite_builder.dart
│ │ ├── cubit
│ │ │ ├── favorites_state.dart
│ │ │ └── favorites_cubit.dart
│ │ └── favorites_view.dart
│ │ └── search
│ │ ├── cubit
│ │ ├── search_state.dart
│ │ └── search_cubit.dart
│ │ ├── search_view.dart
│ │ └── widget
│ │ ├── volume_builder.dart
│ │ └── search.dart
├── routers
│ ├── app_router.dart
│ └── app_router.gr.dart
├── inject.dart
├── data
│ ├── data_sources
│ │ ├── remote
│ │ │ ├── volumes_data_source.dart
│ │ │ └── volumes_data_source.g.dart
│ │ └── local
│ │ │ └── favorites_data_source.dart
│ ├── models
│ │ └── volume_request_model.dart
│ └── repositories
│ │ ├── remote
│ │ └── volumes_repository_impl.dart
│ │ └── local
│ │ └── favorites_repository_impl.dart
├── bootstrap.dart
└── main.dart
├── .vscode
├── extensions.json
└── launch.json
├── .idea
└── runConfigurations
│ ├── staging.xml
│ ├── production.xml
│ └── development.xml
├── .github
└── PULL_REQUEST_TEMPLATE.md
├── analysis_options.yaml
├── assets
└── translations
│ └── en-US.json
├── LICENSE
├── pubspec.yaml
├── .metadata
├── README.md
└── .gitignore
/test/helpers/helpers.dart:
--------------------------------------------------------------------------------
1 | export 'pump_app.dart';
2 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/makefile:
--------------------------------------------------------------------------------
1 | gen:
2 | flutter pub run build_runner build --delete-conflicting-outputs
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/web/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/web/favicon.png
--------------------------------------------------------------------------------
/web/icons/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/web/icons/favicon.png
--------------------------------------------------------------------------------
/web/icons/Icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/web/icons/Icon-192.png
--------------------------------------------------------------------------------
/web/icons/Icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/web/icons/Icon-512.png
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Pods/
4 |
5 | # Xcode-related
6 | **/dgph
7 | **/xcuserdata/
8 |
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/lib/core/cubit/base_state.dart:
--------------------------------------------------------------------------------
1 | part of 'base_cubit.dart';
2 |
3 | abstract base class BaseState extends Equatable {
4 | const BaseState();
5 | }
6 |
--------------------------------------------------------------------------------
/android/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/android/app/src/staging/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/android/app/src/development/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png
--------------------------------------------------------------------------------
/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/20.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/29.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/40.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/48.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/50.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/55.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/57.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/58.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/60.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/72.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/76.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/80.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/87.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/88.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/20.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/29.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/40.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/48.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/50.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/55.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/57.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/58.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/60.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/72.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/76.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/80.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/87.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/88.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/32 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/32 1.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/100.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/114.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/120.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/144.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/152.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/167.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/172.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/180.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/196.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/216.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/100.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/114.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/120.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/144.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/152.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/167.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/172.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/180.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/196.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/216.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/16.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/64.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/16.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/64.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/256 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/256 1.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/512 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon.appiconset/512 1.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/1024.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/128.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256 1.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/256.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/32 1.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512 1.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-dev.appiconset/512.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/1024.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/128.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256 1.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/256.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/32 1.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512 1.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/AppIcon-stg.appiconset/512.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/development/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@1x.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yakupemeksiz/my_favorite_books/HEAD/macos/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/emeksiz/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.emeksiz.my_favorite_books
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib/core/constants/hive_type_constants.dart:
--------------------------------------------------------------------------------
1 | abstract final class HiveTypeConstants {
2 | static const int volumeItemModel = 1;
3 | static const int imageLinksModel = 2;
4 | static const int volumeInfoModel = 3;
5 | }
6 |
--------------------------------------------------------------------------------
/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib/core/constants/flavor_constants.dart:
--------------------------------------------------------------------------------
1 | mixin FlavorConstants {
2 | static const String envKey = 'APP_ENV';
3 |
4 | static const String dev = 'dev';
5 | static const String stage = 'stage';
6 | static const String prod = 'prod';
7 | }
8 |
--------------------------------------------------------------------------------
/windows/flutter/generated_plugin_registrant.cc:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #include "generated_plugin_registrant.h"
8 |
9 |
10 | void RegisterPlugins(flutter::PluginRegistry* registry) {
11 | }
12 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "dart-code.dart-code",
6 | "dart-code.flutter",
7 | "felixangelov.bloc"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/macos/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | @NSApplicationMain
5 | class AppDelegate: FlutterAppDelegate {
6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
7 | return true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/helpers/json_reader.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 |
3 | String readJson(String name) {
4 | var dir = Directory.current.path;
5 | if (dir.endsWith('/test')) {
6 | dir = dir.replaceAll('/test', '');
7 | }
8 | return File('$dir/test/$name').readAsStringSync();
9 | }
10 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
7 |
--------------------------------------------------------------------------------
/macos/Runner/Release.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /local.properties
5 | GeneratedPluginRegistrant.java
6 |
7 | # Remember to never publicly share your keystore.
8 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
9 | key.properties
10 | **/*.keystore
11 | **/*.jks
12 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/helpers/pump_app.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_test/flutter_test.dart';
3 |
4 | extension PumpApp on WidgetTester {
5 | Future pumpApp(Widget widget) {
6 | return pumpWidget(
7 | MaterialApp(
8 | home: widget,
9 | ),
10 | );
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ios/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import Flutter
2 | import UIKit
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/macos/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import FlutterMacOS
2 | import Cocoa
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/staging.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/windows/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral/
2 |
3 | # Visual Studio user-specific files.
4 | *.suo
5 | *.user
6 | *.userosscache
7 | *.sln.docstates
8 |
9 | # Visual Studio build-related files.
10 | x64/
11 | x86/
12 |
13 | # Visual Studio cache files
14 | # files ending in .cache can be ignored
15 | *.[Cc]ache
16 | # but keep track of directories ending in .cache
17 | !*.[Cc]ache/
18 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/windows/flutter/generated_plugin_registrant.h:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #ifndef GENERATED_PLUGIN_REGISTRANT_
8 | #define GENERATED_PLUGIN_REGISTRANT_
9 |
10 | #include
11 |
12 | // Registers Flutter plugins.
13 | void RegisterPlugins(flutter::PluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/macos/Runner/DebugProfile.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.cs.allow-jit
8 |
9 | com.apple.security.network.server
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## Description
2 |
3 |
4 |
5 | ## Type of Change
6 |
7 |
8 |
9 | - [ ] ✨ New feature (non-breaking change which adds functionality)
10 | - [ ] 🛠️ Bug fix (non-breaking change which fixes an issue)
11 | - [ ] 🧹 Code refactor
12 | - [ ] ✅ All existing and new tests are passing.
13 | - [ ] 📝 Documentation
14 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/core/constants/environment_constants.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_dotenv/flutter_dotenv.dart';
2 |
3 | /// Environment constants for the app to use.
4 | mixin EnvironmentConstants {
5 | /// The API key for the google books API.
6 | static String get apiKey {
7 | final key = dotenv.env['API_KEY'];
8 |
9 | if (key == null) {
10 | throw Exception('API_KEY is not defined in .env');
11 | }
12 |
13 | return key;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/lib/domain/use_cases/close_favorite_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:injectable/injectable.dart';
2 | import 'package:my_favorite_books/domain/repositories/local/favorites_repository.dart';
3 |
4 | @injectable
5 | final class CloseFavoriteUseCase {
6 | final FavoritesRepository _favoritesRepository;
7 |
8 | const CloseFavoriteUseCase(this._favoritesRepository);
9 |
10 | Future call() {
11 | return _favoritesRepository.close();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/lib/core/constants/color_constants.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | abstract final class ColorConstants {
4 | static const Color scaffoldBackgroundColor = Color(0xFF1A252C);
5 | static const Color textColor = Colors.white;
6 | static const Color iconColor = Colors.white;
7 | static const Color errorColor = Colors.redAccent;
8 | static const Color borderColor = Colors.blue;
9 | static const Color borderFavoriteColor = Colors.red;
10 | }
11 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/lib/domain/use_cases/remove_favorites_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:injectable/injectable.dart';
2 | import 'package:my_favorite_books/domain/repositories/local/favorites_repository.dart';
3 |
4 | @injectable
5 | final class RemoveFavoriteUseCase {
6 | final FavoritesRepository _favoritesRepository;
7 |
8 | const RemoveFavoriteUseCase(this._favoritesRepository);
9 |
10 | Future call(String key) {
11 | return _favoritesRepository.removeFavorite(key);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/macos/Runner/MainFlutterWindow.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | class MainFlutterWindow: NSWindow {
5 | override func awakeFromNib() {
6 | let flutterViewController = FlutterViewController()
7 | let windowFrame = self.frame
8 | self.contentViewController = flutterViewController
9 | self.setFrame(windowFrame, display: true)
10 |
11 | RegisterGeneratedPlugins(registry: flutterViewController)
12 |
13 | super.awakeFromNib()
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/lib/domain/repositories/local/favorites_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:my_favorite_books/domain/entities/volume_response_entity.dart';
2 |
3 | abstract interface class FavoritesRepository {
4 | Future addToFavorites({
5 | required String key,
6 | required VolumeItemEntity item,
7 | });
8 | List getFavorites();
9 | Future removeFavorite(String key);
10 | Stream> watchFavorites();
11 | Future close();
12 | }
13 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/production.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/development.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/windows/runner/resource.h:
--------------------------------------------------------------------------------
1 | //
2 | // Microsoft Visual C++ generated include file.
3 | // Used by Runner.rc
4 | //
5 | #define IDI_APP_ICON 101
6 |
7 | // Next default values for new objects
8 | //
9 | #ifdef APSTUDIO_INVOKED
10 | #ifndef APSTUDIO_READONLY_SYMBOLS
11 | #define _APS_NEXT_RESOURCE_VALUE 102
12 | #define _APS_NEXT_COMMAND_VALUE 40001
13 | #define _APS_NEXT_CONTROL_VALUE 1001
14 | #define _APS_NEXT_SYMED_VALUE 101
15 | #endif
16 | #endif
17 |
--------------------------------------------------------------------------------
/lib/core/utils/extensions/widget_extensions.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_screenutil/flutter_screenutil.dart';
3 |
4 | extension WidgetExtension on Widget {
5 | /// Adds horizontal padding of 16 to the widget
6 | ///
7 | /// ```dart
8 | /// Text('Hello World').symmetricHDefaultPadding
9 | /// ```
10 | Widget get symmetricHDefaultPadding => Padding(
11 | padding: EdgeInsets.symmetric(horizontal: 16.w),
12 | child: this,
13 | );
14 | }
15 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "LaunchImage@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "LaunchImage@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "LaunchImage@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "LaunchImage@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "LaunchImage@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "LaunchImage@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/lib/domain/use_cases/get_favorites_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:injectable/injectable.dart';
2 | import 'package:my_favorite_books/domain/entities/volume_response_entity.dart';
3 | import 'package:my_favorite_books/domain/repositories/local/favorites_repository.dart';
4 |
5 | @injectable
6 | final class GetFavoritesUseCase {
7 | final FavoritesRepository _favoritesRepository;
8 |
9 | const GetFavoritesUseCase(this._favoritesRepository);
10 |
11 | List call() {
12 | return _favoritesRepository.getFavorites();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/lib/core/cubit/base_cubit.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_bloc/flutter_bloc.dart';
4 |
5 | part 'base_state.dart';
6 |
7 | abstract base class BaseCubit extends Cubit
8 | implements StateStreamableSource {
9 | BaseCubit(super.initialState) {
10 | onBindingCreated();
11 | }
12 |
13 | void safeEmit(S state) {
14 | if (!isClosed) {
15 | emit(state);
16 | }
17 | }
18 |
19 | @mustCallSuper
20 | void onBindingCreated() {}
21 | }
22 |
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:very_good_analysis/analysis_options.5.1.0.yaml
2 | linter:
3 | rules:
4 | sort_constructors_first: false
5 | public_member_api_docs: false
6 | sort_pub_dependencies: false
7 | avoid_positional_boolean_parameters: false
8 | avoid_dynamic_calls: false
9 | one_member_abstracts: false
10 | library_private_types_in_public_api: false
11 | unnecessary_lambdas: false
12 |
13 | analyzer:
14 | exclude:
15 | - lib/inject.config.dart
16 | - '**.g.dart'
17 |
18 | language:
19 | strict-casts: false
20 |
--------------------------------------------------------------------------------
/lib/domain/use_cases/stream_favorites_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:injectable/injectable.dart';
2 | import 'package:my_favorite_books/domain/entities/volume_response_entity.dart';
3 | import 'package:my_favorite_books/domain/repositories/local/favorites_repository.dart';
4 |
5 | @injectable
6 | final class StreamFavoritesUseCase {
7 | final FavoritesRepository _favoritesRepository;
8 |
9 | const StreamFavoritesUseCase(this._favoritesRepository);
10 |
11 | Stream> call() {
12 | return _favoritesRepository.watchFavorites();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/lib/domain/repositories/remote/volumes_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 | import 'package:my_favorite_books/core/config/types.dart';
3 | import 'package:my_favorite_books/domain/entities/volume_request_entity.dart';
4 | import 'package:my_favorite_books/domain/entities/volume_response_entity.dart';
5 |
6 | /// This class is a repository for volumes in the remote data source
7 | abstract interface class VolumesRepository {
8 | RemoteFetchResult getVolumes(
9 | CancelToken token, {
10 | required VolumesRequestEntity request,
11 | });
12 | }
13 |
--------------------------------------------------------------------------------
/lib/domain/use_cases/add_favorite_use_case.dart:
--------------------------------------------------------------------------------
1 | import 'package:injectable/injectable.dart';
2 | import 'package:my_favorite_books/domain/entities/volume_response_entity.dart';
3 | import 'package:my_favorite_books/domain/repositories/local/favorites_repository.dart';
4 |
5 | @injectable
6 | final class AddFavoriteUseCase {
7 | final FavoritesRepository _favoritesRepository;
8 |
9 | const AddFavoriteUseCase(this._favoritesRepository);
10 |
11 | Future call(String key, VolumeItemEntity item) {
12 | return _favoritesRepository.addToFavorites(key: key, item: item);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/lib/core/config/localization_config.dart:
--------------------------------------------------------------------------------
1 | import 'package:easy_localization/easy_localization.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | final class LocalizationConfig {
5 | LocalizationConfig._();
6 |
7 | static List get _supportedLocales => const [
8 | Locale('en', 'US'),
9 | ];
10 |
11 | static String get _path => 'assets/translations';
12 |
13 | static Widget runAppWithEasyWidget(Widget myApp) {
14 | return EasyLocalization(
15 | supportedLocales: _supportedLocales,
16 | path: _path,
17 | child: myApp,
18 | );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/macos/Flutter/GeneratedPluginRegistrant.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | import FlutterMacOS
6 | import Foundation
7 |
8 | import path_provider_foundation
9 | import shared_preferences_foundation
10 | import sqflite
11 |
12 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
13 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
14 | SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
15 | SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
16 | }
17 |
--------------------------------------------------------------------------------
/assets/translations/en-US.json:
--------------------------------------------------------------------------------
1 | {
2 | "appTitle": "My Favorite Books",
3 | "searchText": "Search",
4 | "searchPlaceholder": "Book name, author, or genre...",
5 | "authors": "Authors: {}",
6 | "publisher": "Publisher: {}",
7 | "pages": "Pages: {}",
8 | "publishedAt": "Published at: {}",
9 | "noBooksFound": "No books found",
10 | "pleaseEnterSearchText": "Please enter search text",
11 | "enteredLengthShouldBeAtLeast": "Entered length should be at least 500",
12 | "favoriteTitle": "Favorite",
13 | "unknownText": "Unknown",
14 | "somethingWentWrong": "Something went wrong",
15 | "noFavoriteBooksYet": "No favorite books yet"
16 | }
17 |
--------------------------------------------------------------------------------
/test/data/models/volume_request_model_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 | import 'package:flutter_test/flutter_test.dart';
3 |
4 | import '../../helpers/test_helper.dart';
5 |
6 | void main() {
7 | test('should be a subclass of Equatable', () {
8 | expect(dummyVolumeResponseModel, isA());
9 | });
10 |
11 | test('should return a json map containing proper data', () {
12 | final result = volumesRequestModel.toJson();
13 |
14 | final expected = {
15 | 'q': 'harry potter',
16 | 'maxResults': 10,
17 | 'startIndex': 0,
18 | };
19 |
20 | expect(result, expected);
21 | });
22 | }
23 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Warnings.xcconfig:
--------------------------------------------------------------------------------
1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
2 | GCC_WARN_UNDECLARED_SELECTOR = YES
3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
6 | CLANG_WARN_PRAGMA_PACK = YES
7 | CLANG_WARN_STRICT_PROTOTYPES = YES
8 | CLANG_WARN_COMMA = YES
9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES
10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
12 | GCC_WARN_SHADOW = YES
13 | CLANG_WARN_UNREACHABLE_CODE = YES
14 |
--------------------------------------------------------------------------------
/windows/runner/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.14)
2 | project(runner LANGUAGES CXX)
3 |
4 | add_executable(${BINARY_NAME} WIN32
5 | "flutter_window.cpp"
6 | "main.cpp"
7 | "utils.cpp"
8 | "win32_window.cpp"
9 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
10 | "Runner.rc"
11 | "runner.exe.manifest"
12 | )
13 | apply_standard_settings(${BINARY_NAME})
14 | target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX")
15 | target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)
16 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
17 | add_dependencies(${BINARY_NAME} flutter_assemble)
18 |
--------------------------------------------------------------------------------
/lib/presentation/theme/theme_data.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_screenutil/flutter_screenutil.dart';
3 | import 'package:my_favorite_books/core/constants/color_constants.dart';
4 |
5 | class AppThemeData {
6 | static final ThemeData appTheme = ThemeData.dark(
7 | useMaterial3: false,
8 | ).copyWith(
9 | scaffoldBackgroundColor: ColorConstants.scaffoldBackgroundColor,
10 | brightness: Brightness.dark,
11 | textTheme: TextTheme(
12 | headlineMedium: TextStyle(
13 | color: ColorConstants.textColor,
14 | fontWeight: FontWeight.bold,
15 | fontSize: 30.sp,
16 | ),
17 | ),
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/AppInfo.xcconfig:
--------------------------------------------------------------------------------
1 | // Application-level settings for the Runner target.
2 | //
3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
4 | // future. If not, the values below would default to using the project name when this becomes a
5 | // 'flutter create' template.
6 |
7 | // The application's name. By default this is also the title of the Flutter window.
8 | PRODUCT_NAME = my_app
9 |
10 | // The application's bundle identifier
11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.myApp
12 |
13 | // The copyright displayed in application information
14 | PRODUCT_COPYRIGHT = Copyright © 2023 com.example. All rights reserved.
15 |
--------------------------------------------------------------------------------
/lib/routers/app_router.dart:
--------------------------------------------------------------------------------
1 | import 'package:auto_route/auto_route.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:my_favorite_books/presentation/views/favorites/favorites_view.dart';
4 | import 'package:my_favorite_books/presentation/views/search/search_view.dart';
5 |
6 | part 'app_router.gr.dart';
7 |
8 | @AutoRouterConfig(replaceInRouteName: 'View,Route')
9 | class AppRouter extends _$AppRouter {
10 | @override
11 | List get routes => [
12 | AutoRoute(
13 | page: SearchRoute.page,
14 | initial: true,
15 | ),
16 | AutoRoute(
17 | page: FavoritesRoute.page,
18 | ),
19 | ];
20 | }
21 |
--------------------------------------------------------------------------------
/lib/inject.dart:
--------------------------------------------------------------------------------
1 | import 'package:get_it/get_it.dart';
2 | import 'package:injectable/injectable.dart';
3 | import 'package:my_favorite_books/core/api/dio_client.dart';
4 | import 'package:my_favorite_books/core/config/flavor_config.dart';
5 | import 'package:my_favorite_books/data/data_sources/remote/volumes_data_source.dart';
6 | import 'package:my_favorite_books/inject.config.dart';
7 |
8 | final getIt = GetIt.instance;
9 |
10 | @InjectableInit()
11 | void configureDependencies() {
12 | getIt.init(environment: FlavorConfig.currentFlavor);
13 | }
14 |
15 | @module
16 | abstract class RegisterModule {
17 | final VolumesDataSource volumesDataSource = VolumesDataSource(DioClient.dio);
18 | }
19 |
--------------------------------------------------------------------------------
/web/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "My Favorite Books",
3 | "short_name": "My Favorite Books",
4 | "start_url": ".",
5 | "display": "standalone",
6 | "background_color": "#0175C2",
7 | "theme_color": "#0175C2",
8 | "description": "My Favotire Books",
9 | "orientation": "portrait-primary",
10 | "prefer_related_applications": false,
11 | "icons": [
12 | {
13 | "src": "icons/Icon-192.png",
14 | "sizes": "192x192",
15 | "type": "image/png"
16 | },
17 | {
18 | "src": "icons/Icon-512.png",
19 | "sizes": "512x512",
20 | "type": "image/png"
21 | }
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/test/data/models/volume_response_model_test.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 |
3 | import 'package:equatable/equatable.dart';
4 | import 'package:flutter_test/flutter_test.dart';
5 | import 'package:my_favorite_books/data/models/volume_response_model.dart';
6 |
7 | import '../../helpers/test_helper.dart';
8 |
9 | void main() {
10 | test('should be a subclass of Equatable', () {
11 | expect(dummyVolumeResponseModel, isA());
12 | });
13 |
14 | test('should return a valid model', () {
15 | final Map jsonMap = jsonDecode(jsonVolumesData);
16 | final result = VolumeResponseModel.fromJson(jsonMap);
17 | expect(result, equals(dummyVolumeResponseModel));
18 | });
19 | }
20 |
--------------------------------------------------------------------------------
/lib/core/config/types.dart:
--------------------------------------------------------------------------------
1 | import 'package:either_dart/either.dart';
2 | import 'package:my_favorite_books/core/error/failure.dart';
3 | import 'package:my_favorite_books/domain/entities/volume_response_entity.dart';
4 |
5 | /// A type definition for a remote fetch result.
6 | /// It is a [Future] of [Either] of [Failure] and [T].
7 | /// [T] is a generic type that extends [Object].
8 | /// [T] is the type of the result of the remote fetch operation.
9 | /// [Failure] is the type of the error that can occur during the remote fetch
10 | /// operation.
11 |
12 | typedef RemoteFetchResult = Future>;
13 |
14 | typedef OnVolumePressed = void Function(VolumeItemEntity volumeItemEntity);
15 |
--------------------------------------------------------------------------------
/lib/data/data_sources/remote/volumes_data_source.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 | import 'package:my_favorite_books/data/models/volume_request_model.dart';
3 | import 'package:my_favorite_books/data/models/volume_response_model.dart';
4 | import 'package:retrofit/retrofit.dart';
5 |
6 | part 'volumes_data_source.g.dart';
7 |
8 | @RestApi()
9 | abstract class VolumesDataSource {
10 | factory VolumesDataSource(Dio dio, {String baseUrl}) = _VolumesDataSource;
11 |
12 | static const String _endpoint = '/volumes';
13 |
14 | @GET(_endpoint)
15 | Future getVolumes(
16 | @CancelRequest() CancelToken cancelToken, {
17 | @Queries() required VolumesRequestModel request,
18 | });
19 | }
20 |
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | **/dgph
2 | *.mode1v3
3 | *.mode2v3
4 | *.moved-aside
5 | *.pbxuser
6 | *.perspectivev3
7 | **/*sync/
8 | .sconsign.dblite
9 | .tags*
10 | **/.vagrant/
11 | **/DerivedData/
12 | Icon?
13 | **/Pods/
14 | **/.symlinks/
15 | profile
16 | xcuserdata
17 | **/.generated/
18 | Flutter/App.framework
19 | Flutter/Flutter.framework
20 | Flutter/Flutter.podspec
21 | Flutter/Generated.xcconfig
22 | Flutter/ephemeral/
23 | Flutter/app.flx
24 | Flutter/app.zip
25 | Flutter/flutter_assets/
26 | Flutter/flutter_export_environment.sh
27 | ServiceDefinitions.json
28 | Runner/GeneratedPluginRegistrant.*
29 |
30 | # Exceptions to above rules.
31 | !default.mode1v3
32 | !default.mode2v3
33 | !default.pbxuser
34 | !default.perspectivev3
35 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.7.10'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:7.3.0'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | mavenCentral()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | tasks.register("clean", Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/windows/runner/utils.h:
--------------------------------------------------------------------------------
1 | #ifndef RUNNER_UTILS_H_
2 | #define RUNNER_UTILS_H_
3 |
4 | #include
5 | #include
6 |
7 | // Creates a console for the process, and redirects stdout and stderr to
8 | // it for both the runner and the Flutter library.
9 | void CreateAndAttachConsole();
10 |
11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string
12 | // encoded in UTF-8. Returns an empty std::string on failure.
13 | std::string Utf8FromUtf16(const wchar_t* utf16_string);
14 |
15 | // Gets the command line arguments passed in as a std::vector,
16 | // encoded in UTF-8. Returns an empty std::vector on failure.
17 | std::vector GetCommandLineArguments();
18 |
19 | #endif // RUNNER_UTILS_H_
20 |
--------------------------------------------------------------------------------
/lib/presentation/widgets/flavor_banner.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:my_favorite_books/core/config/flavor_config.dart';
3 |
4 | final class FlavorBanner extends StatelessWidget {
5 | const FlavorBanner({
6 | required this.child,
7 | required this.message,
8 | super.key,
9 | });
10 | final Widget child;
11 | final String message;
12 |
13 | @override
14 | Widget build(BuildContext context) {
15 | return Directionality(
16 | textDirection: TextDirection.ltr,
17 | child: FlavorConfig.isProd
18 | ? child
19 | : Banner(
20 | message: message,
21 | location: BannerLocation.topStart,
22 | color: FlavorConfig.isStage ? Colors.red : Colors.green,
23 | child: child,
24 | ),
25 | );
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/lib/presentation/widgets/custom_app_bar.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:my_favorite_books/core/utils/extensions/context_extensions.dart';
3 |
4 | final class CustomAppBar extends StatelessWidget {
5 | final String title;
6 | final Widget? leading;
7 | final Widget? trailing;
8 |
9 | const CustomAppBar({
10 | required this.title,
11 | this.trailing,
12 | this.leading,
13 | super.key,
14 | });
15 |
16 | @override
17 | Widget build(BuildContext context) {
18 | return Row(
19 | children: [
20 | if (leading != null) leading!,
21 | Expanded(
22 | child: Text(
23 | title,
24 | style: context.textTheme.headlineMedium,
25 | ),
26 | ),
27 | if (trailing != null) trailing!,
28 | ],
29 | );
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/windows/flutter/generated_plugins.cmake:
--------------------------------------------------------------------------------
1 | #
2 | # Generated file, do not edit.
3 | #
4 |
5 | list(APPEND FLUTTER_PLUGIN_LIST
6 | )
7 |
8 | list(APPEND FLUTTER_FFI_PLUGIN_LIST
9 | )
10 |
11 | set(PLUGIN_BUNDLED_LIBRARIES)
12 |
13 | foreach(plugin ${FLUTTER_PLUGIN_LIST})
14 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})
15 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
16 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $)
17 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
18 | endforeach(plugin)
19 |
20 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
21 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
22 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
23 | endforeach(ffi_plugin)
24 |
--------------------------------------------------------------------------------
/lib/domain/entities/volume_request_entity.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 | import 'package:my_favorite_books/data/models/volume_request_model.dart';
3 |
4 | base class VolumesRequestEntity extends Equatable {
5 | /// Term to search
6 | final String query;
7 |
8 | /// Index of the first result to return (starts at 0)
9 | final int startIndex;
10 |
11 | /// Maximum number of results to return (max 40)
12 | final int maxResults;
13 |
14 | const VolumesRequestEntity({
15 | required this.query,
16 | this.startIndex = 0,
17 | this.maxResults = 10,
18 | });
19 |
20 | @override
21 | List