xdk_mobile 0.0.3 copy "xdk_mobile: ^0.0.3" to clipboard
xdk_mobile: ^0.0.3 copied to clipboard

unlistedoutdated

XDK.Mobile para projetos Flutter. Realize integrações com qualquer API com muita facilidade, especialmente se estiver usando a XDK também no servidor.

example/example.md

Exemplo padrão com autenticação #

Página de login da XDK #

class XApp extends StatelessWidget {
  XApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    // Inicializa a XDK.
    XDKSetup.init(IxMobileConfig(
      // Nome da aplicação.
        applicationName: 'XDK Mobile Test',
        // ID da aplicação, pode ser um nome simples, mas no padrão slug.
        applicationId: 'xdk-mobile-test',
        // BuildContext da aplicação atual.
        context: context,
        // Endereço base do servidor (API).
        baseUrl: 'https://itixti.com.br',
        // Configuração da segurança.
        securityConfig: IxMobileSecurityConfig(
            shouldUseAuthorizer: true, // Indica que deve usar o autorizador.
            useIxOAuth: true // Indica que deve usar a autenticação OAuth da ITIX.
        )
    ));
    // Configura as stores da aplicação.
    XDKSetup.addStores([ProductsStore(), CompaniesStore()]);

    // Se estiver usando autenticação, aqui obtemos o serviço de autenticação. 
    var authService = getService<AuthService>();

    // Dispara quando o usuário tiver logado. 
    authService.onUserLoggedIn.stream.listen((userInfo) {
      Navigator.pop(context); // Removendo loading.
      // Envia para a tela principal do sistema.
      Navigator.pushReplacement(context, MaterialPageRoute<void>(builder: (BuildContext context) {
        // Sempre que o contexto é alterado, precisamos avisar para a XDK.
        updateXDKConfigContext(context);
        return MyHomePage(title: 'XDK Mobile Test', userInfo: userInfo);
      }));
    });

    return const LoginPage(); // Usa a tela de login fornecida pela XDK.
  }
}

Página de login personalizada local e sem usar OAuth ITIX #

class XApp extends StatelessWidget {
  XApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    // Inicializa a XDK.
    XDKSetup.init(IxMobileConfig(
      // Nome da aplicação.
        applicationName: 'XDK Mobile Test',
        // ID da aplicação, pode ser um nome simples, mas no padrão slug.
        applicationId: 'xdk-mobile-test',
        // BuildContext da aplicação atual.
        context: context,
        // Endereço base do servidor (API).
        baseUrl: 'https://itixti.com.br'
    ));
    // Configura as stores da aplicação.
    XDKSetup.addStores([ProductsStore(), CompaniesStore()]);

    // Se estiver usando autenticação, aqui obtemos o serviço de autenticação. 
    var authService = getService<AuthService>();

    // Dispara quando o usuário tiver logado. 
    authService.onUserLoggedIn.stream.listen((userInfo) {
      Navigator.pop(context); // Removendo loading.
      // Envia para a tela principal do sistema.
      Navigator.pushReplacement(context, MaterialPageRoute<void>(builder: (BuildContext context) {
        // Sempre que o contexto é alterado, precisamos avisar para a XDK.
        updateXDKConfigContext(context);
        return MyHomePage(title: 'XDK Mobile Test', userInfo: userInfo);
      }));
    });

    return const SuaLoginPage();
  }
}

Criando modelos de envio/resposta do servidor (API) #

Os modelos de envio/resposta devem conter a assinatura @jsonSerializable e herdar de BaseModel (se não tiver ID) ou de BaseEntityModel (se tiver ID).

import 'package:dart_json_mapper/dart_json_mapper.dart';
import 'package:xdk_mobile/core.dart' show BaseModel;

@jsonSerializable
class ProductModel extends BaseModel {
  String name;
  String description;

  TestModel({required this.name, required this.description});
}

NOTA: Após alterar qualquer classe com esse annotation (remover/adicionar annotation), deve-se rodar o comando: flutter pub run build_runner build

Criando stores para comunicação com o servidor (API) #

Para se comunicar com uma API (servidor), podemos usar Stores, eles facilitam o gerenciamento das requisições.

import 'package:xdk_mobile/rest.dart' show BaseStore, StoreConfig;

import '../models/product_model.dart';

class ProductStore extends BaseStore<ProductModel> {
  ProductStore() : super(StoreConfig<ProductModel>(baseUrl: 'products'));

  Future<ProductModel?> obter() async {
    return requestService.makeGet<ProductModel>(getRequestModel(''));
  }
}
0
likes
70
points
2
downloads

Publisher

unverified uploader

Weekly Downloads

XDK.Mobile para projetos Flutter. Realize integrações com qualquer API com muita facilidade, especialmente se estiver usando a XDK também no servidor.

Homepage
Repository (GitHub)

Documentation

API reference

License

unknown (license)

Dependencies

dart_json_mapper, flutter, flutter_secure_storage, http, http_interceptor, injector, localstorage, uni_links, url_launcher, uuid

More

Packages that depend on xdk_mobile