Firebase는 개인 프로젝트 뿐만 아니라 모든 프로젝트에 굉장히 큰 도움이 되는 서비스이다. 백엔드 개발자 없이도 쉽게 백엔드가 있는 서비스를 만들 수 있게 해주며, 그 외에도 Authentication이나 Cloud Messaging 등 꼭 필요하지만 개발하기 귀찮은 요소들을 많이 가지고 있다. 그 중 Functions(이전 Cloud Functions)와 Realtime Database를 이용해서 간단하지만 강력한 Push 알림을 개발 할 수 있어서, 개발해보았다. Functions 사용하기Functions의 배포 방식은 다음과 같다. 노트북 등에서 Firebase Initializing 후 Functions를 연결한다.Functions 코드를 작성하고, 그 후 Firebase에 업로드한다.잘 작..
개발
AWS를 사용하거나, 다양한 경우에 SSH 접속을 하게 되는 경우가 많습니다. 이 때, AWS의 인스턴스 > 연결에 들어가면 다음과 같은 명령어가 나타납니다. 다만, 매번 SSH 접속을 위해서 AWS 콘솔에 들어가는 것은 굉장히 귀찮은 일 중 하나입니다. 그리고, 만에 하나라도 여러 개의 인스턴스를 사용 중인 상황이라면 잘못 들어갔을 때 굉장히 귀찮아지기도 합니다. 이에, Mac에는 기본적으로 ssh 명령어가 있어 이를 사용하면 굉장히 편리합니다. .ssh 폴더 생성하기우선, Terminal을 켜고, 최 상단 폴더에 /.ssh 폴더를 만듭니다.cd ~ # 최상단 폴더로 이동합니다.mkdir .ssh # .ssh 폴더를 생성합니다. 내부에 config 파일 생성 및 편집하기그 뒤에는, vim 또는 vi..
Map에서 Annotation은 지도에 놓는 핀과 같은 요소입니다. SwiftUI에서 Mapkit을 가져오고, Annotation을 어떻게 적용하는지 알아봅시다. Mapkit 사용하기우선, MapKit을 사용하기 위해서는 초기 위치 설정이 필요합니다.import SwiftUIimport MapKitstruct MapView: View { @State private var position = MapCameraPosition.region(MKCoordinateRegion( center: CLLocationCoordinate2D(latitude: 37.5665, longitude: 126.9780), span: MKCoordinateSpan(latitudeDelta: 0.2, l..
한국어, 영어, 일본어를 Localized한 어플리케이션을 업데이트 하려고 하는데, 로컬 알림(Local Notification)의 경우 정보가 없는 경우가 많아 골머리를 앓았다. 로컬 알림의 경우 코드 상에서만 인식되는 경우가 많은데, 이 경우에는 새로 생긴 String Catalog에 빌드를 해도 자동으로 나타나지 않기 때문이다. 이 글에서는 일반적인 String을 어떻게 String Catalog에 적용하는지 확인해보겠다.String Catalog에 인식시키는 방법이 방법은 String()으로 선언하는 방식과, LocalizedStringResource로 2가지가 있다. String(localized: "String") 사용하기let content = UNMutableNotificationConte..
실내에서 위치를 파악할 수 있는 방법에는 여러가지가 있습니다. 그 중iBeacon을 사용하는 것은 굉장히 간단합니다.최근, 프로젝트 개발을 위하여 SwiftUI를 기반으로 iBeacon을 사용하게 되었습니다. iBeacon은 Bluetooth를 기반으로 거리 정보 등을 제공하는 방식으로, 말 그대로 비콘이며, iPhone은 이 Beacon을 감지할 수도, 자신이 그 Beacon이 될 수도 있습니다. About iBeaconiBeacon은 Apple에서 발표한 저전력 블루투스(BLE) 기반의 근거리 통신 방식입니다. 이 때 iBeacon은 다음의 값들만 가집니다.class iBeacon { var uuid: UUID var major: Int var minor: Int var identifier: ..
MileTodo라는 iOS 투두 어플리케이션을 출시하였다. 영어, 중국어(간체), 베트남어로도 출시하려고 하는데, iOS 15부터는 String Catalog를 통해 Localization을 진행하여야 했다. 굉장히 간편하게 Localization이 가능하기 때문에, 앞으로도 String Catalog를 많이 사용하게 될 것 같아 정리해둔다. Localization할 언어 선택하기 앱 설정에 들어가서 Target -> Localization 항목의 + 버튼을 누르면 원하는 언어를 추가할 수 있다. String Catalog 생성하기 String Catalog를 생성하는 방법은 이전의 String파일 생성과 동일하다. String Catalog를 생성하면 이름이 자동으로 Localizable로 생성되니, ..
Swift로 로컬 푸시 알림을 구현하는 중에 문제가 발생했다. 알림을 매주 특정 요일에 반복하게 하기 위해서 다음과 같은 코드를 작성했었다. func makeTriggerForNoti(hour: Int, minute: Int, dayidx: Int) -> UNCalendarNotificationTrigger { var tTimeInt = hour * 60 + minute let tDuringInt = Int(sleepTime)/60 var dateInt = dayidx print(tTimeInt, tDuringInt) tTimeInt -= tDuringInt if tTimeInt < 0 { tTimeInt += 1440 dateInt -= 1 if dateInt < 0 { dateInt += 7 } } ..
프로젝트 개발을 하다보면 Contacts(연락처)를 사용하게 되는 경우가 꽤 있다. 이를 위해서 Apple에서는 읽기에 조금 더 최적화된 Contacts라는 패키지를 제공한다. 오늘은 읽는 기능에 집중하여 Contacts의 사용법을 정리하고자 한다. 1. Privacy - Contacts Usage Description 설정 우선, Contacts를 사용하기 위해서는 Info.plist에서 해당 권한을 설정을 해야한다. 필자는 SwiftUI를 통해 개발을 진행하고 있으므로, 어플리케이션 정보 > Info로 들어가서 plist를 수정해주도록 하자. 여기서 Key 중 Privacy - Conatcts Usage Description 항목을 만들어 주면 된다. 해당 항목의 Value 값은 어째서 이 어플리케이..