E-Commerce (1일 차)

어플 구현 따라하기
김인범's avatar
Feb 19, 2025
E-Commerce (1일 차)
https://undraw.co/illustrations (일러스트 다운 사이트)
https://pub.dev/packages/introduction_screen (소개 페이지 라이브러리)

라이브러리 추가하기

notion image
pubspec.yaml에 라이브러리 추가
 

앱 실행 시 로딩 페이지 제작

import 'dart:async'; import 'package:ecommerce/screens/onboarding_screen.dart'; import 'package:flutter/material.dart'; class SplashScreen extends StatefulWidget { const SplashScreen({super.key}); @override State<SplashScreen> createState() => _SplashScreenState(); } class _SplashScreenState extends State<SplashScreen> { @override void initState() { super.initState(); Timer( Duration(seconds: 3), () => Navigator.push( context, MaterialPageRoute( builder: (context) => OnboardingScreen(), ))); } @override Widget build(BuildContext context) { return Material( child: Container( height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, decoration: BoxDecoration( color: Colors.black, image: DecorationImage( image: AssetImage("images/image2.jpg"), fit: BoxFit.cover, opacity: 0.4, )), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon( Icons.shopping_cart, size: 200, color: Color(0xFFDF4B4B), ), Text( "DP SHOP", style: TextStyle( color: Colors.white, fontSize: 40, fontWeight: FontWeight.bold, fontStyle: FontStyle.italic, ), ), ], ), ), ); } }
라이브러리를 Timer를 통해 사용자가 로딩 페이지에서 어느 정도 머물지 시간을 정해줄 수 있다.
notion image
Duration(seconds: 3) ← 코드를 통해서 3초간 머물게 한다.
이후 MaterialPageRoute 을 통해서 OnboardingScreen으로 이동시킨다.

SplashScreen 화면

notion image

Splash화면 이후 나타나는 Onboarding 화면

notion image

앱 실행 시 사이트 소개 페이지 제작

notion image
화면에 아래와 같은 소개 페이지들을 만들 수 있게 된다.
notion image
라이브러리를 통해 IntroductionScreen 이라는 위젯을 사용할 수 있다.
해당 위젯의 설정 중 pages를 통해 설명 페이지들을 넣어줄 수 있다.
PageViewModel 위젯을 이용해 각 페이지들의 요소를 설정할 수 있다.

show 각종 버튼들 설정해주기

각 설명페이지를 넘기거나 이전 설명페이지로 이동, 설명 페이지 전체 스킵과 같은 기능을 하는 button을 설정해 주어야 한다.
notion image
showSkipButton, showDoneButton, showBackButton을 true로 한 뒤
보여질 버튼들을 설정해주어야지 오류가 발생하지 않는다.

💡
만약 showSkipButton을 true로 설정하고,
skip을 설정해주지 않는다면 오류가 발생한다. 다른 버튼도 마찬가지..
notion image

 
Share article

taker