Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Desenvolvimento Multiplataforma com Flutter e F...

Desenvolvimento Multiplataforma com Flutter e Firebase

Slides do workshop ministrado na semana academica da Engenhaira de Controle e Automação e Engenharia Eletrônica, sobre desenvolvimento multiplataforma com Flutter e Firebase.

João Reichert

December 21, 2018
Tweet

More Decks by João Reichert

Other Decks in Programming

Transcript

  1. JOÃO REICHERT ・iOS Developer @ Brave.ag ・Eng. Controle e Automação

    @ UFPel ・5 anos trabalhando com iOS https://github.com/reeichert/ [email protected]
  2. CONTEÚDO • Recap ! • O que é Flutter "

    • O que é Firebase # • Code
  3. O QUE É FLUTTER? • Um SDK para desenvolver apps

    multiplataforma* • Foco em apps de alta performance, modernos e bonitos
  4. O QUE É FLUTTER? • Um SDK para desenvolver apps

    multiplataforma* • Foco em apps de alta performance, modernos e bonitos • Desenvolvido pelo Google, é gratuito e open-source
  5. O QUE É FLUTTER? • Um SDK para desenvolver apps

    multiplataforma* • Foco em apps de alta performance, modernos e bonitos • Desenvolvido pelo Google, é gratuito e open-source
  6. O QUE É FLUTTER? • Um SDK para desenvolver apps

    multiplataforma* • Foco em apps de alta performance, modernos e bonitos • Desenvolvido pelo Google, é gratuito e open-source ★ Multiplataforma (iOS, Android e Fuchsia)
  7. ESTRUTURA import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends

    StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp(); } }
  8. ESTRUTURA class MyApp extends StatelessWidget { @override Widget build(BuildContext context)

    { return MaterialApp( theme: ThemeData( primarySwatch: Colors.teal, ), home: HomePage(), ); } }
  9. ESTRUTURA class HomePage extends StatelessWidget { @override Widget build(BuildContext context)

    { return Scaffold( appBar: AppBar( title: Text('Workshop'), ) ); } }
  10. ESTRUTURA class MyApp extends StatelessWidget { @override Widget build(BuildContext context)

    { return MaterialApp( theme: ThemeData( primarySwatch: Colors.teal, ), home: HomePage(), ); } } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Workshop'), ) ); }
  11. ESTRUTURA class HomePage extends StatelessWidget { @override Widget build(BuildContext context)

    { return Scaffold( appBar: AppBar( title: Text('Workshop'), ), drawer: Drawer() ); } }
  12. ESTRUTURA class HomePage extends StatelessWidget { @override Widget build(BuildContext context)

    { return Scaffold( appBar: AppBar( title: Text('Workshop'), ), drawer: Drawer() ); } }
  13. ESTRUTURA class HomePage extends StatelessWidget { @override Widget build(BuildContext context)

    { return Scaffold( appBar: AppBar( title: Text('Workshop'), ), drawer: Drawer(), floatingActionButton: FloatingActionButton( child: Icon(Icons.add), onPressed: () {}, ) ); } }
  14. ESTRUTURA class HomePage extends StatelessWidget { @override Widget build(BuildContext context)

    { return Scaffold( appBar: AppBar( title: Text('Workshop'), ), body: playersList(), ); } Widget playersList() { return Container(); } }
  15. ESTRUTURA class HomePage extends StatelessWidget { final players = [

    'Bruxo', 'Romário', 'Ronaldo', 'Adriano', 'Neymar', 'Vampeta' ]; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Workshop'), ), body: playersList(), ); } Widget playersList() { return Container(); } }
  16. ESTRUTURA Widget playersList() { return ListView.builder( itemCount: players.lenght, itemBuilder: (context,

    index) { return playerRow(players[index]); } ); } Widget playerRow(String playerName) { return ListTile( title: Text(playerName) ); }
  17. ESTRUTURA Widget playerRow(String playerName) { return Padding( padding: const EdgeInsets.all(8.0),

    child: Container( decoration: BoxDecoration( border: Border.all(color: Colors.red), borderRadius: BorderRadius.circular(10.0) ), child: ListTile( title: Text(playerName), ), ), ); }
  18. O QUE É FIREBASE? Firebase nos ajuda a construir melhores

    apps mobile e a crescer o negócio Construindo aplicativos de forma rápida, sem ter que gerenciar infra-estrutura
  19. O QUE É FIREBASE? Gratuito em sua maior parte e

    com preços acessíveis para escalar
  20. BUILD • Realtime Database • Cloud Firestore (Beta) • Authentication

    • ML Kit(Beta) • Hosting • Cloud Storage • Cloud Functions
  21. GROW • Google analytics • Cloud messaging • Dynamic links

    • Remote config • App indexing • A/B Testing (Beta) • Predictions (Beta)