소셜 로그인 구현하기
·
iOS/Framework
👋 들어가기 전 드디어 우리 서비스에 Authorization 기능이 도입된다.iOS 개발이면 처음은 무조건 apple login이다.현재는 swiftUI 기반이지만, uikit에서 다른 절차가 필요하면 추후 따로 구분하자.🍎 애플 로그인1.  Signing & Capabilities  다음과 같이 Capability에 Sign in with Apple을 추가한다. 2.  Auth Manager 객체 설계먼저 AuthManager에 필요한 다양한 변수화 함수를 프로토콜로 정의한다.구글도 함께 테스트할테니 구글 관련된 것도 한꺼번에 정의protocol Authable { func buildAppleAuth() // appleAuth를 위한 build func buildGoogleAuth() ..
PhotoPicker 최적화하기
·
iOS/UIKit
👋 들어가기 전현재 하고있는 프로젝트는 이미지가 굉장히 중요하다.이미즈는 크게 2가지 종류가 있을 수 있다. 첫 번째는 링크 또는 서버에서 제공해주는 이미지고 두 번째는 나의 로컬 갤러리를 통해 불러오는 이미지가 있다. 여기서 애플에서 제공해주는 PHPickerViewController를 사용하면 쉽게 앨범 이미지를불러올 수 있지만 디자이너님의 요구는 커스텀이 가능한 뷰를 원하고 있어 직접 자체 개발을 해야했다. 현재 UI Framework가 SwiftUI로 개발되어 ScrollView와 LazyVGrid를 이용하여 어렵지 않게 UI는 구성했다. 여기서 처음했던 기술적인 도전은 사진을 가져오는 과정을 최대한 modern concurrency를 이용하여나름 최적화와 completion Handler를 c..
Localization
·
iOS
👋 들어가기 전현재 진행중인 프로젝트는 글로벌 서비스를 노리고 있어 Localization이라는중요한 임무를 맡게 되었다. 이전 프로젝트에서는 Strings File을 이용하여 Localization을 진행했는데 Xcode 15부터더 쉽게 도와주는 String Catalog라는 파일을 사용해보려고 한다.✊ String Catalog란?먼저 우리가 사용할 String Catalog이 무엇인지 알아보자. 공식문서에서 String Catalog를 다음과 같이 소개하고 있다.  Use a string catalog to translate text, handle plurals, and vary the text your app displays on specific devices. 현지화를 위한 도구인데 라는 걸 ..
FirebaseCrashlytics 적용하기 with SPM
·
iOS
👋 들어가기 전 2024년 12월 25일 크리스마스 .. 나는 26일 새벽 4시까지 현재 프로젝트를 위해 약 13시간 코딩을했다. 마지막 시점에 비정상 종료를 추적하기 위한 Firebase Crashlytics를 적용하려 했지만 많은 억까를 당했고 현재 26일 오후 4시 기준 드디어 성공해 기록을 남기려 한다..✊ 프로젝트 생성 및 GoogleService-Info.plist 발급 받기프로젝트 생성과 GoogleService-Info 발급은 파이어베이스 공식 홈페이지에 너무 잘나와있으니 홈페이지를 참고하자 ☝️ Xcode 상단에 GoogleService-Info.plist 넣기 위 그림과 같이 최상단에 GoogleService-Info.plist 파일을 위치시킨다.✌️ SPM을 통한 firebase-i..
Dynamic Key decoding
·
프로그래밍언어/swift
👋 들어가기 전또 다시 오랜만에 포스팅을 하게 됐다. 지금은 익명의 프로젝트에 급작스럽게 합류하여 앱 개발을 하던 중 신선한 경험을 하게되어그 경험을 적어보려한다.  이번 시간의 주제는 동적 키 형태를 디코딩 하는 방법을 간단하게 정리해보자.✊ 문제발생만약 서버에서 다음과 같은 형태로 데이터를 보낸다면 우리는 어떻게 처리해야할까 ??// Case1{ "data": { "a":100 }}// Case2{ "data": { "b": nil }}// Case3{ "data": { "c": -100 }} 어디가 불편할까 ??  data안의 key값이 계속 변하는 상황이다..☝️서버 개발자님 "해줘"서버 개발자님 key값 통일해주세요 ~~ 단 칼에 거절 백엔드 상황을 들어보니 충분히..
Priority
·
iOS/UIKit
👋 들어가기 전우리는 지난 포스팅에서 intrinsicContentSize에 대해서 알아봤다. 이번에는 intrinsicContentSize에 대한 우선순위를 지정할 수 있는 방법을 알아보자.✊ 왜 필요할까??먼저 다음 코드를 보자.label1.text = "첫번 째 레이블입니다."label2.text = "두번 째 레이블입니다."label1.backgroundColor = .greenlabel2.backgroundColor = .redview.addSubview(label1)view.addSubview(label2)NSLayoutConstraint.activate([ label1.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadin..