├── .gitignore
├── .metadata
├── README.md
├── analysis_options.yaml
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── zh
│ │ │ │ └── flutter_plus
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v21
│ │ │ └── launch_background.xml
│ │ │ ├── drawable
│ │ │ └── launch_background.xml
│ │ │ ├── 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
│ │ │ ├── values-night
│ │ │ └── styles.xml
│ │ │ ├── values
│ │ │ └── styles.xml
│ │ │ └── xml
│ │ │ └── network_security_config.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── assets
├── fonts
│ └── iconfont.ttf
├── images
│ ├── animationImage.gif
│ ├── bottom_add.png
│ ├── ic_arrow_right.png
│ ├── ic_back_black.png
│ ├── icon_search.png
│ ├── index_banner.png
│ ├── logo.png
│ ├── love.png
│ ├── loveme.png
│ ├── me.png
│ ├── message.png
│ ├── message1.png
│ ├── none.png
│ ├── order_delete.png
│ ├── splash.png
│ ├── system_message.png
│ ├── szz.png
│ ├── zhu.jpg
│ ├── zhuanfa.png
│ └── zzc.jpeg
└── json
│ ├── disconnect.json
│ ├── empty.json
│ ├── empty2.json
│ ├── empty3.json
│ ├── error.json
│ ├── error2.json
│ ├── loading.json
│ ├── loading2.json
│ └── loadingYellow.json
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
└── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-App-1024x1024@1x.png
│ │ ├── 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-83.5x83.5@2x.png
│ └── LaunchImage.imageset
│ │ ├── Contents.json
│ │ ├── LaunchImage.png
│ │ ├── LaunchImage@2x.png
│ │ ├── LaunchImage@3x.png
│ │ └── README.md
│ ├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
│ ├── Info.plist
│ └── Runner-Bridging-Header.h
├── lib
├── common
│ ├── application.dart
│ └── constant.dart
├── main.dart
├── model
│ ├── base
│ │ ├── home.dart
│ │ ├── home.freezed.dart
│ │ ├── home.g.dart
│ │ ├── tab.dart
│ │ └── tab.freezed.dart
│ ├── breed
│ │ ├── breed.dart
│ │ ├── breed.freezed.dart
│ │ └── breed.g.dart
│ ├── moment
│ │ ├── moment.dart
│ │ ├── moment.freezed.dart
│ │ ├── moment.g.dart
│ │ ├── moment_response.dart
│ │ ├── moment_response.freezed.dart
│ │ └── moment_response.g.dart
│ └── user
│ │ ├── user.dart
│ │ ├── user.freezed.dart
│ │ └── user.g.dart
├── net
│ ├── api_client.dart
│ ├── api_client.g.dart
│ ├── base_dio.dart
│ ├── base_error.dart
│ ├── http_provider.dart
│ └── interceptor
│ │ ├── header_interceptor.dart
│ │ ├── log_interceptor.dart
│ │ └── response_interceptor.dart
├── provider
│ ├── breed_provider.dart
│ └── moment_provider.dart
├── route
│ ├── handler.dart
│ └── router.dart
├── styles
│ ├── app_colors.dart
│ ├── app_spacers.dart
│ └── app_styles.dart
├── ui
│ ├── common_base_page.dart
│ ├── components
│ │ ├── header_swiper_pagination.dart
│ │ ├── login_button.dart
│ │ └── persistent_header_builder.dart
│ ├── discovery
│ │ └── discovery_page.dart
│ ├── home
│ │ ├── breed_detail_page.dart
│ │ ├── breed_page.dart
│ │ ├── components
│ │ │ ├── head_swiper.dart
│ │ │ ├── home_header.dart
│ │ │ ├── home_horizontal_view.dart
│ │ │ ├── left_title.dart
│ │ │ └── sliver_header.dart
│ │ └── home_page.dart
│ ├── login_page.dart
│ ├── main_page.dart
│ ├── message
│ │ ├── components
│ │ │ ├── avatar_widget.dart
│ │ │ └── user_item_widget.dart
│ │ └── message_page.dart
│ ├── moment
│ │ ├── components
│ │ │ └── navigatorActionBar.dart
│ │ ├── moment_page.dart
│ │ └── test_page.dart
│ ├── personal
│ │ ├── components
│ │ │ └── sliver_delegate.dart
│ │ └── personal_page.dart
│ └── splash_page.dart
└── widgets
│ ├── app_topbar.dart
│ ├── cache_image.dart
│ ├── custom_indicator.dart
│ ├── custom_tabs.dart
│ ├── error_page.dart
│ ├── iconfont.dart
│ ├── my_appbar.dart
│ ├── over_scroll_behavior.dart
│ ├── page_state.dart
│ ├── per_flexible_space_bar.dart
│ └── refresh.dart
├── pubspec.lock
├── pubspec.yaml
└── web
├── favicon.png
├── icons
├── Icon-192.png
└── Icon-512.png
├── index.html
└── manifest.json
/.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 |
--------------------------------------------------------------------------------
/.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: b1395592de68cc8ac4522094ae59956dd21a91db
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # flutter_plus
2 |
3 | 核心:
4 |
5 | 1.hooks_riverpod:状态管理,provider的升级版本,详情自行查看官方文档,上面有介绍对比当前几种主流状态管理框架
6 |
7 | 2.retrofit:网络请求,熟悉Android的应该知道
8 |
9 | 3.freezed:实体类对象
10 |
11 | 还有一些用到的组件自行参考yaml文件
12 |
13 |
14 | 功能:
15 |
16 | 1.登录
17 |
18 | 2.复杂的布局动画(京东首页顶部,个人界面的动画,商品详情页的动画)
19 |
20 | 3.网络请求的下拉刷新和basepage管理页面状态
21 |
22 | 4.封装了很多复杂的部件,可以直接拿来使用
23 |
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | analyzer:
2 | exclude:
3 | - '**/*.g.dart'
4 | - '**/*.freezed.dart'
5 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | def localProperties = new Properties()
2 | def localPropertiesFile = rootProject.file('local.properties')
3 | if (localPropertiesFile.exists()) {
4 | localPropertiesFile.withReader('UTF-8') { reader ->
5 | localProperties.load(reader)
6 | }
7 | }
8 |
9 | def flutterRoot = localProperties.getProperty('flutter.sdk')
10 | if (flutterRoot == null) {
11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
12 | }
13 |
14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
15 | if (flutterVersionCode == null) {
16 | flutterVersionCode = '1'
17 | }
18 |
19 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
20 | if (flutterVersionName == null) {
21 | flutterVersionName = '1.0'
22 | }
23 |
24 | apply plugin: 'com.android.application'
25 | apply plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 |
28 | android {
29 | compileSdkVersion 30
30 |
31 | sourceSets {
32 | main.java.srcDirs += 'src/main/kotlin'
33 | }
34 |
35 | defaultConfig {
36 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
37 | applicationId "com.zh.flutter_plus"
38 | multiDexEnabled true
39 | minSdkVersion 21
40 | targetSdkVersion 30
41 | versionCode flutterVersionCode.toInteger()
42 | versionName flutterVersionName
43 | }
44 |
45 | buildTypes {
46 | release {
47 | // TODO: Add your own signing config for the release build.
48 | // Signing with the debug keys for now, so `flutter run --release` works.
49 | signingConfig signingConfigs.debug
50 | }
51 | }
52 | }
53 |
54 | flutter {
55 | source '../..'
56 | }
57 |
58 | dependencies {
59 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
60 | implementation 'com.android.support:multidex:1.0.3'
61 | }
62 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
13 |
20 |
24 |
28 |
33 |
37 |
38 |
39 |
40 |
41 |
42 |
44 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/zh/flutter_plus/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.zh.flutter_plus
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/main/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.3.50'
3 | repositories {
4 | google()
5 | jcenter()
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 | jcenter()
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 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 | #org.gradle.java.home=D\:\\JavaTool\\jdk
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/assets/fonts/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/fonts/iconfont.ttf
--------------------------------------------------------------------------------
/assets/images/animationImage.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/animationImage.gif
--------------------------------------------------------------------------------
/assets/images/bottom_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/bottom_add.png
--------------------------------------------------------------------------------
/assets/images/ic_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/ic_arrow_right.png
--------------------------------------------------------------------------------
/assets/images/ic_back_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/ic_back_black.png
--------------------------------------------------------------------------------
/assets/images/icon_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/icon_search.png
--------------------------------------------------------------------------------
/assets/images/index_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/index_banner.png
--------------------------------------------------------------------------------
/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/logo.png
--------------------------------------------------------------------------------
/assets/images/love.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/love.png
--------------------------------------------------------------------------------
/assets/images/loveme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/loveme.png
--------------------------------------------------------------------------------
/assets/images/me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/me.png
--------------------------------------------------------------------------------
/assets/images/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/message.png
--------------------------------------------------------------------------------
/assets/images/message1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/message1.png
--------------------------------------------------------------------------------
/assets/images/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/none.png
--------------------------------------------------------------------------------
/assets/images/order_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/order_delete.png
--------------------------------------------------------------------------------
/assets/images/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/splash.png
--------------------------------------------------------------------------------
/assets/images/system_message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/system_message.png
--------------------------------------------------------------------------------
/assets/images/szz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/szz.png
--------------------------------------------------------------------------------
/assets/images/zhu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/zhu.jpg
--------------------------------------------------------------------------------
/assets/images/zhuanfa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/zhuanfa.png
--------------------------------------------------------------------------------
/assets/images/zzc.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/assets/images/zzc.jpeg
--------------------------------------------------------------------------------
/assets/json/loading.json:
--------------------------------------------------------------------------------
1 | {"v":"5.5.5","fr":29.9700012207031,"ip":0,"op":60.0000024438501,"w":1920,"h":1080,"nm":"lottifier","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"cogwheel-outline Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":61.0000024845809,"s":[360]}],"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[306,306,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.875,-0.506],[0,0],[1.061,-3.771],[8.636,-15.353],[-2.285,-3.187],[0,0],[3.075,-3.064],[0,0],[4.359,3.508],[0,0],[3.408,-1.921],[16.937,-4.793],[0.638,-3.852],[0,0],[4.257,0],[0,0],[0.505,4.874],[0,0],[3.763,1.061],[15.412,8.636],[1.698,0],[1.76,-1.246],[0,0],[2.973,2.963],[0,0],[-3.154,3.882],[0,0],[1.912,3.418],[4.783,16.918],[3.862,0.639],[0,0],[0,4.329],[0,0],[-4.956,0.526],[0,0],[-1.052,3.762],[-8.615,15.331],[2.286,3.196],[0,0],[-3.054,3.053],[0,0],[-4.349,-3.479],[0,0],[-3.438,1.912],[-17.029,4.823],[-0.638,3.864],[0,0],[-4.338,0],[0,0],[-0.535,-4.976],[0,0],[-3.761,-1.053],[-15.36,-8.626],[-3.185,2.285],[0,0],[-2.942,-2.942],[0,0],[3.125,-3.862],[0,0],[-1.91,-3.428],[-4.794,-17.01],[-3.873,-0.646],[0,0],[0,-4.258]],"o":[[0,4.259],[0,0],[-3.873,0.646],[-4.794,17.011],[-1.911,3.427],[0,0],[2.73,3.345],[0,0],[-2.951,2.943],[0,0],[-3.186,-2.284],[-15.422,8.647],[-3.764,1.063],[0,0],[-0.415,4.217],[0,0],[-4.257,0],[0,0],[-0.648,-3.862],[-16.98,-4.804],[-1.537,-0.871],[-2.064,0],[0,0],[-3.185,2.651],[0,0],[-3.064,-3.065],[0,0],[2.286,-3.185],[-8.657,-15.452],[-1.062,-3.772],[0,0],[-4.277,-0.414],[0,0],[0,-4.34],[0,0],[3.863,-0.647],[4.824,-17.02],[1.911,-3.419],[0,0],[-2.731,-3.327],[0,0],[2.943,-2.964],[0,0],[3.176,2.286],[15.32,-8.626],[3.763,-1.062],[0,0],[0.425,-4.288],[0,0],[4.327,0],[0,0],[0.647,3.864],[16.999,4.814],[3.407,1.911],[0,0],[3.197,-2.618],[0,0],[3.055,3.055],[0,0],[-2.286,3.185],[8.626,15.33],[1.071,3.771],[0,0],[4.217,0.415],[0,0]],"v":[[285.764,37.001],[277.582,45.415],[225.229,54.145],[217.15,61.374],[196.923,110.139],[197.52,120.969],[228.788,164.686],[228.202,175.921],[175.889,228.233],[164.138,228.395],[120.949,197.54],[110.127,196.944],[61.365,217.189],[54.143,225.249],[45.316,278.262],[36.983,285.775],[-36.993,285.775],[-45.426,277.595],[-54.133,225.249],[-61.354,217.181],[-110.148,196.936],[-115.092,195.642],[-120.978,197.522],[-164.726,228.78],[-175.931,228.204],[-228.244,175.901],[-228.395,164.141],[-197.541,120.949],[-196.944,110.139],[-217.19,61.355],[-225.259,54.124],[-278.281,45.307],[-285.774,36.984],[-285.774,-36.979],[-277.592,-45.435],[-225.25,-54.163],[-217.18,-61.383],[-196.934,-110.137],[-197.531,-120.967],[-228.789,-164.725],[-228.233,-175.919],[-175.921,-228.233],[-164.17,-228.414],[-120.938,-197.54],[-110.107,-196.944],[-61.354,-217.189],[-54.133,-225.26],[-45.336,-278.26],[-36.993,-285.773],[36.983,-285.773],[45.436,-277.562],[54.154,-225.22],[61.374,-217.15],[110.138,-196.905],[120.958,-197.5],[164.705,-228.78],[175.91,-228.203],[228.222,-175.87],[228.405,-164.138],[197.531,-120.927],[196.933,-110.096],[217.16,-61.352],[225.24,-54.124],[278.25,-45.305],[285.764,-36.961]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[14.017,1.375],[0,0],[6.957,13.187],[0,0],[10.436,10.407],[0,0],[7.646,0],[4.541,-3.763],[0,0],[14.259,4.439],[0,0],[14.754,0],[0,0],[1.366,-14.017],[0,0],[13.176,-6.947],[0,0],[10.083,-10.062],[0,0],[-8.96,-10.871],[0,0],[4.439,-14.269],[0,0],[0,-14.776],[0,0],[-13.996,-1.343],[0,0],[-6.978,-13.247],[0,0],[-10.446,-10.447],[0,0],[-7.646,0],[-4.552,3.771],[0,0],[-14.249,-4.431],[0,0],[-14.775,0],[0,0],[-1.375,14.007],[0,0],[-13.228,6.968],[0,0],[-10.042,10.052],[0,0],[8.949,10.912],[0,0],[-4.438,14.28],[0,0],[0,14.795],[0,0]],"o":[[0,0],[-4.439,-14.269],[0,0],[9.334,-11.438],[0,0],[-5.4,-5.4],[-6.591,0],[0,0],[-13.188,-6.947],[0,0],[-1.486,-14.664],[0,0],[-14.775,0],[0,0],[-14.279,4.44],[0,0],[-10.981,-8.98],[0,0],[-10.457,10.437],[0,0],[-6.939,13.187],[0,0],[-14.673,1.466],[0,0],[0,14.795],[0,0],[4.419,14.209],[0,0],[-9.354,11.428],[0,0],[5.411,5.411],[6.594,0],[0,0],[13.227,6.957],[0,0],[1.456,14.675],[0,0],[14.764,0],[0,0],[14.219,-4.421],[0,0],[11.011,9.029],[0,0],[10.456,-10.416],[0,0],[6.947,-13.187],[0,0],[14.694,-1.426],[0,0],[0,-14.776]],"v":[[280.921,-65.368],[234.807,-73.063],[217.676,-114.365],[244.464,-151.904],[242.524,-190.22],[190.22,-242.543],[169.994,-250.915],[152.429,-244.858],[114.356,-217.676],[73.066,-234.806],[65.47,-280.272],[36.993,-305.999],[-36.982,-305.999],[-65.369,-280.91],[-73.044,-234.806],[-114.343,-217.676],[-151.903,-244.465],[-190.23,-242.543],[-242.543,-190.22],[-244.849,-152.43],[-217.675,-114.366],[-234.807,-73.064],[-280.253,-65.46],[-306,-36.982],[-306,36.982],[-280.921,65.358],[-234.807,73.053],[-217.666,114.363],[-244.444,151.871],[-242.543,190.229],[-190.24,242.533],[-170.004,250.926],[-152.427,244.85],[-114.364,217.665],[-73.044,234.808],[-65.46,280.252],[-36.993,305.999],[36.983,305.999],[65.359,280.921],[73.065,234.796],[114.354,217.653],[151.863,244.423],[190.219,242.512],[242.512,190.22],[244.859,152.397],[217.675,114.344],[234.806,73.022],[280.233,65.428],[306,36.982],[306,-36.982]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[306,306],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[55.601,0],[0,55.601],[-55.609,0],[-0.01,-55.61]],"o":[[-55.61,0],[0,-55.609],[55.6,0],[0,55.601]],"v":[[0.005,100.842],[-100.849,0.01],[0.005,-100.844],[100.849,0.01]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[66.766,0],[0,-66.764],[-66.764,0],[-0.009,66.743]],"o":[[-66.764,0],[0,66.754],[66.754,0],[0,-66.764]],"v":[[0.005,-121.069],[-121.074,0.01],[0.005,121.07],[121.074,0.01]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[306.005,305.98],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[66.754,0],[0,66.754],[-66.764,0],[0,-66.763]],"o":[[-66.764,0],[0,-66.763],[66.766,0],[-0.009,66.744]],"v":[[0.015,121.048],[-121.064,-0.012],[0.015,-121.09],[121.084,-0.012]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[4.217,0.416],[0,0],[1.072,3.772],[8.626,15.331],[-2.286,3.185],[0,0],[3.055,3.054],[0,0],[3.197,-2.618],[0,0],[3.407,1.912],[16.999,4.814],[0.647,3.864],[0,0],[4.327,0],[0,0],[0.425,-4.288],[0,0],[3.762,-1.062],[15.32,-8.626],[3.176,2.286],[0,0],[2.943,-2.964],[0,0],[-2.731,-3.328],[0,0],[1.911,-3.419],[4.824,-17.02],[3.863,-0.647],[0,0],[0,-4.34],[0,0],[-4.277,-0.414],[0,0],[-1.062,-3.772],[-8.657,-15.452],[2.286,-3.185],[0,0],[-3.064,-3.066],[0,0],[-3.185,2.651],[0,0],[-2.063,0],[-1.537,-0.87],[-16.98,-4.804],[-0.647,-3.862],[0,0],[-4.257,0],[0,0],[-0.415,4.217],[0,0],[-3.763,1.062],[-15.422,8.646],[-3.185,-2.284],[0,0],[-2.951,2.942],[0,0],[2.73,3.345],[0,0],[-1.911,3.428],[-4.794,17.011],[-3.873,0.646],[0,0],[0,4.259],[0,0]],"o":[[0,0],[-3.873,-0.647],[-4.794,-17.01],[-1.91,-3.428],[0,0],[3.125,-3.863],[0,0],[-2.942,-2.943],[0,0],[-3.185,2.285],[-15.36,-8.626],[-3.761,-1.052],[0,0],[-0.535,-4.976],[0,0],[-4.338,0],[0,0],[-0.637,3.864],[-17.03,4.823],[-3.438,1.912],[0,0],[-4.349,-3.479],[0,0],[-3.054,3.053],[0,0],[2.286,3.196],[-8.616,15.331],[-1.052,3.763],[0,0],[-4.956,0.525],[0,0],[0,4.328],[0,0],[3.863,0.639],[4.783,16.919],[1.912,3.418],[0,0],[-3.155,3.883],[0,0],[2.973,2.963],[0,0],[1.759,-1.245],[1.699,0],[15.412,8.636],[3.762,1.061],[0,0],[0.506,4.874],[0,0],[4.256,0],[0,0],[0.638,-3.852],[16.938,-4.794],[3.408,-1.921],[0,0],[4.359,3.508],[0,0],[3.075,-3.063],[0,0],[-2.285,-3.187],[8.636,-15.353],[1.061,-3.771],[0,0],[4.875,-0.506],[0,0],[0,-4.258]],"v":[[278.255,-45.307],[225.244,-54.124],[217.164,-61.354],[196.938,-110.098],[197.536,-120.929],[228.41,-164.139],[228.227,-175.87],[175.915,-228.203],[164.71,-228.781],[120.963,-197.501],[110.143,-196.906],[61.379,-217.151],[54.159,-225.221],[45.441,-277.563],[36.988,-285.774],[-36.988,-285.774],[-45.331,-278.261],[-54.129,-225.261],[-61.349,-217.19],[-110.102,-196.945],[-120.933,-197.542],[-164.165,-228.415],[-175.916,-228.234],[-228.228,-175.921],[-228.784,-164.725],[-197.526,-120.969],[-196.929,-110.138],[-217.175,-61.385],[-225.245,-54.163],[-277.588,-45.436],[-285.769,-36.981],[-285.769,36.983],[-278.276,45.305],[-225.255,54.122],[-217.185,61.353],[-196.939,110.137],[-197.536,120.947],[-228.39,164.139],[-228.239,175.9],[-175.926,228.202],[-164.721,228.779],[-120.973,197.521],[-115.088,195.641],[-110.143,196.934],[-61.349,217.18],[-54.129,225.248],[-45.422,277.593],[-36.988,285.774],[36.988,285.774],[45.321,278.26],[54.148,225.248],[61.369,217.189],[110.132,196.943],[120.953,197.539],[164.143,228.394],[175.894,228.232],[228.207,175.919],[228.793,164.685],[197.525,120.967],[196.928,110.137],[217.155,61.372],[225.234,54.143],[277.587,45.414],[285.769,37],[285.769,-36.963]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.808000033509,0.263000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[305.995,306.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0}],"markers":[]}
--------------------------------------------------------------------------------
/assets/json/loading2.json:
--------------------------------------------------------------------------------
1 | {"v":"5.5.8","fr":50,"ip":0,"op":147,"w":800,"h":600,"nm":"Paperplane","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"planete Outlines - Group 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":88,"s":[50]},{"t":120,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[468.336,323.378,0],"to":[-29,0,0],"ti":[29,0,0]},{"t":102,"s":[294.336,323.378,0]}],"ix":2},"a":{"a":0,"k":[453.672,304.756,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.742,0],[0.741,-0.14],[0,0.074],[13.484,0],[1.669,-0.361],[19.79,0],[3.317,-19.082],[2.691,0],[0,-13.484],[-0.048,-0.629],[2.405,0],[0,-6.742],[-6.742,0],[0,0],[0,6.743]],"o":[[-0.781,0],[0.001,-0.074],[0,-13.484],[-1.778,0],[-3.594,-18.742],[-20.03,0],[-2.421,-0.804],[-13.485,0],[0,0.642],[-1.89,-1.199],[-6.742,0],[0,6.743],[0,0],[6.742,0],[0,-6.742]],"v":[[75.134,16.175],[72.85,16.396],[72.856,16.175],[48.44,-8.241],[43.262,-7.685],[3.406,-40.591],[-36.571,-6.995],[-44.269,-8.241],[-68.685,16.175],[-68.604,18.079],[-75.133,16.175],[-87.341,28.383],[-75.133,40.592],[75.134,40.592],[87.342,28.383]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.815686334348,0.823529471603,0.827451040231,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[453.672,304.756],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Merged Shape Layer","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.547],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.845],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":77,"s":[35]},{"t":150,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[390.319,298.2,0],"to":[0,-2.583,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44,"s":[390.319,282.7,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110,"s":[390.319,319.25,0],"to":[0,0,0],"ti":[0,0,0]},{"t":150,"s":[390.319,298.2,0]}],"ix":2},"a":{"a":0,"k":[664.319,256.2,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[18.967,-3.189],[-18.967,19.935],[-0.949,-19.935]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.223528981209,0.192156970501,0.674510002136,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[236.879,292.737],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[633.939,275.369],"ix":2},"a":{"a":0,"k":[236.879,292.737],"ix":1},"s":{"a":0,"k":[50,50],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"planete Outlines - Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-98.335,64.79],[-105.619,4.984],[105.619,-64.79],[-80.316,24.919]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.278430998325,0.294117987156,0.847059011459,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[316.247,247.882],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[673.623,252.941],"ix":2},"a":{"a":0,"k":[316.247,247.882],"ix":1},"s":{"a":0,"k":[50,50],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"planete Outlines - Group 2","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-133.812,-42.171],[133.812,-75.141],[5.765,75.141],[-61.708,18.402],[124.227,-71.307],[-87.011,-1.534]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.365000009537,0.407999992371,0.976000010967,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[297.638,254.4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[664.319,256.2],"ix":2},"a":{"a":0,"k":[297.638,254.4],"ix":1},"s":{"a":0,"k":[50,50],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"planete Outlines - Group 3","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"planete Outlines - Group 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":45,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":102,"s":[100]},{"t":150,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[327.38,267.583,0],"to":[25.833,0,0],"ti":[-25.833,0,0]},{"t":150,"s":[482.38,267.583,0]}],"ix":2},"a":{"a":0,"k":[171.76,193.166,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.485,0],[4.38,-4.171],[21.913,0],[3.575,-18.765],[1.851,0],[0,-13.484],[-0.011,-0.291],[1.599,0],[0,-6.743],[-6.742,0],[0,0],[0,13.485]],"o":[[-6.526,0],[-0.793,-21.719],[-19.806,0],[-1.734,-0.391],[-13.485,0],[0,0.293],[-1.4,-0.559],[-6.742,0],[0,6.742],[0,0],[13.485,0],[0,-13.484]],"v":[[59.669,-8.242],[42.84,-1.506],[2.287,-40.592],[-37.576,-7.638],[-42.962,-8.242],[-67.378,16.174],[-67.356,17.049],[-71.878,16.174],[-84.086,28.383],[-71.878,40.591],[59.669,40.591],[84.086,16.174]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.816000007181,0.823999980852,0.827000038297,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[171.76,193.166],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[406,306,0],"ix":2},"a":{"a":0,"k":[400,300,0],"ix":1},"s":{"a":0,"k":[179,179,100],"ix":6}},"ao":0,"w":800,"h":600,"ip":0,"op":147,"st":0,"bm":0}],"markers":[]}
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/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 | 8.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
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 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-App-20x20@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-App-20x20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-App-29x29@1x.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-App-29x29@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "29x29",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-App-29x29@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-App-40x40@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "40x40",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-App-40x40@3x.png",
43 | "scale" : "3x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-App-60x60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "Icon-App-60x60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "20x20",
59 | "idiom" : "ipad",
60 | "filename" : "Icon-App-20x20@1x.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "20x20",
65 | "idiom" : "ipad",
66 | "filename" : "Icon-App-20x20@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "29x29",
71 | "idiom" : "ipad",
72 | "filename" : "Icon-App-29x29@1x.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "29x29",
77 | "idiom" : "ipad",
78 | "filename" : "Icon-App-29x29@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "40x40",
83 | "idiom" : "ipad",
84 | "filename" : "Icon-App-40x40@1x.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "40x40",
89 | "idiom" : "ipad",
90 | "filename" : "Icon-App-40x40@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "76x76",
95 | "idiom" : "ipad",
96 | "filename" : "Icon-App-76x76@1x.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "76x76",
101 | "idiom" : "ipad",
102 | "filename" : "Icon-App-76x76@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "83.5x83.5",
107 | "idiom" : "ipad",
108 | "filename" : "Icon-App-83.5x83.5@2x.png",
109 | "scale" : "2x"
110 | },
111 | {
112 | "size" : "1024x1024",
113 | "idiom" : "ios-marketing",
114 | "filename" : "Icon-App-1024x1024@1x.png",
115 | "scale" : "1x"
116 | }
117 | ],
118 | "info" : {
119 | "version" : 1,
120 | "author" : "xcode"
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/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/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zh6/flutter_plus/941a162151a64900fc55eb749574ab59fd66706d/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/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.
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | flutter_plus
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 | UIViewControllerBasedStatusBarAppearance
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/lib/common/application.dart:
--------------------------------------------------------------------------------
1 |
2 |
3 | class Application {
4 | }
5 |
--------------------------------------------------------------------------------
/lib/common/constant.dart:
--------------------------------------------------------------------------------
1 |
2 |
3 | class Constant {
4 | static const APP_BAR = 50.0;
5 | static const DEBUG = true;
6 | static const PAGE_SIZE = 20;
7 | // static const BASE_URL = "http://139.9.214.31:8008/";
8 | static const BASE_URL = "http://10.2.15.74:8008/";
9 | static const TOKEN = "TOKEN";
10 | static const USER = "USER";
11 |
12 | static const accesskey = "";
13 | static const OSSAccessKeyId = "";
14 | static const OSSurl = "";
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 |
3 | import 'package:flustars/flustars.dart';
4 | import 'package:flutter/material.dart';
5 | import 'package:flutter/services.dart';
6 | import 'package:flutter_hooks/flutter_hooks.dart';
7 | import 'package:flutter_plus/route/router.dart';
8 | import 'package:flutter_plus/styles/app_colors.dart';
9 | import 'package:flutter_plus/ui/login_page.dart';
10 | import 'package:flutter_plus/ui/main_page.dart';
11 | import 'package:hooks_riverpod/hooks_riverpod.dart';
12 | import 'package:pull_to_refresh/pull_to_refresh.dart';
13 |
14 | import 'common/constant.dart';
15 |
16 | void main() async {
17 | WidgetsFlutterBinding.ensureInitialized();
18 | await SpUtil.getInstance();
19 | Routers.configureRoutes();
20 | runApp(
21 | ProviderScope(
22 | child: MyApp(),
23 | ),
24 | );
25 | if (Platform.isAndroid) {
26 | //设置Android头部的导航栏透明
27 | SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle(
28 | statusBarColor: Colors.transparent, //全局设置透明
29 | statusBarIconBrightness: Brightness.dark);
30 | SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
31 | }
32 | }
33 | final GlobalKey navigatorKey = new GlobalKey();
34 | class MyApp extends HookWidget {
35 | @override
36 | Widget build(BuildContext context) {
37 | setDesignWHD(360.0, 640.0, density: 3);
38 | String? token = SpUtil.getString(Constant.TOKEN);
39 | return RefreshConfiguration(
40 | footerTriggerDistance: 15,
41 | headerTriggerDistance: 90.0,
42 | maxOverScrollExtent: 100,
43 | dragSpeedRatio: 0.91,
44 | headerBuilder: () => MaterialClassicHeader(),
45 | footerBuilder: () => ClassicFooter(),
46 | enableLoadingWhenNoData: false,
47 | enableRefreshVibrate: false,
48 | enableLoadMoreVibrate: false,
49 | hideFooterWhenNotFull: true,
50 | shouldFooterFollowWhenNotFull: (state) {
51 | return false;
52 | },
53 | child: MaterialApp(
54 | navigatorKey: navigatorKey,
55 | theme: ThemeData(
56 | primaryColor: AppColors.appBarTopBg, //bar的颜色
57 | scaffoldBackgroundColor: AppColors.appBg, //scaffold的颜色,
58 | ),
59 | title: 'Flutter App',
60 | // home:MainPage(),
61 | home: TextUtil.isEmpty(token)?LoginPage(): MainPage(),
62 | //注册路由
63 | onGenerateRoute: Routers.router.generator,
64 | ///初始化loading
65 | builder: (context, child) => Scaffold(
66 | ///全局点击空白关闭软键盘
67 | body: GestureDetector(
68 | onTap: () {
69 | FocusScopeNode currentFocus = FocusScope.of(context);
70 | if (!currentFocus.hasPrimaryFocus &&
71 | currentFocus.focusedChild != null) {
72 | FocusManager.instance.primaryFocus!.unfocus();
73 | }
74 | },
75 | child: child,
76 | ),
77 | ),
78 | ),
79 | );
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/lib/model/base/home.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 |
3 |
4 | part 'home.g.dart';
5 |
6 | part 'home.freezed.dart';
7 |
8 | @freezed
9 | class GridEntity with _$GridEntity {
10 | const factory GridEntity(
11 | String name,
12 | String imgUrl,
13 | String path,
14 | ) = _GridEntity;
15 |
16 | factory GridEntity.fromJson(Map json) => _$GridEntityFromJson(json);
17 | }
18 |
19 | @freezed
20 | class SwiperEntity with _$SwiperEntity {
21 | const factory SwiperEntity(
22 | String name,
23 | String imgUrl,
24 | String path,
25 | ) = _SwiperEntity;
26 |
27 | factory SwiperEntity.fromJson(Map json) => _$SwiperEntityFromJson(json);
28 | }
29 |
--------------------------------------------------------------------------------
/lib/model/base/home.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'home.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | _$_GridEntity _$_$_GridEntityFromJson(Map json) {
10 | return _$_GridEntity(
11 | json['name'] as String,
12 | json['imgUrl'] as String,
13 | json['path'] as String,
14 | );
15 | }
16 |
17 | Map _$_$_GridEntityToJson(_$_GridEntity instance) =>
18 | {
19 | 'name': instance.name,
20 | 'imgUrl': instance.imgUrl,
21 | 'path': instance.path,
22 | };
23 |
24 | _$_SwiperEntity _$_$_SwiperEntityFromJson(Map json) {
25 | return _$_SwiperEntity(
26 | json['name'] as String,
27 | json['imgUrl'] as String,
28 | json['path'] as String,
29 | );
30 | }
31 |
32 | Map _$_$_SwiperEntityToJson(_$_SwiperEntity instance) =>
33 | {
34 | 'name': instance.name,
35 | 'imgUrl': instance.imgUrl,
36 | 'path': instance.path,
37 | };
38 |
--------------------------------------------------------------------------------
/lib/model/base/tab.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 | import 'package:freezed_annotation/freezed_annotation.dart';
3 | part 'tab.freezed.dart';
4 |
5 | @freezed
6 | class TabEntity with _$TabEntity {
7 | const factory TabEntity(
8 | Widget widget,
9 | String title,
10 | IconData icon,
11 | ) = _TabEntity;
12 | }
13 |
--------------------------------------------------------------------------------
/lib/model/base/tab.freezed.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 | // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides
3 |
4 | part of 'tab.dart';
5 |
6 | // **************************************************************************
7 | // FreezedGenerator
8 | // **************************************************************************
9 |
10 | T _$identity(T value) => value;
11 |
12 | final _privateConstructorUsedError = UnsupportedError(
13 | 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');
14 |
15 | /// @nodoc
16 | class _$TabEntityTearOff {
17 | const _$TabEntityTearOff();
18 |
19 | _TabEntity call(Widget widget, String title, IconData icon) {
20 | return _TabEntity(
21 | widget,
22 | title,
23 | icon,
24 | );
25 | }
26 | }
27 |
28 | /// @nodoc
29 | const $TabEntity = _$TabEntityTearOff();
30 |
31 | /// @nodoc
32 | mixin _$TabEntity {
33 | Widget get widget => throw _privateConstructorUsedError;
34 | String get title => throw _privateConstructorUsedError;
35 | IconData get icon => throw _privateConstructorUsedError;
36 |
37 | @JsonKey(ignore: true)
38 | $TabEntityCopyWith get copyWith =>
39 | throw _privateConstructorUsedError;
40 | }
41 |
42 | /// @nodoc
43 | abstract class $TabEntityCopyWith<$Res> {
44 | factory $TabEntityCopyWith(TabEntity value, $Res Function(TabEntity) then) =
45 | _$TabEntityCopyWithImpl<$Res>;
46 | $Res call({Widget widget, String title, IconData icon});
47 | }
48 |
49 | /// @nodoc
50 | class _$TabEntityCopyWithImpl<$Res> implements $TabEntityCopyWith<$Res> {
51 | _$TabEntityCopyWithImpl(this._value, this._then);
52 |
53 | final TabEntity _value;
54 | // ignore: unused_field
55 | final $Res Function(TabEntity) _then;
56 |
57 | @override
58 | $Res call({
59 | Object? widget = freezed,
60 | Object? title = freezed,
61 | Object? icon = freezed,
62 | }) {
63 | return _then(_value.copyWith(
64 | widget: widget == freezed
65 | ? _value.widget
66 | : widget // ignore: cast_nullable_to_non_nullable
67 | as Widget,
68 | title: title == freezed
69 | ? _value.title
70 | : title // ignore: cast_nullable_to_non_nullable
71 | as String,
72 | icon: icon == freezed
73 | ? _value.icon
74 | : icon // ignore: cast_nullable_to_non_nullable
75 | as IconData,
76 | ));
77 | }
78 | }
79 |
80 | /// @nodoc
81 | abstract class _$TabEntityCopyWith<$Res> implements $TabEntityCopyWith<$Res> {
82 | factory _$TabEntityCopyWith(
83 | _TabEntity value, $Res Function(_TabEntity) then) =
84 | __$TabEntityCopyWithImpl<$Res>;
85 | @override
86 | $Res call({Widget widget, String title, IconData icon});
87 | }
88 |
89 | /// @nodoc
90 | class __$TabEntityCopyWithImpl<$Res> extends _$TabEntityCopyWithImpl<$Res>
91 | implements _$TabEntityCopyWith<$Res> {
92 | __$TabEntityCopyWithImpl(_TabEntity _value, $Res Function(_TabEntity) _then)
93 | : super(_value, (v) => _then(v as _TabEntity));
94 |
95 | @override
96 | _TabEntity get _value => super._value as _TabEntity;
97 |
98 | @override
99 | $Res call({
100 | Object? widget = freezed,
101 | Object? title = freezed,
102 | Object? icon = freezed,
103 | }) {
104 | return _then(_TabEntity(
105 | widget == freezed
106 | ? _value.widget
107 | : widget // ignore: cast_nullable_to_non_nullable
108 | as Widget,
109 | title == freezed
110 | ? _value.title
111 | : title // ignore: cast_nullable_to_non_nullable
112 | as String,
113 | icon == freezed
114 | ? _value.icon
115 | : icon // ignore: cast_nullable_to_non_nullable
116 | as IconData,
117 | ));
118 | }
119 | }
120 |
121 | /// @nodoc
122 | class _$_TabEntity implements _TabEntity {
123 | const _$_TabEntity(this.widget, this.title, this.icon);
124 |
125 | @override
126 | final Widget widget;
127 | @override
128 | final String title;
129 | @override
130 | final IconData icon;
131 |
132 | @override
133 | String toString() {
134 | return 'TabEntity(widget: $widget, title: $title, icon: $icon)';
135 | }
136 |
137 | @override
138 | bool operator ==(dynamic other) {
139 | return identical(this, other) ||
140 | (other is _TabEntity &&
141 | (identical(other.widget, widget) ||
142 | const DeepCollectionEquality().equals(other.widget, widget)) &&
143 | (identical(other.title, title) ||
144 | const DeepCollectionEquality().equals(other.title, title)) &&
145 | (identical(other.icon, icon) ||
146 | const DeepCollectionEquality().equals(other.icon, icon)));
147 | }
148 |
149 | @override
150 | int get hashCode =>
151 | runtimeType.hashCode ^
152 | const DeepCollectionEquality().hash(widget) ^
153 | const DeepCollectionEquality().hash(title) ^
154 | const DeepCollectionEquality().hash(icon);
155 |
156 | @JsonKey(ignore: true)
157 | @override
158 | _$TabEntityCopyWith<_TabEntity> get copyWith =>
159 | __$TabEntityCopyWithImpl<_TabEntity>(this, _$identity);
160 | }
161 |
162 | abstract class _TabEntity implements TabEntity {
163 | const factory _TabEntity(Widget widget, String title, IconData icon) =
164 | _$_TabEntity;
165 |
166 | @override
167 | Widget get widget => throw _privateConstructorUsedError;
168 | @override
169 | String get title => throw _privateConstructorUsedError;
170 | @override
171 | IconData get icon => throw _privateConstructorUsedError;
172 | @override
173 | @JsonKey(ignore: true)
174 | _$TabEntityCopyWith<_TabEntity> get copyWith =>
175 | throw _privateConstructorUsedError;
176 | }
177 |
--------------------------------------------------------------------------------
/lib/model/breed/breed.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 | part 'breed.freezed.dart';
3 | part 'breed.g.dart';
4 | @freezed
5 | class BreedEntity with _$BreedEntity {
6 | const factory BreedEntity(
7 | int id,
8 | String name,
9 | String picture,
10 | String content,
11 | ) = _BreedEntity;
12 | factory BreedEntity.fromJson(Map json) =>
13 | _$BreedEntityFromJson(json);
14 | }
--------------------------------------------------------------------------------
/lib/model/breed/breed.freezed.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 | // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides
3 |
4 | part of 'breed.dart';
5 |
6 | // **************************************************************************
7 | // FreezedGenerator
8 | // **************************************************************************
9 |
10 | T _$identity(T value) => value;
11 |
12 | final _privateConstructorUsedError = UnsupportedError(
13 | 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');
14 |
15 | BreedEntity _$BreedEntityFromJson(Map json) {
16 | return _BreedEntity.fromJson(json);
17 | }
18 |
19 | /// @nodoc
20 | class _$BreedEntityTearOff {
21 | const _$BreedEntityTearOff();
22 |
23 | _BreedEntity call(int id, String name, String picture, String content) {
24 | return _BreedEntity(
25 | id,
26 | name,
27 | picture,
28 | content,
29 | );
30 | }
31 |
32 | BreedEntity fromJson(Map json) {
33 | return BreedEntity.fromJson(json);
34 | }
35 | }
36 |
37 | /// @nodoc
38 | const $BreedEntity = _$BreedEntityTearOff();
39 |
40 | /// @nodoc
41 | mixin _$BreedEntity {
42 | int get id => throw _privateConstructorUsedError;
43 | String get name => throw _privateConstructorUsedError;
44 | String get picture => throw _privateConstructorUsedError;
45 | String get content => throw _privateConstructorUsedError;
46 |
47 | Map toJson() => throw _privateConstructorUsedError;
48 | @JsonKey(ignore: true)
49 | $BreedEntityCopyWith get copyWith =>
50 | throw _privateConstructorUsedError;
51 | }
52 |
53 | /// @nodoc
54 | abstract class $BreedEntityCopyWith<$Res> {
55 | factory $BreedEntityCopyWith(
56 | BreedEntity value, $Res Function(BreedEntity) then) =
57 | _$BreedEntityCopyWithImpl<$Res>;
58 | $Res call({int id, String name, String picture, String content});
59 | }
60 |
61 | /// @nodoc
62 | class _$BreedEntityCopyWithImpl<$Res> implements $BreedEntityCopyWith<$Res> {
63 | _$BreedEntityCopyWithImpl(this._value, this._then);
64 |
65 | final BreedEntity _value;
66 | // ignore: unused_field
67 | final $Res Function(BreedEntity) _then;
68 |
69 | @override
70 | $Res call({
71 | Object? id = freezed,
72 | Object? name = freezed,
73 | Object? picture = freezed,
74 | Object? content = freezed,
75 | }) {
76 | return _then(_value.copyWith(
77 | id: id == freezed
78 | ? _value.id
79 | : id // ignore: cast_nullable_to_non_nullable
80 | as int,
81 | name: name == freezed
82 | ? _value.name
83 | : name // ignore: cast_nullable_to_non_nullable
84 | as String,
85 | picture: picture == freezed
86 | ? _value.picture
87 | : picture // ignore: cast_nullable_to_non_nullable
88 | as String,
89 | content: content == freezed
90 | ? _value.content
91 | : content // ignore: cast_nullable_to_non_nullable
92 | as String,
93 | ));
94 | }
95 | }
96 |
97 | /// @nodoc
98 | abstract class _$BreedEntityCopyWith<$Res>
99 | implements $BreedEntityCopyWith<$Res> {
100 | factory _$BreedEntityCopyWith(
101 | _BreedEntity value, $Res Function(_BreedEntity) then) =
102 | __$BreedEntityCopyWithImpl<$Res>;
103 | @override
104 | $Res call({int id, String name, String picture, String content});
105 | }
106 |
107 | /// @nodoc
108 | class __$BreedEntityCopyWithImpl<$Res> extends _$BreedEntityCopyWithImpl<$Res>
109 | implements _$BreedEntityCopyWith<$Res> {
110 | __$BreedEntityCopyWithImpl(
111 | _BreedEntity _value, $Res Function(_BreedEntity) _then)
112 | : super(_value, (v) => _then(v as _BreedEntity));
113 |
114 | @override
115 | _BreedEntity get _value => super._value as _BreedEntity;
116 |
117 | @override
118 | $Res call({
119 | Object? id = freezed,
120 | Object? name = freezed,
121 | Object? picture = freezed,
122 | Object? content = freezed,
123 | }) {
124 | return _then(_BreedEntity(
125 | id == freezed
126 | ? _value.id
127 | : id // ignore: cast_nullable_to_non_nullable
128 | as int,
129 | name == freezed
130 | ? _value.name
131 | : name // ignore: cast_nullable_to_non_nullable
132 | as String,
133 | picture == freezed
134 | ? _value.picture
135 | : picture // ignore: cast_nullable_to_non_nullable
136 | as String,
137 | content == freezed
138 | ? _value.content
139 | : content // ignore: cast_nullable_to_non_nullable
140 | as String,
141 | ));
142 | }
143 | }
144 |
145 | @JsonSerializable()
146 |
147 | /// @nodoc
148 | class _$_BreedEntity implements _BreedEntity {
149 | const _$_BreedEntity(this.id, this.name, this.picture, this.content);
150 |
151 | factory _$_BreedEntity.fromJson(Map json) =>
152 | _$_$_BreedEntityFromJson(json);
153 |
154 | @override
155 | final int id;
156 | @override
157 | final String name;
158 | @override
159 | final String picture;
160 | @override
161 | final String content;
162 |
163 | @override
164 | String toString() {
165 | return 'BreedEntity(id: $id, name: $name, picture: $picture, content: $content)';
166 | }
167 |
168 | @override
169 | bool operator ==(dynamic other) {
170 | return identical(this, other) ||
171 | (other is _BreedEntity &&
172 | (identical(other.id, id) ||
173 | const DeepCollectionEquality().equals(other.id, id)) &&
174 | (identical(other.name, name) ||
175 | const DeepCollectionEquality().equals(other.name, name)) &&
176 | (identical(other.picture, picture) ||
177 | const DeepCollectionEquality()
178 | .equals(other.picture, picture)) &&
179 | (identical(other.content, content) ||
180 | const DeepCollectionEquality().equals(other.content, content)));
181 | }
182 |
183 | @override
184 | int get hashCode =>
185 | runtimeType.hashCode ^
186 | const DeepCollectionEquality().hash(id) ^
187 | const DeepCollectionEquality().hash(name) ^
188 | const DeepCollectionEquality().hash(picture) ^
189 | const DeepCollectionEquality().hash(content);
190 |
191 | @JsonKey(ignore: true)
192 | @override
193 | _$BreedEntityCopyWith<_BreedEntity> get copyWith =>
194 | __$BreedEntityCopyWithImpl<_BreedEntity>(this, _$identity);
195 |
196 | @override
197 | Map toJson() {
198 | return _$_$_BreedEntityToJson(this);
199 | }
200 | }
201 |
202 | abstract class _BreedEntity implements BreedEntity {
203 | const factory _BreedEntity(
204 | int id, String name, String picture, String content) = _$_BreedEntity;
205 |
206 | factory _BreedEntity.fromJson(Map json) =
207 | _$_BreedEntity.fromJson;
208 |
209 | @override
210 | int get id => throw _privateConstructorUsedError;
211 | @override
212 | String get name => throw _privateConstructorUsedError;
213 | @override
214 | String get picture => throw _privateConstructorUsedError;
215 | @override
216 | String get content => throw _privateConstructorUsedError;
217 | @override
218 | @JsonKey(ignore: true)
219 | _$BreedEntityCopyWith<_BreedEntity> get copyWith =>
220 | throw _privateConstructorUsedError;
221 | }
222 |
--------------------------------------------------------------------------------
/lib/model/breed/breed.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'breed.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | _$_BreedEntity _$_$_BreedEntityFromJson(Map json) {
10 | return _$_BreedEntity(
11 | json['id'] as int,
12 | json['name'] as String,
13 | json['picture'] as String,
14 | json['content'] as String,
15 | );
16 | }
17 |
18 | Map _$_$_BreedEntityToJson(_$_BreedEntity instance) =>
19 | {
20 | 'id': instance.id,
21 | 'name': instance.name,
22 | 'picture': instance.picture,
23 | 'content': instance.content,
24 | };
25 |
--------------------------------------------------------------------------------
/lib/model/moment/moment.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 |
3 | part 'moment.freezed.dart';
4 | part 'moment.g.dart';
5 |
6 | @freezed
7 | class MomentEntity with _$MomentEntity {
8 | const factory MomentEntity(
9 | String id,
10 | String type,
11 | String content,
12 | String? createUserId,
13 | String? createUserName,
14 | String? updateUserId,
15 | String? updateUserName,
16 | ) = _MomentEntity;
17 |
18 | factory MomentEntity.fromJson(Map json) => _$MomentEntityFromJson(json);
19 | }
20 |
--------------------------------------------------------------------------------
/lib/model/moment/moment.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'moment.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | _$_MomentEntity _$_$_MomentEntityFromJson(Map json) {
10 | return _$_MomentEntity(
11 | json['id'] as String,
12 | json['type'] as String,
13 | json['content'] as String,
14 | json['createUserId'] as String?,
15 | json['createUserName'] as String?,
16 | json['updateUserId'] as String?,
17 | json['updateUserName'] as String?,
18 | );
19 | }
20 |
21 | Map _$_$_MomentEntityToJson(_$_MomentEntity instance) =>
22 | {
23 | 'id': instance.id,
24 | 'type': instance.type,
25 | 'content': instance.content,
26 | 'createUserId': instance.createUserId,
27 | 'createUserName': instance.createUserName,
28 | 'updateUserId': instance.updateUserId,
29 | 'updateUserName': instance.updateUserName,
30 | };
31 |
--------------------------------------------------------------------------------
/lib/model/moment/moment_response.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 |
3 | import 'moment.dart';
4 |
5 | part 'moment_response.freezed.dart';
6 |
7 | part 'moment_response.g.dart';
8 |
9 | @freezed
10 | class MomentResponse with _$MomentResponse {
11 | const factory MomentResponse(int state, String msg,
12 | {List? aaData}) = _MomentResponse;
13 |
14 | factory MomentResponse.fromJson(Map json) =>
15 | _$MomentResponseFromJson(json);
16 | }
17 |
--------------------------------------------------------------------------------
/lib/model/moment/moment_response.freezed.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 | // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides
3 |
4 | part of 'moment_response.dart';
5 |
6 | // **************************************************************************
7 | // FreezedGenerator
8 | // **************************************************************************
9 |
10 | T _$identity(T value) => value;
11 |
12 | final _privateConstructorUsedError = UnsupportedError(
13 | 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');
14 |
15 | MomentResponse _$MomentResponseFromJson(Map json) {
16 | return _MomentResponse.fromJson(json);
17 | }
18 |
19 | /// @nodoc
20 | class _$MomentResponseTearOff {
21 | const _$MomentResponseTearOff();
22 |
23 | _MomentResponse call(int state, String msg, {List? aaData}) {
24 | return _MomentResponse(
25 | state,
26 | msg,
27 | aaData: aaData,
28 | );
29 | }
30 |
31 | MomentResponse fromJson(Map json) {
32 | return MomentResponse.fromJson(json);
33 | }
34 | }
35 |
36 | /// @nodoc
37 | const $MomentResponse = _$MomentResponseTearOff();
38 |
39 | /// @nodoc
40 | mixin _$MomentResponse {
41 | int get state => throw _privateConstructorUsedError;
42 | String get msg => throw _privateConstructorUsedError;
43 | List? get aaData => throw _privateConstructorUsedError;
44 |
45 | Map toJson() => throw _privateConstructorUsedError;
46 | @JsonKey(ignore: true)
47 | $MomentResponseCopyWith get copyWith =>
48 | throw _privateConstructorUsedError;
49 | }
50 |
51 | /// @nodoc
52 | abstract class $MomentResponseCopyWith<$Res> {
53 | factory $MomentResponseCopyWith(
54 | MomentResponse value, $Res Function(MomentResponse) then) =
55 | _$MomentResponseCopyWithImpl<$Res>;
56 | $Res call({int state, String msg, List? aaData});
57 | }
58 |
59 | /// @nodoc
60 | class _$MomentResponseCopyWithImpl<$Res>
61 | implements $MomentResponseCopyWith<$Res> {
62 | _$MomentResponseCopyWithImpl(this._value, this._then);
63 |
64 | final MomentResponse _value;
65 | // ignore: unused_field
66 | final $Res Function(MomentResponse) _then;
67 |
68 | @override
69 | $Res call({
70 | Object? state = freezed,
71 | Object? msg = freezed,
72 | Object? aaData = freezed,
73 | }) {
74 | return _then(_value.copyWith(
75 | state: state == freezed
76 | ? _value.state
77 | : state // ignore: cast_nullable_to_non_nullable
78 | as int,
79 | msg: msg == freezed
80 | ? _value.msg
81 | : msg // ignore: cast_nullable_to_non_nullable
82 | as String,
83 | aaData: aaData == freezed
84 | ? _value.aaData
85 | : aaData // ignore: cast_nullable_to_non_nullable
86 | as List?,
87 | ));
88 | }
89 | }
90 |
91 | /// @nodoc
92 | abstract class _$MomentResponseCopyWith<$Res>
93 | implements $MomentResponseCopyWith<$Res> {
94 | factory _$MomentResponseCopyWith(
95 | _MomentResponse value, $Res Function(_MomentResponse) then) =
96 | __$MomentResponseCopyWithImpl<$Res>;
97 | @override
98 | $Res call({int state, String msg, List? aaData});
99 | }
100 |
101 | /// @nodoc
102 | class __$MomentResponseCopyWithImpl<$Res>
103 | extends _$MomentResponseCopyWithImpl<$Res>
104 | implements _$MomentResponseCopyWith<$Res> {
105 | __$MomentResponseCopyWithImpl(
106 | _MomentResponse _value, $Res Function(_MomentResponse) _then)
107 | : super(_value, (v) => _then(v as _MomentResponse));
108 |
109 | @override
110 | _MomentResponse get _value => super._value as _MomentResponse;
111 |
112 | @override
113 | $Res call({
114 | Object? state = freezed,
115 | Object? msg = freezed,
116 | Object? aaData = freezed,
117 | }) {
118 | return _then(_MomentResponse(
119 | state == freezed
120 | ? _value.state
121 | : state // ignore: cast_nullable_to_non_nullable
122 | as int,
123 | msg == freezed
124 | ? _value.msg
125 | : msg // ignore: cast_nullable_to_non_nullable
126 | as String,
127 | aaData: aaData == freezed
128 | ? _value.aaData
129 | : aaData // ignore: cast_nullable_to_non_nullable
130 | as List?,
131 | ));
132 | }
133 | }
134 |
135 | @JsonSerializable()
136 |
137 | /// @nodoc
138 | class _$_MomentResponse implements _MomentResponse {
139 | const _$_MomentResponse(this.state, this.msg, {this.aaData});
140 |
141 | factory _$_MomentResponse.fromJson(Map json) =>
142 | _$_$_MomentResponseFromJson(json);
143 |
144 | @override
145 | final int state;
146 | @override
147 | final String msg;
148 | @override
149 | final List? aaData;
150 |
151 | @override
152 | String toString() {
153 | return 'MomentResponse(state: $state, msg: $msg, aaData: $aaData)';
154 | }
155 |
156 | @override
157 | bool operator ==(dynamic other) {
158 | return identical(this, other) ||
159 | (other is _MomentResponse &&
160 | (identical(other.state, state) ||
161 | const DeepCollectionEquality().equals(other.state, state)) &&
162 | (identical(other.msg, msg) ||
163 | const DeepCollectionEquality().equals(other.msg, msg)) &&
164 | (identical(other.aaData, aaData) ||
165 | const DeepCollectionEquality().equals(other.aaData, aaData)));
166 | }
167 |
168 | @override
169 | int get hashCode =>
170 | runtimeType.hashCode ^
171 | const DeepCollectionEquality().hash(state) ^
172 | const DeepCollectionEquality().hash(msg) ^
173 | const DeepCollectionEquality().hash(aaData);
174 |
175 | @JsonKey(ignore: true)
176 | @override
177 | _$MomentResponseCopyWith<_MomentResponse> get copyWith =>
178 | __$MomentResponseCopyWithImpl<_MomentResponse>(this, _$identity);
179 |
180 | @override
181 | Map toJson() {
182 | return _$_$_MomentResponseToJson(this);
183 | }
184 | }
185 |
186 | abstract class _MomentResponse implements MomentResponse {
187 | const factory _MomentResponse(int state, String msg,
188 | {List? aaData}) = _$_MomentResponse;
189 |
190 | factory _MomentResponse.fromJson(Map json) =
191 | _$_MomentResponse.fromJson;
192 |
193 | @override
194 | int get state => throw _privateConstructorUsedError;
195 | @override
196 | String get msg => throw _privateConstructorUsedError;
197 | @override
198 | List? get aaData => throw _privateConstructorUsedError;
199 | @override
200 | @JsonKey(ignore: true)
201 | _$MomentResponseCopyWith<_MomentResponse> get copyWith =>
202 | throw _privateConstructorUsedError;
203 | }
204 |
--------------------------------------------------------------------------------
/lib/model/moment/moment_response.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'moment_response.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | _$_MomentResponse _$_$_MomentResponseFromJson(Map json) {
10 | return _$_MomentResponse(
11 | json['state'] as int,
12 | json['msg'] as String,
13 | aaData: (json['aaData'] as List?)
14 | ?.map((e) => MomentEntity.fromJson(e as Map))
15 | .toList(),
16 | );
17 | }
18 |
19 | Map _$_$_MomentResponseToJson(_$_MomentResponse instance) =>
20 | {
21 | 'state': instance.state,
22 | 'msg': instance.msg,
23 | 'aaData': instance.aaData,
24 | };
25 |
--------------------------------------------------------------------------------
/lib/model/user/user.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 |
3 | part 'user.g.dart';
4 |
5 | part 'user.freezed.dart';
6 |
7 | @freezed
8 | class UserEntity with _$UserEntity {
9 | const factory UserEntity(
10 | int id,
11 | String username,
12 | String password,
13 | String? salt,
14 | String? nickName,
15 | String? headPortrait,
16 | String? phone,
17 | String? email,
18 | int? sex,
19 | String? introduce,
20 | int status,
21 | int? createWhere,
22 | String? pairId,
23 | ) = _UserEntity;
24 |
25 | factory UserEntity.fromJson(Map json) => _$UserEntityFromJson(json);
26 | }
27 |
--------------------------------------------------------------------------------
/lib/model/user/user.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'user.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | _$_UserEntity _$_$_UserEntityFromJson(Map json) {
10 | return _$_UserEntity(
11 | json['id'] as int,
12 | json['username'] as String,
13 | json['password'] as String,
14 | json['salt'] as String?,
15 | json['nickName'] as String?,
16 | json['headPortrait'] as String?,
17 | json['phone'] as String?,
18 | json['email'] as String?,
19 | json['sex'] as int?,
20 | json['introduce'] as String?,
21 | json['status'] as int,
22 | json['createWhere'] as int?,
23 | json['pairId'] as String?,
24 | );
25 | }
26 |
27 | Map _$_$_UserEntityToJson(_$_UserEntity instance) =>
28 | {
29 | 'id': instance.id,
30 | 'username': instance.username,
31 | 'password': instance.password,
32 | 'salt': instance.salt,
33 | 'nickName': instance.nickName,
34 | 'headPortrait': instance.headPortrait,
35 | 'phone': instance.phone,
36 | 'email': instance.email,
37 | 'sex': instance.sex,
38 | 'introduce': instance.introduce,
39 | 'status': instance.status,
40 | 'createWhere': instance.createWhere,
41 | 'pairId': instance.pairId,
42 | };
43 |
--------------------------------------------------------------------------------
/lib/net/api_client.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 | import 'package:flutter_plus/model/moment/moment_response.dart';
3 | import 'package:retrofit/retrofit.dart';
4 | import 'base_dio.dart';
5 | part 'api_client.g.dart';
6 | @RestApi()
7 | abstract class ApiClient {
8 | factory ApiClient({Dio? dio,String? baseUrl}) {
9 | dio = BaseDio.getInstance().getDio();
10 | return _ApiClient(dio, baseUrl: baseUrl);
11 | }
12 |
13 | @POST('login')
14 | Future login(@Body() Map map);
15 | @POST('api/cat/moment/page')
16 | Future getmoment();
17 | @POST('api/cat/breed/page')
18 | Future getbreed();
19 | }
20 |
--------------------------------------------------------------------------------
/lib/net/api_client.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'api_client.dart';
4 |
5 | // **************************************************************************
6 | // RetrofitGenerator
7 | // **************************************************************************
8 |
9 | class _ApiClient implements ApiClient {
10 | _ApiClient(this._dio, {this.baseUrl});
11 |
12 | final Dio _dio;
13 |
14 | String? baseUrl;
15 |
16 | @override
17 | Future> login(map) async {
18 | const _extra = {};
19 | final queryParameters = {};
20 | final _data = {};
21 | _data.addAll(map);
22 | final _result = await _dio.fetch(_setStreamType>(
23 | Options(method: 'POST', headers: {}, extra: _extra)
24 | .compose(_dio.options, 'login',
25 | queryParameters: queryParameters, data: _data)
26 | .copyWith(baseUrl: baseUrl ?? _dio.options.baseUrl)));
27 | final value = _result.data!;
28 | final httpResponse = HttpResponse(value, _result);
29 | return httpResponse;
30 | }
31 |
32 | @override
33 | Future getmoment() async {
34 | const _extra = {};
35 | final queryParameters = {};
36 | final _data = {};
37 | final _result = await _dio.fetch