Showing
77 changed files
with
502 additions
and
227 deletions
... | @@ -9,3 +9,11 @@ | ... | @@ -9,3 +9,11 @@ |
9 | ## 일정 | 9 | ## 일정 |
10 | + 2021-04-27 : Flutter 앱 생성 및 개발 환경 설정 | 10 | + 2021-04-27 : Flutter 앱 생성 및 개발 환경 설정 |
11 | + 2021-04-27 : 시작화면 router 생성 | 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 | + <!-- io.flutter.app.FlutterApplication is an android.app.Application that | ||
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. --> | ||
3 | <application | 8 | <application |
4 | - android:label="app_frontend" | 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 |
... | @@ -24,53 +24,19 @@ dependencies: | ... | @@ -24,53 +24,19 @@ dependencies: |
24 | flutter: | 24 | flutter: |
25 | sdk: flutter | 25 | sdk: flutter |
26 | 26 | ||
27 | + flutter_screenutil: ^0.7.0 | ||
27 | 28 | ||
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 | 29 | ||
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 | - | ||
47 | - # To add assets to your application, add an assets section, like this: | ||
48 | - # assets: | ||
49 | - # - images/a_dot_burr.jpeg | ||
50 | - # - images/a_dot_ham.jpeg | ||
51 | 36 | ||
52 | - # An image asset can refer to one or more resolution-specific "variants", see | 37 | + uses-material-design: true |
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