Flutter: Gostaria de evitar erros de carregamento de ativos em tempo de execução

Criado em 2 ago. 2017  ·  3Comentários  ·  Fonte: flutter/flutter

Atualmente, com o Flutter, é muito fácil acabar com erros de carregamento de ativos em tempo de execução, pois os ativos são extraídos de strings, que não são de forma alguma validados no momento da análise (ou gerados/fornecidos pelo sistema).

Atualmente, a falha mais comum do Posse em seu aplicativo ao vivo é um carregamento de cadeia de ativos com falha.

Eles também têm um arquivo manual de constantes de string que eles mantêm a partir de seu pubspec.yaml (presumivelmente poderia ser gerado automaticamente facilmente).

Isso parece apenas um padrão com o qual poderíamos ajudar. Este bug é sobre encontrar ideias para reduzir a probabilidade desse tipo de falha.

Para sua informação @yjbanov

P5 assets framework passed first triage tool

Todos 3 comentários

Poderíamos gerar automaticamente uma enumeração de nomes de ativos conhecidos, ou algo assim.

Ainda estou ansioso para entregar isso, nunca tive certeza de qual era a opinião da equipe do flutter sobre isso. Meu POC está congelado desde os dias beta. Eu vou chegar com algum MVP limpo o suficiente para que possa ser um PR. Em breve (TM).

Olá a todos:

Sou membro da equipe Fly-Mix da empresa NetEase. Minha equipe desenvolveu uma ferramenta de desenvolvimento flutter: Flr(Flutter-R) para dar suporte ao recurso que você deseja.

Flr é uma ferramenta de gerenciamento de recursos flutter, que pode ajudar o desenvolvedor flutter a especificar automaticamente ativos em pubspec.yaml e gerar r.g.dart arquivo que gosta R.java no Android depois que ele altera os ativos do projeto Flutter. Com r.g.dart , o desenvolvedor do flutter pode aplicar o ativo no código referenciando sua função de ID do ativo, como:

import 'package:flutter_r_demo/r.g.dart';

// test_sameName.png
var normalImageWidget = Image(
  width: 200,
  height: 120,
  image: R.image.test_sameName(),
);

// test_sameName.gif
var gifImageWidget = Image(
  image: R.mage.test_sameName_gif(),
);

// test.svg
var svgImageWidget = Image(
  width: 100,
  height: 100,
  image: R.svg.test(width: 100, height: 100),
);

// test.json
var jsonString = await R.text.test_json();

// test.yaml
var yamlString = await R.text.test_yaml();

PS: sim, é como o AAPT (Android Asset Packaging Tool) no Android.

Até agora, o Flr tem suporte para Android Studio Plugin, CLI e extensão VSCode:

  1. Versão do plug-in do Android Studio Flr

  2. Versão CLI do Flr

  3. Versão da extensão Flr VSCode

Esta página foi útil?
0 / 5 - 0 avaliações