2017-11-08 9 views
1

대규모 JSON 파일 리포지토리의 데이터를 읽고 표시하는 프로토 타입 앱을 만들고 있습니다. 현재 pubspec.yaml 및 플러터 코드 자체에서이 동작을 모델링하는 가장 좋은 방법에 대해 궁금합니다.Flutter로 다수의 JSON 애셋에 액세스하기

지금 당장 나는 JSON에서 카탈로그 파일을로드하고 있는데, 이것은 카탈로그 항목의 스크롤 가능한 목록보기를 작성하며, 각 카탈로그 항목은 자체 JSON 파일을 카탈로그 파일과 비교하여 서브 디렉토리에 가지고있다. 각각의 새 파일을 pubspec.yaml에 추가해야합니까, 아니면 직접 액세스 할 수 있습니까?

+0

로컬로 모든 것을 처리하는 대신 API를 사용해서는 안됩니까? JSON에서 약간의 변경을 수행 할 때마다 앱을 다시 배포하지 않으려합니다. – Darky

+0

이것은 인코딩 된 고대 텍스트의 많은 모음으로 매우 정적입니다. 나는 자주 변하는 것에 대해 걱정하지 않는다. 그러나 크기는 약간의 문제입니다. – labarna

답변

0

pubspec.yaml에 파일을 지정하지 않고 파일 시스템의 파일에 액세스 할 수도 있습니다.

구문이 올바르지 않은 경우 임포트 한 이전 프로젝트이기 때문에 확실하지는 않지만 비슷한 방식으로 작동해야합니다.

File _themeFile; 
Future<Null> _loadThemeFile() async { 
    String dir = (await PathProvider.getApplicationDocumentsDirectory()).path; 
    _themeFile = new File('$dir/theme.txt'); 
    if (!await _themeFile.exists()) { 
    _themeFile.create(); 
    await _themeFile.writeAsString(JSON.encode({ 
     'theme': 'dark', 
     'colorIndex': 0, 
     'displayDone': true, 
    })); 
    } 
} 

이 조각은 이름 theme.txt와 파일을 검색하고이를 반환합니다. 파일이 없으면 파일을 만듭니다. 당신은 아마 이것을 정확히 필요로하지 않을 것입니다,하지만 저는 이것을 출발점으로 사용할 수 있다고 생각합니다.

+0

이것은 최종적으로 APK에서 파일이 번들로 묶여 있는지 확인하기 위해 gradle 패키징 시스템과 함께 작동하는 논리적이고 신속한 질문입니다. – labarna