값 매칭과 안드로이드 퍼미션
발주가 너무 많이 들어와서 한동안 앱 제작이 홀드 되었다.
그래도 차근차근 진도는 나갔는데, 하루 한 시간 이상 투자하기 힘들어 진도를 나갔다 하기엔 무리가 있다.
앱을 최초로 만들 때 노매드 코더의 훠킹웨더를 기반으로 하다 보니 지금의 상태에서 문제가 많이 발생했다.
훠킹웨더는 날씨를 상태별로 케이스를 만들어 정확히 매치되는 것들을 가져다 썼는데, 이게 상용 앱으로 준비하다 보니 턱없이 부족하다는 것을 깨달았다.
즉, 날씨 이름은 수십 가지(50가지 이상)인데, 훠킹웨더에서 제안하는 방법은 열댓 가지의 경우이다.
특히, 예상치 못한 날씨 이름(약간의 비와 안개 같은)을 가져올 경우 앱이 멈춰버리는 경우가 생긴다.
예상치 못한 이름이기에 케이스를 만들어두지 못한 탓이다.
그래서 코드를 변경하기로 했다.
API에서 가져온 날씨 이름에서 '비'가 포함될 경우 비 내리는 아이콘과 백그라운드 컬러를 적용하자!
케이스를 여태껏 40가지 정도를 만들었는데, 대표되는 케이스만 남겨놓고 코드를 대폭 다이어트할 생각이다.
이런식으로 말이다.
if (
[this.state.name].includes("눈") || [this.state.name].includes("Snow")
) {
console.log("눈이 들어있다!");
} else if (
[this.state.name].includes("비") || [this.state.name].includes("Rain")
) {
console.log("비가 들어있다!");
}
그리고 어제 안드로이드 런칭을 시도하였다.
요전에 안드로이드 진영에서 SMS 관련하여 보안규정을 강화한다라고 보았는데, 직격탄이었다.
내가 사용하는 expo가 권한을 대폭 열어두는 경향이 있는데, 앱 바이너리를 업로드할 때 결격사항이 발생하여 리젝이 되었다.
내 앱은 gps데이터만 사용하므로 app.json에 아래와 같은 코드를 넣어두었다.
"permissions": ["ACCESS_COARSE_LOCATION", "ACCESS_FINE_LOCATION"]