[Flutter] 쇼핑몰 7

2021. 1. 1. 11:42Flutter Mobile App/Flutter 쇼핑몰 앱

반응형

스플래쉬 페이지 기능 구현

 

pubspec.yaml

더보기
name: books
description: A new Flutter project.

# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-aname and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  # Auth
  firebase_auth: ^0.18.4+1
  google_sign_in: ^4.5.6
  flutter_signin_button: ^1.1.0

  # Database
  cloud_firestore: ^0.14.4

  # Payment
  iamport_flutter: ^0.9.13

  # WebView
  webview_flutter: ^1.0.7

  #Mics
  intl: ^0.16.1
  flutter_swiper: ^1.1.6

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.3
  
  # Firebase Core
  # firebase_core: ^0.5.3

dev_dependencies:
  flutter_test:
    sdk: flutter

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
  - assets/images/

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages

더보기
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';

class SplashPage extends StatefulWidget {
  SplashPage({Key key}) : super(key: key);
  static const routeName = '/';

  @override
  _SplashPageState createState() => _SplashPageState();
}

String _msg = '';

class _SplashPageState extends State<SplashPage> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    loading();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        color: Theme.of(context).primaryColor,
        child: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              SizedBox(),
              Text(
                'BOOKS PROJECT',
                style: Theme.of(context)
                    .textTheme
                    .headline6
                    .copyWith(color: Colors.white),
              ),
              Text(
                '$_msg',
                style: Theme.of(context)
                    .textTheme
                    .bodyText1
                    .copyWith(color: Colors.white),
              ),
              Text(
                'COPYRIGHT BOOKS PROJECT',
                style: Theme.of(context)
                    .textTheme
                    .caption
                    .copyWith(color: Colors.white),
              ),
            ],
          ),
        ),
      ),
    );
  }

  Future<void> loading() async {
    await Future.delayed(Duration(seconds: 1));
    setState(() {
      _msg = 'Network Connect...';
    });
    FirebaseAuth.instance.authStateChanges().listen((data) {
      if (data == null) {
        print('데이터 없음');
        Navigator.pushReplacementNamed(context, '/signin', arguments: null);
        return;
      }
    });

    // CollectionReference books = FirebaseFirestore.instance.collection('books');
    // print(books.id);
    // print(books.parameters);
    // print(books.parent);

    // books.get().then((value) {
    //   print('ㅇㅋ');
    //   FirebaseAuth.instance.authStateChanges().listen((data) {
    //     if (data == null) {
    //       print('값');
    //       // Navigator.pushReplacementNamed(context, '/signin', arguments: value);
    //       return;
    //     } else {
    //       print('홈');
    //       // Navigator.pushReplacementNamed(context, '/home',
    //       //     arguments: {'user': books, 'books': data});
    //     }
    //   });
    // });

    // Future<void> addBook() {
    //   // Call the user's CollectionReference to add a new user
    //   return books
    //       .add({
    //         'author': '1', // John Doe
    //         'isbn': '2', // Stokes and Sons
    //         'name': '3', // 42
    //         'publisher': '4',
    //         'value': 2000
    //       })
    //       .then((value) => print("User Added"))
    //       .catchError((error) => print("Failed to add user: $error"));
    // }

    //   books.get().then((querySnapshot) => {
    //   querySnapshot.forEach((doc) => {
    //     console.log(`${doc.id} => ${doc.data()}`);
    //   });
    // });
    // minokuma-firebase-default-rtdb

    // if (books == null) {
    //   Navigator.pushReplacementNamed(context, '/signin', arguments: books);
    //   return;
    // } else {
    //   Navigator.pushReplacementNamed(context, '/home', arguments: {'user': books, 'books': books});
    // }

    // FirebaseFirestore.instance.collection('books').get().then((value) {
    //   FirebaseAuth.instance.authStateChanges().listen((userData) {
    //     if (userData == null) {
    //       Navigator.pushReplacementNamed(context, '/signin', arguments: value);
    //       return;
    //     } else {
    //       Navigator.pushReplacementNamed(context, '/home',
    //           arguments: {'user': userData, 'books': value});
    //     }
    //   });
    // });
  }
}

 

반응형

'Flutter Mobile App > Flutter 쇼핑몰 앱' 카테고리의 다른 글

[Flutter] 쇼핑몰 6  (0) 2021.01.01
[Flutter] 쇼핑몰 5  (0) 2021.01.01
[Flutter] 쇼핑몰 4  (0) 2020.12.31
[Flutter] 쇼핑몰 4  (0) 2020.12.31
[Flutter] 쇼핑몰 3  (0) 2020.12.31