Flutter Location Plugin [안드 위주설명]

Jooni·2020년 10월 23일
0

이 플러그인은 안드로이드와 IOS에서 위치데이터를 받아와 다루기위한 것이다. 위치가 변경할 때의 콜백도 물론 제공한다.
(아래의 이미지가 큰것은 벨로그 마크다운언어로 사이즈조절이 불가하여..그러므로 양해바람)

원문은 여기를 참조

설치하고 적용하는 방법은 원문에 나와있으니 이건 무엇을 할 때 쓰는 것인지 어떻게 쓰는지에 초점을 맞춰보겠음.

사용하는 이유?

현재위치를 요청하기 위해서 항상 수동으로 Location Service StatusPermission Status체크해야한다.
핸드폰의 GPS가 켜져 있는지, 앱사용시 GPS기능 사용 허가 하는지에 대한 체크를 하는지를 본다는 뜻이다. 현재 위치를 쉽게 트랙킹하려고 쓰는 것이다

Location location = new Location();

bool _serviceEnabled;
PermissionStatus _permissionGranted;
LocationData _locationData;

_serviceEnabled = await location.serviceEnabled();
if (!_serviceEnabled) {
 _serviceEnabled = await location.requestService();
 if (!_serviceEnabled) {
   return;
 }
}

_permissionGranted = await location.hasPermission();
if (_permissionGranted == PermissionStatus.denied) {
 _permissionGranted = await location.requestPermission();
 if (_permissionGranted != PermissionStatus.granted) {
   return;
 }
}

_locationData = await location.getLocation();

위 코드를 아래의 코드로 바꿀수 있다.

location.onLocationChanged.listen((LocationData currentLocation) {
 // Use current location
});

사실 바꾼다기 보다 이렇게 씀으로 불필요한 코드를 줄일 수 있다고 보는게 나을거 같다.

어떤 플러그인이 더 나을까

Location vs Geolocation

스택오버 플로어에 나와 같은 생각을 한 사람이 질문을 올렸다. 질문을 올린지 3개월 됐으니까 2020년 07월쯤에 올린거겠네.


답변은 위와 같다. GeolocationLocation보다 좀더 충돌이 일어나고 버그가 있다고 한다. 얼마나 믿어야 할지 모르겠지만


각각의 오른쪽의 점수를 보면 비슷하다. 이 점수는 아래와 같은 의미를 갖는다.

Likes: A measure of how many developers have liked a package. This provides a raw measure of the overall sentiment of a package from peer developers.
Pub Points: A new measure of quality. This includes several dimensions of quality such as code style, platform support, and maintainability. More about this below.
Popularity: A measure of how many developers use a package, providing insight into what other developers are using.

Likes : 많은 개발자들이 이 패키지를 감정적으로 좋아하는 정도.
Pub Points : 품질을 책정하는 새로운 기준. 코드스타일, 플랫폼(IOS, Android, Web..etc)을 서포트 하는 정도, 유지보수의 정도
Popularity: 알려진 정도.

위의 척도로 볼 때 PubPoint의 점수가 실제로 개발시에 더 중요할 것으로 보여서 Location플러그인을 쓰려고한다.

그리고 Geolocation같은경우 잠깐 찾아봤는데 GPS가 없어도 위치를 찾을수 있다고 한다. 구글에서 모바일 기기 주변의 와이파이기기를 이용해 유추를 한다고 한다.

Geolocation 원리 참고영상

와이파이를 키면 기기는 주변의 와이파이기기들이 무엇이 있는지 검색한다. 이 때 검색이 되는 순간 와이파이에서는 모바일의 맥주소를 저장하여 구글에 전달 한다. 이것을 이용해 모바일 기기의 위치를 유추한다. 주변에 와이파이 기기가 많이 있을 수록 정확도가 높아진다고 한다. 라고 해석을 했는데 틀리면 댓글좀 달아주시길.

profile
이해가 안돼시거나 질문이 있으신 분들은 댓글로 남겨주세요. 성심성의껏 응하겠습니다!

0개의 댓글