Aplicativo em Flutter – Tutorial -Part I

No mundo do desenvolvimento de aplicativos, o processo criativo não começa quando começamos a codificar. Ele começa muito antes, no momento em que visualizamos e esboçamos a aparência e a sensação do aplicativo. Ferramentas como Figma, AdobeXD, Sketch e Photoshop tornaram-se indispensáveis para designers e desenvolvedores, permitindo que eles criem interfaces de usuário intuitivas e visualmente atraentes. Mas, uma vez que o design está pronto, como o transformamos em um aplicativo funcional? Neste artigo, mergulharemos na transição de um layout Figma para um aplicativo Flutter.

Por que Figma?

Antes de nos aprofundarmos no processo, vale a pena entender por que o Figma se destaca. Esta ferramenta baseada em nuvem permite a colaboração em tempo real entre designers e desenvolvedores. Além disso, o Figma oferece uma interface intuitiva e a capacidade de criar protótipos interativos, tornando-o uma escolha popular entre muitos profissionais.

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class OnboardView extends StatelessWidget {
  const OnboardView({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        width: MediaQuery.of(context).size.width,
        height: MediaQuery.of(context).size.height,
        padding: const EdgeInsets.all(28),
        decoration: const BoxDecoration(
          image: DecorationImage(
            image: AssetImage(
              'assets/images/bg-onboard.png',
            ),
            fit: BoxFit.cover,
          ),
        ),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.end,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Image.asset('assets/images/logo.png', width: 176.44),
            Padding(
              padding: const EdgeInsets.symmetric(
                vertical: 20,
              ),
              child: RichText(
                text: const TextSpan(
                    text: "Tudo sobre",
                    style: TextStyle(
                        fontFamily: 'Inter',
                        fontSize: 32.0,
                        fontWeight: FontWeight.w300,
                        height: 1.16),
                    children: [
                      TextSpan(
                          text: "filmes, séries, animes e muito mais.",
                          style: TextStyle(
                            fontWeight: FontWeight.w700,
                          )),
                    ]),
              ),
            ),
            const Text(
              "Fique por dentro das informações de filmes, séries, animes e muito mais.",
              style: TextStyle(
                  fontFamily: 'Inter',
                  fontSize: 15.0,
                  height: 1.16,
                  color: Colors.white),
            ),
            const SizedBox(height: 20),
            CupertinoButton(
              padding: EdgeInsets.zero,
              child: Container(
                alignment: Alignment.center,
                width: double.infinity,
                height: 43.0,
                decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(62),
                  gradient: const LinearGradient(
                    begin: Alignment.topLeft,
                    end: Alignment.bottomRight,
                    colors: [
                      Color(0xff8000FF),
                      Color(0xff540BA1),
                    ],
                  ),
                ),
                child: const Text(
                  "Acessar",
                  style: TextStyle(
                      fontFamily: 'Inter',
                      color: Colors.white,
                      fontSize: 16,
                      fontWeight: FontWeight.w600),
                ),
              ),
              onPressed: () {},
            ),
            const SizedBox(height: 30)
          ],
        ),
      ),
    );
  }
}
import 'package:flutter/material.dart';

import 'package:app_tmdb/onboard.view.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'TMDB',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const OnboardView(),
    );
  }
}

Preparando o Design para a Codificação

  1. Exportação de Ativos: Certifique-se de que todos os ativos (ícones, imagens, fontes) sejam exportados no formato correto e nas resoluções necessárias. O Figma permite exportar facilmente em diferentes formatos e resoluções.
  2. Estruturação do Layout: Organize seu design em frames e componentes. Isso facilitará a identificação de widgets correspondentes no Flutter.
  3. Anote as Especificações: Anote dimensões, cores, fontes e outros detalhes importantes. Existem plugins e ferramentas que podem ajudar a extrair essas especificações diretamente do Figma.

Mãos à Obra: Codificando com Flutter

1. Configuração do Ambiente: Antes de tudo, certifique-se de que seu ambiente Flutter esteja configurado corretamente. Se você é novo no Flutter, a documentação oficial é um excelente ponto de partida.

2. Estrutura Básica: Comece criando a estrutura básica do seu aplicativo. Isso inclui a navegação, as páginas principais e qualquer funcionalidade básica.

3. Widgets e Componentes: O Flutter é conhecido por sua rica biblioteca de widgets. Muitos dos elementos de design que você criou no Figma podem ser facilmente replicados usando widgets padrão do Flutter, como Container, Text, Row, Column, entre outros.

4. Estilização: Utilize o sistema de temas do Flutter para replicar as cores, fontes e estilos definidos em seu design. Isso não apenas garante consistência, mas também facilita futuras alterações de design.

5. Interação e Animação: O Flutter oferece uma série de pacotes e ferramentas para adicionar interatividade e animações. Se o seu design Figma inclui transições ou animações específicas, explore as capacidades do Flutter para replicá-las.

6. Teste em Diferentes Dispositivos: Uma vez que seu aplicativo esteja pronto, teste-o em diferentes dispositivos e resoluções para garantir que ele se pareça e funcione conforme o esperado.

Links

Conclusão

A transição de um design Figma para um aplicativo Flutter pode parecer desafiadora à primeira vista, mas com a preparação adequada e uma compreensão clara dos recursos do Flutter, esse processo pode ser simplificado. O resultado? Um aplicativo que não apenas parece bom, mas também é funcional, eficiente e pronto para o mercado. Seja você um designer buscando expandir suas habilidades de codificação ou um desenvolvedor ansioso para transformar designs em realidade, espero que este tutorial tenha iluminado seu caminho.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *