Simple Splash Screen in Flutter

Hi,
This tutorial is for the developing of simple splash screen with timer. 
This tutorial has three files.

  • main.dart
  • splash.dart
  • home.dart

main.dart

import ‘package:flutter/material.dart’;
import ‘package:home/splash.dart’;

void main() {
  runApp(MaterialApp(
    theme: ThemeData.dark(),
    debugShowCheckedModeBanner: false,
    home: SplashScreen(),
  ));
}

splash.dart

import ‘dart:async’;

import ‘package:flutter/material.dart’;

import ‘package:home/home.dart’;

class SplashScreen extends StatefulWidget {

  @override

  _SplashScreenState createState() => _SplashScreenState();

}

class _SplashScreenState extends State<SplashScreen> {

  startSplash() async {

    var dur = Duration(seconds: 2);

    return new Timer(dur, navigateHome);

  }

  navigateHome() {

    Navigator.of(context)

        .pushReplacement(MaterialPageRoute(builder: (context) => HomeScreen()));

  }

  @override

  void initState() {

    // TODO: implement initState

    super.initState();

    startSplash();

  }

  @override

  Widget build(BuildContext context) {

    return SafeArea(

      child: Scaffold(

          body: Container(

        color: Colors.red,

        child: Center(

          child: Text(‘Splash Screen’),

        ),

      )),

    );

  }

}

home.dart

import ‘package:flutter/material.dart’;

class HomeScreen extends StatefulWidget {

  @override

  _HomeScreenState createState() => _HomeScreenState();

}

class _HomeScreenState extends State<HomeScreen> {

  @override

  Widget build(BuildContext context) {

    return SafeArea(

        child: Scaffold(

      body: Container(

        color: Colors.deepOrange,

        child: Center(

          child: Text(

            ‘Home Page’,

            style: TextStyle(fontSize: 22),

          ),

        ),

      ),

    ));

  }

}

OUTPUT:

splash.dart
home.dart