├── README.md
├── dart_lang
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── yudong80
│ │ │ │ │ └── dart_lang
│ │ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ │ ├── 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
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── ios
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── flutter_export_environment.sh
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Runner
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── 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
│ │ └── main.m
├── lib
│ ├── atm_v1.dart
│ ├── atm_v2.dart
│ ├── car_v1.dart
│ ├── class_example.dart
│ ├── control_flows.dart
│ ├── data_type_example.dart
│ ├── final_const_static.dart
│ ├── function_example.dart
│ ├── gugudan.dart
│ ├── hello_dart.dart
│ ├── lang_basic_01.dart
│ ├── list_example.dart
│ ├── map_example.dart
│ ├── operator_basic.dart
│ ├── operator_ext.dart
│ └── set_example.dart
├── pubspec.lock
├── pubspec.yaml
└── test
│ ├── atm_v1_test_all.dart
│ ├── atm_v1_test_single.dart
│ └── atm_v2_test.dart
├── hello_flutter
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── yudong80
│ │ │ │ │ └── hello_flutter
│ │ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ │ ├── 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
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Runner
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── 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
│ │ └── main.m
├── lib
│ ├── main.dart
│ ├── simple_app.dart
│ ├── stateful_widget_lifecycle_demo.dart
│ ├── stateless_to_stateful_widget_demo.dart
│ └── stateless_widget_demo.dart
├── pubspec.lock
├── pubspec.yaml
└── test
│ └── widget_test.dart
├── layout_widgets
├── .flutter-plugins-dependencies
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── yudong80
│ │ │ │ │ └── layout_widgets
│ │ │ │ │ └── MainActivity.java
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── yudong80
│ │ │ │ │ └── layout_widgets
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── assets
│ ├── autumn-leaves.jpg
│ ├── fonts
│ │ ├── Poppins-Bold.ttf
│ │ ├── Poppins-Regular.ttf
│ │ ├── Raleway-Italic.ttf
│ │ └── Raleway-Regular.ttf
│ ├── icon
│ │ └── fireworks.png
│ ├── logo.jpg
│ └── london.jpg
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── 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-50x50@1x.png
│ │ │ ├── Icon-App-50x50@2x.png
│ │ │ ├── Icon-App-57x57@1x.png
│ │ │ ├── Icon-App-57x57@2x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-72x72@1x.png
│ │ │ ├── Icon-App-72x72@2x.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
│ ├── button_demo.dart
│ ├── contacts_demo_v1.dart
│ ├── contacts_demo_v2.dart
│ ├── container_demo.dart
│ ├── image_demo.dart
│ ├── listview_static_demo.dart
│ ├── login_form_demo_v1.dart
│ ├── material_app_demo.dart
│ ├── material_scaffold_app_demo.dart
│ ├── no_material_app_demo.dart
│ ├── simple_theme_demo.dart
│ └── text_demo.dart
├── pubspec.lock
└── pubspec.yaml
├── navigation_state
├── .flutter-plugins-dependencies
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── yudong80
│ │ │ │ │ └── navigation_state
│ │ │ │ │ └── MainActivity.java
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── yudong80
│ │ │ │ │ └── navigation_state
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── assets
│ ├── icon
│ │ └── hot-air-balloon.png
│ └── logo.jpg
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── 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-50x50@1x.png
│ │ │ ├── Icon-App-50x50@2x.png
│ │ │ ├── Icon-App-57x57@1x.png
│ │ │ ├── Icon-App-57x57@2x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-72x72@1x.png
│ │ │ ├── Icon-App-72x72@2x.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
│ ├── contacts_demo_v3.dart
│ ├── login_form_demo_v2.dart
│ ├── navigator_push_demo.dart
│ ├── navigator_routes_demo.dart
│ ├── page_contact_detail.dart
│ ├── page_contact_list.dart
│ ├── page_login.dart
│ ├── page_main.dart
│ └── state_simple.dart
├── pubspec.lock
├── pubspec.yaml
├── test
│ └── login_form_demo_v2_test.dart
└── test_driver
│ ├── login_form_demo_v2_app.dart
│ └── login_form_demo_v2_app_test.dart
├── network_async
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── yudong80
│ │ │ │ │ └── network_async
│ │ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── assets
│ └── icon
│ │ ├── rugby-ball.png
│ │ └── subway.png
├── ios
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── flutter_export_environment.sh
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Runner
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── 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-50x50@1x.png
│ │ │ ├── Icon-App-50x50@2x.png
│ │ │ ├── Icon-App-57x57@1x.png
│ │ │ ├── Icon-App-57x57@2x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-72x72@1x.png
│ │ │ ├── Icon-App-72x72@2x.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
│ │ └── main.m
├── lib
│ ├── api
│ │ └── subway_api.dart
│ ├── http_basic_demo.dart
│ ├── http_simple_json_demo.dart
│ ├── http_subway_demo_v1.dart
│ ├── http_subway_demo_v2.dart
│ ├── http_subway_demo_v3.dart
│ ├── json_parsing_demo.dart
│ ├── main.dart
│ ├── model
│ │ └── subway_arrival.dart
│ ├── page_subway_info.dart
│ └── page_subway_main.dart
├── pubspec.lock
├── pubspec.yaml
└── test
│ └── widget_test.dart
├── platform_channels
├── .flutter-plugins-dependencies
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── yudong80
│ │ │ │ │ └── platform_channels
│ │ │ │ │ └── MainActivity.java
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── launcher_icon.png
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── assets
│ └── icon
│ │ └── clownfish.png
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Runner
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── 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-50x50@1x.png
│ │ │ ├── Icon-App-50x50@2x.png
│ │ │ ├── Icon-App-57x57@1x.png
│ │ │ ├── Icon-App-57x57@2x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-72x72@1x.png
│ │ │ ├── Icon-App-72x72@2x.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
│ │ └── main.m
├── lib
│ ├── battery_channel_demo_v1.dart
│ ├── battery_channel_demo_v2.dart
│ ├── location_channel_demo_v1.dart
│ ├── location_channel_demo_v2.dart
│ └── main.dart
├── pubspec.lock
└── pubspec.yaml
└── std_library
├── .gitignore
├── .metadata
├── README.md
├── android
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── yudong80
│ │ │ │ └── std_library
│ │ │ │ └── MainActivity.java
│ │ └── res
│ │ │ ├── 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
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── basket.json
├── ios
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ └── contents.xcworkspacedata
└── Runner
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── 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
│ └── main.m
├── lib
├── core_package.dart
├── io_read_write_file_sync.dart
├── io_user_input.dart
├── json_example.dart
└── math_examples.dart
├── poem.txt
├── pubspec.lock
├── pubspec.yaml
└── sample.txt
/README.md:
--------------------------------------------------------------------------------
1 | # flutter_programming
2 | Flutter Programming
3 |
--------------------------------------------------------------------------------
/dart_lang/.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: 8661d8aecd626f7f57ccbcb735553edc05a2e713
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/dart_lang/README.md:
--------------------------------------------------------------------------------
1 | # dart_lang
2 |
3 | Introduction to Dart Language
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.io/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.io/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.io/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/dart_lang/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/dart_lang/android/app/src/main/java/com/yudong80/dart_lang/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.yudong80.dart_lang;
2 |
3 | import android.os.Bundle;
4 | import io.flutter.app.FlutterActivity;
5 | import io.flutter.plugins.GeneratedPluginRegistrant;
6 |
7 | public class MainActivity extends FlutterActivity {
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | GeneratedPluginRegistrant.registerWith(this);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/dart_lang/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/dart_lang/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/dart_lang/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/dart_lang/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/dart_lang/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/dart_lang/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/dart_lang/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/dart_lang/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/dart_lang/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.2.1'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/dart_lang/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 |
--------------------------------------------------------------------------------
/dart_lang/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-4.10.2-all.zip
7 |
--------------------------------------------------------------------------------
/dart_lang/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/dart_lang/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 |
--------------------------------------------------------------------------------
/dart_lang/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/dart_lang/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/dart_lang/ios/Flutter/flutter_export_environment.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # This is a generated file; do not edit or check into version control.
3 | export "FLUTTER_ROOT=D:\work\flutter"
4 | export "FLUTTER_APPLICATION_PATH=D:\work\agit\flutter_programming\dart_lang"
5 | export "FLUTTER_TARGET=lib\main.dart"
6 | export "FLUTTER_BUILD_DIR=build"
7 | export "SYMROOT=${SOURCE_ROOT}/../build\ios"
8 | export "FLUTTER_FRAMEWORK_DIR=D:\work\flutter\bin\cache\artifacts\engine\ios"
9 | export "FLUTTER_BUILD_NAME=1.0.0"
10 | export "FLUTTER_BUILD_NUMBER=1"
11 |
--------------------------------------------------------------------------------
/dart_lang/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/dart_lang/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : FlutterAppDelegate
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/AppDelegate.m:
--------------------------------------------------------------------------------
1 | #include "AppDelegate.h"
2 | #include "GeneratedPluginRegistrant.h"
3 |
4 | @implementation AppDelegate
5 |
6 | - (BOOL)application:(UIApplication *)application
7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
8 | [GeneratedPluginRegistrant registerWithRegistry:self];
9 | // Override point for customization after application launch.
10 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
11 | }
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/dart_lang/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 |
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/dart_lang/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/dart_lang/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.
--------------------------------------------------------------------------------
/dart_lang/ios/Runner/main.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char* argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/dart_lang/lib/atm_v1.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. 계좌 생성
3 | Account account1 = new Account("117-123-1", 20000);
4 | Account account2 = new Account("117-123-2", 5000);
5 |
6 | //2. 잔고 확인
7 | print('account1 has ${account1.balance} won');
8 | print('account2 has ${account2.balance} won');
9 |
10 | //3. 금액 인출
11 | account1.withdraw(7000);
12 | print('account1 has ${account1.balance} won (7000 won is withrawn)');
13 |
14 | //4. 계좌 이체
15 | account1.transfer(account2, 5000);
16 | print('account2 has ${account2.balance} won (5000 won is deposited)');
17 | print('account1 has ${account1.balance} won');
18 | }
19 |
20 | class Account {
21 | String accountNumber;
22 | int balance;
23 |
24 | Account(this.accountNumber, this.balance);
25 |
26 | bool withdraw(int amount) {
27 | if(balance > amount) {
28 | balance -= amount;
29 | return true;
30 | }
31 |
32 | return false;
33 | }
34 |
35 | bool deposit(int amount) {
36 | balance += amount;
37 | return true;
38 | }
39 |
40 | bool transfer(Account dest, int amount) {
41 | if (balance > amount) {
42 | balance -= amount;
43 | dest.deposit(amount);
44 | return true;
45 | }
46 |
47 | return false;
48 | }
49 | }
50 |
51 |
--------------------------------------------------------------------------------
/dart_lang/lib/atm_v2.dart:
--------------------------------------------------------------------------------
1 | class Account {
2 | String accountNumber;
3 | int balance;
4 |
5 | Account(this.accountNumber, this.balance);
6 |
7 | bool withdraw(int amount) {
8 | if(balance > amount) {
9 | balance -= amount;
10 | return true;
11 | }
12 |
13 | return false;
14 | }
15 |
16 | bool deposit(int amount) {
17 | if(amount > 0) { //양수의 금액만 입금할 수 있다
18 | balance += amount;
19 | return true;
20 | }
21 | return false;
22 | }
23 |
24 | bool transfer(Account dest, int amount) {
25 | if (balance > amount) {
26 | balance -= amount;
27 | dest.deposit(amount);
28 | return true;
29 | }
30 |
31 | return false;
32 | }
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/dart_lang/lib/car_v1.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. Car 생성
3 | Car car = new Car();
4 |
5 | //2. 주유 (최대로)
6 | car.putGas(Car.FUEL_MAX);
7 | print('Car has ${car.fuel} litter');
8 |
9 | //3. 주행 (60 km)
10 | car.drive(60);
11 | print('Car drove ${car.totalDistance} km');
12 | print('Car has ${car.fuel} litter');
13 | }
14 |
15 | class Car {
16 | static const int FUEL_MAX = 100;
17 |
18 | int fuel = 0;
19 | int totalDistance = 0;
20 |
21 | int putGas(int gas) {
22 | fuel += gas;
23 | if (fuel > FUEL_MAX) {
24 | fuel = FUEL_MAX;
25 | }
26 |
27 | return fuel;
28 | }
29 |
30 | int drive(int distance) {
31 | if (fuel >= distance) {
32 | fuel -= distance;
33 | totalDistance += distance;
34 | return fuel;
35 | }
36 |
37 | totalDistance += fuel;
38 | fuel = 0;
39 | return fuel;
40 | }
41 | }
--------------------------------------------------------------------------------
/dart_lang/lib/class_example.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. Game 클래스 생성
3 | Game game1 = Game('Star Craft', 'Strategy');
4 | Game game2 = ArcadeGame('Strike 1945', 'Shooting', true);
5 |
6 | //2. 속성 (getter, setter)
7 | print('game1 is ${game1.name}');
8 | print('game2 is ${game2.name}');
9 |
10 | game1.genre = 'Realtime Strategy';
11 |
12 | //3. 메서드 호출
13 | game1.play();
14 | game2.play();
15 | }
16 |
17 | class Game { //부모 클래스
18 | String _name;
19 | String _genre;
20 |
21 | Game(this._name, this._genre); //생성자
22 |
23 | //getter, setter
24 | String get name => _name;
25 | set genre(g) => this._genre = g;
26 |
27 | void play() {
28 | print('play $_name game($_genre)!!');
29 | }
30 | }
31 |
32 | class ArcadeGame extends Game { //자식 클래스
33 | bool _joystickSupport = false;
34 |
35 | //생성자
36 | ArcadeGame(String name, String genre, this._joystickSupport) : super(name, genre);
37 |
38 | @override //메서드 오버라이드
39 | void play() {
40 | print('$name supports joystick? $_joystickSupport');
41 | }
42 | }
--------------------------------------------------------------------------------
/dart_lang/lib/control_flows.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. if
3 | int even = 78;
4 | int odd = 99;
5 | if (even % 2 == 0) {
6 | print('$even is even number');
7 | }
8 |
9 | if (odd % 2 == 0) {
10 | print('$odd is not even number');
11 | } else {
12 | print('$odd is odd number');
13 | }
14 |
15 | //2. for
16 | List fruits = ['Apple', 'Banana', "Kiwi"];
17 | for (String fruit in fruits) {
18 | print('I like $fruit');
19 | }
20 |
21 | //3. while
22 | List numbers = [100, 200, -1];
23 | int i=0;
24 | while(numbers[i] > 0) {
25 | print('${numbers[i]} is positive');
26 | i = i + 1;
27 | }
28 |
29 | //4. do-while
30 | int j = 5;
31 | do {
32 | print(j);
33 | j--;
34 | } while(j > 0);
35 |
36 | //5. switch / case
37 | List httpCodes = [200, 401, 500];
38 | for (num http in httpCodes) {
39 | switch(http) {
40 | case 200:
41 | print('200 is OK');
42 | break;
43 | case 401:
44 | print('400 is Unautherized');
45 | break;
46 | case 500:
47 | print('500 is Internal Server Error');
48 | break;
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/dart_lang/lib/data_type_example.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. 문자열
3 | String str1 = 'flutter';
4 | String str2 = 'google';
5 | String plus = str1 + ' ' + str2;
6 | int len = plus.length;
7 | bool empty = plus.isEmpty;
8 | print(plus + ' => length : $len , empty? $empty');
9 |
10 | //2. 부울형
11 | bool a = true;
12 | bool b = false;
13 | bool chk = a && b;
14 | print('chk is $chk');
15 |
16 | //3. 동적 타입(var)
17 | var strLen = len; //숫자형
18 | var text = str1; //문자열
19 | var check = chk; //부울형
20 | var variable = text; //var형
21 | print('$strLen , $text , $check , $variable');
22 |
23 | //컴파일 오류 (보너스)
24 | // variable = chk;
25 | // print('$variable');
26 | }
--------------------------------------------------------------------------------
/dart_lang/lib/final_const_static.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. final
3 | final String name = 'Tony';
4 | //name = 'Steve'; //compile error!!
5 |
6 | //2. const
7 | const int STUDENTS_MAX = 100;
8 | const double PIE = 3.14159326;
9 |
10 | //3. static
11 | print('Queue initial capacity is ${Queue.initialCapacity}');
12 | }
13 |
14 | class Queue {
15 | static const initialCapacity = 12;
16 | }
--------------------------------------------------------------------------------
/dart_lang/lib/function_example.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. 함수 호출
3 | int a = 100;
4 | int b = 200;
5 | int c = _getBigger(a, b);
6 | print('_getBigger(a,b) = $c');
7 |
8 | //2. 중복 호출
9 | String str = 'apple';
10 | String addBrace = addSuffix(addPrefix(str, '('), ')');
11 | print(addBrace);
12 |
13 | //3. 선택 인자(positional optional parameter)
14 | int num1 = 100;
15 | int num2 = addNumber(100); //inc = 1 대입
16 | int num3 = addNumber(100, 20); //inc = 20 대입
17 |
18 | //4. 이름있는 인자(named optional parameter)
19 | String http1 = getHttp('http://naver.com', port: 80);
20 | String http2 = getHttp('http://localhost');
21 | print(http1);
22 | print(http2);
23 | }
24 |
25 | String getHttp(String url, {int port = 8080}) {
26 | return 'get http from $url , port = $port';
27 | }
28 |
29 | int addNumber(int num, [int inc = 1]) => num + inc;
30 |
31 | String addPrefix(String str, String prefix) => '$prefix $str';
32 |
33 | String addSuffix(String str, String suffix) => '$str $suffix';
34 |
35 | int _getBigger(int a, int b) {
36 | if (a >= b) return a;
37 | return b;
38 | }
--------------------------------------------------------------------------------
/dart_lang/lib/gugudan.dart:
--------------------------------------------------------------------------------
1 | void main() => startGugudan();
2 |
3 | void startGugudan() {
4 | int dan = 3;
5 |
6 | for (int i=0; i<= 9; ++i) {
7 | print('$dan * $i = ${dan * i}');
8 | }
9 | }
--------------------------------------------------------------------------------
/dart_lang/lib/hello_dart.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | print("Hello Dart");
3 | }
--------------------------------------------------------------------------------
/dart_lang/lib/lang_basic_01.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. 주석 <- 한줄 주석은 슬래시
3 | /**
4 | * 여러 줄의 주석
5 | */
6 | ///
7 | /// 여러 줄의 주석 (다른 방법)
8 | ///
9 |
10 | //2. 변수
11 | int num1 = 100;
12 | double num2 = 3.14;
13 | num num3 = 100; //num은 정수도 담을 수 있고
14 | num num4 = 3.14; //실수를 담을 수도 있다
15 |
16 | double sum1 = num1 + num2;
17 | //int sum2 = num1 + num2;
18 | print(sum1);
19 |
20 | num sum3 = num3 * num4;
21 | print(sum3);
22 |
23 | //3. 문자열
24 | String text = 'Carpe diem, quam minimum credula postero';
25 | String myName = 'yudong';
26 | String hello = 'Hello, ${myName}';
27 | print(text.substring(0, 10));
28 | print(hello);
29 | }
--------------------------------------------------------------------------------
/dart_lang/lib/list_example.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. 리스트 선언
3 | List numbers = [100, 200, 300];
4 | List evens = [2, 4, 6, 8, 10];
5 |
6 | List planets = ['Earth', 'Jupiter', 'Mars', 'Saturn'];
7 | List otherPlanets = ['Venus', 'Mercury', 'Neptune'];
8 |
9 | //2. 리스트 기본 사용
10 | print('numbers are $numbers');
11 | print('first number is ${numbers[0]}');
12 | print('last number is ${numbers[numbers.length -1]}');
13 | //print('last number is ${numbers[-1]}'); //not working!!
14 |
15 | for (int each in evens) {
16 | print('each even number is $each');
17 | }
18 |
19 | evens.forEach((each) => print('each even number is $each'));
20 |
21 | //3. 메서드 호출
22 |
23 |
24 | //4. 리스트 그외 활용
25 | //List evenFromZero = [0, ...evens]; //dart 2.3
26 |
27 | List allPlanets = planets + otherPlanets;
28 | print('All planets are $allPlanets');
29 | }
30 |
--------------------------------------------------------------------------------
/dart_lang/lib/map_example.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. 맵 선언
3 | Map intMap = {
4 | 0: 'AAA',
5 | 50: 'BBB',
6 | 100: 'CCC',
7 | };
8 |
9 | //2. 맵 기본 사용
10 | print('intMap is $intMap');
11 | print('intMap[50] : ${intMap[50]}');
12 | intMap.update(50, (val) => 'DDD' );
13 |
14 | //3. 사용자 정의 클래스 활용
15 | Map students = {
16 | 'jake': Student('Jake', 'Warton', 'jake@gmail.com'),
17 | 'tony': Student('Tony', 'Stark', 'tony@gmail.com'),
18 | 'kent': Student('Kent', 'Beck', 'kent@gmail.com'),
19 | };
20 |
21 | String fullName = students['jake'].firstName + ' ' +
22 | students['jake'].lastName;
23 | print('jake\'s full name is $fullName');
24 |
25 | String email = students['kent'].email;
26 | print('Kent\'s email is $email');
27 | }
28 |
29 | class Student {
30 | String firstName;
31 | String lastName;
32 | String email;
33 |
34 | Student(this.firstName, this.lastName, this.email);
35 | }
36 |
--------------------------------------------------------------------------------
/dart_lang/lib/operator_basic.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. 할당, 산술 연산자
3 | int num = 99;
4 | num += 1;
5 | print('num = $num');
6 |
7 | //2. 관계 연산자
8 | const double PIE = 3.14;
9 | if (PIE >= 3) {
10 | print('PIE는 3 이상이다');
11 | }
12 |
13 | //3. 논리 연산자
14 | const String PASSWORD = '1234';
15 | String _input = '12345';
16 | if (_input == PASSWORD) {
17 | print('로그인 성공');
18 | } else {
19 | print('비밀 번호를 다시 입력하세요');
20 | }
21 |
22 | //4. 삼항 연산자
23 | String _nextInput = '1234';
24 | String _loginResult = PASSWORD == _nextInput ? '로그인 성공': '비밀번호를 다시 입력하세요';
25 | print(_loginResult);
26 | }
--------------------------------------------------------------------------------
/dart_lang/lib/operator_ext.dart:
--------------------------------------------------------------------------------
1 | import 'atm_v1.dart'; //Account 클래스 임포트
2 |
3 | void main() {
4 | //1. 타입 테스트 연산자
5 | var account = Account('111-222-33-01', 50000);
6 | if (account is Account) {
7 | String name = account.accountNumber;
8 | int amount = (account as Account).balance; //불필요한 캐스팅
9 | print('account name is $name , amount is $amount');
10 | }
11 |
12 | //2. if null 연산자
13 | String loginAccount = null;
14 | String playerName = loginAccount ?? 'Guest';
15 | print('Login Player is $playerName');
16 |
17 | //3. 캐스케이드 연산자
18 | Account account2 = Account('222-333-33-01', 60000)
19 | ..deposit(5000)
20 | ..transfer(account, 10000)
21 | ..withdraw(5000);
22 | print('account 2 balance is ${account2.balance}');
23 |
24 | //4. 조건적 맴버 접근 연산자
25 | Account account3 = null;
26 | print('account 3 is ${account3?.accountNumber}');
27 | }
28 |
--------------------------------------------------------------------------------
/dart_lang/lib/set_example.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. 집합 선언
3 | Set naturalNumbers = {1, 2, 3, 4, 1}; //실제로는 {1, 2, 3, 4} 임
4 | Set ids = {"X-3", "X-2", "X-1"};
5 |
6 | //2. 집합 사용
7 | print('numbers are $naturalNumbers');
8 | print('ids are $ids'); //not sorted
9 | //print('first number is ${numbers[0]}'); //not indexed
10 |
11 | for (int each in naturalNumbers) {
12 | print('each number is $each');
13 | }
14 |
15 | //Set integers = { 0 } + naturalNumbers; // + not defined
16 |
17 | //3. 메서드 호출
18 |
19 |
20 | //4. 수학적 집합의 활용
21 | Set a = {100, 200, 300};
22 | Set b = {100, 200, 500, 1000};
23 |
24 | print('a union b = ${a.union(b)}');
25 | print('a intersection b = ${a.intersection(b)}');
26 | print('a difference b = ${a.difference(b)}');
27 | }
--------------------------------------------------------------------------------
/dart_lang/test/atm_v1_test_all.dart:
--------------------------------------------------------------------------------
1 | import 'package:test/test.dart';
2 | import 'package:dart_lang/atm_v1.dart';
3 |
4 | void main() {
5 | test('계좌 생성 테스트', () {
6 | String accountName = '117-123-1';
7 | int amount = 20000;
8 |
9 | Account account = Account(accountName, amount);
10 |
11 | expect(account.accountNumber, equals(accountName));
12 | expect(account.balance, equals(amount));
13 | });
14 |
15 | test('계좌 인출 테스트', () {
16 | String accountName = '117-123-1';
17 | int amount = 20000;
18 | int withdraw = 7000;
19 |
20 | Account account = Account(accountName, amount);
21 | account.withdraw(withdraw);
22 |
23 | expect(account.balance, equals(amount - withdraw));
24 | });
25 |
26 | test('계좌 입금 테스트', () {
27 | String accountName = '117-123-1';
28 | int amount = 20000;
29 | int deposit = 7000;
30 |
31 | Account account = Account(accountName, amount);
32 | account.deposit(deposit);
33 |
34 | expect(account.balance, equals(amount + deposit));
35 | });
36 |
37 | test('계좌 이체 테스트', () {
38 | Account account1 = Account('117-123-1', 20000);
39 | Account account2 = Account('117-123-2', 5000);
40 |
41 | account1.transfer(account2, 5000);
42 |
43 | expect(account1.balance, equals(20000 - 5000));
44 | expect(account2.balance, equals(5000 + 5000));
45 | });
46 | }
47 |
--------------------------------------------------------------------------------
/dart_lang/test/atm_v1_test_single.dart:
--------------------------------------------------------------------------------
1 | import 'package:test/test.dart';
2 | import 'package:dart_lang/atm_v1.dart';
3 |
4 | void main() {
5 | test('계좌 생성 테스트', () {
6 | String accountName = '117-123-1';
7 | int amount = 20000;
8 |
9 | Account account = Account(accountName, amount);
10 |
11 | expect(account.accountNumber, equals(accountName));
12 | expect(account.balance, equals(amount));
13 | });
14 | }
--------------------------------------------------------------------------------
/dart_lang/test/atm_v2_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:test/test.dart';
2 | import 'package:dart_lang/atm_v2.dart';
3 |
4 | void main() {
5 | test('계좌인출: 잔액보다 큰 금액을 인출하면 안된다', () {
6 | Account account = Account('111-222', 5000);
7 | int orgBalance = account.balance;
8 |
9 | account.withdraw(orgBalance + 1);
10 | expect(account.balance, equals(orgBalance));
11 | });
12 |
13 | test('계좌입금: 음수의 금액을 입금하면 안된다', () {
14 | const int orgBalance = 5000;
15 | Account account = Account('111-222', orgBalance)..deposit(-1);
16 |
17 | expect(orgBalance, equals(account.balance));
18 | });
19 | }
20 |
--------------------------------------------------------------------------------
/hello_flutter/.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 | .dart_tool/
26 | .flutter-plugins
27 | .packages
28 | .pub-cache/
29 | .pub/
30 | /build/
31 |
32 | # Web related
33 | lib/generated_plugin_registrant.dart
34 |
35 | # Exceptions to above rules.
36 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
37 |
--------------------------------------------------------------------------------
/hello_flutter/.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: 9e0df259df9c521d0ffbdf5ba664f6ab30143884
8 | channel: master
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/hello_flutter/README.md:
--------------------------------------------------------------------------------
1 | # hello_flutter
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/hello_flutter/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/main/java/com/yudong80/hello_flutter/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.yudong80.hello_flutter;
2 |
3 | import androidx.annotation.NonNull;
4 | import io.flutter.embedding.android.FlutterActivity;
5 | import io.flutter.embedding.engine.FlutterEngine;
6 | import io.flutter.plugins.GeneratedPluginRegistrant;
7 |
8 | public class MainActivity extends FlutterActivity {
9 | @Override
10 | public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
11 | GeneratedPluginRegistrant.registerWith(flutterEngine);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/hello_flutter/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/hello_flutter/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.5.0'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/hello_flutter/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/hello_flutter/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-5.6.2-all.zip
7 |
--------------------------------------------------------------------------------
/hello_flutter/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/hello_flutter/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 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : FlutterAppDelegate
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/AppDelegate.m:
--------------------------------------------------------------------------------
1 | #import "AppDelegate.h"
2 | #import "GeneratedPluginRegistrant.h"
3 |
4 | @implementation AppDelegate
5 |
6 | - (BOOL)application:(UIApplication *)application
7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
8 | [GeneratedPluginRegistrant registerWithRegistry:self];
9 | // Override point for customization after application launch.
10 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
11 | }
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/hello_flutter/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 |
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/hello_flutter/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/hello_flutter/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.
--------------------------------------------------------------------------------
/hello_flutter/ios/Runner/main.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char* argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/hello_flutter/lib/simple_app.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() =>
4 | runApp(MaterialApp(
5 | title: 'Hello Flutter',
6 | home: Scaffold(
7 | appBar: AppBar(title: Text('Hello Flutter')),
8 | body: Text('Hello Flutter'),
9 | ),
10 | ));
--------------------------------------------------------------------------------
/hello_flutter/lib/stateless_to_stateful_widget_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(MaterialApp(
4 | title: 'Stateless -> Stateful 위젯 데모',
5 | home: Scaffold(
6 | appBar: AppBar(title: Text('Stateless -> Stateful 위젯 데모')),
7 | body: _FirstStatefulWidget(),
8 | ),
9 | ));
10 |
11 | class _FirstStatefulWidget extends StatefulWidget {
12 | @override
13 | State createState() => _FirstStatefulWidgetState();
14 | }
15 |
16 | class _FirstStatefulWidgetState extends State<_FirstStatefulWidget> {
17 | @override
18 | Widget build(BuildContext context) {
19 | return Text('이것은 stateful 위젯입니다');
20 | }
21 | }
--------------------------------------------------------------------------------
/hello_flutter/lib/stateless_widget_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(MaterialApp(
4 | title: 'Stateless Widget Demo',
5 | home: Scaffold(
6 | appBar: AppBar(title: Text('Stateless 위젯 데모')),
7 | body: _FirstStatelessWidget(),
8 | ),
9 | ));
10 |
11 | class _FirstStatelessWidget extends StatelessWidget {
12 | @override
13 | Widget build(BuildContext context) {
14 | return Text('이것은 stateless 위젯입니다');
15 | }
16 | }
--------------------------------------------------------------------------------
/hello_flutter/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import 'package:hello_flutter/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(MyApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------
/layout_widgets/.flutter-plugins-dependencies:
--------------------------------------------------------------------------------
1 | {"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"contacts_service","dependencies":[]},{"name":"permission_handler","dependencies":[]}]}
--------------------------------------------------------------------------------
/layout_widgets/.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 | .dart_tool/
26 | .flutter-plugins
27 | .packages
28 | .pub-cache/
29 | .pub/
30 | /build/
31 |
32 | # Web related
33 | lib/generated_plugin_registrant.dart
34 |
35 | # Exceptions to above rules.
36 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
37 |
--------------------------------------------------------------------------------
/layout_widgets/.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: 9e0df259df9c521d0ffbdf5ba664f6ab30143884
8 | channel: master
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/layout_widgets/README.md:
--------------------------------------------------------------------------------
1 | # layout_widgets
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/layout_widgets/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/java/com/yudong80/layout_widgets/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.yudong80.layout_widgets;
2 |
3 | import androidx.annotation.NonNull;
4 | import io.flutter.embedding.android.FlutterActivity;
5 | import io.flutter.embedding.engine.FlutterEngine;
6 | import io.flutter.plugins.GeneratedPluginRegistrant;
7 |
8 | public class MainActivity extends FlutterActivity {
9 | @Override
10 | public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
11 | GeneratedPluginRegistrant.registerWith(flutterEngine);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/kotlin/com/yudong80/layout_widgets/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.yudong80.layout_widgets
2 |
3 | import androidx.annotation.NonNull;
4 | import io.flutter.embedding.android.FlutterActivity
5 | import io.flutter.embedding.engine.FlutterEngine
6 | import io.flutter.plugins.GeneratedPluginRegistrant
7 |
8 | class MainActivity: FlutterActivity() {
9 | override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
10 | GeneratedPluginRegistrant.registerWith(flutterEngine);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-hdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-mdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/layout_widgets/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/layout_widgets/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.5.0'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/layout_widgets/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/layout_widgets/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-5.6.2-all.zip
7 |
--------------------------------------------------------------------------------
/layout_widgets/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/layout_widgets/assets/autumn-leaves.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/assets/autumn-leaves.jpg
--------------------------------------------------------------------------------
/layout_widgets/assets/fonts/Poppins-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/assets/fonts/Poppins-Bold.ttf
--------------------------------------------------------------------------------
/layout_widgets/assets/fonts/Poppins-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/assets/fonts/Poppins-Regular.ttf
--------------------------------------------------------------------------------
/layout_widgets/assets/fonts/Raleway-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/assets/fonts/Raleway-Italic.ttf
--------------------------------------------------------------------------------
/layout_widgets/assets/fonts/Raleway-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/assets/fonts/Raleway-Regular.ttf
--------------------------------------------------------------------------------
/layout_widgets/assets/icon/fireworks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/assets/icon/fireworks.png
--------------------------------------------------------------------------------
/layout_widgets/assets/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/assets/logo.jpg
--------------------------------------------------------------------------------
/layout_widgets/assets/london.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/assets/london.jpg
--------------------------------------------------------------------------------
/layout_widgets/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 |
--------------------------------------------------------------------------------
/layout_widgets/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 |
--------------------------------------------------------------------------------
/layout_widgets/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/layout_widgets/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/layout_widgets/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 |
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/layout_widgets/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 |
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/layout_widgets/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/layout_widgets/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.
--------------------------------------------------------------------------------
/layout_widgets/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
--------------------------------------------------------------------------------
/layout_widgets/lib/button_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(ButtonDemo());
4 |
5 | class ButtonDemo extends StatefulWidget {
6 | @override
7 | State createState() => ButtonDemoState();
8 | }
9 |
10 | class ButtonDemoState extends State {
11 | static const String _title = "Button 위젯 데모";
12 | String _buttonState = "OFF";
13 |
14 | void onClick() {
15 | print('onClick()');
16 | setState(() {
17 | if (_buttonState == 'OFF') {
18 | _buttonState = 'ON';
19 | } else {
20 | _buttonState = 'OFF';
21 | }
22 | });
23 | }
24 |
25 | @override
26 | Widget build(BuildContext context) {
27 | return MaterialApp(
28 | title: _title,
29 | debugShowCheckedModeBanner: false,
30 | home: Scaffold(
31 | appBar: AppBar(title: Text(_title)),
32 | body: Column(
33 | crossAxisAlignment: CrossAxisAlignment.center,
34 | children: [
35 | RaisedButton(
36 | child: Text('사각 버튼'),
37 | onPressed: onClick,
38 | ),
39 | Text('$_buttonState'),
40 | RaisedButton(
41 | child: Text("둥근 버튼"),
42 | onPressed: onClick,
43 | shape: RoundedRectangleBorder(
44 | borderRadius: new BorderRadius.circular(30.0)))
45 | ],
46 | ),
47 | ));
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/layout_widgets/lib/container_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(ContainerDemo());
4 |
5 | class ContainerDemo extends StatelessWidget {
6 | static const String _title = "Container 위젯 데모";
7 |
8 | @override
9 | Widget build(BuildContext context) {
10 | return MaterialApp(
11 | title: _title,
12 | debugShowCheckedModeBanner: false,
13 | home: Scaffold(
14 | appBar: AppBar(title: Text(_title)),
15 | body: Column(
16 | crossAxisAlignment: CrossAxisAlignment.start,
17 | children: [
18 | Container(
19 | child: Text('단순 컨테이터'),
20 | padding: EdgeInsets.only(left: 10, top: 20, bottom: 20),
21 | ),
22 | Container(
23 | color: Colors.green,
24 | padding: EdgeInsets.symmetric(vertical: 30, horizontal: 50),
25 | child: Container(
26 | color: Colors.yellow,
27 | child: Text('중첩 컨네이너'),
28 | ),
29 | ),
30 | ],
31 | )
32 | ),
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/layout_widgets/lib/image_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(ImageDemo());
4 |
5 | class ImageDemo extends StatelessWidget {
6 | static const String _title = "Image 위젯 데모";
7 |
8 | @override
9 | Widget build(BuildContext context) {
10 | return MaterialApp(
11 | title: _title,
12 | debugShowCheckedModeBanner: false,
13 | home: Scaffold(
14 | appBar: AppBar(title: Text(_title)),
15 | body: Column(
16 | crossAxisAlignment: CrossAxisAlignment.center,
17 | children: [
18 | Image.asset('assets/london.jpg'),
19 | Image.asset('assets/autumn-leaves.jpg'),
20 | ],
21 | ),
22 | )
23 | );
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/layout_widgets/lib/listview_static_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(ListViewStaticDemo());
4 |
5 | class ListViewStaticDemo extends StatelessWidget {
6 | static const String _title = "정적 ListView 위젯 데모";
7 | static const List _data = [
8 | 'Mercury',
9 | 'Venus',
10 | 'Earth',
11 | 'Mars',
12 | 'Jupiter',
13 | 'Saturn',
14 | 'Uranus',
15 | 'Neptune',
16 | 'Pluto',
17 | ];
18 |
19 | Widget _buildStaticListView() {
20 | return ListView.builder(
21 | itemCount: _data.length,
22 | itemBuilder: (BuildContext _context, int i) {
23 | return ListTile(
24 | title: Text(_data[i],
25 | style: TextStyle(
26 | fontSize: 23,
27 | )),
28 | trailing: Icon(
29 | Icons.favorite_border,
30 | ),
31 | );
32 | },
33 | );
34 | }
35 |
36 | @override
37 | Widget build(BuildContext context) {
38 | return MaterialApp(
39 | title: _title,
40 | debugShowCheckedModeBanner: false,
41 | home: Scaffold(
42 | appBar: AppBar(title: Text(_title)),
43 | body: _buildStaticListView(),
44 | ));
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/layout_widgets/lib/material_app_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(MyMaterialApp());
4 |
5 | class MyMaterialApp extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return MaterialApp(
9 | title: '머티리얼 앱',
10 | home: Container(
11 | padding: EdgeInsets.all(20),
12 | child: Text('이제는 머티리얼 앱입니다'),
13 | ),
14 | );
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/layout_widgets/lib/material_scaffold_app_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(MaterialScaffoldApp());
4 |
5 | class MaterialScaffoldApp extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return MaterialApp(
9 | title: '머터리얼 앱',
10 | home: Scaffold(
11 | appBar: AppBar(title: Text('진짜 머터리얼 앱')),
12 | body: Text('이제야 재대로 된 머터리얼 앱입니다.'),
13 | ),
14 | );
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/layout_widgets/lib/no_material_app_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/widgets.dart';
2 |
3 | void main() => runApp(NoMaterialApp());
4 |
5 | class NoMaterialApp extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return Container(
9 | padding: EdgeInsets.all(20),
10 | child: Text('이것은 머티리얼 앱이 아닙니다.',
11 | textDirection: TextDirection.ltr,
12 | ),
13 | );
14 | }
15 | }
--------------------------------------------------------------------------------
/layout_widgets/lib/simple_theme_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(SimpleThemeApp());
4 |
5 | class SimpleThemeApp extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return MaterialApp(
9 | title: 'SimpleThemeApp',
10 | theme: ThemeData(
11 | brightness: Brightness.light,
12 | primaryColor: Colors.purple,
13 | accentColor: Colors.cyan[600],
14 | fontFamily: 'Raleway'),
15 | darkTheme: ThemeData(
16 | brightness: Brightness.dark,
17 | ),
18 | home: Scaffold(
19 | appBar: AppBar(title: Text('Simple Theme App')),
20 | body: Center(
21 | child: Text(
22 | 'This is my custom fonts.',
23 | style: TextStyle(
24 | fontFamily: 'Poppins',
25 | fontSize: 25,
26 | fontWeight: FontWeight.bold),
27 | ),
28 | ),
29 | ),
30 | );
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/layout_widgets/lib/text_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(TextDemo());
4 |
5 | class TextDemo extends StatelessWidget {
6 | static const String _title = "Text 위젯 데모";
7 | static const String _name = 'Tony Stark';
8 | static const String _longText = """
9 | 플러터(Flutter)는 구글이 개발한 오픈 소스 모바일 애플리케이션 개발 프레임워크이다.
10 | 안드로이드, iOS용 애플리케이션 개발을 위해,
11 | 또 구글 푸크시아용 애플리케이션 개발의 주된 방식으로 사용된다.(위키백과)
12 | """;
13 |
14 | @override
15 | Widget build(BuildContext context) {
16 | return MaterialApp(
17 | title: _title,
18 | home: Scaffold(
19 | appBar: AppBar(title: Text(_title)),
20 | body: Column(
21 | crossAxisAlignment: CrossAxisAlignment.start,
22 | children: [
23 | Text("단순 텍스트 표시"), //simple text
24 | Text(
25 | 'Styled Text with $_name', //styled text
26 | style: TextStyle(
27 | color: Colors.black,
28 | fontSize: 20.0, //dp
29 | background: Paint()
30 | ..color = Color(0xFFDCEDC8)
31 | ..style = PaintingStyle.fill,
32 | fontWeight: FontWeight.bold),
33 | ),
34 | Text(
35 | _longText,
36 | overflow: TextOverflow.ellipsis, //text overflow
37 | ),
38 | ],
39 | ),
40 | )
41 | );
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/navigation_state/.flutter-plugins-dependencies:
--------------------------------------------------------------------------------
1 | {"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"contacts_service","dependencies":[]}]}
--------------------------------------------------------------------------------
/navigation_state/.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 | .dart_tool/
26 | .flutter-plugins
27 | .packages
28 | .pub-cache/
29 | .pub/
30 | /build/
31 |
32 | # Web related
33 | lib/generated_plugin_registrant.dart
34 |
35 | # Exceptions to above rules.
36 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
37 |
--------------------------------------------------------------------------------
/navigation_state/.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: 9e0df259df9c521d0ffbdf5ba664f6ab30143884
8 | channel: master
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/navigation_state/README.md:
--------------------------------------------------------------------------------
1 | # navigation_state
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/navigation_state/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/navigation_state/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/java/com/yudong80/navigation_state/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.yudong80.navigation_state;
2 |
3 | import androidx.annotation.NonNull;
4 | import io.flutter.embedding.android.FlutterActivity;
5 | import io.flutter.embedding.engine.FlutterEngine;
6 | import io.flutter.plugins.GeneratedPluginRegistrant;
7 |
8 | public class MainActivity extends FlutterActivity {
9 | @Override
10 | public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
11 | GeneratedPluginRegistrant.registerWith(flutterEngine);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/kotlin/com/yudong80/navigation_state/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.yudong80.navigation_state
2 |
3 | import androidx.annotation.NonNull;
4 | import io.flutter.embedding.android.FlutterActivity
5 | import io.flutter.embedding.engine.FlutterEngine
6 | import io.flutter.plugins.GeneratedPluginRegistrant
7 |
8 | class MainActivity: FlutterActivity() {
9 | override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
10 | GeneratedPluginRegistrant.registerWith(flutterEngine);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-hdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-mdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/navigation_state/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/navigation_state/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/navigation_state/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.5.0'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/navigation_state/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/navigation_state/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-5.6.2-all.zip
7 |
--------------------------------------------------------------------------------
/navigation_state/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/navigation_state/assets/icon/hot-air-balloon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/assets/icon/hot-air-balloon.png
--------------------------------------------------------------------------------
/navigation_state/assets/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/assets/logo.jpg
--------------------------------------------------------------------------------
/navigation_state/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 |
--------------------------------------------------------------------------------
/navigation_state/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 |
--------------------------------------------------------------------------------
/navigation_state/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/navigation_state/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/navigation_state/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/navigation_state/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/navigation_state/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 |
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/navigation_state/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 |
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/navigation_state/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/navigation_state/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.
--------------------------------------------------------------------------------
/navigation_state/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
--------------------------------------------------------------------------------
/navigation_state/lib/contacts_demo_v3.dart:
--------------------------------------------------------------------------------
1 | import 'package:contacts_service/contacts_service.dart';
2 | import 'package:flutter/material.dart';
3 | import 'page_contact_list.dart';
4 | import 'page_contact_detail.dart';
5 |
6 | void main() => runApp(ContactsDemoV3());
7 |
8 | class ContactsDemoV3 extends StatelessWidget {
9 | @override
10 | Widget build(BuildContext context) {
11 | return MaterialApp(
12 | debugShowCheckedModeBanner: false,
13 | home: ContactListPage(),
14 | onGenerateRoute: (RouteSettings settings) {
15 | if (ContactDetailPage.routeName == settings.name) {
16 | Contact c = settings.arguments;
17 | return MaterialPageRoute(
18 | builder: (context) => ContactDetailPage(c));
19 | }
20 | return _noWay;
21 | });
22 | }
23 |
24 | final MaterialPageRoute _noWay = MaterialPageRoute(
25 | builder: (_) => Scaffold(
26 | body: Center(
27 | child: Text('경로가 없습니다'),
28 | ),
29 | ),
30 | );
31 | }
32 |
--------------------------------------------------------------------------------
/navigation_state/lib/login_form_demo_v2.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:provider/provider.dart';
3 |
4 | import 'page_login.dart';
5 | import 'page_main.dart';
6 | import 'state_simple.dart';
7 |
8 | void main() => runApp(loginFormApp);
9 |
10 | var loginFormApp = ChangeNotifierProvider(
11 | create: (context) => SimpleState(),
12 | child: StateLoginDemo(),
13 | );
14 |
15 | const String ROOT_PAGE = '/';
16 | const String MAIN_PAGE = '/main';
17 |
18 | class StateLoginDemo extends StatelessWidget {
19 |
20 | @override
21 | Widget build(BuildContext context) {
22 | return MaterialApp(
23 | title: '로그인 폼',
24 | debugShowCheckedModeBanner: false,
25 | initialRoute: ROOT_PAGE,
26 | routes: {
27 | ROOT_PAGE : (context) => LoginPage(),
28 | MAIN_PAGE: (context) => MainPage(),
29 | },
30 | );
31 | }
32 | }
--------------------------------------------------------------------------------
/navigation_state/lib/navigator_push_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(NavigatorPushDemo());
4 |
5 | class NavigatorPushDemo extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return MaterialApp(
9 | debugShowCheckedModeBanner: false,
10 | home: MainPage(),
11 | );
12 | }
13 | }
14 |
15 | class MainPage extends StatelessWidget {
16 | _showNextPage(BuildContext context) => Navigator.push(
17 | context, MaterialPageRoute(builder: (context) => NextPage()));
18 |
19 | @override
20 | Widget build(BuildContext context) {
21 | return Scaffold(
22 | appBar: AppBar(
23 | title: Text('Navigator 기본 데모'),
24 | ),
25 | body: Center(
26 | child: RaisedButton(
27 | onPressed: () => _showNextPage(context),
28 | child: Text('다음 화면으로 이동'),
29 | ),
30 | ),
31 | );
32 | }
33 | }
34 |
35 | class NextPage extends StatelessWidget {
36 | _backToMainPage(BuildContext context) => Navigator.pop(context);
37 |
38 | @override
39 | Widget build(BuildContext context) {
40 | return Scaffold(
41 | appBar: AppBar(
42 | title: Text('다음 페이지'),
43 | ),
44 | body: Center(
45 | child: RaisedButton(
46 | onPressed: () => _backToMainPage(context),
47 | child: Text('돌아가기'),
48 | ),
49 | ),
50 | );
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/navigation_state/lib/navigator_routes_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(NavigatorRoutesDemo());
4 |
5 | class NavigatorRoutesDemo extends StatelessWidget {
6 | @override
7 | Widget build(BuildContext context) {
8 | return MaterialApp(
9 | debugShowCheckedModeBanner: false,
10 | initialRoute: '/',
11 | routes: {
12 | '/': (context) => MainPage(),
13 | '/next': (context) => NextPage(),
14 | },
15 | );
16 | }
17 | }
18 |
19 | class MainPage extends StatelessWidget {
20 | _showNextPage(BuildContext context) => Navigator.pushNamed(context, '/next');
21 |
22 | @override
23 | Widget build(BuildContext context) {
24 | return Scaffold(
25 | appBar: AppBar(
26 | title: Text('Navigator Routes 데모'),
27 | ),
28 | body: Center(
29 | child: RaisedButton(
30 | onPressed: () => _showNextPage(context),
31 | child: Text('상세 페이지로 이동'),
32 | ),
33 | ),
34 | );
35 | }
36 | }
37 |
38 | class NextPage extends StatelessWidget {
39 | _backToMainPage(BuildContext context) => Navigator.pop(context);
40 |
41 | @override
42 | Widget build(BuildContext context) {
43 | return Scaffold(
44 | appBar: AppBar(
45 | title: Text('다음 페이지'),
46 | ),
47 | body: Center(
48 | child: RaisedButton(
49 | onPressed: () => _backToMainPage(context),
50 | child: Text('메인 페이지로 돌아가기'),
51 | ),
52 | ),
53 | );
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/navigation_state/lib/page_contact_detail.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:contacts_service/contacts_service.dart';
3 |
4 | class ContactDetailPage extends StatelessWidget {
5 | static const String routeName = '/contact';
6 |
7 | ContactDetailPage(this._contact);
8 |
9 | final Contact _contact;
10 |
11 | @override
12 | Widget build(BuildContext context) {
13 | return Scaffold(
14 | appBar: AppBar(title: Text(_contact.displayName ?? "")),
15 | body: ListView(
16 | children: [
17 | ListTile(
18 | title: Text('Name'),
19 | trailing: Text(_contact.givenName ?? ""),
20 | ),
21 | ListTile(
22 | title: Text('Phones'),
23 | trailing: Text(
24 | _contact.phones.isNotEmpty ? _contact.phones.first.value : ""),
25 | ),
26 | ListTile(
27 | title: Text('Emails'),
28 | trailing: Text(
29 | _contact.emails.isNotEmpty ? _contact.emails.first.value : ""),
30 | ),
31 | ],
32 | ),
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/navigation_state/lib/page_main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:provider/provider.dart';
3 |
4 | import 'state_simple.dart';
5 |
6 | class MainPage extends StatelessWidget {
7 |
8 | @override
9 | Widget build(BuildContext context) {
10 | return Scaffold(
11 | body: Center(
12 | child: Consumer (
13 | builder: (context, state, child) {
14 | return Text('로그인 완료: ${state.email}');
15 | },
16 | ),
17 | ),
18 | );
19 | }
20 | }
--------------------------------------------------------------------------------
/navigation_state/lib/state_simple.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class SimpleState extends ChangeNotifier {
4 | String _email;
5 |
6 | void setEmail(String email) {
7 | _email = email;
8 | }
9 |
10 | String get email => _email;
11 | }
--------------------------------------------------------------------------------
/navigation_state/test/login_form_demo_v2_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_test/flutter_test.dart';
3 |
4 | import 'package:navigation_state/login_form_demo_v2.dart' as target;
5 |
6 | void main() {
7 | testWidgets("로그인 화면 표시 테스트", (WidgetTester tester) async {
8 | Widget form = target.loginFormApp;
9 |
10 | await tester.pumpWidget(form);
11 |
12 | expect(find.byKey(Key('email')), findsOneWidget);
13 | expect(find.byKey(Key('password')), findsOneWidget);
14 | expect(find.widgetWithText(RaisedButton, '로그인'), findsOneWidget);
15 | expect(find.widgetWithText(RaisedButton, '취소'), findsOneWidget);
16 | });
17 | }
--------------------------------------------------------------------------------
/navigation_state/test_driver/login_form_demo_v2_app.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_driver/driver_extension.dart';
2 | import 'package:navigation_state/login_form_demo_v2.dart' as target;
3 |
4 | void main() {
5 | enableFlutterDriverExtension();
6 | target.main();
7 | }
--------------------------------------------------------------------------------
/navigation_state/test_driver/login_form_demo_v2_app_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_driver/flutter_driver.dart';
2 | import 'package:test/test.dart';
3 |
4 | void main() {
5 | group('통합 테스트 > ', () {
6 | FlutterDriver driver;
7 |
8 | setUpAll(() async {
9 | driver = await FlutterDriver.connect();
10 | });
11 |
12 | test('로그인 테스트', () async {
13 | const email = 'flutter@gmail.com';
14 | const ps = '1234';
15 |
16 | //1. 이메일을 입력
17 | await driver.tap(find.byValueKey('email'));
18 | await driver.enterText(email);
19 | await driver.waitFor(find.text(email));
20 |
21 | //2. 비밀번호를 입력
22 | await driver.tap(find.byValueKey('password'));
23 | await driver.enterText(ps);
24 |
25 | //3. 로그인 버튼을 누름
26 | await driver.tap(find.byValueKey('login'));
27 |
28 | //4. 로그인 완료 확인
29 | await driver.waitFor(find.text('로그인 완료: $email'));
30 | });
31 |
32 | tearDownAll(() async {
33 | driver?.close();
34 | });
35 | });
36 | }
--------------------------------------------------------------------------------
/network_async/.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: b712a172f9694745f50505c93340883493b505e5
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/network_async/README.md:
--------------------------------------------------------------------------------
1 | # network_async
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/network_async/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/network_async/android/app/src/main/java/com/yudong80/network_async/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.yudong80.network_async;
2 |
3 | import android.os.Bundle;
4 | import io.flutter.app.FlutterActivity;
5 | import io.flutter.plugins.GeneratedPluginRegistrant;
6 |
7 | public class MainActivity extends FlutterActivity {
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | GeneratedPluginRegistrant.registerWith(this);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-hdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-mdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/network_async/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/network_async/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/network_async/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.2.1'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/network_async/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
--------------------------------------------------------------------------------
/network_async/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-4.10.2-all.zip
7 |
--------------------------------------------------------------------------------
/network_async/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/network_async/assets/icon/rugby-ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/assets/icon/rugby-ball.png
--------------------------------------------------------------------------------
/network_async/assets/icon/subway.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/assets/icon/subway.png
--------------------------------------------------------------------------------
/network_async/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 |
--------------------------------------------------------------------------------
/network_async/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/network_async/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/network_async/ios/Flutter/flutter_export_environment.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # This is a generated file; do not edit or check into version control.
3 | export "FLUTTER_ROOT=D:\work\flutter"
4 | export "FLUTTER_APPLICATION_PATH=D:\work\agit\flutter_programming\network_async"
5 | export "FLUTTER_TARGET=lib\main.dart"
6 | export "FLUTTER_BUILD_DIR=build"
7 | export "SYMROOT=${SOURCE_ROOT}/../build\ios"
8 | export "FLUTTER_FRAMEWORK_DIR=D:\work\flutter\bin\cache\artifacts\engine\ios"
9 | export "FLUTTER_BUILD_NAME=1.0.0"
10 | export "FLUTTER_BUILD_NUMBER=1"
11 |
--------------------------------------------------------------------------------
/network_async/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/network_async/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/network_async/ios/Runner/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : FlutterAppDelegate
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/network_async/ios/Runner/AppDelegate.m:
--------------------------------------------------------------------------------
1 | #include "AppDelegate.h"
2 | #include "GeneratedPluginRegistrant.h"
3 |
4 | @implementation AppDelegate
5 |
6 | - (BOOL)application:(UIApplication *)application
7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
8 | [GeneratedPluginRegistrant registerWithRegistry:self];
9 | // Override point for customization after application launch.
10 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
11 | }
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/network_async/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 |
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/network_async/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/network_async/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/network_async/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.
--------------------------------------------------------------------------------
/network_async/ios/Runner/main.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char* argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/network_async/lib/api/subway_api.dart:
--------------------------------------------------------------------------------
1 | const String _urlPrefix = 'http://swopenapi.seoul.go.kr/api/subway/';
2 | const String _userKey = 'sample';
3 | const String _urlSuffix = '/json/realtimeStationArrival/0/5/';
4 | const String defaultStation = '광화문';
5 |
6 | const int STATUS_OK = 200;
7 |
8 | String buildUrl(String station) {
9 | StringBuffer sb = StringBuffer();
10 | sb.write(_urlPrefix);
11 | sb.write(_userKey);
12 | sb.write(_urlSuffix);
13 | sb.write(station);
14 | return sb.toString();
15 | }
--------------------------------------------------------------------------------
/network_async/lib/http_basic_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:http/http.dart' as http;
2 |
3 | void main() async {
4 | String url = 'https://jsonplaceholder.typicode.com/todos/1';
5 | var response = await http.get(url);
6 | print('status = ${response.statusCode}');
7 | print('response = ${response.body}');
8 | }
--------------------------------------------------------------------------------
/network_async/lib/http_simple_json_demo.dart:
--------------------------------------------------------------------------------
1 | import 'package:http/http.dart' as http;
2 | import 'dart:convert';
3 |
4 | void main() async {
5 | String url = 'https://jsonplaceholder.typicode.com/todos/1';
6 | var response = await http.get(url);
7 |
8 | Map data = jsonDecode(response.body);
9 | print('userId : ${data['userId']}');
10 | print('id : ${data['id']}');
11 | print('title : ${data['title']}');
12 | print('complete : ${data['completed']}');
13 | }
14 |
--------------------------------------------------------------------------------
/network_async/lib/http_subway_demo_v2.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'page_subway_main.dart';
3 |
4 | void main() => runApp(SubwayDemo());
5 |
6 | class SubwayDemo extends StatelessWidget {
7 | @override
8 | Widget build(BuildContext context) {
9 | return MaterialApp(
10 | title: '지하철 실시간 정보',
11 | home: MainPage(),
12 | );
13 | }
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/network_async/lib/http_subway_demo_v3.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'page_subway_info.dart';
3 |
4 | void main() => runApp(SubwayDemo());
5 |
6 | class SubwayDemo extends StatelessWidget {
7 | @override
8 | Widget build(BuildContext context) {
9 | return MaterialApp(
10 | title: '지하철 실시간 정보',
11 | debugShowCheckedModeBanner: false,
12 | home: MainPage(),
13 | );
14 | }
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/network_async/lib/json_parsing_demo.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 |
3 | const String header = '''
4 | {"errorMessage":
5 | {
6 | "status":200,
7 | "code":"INFO-000",
8 | "message":"정상 처리되었습니다.",
9 | "link":"",
10 | "developerMessage":"",
11 | "total":4
12 | }
13 | }
14 | ''';
15 |
16 | void main() {
17 | var parsed = jsonDecode(header);
18 | Map errorMessage = parsed['errorMessage'];
19 |
20 | print('status : ${errorMessage['status']}');
21 | print('code : ${errorMessage['code']}');
22 | print('message : ${errorMessage['message']}');
23 | print('total : ${errorMessage['total']}');
24 | }
--------------------------------------------------------------------------------
/network_async/lib/model/subway_arrival.dart:
--------------------------------------------------------------------------------
1 | class SubwayArrival {
2 | int _rowNum;
3 | String _subwayId;
4 | String _trainLineNm;
5 | String _subwayHeading;
6 | String _arvlMsg2;
7 |
8 | SubwayArrival(this._rowNum, this._subwayId, this._trainLineNm,
9 | this._subwayHeading, this._arvlMsg2);
10 |
11 | int get rowNum => _rowNum;
12 |
13 | String get subwayId => _subwayId;
14 |
15 | String get trainLineNm => _trainLineNm;
16 |
17 | String get subwayHeading => _subwayHeading;
18 |
19 | String get arvlMsg2 => _arvlMsg2;
20 | }
--------------------------------------------------------------------------------
/network_async/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import 'package:network_async/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(MyApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------
/platform_channels/.flutter-plugins-dependencies:
--------------------------------------------------------------------------------
1 | {"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"geolocator","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","dependencies":[]},{"name":"location_permissions","dependencies":[]},{"name":"permission_handler","dependencies":[]}]}
--------------------------------------------------------------------------------
/platform_channels/.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 | .dart_tool/
26 | .flutter-plugins
27 | .packages
28 | .pub-cache/
29 | .pub/
30 | /build/
31 |
32 | # Web related
33 | lib/generated_plugin_registrant.dart
34 |
35 | # Exceptions to above rules.
36 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
37 |
--------------------------------------------------------------------------------
/platform_channels/.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: 9e0df259df9c521d0ffbdf5ba664f6ab30143884
8 | channel: master
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/platform_channels/README.md:
--------------------------------------------------------------------------------
1 | # platform_channels
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/platform_channels/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/platform_channels/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-hdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-mdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
--------------------------------------------------------------------------------
/platform_channels/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/platform_channels/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/platform_channels/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.5.2'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/platform_channels/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/platform_channels/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-5.6.2-all.zip
7 |
--------------------------------------------------------------------------------
/platform_channels/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/platform_channels/assets/icon/clownfish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/assets/icon/clownfish.png
--------------------------------------------------------------------------------
/platform_channels/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 |
--------------------------------------------------------------------------------
/platform_channels/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 |
--------------------------------------------------------------------------------
/platform_channels/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/platform_channels/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/platform_channels/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/platform_channels/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : FlutterAppDelegate
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/AppDelegate.m:
--------------------------------------------------------------------------------
1 | #import "AppDelegate.h"
2 | #import "GeneratedPluginRegistrant.h"
3 |
4 | @implementation AppDelegate
5 |
6 | - (BOOL)application:(UIApplication *)application
7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
8 | [GeneratedPluginRegistrant registerWithRegistry:self];
9 | // Override point for customization after application launch.
10 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
11 | }
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/platform_channels/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 |
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/platform_channels/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/platform_channels/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.
--------------------------------------------------------------------------------
/platform_channels/ios/Runner/main.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char* argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/platform_channels/lib/battery_channel_demo_v1.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | void main() => runApp(BatteryPage());
4 |
5 | class BatteryPage extends StatefulWidget {
6 | @override
7 | State createState() => BatteryPageState();
8 | }
9 |
10 | class BatteryPageState extends State {
11 | _refresh() {
12 | print('refresh battery level');
13 | }
14 |
15 | @override
16 | Widget build(BuildContext context) {
17 | return MaterialApp(
18 | title: '배터리 채널 데모 V1',
19 | debugShowCheckedModeBanner: false,
20 | home: Scaffold(
21 | appBar: AppBar(title: Text('배터리 채널 데모 V1')),
22 | body: Center(
23 | child: Column(
24 | mainAxisAlignment: MainAxisAlignment.center,
25 | children: [
26 | Text('배터리 잔량: 모름'),
27 | RaisedButton(
28 | child: Text('가져오기'),
29 | onPressed: _refresh,
30 | ),
31 | ],
32 | ),
33 | ),
34 | ),
35 | );
36 | }
37 | }
--------------------------------------------------------------------------------
/platform_channels/lib/main.dart:
--------------------------------------------------------------------------------
1 | void main() {}
--------------------------------------------------------------------------------
/std_library/.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: 8661d8aecd626f7f57ccbcb735553edc05a2e713
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/std_library/README.md:
--------------------------------------------------------------------------------
1 | # std_library
2 |
3 | A new Flutter application.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.io/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.io/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.io/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/std_library/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/std_library/android/app/src/main/java/com/yudong80/std_library/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.yudong80.std_library;
2 |
3 | import android.os.Bundle;
4 | import io.flutter.app.FlutterActivity;
5 | import io.flutter.plugins.GeneratedPluginRegistrant;
6 |
7 | public class MainActivity extends FlutterActivity {
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | GeneratedPluginRegistrant.registerWith(this);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/std_library/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/std_library/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/std_library/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/std_library/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/std_library/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/std_library/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/std_library/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/std_library/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/std_library/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.2.1'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/std_library/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 |
--------------------------------------------------------------------------------
/std_library/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-4.10.2-all.zip
7 |
--------------------------------------------------------------------------------
/std_library/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/std_library/basket.json:
--------------------------------------------------------------------------------
1 | {"apple":50,"banana":10,"grape":5}
--------------------------------------------------------------------------------
/std_library/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 |
--------------------------------------------------------------------------------
/std_library/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/std_library/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/std_library/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/std_library/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/std_library/ios/Runner/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : FlutterAppDelegate
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/std_library/ios/Runner/AppDelegate.m:
--------------------------------------------------------------------------------
1 | #include "AppDelegate.h"
2 | #include "GeneratedPluginRegistrant.h"
3 |
4 | @implementation AppDelegate
5 |
6 | - (BOOL)application:(UIApplication *)application
7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
8 | [GeneratedPluginRegistrant registerWithRegistry:self];
9 | // Override point for customization after application launch.
10 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
11 | }
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/std_library/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 |
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/std_library/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yudong80/flutter_programming/d21ecef016e1185b80a1d3bc1f4d440ec917d26b/std_library/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/std_library/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.
--------------------------------------------------------------------------------
/std_library/ios/Runner/main.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char* argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/std_library/lib/core_package.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | //1. print 함수 내부 살펴보기
3 | print('hello');
4 |
5 | //2. 숫자 -> 문자열 변환
6 | int num1 = 5000;
7 | double num2 = 360.1234;
8 |
9 | String num1Str = num1.toString();
10 | String num2Str = num2.toStringAsFixed(2);
11 | print('num1 to str is $num1Str');
12 | print('num2 to str is $num2Str');
13 |
14 | //3. 문자 -> 숫자 변환
15 | List inputs = [
16 | '-1', //[0]
17 | '1234', //[1]
18 | '32.25' //[2]
19 | ];
20 |
21 | print(int.parse(inputs[0]));
22 | print(int.parse(inputs[1]));
23 | print(double.parse(inputs[2]));
24 | print(num.parse(inputs[2]));
25 | }
--------------------------------------------------------------------------------
/std_library/lib/io_read_write_file_sync.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 |
3 | void main() {
4 | //1. 새로운 파일 생성하기
5 | File newFile = File('temp_file.txt');
6 | newFile.createSync();
7 |
8 | //2. 파일을 읽기 (동기방식)
9 | File poem = File('poem.txt');
10 | List lines = poem.readAsLinesSync();
11 | for (String line in lines) {
12 | print(line);
13 | }
14 |
15 | //3. 파일을 쓰기 (동기방식)
16 | File memoFile = File('diary.txt');
17 | String contents = """
18 | 2019.06.16: 플러터 공부 시작
19 |
20 | 오늘은 플러터의 표준 라이브러리를 공부했다.
21 | 안드로이드 스튜디오를 활용하여 예제를 실행하였다.
22 | """;
23 | memoFile.writeAsStringSync(contents);
24 | }
--------------------------------------------------------------------------------
/std_library/lib/io_user_input.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 |
3 | void main() {
4 | //1. 사용자 입력 받기
5 | stdout.write('Enter name? '); //same as print()
6 | String input = stdin.readLineSync();
7 | print('Hello, $input');
8 | }
--------------------------------------------------------------------------------
/std_library/lib/json_example.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 | import 'dart:io';
3 |
4 | void main() {
5 | //1. JSON 문자열 파싱하기
6 | String jsonStr = """
7 | {"basket" : {
8 | "apple" : 50,
9 | "banana" : 10,
10 | "grape" : 5
11 | }
12 | }
13 | """;
14 | Map json = jsonDecode(jsonStr);
15 | Map basket = json["basket"];
16 | int apples = basket["apple"];
17 | int bananas = basket["banana"];
18 | int grapes = basket["grape"];
19 | print("apples are $apples");
20 | print("bananas are $bananas");
21 | print("grapes are $grapes");
22 |
23 | //2. JSON 파일 읽기
24 | Map basketMap = _readBasketJson('basket.json');
25 | print('grapes was ${basketMap["grape"]}');
26 |
27 | //3. JSON 파일 쓰기
28 | basketMap.update('grape', (v) => 99);
29 | File('basket.json').writeAsStringSync(jsonEncode(basketMap));
30 |
31 | Map updated = _readBasketJson('basket.json');
32 | int grapesNow = updated["grape"];
33 | print('now grapes are $grapesNow');
34 | }
35 |
36 | Map _readBasketJson(String fileName) {
37 | String contents = File(fileName).readAsStringSync();
38 | print('contents : $contents');
39 | return jsonDecode(contents);
40 | }
--------------------------------------------------------------------------------
/std_library/lib/math_examples.dart:
--------------------------------------------------------------------------------
1 | import 'dart:math';
2 |
3 | void main() {
4 | List numbers = [100, 200, 300, 400, 250];
5 |
6 | //1. 최대, 최소값
7 | int maxValue = max(numbers[0], numbers[1]);
8 | int minValue = min(numbers[2], numbers[3]);
9 | print('max(100, 200) is $maxValue');
10 | print('min(300, 400) is $minValue');
11 |
12 | //2. 제곱근
13 | double sqaureRooted = sqrt(numbers[4]);
14 | print('sqrt(250) is $sqaureRooted');
15 |
16 | //3. 난수 발생
17 | List randomNumbers = _makeRandomNumbers(10, 8);
18 | print('random number(0..9) is $randomNumbers');
19 |
20 | //4. 반올림은 math 패키지가 아님
21 | double doubleValue = 500.51;
22 | int rounded = doubleValue.round();
23 | print('500.51 rounds $rounded');
24 | }
25 |
26 | List _makeRandomNumbers(int max, int counts) {
27 | Random rand = Random();
28 | List res = List();
29 | for (int i=0; i< counts; ++i) {
30 | res.add(rand.nextInt(max)); //0과 max-1 사이
31 | }
32 |
33 | return res;
34 | }
--------------------------------------------------------------------------------
/std_library/poem.txt:
--------------------------------------------------------------------------------
1 | The Road Not Taken
2 | BY ROBERT FROST
3 |
4 | Two roads diverged in a yellow wood,
5 | And sorry I could not travel both
6 | And be one traveler, long I stood
7 | And looked down one as far as I could
8 | To where it bent in the undergrowth;
9 |
10 | Then took the other, as just as fair,
11 | And having perhaps the better claim,
12 | Because it was grassy and wanted wear;
13 | Though as for that the passing there
14 | Had worn them really about the same,
15 |
16 | And both that morning equally lay
17 | In leaves no step had trodden black.
18 | Oh, I kept the first for another day!
19 | Yet knowing how way leads on to way,
20 | I doubted if I should ever come back.
21 |
22 | I shall be telling this with a sigh
23 | Somewhere ages and ages hence:
24 | Two roads diverged in a wood, and I—
25 | I took the one less traveled by,
26 | And that has made all the difference.
--------------------------------------------------------------------------------
/std_library/sample.txt:
--------------------------------------------------------------------------------
1 | Flutter is Google’s portable UI toolkit for building beautiful, natively-compiled applications for mobile, web, and desktop from a single codebase.
2 | Fast Development
3 | - Paint your app to life in milliseconds with stateful Hot Reload. Use a rich set of fully-customizable widgets to build native interfaces in minutes.
4 | Expressive and Flexible UI
5 | - Quickly ship features with a focus on native end-user experiences. Layered architecture allows for full customization, which results in incredibly fast rendering and expressive and flexible designs.
6 | Native Performance
7 | - Flutter’s widgets incorporate all critical platform differences such as scrolling, navigation, icons and fonts to provide full native performance on both iOS and Android.
--------------------------------------------------------------------------------