Skip to content

Commit 2f0b7ee

Browse files
committed
Initial public commit
0 parents  commit 2f0b7ee

File tree

433 files changed

+23541
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

433 files changed

+23541
-0
lines changed

.gitignore

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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

.metadata

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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: 198df796aa80073ef22bdf249e614e2ff33c6895
8+
channel: beta
9+
10+
project_type: app

README.md

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<br />
2+
<p align="center"><a href="https://flutter.gskinner.com"><img src="https://gskinner.com/flutter_showcase/shared/[email protected]?" width="440px"/></a></p>
3+
<br />
4+
5+
[ CHRIS: INSERT WIDE BANNER HERE WITH SHOTS OF ALL PLATFORMS ]
6+
7+
# Flutter Folio
8+
[ CHRIS: ADD LONG_DESC]
9+
[ CHRIS: ADD LINK TO MICROSITE ]
10+
11+
# About gskinner
12+
We exist to build inovative digital experiences for smart clients, and we love how easy Flutter makes that experience. Don't hesitate to stop by our site to learn more about what we do. We'd love to hear from you!
13+
14+
### Installation
15+
16+
If you're new to Flutter the first thing you'll need is to follow the [setup instructions](https://flutter.dev/docs/get-started/install).
17+
18+
Once Flutter is setup, you'll need to switch to the latest `dev` version:
19+
* Run `flutter channel dev`
20+
* Run `flutter upgrade`
21+
22+
If you've never run a desktop build before, you will need to enable it with a one-time command for your current platform:
23+
* `flutter config --enable-macos-desktop`
24+
* `flutter config --enable-windows-desktop`
25+
* `flutter config --enable-linux-desktop`
26+
27+
Once you're on `dev` and desktop is enabled, you're ready to run the app:
28+
* `flutter run -d windows`
29+
* `flutter run -d macos`
30+
* `flutter run -d linux`
31+
* `flutter run -d android`
32+
* `flutter run -d ios`
33+
* `flutter run -d web`
34+
35+
If you re-start your IDE, you should also see a new launch option for your current desktop
36+
37+
### Client Keys
38+
This repo includes a set of Keys for Cloudinary and Firebase that are on the free pricing plans. Depending on traffic, these may reach their limit. If that happens, you will need to to provide your own keys in order to run the app locally, those can be found in `AppKeys.dart`. These limits should refresh each month, so your mileage will vary here.
39+
40+
### License
41+
42+
This application is released under the [MIT license](LICENSE.md). You can use the code for any purpose, including commercial projects.
43+
44+
[![license](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
45+

_marketing/icon-1024.png

27.7 KB
Loading

analysis_options.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
analyzer:
2+
exclude:
3+
- "**/*.g.dart"
4+
- "**/*.freezed.dart"
5+
language:
6+
strict-inference: true
7+
strong-mode:
8+
implicit-casts: false
9+
errors:
10+
missing_required_param: error
11+
linter:
12+
rules:
13+
always-specify-types: true
14+
always_declare_return_types: true
15+
prefer-relative-imports: true
16+
avoid_types_on_closure_parameters: false

android/.gitignore

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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

android/app/build.gradle

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
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+
apply plugin: 'com.google.gms.google-services'
28+
29+
android {
30+
compileSdkVersion 29
31+
32+
sourceSets {
33+
main.java.srcDirs += 'src/main/kotlin'
34+
}
35+
36+
lintOptions {
37+
disable 'InvalidPackage'
38+
}
39+
40+
defaultConfig {
41+
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
42+
applicationId "com.gskinner.flutterfolio"
43+
minSdkVersion 16
44+
targetSdkVersion 29
45+
versionCode flutterVersionCode.toInteger()
46+
versionName flutterVersionName
47+
multiDexEnabled true
48+
}
49+
50+
buildTypes {
51+
release {
52+
// TODO: Add your own signing config for the release build.
53+
// Signing with the debug keys for now, so `flutter run --release` works.
54+
signingConfig signingConfigs.debug
55+
}
56+
}
57+
}
58+
59+
flutter {
60+
source '../..'
61+
}
62+
63+
dependencies {
64+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
65+
}

android/app/google-services.json

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"project_info": {
3+
"project_number": "150221469863",
4+
"project_id": "flutter-folio-demo",
5+
"storage_bucket": "flutter-folio-demo.appspot.com"
6+
},
7+
"client": [
8+
{
9+
"client_info": {
10+
"mobilesdk_app_id": "1:150221469863:android:9144b399e40b6759d6c382",
11+
"android_client_info": {
12+
"package_name": "com.gskinner.flutterfolio"
13+
}
14+
},
15+
"oauth_client": [
16+
{
17+
"client_id": "150221469863-0altlsfpu1cn9icosantcrefs27b6n6k.apps.googleusercontent.com",
18+
"client_type": 3
19+
}
20+
],
21+
"api_key": [
22+
{
23+
"current_key": "AIzaSyAYThw0BP9fTuvbAtmV2DMYeggQLeI7v7Q"
24+
}
25+
],
26+
"services": {
27+
"appinvite_service": {
28+
"other_platform_oauth_client": [
29+
{
30+
"client_id": "150221469863-0altlsfpu1cn9icosantcrefs27b6n6k.apps.googleusercontent.com",
31+
"client_type": 3
32+
},
33+
{
34+
"client_id": "150221469863-fricoi1555bg294u9j0i61tqfvpoo3th.apps.googleusercontent.com",
35+
"client_type": 2,
36+
"ios_info": {
37+
"bundle_id": "com.gskinner.flutterfolio"
38+
}
39+
}
40+
]
41+
}
42+
}
43+
}
44+
],
45+
"configuration_version": "1"
46+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
package="com.gskinner.flutterfolio">
3+
<!-- Flutter needs it to communicate with the running application
4+
to allow setting breakpoints, to provide hot reload, etc.
5+
-->
6+
<uses-permission android:name="android.permission.INTERNET"/>
7+
</manifest>
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
package="com.gskinner.flutterfolio">
3+
<application
4+
android:label="FlutterFolio"
5+
android:icon="@mipmap/ic_launcher">
6+
<activity
7+
android:name=".MainActivity"
8+
android:networkSecurityConfig="@xml/network_security_config"
9+
android:launchMode="singleTop"
10+
android:theme="@style/LaunchTheme"
11+
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
12+
android:hardwareAccelerated="true"
13+
android:windowSoftInputMode="adjustResize">
14+
<!-- Specifies an Android theme to apply to this Activity as soon as
15+
the Android process has started. This theme is visible to the user
16+
while the Flutter UI initializes. After that, this theme continues
17+
to determine the Window background behind the Flutter UI. -->
18+
<meta-data
19+
android:name="io.flutter.embedding.android.NormalTheme"
20+
android:resource="@style/NormalTheme"
21+
/>
22+
<!-- Displays an Android View that continues showing the launch screen
23+
Drawable until Flutter paints its first frame, then this splash
24+
screen fades out. A splash screen is useful to avoid any visual
25+
gap between the end of Android's launch screen and the painting of
26+
Flutter's first frame. -->
27+
<meta-data
28+
android:name="io.flutter.embedding.android.SplashScreenDrawable"
29+
android:resource="@drawable/launch_background"
30+
/>
31+
<intent-filter>
32+
<action android:name="android.intent.action.MAIN"/>
33+
<category android:name="android.intent.category.LAUNCHER"/>
34+
</intent-filter>
35+
</activity>
36+
<!-- Don't delete the meta-data below.
37+
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
38+
<meta-data
39+
android:name="flutterEmbedding"
40+
android:value="2" />
41+
</application>
42+
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.gskinner.flutterfolio
2+
3+
import io.flutter.embedding.android.FlutterActivity
4+
5+
class MainActivity: FlutterActivity() {
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Modify this file to customize your launch splash screen -->
3+
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
4+
<item android:drawable="?android:colorBackground" />
5+
6+
<!-- You can insert your own image assets here -->
7+
<!-- <item>
8+
<bitmap
9+
android:gravity="center"
10+
android:src="@mipmap/launch_image" />
11+
</item> -->
12+
</layer-list>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Modify this file to customize your launch splash screen -->
3+
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
4+
<item android:drawable="?android:colorBackground" />
5+
6+
<!-- You can insert your own image assets here -->
7+
<!-- <item>
8+
<bitmap
9+
android:gravity="center"
10+
android:src="@mipmap/launch_image" />
11+
</item> -->
12+
</layer-list>
Loading
Loading
Loading
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
4+
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
5+
<!-- Show a splash screen on the activity. Automatically removed when
6+
Flutter draws its first frame -->
7+
<item name="android:windowBackground">@drawable/launch_background</item>
8+
</style>
9+
<!-- Theme applied to the Android Window as soon as the process has started.
10+
This theme determines the color of the Android Window while your
11+
Flutter UI initializes, as well as behind your Flutter UI while its
12+
running.
13+
14+
This Theme is only used starting with V2 of Flutter's Android embedding. -->
15+
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
16+
<item name="android:windowBackground">?android:colorBackground</item>
17+
</style>
18+
</resources>
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
4+
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
5+
<!-- Show a splash screen on the activity. Automatically removed when
6+
Flutter draws its first frame -->
7+
<item name="android:windowBackground">@drawable/launch_background</item>
8+
</style>
9+
<!-- Theme applied to the Android Window as soon as the process has started.
10+
This theme determines the color of the Android Window while your
11+
Flutter UI initializes, as well as behind your Flutter UI while its
12+
running.
13+
14+
This Theme is only used starting with V2 of Flutter's Android embedding. -->
15+
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
16+
<item name="android:windowBackground">?android:colorBackground</item>
17+
</style>
18+
</resources>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<network-security-config>
3+
<base-config cleartextTrafficPermitted="true" />
4+
</network-security-config>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
package="com.gskinner.flutterfolio">
3+
<!-- Flutter needs it to communicate with the running application
4+
to allow setting breakpoints, to provide hot reload, etc.
5+
-->
6+
<uses-permission android:name="android.permission.INTERNET"/>
7+
</manifest>

0 commit comments

Comments
 (0)