본문 바로가기

날씨앱11

[날씨앱] CoreLocation 3탄, 사용자의 위치정보, 위치 호출 최적화하기 (.startUpdatingLocation(), .requestLocation() 차이점) CoreLocation을 적용하면서 사용자의 현재 위치 가져오기, 현재 위치의 주소 가져오기 등을 했었는데요. 오늘은 CoreLocation을 개발하면서 제 앱에 맞게 최적화 했던 것들을 정리해보려합니다. 처음에는 위치 기반 앱이다 보니 위치를 옮길 때 사용자의 위치를 자동으로 가져오려 했습니다. 이전에 만들었던 코드를 보시면 이렇게 작성했었는데요 함수가 실행되는 디테일한 빈도와 순서가 궁금해서 프린트를 하나하나 찍어봤습니다. locationManagerDidChangeAuthorization()에 print("위치 가져옴"), locationManager(didUpdateLocations:) 에 print("위치 업데이트")을 넣고 찍어보면 앱을 실행할 때 이렇게 나오게 됩니다. 처음에 사용자가 위치 .. 2023. 7. 21.
[날씨앱] CoreLocation 2탄 기상청 주간 날씨 현재 주소를 연동해서 API 호출하기..! CLGeocoder, CLPlacemark 메인 뷰의 오늘 날씨 구성을 마무리하고 주간 날씨도 만들어주기 위해 기상청 중기예보를 보았습니다! 제 생각에는 테이블뷰를 이용해서 1. 일주일간의 날짜 2. 기상 상태를 아이콘으로 3. 비가 온다면 강수확률을 아이콘 밑에 4. 최저 기온 5. 최대 기온 6. 최저, 최대 기온을 그래프로 표현 하려고 했습니다! 당연히 주간 데이터가 같이 있겠지~ 하고 문서를 찾아봤는데 중기육상예보조회에서는 주간 기상 상태를, 중기기온조회에서는 주간 최저, 최고 기온을 각각 따로 제공해주고 있어서 하나의 테이블뷰에 두 개의 API를 연동해야 했습니다..! 역시 쉬운일이 없쥬.. 그리고 하나 더 해야할 일이 생겼습니다! 오늘날씨 같은 경우에는 CLLocation으로 현재 유저의 좌표를 가져온 뒤, 기상청 자체 기준에 따라 x.. 2023. 7. 17.
[날씨앱] 기상청 API 미묘하게 안 맞는 날씨..? 원인은 다른 곳에 있었습니다! 기상청 단기예보 조회서비스 위,경도를 기상청 x,y 좌표로 변환하기 순조롭게 날씨앱을 신나게 만들어가고 있는데요! 사용자의 좌표를 가져와서 기상청 API 호출도 잘 되고, 뷰모델도 잘 만들어지고~하는데 한가지..마음에 걸리는게 있었습니다. 분명히 사용자의 위치는 정확하게 가져오고 있는것을 확인했는데 다른 날씨앱들과 비교하거나, 심지어 같은 데이터인 기상청 앱과 비교해도 제 앱만 이상하게도 미묘하게 온도가 2,3도 낮은것이었습니다..! 왼쪽은 기상청 날씨앱, 오른쪽 제가 만들고 있는 날씨앱입니다! 위치정보는 정확하게 받아오고, 비가 오는것도 같지만 이상하게 2도 낮습니다..! (기상청 날씨앱을 처음 깔아봤는데 날씨데이터를 업데이트 되는 과정에서 몇 번 꺼졌던 경험이 있어서 조금 불편했습니다! 제가 더 잘 만들어볼게요!) 이걸로 다른 기상청 API도 여러가지 써봤는데도 같은.. 2023. 7. 16.
[날씨앱] 날씨 데이터를 찾아서..기상청 API 사용하기, 네트워크 오류 해결 (MVVM, URLSession, JSONDecoder) 저번에 Apple WeatherKit에 이어 정확한 날씨데이터를 찾기 위해 data.go.kr에 접속하거나, API를 호출했는데 며칠동안 접속도 안되고 API도 묵묵부답이었습니다... 설마하는 마음으로 폰으로 테더링을 하니 접속도 잘 되고 API 요청도 잘 됐습니다! 아무래도 저희 집 네트워크 IP에 문제가 있는 것 같은데 사이트에 문의를 해도 IP 차단같은건 하지 않았다고 하셔서 원인을 모르겠네요.. 그래서 얼마 없는 데이터를 아껴가면서 API를 호출하고 앱을 만들고 있습니다! 처음 사용한 데이터는 기상청 단기예보 조회 서비스입니다! 초단기예보, 단기예보 등이 있는데 제가 만들고 있는 날씨앱은 오늘 하루 날씨를 확인하고, 비가 온다면 우산을 챙기라는 알림을 보내주려고 생각하고 있기 때문에 그날 하루 날.. 2023. 6. 21.
[날씨앱] 정확한 날씨 데이터를 찾아서... (Apple WeatherKit) 예전부터 아이폰을 오래 써왔지만 마음에 드는 날씨앱이 없어서 나중에 앱개발을 하게 되면 만들어봐야지~하고 생각하고 있다가 UIKit 개일 프로젝트를 날씨 앱으로 만들어보게 되었습니다! UIKit에 mvvm아키텍처, SnapKit과 Then을 사용해서 코드베이스로 UI를 만들어보고, RxSwift를 활용해 비동기 처리를 하려고 합니다! 여러 고민이 있었지만 날씨앱에서 가장 중요한! 날씨 API를 뭐를 사용할까 하다가 1. 기상청 2. WeatherKit 이렇게 두 개로 좁혔습니다. WeatherKit은 개발자 계정이 있어야 사용가능한데, 저는 이미 부트캠핑을 배포하면서 개발자 계정에 가입된 상태라 사용활 수 있었습니다! (공식 홈페이지) https://developer.apple.com/kr/weather.. 2023. 6. 15.