① 배운 것
- 기본적인 세팅은 문서 참고
- 파일을 에셋에 넣고 사용할 수도 있지만 앱 배포 없이 문구 수정이 필요한 경우라면 json파일을 서버에 넣어두고 그걸 이용할 수도 있다.
- assetLoader에 HttpAssetLoader를 설정하고 path에는 json파일이 있는 곳 주소를 넣으면 됨 (https://example.com/translations)
- 일단 로컬호스트로 되는지 테스트 해봤다.

이렇게 json파일을 로컬에 만든다
- path: 'http://wifi ip:8080'로 설정
- json 파일이 있는 디렉토리에서 터미널을 실행해 python3 -m http.server 8080 를 실행 해 로컬호스트를 실행한다.
- 실기기 사용 시 : adb reverse tcp:8080 tcp:8080를 사용해 디바이스 포트를 8080으로 맞춘다.
- 원래 HttpAssetLoader을 사용하려면 easy_localization_loader를 추가해야하지만 우리는 필요한 부분만 프로젝트에 직접 추가해 용량을 줄이자
@override
Future<Map<String, dynamic>> load(String path, Locale locale) async {
log('easy localization loader: load http $path');
try {
var url = Uri.parse('$path/${locale.toLanguageTag()}.json');
return http
.get(url)
.then((response) => json.decode(utf8.decode(response.bodyBytes)));
} catch (e) {
return {};
}
- 디바이스 언어를 영어, 한글로 바꿔가면서 앱을 실행하면 잘 작동한다!
② 회고 (restropective)
안해본것 해보는것이 재미있다.
③ 개선을 위한 방법
easy_localization vs flutter_localizations
likes와 popularity 둘다 easy_localization이 flutter_localizations보다 높고 flutter_localizations은 문구를 가져올때마다 Context를 넘겨줘야한다는 단점이있음