본문 바로가기

ios25

[날씨앱] 위치정보 뽀개기! CoreLocation을 활용해 유저의 현재 좌표, 위치 구하기, CLGeocoder를 활용해서 지역명 가져오기, background에서 위치정보 활용하기 날씨앱을 만들면서 필수적으로 해야한다고 생각했던 것이 유저의 위치를 파악하고, 파악한 해당 위치의 좌표를 활용해 기상청 API에 데이터를 요청하고, 앱에 사용자의 현재 장소를 표시해주려고 하는데요 그러기 위해서는 CoreLocation을 사용해보았습니다! 제대로 사용해보는건 처음이라서 시행착오도 조금 있었지만 잘 작동하는 것 같아 정리해보려 합니다! https://developer.apple.com/documentation/corelocation Core Location | Apple Developer Documentation Obtain the geographic location and orientation of a device. developer.apple.com https://developer.ap.. 2023. 6. 29.
[날씨앱] 날씨 데이터를 찾아서..기상청 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.
[TinderClone] 코드 재사용성 높이기 (Custom Class, Protocol, Extension) 최근에 UIKit으로 틴더 앱 클론 프로젝트를 했습니다! 외부 라이브러리 없이 CodeBase로 UI를 구성했는데 TextField 만들때 중복되는 코드가 많아서 어떻게 줄일까 생각하다가 Custom Class를 만들어서 사용하기로 했습니다.! 이렇게 placeHolder와 비밀번호 입력 여부 정도가 달랐는데요 커스텀 클래스로 만들고 두개를 파라미터로 넣어서 하나의 함수로 만들어 보았습니다. 이렇게 만들어주고, 비밀번호는 기본 값을 false로 줘서 필요할때 true를 입력하도록 했습니다! 그리고 사용할때는 파라미터에 값만 넣어주면! 쨘~ 잘 만들어 졌습니다. 그리고 다른 프로젝트에서 간단한 애니메이션 함수를 만들었는데 extension을 하나씩 해야 하더라구요.. 그래서 일단은 저렇게 돌아가는 것만 확.. 2023. 6. 14.
[부트캠핑] 스켈레톤뷰 애니메이션 넣기, 1.1 업데이트 성공! (SDWebImage) 부트캠핑앱은 인스타그램처럼 사용자들이 캠핑장에 가서 찍은 사진을 공유하는 앱이기 때문에 이미지 처리가 중요했습니다! 저희는 유저의 사진을 Firebase Storage로 올리고, 올린 이미지의 imageUrl을 받아서 사용하는 구조입니다! 처음 프로토타입때는 SwiftUI에 기본으로 있는 AsyncImage()를 사용했었는데요, 써보니 로딩 속도가 느리고, 이미지 캐싱도 따로 해줘야해서 mvp부터는 제가 좋아하는 라이브러리인 SDWebImage를 활용해서 이미지를 처리했습니다! 사용법이 간편하기도 하고, 이미지 캐싱도 자동으로 해주기 때문에 같은 이미지를 여러번 부르지 않아 서버 요청도 줄일 수 있어서 Firebase 무료요금제를 사용하는 저희에게는 너무나 좋은 라이브러리라고 생각했습니다ㅎㅎ https:.. 2023. 6. 10.
[Error] 패키지 관련 에러 해결하기 (CocoaPod, SPM) 최근에 Tinder Clone앱을 UIKit, CocoaPod을 사용해서 만들고 있었는데 처음 보는 오류가 발생했습니다. ld: file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a 아마 패키지 관련 오류 같아 찾아봤는데 https://stackoverflow.com/questions/75574268/missing-file-libarclite-iphoneos-a-xcode-14-3 Missing file libarclite_iphoneos.a (Xcode 14.3) After installing Xcode 14.3 i.. 2023. 6. 8.