Ir para conteúdo

Bem vindo ao Fluttership

Fluttership

Pesquisar na Comunidade

Showing results for tags 'flutter'.



More search options

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Fóruns

  • Dúvidas e Suporte
    • Flutter Mobile
    • Flutter Desktop
    • Flutter Web
  • Eventos
    • Eventos e Meetups
  • Quadro Oficial
    • Projeto Oficiais
    • Repositório Oficial
    • Releases Flutter
    • Desafios
    • Novidades da Comunidade
    • Faça parte da equipe
  • Material de Estudo
    • Exemplos
    • Didáticas em vídeos
    • Didática em Livros
    • Referências e Fontes
  • Flutter
    • Instalação do Ambiente desenvolvimento
    • Estrutura
    • Dicas Rápidas
  • Off-Topic
    • Experiências Profissionais
    • Vagas de emprego
    • Lojas de Aplicativos

Categorias

  • Flutter Mobile
  • Flutter Web
  • Flutter desktop
  • Aplicações
  • Desafio Marvel

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


About Me

Encontrado 10 registros

  1. Crow

    flutter cpf_cnpj_validator

    Adiciona no pubspec.yaml dependencies: cpf_cnpj_validator: ^1.0.5 Pra usar CPF: // Import package import 'package:cpf_cnpj_validator/cpf_validator.dart'; CPFValidator.isValid("334.616.710-02") // true CPFValidator.isValid("334.616.710-01") // false CPFValidator.isValid("35999906032") // true CPFValidator.isValid("35999906031") // false CPFValidator.isValid("033461671002") // false // If you dont want the validation method to strip the values // Just use false in the second argument CPFValidator.isValid("334.616.710-02", false) // false CPFValidator.isValid("35999906032@mail", false) // false // Other utility methods CPFValidator.format("33461671002") // Result: 334.616.710-02 CPFValidator.strip("334.616.710-02") // Result: 33461671002 // Generate a raw CPF number, without format CPFValidator.generate() // Result: 33461671002 // Generate a formatted CPF number CPFValidator.generate(true) // Result: 334.616.710-02 Pra usar CNPJ: // Import package import 'package:cpf_cnpj_validator/cnpj_validator.dart'; CNPJValidator.isValid("12.175.094/0001-19") // true CNPJValidator.isValid("12.175.094/0001-18") // false CNPJValidator.isValid("17942159000128") // true CNPJValidator.isValid("17942159000127") // false CNPJValidator.isValid("017942159000128") // false // If you dont want the validation method to strip the values // Just use false in the second argument CNPJValidator.isValid("12.175.094/0001-19", false) // false CNPJValidator.isValid("17942159000128@mail", false) // false // Other utility methods CNPJValidator.format("85137090000110") // Result: 85.137.090/0001-10 CNPJValidator.strip("85.137.090/0001-10") // Result: 85137090000110 // Generate a raw CNPJ number, without format CNPJValidator.generate() // Result: 85137090000110 // Generate a formatted CNPJ number CNPJValidator.generate(true) // Result: 85.137.090/0001-10
  2. Ótima UI, usando firebase Código fonte https://github.com/Santos-Enoque/complete_flutter_ecommerce
  3. Crow

    flutter_webview

    pubspec.yaml dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.2 flutter_webview_plugin: ^0.2.1+2 pull_to_refresh: ^1.0.7 flutter_launcher_icons: ^0.7.3 main.dart import 'package:flutter/material.dart'; import 'package:flutter_webview_plugin/flutter_webview_plugin.dart'; import "package:pull_to_refresh/pull_to_refresh.dart"; RefreshController _refreshController = RefreshController(initialRefresh: false); void main() => runApp(MaterialApp( home: MyApp(), debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.deepOrange, secondaryHeaderColor: Colors.white, ))); class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { String url; @override void initState() { super.initState(); url = "https://www.natura.com.br/login?redirect=%2Fc%2Ftudo-em-promocoes&consultoria=revistanatura"; } void _onRefresh() { setState(() { url = "https://www.natura.com.br/login?redirect=%2Fc%2Ftudo-em-promocoes&consultoria=revistanatura"; }); } @override Widget build(BuildContext context) { return Scaffold( body: FutureBuilder<String>( future: this.pagina(), builder: (context, snapshot) { switch (snapshot.connectionState) { case ConnectionState.none: case ConnectionState.waiting: return Center( child: CircularProgressIndicator() ); case ConnectionState.active: case ConnectionState.done: if (snapshot.hasData) { return WebviewScaffold( appBar: AppBar(title: Text("Revista Natura Online"), centerTitle: true, actions: <Widget>[ IconButton( icon: Icon(Icons.refresh), onPressed: () { setState(() { _onRefresh(); }); }, ), ], ), withJavascript: true, url: snapshot.data , withZoom: true, ); } else if (snapshot.hasError) { return Scaffold( body: Center( child: Text("${snapshot.error}"), ), ); } return Scaffold( body: Center(child: CircularProgressIndicator()), ); } return Center( child: CircularProgressIndicator() ); } ), ); } Future<String> pagina() async{ return url; } }
  4. ⚓ Ola Marinheiros ⚓, Uma das coisas mais legais no desenvolvimento mobile, é o uso de APIs para o desenvolvimento de nossas aplicações certo? Com elas tudo fica bem mais fácil, não necessitando ter os dados armazenados diretamente em nossos celulares. Hoje trago para vocês esta aplicação que ainda esta em desenvolvimento, é um app para consulta de CEP consumindo a API Via CEP. O nome do app é CEP BRASIL, como dito anteriormente, ele ainda está em desenvolvimento, e como ele está no GitHub qualquer um de vocês poderão contribuir para a melhoria dele. Em breve este mesmo app será feito para a plataforma Web e Desktop, tudo usando amigo Flutter. Nome do app: CEP Brasil Versão: 1.0.1 Repositório: https://github.com/shinoda-labs/cep-brasil API: https://viacep.com.br
  5. Fala galera, Primeiramente me apresentando, Meu nome é Alexandro Castro, sou CEO do Fluttership, 23 anos, apaixonado por tecnologias, assim igual a todos vocês. Ontem 11/09, teria inaugurado o novo design do fórum, porém por um atraso do datacenter, ter feito um rollback, hoje estamos deixando o fórum com melhor visual, e com novidades!! Design Como comentado, o design foi pensado para ter uma identidade visual. Downloads Área de Downloads foi preparado para receber projetos de vocês, para divulgar suas experiências. Aproveitando, Responda a enquete sobre trabalhos remunerados que poderão ter no fórum. Que tal um lugar onde você não precisará pagar para divulgar seu trabalho? Legal né? Staff Neste Link Você pode ver como pode ajudar a comunidade crescer e receber Jobs remunerados ( Freelancer ) Por enquanto, essas são as novidades, espero que sempre que puder, eu consiga trazer conteúdo para vocês. Obrigado a todos por ser essa turma magnífica! Abraços
  6. Version 1.0.0

    4 downloads

    Home de aplicações Inspiração está no anexo
  7. Alex Castro

    Flutter v1.8.3

    Atualização referente as funções assíncronas #34545 In order to keep errors from getting inadvertently swallowed in FutureBuilder and StreamBuilder, the following changes were made to those APIs (announcement😞 AsyncSnapshot.data now throws an error if AsyncSnapshot.hasData is false. Callers can guard against this by consulting AsyncSnapshot.hasData before accessing the data property: Before builder: (BuildContext context, AsyncSnapshot<String> snapshot) { String data = snapshot.data ?? 'default_value'; ... }, After builder: (BuildContext context, AsyncSnapshot snapshot) { String data = snapshot.hasData ? snapshot.data : 'default_value'; ... }, AsyncSnapshot.requireData was removed. Callers who are using this can update their code by accessing AsyncSnapshot.data instead, which now behaves the way that requireDatadid. The initialData argument to the StreamBuilder() constructor is now a required argument. Callers who do not wish to pass initial data may use the newly added StreamBuilder.withoutInitialData() constructor. This should go in tandem with a change that checks for snapshot.hasData in your builder method: Before return StreamBuilder<String>( stream: myStream, builder: (BuildContext context, AsyncSnapshot<String> snapshot) { return Text(snapshot.data ?? 'default_value'); }, ); After return StreamBuilder<String>.withoutInitialData( stream: someStream, builder: (BuildContext context, AsyncSnapshot<String> snapshot) { return Text(snapshot.hasData ? snapshot.data : 'default_value'); }, ); The initialData argument to the FutureBuilder() constructor is now deprecated and will be removed in a future release. Callers who are using FutureBuilder.initialDatashould instead check the snapshot's connection state in their builder method: Before return FutureBuilder<String>( future: someFuture, initialData: 'initial_value', builder: (BuildContext context, AsyncSnapshot<String> snapshot) { return Text(snapshot.data); }, ); After return FutureBuilder<String>( future: someFuture, builder: (BuildContext context, AsyncSnapshot<String> snapshot) { return Text(snapshot.connectionState == ConnectionState.done ? snapshot.data : 'initial_value'); }, ); Fonte: https://github.com/flutter/flutter/wiki/Changelog
  8. felipebhz

    Artigo sobre Bloc (em inglês)

    Pessoal, encontrei esse artigo que explica sobre o padrão Bloc. Alguns tópicos: What is BLoC Pattern? Why BLoC? When to use BLoC? and, How to implement BLoC? Link: https://medium.com/flutterdevs/bloc-pattern-in-flutter-part-1-flutterdevs-128f90059f5c
  9. Alex Castro

    Dispose

    - Dispose - Usado quando você tem um objeto que não irá mais utilizar da árvore de chamadas permanentemente. Exemplo: Você cria um controller usado no animatedContainer, no login por exemplo, e você não irá usar mais esta animação permanentemente enquanto estiver logado, você precisa usar o dispose, para não ocorrer erros. Por exemplo: flutter: The following assertion was thrown while finalizing the widget tree: flutter: PimpedButtonState#0c8cd(ticker active) was disposed with an active Ticker. flutter: PimpedButtonState created a Ticker via its SingleTickerProviderStateMixin, but at the time dispose() flutter: was called on the mixin, that Ticker was still active. The Ticker must be disposed before calling flutter: super.dispose(). Tickers used by AnimationControllers should be disposed by calling dispose() on the flutter: AnimationController itself. Otherwise, the ticker will leak. então usamos @override void dispose() { logoController.dispose(); controller.dispose(); super.dispose(); } no caso, o controller usado na sua animação. Fonte: https://api.flutter.dev/flutter/widgets/State/dispose.html
  10. Fala Devs!!! Uma experiência que tive, referente ao uso armazenagem de dados, foi usar o flutter secure storage. Quando na empresa onde trabalho, eu estava fazendo armazenagem de dados, como Token, UserId ( Básico da autenticação em JWT ), o plugin Shared Preferences. Ele funcionava, mas notei um pequeno erro. Quando eu fazia o primeiro login, via ADB Shell, eu via que ele salvava um XML com esses tal dados, e quando eu removia, usando clear e remove, ele dava null, no console, mas quando eu dava hot reload, os dados voltavam !! Uma coisa que em produção não dava problema, mas o que me preocupou foi o fato do xml persistir com os mesmos dados. O funcionamento dele é parecido com o session do PHP, onde armazena localmente tais dados, porém continuei tendo o mesmo problema, onde optei usar o Flutter Secure Storage. https://github.com/mogol/flutter_secure_storage https://pub.dev/documentation/flutter_secure_storage/latest/ Ele é simplesmente perfeito, funcional e simples. Ainda mais para dados sensiveis, como estes... Não optei pelo SQLite, por motivos óbvios, não guardo dados em quantidade que necessite essa migração. Bom, fica a dica aí pra quem tem ou teve problemas com dados, e quem ainda não passou, e quem tem outras experiência, diga ai!
×
×
  • Criar Novo...