diff --git a/.gitignore b/.gitignore index 47e0b4d6..639431bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ # Miscellaneous *.class -*.lock *.log *.pyc *.swp @@ -9,6 +8,15 @@ .buildlog/ .history .svn/ +*.lock +.vscode +.gradle +.idea +/local.properties +.DS_Store +/build +.metadata + # IntelliJ related *.iml @@ -26,7 +34,7 @@ .packages .pub-cache/ .pub/ -build/ +/build/ # Android related **/android/**/gradle-wrapper.jar diff --git a/.gradle/3.5.1/file-changes/last-build.bin b/.gradle/3.5.1/file-changes/last-build.bin deleted file mode 100644 index f76dd238..00000000 Binary files a/.gradle/3.5.1/file-changes/last-build.bin and /dev/null differ diff --git a/.gradle/3.5.1/taskHistory/taskHistory.lock b/.gradle/3.5.1/taskHistory/taskHistory.lock deleted file mode 100644 index 1a1ada52..00000000 Binary files a/.gradle/3.5.1/taskHistory/taskHistory.lock and /dev/null differ diff --git a/.gradle/buildOutputCleanup/built.bin b/.gradle/buildOutputCleanup/built.bin deleted file mode 100644 index e69de29b..00000000 diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties deleted file mode 100644 index 061d565e..00000000 --- a/.gradle/buildOutputCleanup/cache.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Thu Nov 22 22:29:42 CST 2018 -gradle.version=3.5.1 diff --git a/.gradle/buildOutputCleanup/cache.properties.lock b/.gradle/buildOutputCleanup/cache.properties.lock deleted file mode 100644 index 40fdece9..00000000 --- a/.gradle/buildOutputCleanup/cache.properties.lock +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index bbfd110a..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - // 使用 IntelliSense 了解相关属性。 - // 悬停以查看现有属性的描述。 - // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Flutter", - "request": "launch", - "type": "dart" - } - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 9a7349a6..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "editor.fontSize": 14, - -} \ No newline at end of file diff --git a/README-en.md b/README-en.md index 8d12ec7a..e6a91cfe 100644 --- a/README-en.md +++ b/README-en.md @@ -9,7 +9,7 @@ Android download URL: -<img src="https://img.alicdn.com/tfs/TB180.kOhYaK1RjSZFnXXa80pXa-442-420.png" width="200px"> +<img src="https://img.alicdn.com/tfs/TB1jGgfQ7voK1RjSZFNXXcxMVXa-438-426.png" width="200px"> Iphone download URL: No diff --git a/README.md b/README.md index 5568e6f8..6ec8fa68 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,12 @@ Language: [English](https://github.com/alibaba/flutter-go/blob/master/README-en. [<< Flutter Go 开发规范第一版 >>](https://github.com/alibaba/flutter-go/blob/develop/Flutter_Go%20%E4%BB%A3%E7%A0%81%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83.md) +## The Flutter-Go Roadmap(路线图) for 2019 +> 考虑到 Flutter 未来的变化和策略的可变性, roadmap 不排除有一定调整,但总体不会变化太大。 + +<img src="https://img.alicdn.com/tfs/TB19UahQQzoK1RjSZFlXXai4VXa-1500-1106.png" width="600px"> + + ## Release安装包下载地址 android下载地址: @@ -52,7 +58,7 @@ flutter优点主要包括: #### Flutter Go 的优势 -- 详解常用widget多达 **140+** 个 +- 详解常用 widget 多达 **140+** 个 - 配套 Demo 详解 widget 常规用法 - 集中整合 widget 案例,一个 APP 搞定所有常用 widget 的用法 - 持续迭代 ‘追新’ 官方版本 @@ -98,33 +104,3 @@ flutter优点主要包括: Powered by [阿里拍卖前端团队](https://github.com/alibaba-paimai-frontend)<img src="https://img.alicdn.com/tfs/TB1foEhAMHqK1RjSZJnXXbNLpXa-166-166.png" width=20 height=20> - ---- - -## 加个广告:团队招聘 - - ### 🔥《阿里巴巴集团春季校园招聘》已经启动。 - -- 团队获取此消息后第一时间,赶紧通知,各位刚走出校园的千里马,走进阿里的机会来了!!! - - 基本要求如下: - - - 招收 2019年11月-2020年10月 毕业的同学 - - 本次校招行动共执行四周,到 4月12日结束 - -#### 🔔强调一下这次是校招哦!!!如果你有意向,又符合 2019年11月-2020年10月 的应届毕业生条件; - -- 不符合,也没关系,可以推荐优秀的学弟,学妹;增进一下“纯洁”的同学感情 👫😎。 - -#### 请移步往下,关注我们《阿里拍卖团队》 的招聘信息。 - -<img src="https://img.alicdn.com/tfs/TB1mJ5tL7PoK1RjSZKbXXX1IXXa-748-879.png" width=500> - -<img src="https://img.alicdn.com/tfs/TB1PhOrLYrpK1RjSZTEXXcWAVXa-748-794.png" width=500> - -<img src="https://img.alicdn.com/tfs/TB1FXOlLYPpK1RjSZFFXXa5PpXa-748-440.png" width=500> - -#### 最重要的部分来了,手机扫描下面二维码,即可进入简历投递系统 - -<img src="https://img.alicdn.com/tfs/TB1POOuL7PoK1RjSZKbXXX1IXXa-169-166.jpg" width=200> - diff --git a/android/.gitignore b/android/.gitignore deleted file mode 100644 index 65b7315a..00000000 --- a/android/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -*.iml -*.class -.gradle -/local.properties -/.idea/workspace.xml -/.idea/libraries -.DS_Store -/build -/captures -GeneratedPluginRegistrant.java diff --git a/android/.project b/android/.project deleted file mode 100644 index 3964dd3f..00000000 --- a/android/.project +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>android</name> - <comment>Project android created by Buildship.</comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.buildship.core.gradleprojectbuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.buildship.core.gradleprojectnature</nature> - </natures> -</projectDescription> diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs deleted file mode 100644 index e8895216..00000000 --- a/android/.settings/org.eclipse.buildship.core.prefs +++ /dev/null @@ -1,2 +0,0 @@ -connection.project.dir= -eclipse.preferences.version=1 diff --git a/android/app/.classpath b/android/app/.classpath deleted file mode 100644 index eb19361b..00000000 --- a/android/app/.classpath +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/> - <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/> - <classpathentry kind="output" path="bin/default"/> -</classpath> diff --git a/android/app/.project b/android/app/.project deleted file mode 100644 index ac485d7c..00000000 --- a/android/app/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>app</name> - <comment>Project app created by Buildship.</comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.buildship.core.gradleprojectbuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.buildship.core.gradleprojectnature</nature> - </natures> -</projectDescription> diff --git a/android/app/.settings/org.eclipse.buildship.core.prefs b/android/app/.settings/org.eclipse.buildship.core.prefs deleted file mode 100644 index b1886adb..00000000 --- a/android/app/.settings/org.eclipse.buildship.core.prefs +++ /dev/null @@ -1,2 +0,0 @@ -connection.project.dir=.. -eclipse.preferences.version=1 diff --git a/android/app/bin/build.gradle b/android/app/bin/build.gradle deleted file mode 100644 index 4b2420a5..00000000 --- a/android/app/bin/build.gradle +++ /dev/null @@ -1,61 +0,0 @@ -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -apply plugin: 'com.android.application' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - -android { - compileSdkVersion 27 - - lintOptions { - disable 'InvalidPackage' - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.flutterrookiebook" - minSdkVersion 16 - targetSdkVersion 27 - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies { - testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' -} diff --git a/android/app/bin/src/main/AndroidManifest.xml b/android/app/bin/src/main/AndroidManifest.xml deleted file mode 100644 index 2347843c..00000000 --- a/android/app/bin/src/main/AndroidManifest.xml +++ /dev/null @@ -1,39 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.example.fluttergo"> - - <!-- The INTERNET permission is required for development. Specifically, - flutter needs it to communicate with the running application - to allow setting breakpoints, to provide hot reload, etc. - --> - <uses-permission android:name="android.permission.INTERNET"/> - - <!-- io.flutter.app.FlutterApplication is an android.app.Application that - calls FlutterMain.startInitialization(this); in its onCreate method. - In most cases you can leave this as-is, but you if you want to provide - additional functionality it is fine to subclass or reimplement - FlutterApplication and put your custom class here. --> - <application - android:name="io.flutter.app.FlutterApplication" - android:label="flutter_go" - android:icon="@mipmap/ic_launcher"> - <activity - android:name=".MainActivity" - android:launchMode="singleTop" - android:theme="@style/LaunchTheme" - android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density" - android:hardwareAccelerated="true" - android:windowSoftInputMode="adjustResize"> - <!-- This keeps the window background of the activity showing - until Flutter renders its first frame. It can be removed if - there is no splash screen (such as the default splash screen - defined in @style/LaunchTheme). --> - <meta-data - android:name="io.flutter.app.android.SplashScreenUntilFirstFrame" - android:value="true" /> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - </activity> - </application> -</manifest> diff --git a/android/app/bin/src/main/res/drawable/launch_background.xml b/android/app/bin/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 304732f8..00000000 --- a/android/app/bin/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Modify this file to customize your launch splash screen --> -<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:drawable="@android:color/white" /> - - <!-- You can insert your own image assets here --> - <!-- <item> - <bitmap - android:gravity="center" - android:src="@mipmap/launch_image" /> - </item> --> -</layer-list> diff --git a/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db77bb4b..00000000 Binary files a/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 17987b79..00000000 Binary files a/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 09d43914..00000000 Binary files a/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d5f1c8d3..00000000 Binary files a/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4d6372ee..00000000 Binary files a/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/android/app/bin/src/main/res/values/styles.xml b/android/app/bin/src/main/res/values/styles.xml deleted file mode 100644 index 00fa4417..00000000 --- a/android/app/bin/src/main/res/values/styles.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar"> - <!-- Show a splash screen on the activity. Automatically removed when - Flutter draws its first frame --> - <item name="android:windowBackground">@drawable/launch_background</item> - </style> -</resources> diff --git a/android/app/build.gradle b/android/app/build.gradle index d3038cdf..603b4502 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -22,11 +22,16 @@ if (flutterVersionName == null) { } apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { compileSdkVersion 27 + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + lintOptions { disable 'InvalidPackage' } @@ -55,7 +60,22 @@ flutter { } dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + //firebase + implementation 'com.google.firebase:firebase-core:16.0.8' + //Crashlytics SDK + implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9' + // 性能监控 + ///implementation 'com.google.firebase:firebase-perf:16.2.3' + // 登陆 + ////implementation 'com.google.firebase:firebase-auth:16.0.3' } +//firebase +apply plugin: 'com.google.gms.google-services' +//Crashlytics SDK +apply plugin: 'io.fabric' +// 性能监控 +///apply plugin: 'com.google.firebase.firebase-perf' \ No newline at end of file diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 00000000..5da02053 --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,47 @@ +{ + "project_info": { + "project_number": "1002138254102", + //"firebase_url": "https://ali-flutter-go.firebaseio.com", + "project_id": "ali-flutter-go", + "storage_bucket": "ali-flutter-go.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:1002138254102:android:00e8533fa0274183", + "android_client_info": { + "package_name": "com.ali.fluttergo" + } + }, + "oauth_client": [ + { + "client_id": "1002138254102-2r4hs0mm1avp4p1qielecihnbugan693.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDFdL3GSwVDfejIq44pyOpiEBZ32dTGMVA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "1002138254102-2r4hs0mm1avp4p1qielecihnbugan693.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "1002138254102-qo9jp8c3lc69p9lclu0rtp5dmt1kulv7.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.ali.fluttergo" + } + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..6c60789b --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.ali.fluttergo"> + <!-- Flutter needs it to communicate with the running application + to allow setting breakpoints, to provide hot reload, etc. + --> + <uses-permission android:name="android.permission.INTERNET"/> +</manifest> diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 94a4ff63..97b1e4ee 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,28 +1,25 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ali.fluttergo"> - <!-- The INTERNET permission is required for development. Specifically, - flutter needs it to communicate with the running application - to allow setting breakpoints, to provide hot reload, etc. - --> - <uses-permission android:name="android.permission.INTERNET"/> - <uses-permission android:name="android.permission.MODE_WORLD_READABLE"/> - <uses-permission android:name="android.permission.MODE_WORLD_WRITEABLE"/> - <!-- io.flutter.app.FlutterApplication is an android.app.Application that calls FlutterMain.startInitialization(this); in its onCreate method. In most cases you can leave this as-is, but you if you want to provide additional functionality it is fine to subclass or reimplement FlutterApplication and put your custom class here. --> + + <uses-permission android:name="android.permission.INTERNET"/> + <uses-permission android:name="android.permission.MODE_WORLD_READABLE"/> + <uses-permission android:name="android.permission.MODE_WORLD_WRITEABLE"/> + <application android:name="io.flutter.app.FlutterApplication" - android:label="flutter go" - android:icon="@drawable/flutter_go_logo"> + android:label="fluttergo" + android:icon="@mipmap/ic_launcher_logo"> <activity android:name=".MainActivity" android:launchMode="singleTop" android:theme="@style/LaunchTheme" - android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density" + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> <!-- This keeps the window background of the activity showing diff --git a/android/app/src/main/java/com/ali/fluttergo/MainActivity.java b/android/app/src/main/java/com/ali/fluttergo/MainActivity.java deleted file mode 100644 index 917d9ea4..00000000 --- a/android/app/src/main/java/com/ali/fluttergo/MainActivity.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.ali.fluttergo; - - -import android.os.Bundle; -import io.flutter.app.FlutterActivity; -import io.flutter.plugins.GeneratedPluginRegistrant; - -public class MainActivity extends FlutterActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - -// setContentView(R.layout.activity_main); - GeneratedPluginRegistrant.registerWith(this); - } -} diff --git a/android/app/src/main/kotlin/fluttergo/ali/com/fluttergo/MainActivity.kt b/android/app/src/main/kotlin/fluttergo/ali/com/fluttergo/MainActivity.kt new file mode 100644 index 00000000..c34fe923 --- /dev/null +++ b/android/app/src/main/kotlin/fluttergo/ali/com/fluttergo/MainActivity.kt @@ -0,0 +1,13 @@ +package com.ali.fluttergo + +import android.os.Bundle + +import io.flutter.app.FlutterActivity +import io.flutter.plugins.GeneratedPluginRegistrant + +class MainActivity: FlutterActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + GeneratedPluginRegistrant.registerWith(this) + } +} diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_logo.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_logo.png new file mode 100644 index 00000000..bb7bd02c Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_logo.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_logo.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_logo.png new file mode 100644 index 00000000..bb7bd02c Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_logo.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_logo.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_logo.png new file mode 100644 index 00000000..bb7bd02c Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_logo.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_logo.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_logo.png new file mode 100644 index 00000000..bb7bd02c Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_logo.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_logo.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_logo.png new file mode 100644 index 00000000..bb7bd02c Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_logo.png differ diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..6c60789b --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.ali.fluttergo"> + <!-- Flutter needs it to communicate with the running application + to allow setting breakpoints, to provide hot reload, etc. + --> + <uses-permission android:name="android.permission.INTERNET"/> +</manifest> diff --git a/android/build.gradle b/android/build.gradle index e81b1a1d..906cf5c2 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,11 +1,23 @@ buildscript { + ext.kotlin_version = '1.2.71' repositories { google() jcenter() + //Crashlytics SDK + maven { + url 'https://maven.fabric.io/public' + } } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' + //firebase + classpath 'com.google.gms:google-services:4.2.0' + //Crashlytics SDK + classpath 'io.fabric.tools:gradle:1.26.1' + // 性能监控 + ///classpath 'com.google.firebase:firebase-plugins:1.1.5' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -13,6 +25,10 @@ allprojects { repositories { google() jcenter() + //Crashlytics SDK + maven { + url 'https://maven.google.com/' + } } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 03824124..c2bcac0e 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 8c3f0e89..f458f3aa 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -29,6 +29,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 94722E5C22511D3600F63900 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 94722E5B22511D3600F63900 /* GoogleService-Info.plist */; }; 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; @@ -78,6 +79,7 @@ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; + 94722E5B22511D3600F63900 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "../../../../../../../Downloads/GoogleService-Info.plist"; sourceTree = "<group>"; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; }; @@ -87,6 +89,8 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; + A9941E6EA19A9CEF6B117A70 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; }; + CBA6E34746642008D95A119D /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; }; DDA792F029EDD7A11295D192 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -129,6 +133,8 @@ 0C172CA58CDB230D5DA80034 /* Pods */ = { isa = PBXGroup; children = ( + CBA6E34746642008D95A119D /* Pods-Runner.debug.xcconfig */, + A9941E6EA19A9CEF6B117A70 /* Pods-Runner.release.xcconfig */, ); name = Pods; sourceTree = "<group>"; @@ -178,6 +184,7 @@ 97C146F01CF9000F007C117D /* Runner */ = { isa = PBXGroup; children = ( + 94722E5B22511D3600F63900 /* GoogleService-Info.plist */, 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, 97C146FA1CF9000F007C117D /* Main.storyboard */, @@ -282,6 +289,7 @@ 0828E49B220692B500A59437 /* iPad Landscape@2x.png in Resources */, 0828E495220692B500A59437 /* iPhone Portrait-Retina 4.png in Resources */, 0828E498220692B500A59437 /* iPhone XS Max Portrait.png in Resources */, + 94722E5C22511D3600F63900 /* GoogleService-Info.plist in Resources */, 0828E496220692B500A59437 /* iPad Portrait.png in Resources */, 0828E49C220692B500A59437 /* iPhone Landscape-Retina HD 5.5.png in Resources */, ); @@ -309,15 +317,11 @@ buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); @@ -345,21 +349,17 @@ buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", "${PODS_ROOT}/../.symlinks/flutter/ios/Flutter.framework", ); name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - ); outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -522,7 +522,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.ali.flutterRookieBook; + PRODUCT_BUNDLE_IDENTIFIER = com.ali.fluttergo; PRODUCT_NAME = "$(TARGET_NAME)"; VERSIONING_SYSTEM = "apple-generic"; }; @@ -547,7 +547,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - PRODUCT_BUNDLE_IDENTIFIER = com.ali.flutterRookieBook; + PRODUCT_BUNDLE_IDENTIFIER = com.ali.fluttergo; PRODUCT_NAME = "$(TARGET_NAME)"; VERSIONING_SYSTEM = "apple-generic"; }; diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m index 7feb3d13..7474c39b 100644 --- a/ios/Runner/AppDelegate.m +++ b/ios/Runner/AppDelegate.m @@ -1,10 +1,15 @@ #include "AppDelegate.h" #include "GeneratedPluginRegistrant.h" +@import Firebase;//增加 firebase 支持 + @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + + [FIRApp configure];//增加 firebase 支持 + [GeneratedPluginRegistrant registerWithRegistry:self]; // Override point for customization after application launch. [NSThread sleepForTimeInterval:2]; diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..71cc41e3 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 00000000..9da19eac Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 00000000..9da19eac Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 00000000..9da19eac Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist new file mode 100644 index 00000000..26e23345 --- /dev/null +++ b/ios/Runner/GoogleService-Info.plist @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CLIENT_ID</key> + <string>1002138254102-qo9jp8c3lc69p9lclu0rtp5dmt1kulv7.apps.googleusercontent.com</string> + <key>REVERSED_CLIENT_ID</key> + <string>com.googleusercontent.apps.1002138254102-qo9jp8c3lc69p9lclu0rtp5dmt1kulv7</string> + <key>API_KEY</key> + <string>AIzaSyD01jR14RevQibnzkg4tBUbFzc7UjKESFQ</string> + <key>GCM_SENDER_ID</key> + <string>1002138254102</string> + <key>PLIST_VERSION</key> + <string>1</string> + <key>BUNDLE_ID</key> + <string>com.ali.fluttergo</string> + <key>PROJECT_ID</key> + <string>ali-flutter-go</string> + <key>STORAGE_BUCKET</key> + <string>ali-flutter-go.appspot.com</string> + <key>IS_ADS_ENABLED</key> + <false></false> + <key>IS_ANALYTICS_ENABLED</key> + <false></false> + <key>IS_APPINVITE_ENABLED</key> + <true></true> + <key>IS_GCM_ENABLED</key> + <true></true> + <key>IS_SIGNIN_ENABLED</key> + <true></true> + <key>GOOGLE_APP_ID</key> + <string>1:1002138254102:ios:00e8533fa0274183</string> + <key>DATABASE_URL</key> + <string>https://ali-flutter-go.firebaseio.com</string> +</dict> +</plist> \ No newline at end of file diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..7335fdf9 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 8d268d7b..f83e2133 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,6 +8,7 @@ import 'package:flutter_go/utils/provider.dart'; import 'package:flutter_go/utils/shared_preferences.dart'; import 'package:flutter_go/views/first_page/home.dart'; import 'package:flutter_go/model/search_history.dart'; +import 'package:flutter_go/utils/analytics.dart' as Analytics; //import 'views/welcome_page/index.dart'; const int ThemeColor = 0xFFC91B3A; @@ -53,6 +54,7 @@ class MyApp extends StatelessWidget { body: showWelcomePage() ), onGenerateRoute: Application.router.generator, + navigatorObservers: <NavigatorObserver>[Analytics.observer], ); } } diff --git a/lib/routers/routers.dart b/lib/routers/routers.dart index 4e589b61..7715b2bf 100644 --- a/lib/routers/routers.dart +++ b/lib/routers/routers.dart @@ -1,6 +1,7 @@ import 'package:fluro/fluro.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_go/utils/analytics.dart' show analytics; import '../widgets/index.dart'; import './router_handler.dart'; @@ -26,6 +27,9 @@ class Routes { widgetDemosList.forEach((demo) { Handler handler = new Handler( handlerFunc: (BuildContext context, Map<String, List<String>> params) { + print('组件路由params=$params widgetsItem=${demo.routerName}'); + analytics.logEvent( + name: 'component', parameters: {'name': demo.routerName }); return demo.buildRouter(context); }); router.define('${demo.routerName}', handler: handler); diff --git a/lib/utils/analytics.dart b/lib/utils/analytics.dart new file mode 100644 index 00000000..2a7fcf6f --- /dev/null +++ b/lib/utils/analytics.dart @@ -0,0 +1,7 @@ +import 'package:firebase_analytics/firebase_analytics.dart'; +import 'package:firebase_analytics/observer.dart'; + +//统计 +FirebaseAnalytics analytics = FirebaseAnalytics(); +FirebaseAnalyticsObserver observer = + FirebaseAnalyticsObserver(analytics: analytics); diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 00000000..0ce24601 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,273 @@ +# Generated by pub +# See https://www.dartlang.org/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.1" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + city_pickers: + dependency: "direct main" + description: + name: city_pickers + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.16" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.14.11" + cookie_jar: + dependency: transitive + description: + name: cookie_jar + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.8" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" + dio: + dependency: "direct main" + description: + name: dio + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.17" + event_bus: + dependency: "direct main" + description: + name: event_bus + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + firebase_analytics: + dependency: "direct main" + description: + name: firebase_analytics + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1+2" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.4" + fluro: + dependency: "direct main" + description: + name: fluro + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_markdown: + dependency: "direct main" + description: + name: flutter_markdown + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_webview_plugin: + dependency: "direct main" + description: + name: flutter_webview_plugin + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.3" + image_picker: + dependency: "direct main" + description: + name: image_picker + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.12+1" + intl: + dependency: "direct main" + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.7" + lpinyin: + dependency: transitive + description: + name: lpinyin + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.7" + markdown: + dependency: transitive + description: + name: markdown + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.5" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.6" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.2" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.0" + quiver: + dependency: transitive + description: + name: quiver + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.5" + sqflite: + dependency: "direct main" + description: + name: sqflite + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.2+1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.3" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + synchronized: + dependency: transitive + description: + name: synchronized + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.4" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.6" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.0+3" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" +sdks: + dart: ">=2.2.0 <3.0.0" + flutter: ">=0.5.6 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 3a43950c..b97443ed 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -7,7 +7,7 @@ description: flutter_go # Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # Read more about versioning at semver.org. -version: 0.0.5 +#version: 0.0.5firebase_auth environment: sdk: ">=2.0.0-dev.68.0 <3.0.0" @@ -32,6 +32,9 @@ dependencies: # 日期格式化 intl: 0.15.7 city_pickers: ^0.1.0 + firebase_analytics: ^2.0.2+1 + #firebase_auth: ^0.8.3 #auth + firebase_core: ^0.3.0 # add dependency for Firebase Core dev_dependencies: flutter_test: @@ -48,151 +51,151 @@ flutter: # the material Icons class. uses-material-design: true assets: - - lib/widgets/elements/Form/Input/TextField/text_field_demo.dart - - lib/widgets/elements/Form/CheckBox/Checkbox/demo.dart - - lib/widgets/components/Bar/AppBar/demo.dart - - lib/widgets/components/Bar/BottomAppBar/demo.dart - - lib/widgets/components/Bar/ButtonBar/demo.dart - - lib/widgets/components/Bar/FlexibleSpaceBar/demo.dart - - lib/widgets/components/Bar/SliverAppBar/demo.dart - - lib/widgets/components/Bar/SnackBar/demo.dart - - lib/widgets/components/Bar/SnackBarAction/demo.dart - - lib/widgets/components/Bar/TabBar/demo.dart - - lib/widgets/components/Card/Card/demo.dart - - lib/widgets/components/Chip/Chip/demo.dart - - lib/widgets/components/Chip/ChipTheme/demo.dart - - lib/widgets/components/Chip/ChipThemeData/demo.dart - - lib/widgets/components/Chip/ChoiceChip/demo.dart - - lib/widgets/components/Chip/FilterChip/demo.dart - - lib/widgets/components/Chip/InputChip/demo.dart - - lib/widgets/components/Chip/RawChip/demo.dart - - lib/widgets/components/Dialog/AboutDialog/demo.dart - - lib/widgets/components/Dialog/AlertDialog/demo.dart - - lib/widgets/components/Dialog/Dialog/demo.dart - - lib/widgets/components/Dialog/SimpleDialog/demo.dart - - lib/widgets/components/Grid/GridTile/demo.dart - - lib/widgets/components/Grid/GridTileBar/demo.dart - - lib/widgets/components/Grid/GridView/demo.dart - - lib/widgets/components/Grid/GridPaper/demo.dart - - lib/widgets/components/Grid/SliverGrid/demo.dart - - lib/widgets/components/List/AnimatedList/demo.dart - - lib/widgets/components/List/ListBody/demo.dart - - lib/widgets/components/List/ListView/demo.dart - - lib/widgets/components/Menu/CheckedPopupMenuItem/demo.dart - - lib/widgets/components/Menu/DropdownMenuItem/demo.dart - - lib/widgets/components/Menu/PopupMenuButton/demo.dart - - lib/widgets/components/Menu/PopupMenuDivider/demo.dart - - lib/widgets/components/Navigation/BottomNavigationBar/demo.dart - - lib/widgets/components/Navigation/BottomNavigationBarItem/demo.dart - - lib/widgets/components/Panel/ExpansionPanel/demo.dart - - lib/widgets/components/Panel/ExpansionPanelList/demo.dart - - lib/widgets/components/Pick/DayPicker/demo.dart - - lib/widgets/components/Pick/MonthPicker/demo.dart - - lib/widgets/components/Pick/ShowdatePicker/demo.dart - - lib/widgets/components/Pick/YearPicker/demo.dart - - lib/widgets/components/Progress/CircularProgressIndicator/demo.dart - - lib/widgets/components/Progress/LinearProgressIndicator/demo.dart - - lib/widgets/components/Progress/RefreshProgressIndicator/demo.dart - - lib/widgets/components/Scaffold/Scaffold/demo.dart - - lib/widgets/components/Scaffold/ScaffoldState/demo.dart - - lib/widgets/components/Scroll/BoxScrollView/demo.dart - - lib/widgets/components/Scroll/CustomScrollView/demo.dart - - lib/widgets/components/Scroll/NestedScrollView/demo.dart - - lib/widgets/components/Scroll/Scrollable/demo.dart - - lib/widgets/components/Scroll/ScrollbarPainter/demo.dart - - lib/widgets/components/Scroll/ScrollMetrics/demo.dart - - lib/widgets/components/Scroll/ScrollPhysics/demo.dart - - lib/widgets/components/Scroll/ScrollView/demo.dart - - lib/widgets/components/Tab/Tab/demo.dart - - lib/widgets/elements/Form/Button/DropdownButton/demo.dart - - lib/widgets/elements/Form/Button/FlatButton/demo.dart - - lib/widgets/elements/Form/Button/FloatingActionButton/demo.dart - - lib/widgets/elements/Form/Button/IconButton/demo.dart - - lib/widgets/elements/Form/Button/OutlineButton/demo.dart - - lib/widgets/elements/Form/Button/PopupMenuButton/demo.dart - - lib/widgets/elements/Form/Button/RaisedButton/demo.dart - - lib/widgets/elements/Form/Button/RawMaterialButton/demo.dart - - lib/widgets/elements/Form/CheckBox/Checkbox/demo.dart - - lib/widgets/elements/Form/CheckBox/CheckboxListTile/demo.dart - - lib/widgets/elements/Form/Radio/Radio/demo.dart - - lib/widgets/elements/Form/Radio/RadioListTile/demo.dart - - lib/widgets/elements/Form/Slider/Slider/demo.dart - - lib/widgets/elements/Form/Slider/SliderTheme/demo.dart - - lib/widgets/elements/Form/Slider/SliderThemeData/demo.dart - - lib/widgets/elements/Form/Switch/AnimatedSwitcher/demo.dart - - lib/widgets/elements/Form/Switch/Switch/demo.dart - - lib/widgets/elements/Form/Switch/SwitchListTile/demo.dart - - lib/widgets/elements/Frame/Align/Align/demo.dart - - lib/widgets/elements/Frame/Box/ConstrainedBox/demo.dart - - lib/widgets/elements/Frame/Box/DecoratedBox/demo.dart - - lib/widgets/elements/Frame/Box/FittedBox/demo.dart - - lib/widgets/elements/Frame/Box/LimitedBox/demo.dart - - lib/widgets/elements/Frame/Box/OverflowBox/demo.dart - - lib/widgets/elements/Frame/Box/RotatedBox/demo.dart - - lib/widgets/elements/Frame/Box/SizeBox/demo.dart - - lib/widgets/elements/Frame/Box/SizedOverflowBox/demo.dart - - lib/widgets/elements/Form/Text/Text/demo.dart - - lib/widgets/elements/Form/Text/RichText/index.dart - - lib/widgets/elements/Frame/Box/UnconstrainedBox/demo.dart - - lib/widgets/elements/Frame/Expanded/Expanded/expanded_demo.dart - - lib/widgets/elements/Frame/Layout/Center/demo.dart - - lib/widgets/elements/Frame/Layout/Column/demo.dart - - lib/widgets/elements/Frame/Layout/Container/demo.dart - - lib/widgets/elements/Frame/Layout/Row/demo.dart - - lib/widgets/elements/Frame/Spacing/AnimatedPadding/animatedPadding_demo.dart - - lib/widgets/elements/Frame/Spacing/Padding/padding_demo.dart - - lib/widgets/elements/Frame/Spacing/SliverPadding/sliverpadding_demo.dart - - lib/widgets/elements/Frame/Stack/IndexedStack/demo.dart - - lib/widgets/elements/Frame/Stack/Stack/demo.dart - - lib/widgets/elements/Frame/Table/Table/table_demo.dart - - lib/widgets/elements/Media/Icon/Icon/demo.dart - - lib/widgets/elements/Media/Icon/IconData/demo.dart - - lib/widgets/elements/Media/Icon/IconTheme/demo.dart - - lib/widgets/elements/Media/Icon/IconThemeData/demo.dart - - lib/widgets/elements/Media/Icon/ImageIcon/demo.dart - - lib/widgets/elements/Media/Image/AssetImage/assetImage_demo.dart - - lib/widgets/elements/Media/Image/DecorationImage/decorationImage_demo.dart - - lib/widgets/elements/Media/Image/DecorationImagePainter/decoration_image_painter_demo.dart - - lib/widgets/elements/Media/Image/ExactAssetImage/exact_asset_image_demo.dart - - lib/widgets/elements/Media/Image/FadeInImage/fade_in_image_demo.dart - - lib/widgets/elements/Media/Image/FileImage/file_image_demo.dart - - lib/widgets/elements/Media/Image/Image/demo.dart - - lib/widgets/elements/Media/Image/MemoryImage/memory_image_demo.dart - - lib/widgets/elements/Media/Image/NetworkImage/network_image_demo.dart - - lib/widgets/elements/Media/Image/paintImage/paint_image_demo.dart - - lib/widgets/elements/Media/Image/precacheImage/precache_image_demo.dart - - lib/widgets/elements/Media/Image/RawImage/raw_image_demo.dart - - lib/widgets/elements/Media/Canvas/Canvas/demo.dart - - lib/widgets/elements/Media/Canvas/CircleProgressBarPainter/demo.dart - - lib/widgets/elements/Media/Canvas/PainterPath/demo.dart - - lib/widgets/elements/Media/Canvas/PainterSketch/demo.dart - - lib/widgets/themes/Material/MaterialApp/demo.dart - - lib/widgets/themes/Material/MaterialButton/demo.dart - - lib/widgets/themes/Material/MaterialColor/demo.dart - - lib/widgets/themes/Material/MaterialPageRoute/demo.dart - - lib/widgets/themes/Material/MergeableMaterialItem/demo.dart - - lib/widgets/themes/Cupertino/CupertinoApp/demo.dart - - lib/widgets/themes/Cupertino/CupertinoButton/demo.dart - - lib/widgets/themes/Cupertino/CupertinoColors/demo.dart - - lib/widgets/themes/Cupertino/CupertinoIcons/demo.dart - - lib/widgets/themes/Cupertino/CupertinoNavigationBar/demo.dart - - lib/widgets/themes/Cupertino/CupertinoPageRoute/demo.dart - - lib/widgets/themes/Cupertino/CupertinoPageScaffold/demo.dart - - lib/widgets/themes/Cupertino/CupertinoPicker/demo.dart - - lib/widgets/themes/Cupertino/CupertinoPopupSurface/demo.dart - - lib/widgets/themes/Cupertino/CupertinoScrollbar/demo.dart - - lib/widgets/themes/Cupertino/CupertinoSegmentedControl/demo.dart - - lib/widgets/elements/Form/Switch/Switch/demo.dart - - lib/widgets/themes/Cupertino/CupertinoSlider/demo.dart - - lib/widgets/themes/Cupertino/CupertinoSliverNavigationBar/demo.dart - - lib/widgets/themes/Cupertino/CupertinoSwitch/demo.dart - - lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart - - lib/widgets/themes/Cupertino/CupertinoTabScaffold/demo.dart - - lib/widgets/themes/Cupertino/CupertinoTabView/demo.dart - - lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart - - assets/app.db - - assets/images/ - - assets/fonts/ + - lib/widgets/elements/Form/Input/TextField/text_field_demo.dart + - lib/widgets/elements/Form/CheckBox/Checkbox/demo.dart + - lib/widgets/components/Bar/AppBar/demo.dart + - lib/widgets/components/Bar/BottomAppBar/demo.dart + - lib/widgets/components/Bar/ButtonBar/demo.dart + - lib/widgets/components/Bar/FlexibleSpaceBar/demo.dart + - lib/widgets/components/Bar/SliverAppBar/demo.dart + - lib/widgets/components/Bar/SnackBar/demo.dart + - lib/widgets/components/Bar/SnackBarAction/demo.dart + - lib/widgets/components/Bar/TabBar/demo.dart + - lib/widgets/components/Card/Card/demo.dart + - lib/widgets/components/Chip/Chip/demo.dart + - lib/widgets/components/Chip/ChipTheme/demo.dart + - lib/widgets/components/Chip/ChipThemeData/demo.dart + - lib/widgets/components/Chip/ChoiceChip/demo.dart + - lib/widgets/components/Chip/FilterChip/demo.dart + - lib/widgets/components/Chip/InputChip/demo.dart + - lib/widgets/components/Chip/RawChip/demo.dart + - lib/widgets/components/Dialog/AboutDialog/demo.dart + - lib/widgets/components/Dialog/AlertDialog/demo.dart + - lib/widgets/components/Dialog/Dialog/demo.dart + - lib/widgets/components/Dialog/SimpleDialog/demo.dart + - lib/widgets/components/Grid/GridTile/demo.dart + - lib/widgets/components/Grid/GridTileBar/demo.dart + - lib/widgets/components/Grid/GridView/demo.dart + - lib/widgets/components/Grid/GridPaper/demo.dart + - lib/widgets/components/Grid/SliverGrid/demo.dart + - lib/widgets/components/List/AnimatedList/demo.dart + - lib/widgets/components/List/ListBody/demo.dart + - lib/widgets/components/List/ListView/demo.dart + - lib/widgets/components/Menu/CheckedPopupMenuItem/demo.dart + - lib/widgets/components/Menu/DropdownMenuItem/demo.dart + - lib/widgets/components/Menu/PopupMenuButton/demo.dart + - lib/widgets/components/Menu/PopupMenuDivider/demo.dart + - lib/widgets/components/Navigation/BottomNavigationBar/demo.dart + - lib/widgets/components/Navigation/BottomNavigationBarItem/demo.dart + - lib/widgets/components/Panel/ExpansionPanel/demo.dart + - lib/widgets/components/Panel/ExpansionPanelList/demo.dart + - lib/widgets/components/Pick/DayPicker/demo.dart + - lib/widgets/components/Pick/MonthPicker/demo.dart + - lib/widgets/components/Pick/ShowdatePicker/demo.dart + - lib/widgets/components/Pick/YearPicker/demo.dart + - lib/widgets/components/Progress/CircularProgressIndicator/demo.dart + - lib/widgets/components/Progress/LinearProgressIndicator/demo.dart + - lib/widgets/components/Progress/RefreshProgressIndicator/demo.dart + - lib/widgets/components/Scaffold/Scaffold/demo.dart + - lib/widgets/components/Scaffold/ScaffoldState/demo.dart + - lib/widgets/components/Scroll/BoxScrollView/demo.dart + - lib/widgets/components/Scroll/CustomScrollView/demo.dart + - lib/widgets/components/Scroll/NestedScrollView/demo.dart + - lib/widgets/components/Scroll/Scrollable/demo.dart + - lib/widgets/components/Scroll/ScrollbarPainter/demo.dart + - lib/widgets/components/Scroll/ScrollMetrics/demo.dart + - lib/widgets/components/Scroll/ScrollPhysics/demo.dart + - lib/widgets/components/Scroll/ScrollView/demo.dart + - lib/widgets/components/Tab/Tab/demo.dart + - lib/widgets/elements/Form/Button/DropdownButton/demo.dart + - lib/widgets/elements/Form/Button/FlatButton/demo.dart + - lib/widgets/elements/Form/Button/FloatingActionButton/demo.dart + - lib/widgets/elements/Form/Button/IconButton/demo.dart + - lib/widgets/elements/Form/Button/OutlineButton/demo.dart + - lib/widgets/elements/Form/Button/PopupMenuButton/demo.dart + - lib/widgets/elements/Form/Button/RaisedButton/demo.dart + - lib/widgets/elements/Form/Button/RawMaterialButton/demo.dart + - lib/widgets/elements/Form/CheckBox/Checkbox/demo.dart + - lib/widgets/elements/Form/CheckBox/CheckboxListTile/demo.dart + - lib/widgets/elements/Form/Radio/Radio/demo.dart + - lib/widgets/elements/Form/Radio/RadioListTile/demo.dart + - lib/widgets/elements/Form/Slider/Slider/demo.dart + - lib/widgets/elements/Form/Slider/SliderTheme/demo.dart + - lib/widgets/elements/Form/Slider/SliderThemeData/demo.dart + - lib/widgets/elements/Form/Switch/AnimatedSwitcher/demo.dart + - lib/widgets/elements/Form/Switch/Switch/demo.dart + - lib/widgets/elements/Form/Switch/SwitchListTile/demo.dart + - lib/widgets/elements/Frame/Align/Align/demo.dart + - lib/widgets/elements/Frame/Box/ConstrainedBox/demo.dart + - lib/widgets/elements/Frame/Box/DecoratedBox/demo.dart + - lib/widgets/elements/Frame/Box/FittedBox/demo.dart + - lib/widgets/elements/Frame/Box/LimitedBox/demo.dart + - lib/widgets/elements/Frame/Box/OverflowBox/demo.dart + - lib/widgets/elements/Frame/Box/RotatedBox/demo.dart + - lib/widgets/elements/Frame/Box/SizeBox/demo.dart + - lib/widgets/elements/Frame/Box/SizedOverflowBox/demo.dart + - lib/widgets/elements/Form/Text/Text/demo.dart + - lib/widgets/elements/Form/Text/RichText/index.dart + - lib/widgets/elements/Frame/Box/UnconstrainedBox/demo.dart + - lib/widgets/elements/Frame/Expanded/Expanded/expanded_demo.dart + - lib/widgets/elements/Frame/Layout/Center/demo.dart + - lib/widgets/elements/Frame/Layout/Column/demo.dart + - lib/widgets/elements/Frame/Layout/Container/demo.dart + - lib/widgets/elements/Frame/Layout/Row/demo.dart + - lib/widgets/elements/Frame/Spacing/AnimatedPadding/animatedPadding_demo.dart + - lib/widgets/elements/Frame/Spacing/Padding/padding_demo.dart + - lib/widgets/elements/Frame/Spacing/SliverPadding/sliverpadding_demo.dart + - lib/widgets/elements/Frame/Stack/IndexedStack/demo.dart + - lib/widgets/elements/Frame/Stack/Stack/demo.dart + - lib/widgets/elements/Frame/Table/Table/table_demo.dart + - lib/widgets/elements/Media/Icon/Icon/demo.dart + - lib/widgets/elements/Media/Icon/IconData/demo.dart + - lib/widgets/elements/Media/Icon/IconTheme/demo.dart + - lib/widgets/elements/Media/Icon/IconThemeData/demo.dart + - lib/widgets/elements/Media/Icon/ImageIcon/demo.dart + - lib/widgets/elements/Media/Image/AssetImage/assetImage_demo.dart + - lib/widgets/elements/Media/Image/DecorationImage/decorationImage_demo.dart + - lib/widgets/elements/Media/Image/DecorationImagePainter/decoration_image_painter_demo.dart + - lib/widgets/elements/Media/Image/ExactAssetImage/exact_asset_image_demo.dart + - lib/widgets/elements/Media/Image/FadeInImage/fade_in_image_demo.dart + - lib/widgets/elements/Media/Image/FileImage/file_image_demo.dart + - lib/widgets/elements/Media/Image/Image/demo.dart + - lib/widgets/elements/Media/Image/MemoryImage/memory_image_demo.dart + - lib/widgets/elements/Media/Image/NetworkImage/network_image_demo.dart + - lib/widgets/elements/Media/Image/paintImage/paint_image_demo.dart + - lib/widgets/elements/Media/Image/precacheImage/precache_image_demo.dart + - lib/widgets/elements/Media/Image/RawImage/raw_image_demo.dart + - lib/widgets/elements/Media/Canvas/Canvas/demo.dart + - lib/widgets/elements/Media/Canvas/CircleProgressBarPainter/demo.dart + - lib/widgets/elements/Media/Canvas/PainterPath/demo.dart + - lib/widgets/elements/Media/Canvas/PainterSketch/demo.dart + - lib/widgets/themes/Material/MaterialApp/demo.dart + - lib/widgets/themes/Material/MaterialButton/demo.dart + - lib/widgets/themes/Material/MaterialColor/demo.dart + - lib/widgets/themes/Material/MaterialPageRoute/demo.dart + - lib/widgets/themes/Material/MergeableMaterialItem/demo.dart + - lib/widgets/themes/Cupertino/CupertinoApp/demo.dart + - lib/widgets/themes/Cupertino/CupertinoButton/demo.dart + - lib/widgets/themes/Cupertino/CupertinoColors/demo.dart + - lib/widgets/themes/Cupertino/CupertinoIcons/demo.dart + - lib/widgets/themes/Cupertino/CupertinoNavigationBar/demo.dart + - lib/widgets/themes/Cupertino/CupertinoPageRoute/demo.dart + - lib/widgets/themes/Cupertino/CupertinoPageScaffold/demo.dart + - lib/widgets/themes/Cupertino/CupertinoPicker/demo.dart + - lib/widgets/themes/Cupertino/CupertinoPopupSurface/demo.dart + - lib/widgets/themes/Cupertino/CupertinoScrollbar/demo.dart + - lib/widgets/themes/Cupertino/CupertinoSegmentedControl/demo.dart + - lib/widgets/elements/Form/Switch/Switch/demo.dart + - lib/widgets/themes/Cupertino/CupertinoSlider/demo.dart + - lib/widgets/themes/Cupertino/CupertinoSliverNavigationBar/demo.dart + - lib/widgets/themes/Cupertino/CupertinoSwitch/demo.dart + - lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart + - lib/widgets/themes/Cupertino/CupertinoTabScaffold/demo.dart + - lib/widgets/themes/Cupertino/CupertinoTabView/demo.dart + - lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart + - assets/app.db + - assets/images/ + - assets/fonts/ fonts: - family: FlamanteRoma diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb deleted file mode 100644 index 9e26dfee..00000000 --- a/res/values/strings_en.arb +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file