Inicio » Cursos » Flutter y Laravel Tienda Delivery

Implementación de la Pantalla Inicio | Curso Flutter y Laravel Tienda Delivery

El diseño de la pantalla inicio tendrá una imagen, texto y un botón para acceder a la siguiente pantalla.

Lección 39: Implementación de la Pantalla Inicio

Bien, llegamos al punto donde vamos a empezar a visualizar las pantallas que necesitamos en nuestra aplicación móvil.

Normalmente una pantalla de inicio cuenta con tres elementos frecuentes como:

  1. El Logo
  2. El nombre
  3. Y finalmente un boton para acceder a las funciones del aplicativo. Podemos agregarle más elementos aplicando diseño.

Si bien tenemos un archivo principal llamado main.dart este solo inicializa la app, para mostrar una pantalla gráfica creamos un archivo en el directorio pantalla/PantallaInicio.dart accedemos y digitamos el siguiente código:

import 'package:arequipalocal/pantalla/PantallaCategoria.dart';
import 'package:arequipalocal/pantalla/PantallaLogin.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class PantallaInicio extends StatefulWidget {
  @override
  _PantallaInicioState createState() => _PantallaInicioState();
}

class _PantallaInicioState extends State<PantallaInicio> {
  bool _islogin =false;
  void _verificarLogin() async{
    SharedPreferences login = await SharedPreferences.getInstance();
    var token = login.getString("token");
    if(token!=null){
      setState(() {
        _islogin = true;
      });
    }
  }

  @override
  void initState() {
    // TODO: implement initState
    _verificarLogin();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.orangeAccent,
      body: Container(
        width: MediaQuery.of(context).size.width,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text("AREQUIPALOCAL",style: TextStyle(color: Colors.white,fontSize: 40),textAlign: TextAlign.center,),
            SizedBox(
              height: 100,
            ),
            Text("Delivery al toque",style: TextStyle(color: Colors.white,fontSize: 25),),
            SizedBox(
              height: 100,
            ),
            RaisedButton(
              elevation: 0,
              shape: CircleBorder(),
              padding: EdgeInsets.all(15),
              onPressed: () async {
                _islogin
                    ?
                Navigator.of(context).push(MaterialPageRoute(
                    builder: (BuildContext) =>PantallaCategoria()
                ))
                    :
                Navigator.of(context).push(MaterialPageRoute(
                    builder: (BuildContext) =>PantallaLogin()
                ));
              },
              child: Icon(
                Icons.chevron_right,
                color: Colors.red,
              ),
            )

          ],
        ),
      ),
    );
  }
}

Donde evaluamos si existe un usuariuo autenticado o no, de acuerdo a esta evaluación el botón redirige al usuario a realizar un pedido o a loguearse.

Para ello tenemos una variable _islogin, además de una función que evalua una variable de almacenamiento local con SharedPreferences. Dicha evaluación de debe realizar al cargar la pantalla en el método initState.

 


1466 visitas

Curso Flutter y Laravel Tienda Delivery

Curso Flutter y Laravel Tienda Delivery

Descarga el código fuente del proyecto

USD 37.00 67.00


COMPRAR CURSO

Codea App
Codea App FullStack

Perú, México, Colombia, España, Venezuela, Argentina, Bolivia

You Fb Tik Pin

© Todos los derechos reservados Codea App | Cursos de programación | 2020 - 2022