Showing
77 changed files
with
505 additions
and
230 deletions
| ... | @@ -8,4 +8,12 @@ | ... | @@ -8,4 +8,12 @@ |
| 8 | 8 | ||
| 9 | ## 일정 | 9 | ## 일정 |
| 10 | + 2021-04-27 : Flutter 앱 생성 및 개발 환경 설정 | 10 | + 2021-04-27 : Flutter 앱 생성 및 개발 환경 설정 |
| 11 | -+ 2021-04-27 : 시작화면 router 생성 | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 11 | ++ 2021-04-27 : 시작화면 router 생성 | ||
| 12 | + | ||
| 13 | +### 2021-04-28 | ||
| 14 | ++ flutter version 변경 작업 | ||
| 15 | + | ||
| 16 | +### 2021-04-29 | ||
| 17 | ++ Main 화면 작업 완료 | ||
| 18 | + | ||
| 19 | ++ 로그인 페이지 작업 완료 | ... | ... |
frontend/app_frontend/android/app/src/main/res/drawable-v21/launch_background.xml
deleted
100644 → 0
| 1 | -<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | -<!-- Modify this file to customize your launch splash screen --> | ||
| 3 | -<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 4 | - <item android:drawable="?android:colorBackground" /> | ||
| 5 | - | ||
| 6 | - <!-- You can insert your own image assets here --> | ||
| 7 | - <!-- <item> | ||
| 8 | - <bitmap | ||
| 9 | - android:gravity="center" | ||
| 10 | - android:src="@mipmap/launch_image" /> | ||
| 11 | - </item> --> | ||
| 12 | -</layer-list> |
| 1 | -<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | -<resources> | ||
| 3 | - <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off --> | ||
| 4 | - <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar"> | ||
| 5 | - <!-- Show a splash screen on the activity. Automatically removed when | ||
| 6 | - Flutter draws its first frame --> | ||
| 7 | - <item name="android:windowBackground">@drawable/launch_background</item> | ||
| 8 | - </style> | ||
| 9 | - <!-- Theme applied to the Android Window as soon as the process has started. | ||
| 10 | - This theme determines the color of the Android Window while your | ||
| 11 | - Flutter UI initializes, as well as behind your Flutter UI while its | ||
| 12 | - running. | ||
| 13 | - | ||
| 14 | - This Theme is only used starting with V2 of Flutter's Android embedding. --> | ||
| 15 | - <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar"> | ||
| 16 | - <item name="android:windowBackground">?android:colorBackground</item> | ||
| 17 | - </style> | ||
| 18 | -</resources> |
| 1 | -import 'package:flutter/material.dart'; | ||
| 2 | - | ||
| 3 | -class HomePage extends StatefulWidget { | ||
| 4 | - final String pageTitle; | ||
| 5 | - HomePage({Key key, this.pageTitle}) : super(key: key); | ||
| 6 | - | ||
| 7 | - @override | ||
| 8 | - _HomePageState createState() => _HomePageState(); | ||
| 9 | -} | ||
| 10 | - | ||
| 11 | -/// first page class | ||
| 12 | -class _HomePageState extends State<HomePage> { | ||
| 13 | - @override | ||
| 14 | - void initState() { | ||
| 15 | - super.initState(); | ||
| 16 | - } | ||
| 17 | - | ||
| 18 | - @override | ||
| 19 | - Widget build(BuildContext context) { | ||
| 20 | - final Size size = MediaQuery.of(context).size; | ||
| 21 | - return Scaffold( | ||
| 22 | - appBar: AppBar( | ||
| 23 | - title: Text('HomePage'), | ||
| 24 | - ), | ||
| 25 | - body: Text('홈페이지 작업 영역'), | ||
| 26 | - ); | ||
| 27 | - } | ||
| 28 | -} |
917 Bytes
5.17 KB
8.06 KB
frontend/app_frontend/web/index.html
deleted
100644 → 0
| 1 | -<!DOCTYPE html> | ||
| 2 | -<html> | ||
| 3 | -<head> | ||
| 4 | - <!-- | ||
| 5 | - If you are serving your web app in a path other than the root, change the | ||
| 6 | - href value below to reflect the base path you are serving from. | ||
| 7 | - | ||
| 8 | - The path provided below has to start and end with a slash "/" in order for | ||
| 9 | - it to work correctly. | ||
| 10 | - | ||
| 11 | - Fore more details: | ||
| 12 | - * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base | ||
| 13 | - --> | ||
| 14 | - <base href="/"> | ||
| 15 | - | ||
| 16 | - <meta charset="UTF-8"> | ||
| 17 | - <meta content="IE=Edge" http-equiv="X-UA-Compatible"> | ||
| 18 | - <meta name="description" content="A new Flutter project."> | ||
| 19 | - | ||
| 20 | - <!-- iOS meta tags & icons --> | ||
| 21 | - <meta name="apple-mobile-web-app-capable" content="yes"> | ||
| 22 | - <meta name="apple-mobile-web-app-status-bar-style" content="black"> | ||
| 23 | - <meta name="apple-mobile-web-app-title" content="app_frontend"> | ||
| 24 | - <link rel="apple-touch-icon" href="icons/Icon-192.png"> | ||
| 25 | - | ||
| 26 | - <!-- Favicon --> | ||
| 27 | - <link rel="icon" type="image/png" href="favicon.png"/> | ||
| 28 | - | ||
| 29 | - <title>app_frontend</title> | ||
| 30 | - <link rel="manifest" href="manifest.json"> | ||
| 31 | -</head> | ||
| 32 | -<body> | ||
| 33 | - <!-- This script installs service_worker.js to provide PWA functionality to | ||
| 34 | - application. For more information, see: | ||
| 35 | - https://developers.google.com/web/fundamentals/primers/service-workers --> | ||
| 36 | - <script> | ||
| 37 | - if ('serviceWorker' in navigator) { | ||
| 38 | - window.addEventListener('flutter-first-frame', function () { | ||
| 39 | - navigator.serviceWorker.register('flutter_service_worker.js'); | ||
| 40 | - }); | ||
| 41 | - } | ||
| 42 | - </script> | ||
| 43 | - <script src="main.dart.js" type="application/javascript"></script> | ||
| 44 | -</body> | ||
| 45 | -</html> |
| 1 | -{ | ||
| 2 | - "name": "app_frontend", | ||
| 3 | - "short_name": "app_frontend", | ||
| 4 | - "start_url": ".", | ||
| 5 | - "display": "standalone", | ||
| 6 | - "background_color": "#0175C2", | ||
| 7 | - "theme_color": "#0175C2", | ||
| 8 | - "description": "A new Flutter project.", | ||
| 9 | - "orientation": "portrait-primary", | ||
| 10 | - "prefer_related_applications": false, | ||
| 11 | - "icons": [ | ||
| 12 | - { | ||
| 13 | - "src": "icons/Icon-192.png", | ||
| 14 | - "sizes": "192x192", | ||
| 15 | - "type": "image/png" | ||
| 16 | - }, | ||
| 17 | - { | ||
| 18 | - "src": "icons/Icon-512.png", | ||
| 19 | - "sizes": "512x512", | ||
| 20 | - "type": "image/png" | ||
| 21 | - } | ||
| 22 | - ] | ||
| 23 | -} |
| ... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
| 4 | # This file should be version controlled and should not be manually edited. | 4 | # This file should be version controlled and should not be manually edited. |
| 5 | 5 | ||
| 6 | version: | 6 | version: |
| 7 | - revision: adc687823a831bbebe28bdccfac1a628ca621513 | 7 | + revision: 9b2d32b605630f28625709ebd9d78ab3016b2bf6 |
| 8 | channel: stable | 8 | channel: stable |
| 9 | 9 | ||
| 10 | project_type: app | 10 | project_type: app | ... | ... |
File moved
| ... | @@ -26,17 +26,21 @@ apply plugin: 'kotlin-android' | ... | @@ -26,17 +26,21 @@ apply plugin: 'kotlin-android' |
| 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" | 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" |
| 27 | 27 | ||
| 28 | android { | 28 | android { |
| 29 | - compileSdkVersion 30 | 29 | + compileSdkVersion 29 |
| 30 | 30 | ||
| 31 | sourceSets { | 31 | sourceSets { |
| 32 | main.java.srcDirs += 'src/main/kotlin' | 32 | main.java.srcDirs += 'src/main/kotlin' |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | + lintOptions { | ||
| 36 | + disable 'InvalidPackage' | ||
| 37 | + } | ||
| 38 | + | ||
| 35 | defaultConfig { | 39 | defaultConfig { |
| 36 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). | 40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). |
| 37 | - applicationId "com.example.app_frontend" | 41 | + applicationId "com.example.flutter_application_1" |
| 38 | minSdkVersion 16 | 42 | minSdkVersion 16 |
| 39 | - targetSdkVersion 30 | 43 | + targetSdkVersion 29 |
| 40 | versionCode flutterVersionCode.toInteger() | 44 | versionCode flutterVersionCode.toInteger() |
| 41 | versionName flutterVersionName | 45 | versionName flutterVersionName |
| 42 | } | 46 | } | ... | ... |
| 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| 2 | - package="com.example.app_frontend"> | 2 | + package="com.example.flutter_application_1"> |
| 3 | <!-- Flutter needs it to communicate with the running application | 3 | <!-- Flutter needs it to communicate with the running application |
| 4 | to allow setting breakpoints, to provide hot reload, etc. | 4 | to allow setting breakpoints, to provide hot reload, etc. |
| 5 | --> | 5 | --> | ... | ... |
| 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| 2 | - package="com.example.app_frontend"> | 2 | + package="com.example.flutter_application_1"> |
| 3 | - <application | 3 | + <!-- io.flutter.app.FlutterApplication is an android.app.Application that |
| 4 | - android:label="app_frontend" | 4 | + calls FlutterMain.startInitialization(this); in its onCreate method. |
| 5 | + In most cases you can leave this as-is, but you if you want to provide | ||
| 6 | + additional functionality it is fine to subclass or reimplement | ||
| 7 | + FlutterApplication and put your custom class here. --> | ||
| 8 | + <application | ||
| 9 | + android:name="io.flutter.app.FlutterApplication" | ||
| 10 | + android:label="flutter_application_1" | ||
| 5 | android:icon="@mipmap/ic_launcher"> | 11 | android:icon="@mipmap/ic_launcher"> |
| 6 | <activity | 12 | <activity |
| 7 | android:name=".MainActivity" | 13 | android:name=".MainActivity" | ... | ... |
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <resources> | 2 | <resources> |
| 3 | - <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on --> | 3 | + <!-- Theme applied to the Android Window while the process is starting --> |
| 4 | <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar"> | 4 | <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar"> |
| 5 | <!-- Show a splash screen on the activity. Automatically removed when | 5 | <!-- Show a splash screen on the activity. Automatically removed when |
| 6 | Flutter draws its first frame --> | 6 | Flutter draws its first frame --> |
| ... | @@ -13,6 +13,6 @@ | ... | @@ -13,6 +13,6 @@ |
| 13 | 13 | ||
| 14 | This Theme is only used starting with V2 of Flutter's Android embedding. --> | 14 | This Theme is only used starting with V2 of Flutter's Android embedding. --> |
| 15 | <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar"> | 15 | <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar"> |
| 16 | - <item name="android:windowBackground">?android:colorBackground</item> | 16 | + <item name="android:windowBackground">@android:color/white</item> |
| 17 | </style> | 17 | </style> |
| 18 | </resources> | 18 | </resources> | ... | ... |
| 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| 2 | - package="com.example.app_frontend"> | 2 | + package="com.example.flutter_application_1"> |
| 3 | <!-- Flutter needs it to communicate with the running application | 3 | <!-- Flutter needs it to communicate with the running application |
| 4 | to allow setting breakpoints, to provide hot reload, etc. | 4 | to allow setting breakpoints, to provide hot reload, etc. |
| 5 | --> | 5 | --> | ... | ... |
| ... | @@ -6,7 +6,7 @@ buildscript { | ... | @@ -6,7 +6,7 @@ buildscript { |
| 6 | } | 6 | } |
| 7 | 7 | ||
| 8 | dependencies { | 8 | dependencies { |
| 9 | - classpath 'com.android.tools.build:gradle:4.1.0' | 9 | + classpath 'com.android.tools.build:gradle:3.5.0' |
| 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" | 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" |
| 11 | } | 11 | } |
| 12 | } | 12 | } | ... | ... |
| ... | @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME | ... | @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME |
| 3 | distributionPath=wrapper/dists | 3 | distributionPath=wrapper/dists |
| 4 | zipStoreBase=GRADLE_USER_HOME | 4 | zipStoreBase=GRADLE_USER_HOME |
| 5 | zipStorePath=wrapper/dists | 5 | zipStorePath=wrapper/dists |
| 6 | -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip | 6 | +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip | ... | ... |
7.17 KB
| ... | @@ -3,7 +3,7 @@ | ... | @@ -3,7 +3,7 @@ |
| 3 | <plist version="1.0"> | 3 | <plist version="1.0"> |
| 4 | <dict> | 4 | <dict> |
| 5 | <key>CFBundleDevelopmentRegion</key> | 5 | <key>CFBundleDevelopmentRegion</key> |
| 6 | - <string>en</string> | 6 | + <string>$(DEVELOPMENT_LANGUAGE)</string> |
| 7 | <key>CFBundleExecutable</key> | 7 | <key>CFBundleExecutable</key> |
| 8 | <string>App</string> | 8 | <string>App</string> |
| 9 | <key>CFBundleIdentifier</key> | 9 | <key>CFBundleIdentifier</key> | ... | ... |
| ... | @@ -289,9 +289,17 @@ | ... | @@ -289,9 +289,17 @@ |
| 289 | CLANG_ENABLE_MODULES = YES; | 289 | CLANG_ENABLE_MODULES = YES; |
| 290 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | 290 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; |
| 291 | ENABLE_BITCODE = NO; | 291 | ENABLE_BITCODE = NO; |
| 292 | + FRAMEWORK_SEARCH_PATHS = ( | ||
| 293 | + "$(inherited)", | ||
| 294 | + "$(PROJECT_DIR)/Flutter", | ||
| 295 | + ); | ||
| 292 | INFOPLIST_FILE = Runner/Info.plist; | 296 | INFOPLIST_FILE = Runner/Info.plist; |
| 293 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | 297 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
| 294 | - PRODUCT_BUNDLE_IDENTIFIER = com.example.appFrontend; | 298 | + LIBRARY_SEARCH_PATHS = ( |
| 299 | + "$(inherited)", | ||
| 300 | + "$(PROJECT_DIR)/Flutter", | ||
| 301 | + ); | ||
| 302 | + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1; | ||
| 295 | PRODUCT_NAME = "$(TARGET_NAME)"; | 303 | PRODUCT_NAME = "$(TARGET_NAME)"; |
| 296 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | 304 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; |
| 297 | SWIFT_VERSION = 5.0; | 305 | SWIFT_VERSION = 5.0; |
| ... | @@ -413,9 +421,17 @@ | ... | @@ -413,9 +421,17 @@ |
| 413 | CLANG_ENABLE_MODULES = YES; | 421 | CLANG_ENABLE_MODULES = YES; |
| 414 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | 422 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; |
| 415 | ENABLE_BITCODE = NO; | 423 | ENABLE_BITCODE = NO; |
| 424 | + FRAMEWORK_SEARCH_PATHS = ( | ||
| 425 | + "$(inherited)", | ||
| 426 | + "$(PROJECT_DIR)/Flutter", | ||
| 427 | + ); | ||
| 416 | INFOPLIST_FILE = Runner/Info.plist; | 428 | INFOPLIST_FILE = Runner/Info.plist; |
| 417 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | 429 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
| 418 | - PRODUCT_BUNDLE_IDENTIFIER = com.example.appFrontend; | 430 | + LIBRARY_SEARCH_PATHS = ( |
| 431 | + "$(inherited)", | ||
| 432 | + "$(PROJECT_DIR)/Flutter", | ||
| 433 | + ); | ||
| 434 | + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1; | ||
| 419 | PRODUCT_NAME = "$(TARGET_NAME)"; | 435 | PRODUCT_NAME = "$(TARGET_NAME)"; |
| 420 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | 436 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; |
| 421 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | 437 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; |
| ... | @@ -432,9 +448,17 @@ | ... | @@ -432,9 +448,17 @@ |
| 432 | CLANG_ENABLE_MODULES = YES; | 448 | CLANG_ENABLE_MODULES = YES; |
| 433 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | 449 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; |
| 434 | ENABLE_BITCODE = NO; | 450 | ENABLE_BITCODE = NO; |
| 451 | + FRAMEWORK_SEARCH_PATHS = ( | ||
| 452 | + "$(inherited)", | ||
| 453 | + "$(PROJECT_DIR)/Flutter", | ||
| 454 | + ); | ||
| 435 | INFOPLIST_FILE = Runner/Info.plist; | 455 | INFOPLIST_FILE = Runner/Info.plist; |
| 436 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | 456 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
| 437 | - PRODUCT_BUNDLE_IDENTIFIER = com.example.appFrontend; | 457 | + LIBRARY_SEARCH_PATHS = ( |
| 458 | + "$(inherited)", | ||
| 459 | + "$(PROJECT_DIR)/Flutter", | ||
| 460 | + ); | ||
| 461 | + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterApplication1; | ||
| 438 | PRODUCT_NAME = "$(TARGET_NAME)"; | 462 | PRODUCT_NAME = "$(TARGET_NAME)"; |
| 439 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | 463 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; |
| 440 | SWIFT_VERSION = 5.0; | 464 | SWIFT_VERSION = 5.0; | ... | ... |
| ... | @@ -11,7 +11,7 @@ | ... | @@ -11,7 +11,7 @@ |
| 11 | <key>CFBundleInfoDictionaryVersion</key> | 11 | <key>CFBundleInfoDictionaryVersion</key> |
| 12 | <string>6.0</string> | 12 | <string>6.0</string> |
| 13 | <key>CFBundleName</key> | 13 | <key>CFBundleName</key> |
| 14 | - <string>app_frontend</string> | 14 | + <string>flutter_application_1</string> |
| 15 | <key>CFBundlePackageType</key> | 15 | <key>CFBundlePackageType</key> |
| 16 | <string>APPL</string> | 16 | <string>APPL</string> |
| 17 | <key>CFBundleShortVersionString</key> | 17 | <key>CFBundleShortVersionString</key> | ... | ... |
| ... | @@ -12,15 +12,6 @@ class MyApp extends StatelessWidget { | ... | @@ -12,15 +12,6 @@ class MyApp extends StatelessWidget { |
| 12 | return MaterialApp( | 12 | return MaterialApp( |
| 13 | title: 'Flutter Demo', | 13 | title: 'Flutter Demo', |
| 14 | theme: ThemeData( | 14 | theme: ThemeData( |
| 15 | - // This is the theme of your application. | ||
| 16 | - // | ||
| 17 | - // Try running your application with "flutter run". You'll see the | ||
| 18 | - // application has a blue toolbar. Then, without quitting the app, try | ||
| 19 | - // changing the primarySwatch below to Colors.green and then invoke | ||
| 20 | - // "hot reload" (press "r" in the console where you ran "flutter run", | ||
| 21 | - // or simply save your changes to "hot reload" in a Flutter IDE). | ||
| 22 | - // Notice that the counter didn't reset back to zero; the application | ||
| 23 | - // is not restarted. | ||
| 24 | primarySwatch: Colors.blue, | 15 | primarySwatch: Colors.blue, |
| 25 | ), | 16 | ), |
| 26 | home: HomePage(), | 17 | home: HomePage(), | ... | ... |
| 1 | +import 'package:flutter/material.dart'; | ||
| 2 | +import 'package:flutter/services.dart'; | ||
| 3 | +import '../shared/colors.dart'; | ||
| 4 | +import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 5 | + | ||
| 6 | +class DashBoard extends StatefulWidget { | ||
| 7 | + @override | ||
| 8 | + _DashBoardState createState() => _DashBoardState(); | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +class _DashBoardState extends State<DashBoard> { | ||
| 12 | + Widget build(BuildContext context) { | ||
| 13 | + return MaterialApp( | ||
| 14 | + title: 'Welcome to Flutter', | ||
| 15 | + home: Scaffold( | ||
| 16 | + appBar: AppBar( | ||
| 17 | + title: Text('Welcome to Flutter'), | ||
| 18 | + ), | ||
| 19 | + body: Center( | ||
| 20 | + child: Text('Hello World'), | ||
| 21 | + ), | ||
| 22 | + ), | ||
| 23 | + ); | ||
| 24 | + } | ||
| 25 | +} |
| 1 | +import 'package:flutter/material.dart'; | ||
| 2 | +import 'package:flutter/services.dart'; | ||
| 3 | +import '../shared/colors.dart'; | ||
| 4 | +import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 5 | +import './SignInPage.dart'; | ||
| 6 | + | ||
| 7 | +class HomePage extends StatefulWidget { | ||
| 8 | + final String pageTitle; | ||
| 9 | + int screenCount = 0; | ||
| 10 | + HomePage({Key key, this.pageTitle}) : super(key: key); | ||
| 11 | + | ||
| 12 | + @override | ||
| 13 | + _HomePageState createState() => _HomePageState(); | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +/// first page class | ||
| 17 | +class _HomePageState extends State<HomePage> { | ||
| 18 | + void increaseScreen() { | ||
| 19 | + setState(() { | ||
| 20 | + widget.screenCount++; | ||
| 21 | + }); | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + @override | ||
| 25 | + void initState() { | ||
| 26 | + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); | ||
| 27 | + | ||
| 28 | + super.initState(); | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + @override | ||
| 32 | + Widget build(BuildContext context) { | ||
| 33 | + final Size size = MediaQuery.of(context).size; | ||
| 34 | + | ||
| 35 | + ScreenUtil.instance = ScreenUtil(width: size.width, height: size.height) | ||
| 36 | + ..init(context); | ||
| 37 | + | ||
| 38 | + return Scaffold( | ||
| 39 | + body: GestureDetector( | ||
| 40 | + child: Container( | ||
| 41 | + color: Colors.white, | ||
| 42 | + height: size.height, | ||
| 43 | + child: Center( | ||
| 44 | + child: MediaQuery( | ||
| 45 | + data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0), | ||
| 46 | + child: Column( | ||
| 47 | + mainAxisAlignment: MainAxisAlignment.center, | ||
| 48 | + crossAxisAlignment: CrossAxisAlignment.center, | ||
| 49 | + children: <Widget>[ | ||
| 50 | + Container( | ||
| 51 | + height: size.height * 0.5, | ||
| 52 | + child: Column( | ||
| 53 | + mainAxisAlignment: MainAxisAlignment.end, | ||
| 54 | + children: <Widget>[ | ||
| 55 | + Row( | ||
| 56 | + mainAxisAlignment: MainAxisAlignment.center, | ||
| 57 | + children: <Widget>[ | ||
| 58 | + Text( | ||
| 59 | + 'SMART MEDICINE BOX', | ||
| 60 | + textScaleFactor: 1.0, | ||
| 61 | + style: TextStyle( | ||
| 62 | + color: Color(0xff004ca2), | ||
| 63 | + fontSize: 20, | ||
| 64 | + fontFamily: 'Noto', | ||
| 65 | + fontWeight: FontWeight.bold), | ||
| 66 | + ), | ||
| 67 | + ], | ||
| 68 | + ), | ||
| 69 | + AnimatedOpacity( | ||
| 70 | + opacity: 1, | ||
| 71 | + duration: Duration(milliseconds: 500), | ||
| 72 | + child: Container( | ||
| 73 | + padding: EdgeInsets.fromLTRB(0, 0, 0, 20), | ||
| 74 | + child: Image.asset('images/main_logo.png', | ||
| 75 | + width: 200, height: 250)), | ||
| 76 | + ), | ||
| 77 | + ], | ||
| 78 | + ), | ||
| 79 | + ), | ||
| 80 | + Container( | ||
| 81 | + height: size.height * 0.3, | ||
| 82 | + child: Column( | ||
| 83 | + mainAxisAlignment: MainAxisAlignment.end, | ||
| 84 | + crossAxisAlignment: CrossAxisAlignment.center, | ||
| 85 | + mainAxisSize: MainAxisSize.max, | ||
| 86 | + children: <Widget>[ | ||
| 87 | + GestureDetector( | ||
| 88 | + child: Container( | ||
| 89 | + width: size.width * 0.8, | ||
| 90 | + height: 46, | ||
| 91 | + margin: EdgeInsets.only(bottom: 0), | ||
| 92 | + child: FlatButton( | ||
| 93 | + padding: EdgeInsets.fromLTRB(0, 5, 0, 5), | ||
| 94 | + onPressed: () { | ||
| 95 | + Navigator.push( | ||
| 96 | + context, | ||
| 97 | + MaterialPageRoute( | ||
| 98 | + builder: (BuildContext context) => | ||
| 99 | + SignInPage(), | ||
| 100 | + )); | ||
| 101 | + }, | ||
| 102 | + child: Text( | ||
| 103 | + '로그인 sdf', | ||
| 104 | + textScaleFactor: 1.0, | ||
| 105 | + style: TextStyle( | ||
| 106 | + fontSize: 1, | ||
| 107 | + fontFamily: 'Noto', | ||
| 108 | + fontWeight: FontWeight.bold), | ||
| 109 | + ), | ||
| 110 | + textColor: Colors.black, | ||
| 111 | + color: Color(0xff1674f6), | ||
| 112 | + shape: RoundedRectangleBorder( | ||
| 113 | + borderRadius: BorderRadius.circular(50)), | ||
| 114 | + )), | ||
| 115 | + ), | ||
| 116 | + GestureDetector( | ||
| 117 | + child: Container( | ||
| 118 | + width: size.width * 0.8, | ||
| 119 | + padding: EdgeInsets.all(0), | ||
| 120 | + child: OutlineButton( | ||
| 121 | + padding: EdgeInsets.fromLTRB(0, 25, 0, 15), | ||
| 122 | + onPressed: () { | ||
| 123 | + Navigator.push( | ||
| 124 | + context, | ||
| 125 | + MaterialPageRoute( | ||
| 126 | + builder: (BuildContext context) => | ||
| 127 | + SignInPage(), | ||
| 128 | + )); | ||
| 129 | + }, | ||
| 130 | + child: Text( | ||
| 131 | + '회원 가입', | ||
| 132 | + textScaleFactor: 1.0, | ||
| 133 | + style: | ||
| 134 | + TextStyle(fontSize: 16, fontFamily: 'Noto'), | ||
| 135 | + ), | ||
| 136 | + textColor: Colors.black, | ||
| 137 | + highlightedBorderColor: highlightColor, | ||
| 138 | + borderSide: BorderSide.none, | ||
| 139 | + shape: RoundedRectangleBorder( | ||
| 140 | + borderRadius: BorderRadius.circular(50)), | ||
| 141 | + )), | ||
| 142 | + ), | ||
| 143 | + ], | ||
| 144 | + ), | ||
| 145 | + ), | ||
| 146 | + ], | ||
| 147 | + ), | ||
| 148 | + )), | ||
| 149 | + ), | ||
| 150 | + ), | ||
| 151 | + backgroundColor: bgColor, | ||
| 152 | + ); | ||
| 153 | + } | ||
| 154 | +} |
| 1 | +import 'package:flutter/material.dart'; | ||
| 2 | +import 'package:flutter/services.dart'; | ||
| 3 | + | ||
| 4 | +class SignInPage extends StatefulWidget { | ||
| 5 | + @override | ||
| 6 | + _SignInPageState createState() => _SignInPageState(); | ||
| 7 | +} | ||
| 8 | + | ||
| 9 | +/// | ||
| 10 | +class _SignInPageState extends State<SignInPage> { | ||
| 11 | + bool passwordVisible = false; | ||
| 12 | + bool _validateEmail = false; | ||
| 13 | + bool _validatePassword = false; | ||
| 14 | + final emailController = TextEditingController(); | ||
| 15 | + final passwordController = TextEditingController(); | ||
| 16 | + | ||
| 17 | + Widget build(BuildContext context) { | ||
| 18 | + final Size size = MediaQuery.of(context).size; | ||
| 19 | + final mqData = MediaQuery.of(context); | ||
| 20 | + final mqDataScale = mqData.copyWith(textScaleFactor: 1.0); | ||
| 21 | + | ||
| 22 | + return WillPopScope( | ||
| 23 | + onWillPop: () { | ||
| 24 | + if (Navigator.canPop(context)) { | ||
| 25 | + //Navigator.pop(context); | ||
| 26 | + Navigator.of(context).pop(); | ||
| 27 | + } else { | ||
| 28 | + SystemNavigator.pop(); | ||
| 29 | + } | ||
| 30 | + }, | ||
| 31 | + child: Scaffold( | ||
| 32 | + // appBar: AppBar( | ||
| 33 | + // elevation: 0, | ||
| 34 | + // backgroundColor: white, | ||
| 35 | + // title: Padding( | ||
| 36 | + // padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), | ||
| 37 | + // child: Text('', | ||
| 38 | + // textScaleFactor: 1.0, | ||
| 39 | + // style: TextStyle( | ||
| 40 | + // color: Colors.grey, fontFamily: 'Noto', fontSize: 16)), | ||
| 41 | + // )), | ||
| 42 | + body: Builder( | ||
| 43 | + builder: (BuildContext context) { | ||
| 44 | + return ListView( | ||
| 45 | + children: <Widget>[ | ||
| 46 | + Padding( | ||
| 47 | + padding: EdgeInsets.only(top: 25, left: 18, right: 18), | ||
| 48 | + child: Stack( | ||
| 49 | + children: <Widget>[ | ||
| 50 | + Column( | ||
| 51 | + mainAxisAlignment: MainAxisAlignment.start, | ||
| 52 | + crossAxisAlignment: CrossAxisAlignment.start, | ||
| 53 | + children: <Widget>[ | ||
| 54 | + Padding( | ||
| 55 | + padding: const EdgeInsets.fromLTRB(20, 0, 0, 0), | ||
| 56 | + child: Text('로그인', | ||
| 57 | + textScaleFactor: 1.0, | ||
| 58 | + style: TextStyle( | ||
| 59 | + fontSize: 34, | ||
| 60 | + fontFamily: 'Noto', | ||
| 61 | + fontWeight: FontWeight.bold)), | ||
| 62 | + ), | ||
| 63 | + Padding( | ||
| 64 | + padding: const EdgeInsets.fromLTRB(20, 0, 20, 0), | ||
| 65 | + child: new Column( | ||
| 66 | + children: <Widget>[ | ||
| 67 | + MediaQuery( | ||
| 68 | + data: mqDataScale, | ||
| 69 | + child: TextFormField( | ||
| 70 | + keyboardType: TextInputType.text, | ||
| 71 | + controller: emailController, | ||
| 72 | + decoration: InputDecoration( | ||
| 73 | + labelText: '이메일', | ||
| 74 | + helperText: '이메일 주소를 입력해주세요.', | ||
| 75 | + contentPadding: | ||
| 76 | + EdgeInsets.fromLTRB(0, 5, 0, 5), | ||
| 77 | + errorText: _validateEmail | ||
| 78 | + ? '등록되지 않은 아이디입니다.' | ||
| 79 | + : null, | ||
| 80 | + labelStyle: TextStyle( | ||
| 81 | + fontSize: 14, | ||
| 82 | + color: Color(0xff000000)), | ||
| 83 | + helperStyle: TextStyle( | ||
| 84 | + fontSize: 12, | ||
| 85 | + color: Color(0xffb2b2b2)), | ||
| 86 | + // Here is key idea | ||
| 87 | + ), | ||
| 88 | + ), | ||
| 89 | + ) | ||
| 90 | + ], | ||
| 91 | + ), | ||
| 92 | + ), | ||
| 93 | + Padding( | ||
| 94 | + padding: const EdgeInsets.fromLTRB(20, 0, 20, 20), | ||
| 95 | + child: new Column( | ||
| 96 | + children: <Widget>[ | ||
| 97 | + MediaQuery( | ||
| 98 | + data: mqDataScale, | ||
| 99 | + child: TextFormField( | ||
| 100 | + keyboardType: TextInputType.text, | ||
| 101 | + controller: passwordController, | ||
| 102 | + obscureText: | ||
| 103 | + !passwordVisible, //This will obscure text dynamically | ||
| 104 | + decoration: InputDecoration( | ||
| 105 | + labelText: '비밀번호', | ||
| 106 | + helperText: '비밀번호를 입력해 주세요.', | ||
| 107 | + errorText: _validatePassword | ||
| 108 | + ? '비밀번호가 일치하지 않습니다.' | ||
| 109 | + : null, | ||
| 110 | + labelStyle: TextStyle( | ||
| 111 | + fontSize: 14, | ||
| 112 | + color: Color(0xff000000)), | ||
| 113 | + helperStyle: TextStyle( | ||
| 114 | + fontSize: 12, | ||
| 115 | + color: Color(0xffb2b2b2)), | ||
| 116 | + // Here is key idea | ||
| 117 | + suffixIcon: IconButton( | ||
| 118 | + icon: Icon( | ||
| 119 | + // Based on passwordVisible state choose the icon | ||
| 120 | + passwordVisible | ||
| 121 | + ? Icons.visibility | ||
| 122 | + : Icons.visibility_off, | ||
| 123 | + color: Color(0xff2c2c2c), | ||
| 124 | + ), | ||
| 125 | + onPressed: () { | ||
| 126 | + // Update the state i.e. toogle the state of passwordVisible variable | ||
| 127 | + setState(() { | ||
| 128 | + passwordVisible = !passwordVisible; | ||
| 129 | + }); | ||
| 130 | + }, | ||
| 131 | + ), | ||
| 132 | + ), | ||
| 133 | + ), | ||
| 134 | + ) | ||
| 135 | + ], | ||
| 136 | + ), | ||
| 137 | + ), | ||
| 138 | + Row( | ||
| 139 | + mainAxisAlignment: MainAxisAlignment.center, | ||
| 140 | + children: <Widget>[ | ||
| 141 | + Container( | ||
| 142 | + width: size.width * 0.8, | ||
| 143 | + height: 46, | ||
| 144 | + child: RaisedButton( | ||
| 145 | + color: Color(0xff1674f6), | ||
| 146 | + child: Text("로그인", | ||
| 147 | + textScaleFactor: 1.0, | ||
| 148 | + style: TextStyle( | ||
| 149 | + color: Colors.white, | ||
| 150 | + fontSize: 16, | ||
| 151 | + fontFamily: 'Noto', | ||
| 152 | + fontWeight: FontWeight.bold)), | ||
| 153 | + onPressed: () async { | ||
| 154 | + String saveMessage; | ||
| 155 | + if (emailController.text.isEmpty || | ||
| 156 | + passwordController.text.isEmpty) { | ||
| 157 | + showDialog( | ||
| 158 | + context: context, | ||
| 159 | + builder: (BuildContext context) { | ||
| 160 | + return AlertDialog( | ||
| 161 | + title: new Text('이메일 & 비밀번호'), | ||
| 162 | + content: new Text( | ||
| 163 | + '이메일과 비밀번호를 입력해주세요.'), | ||
| 164 | + actions: <Widget>[ | ||
| 165 | + new FlatButton( | ||
| 166 | + child: new Text('Close'), | ||
| 167 | + onPressed: () { | ||
| 168 | + Navigator.of(context) | ||
| 169 | + .pop(); | ||
| 170 | + }) | ||
| 171 | + ], | ||
| 172 | + ); | ||
| 173 | + }); | ||
| 174 | + } | ||
| 175 | + }, | ||
| 176 | + shape: RoundedRectangleBorder( | ||
| 177 | + borderRadius: BorderRadius.circular(20)), | ||
| 178 | + ), | ||
| 179 | + ), | ||
| 180 | + ], | ||
| 181 | + ), | ||
| 182 | + ], | ||
| 183 | + ), | ||
| 184 | + ], | ||
| 185 | + ), | ||
| 186 | + ), | ||
| 187 | + ], | ||
| 188 | + ); | ||
| 189 | + }, | ||
| 190 | + ), | ||
| 191 | + ), | ||
| 192 | + ); | ||
| 193 | + } | ||
| 194 | +} |
| 1 | +import 'package:flutter/material.dart'; | ||
| 2 | +import 'package:flutter/services.dart'; | ||
| 3 | +import '../shared/colors.dart'; | ||
| 4 | +import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 5 | + | ||
| 6 | +class SignUpPage extends StatefulWidget { | ||
| 7 | + @override | ||
| 8 | + _SignUpPageState createState() => _SignUpPageState(); | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +class _SignUpPageState extends State<SignUpPage> { | ||
| 12 | + Widget build(BuildContext context) { | ||
| 13 | + return MaterialApp( | ||
| 14 | + title: 'Welcome to Flutter', | ||
| 15 | + home: Scaffold( | ||
| 16 | + appBar: AppBar( | ||
| 17 | + title: Text('Welcome to Flutter'), | ||
| 18 | + ), | ||
| 19 | + body: Center( | ||
| 20 | + child: Text('Hello World'), | ||
| 21 | + ), | ||
| 22 | + ), | ||
| 23 | + ); | ||
| 24 | + } | ||
| 25 | +} |
| 1 | +import 'package:flutter/material.dart'; | ||
| 2 | + | ||
| 3 | + const Color bgColor = Color(0xffF4F7FA); | ||
| 4 | +// const Color primaryColor = Colors.green; | ||
| 5 | + const Color primaryColor = Color(0xff44c662); | ||
| 6 | + const Color white = Colors.white; | ||
| 7 | + const Color darkText = Colors.black54; | ||
| 8 | + const Color highlightColor = Colors.green; |
| ... | @@ -7,61 +7,61 @@ packages: | ... | @@ -7,61 +7,61 @@ packages: |
| 7 | name: async | 7 | name: async |
| 8 | url: "https://pub.dartlang.org" | 8 | url: "https://pub.dartlang.org" |
| 9 | source: hosted | 9 | source: hosted |
| 10 | - version: "2.5.0" | 10 | + version: "2.5.0-nullsafety.1" |
| 11 | boolean_selector: | 11 | boolean_selector: |
| 12 | dependency: transitive | 12 | dependency: transitive |
| 13 | description: | 13 | description: |
| 14 | name: boolean_selector | 14 | name: boolean_selector |
| 15 | url: "https://pub.dartlang.org" | 15 | url: "https://pub.dartlang.org" |
| 16 | source: hosted | 16 | source: hosted |
| 17 | - version: "2.1.0" | 17 | + version: "2.1.0-nullsafety.1" |
| 18 | characters: | 18 | characters: |
| 19 | dependency: transitive | 19 | dependency: transitive |
| 20 | description: | 20 | description: |
| 21 | name: characters | 21 | name: characters |
| 22 | url: "https://pub.dartlang.org" | 22 | url: "https://pub.dartlang.org" |
| 23 | source: hosted | 23 | source: hosted |
| 24 | - version: "1.1.0" | 24 | + version: "1.1.0-nullsafety.3" |
| 25 | charcode: | 25 | charcode: |
| 26 | dependency: transitive | 26 | dependency: transitive |
| 27 | description: | 27 | description: |
| 28 | name: charcode | 28 | name: charcode |
| 29 | url: "https://pub.dartlang.org" | 29 | url: "https://pub.dartlang.org" |
| 30 | source: hosted | 30 | source: hosted |
| 31 | - version: "1.2.0" | 31 | + version: "1.2.0-nullsafety.1" |
| 32 | clock: | 32 | clock: |
| 33 | dependency: transitive | 33 | dependency: transitive |
| 34 | description: | 34 | description: |
| 35 | name: clock | 35 | name: clock |
| 36 | url: "https://pub.dartlang.org" | 36 | url: "https://pub.dartlang.org" |
| 37 | source: hosted | 37 | source: hosted |
| 38 | - version: "1.1.0" | 38 | + version: "1.1.0-nullsafety.1" |
| 39 | collection: | 39 | collection: |
| 40 | dependency: transitive | 40 | dependency: transitive |
| 41 | description: | 41 | description: |
| 42 | name: collection | 42 | name: collection |
| 43 | url: "https://pub.dartlang.org" | 43 | url: "https://pub.dartlang.org" |
| 44 | source: hosted | 44 | source: hosted |
| 45 | - version: "1.15.0" | 45 | + version: "1.15.0-nullsafety.3" |
| 46 | - cupertino_icons: | ||
| 47 | - dependency: "direct main" | ||
| 48 | - description: | ||
| 49 | - name: cupertino_icons | ||
| 50 | - url: "https://pub.dartlang.org" | ||
| 51 | - source: hosted | ||
| 52 | - version: "1.0.2" | ||
| 53 | fake_async: | 46 | fake_async: |
| 54 | dependency: transitive | 47 | dependency: transitive |
| 55 | description: | 48 | description: |
| 56 | name: fake_async | 49 | name: fake_async |
| 57 | url: "https://pub.dartlang.org" | 50 | url: "https://pub.dartlang.org" |
| 58 | source: hosted | 51 | source: hosted |
| 59 | - version: "1.2.0" | 52 | + version: "1.2.0-nullsafety.1" |
| 60 | flutter: | 53 | flutter: |
| 61 | dependency: "direct main" | 54 | dependency: "direct main" |
| 62 | description: flutter | 55 | description: flutter |
| 63 | source: sdk | 56 | source: sdk |
| 64 | version: "0.0.0" | 57 | version: "0.0.0" |
| 58 | + flutter_screenutil: | ||
| 59 | + dependency: "direct main" | ||
| 60 | + description: | ||
| 61 | + name: flutter_screenutil | ||
| 62 | + url: "https://pub.dartlang.org" | ||
| 63 | + source: hosted | ||
| 64 | + version: "0.7.0" | ||
| 65 | flutter_test: | 65 | flutter_test: |
| 66 | dependency: "direct dev" | 66 | dependency: "direct dev" |
| 67 | description: flutter | 67 | description: flutter |
| ... | @@ -73,21 +73,21 @@ packages: | ... | @@ -73,21 +73,21 @@ packages: |
| 73 | name: matcher | 73 | name: matcher |
| 74 | url: "https://pub.dartlang.org" | 74 | url: "https://pub.dartlang.org" |
| 75 | source: hosted | 75 | source: hosted |
| 76 | - version: "0.12.10" | 76 | + version: "0.12.10-nullsafety.1" |
| 77 | meta: | 77 | meta: |
| 78 | dependency: transitive | 78 | dependency: transitive |
| 79 | description: | 79 | description: |
| 80 | name: meta | 80 | name: meta |
| 81 | url: "https://pub.dartlang.org" | 81 | url: "https://pub.dartlang.org" |
| 82 | source: hosted | 82 | source: hosted |
| 83 | - version: "1.3.0" | 83 | + version: "1.3.0-nullsafety.3" |
| 84 | path: | 84 | path: |
| 85 | dependency: transitive | 85 | dependency: transitive |
| 86 | description: | 86 | description: |
| 87 | name: path | 87 | name: path |
| 88 | url: "https://pub.dartlang.org" | 88 | url: "https://pub.dartlang.org" |
| 89 | source: hosted | 89 | source: hosted |
| 90 | - version: "1.8.0" | 90 | + version: "1.8.0-nullsafety.1" |
| 91 | sky_engine: | 91 | sky_engine: |
| 92 | dependency: transitive | 92 | dependency: transitive |
| 93 | description: flutter | 93 | description: flutter |
| ... | @@ -99,55 +99,55 @@ packages: | ... | @@ -99,55 +99,55 @@ packages: |
| 99 | name: source_span | 99 | name: source_span |
| 100 | url: "https://pub.dartlang.org" | 100 | url: "https://pub.dartlang.org" |
| 101 | source: hosted | 101 | source: hosted |
| 102 | - version: "1.8.0" | 102 | + version: "1.8.0-nullsafety.2" |
| 103 | stack_trace: | 103 | stack_trace: |
| 104 | dependency: transitive | 104 | dependency: transitive |
| 105 | description: | 105 | description: |
| 106 | name: stack_trace | 106 | name: stack_trace |
| 107 | url: "https://pub.dartlang.org" | 107 | url: "https://pub.dartlang.org" |
| 108 | source: hosted | 108 | source: hosted |
| 109 | - version: "1.10.0" | 109 | + version: "1.10.0-nullsafety.1" |
| 110 | stream_channel: | 110 | stream_channel: |
| 111 | dependency: transitive | 111 | dependency: transitive |
| 112 | description: | 112 | description: |
| 113 | name: stream_channel | 113 | name: stream_channel |
| 114 | url: "https://pub.dartlang.org" | 114 | url: "https://pub.dartlang.org" |
| 115 | source: hosted | 115 | source: hosted |
| 116 | - version: "2.1.0" | 116 | + version: "2.1.0-nullsafety.1" |
| 117 | string_scanner: | 117 | string_scanner: |
| 118 | dependency: transitive | 118 | dependency: transitive |
| 119 | description: | 119 | description: |
| 120 | name: string_scanner | 120 | name: string_scanner |
| 121 | url: "https://pub.dartlang.org" | 121 | url: "https://pub.dartlang.org" |
| 122 | source: hosted | 122 | source: hosted |
| 123 | - version: "1.1.0" | 123 | + version: "1.1.0-nullsafety.1" |
| 124 | term_glyph: | 124 | term_glyph: |
| 125 | dependency: transitive | 125 | dependency: transitive |
| 126 | description: | 126 | description: |
| 127 | name: term_glyph | 127 | name: term_glyph |
| 128 | url: "https://pub.dartlang.org" | 128 | url: "https://pub.dartlang.org" |
| 129 | source: hosted | 129 | source: hosted |
| 130 | - version: "1.2.0" | 130 | + version: "1.2.0-nullsafety.1" |
| 131 | test_api: | 131 | test_api: |
| 132 | dependency: transitive | 132 | dependency: transitive |
| 133 | description: | 133 | description: |
| 134 | name: test_api | 134 | name: test_api |
| 135 | url: "https://pub.dartlang.org" | 135 | url: "https://pub.dartlang.org" |
| 136 | source: hosted | 136 | source: hosted |
| 137 | - version: "0.2.19" | 137 | + version: "0.2.19-nullsafety.2" |
| 138 | typed_data: | 138 | typed_data: |
| 139 | dependency: transitive | 139 | dependency: transitive |
| 140 | description: | 140 | description: |
| 141 | name: typed_data | 141 | name: typed_data |
| 142 | url: "https://pub.dartlang.org" | 142 | url: "https://pub.dartlang.org" |
| 143 | source: hosted | 143 | source: hosted |
| 144 | - version: "1.3.0" | 144 | + version: "1.3.0-nullsafety.3" |
| 145 | vector_math: | 145 | vector_math: |
| 146 | dependency: transitive | 146 | dependency: transitive |
| 147 | description: | 147 | description: |
| 148 | name: vector_math | 148 | name: vector_math |
| 149 | url: "https://pub.dartlang.org" | 149 | url: "https://pub.dartlang.org" |
| 150 | source: hosted | 150 | source: hosted |
| 151 | - version: "2.1.0" | 151 | + version: "2.1.0-nullsafety.3" |
| 152 | sdks: | 152 | sdks: |
| 153 | - dart: ">=2.12.0-0.0 <3.0.0" | 153 | + dart: ">=2.10.0-110 <2.11.0" | ... | ... |
| 1 | -name: app_frontend | 1 | +name: flutter_application_1 |
| 2 | description: A new Flutter project. | 2 | description: A new Flutter project. |
| 3 | 3 | ||
| 4 | # The following line prevents the package from being accidentally published to | 4 | # The following line prevents the package from being accidentally published to |
| ... | @@ -23,54 +23,20 @@ environment: | ... | @@ -23,54 +23,20 @@ environment: |
| 23 | dependencies: | 23 | dependencies: |
| 24 | flutter: | 24 | flutter: |
| 25 | sdk: flutter | 25 | sdk: flutter |
| 26 | + | ||
| 27 | + flutter_screenutil: ^0.7.0 | ||
| 26 | 28 | ||
| 27 | 29 | ||
| 28 | - # The following adds the Cupertino Icons font to your application. | ||
| 29 | - # Use with the CupertinoIcons class for iOS style icons. | ||
| 30 | - cupertino_icons: ^1.0.2 | ||
| 31 | - | ||
| 32 | dev_dependencies: | 30 | dev_dependencies: |
| 33 | flutter_test: | 31 | flutter_test: |
| 34 | sdk: flutter | 32 | sdk: flutter |
| 35 | 33 | ||
| 36 | -# For information on the generic Dart part of this file, see the | ||
| 37 | -# following page: https://dart.dev/tools/pub/pubspec | ||
| 38 | - | ||
| 39 | -# The following section is specific to Flutter. | ||
| 40 | flutter: | 34 | flutter: |
| 41 | 35 | ||
| 42 | - # The following line ensures that the Material Icons font is | ||
| 43 | - # included with your application, so that you can use the icons in | ||
| 44 | - # the material Icons class. | ||
| 45 | - uses-material-design: true | ||
| 46 | 36 | ||
| 47 | - # To add assets to your application, add an assets section, like this: | 37 | + uses-material-design: true |
| 48 | - # assets: | ||
| 49 | - # - images/a_dot_burr.jpeg | ||
| 50 | - # - images/a_dot_ham.jpeg | ||
| 51 | - | ||
| 52 | - # An image asset can refer to one or more resolution-specific "variants", see | ||
| 53 | - # https://flutter.dev/assets-and-images/#resolution-aware. | ||
| 54 | 38 | ||
| 55 | - # For details regarding adding assets from package dependencies, see | 39 | + assets: |
| 56 | - # https://flutter.dev/assets-and-images/#from-packages | 40 | + - images/ |
| 41 | + - images/main_logo.png | ||
| 57 | 42 | ||
| 58 | - # To add custom fonts to your application, add a fonts section here, | ||
| 59 | - # in this "flutter" section. Each entry in this list should have a | ||
| 60 | - # "family" key with the font family name, and a "fonts" key with a | ||
| 61 | - # list giving the asset and other descriptors for the font. For | ||
| 62 | - # example: | ||
| 63 | - # fonts: | ||
| 64 | - # - family: Schyler | ||
| 65 | - # fonts: | ||
| 66 | - # - asset: fonts/Schyler-Regular.ttf | ||
| 67 | - # - asset: fonts/Schyler-Italic.ttf | ||
| 68 | - # style: italic | ||
| 69 | - # - family: Trajan Pro | ||
| 70 | - # fonts: | ||
| 71 | - # - asset: fonts/TrajanPro.ttf | ||
| 72 | - # - asset: fonts/TrajanPro_Bold.ttf | ||
| 73 | - # weight: 700 | ||
| 74 | - # | ||
| 75 | - # For details regarding fonts from package dependencies, | ||
| 76 | - # see https://flutter.dev/custom-fonts/#from-packages | ... | ... |
| ... | @@ -8,7 +8,7 @@ | ... | @@ -8,7 +8,7 @@ |
| 8 | import 'package:flutter/material.dart'; | 8 | import 'package:flutter/material.dart'; |
| 9 | import 'package:flutter_test/flutter_test.dart'; | 9 | import 'package:flutter_test/flutter_test.dart'; |
| 10 | 10 | ||
| 11 | -import 'package:app_frontend/main.dart'; | 11 | +import 'package:flutter_application_1/main.dart'; |
| 12 | 12 | ||
| 13 | void main() { | 13 | void main() { |
| 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { | 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { | ... | ... |
-
Please register or login to post a comment