Skip to content

Commit f0fe228

Browse files
authored
Adding JSON example. (#1)
1 parent 05319d3 commit f0fe228

File tree

76 files changed

+3487
-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.

76 files changed

+3487
-0
lines changed

jsonexample/.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
.DS_Store
2+
.dart_tool/
3+
.packages
4+
.pub/
5+
.idea
6+
.atom
7+
.flutter-plugins
8+
build/
9+
*.iml

jsonexample/.metadata

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
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: 44b7e7d3f42f050a79712daab253af06e9daf530
8+
channel: beta

jsonexample/README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# jsonexample
2+
3+
A Flutter sample app that deserializes a set of JSON strings using three
4+
different libraries: `dart:convert`, `json_serializable`, and
5+
`built_value`.
6+
7+
## Goals for this sample
8+
9+
* Help you decide which of the three most common libraries for
10+
deserializing JSON is right for your project.
11+
* Provide you with example code for deserializing:
12+
* Simple and nested objects
13+
* Lists of primitive values
14+
* Maps containing primitive values
15+
16+
## The important bits
17+
18+
### `json_strings.dart`
19+
20+
The actual JSON to be deserialized.
21+
22+
### `dart_convert`/`json_serializable`/`dart_convert`
23+
24+
These folders contain code used to deserialize the simple and complex
25+
object models using one of the three libraries. They do the work of
26+
instantiating models and populating their fields.
27+
28+
### `tab_pages.dart`
29+
30+
Each tab page in the app deserializes one type of data with one library.
31+
These Widgets show what app code using the above libraries might look like.
32+
33+
## Questions/issues
34+
35+
If you have a general question about JSON serialization in Flutter, the
36+
best places to go are:
37+
38+
* [The FlutterDev Google Group](https://groups.google.com/forum/#!forum/flutter-dev)
39+
* [The Flutter Gitter channel](https://gitter.im/flutter/flutter)
40+
* [StackOverflow](https://stackoverflow.com/questions/tagged/flutter)
41+
42+
If you run into an issue with the sample itself, please file an issue
43+
in the [main Flutter repo](https://github.com/flutter/flutter/issues).
44+

jsonexample/android/.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
*.iml
2+
*.class
3+
.gradle
4+
/local.properties
5+
/.idea/workspace.xml
6+
/.idea/libraries
7+
.DS_Store
8+
/build
9+
/captures
10+
GeneratedPluginRegistrant.java
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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+
apply plugin: 'com.android.application'
15+
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
16+
17+
android {
18+
compileSdkVersion 27
19+
20+
lintOptions {
21+
disable 'InvalidPackage'
22+
}
23+
24+
defaultConfig {
25+
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
26+
applicationId "com.google.example.jsonexample"
27+
minSdkVersion 16
28+
targetSdkVersion 27
29+
versionCode 1
30+
versionName "1.0"
31+
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
32+
}
33+
34+
buildTypes {
35+
release {
36+
// TODO: Add your own signing config for the release build.
37+
// Signing with the debug keys for now, so `flutter run --release` works.
38+
signingConfig signingConfigs.debug
39+
}
40+
}
41+
}
42+
43+
flutter {
44+
source '../..'
45+
}
46+
47+
dependencies {
48+
testImplementation 'junit:junit:4.12'
49+
androidTestImplementation 'com.android.support.test:runner:1.0.1'
50+
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
51+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
package="com.google.example.jsonexample">
3+
4+
<!-- The INTERNET permission is required for development. Specifically,
5+
flutter needs it to communicate with the running application
6+
to allow setting breakpoints, to provide hot reload, etc.
7+
-->
8+
<uses-permission android:name="android.permission.INTERNET"/>
9+
10+
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
11+
calls FlutterMain.startInitialization(this); in its onCreate method.
12+
In most cases you can leave this as-is, but you if you want to provide
13+
additional functionality it is fine to subclass or reimplement
14+
FlutterApplication and put your custom class here. -->
15+
<application
16+
android:name="io.flutter.app.FlutterApplication"
17+
android:label="jsonexample"
18+
android:icon="@mipmap/ic_launcher">
19+
<activity
20+
android:name=".MainActivity"
21+
android:launchMode="singleTop"
22+
android:theme="@style/LaunchTheme"
23+
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
24+
android:hardwareAccelerated="true"
25+
android:windowSoftInputMode="adjustResize">
26+
<!-- This keeps the window background of the activity showing
27+
until Flutter renders its first frame. It can be removed if
28+
there is no splash screen (such as the default splash screen
29+
defined in @style/LaunchTheme). -->
30+
<meta-data
31+
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
32+
android:value="true" />
33+
<intent-filter>
34+
<action android:name="android.intent.action.MAIN"/>
35+
<category android:name="android.intent.category.LAUNCHER"/>
36+
</intent-filter>
37+
</activity>
38+
</application>
39+
</manifest>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.google.example.jsonexample;
2+
3+
import android.os.Bundle;
4+
5+
import io.flutter.app.FlutterActivity;
6+
import io.flutter.plugins.GeneratedPluginRegistrant;
7+
8+
public class MainActivity extends FlutterActivity {
9+
@Override
10+
protected void onCreate(Bundle savedInstanceState) {
11+
super.onCreate(savedInstanceState);
12+
GeneratedPluginRegistrant.registerWith(this);
13+
}
14+
}
Lines changed: 12 additions & 0 deletions
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:color/white" />
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>
544 Bytes
Loading
442 Bytes
Loading

0 commit comments

Comments
 (0)