오늘 하루도 마무리하면서 알게 된 내용을 정리해보려고 한다.
이 글을 다 쓰고 난 뒤에는
패스트캠퍼스 강의를 하나 들을 생각이다.
회사에서 운영중인 패스트 캠퍼스 아이디라..
이번에 처음 써보게 되는 거라 설렌다.
우선 역시나 지금 앱을 개발하면서 앱 버전 정보를 가져오려 했으나,
안드로이드에서 앱 버전,
아이폰에서 앱 버전을 각각 가져와야 한다는 에러가 발생했다.
기존에는 이 패키지를 사용하였다.
https://pub.dev/packages/package_info_plus
이 패키지를 이용하면 아래와 같이
앱에 현재 버전을 가져올 수 있다.
import 'package:package_info_plus/package_info_plus.dart';
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;
하지만, 앱에서 이 기능을 활용해 보았는데,
안드로이드 android -> app -> build -> build.gradle에서
안드로이드 버전을 설정해주고,
아이폰도 직접 들어가서 수정해 주어야
위에 처럼 앱 버전값이 출력이 된다고 한다.
사실 자세한 이유는 모르겠으나,
올바른 버전 값이 넘어오지 않아,
다른 방법을 찾아보고자 했다.
pubspec.yaml 파일 안에 있는
내가 지정한 이 앱버전이 와야 정상인데,
오질 않아..
이 버전을 가져오는 다른 방법을 찾았다.
다른 방법
https://pub.dev/packages/yaml
우선 이녀석을 dependencies에 넣어주자.
dependencies:
flutter:
sdk: flutter
yaml: ^3.1.0
yaml 패키지는 yaml에서 넘어온 값을
loadYaml() 메서드로 parsing 하여,
jsonDecode와 비슷하게
값을 가져올 수 있다.
아래는 그 예이다.
import 'package:yaml/yaml.dart';
main() {
var doc = loadYaml("YAML: YAML Ain't Markup Language");
print(doc['YAML']);
}
그렇다면, yaml파일을 가져오는 방법에 대해서 알아보겠다.
우선 assets에다가 pubspec.yaml을 추가해주자.
flutter:
assets:
- pubspec.yaml
이렇게 입력해주는 이유는
앞서서 쓸 rootBundle() 메서드를 이용해
bundle에 pubspec.yaml 저장하기 위해서이다.
이렇게 저장된 pubspec.yaml파일은 loadString()
메서드로 String 형태로 가져올 수 있다.
코드는 아래와 같다.
rootBundle.loadString("pubspec.yaml").then((yamlValue) {
var yaml = loadYaml(yamlValue);
version = yaml['version'];
print(version); //pubspec.yaml 파일에 버전값
}
값을 가져오는 형태가 json형식과 매우 닮아 보인다.
이런 식으로 version값을 가져와
현재 나의 앱 버전을 나타낼 수 있다.
난 이만 패스트캠퍼스 강의를 들으러 가보겠다..