├── ios
├── Runner
│ ├── tr.lproj
│ │ ├── Main.strings
│ │ ├── LaunchScreen.strings
│ │ └── Info.plist
│ ├── Runner-Bridging-Header.h
│ ├── Assets.xcassets
│ │ ├── LaunchImage.imageset
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── README.md
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ ├── AppDelegate.swift
│ ├── Base.lproj
│ │ ├── Main.storyboard
│ │ └── Info.plist
│ ├── en.lproj
│ │ └── Info.plist
│ └── Info.plist
├── Flutter
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── AppFrameworkInfo.plist
├── Runner.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── .gitignore
├── Podfile
└── Podfile.lock
├── script
├── build.sh
└── langs.sh
├── module
└── uikit
│ ├── lib
│ ├── src
│ │ ├── padding
│ │ │ └── page_padding.dart
│ │ └── lottie
│ │ │ └── lottie_loading.dart
│ └── uikit.dart
│ ├── LICENSE
│ ├── CHANGELOG.md
│ ├── test
│ └── uikit_test.dart
│ ├── analysis_options.yaml
│ ├── .metadata
│ ├── .gitignore
│ ├── README.md
│ └── pubspec.yaml
├── android
├── Gemfile
├── gradle.properties
├── app
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── drawable
│ │ │ │ │ └── launch_background.xml
│ │ │ │ ├── drawable-v21
│ │ │ │ │ └── launch_background.xml
│ │ │ │ ├── values
│ │ │ │ │ └── styles.xml
│ │ │ │ └── values-night
│ │ │ │ │ └── styles.xml
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── flutter_full_learn
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── AndroidManifest.xml
│ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ └── profile
│ │ │ └── AndroidManifest.xml
│ └── build.gradle
├── fastlane
│ ├── Appfile
│ └── Fastfile
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── .gitignore
├── settings.gradle
└── build.gradle
├── web
├── favicon.png
├── icons
│ ├── Icon-192.png
│ ├── Icon-512.png
│ ├── Icon-maskable-192.png
│ └── Icon-maskable-512.png
└── manifest.json
├── assets
├── png
│ ├── image_collection.png
│ └── ic_apple_with_school.png
├── translations
│ └── en-US.json
└── apple-and-book-png-transparent-apple-and-book-images-274565.png
├── 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
├── .gitignore
└── flutter
│ ├── generated_plugin_registrant.h
│ ├── generated_plugins.cmake
│ └── generated_plugin_registrant.cc
├── lib
├── 101
│ ├── app_bar_learn.dart
│ ├── color_learn.dart
│ ├── indicator_learn.dart
│ ├── list_view_builder.dart
│ ├── navigate_detail_learn.dart
│ ├── stack_learn.dart
│ ├── list_tile_learn.dart
│ ├── padding_learn.dart
│ ├── scaffold_learn.dart
│ ├── stateless_learn.dart
│ ├── icon_learn.dart
│ ├── image_learn.dart
│ ├── column_row_learn.dart
│ ├── container_sized_box_learn.dart
│ ├── statefull_learn.dart
│ ├── statefull_life_cycle_learn.dart
│ ├── card_learn.dart
│ ├── page_view_learn.dart
│ ├── custom_widget_learn.dart
│ ├── text_learn_view.dart
│ ├── navigation_learn.dart
│ ├── text_field_learn.dart
│ ├── button_learn.dart
│ └── list_view_learn.dart
├── 202
│ ├── custom_exception.dart
│ ├── cache
│ │ ├── shared_not_initalze.dart
│ │ ├── user_model.dart
│ │ ├── user_cache
│ │ │ └── user_cache_manager.dart
│ │ ├── shared_manager.dart
│ │ ├── secure_context
│ │ │ └── secure_context_learn.dart
│ │ └── shared_list_cache.dart
│ ├── package
│ │ ├── launch_mixin.dart
│ │ └── loading_bar.dart
│ ├── state_manage
│ │ ├── state_learn_view_model.dart
│ │ └── state_manage_learn_view.dart
│ ├── service
│ │ ├── post_model.dart
│ │ ├── comment_model.dart
│ │ └── coments_learn_view.dart
│ ├── theme_learn_view.dart
│ ├── oop_learn_view.dart
│ ├── package_learn_view.dart
│ ├── widget_size_enum_learn_view.dart
│ ├── theme
│ │ └── light_theme.dart
│ ├── image_learn_202.dart
│ ├── oop_learn.dart
│ ├── model_learn_view.dart
│ ├── tab_learn.dart
│ ├── form_learn_view.dart
│ ├── alert_learn.dart
│ └── model_learn.dart
├── 303
│ ├── navigator
│ │ ├── navigate_profile_view.dart
│ │ ├── navigate_home_view.dart
│ │ └── navigate_home_detail_view.dart
│ ├── part
│ │ ├── part_of_learn.dart
│ │ └── part_appbar.dart
│ ├── reqrest_resource
│ │ ├── service
│ │ │ └── reqres_service.dart
│ │ ├── viewModel
│ │ │ ├── req_res_view_model.dart
│ │ │ └── req_res_provider.dart
│ │ └── model
│ │ │ ├── resoruce_model.dart
│ │ │ └── resoruce_model.g.dart
│ ├── testable
│ │ ├── user_save_model.dart
│ │ └── image_generic_picker.dart
│ ├── mobx_image_picker
│ │ ├── service
│ │ │ └── image_upload_service.dart
│ │ ├── model
│ │ │ ├── image_upload_response.dart
│ │ │ └── image_upload_response.g.dart
│ │ ├── viewModel
│ │ │ └── image_upload_view_model.dart
│ │ └── view
│ │ │ └── mobx_image_upload_view.dart
│ ├── package
│ │ └── kartal
│ │ │ └── kartal_view.dart
│ ├── call_back_learn.dart
│ ├── generic_learn.dart
│ ├── lottie_learn.dart
│ ├── tabbar_advance.dart
│ └── feed_view.dart
├── 404
│ ├── bloc
│ │ └── feature
│ │ │ └── login
│ │ │ ├── model
│ │ │ ├── login_model.dart
│ │ │ └── login_model.g.dart
│ │ │ ├── cubit
│ │ │ ├── login_cubit.dart
│ │ │ └── login_cubit_state.dart
│ │ │ ├── service
│ │ │ └── login_service.dart
│ │ │ └── view
│ │ │ └── login_view.dart
│ ├── snippet_learn.dart
│ └── compute
│ │ └── compute_learn.dart
├── product
│ ├── constant
│ │ ├── project_items.dart
│ │ ├── duration_items.dart
│ │ └── lottie_items.dart
│ ├── language
│ │ └── language_items.dart
│ ├── service
│ │ ├── project_dio.dart
│ │ ├── vexana_network_manager.dart
│ │ └── project_network_manager.dart
│ ├── extension
│ │ └── string_extension.dart
│ ├── inti
│ │ ├── localization_init.dart
│ │ └── product_init.dart
│ ├── mixin
│ │ └── navigator_mixin.dart
│ ├── global
│ │ ├── resource_context.dart
│ │ └── theme_notifer.dart
│ ├── init
│ │ └── lang
│ │ │ └── locale_keys.g.dart
│ ├── widget
│ │ ├── card
│ │ │ ├── high_card.dart
│ │ │ └── generic_user_card.dart
│ │ ├── button
│ │ │ ├── laoding_button.dart
│ │ │ └── answer_button.dart
│ │ └── callback_dropodown.dart
│ ├── utility
│ │ ├── image_upload.dart
│ │ └── image_upload_manager.dart
│ ├── model
│ │ ├── token_model.dart
│ │ └── token_model.g.dart
│ ├── navigator
│ │ ├── navigator_manager.dart
│ │ ├── navigator_routes.dart
│ │ └── navigator_custom.dart
│ └── counter_hello_button.dart
├── core
│ └── random_image.dart
└── demos
│ ├── color_life_cycle_view.dart
│ ├── stack_demo_view.dart
│ ├── password_text_field.dart
│ └── color_demos_view.dart
├── .metadata
├── test
├── vexana
│ ├── vexana_test.dart
│ └── model_unkown.dart
├── user_manager_test.dart
├── login
│ └── login_test.dart
├── widget_test.dart
├── req_res_test.dart
└── list_test.dart
├── .gitignore
└── analysis_options.yaml
/ios/Runner/tr.lproj/Main.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/script/build.sh:
--------------------------------------------------------------------------------
1 | dart run build_runner build
--------------------------------------------------------------------------------
/ios/Runner/tr.lproj/LaunchScreen.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/module/uikit/lib/src/padding/page_padding.dart:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/uikit/LICENSE:
--------------------------------------------------------------------------------
1 | TODO: Add your license here.
2 |
--------------------------------------------------------------------------------
/android/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/module/uikit/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 0.0.1
2 |
3 | * TODO: Describe initial release.
4 |
--------------------------------------------------------------------------------
/web/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/web/favicon.png
--------------------------------------------------------------------------------
/web/icons/Icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/web/icons/Icon-192.png
--------------------------------------------------------------------------------
/web/icons/Icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/web/icons/Icon-512.png
--------------------------------------------------------------------------------
/module/uikit/lib/uikit.dart:
--------------------------------------------------------------------------------
1 | library uikit;
2 |
3 | export './src/lottie/lottie_loading.dart' show LoadingLottie;
4 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/assets/png/image_collection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/assets/png/image_collection.png
--------------------------------------------------------------------------------
/web/icons/Icon-maskable-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/web/icons/Icon-maskable-192.png
--------------------------------------------------------------------------------
/web/icons/Icon-maskable-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/web/icons/Icon-maskable-512.png
--------------------------------------------------------------------------------
/assets/png/ic_apple_with_school.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/assets/png/ic_apple_with_school.png
--------------------------------------------------------------------------------
/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/lib/product/constant/project_items.dart:
--------------------------------------------------------------------------------
1 | class ProjectItems {
2 | ProjectItems._();
3 | static const String projectName = 'VB10';
4 | }
5 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/lib/product/constant/duration_items.dart:
--------------------------------------------------------------------------------
1 | class DurationItems extends Duration {
2 | DurationItems.durationNormal() : super(seconds: 1);
3 | }
4 |
--------------------------------------------------------------------------------
/script/langs.sh:
--------------------------------------------------------------------------------
1 | flutter pub run easy_localization:generate -O lib/product/init/lang -f keys -o locale_keys.g.dart --source-dir assets/translations
2 |
--------------------------------------------------------------------------------
/lib/product/language/language_items.dart:
--------------------------------------------------------------------------------
1 | class LanguageItems {
2 | static const welcomeTitle = "Merhaba";
3 | static const mailTitle = "Mail";
4 | }
5 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/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/VB10/Flutter-Full-Learn/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/assets/translations/en-US.json:
--------------------------------------------------------------------------------
1 | {
2 | "login": {
3 | "welcome": "Login welcome"
4 | },
5 | "button": {
6 | "send": "Send"
7 | }
8 | }
--------------------------------------------------------------------------------
/module/uikit/test/uikit_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_test/flutter_test.dart';
2 |
3 | void main() {
4 | test('adds one to input values', () {});
5 | }
6 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/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/VB10/Flutter-Full-Learn/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/lib/202/custom_exception.dart:
--------------------------------------------------------------------------------
1 | class FileDownloadException implements Exception {
2 | @override
3 | String toString() {
4 | return 'File download has failed';
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/lib/product/service/project_dio.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 |
3 | class ProjectDioMixin {
4 | final service = Dio(BaseOptions(baseUrl: 'https://reqres.in/api'));
5 | }
6 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/assets/apple-and-book-png-transparent-apple-and-book-images-274565.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/assets/apple-and-book-png-transparent-apple-and-book-images-274565.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VB10/Flutter-Full-Learn/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/android/fastlane/Appfile:
--------------------------------------------------------------------------------
1 | json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
2 | package_name("com.vb.sample") # e.g. com.krausefx.app
3 |
--------------------------------------------------------------------------------
/module/uikit/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | # Additional information about this file can be found at
4 | # https://dart.dev/guides/language/analysis-options
5 |
--------------------------------------------------------------------------------
/lib/202/cache/shared_not_initalze.dart:
--------------------------------------------------------------------------------
1 | class SharedNotInitiazleException implements Exception {
2 | @override
3 | String toString() {
4 | return 'Your prefences has not initiazled right now';
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/example/flutter_full_learn/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.flutter_full_learn
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/lib/product/extension/string_extension.dart:
--------------------------------------------------------------------------------
1 | extension ColorStringExtension on String? {
2 | int get colorValue {
3 | var _newColor = this?.replaceFirst('#', '0xff') ?? '';
4 | return int.parse(_newColor);
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/lib/product/service/vexana_network_manager.dart:
--------------------------------------------------------------------------------
1 | import 'package:vexana/vexana.dart';
2 |
3 | class VexanaNetworkManager extends NetworkManager {
4 | VexanaNetworkManager() : super(options: BaseOptions(baseUrl: 'https://reqres.in/'));
5 | }
6 |
--------------------------------------------------------------------------------
/lib/product/inti/localization_init.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class LocalizationInit {
4 | final List supportedLocales = [const Locale('en', 'US')];
5 | final String localizationPath = 'assets/translations';
6 | }
7 |
--------------------------------------------------------------------------------
/lib/product/mixin/navigator_mixin.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 | import '../navigator/navigator_manager.dart';
3 |
4 | mixin NavigatorMixin on State {
5 | NavigatorManager get router => NavigatorManager.instance;
6 | }
7 |
--------------------------------------------------------------------------------
/lib/202/package/launch_mixin.dart:
--------------------------------------------------------------------------------
1 | import 'package:url_launcher/url_launcher.dart';
2 |
3 | mixin LaunchMixin {
4 | void name(args);
5 |
6 | void launchURL(String url) async {
7 | if (await canLaunch(url)) {
8 | await launch(url);
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/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-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/lib/product/global/resource_context.dart:
--------------------------------------------------------------------------------
1 | import '../../303/reqrest_resource/model/resoruce_model.dart';
2 |
3 | class ResourceContext {
4 | ResourceModel? model;
5 |
6 | void saveModel(ResourceModel? model) {
7 | this.model = model;
8 | }
9 |
10 | void clear() {
11 | model = null;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/product/init/lang/locale_keys.g.dart:
--------------------------------------------------------------------------------
1 | // DO NOT EDIT. This is code generated via package:easy_localization/generate.dart
2 |
3 | abstract class LocaleKeys {
4 | static const login_welcome = 'login.welcome';
5 | static const login = 'login';
6 | static const button_send = 'button.send';
7 | static const button = 'button';
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: db747aa1331bd95bc9b3874c842261ca2d302cd5
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/lib/product/constant/lottie_items.dart:
--------------------------------------------------------------------------------
1 | enum LottieItems { themeChange }
2 |
3 | extension LottieItemsExtension on LottieItems {
4 | String _path() {
5 | switch (this) {
6 | case LottieItems.themeChange:
7 | return 'lottie_theme_change';
8 | }
9 | }
10 |
11 | String get lottiePath => 'assets/lottie/${_path()}.json';
12 | }
13 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/module/uikit/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 7e9793dee1b85a243edd0e06cb1658e98b077561
8 | channel: stable
9 |
10 | project_type: package
11 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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.
--------------------------------------------------------------------------------
/lib/product/widget/card/high_card.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class HighCard extends StatelessWidget {
4 | const HighCard({Key? key, required this.items}) : super(key: key);
5 |
6 | final List items;
7 | @override
8 | Widget build(BuildContext context) {
9 | return Text(items.join(','), style: Theme.of(context).textTheme.headline2);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/lib/product/widget/card/generic_user_card.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | import '../../../303/generic_learn.dart';
4 |
5 | class GenericUserCard extends StatelessWidget {
6 | const GenericUserCard({Key? key, required this.model}) : super(key: key);
7 | final GenericUser model;
8 | @override
9 | Widget build(BuildContext context) {
10 | return Text(model.name);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/lib/product/global/theme_notifer.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import '../../202/theme/light_theme.dart';
3 |
4 | class ThemeNotifer extends ChangeNotifier {
5 | bool isLighTheme = false;
6 |
7 | void changeTheme() {
8 | isLighTheme = !isLighTheme;
9 | notifyListeners();
10 | }
11 |
12 | ThemeData get currentTheme => !isLighTheme ? LighTheme().theme : ThemeData.dark();
13 | }
14 |
--------------------------------------------------------------------------------
/lib/core/random_image.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class RandomImage extends StatelessWidget {
4 | const RandomImage({Key? key, this.height = 100}) : super(key: key);
5 | final imageUrl = 'https://picsum.photos/200/300';
6 | final double height;
7 | @override
8 | Widget build(BuildContext context) {
9 | return Image.network(imageUrl, height: height, fit: BoxFit.cover);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/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/202/package/loading_bar.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_spinkit/flutter_spinkit.dart';
3 |
4 | class LoadingBar extends StatelessWidget {
5 | const LoadingBar({Key? key, this.size}) : super(key: key);
6 | final double? size;
7 | final _deafultSize = 40.0;
8 |
9 | @override
10 | Widget build(BuildContext context) {
11 | return SpinKitPianoWave(
12 | color: Colors.red,
13 | size: size ?? _deafultSize,
14 | );
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/lib/303/navigator/navigate_profile_view.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class NavigateProfileView extends StatefulWidget {
4 | const NavigateProfileView({Key? key}) : super(key: key);
5 |
6 | @override
7 | State createState() => _NavigateHomeDetailState();
8 | }
9 |
10 | class _NavigateHomeDetailState extends State {
11 | @override
12 | Widget build(BuildContext context) {
13 | return const Scaffold();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/lib/product/utility/image_upload.dart:
--------------------------------------------------------------------------------
1 | import 'package:image_picker/image_picker.dart';
2 |
3 | class ImageUploadManager {
4 | final ImagePicker _picker = ImagePicker();
5 |
6 | Future fetchFromLibrary() async {
7 | final XFile? image = await _picker.pickImage(source: ImageSource.gallery);
8 | return image;
9 | }
10 |
11 | Future fetchFromCamera() async {
12 | final XFile? image = await _picker.pickImage(source: ImageSource.camera);
13 | return image;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/windows/runner/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
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 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/module/uikit/lib/src/lottie/lottie_loading.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:lottie/lottie.dart';
3 |
4 | class LoadingLottie extends StatelessWidget {
5 | const LoadingLottie({
6 | Key? key,
7 | }) : super(key: key);
8 | final _loadingLottie = 'https://assets2.lottiefiles.com/datafiles/bEYvzB8QfV3EM9a/data.json';
9 |
10 | @override
11 | Widget build(BuildContext context) {
12 | return Center(child: Lottie.network(_loadingLottie));
13 | }
14 | }
15 |
16 | class LottieSpecial {}
17 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/lib/303/part/part_of_learn.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | part 'part_appbar.dart';
4 |
5 | class PartofLearn extends StatefulWidget {
6 | const PartofLearn({Key? key}) : super(key: key);
7 |
8 | @override
9 | State createState() => _PartofLearnState();
10 | }
11 |
12 | class _PartofLearnState extends State {
13 | @override
14 | Widget build(BuildContext context) {
15 | return const Scaffold(
16 | appBar: _PartofAppBar(),
17 | body: Text('data'),
18 | );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/lib/product/model/token_model.dart:
--------------------------------------------------------------------------------
1 | import 'package:json_annotation/json_annotation.dart';
2 | import 'package:vexana/vexana.dart';
3 |
4 | part 'token_model.g.dart';
5 |
6 | @JsonSerializable()
7 | class TokenModel extends INetworkModel {
8 | final String? token;
9 |
10 | TokenModel({this.token});
11 |
12 | @override
13 | TokenModel fromJson(Map json) {
14 | return _$TokenModelFromJson(json);
15 | }
16 |
17 | @override
18 | Map? toJson() {
19 | return _$TokenModelToJson(this);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lib/202/cache/user_model.dart:
--------------------------------------------------------------------------------
1 | class User {
2 | String? name;
3 | String? description;
4 | String? url;
5 |
6 | User(this.name, this.description, this.url);
7 |
8 | User.fromJson(Map json) {
9 | name = json['name'];
10 | description = json['description'];
11 | url = json['url'];
12 | }
13 |
14 | Map toJson() {
15 | final Map data = {};
16 | data['name'] = name;
17 | data['description'] = description;
18 | data['url'] = url;
19 | return data;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/test/vexana/vexana_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_test/flutter_test.dart';
2 | import 'package:vexana/vexana.dart';
3 |
4 | import 'model_unkown.dart';
5 |
6 | void main() {
7 | late final INetworkManager networkManager;
8 | setUp(() {
9 | networkManager = NetworkManager(
10 | options: BaseOptions(baseUrl: 'https://reqres.in/api'),
11 | );
12 | });
13 | test('Vexana test', () async {
14 | final response = await networkManager.send('/unkown',
15 | parseModel: UnkownModel(), method: RequestType.GET);
16 | });
17 | }
18 |
--------------------------------------------------------------------------------
/lib/303/part/part_appbar.dart:
--------------------------------------------------------------------------------
1 | part of './part_of_learn.dart';
2 |
3 | class _PartofAppBar extends StatelessWidget with PreferredSizeWidget {
4 | const _PartofAppBar({
5 | Key? key,
6 | }) : super(key: key);
7 |
8 | @override
9 | Widget build(BuildContext context) {
10 | return AppBar(
11 | title: const Text('a'),
12 | actions: [IconButton(onPressed: () {}, icon: const Icon(Icons.abc_rounded))],
13 | );
14 | }
15 |
16 | @override
17 | // TODO: implement preferredSize
18 | Size get preferredSize => const Size.fromHeight(kToolbarHeight);
19 | }
20 |
--------------------------------------------------------------------------------
/lib/202/state_manage/state_learn_view_model.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | import 'state_manage_learn_view.dart';
4 |
5 | abstract class StateLearnViewModel extends State {
6 | @override
7 | void initState() {
8 | super.initState();
9 | }
10 |
11 | bool isVisible = false;
12 | bool isOpacity = false;
13 |
14 | void changeVisible() {
15 | setState(() {
16 | isVisible = !isVisible;
17 | });
18 | }
19 |
20 | void changeOpacity() {
21 | setState(() {
22 | isOpacity = !isOpacity;
23 | });
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/product/model/token_model.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'token_model.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | TokenModel _$TokenModelFromJson(Map json) => TokenModel(
10 | token: json['token'] as String?,
11 | );
12 |
13 | Map _$TokenModelToJson(TokenModel instance) =>
14 | {
15 | 'token': instance.token,
16 | };
17 |
--------------------------------------------------------------------------------
/lib/product/navigator/navigator_manager.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 | import 'navigator_routes.dart';
3 |
4 | class NavigatorManager {
5 | NavigatorManager._();
6 | static NavigatorManager instance = NavigatorManager._();
7 | final GlobalKey _navigatorGlobalKey = GlobalKey();
8 |
9 | GlobalKey get navigatorGlobalKey => _navigatorGlobalKey;
10 |
11 | Future pushToPage(NavigateRoutes route, {Object? arguments}) async {
12 | await _navigatorGlobalKey.currentState?.pushNamed(route.withParaf, arguments: arguments);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/lib/404/bloc/feature/login/model/login_model.dart:
--------------------------------------------------------------------------------
1 | import 'package:json_annotation/json_annotation.dart';
2 | import 'package:vexana/vexana.dart';
3 |
4 | part 'login_model.g.dart';
5 |
6 | @JsonSerializable()
7 | class LoginModel extends INetworkModel {
8 | final String email;
9 | final String password;
10 |
11 | LoginModel(this.email, this.password);
12 |
13 | @override
14 | LoginModel fromJson(Map json) {
15 | throw UnimplementedError();
16 | }
17 |
18 | @override
19 | Map? toJson() {
20 | return _$LoginModelToJson(this);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/windows/flutter/generated_plugins.cmake:
--------------------------------------------------------------------------------
1 | #
2 | # Generated file, do not edit.
3 | #
4 |
5 | list(APPEND FLUTTER_PLUGIN_LIST
6 | flutter_secure_storage_windows
7 | url_launcher_windows
8 | )
9 |
10 | set(PLUGIN_BUNDLED_LIBRARIES)
11 |
12 | foreach(plugin ${FLUTTER_PLUGIN_LIST})
13 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})
14 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
15 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $)
16 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
17 | endforeach(plugin)
18 |
--------------------------------------------------------------------------------
/test/user_manager_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_full_learn/303/generic_learn.dart';
2 | import 'package:flutter_test/flutter_test.dart';
3 |
4 | void main() {
5 | setUp(() {});
6 | test('User calculate ', () {
7 | final users = [
8 | GenericUser('vb', '11', 10),
9 | GenericUser('vb', '11', 10),
10 | GenericUser('vb', '11', 20),
11 | ];
12 | final userManagement = UserManagement(AdminUser('vadmin', '1', 15, 1));
13 | final result = userManagement.calculateMoney(users);
14 |
15 | final respnse = userManagement.showNames(users);
16 |
17 | expect(result, 55);
18 | });
19 | }
20 |
--------------------------------------------------------------------------------
/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 | #include
10 | #include
11 |
12 | void RegisterPlugins(flutter::PluginRegistry* registry) {
13 | FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
14 | registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
15 | UrlLauncherWindowsRegisterWithRegistrar(
16 | registry->GetRegistrarForPlugin("UrlLauncherWindows"));
17 | }
18 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/module/uikit/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | # Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
25 | /pubspec.lock
26 | **/doc/api/
27 | .dart_tool/
28 | .packages
29 | build/
30 |
--------------------------------------------------------------------------------
/lib/product/navigator/navigator_routes.dart:
--------------------------------------------------------------------------------
1 | import '../../303/lottie_learn.dart';
2 | import '../../303/navigator/navigate_home_detail_view.dart';
3 | import '../../303/navigator/navigate_home_view.dart';
4 |
5 | class NavigatorRoures {
6 | static const paragfh = "/";
7 | final items = {
8 | paragfh: (context) => const LottieLearn(),
9 | NavigateRoutes.home.withParaf: (context) => const NavigateHomeView(),
10 | NavigateRoutes.detail.withParaf: (context) => const NavigateHomeDetail(),
11 | };
12 | }
13 |
14 | enum NavigateRoutes { init, home, detail }
15 |
16 | extension NavigateRoutesExtension on NavigateRoutes {
17 | String get withParaf => "/$name";
18 | }
19 |
--------------------------------------------------------------------------------
/lib/404/bloc/feature/login/model/login_model.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'login_model.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | LoginModel _$LoginModelFromJson(Map json) => LoginModel(
10 | json['email'] as String,
11 | json['password'] as String,
12 | );
13 |
14 | Map _$LoginModelToJson(LoginModel instance) =>
15 | {
16 | 'email': instance.email,
17 | 'password': instance.password,
18 | };
19 |
--------------------------------------------------------------------------------
/lib/202/service/post_model.dart:
--------------------------------------------------------------------------------
1 | class PostModel {
2 | int? userId;
3 | int? id;
4 | String? title;
5 | String? body;
6 |
7 | PostModel({this.userId, this.id, this.title, this.body});
8 |
9 | // Kod yazilmaz!
10 | PostModel.fromJson(Map json) {
11 | userId = json['userId'];
12 | id = json['id'];
13 | title = json['title'];
14 | body = json['body'];
15 | }
16 |
17 | // Kod yazilmaz!
18 | Map toJson() {
19 | final Map data = {};
20 | data['userId'] = userId;
21 | data['id'] = id;
22 | data['title'] = title;
23 | data['body'] = body;
24 | return data;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/test/login/login_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_full_learn/404/bloc/feature/login/model/login_model.dart';
2 | import 'package:flutter_full_learn/404/bloc/feature/login/service/login_service.dart';
3 | import 'package:flutter_full_learn/product/service/vexana_network_manager.dart';
4 | import 'package:flutter_test/flutter_test.dart';
5 |
6 | void main() {
7 | late ILoginService loginService;
8 | setUp(() {
9 | loginService = LoginService(VexanaNetworkManager());
10 | });
11 | test('Login Test - eve.holt@reqres.in & cityslicka ', () async {
12 | final response = await loginService.login(LoginModel('eve.holt@reqres.in', 'cityslicka'));
13 | expect(response?.data, isNotNull);
14 | });
15 | }
16 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/lib/404/snippet_learn.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class SnippetLearnView extends StatefulWidget {
4 | const SnippetLearnView({Key? key}) : super(key: key);
5 | @override
6 | State createState() => _SnippetLearnViewState();
7 | }
8 |
9 | class _SnippetLearnViewState extends State {
10 | @override
11 | Widget build(BuildContext context) {
12 | return Scaffold(
13 | appBar: AppBar(),
14 | );
15 | }
16 | }
17 |
18 | class PRoductConstant {
19 | static PRoductConstant? _instace;
20 | static PRoductConstant get instance {
21 | _instace ??= PRoductConstant._init();
22 | return _instace!;
23 | }
24 |
25 | PRoductConstant._init();
26 | }
27 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:4.1.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 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/lib/202/service/comment_model.dart:
--------------------------------------------------------------------------------
1 | class CommentModel {
2 | int? postId;
3 | int? id;
4 | String? name;
5 | String? email;
6 | String? body;
7 |
8 | CommentModel({this.postId, this.id, this.name, this.email, this.body});
9 |
10 | CommentModel.fromJson(Map json) {
11 | postId = json['postId'];
12 | id = json['id'];
13 | name = json['name'];
14 | email = json['email'];
15 | body = json['body'];
16 | }
17 |
18 | Map toJson() {
19 | final Map data = {};
20 | data['postId'] = postId;
21 | data['id'] = id;
22 | data['name'] = name;
23 | data['email'] = email;
24 | data['body'] = body;
25 | return data;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/lib/101/app_bar_learn.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class AppBarLearnView extends StatelessWidget {
4 | const AppBarLearnView({Key? key}) : super(key: key);
5 | final String _title = 'Welcome Learn';
6 | @override
7 | Widget build(BuildContext context) {
8 | return Scaffold(
9 | appBar: AppBar(
10 | title: Text(_title),
11 | leading: const Icon(Icons.chevron_left),
12 | actions: [
13 | IconButton(
14 | onPressed: () {},
15 | icon: const Icon(Icons.mark_email_unread_sharp),
16 | ),
17 | const Center(child: CircularProgressIndicator()),
18 | ],
19 | ),
20 | body: Column(children: const []),
21 | );
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/lib/101/color_learn.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class ColorLearn extends StatelessWidget {
4 | const ColorLearn({Key? key}) : super(key: key);
5 |
6 | @override
7 | Widget build(BuildContext context) {
8 | return Scaffold(
9 | appBar: AppBar(),
10 | body: Column(
11 | children: [
12 | Container(
13 | child: Text(
14 | 'data',
15 | style: Theme.of(context).textTheme.subtitle1?.copyWith(color: Theme.of(context).errorColor),
16 | )),
17 | ],
18 | ),
19 | );
20 | }
21 | }
22 |
23 | class ColorsItems {
24 | static const Color porchase = Color(0xffEDBF61);
25 | static const Color sulu = Color.fromRGBO(198, 237, 97, 1);
26 | }
27 |
--------------------------------------------------------------------------------
/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/202/theme_learn_view.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | import '../demos/password_text_field.dart';
4 |
5 | class ThemeLarnView extends StatefulWidget {
6 | const ThemeLarnView({Key? key}) : super(key: key);
7 |
8 | @override
9 | State createState() => _ThemeLarnViewState();
10 | }
11 |
12 | class _ThemeLarnViewState extends State {
13 | @override
14 | Widget build(BuildContext context) {
15 | return Scaffold(
16 | appBar: AppBar(),
17 | body: Column(children: [
18 | const PasswordTextField(),
19 | CheckboxListTile(
20 | value: true,
21 | onChanged: (val) {},
22 | title: const Text('select'),
23 | )
24 | ]),
25 | );
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/lib/product/service/project_network_manager.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 |
3 | class ProjectNetworkManager {
4 | ProjectNetworkManager._() {
5 | _dio = Dio(BaseOptions(baseUrl: 'pub.dev'));
6 | }
7 | late final Dio _dio;
8 |
9 | static ProjectNetworkManager instance = ProjectNetworkManager._();
10 |
11 | Dio get service => _dio;
12 |
13 | void addBaseHeaderToToken(String token) {
14 | _dio.options = _dio.options.copyWith(headers: {"Authorization": token});
15 | }
16 | }
17 |
18 | class DurationManager {
19 | DurationManager._();
20 | static DurationManager? _manager;
21 |
22 | static DurationManager get manager {
23 | if (_manager != null) return _manager!;
24 | _manager = DurationManager._();
25 | return _manager!;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/lib/404/bloc/feature/login/cubit/login_cubit.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_bloc/flutter_bloc.dart';
2 | import 'login_cubit_state.dart';
3 | import '../model/login_model.dart';
4 | import '../service/login_service.dart';
5 |
6 | class LoginCubit extends Cubit {
7 | LoginCubit(ILoginService loginService)
8 | : _loginService = loginService,
9 | super(const LoginState());
10 | final ILoginService _loginService;
11 |
12 | Future checkUser(String email, String password) async {
13 | emit(state.copyWith(isLoading: true, model: LoginModel(email, password)));
14 | final response = await _loginService.login(state.model!);
15 | emit(state.copyWith(isLoading: false, isCompleted: response?.data != null));
16 |
17 | print('a');
18 | }
19 |
20 | void veli() {}
21 | }
22 |
--------------------------------------------------------------------------------
/lib/product/counter_hello_button.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | import 'language/language_items.dart';
4 |
5 | class CounterHelloButton extends StatefulWidget {
6 | const CounterHelloButton({Key? key}) : super(key: key);
7 |
8 | @override
9 | State createState() => _CounterHelloButtonState();
10 | }
11 |
12 | class _CounterHelloButtonState extends State {
13 | int _counterCustom = 0;
14 | final String _welcomeTitle = LanguageItems.welcomeTitle;
15 |
16 | void _updateCounter() {
17 | setState(() {
18 | ++_counterCustom;
19 | });
20 | }
21 |
22 | @override
23 | Widget build(BuildContext context) {
24 | return ElevatedButton(onPressed: _updateCounter, child: Text('$_welcomeTitle $_counterCustom'));
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/lib/product/inti/product_init.dart:
--------------------------------------------------------------------------------
1 | import 'package:easy_localization/easy_localization.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:provider/provider.dart';
4 | import 'package:provider/single_child_widget.dart';
5 |
6 | import '../global/resource_context.dart';
7 | import '../global/theme_notifer.dart';
8 | import 'localization_init.dart';
9 |
10 | class ProductInit {
11 | final LocalizationInit localizationInit = LocalizationInit();
12 |
13 | final List providers = [
14 | Provider(create: (_) => ResourceContext()),
15 | ChangeNotifierProvider(create: (context) => ThemeNotifer())
16 | ];
17 |
18 | Future init() async {
19 | WidgetsFlutterBinding.ensureInitialized();
20 | await EasyLocalization.ensureInitialized();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/lib/404/bloc/feature/login/service/login_service.dart:
--------------------------------------------------------------------------------
1 | import '../model/login_model.dart';
2 | import '../../../../../product/model/token_model.dart';
3 | import 'package:vexana/vexana.dart';
4 |
5 | abstract class ILoginService {
6 | final INetworkManager networkManager;
7 |
8 | ILoginService(this.networkManager);
9 | Future?> login(LoginModel model);
10 |
11 | final String _loginPath = 'api/login';
12 | }
13 |
14 | class LoginService extends ILoginService {
15 | LoginService(INetworkManager networkManager) : super(networkManager);
16 |
17 | @override
18 | Future?> login(LoginModel model) async {
19 | return await networkManager.send(_loginPath,
20 | data: model, parseModel: TokenModel(), method: RequestType.POST);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/lib/202/state_manage/state_manage_learn_view.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'state_learn_view_model.dart';
3 |
4 | class StateManageLearnView extends StatefulWidget {
5 | const StateManageLearnView({Key? key}) : super(key: key);
6 |
7 | @override
8 | State createState() => _StateManageLearnViewState();
9 | }
10 |
11 | class _StateManageLearnViewState extends StateLearnViewModel {
12 | @override
13 | Widget build(BuildContext context) {
14 | return Scaffold(
15 | floatingActionButton: FloatingActionButton(
16 | onPressed: () {
17 | changeVisible();
18 | },
19 | ),
20 | appBar: AppBar(
21 | backgroundColor: isOpacity ? Colors.red : Colors.green,
22 | shadowColor: isVisible ? Colors.amber : Colors.grey,
23 | ),
24 | );
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/lib/303/reqrest_resource/service/reqres_service.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 |
3 | import 'package:dio/dio.dart';
4 | import '../model/resoruce_model.dart';
5 |
6 | abstract class IReqresService {
7 | IReqresService(this.dio);
8 | final Dio dio;
9 |
10 | Future fetchResourceItem();
11 | }
12 |
13 | enum _ReqResPath { resource }
14 |
15 | class ReqresService extends IReqresService {
16 | ReqresService(Dio dio) : super(dio);
17 |
18 | @override
19 | Future fetchResourceItem() async {
20 | final response = await dio.get('/${_ReqResPath.resource.name}');
21 |
22 | if (response.statusCode == HttpStatus.ok) {
23 | final jsonBody = response.data;
24 | if (jsonBody is Map) {
25 | return ResourceModel.fromJson(jsonBody);
26 | }
27 | }
28 | return null;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/lib/303/testable/user_save_model.dart:
--------------------------------------------------------------------------------
1 | import 'package:shared_preferences/shared_preferences.dart';
2 |
3 | class UserSaveViewModel {
4 | bool getReadData(String key, IStore preferences) {
5 | final response = preferences.getString(key);
6 |
7 | // logic
8 | return response;
9 | }
10 | }
11 |
12 | abstract class IStore {
13 | bool getString(String key);
14 | }
15 |
16 | class SharedPrefStore extends IStore {
17 | final SharedPreferences preferences;
18 |
19 | SharedPrefStore(this.preferences);
20 | @override
21 | bool getString(String key) {
22 | final response = preferences.getString(key);
23 | if (response?.isNotEmpty ?? false) {
24 | return true;
25 | } else {
26 | return false;
27 | }
28 | }
29 | }
30 |
31 | class MockStore extends IStore {
32 | @override
33 | bool getString(String key) {
34 | return false;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 9.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/lib/101/indicator_learn.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class IndicatorLearn extends StatelessWidget {
4 | const IndicatorLearn({Key? key}) : super(key: key);
5 |
6 | @override
7 | Widget build(BuildContext context) {
8 | return Scaffold(
9 | appBar: AppBar(
10 | actions: const [CenterCircularRedProgress()],
11 | ),
12 | body: const LinearProgressIndicator(),
13 | );
14 | }
15 | }
16 |
17 | class CenterCircularRedProgress extends StatelessWidget {
18 | const CenterCircularRedProgress({
19 | Key? key,
20 | }) : super(key: key);
21 | final redColor = Colors.red;
22 | @override
23 | Widget build(BuildContext context) {
24 | return Center(
25 | child: CircularProgressIndicator(
26 | color: redColor,
27 | strokeWidth: 10,
28 | value: 0.9,
29 | backgroundColor: Colors.white,
30 | ));
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/lib/303/mobx_image_picker/service/image_upload_service.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 | import 'dart:typed_data';
3 |
4 | import 'package:dio/dio.dart';
5 | import '../model/image_upload_response.dart';
6 |
7 | class ImageUploadService {
8 | final Dio dio;
9 | // https://firebasestorage.googleapis.com/v0/b/fluttertr-ead5c.appspot.com
10 | ImageUploadService(this.dio);
11 | // https://firebasestorage.googleapis.com/v0/b/{{image_server}}/o/full%2Fvb.png
12 | Future uploadToImageServer(Uint8List byteArray, String name,
13 | {void Function(int, int)? onSendProgress}) async {
14 | final response = await dio.post('full%2F$name.png', data: byteArray, onSendProgress: onSendProgress);
15 |
16 | if (response.statusCode == HttpStatus.ok) {
17 | // final responseData= Null check
18 | return ImageUploadResponse.fromJson(response.data);
19 | }
20 | return null;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/lib/product/utility/image_upload_manager.dart:
--------------------------------------------------------------------------------
1 | import 'package:image_picker/image_picker.dart';
2 |
3 | abstract class IImageUpload {
4 | final ImagePicker picker = ImagePicker();
5 | Future fetch();
6 | }
7 |
8 | class ImageUploadCustomManager {
9 | final IImageUpload imageUpload;
10 |
11 | ImageUploadCustomManager(this.imageUpload);
12 |
13 | Future cropWithFetch() async {
14 | return await imageUpload.fetch();
15 | }
16 | }
17 |
18 | class LibraryImageUpload extends IImageUpload {
19 | @override
20 | Future fetch() async {
21 | final XFile? image = await picker.pickImage(source: ImageSource.gallery);
22 | return image;
23 | }
24 | }
25 |
26 | class CameraImageUpload extends IImageUpload {
27 | @override
28 | Future fetch() async {
29 | final XFile? image = await picker.pickImage(source: ImageSource.camera);
30 | return image;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | **/ios/Flutter/.last_build_id
26 | .dart_tool/
27 | .flutter-plugins
28 | .flutter-plugins-dependencies
29 | .packages
30 | .pub-cache/
31 | .pub/
32 | /build/
33 |
34 | # Web related
35 | lib/generated_plugin_registrant.dart
36 |
37 | # Symbolication related
38 | app.*.symbols
39 |
40 | # Obfuscation related
41 | app.*.map.json
42 |
43 | # Android Studio will place build artifacts here
44 | /android/app/debug
45 | /android/app/profile
46 | /android/app/release
47 |
--------------------------------------------------------------------------------
/lib/404/bloc/feature/login/cubit/login_cubit_state.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 |
3 | import '../model/login_model.dart';
4 | import '../../../../../product/model/token_model.dart';
5 |
6 | class LoginState extends Equatable {
7 | final bool isLoading;
8 | final LoginModel? model;
9 | final TokenModel? tokenModel;
10 | final bool isCompleted;
11 |
12 | const LoginState({this.isLoading = false, this.model, this.tokenModel, this.isCompleted = false});
13 |
14 | @override
15 | List