본문 바로가기

iOS

(36)
[iOS] Kakao Login APi 구현할때 순서 # trouble shooting 번들 ID가 다를 경우 KOE009에러가 발생한다. -> 그래서 프로젝트 타켓에 있는 Bundle ID를 명확하게 입력해줘야한다. -> 에러해결 # 카카오 로그인 서비스 등록하는 과정 ## 1 초기설정 Kakao login api 검색해서 사이트 접속 -> 내 애플리에키션에서 앱 등록 -> 앱 설정의 플랫폼들어가서 번들 ID에 프로젝트 번들 ID를 넣어준다. 시작하기 > iOS -> api를 다운로드 받는다 (SPM or cocoapod) 네이버갈떄 url사용해서 접속하듯 앱안에서도 특정 앱, 스킴을 지정할 수 있는데 카카오 앱을 열기위해 스킴에 네이티브앱키를 등록한다. - 여기서 잠깐 있는 그대로 사용하면 노출이 될 수 있기에 config파일내에 넣어 서 사용해줄 수 ..
[iOS] [!] Automatically assigning platform `iOS` with version `15.0` on target `FeedbackExample` because no platform was specified. Please specify a platform for this target in your Podfile. See https://coding-sojin2.tistory.com/148
[iOS] core Data Migration하는 방법 # 마이그레이션 [정의] 우리가 다이어리 앱을 개발한다고 가정해봅시다. 이 앱에 Core Data에는 id, title, date, content 이 저장되고 있죠. 그런데 버전업데이트를 위해서 app의 다음버전에 model/ attribute에 대한 새 속성(iconID, main)을 추가하려고합니다. 날씨의 아이콘과 main에 대한 정보이죠. 만일 이 새로운 버전의 정보로 앱을 업데이트하고 버전 배포를 하게되면 이전 버전을 사용하는 사용자의 기존데이터가 손실될 수 있습니다!! 그럴떈 어떻ㄱ ㅔ해야할까요 ?? # Migration 새로운 변경 사항을 위해 기존모델을 변경하면 안됩니다. 이전 사용자를 위해 보존하되 새로운 버전을 사용하는 사용자도 포용할 수 있어야겠죠 그러려면 .xcdatamodeld의 ..
기술스택(RxSwift, SwiftUI, UIkit) 고민 현재 Rxswift 기본 문법을 배우면서 시간을 보내고 있는 요즈음이다. 그런데 당장 다음주 월요일 7/4일 부터 마지막 프로젝트가 진행되는데 RxSwift의 난이도 갭을 알아버렸다... 무엇보다 내가 잘 이해를 하고 있는건가 ? 그리고 이 짧은 시간에 이걸 배워서 프로젝트에 적용을 시킬 수 있을까 ?? 에대해서 너무막막했다. 그래서 고민을 하던찰나에 캠프회식에 오신 라인으로 이직예정이신 분에 말과 이전 프로젝트의 리뷰어 말씀에 뒤늦은 생각을 정리하게되었다. # W 현재는 UIKit으로만으로도 취업은 충분히 가능하고 Rxswift는 크게 높은 점수를 보지않는다. 라인으로 이직예정인분이 자기는 UIKit MVC를 쓰고 이에대한 것으로 이직을 했다고 말을 해주셨다. 그리고 신입한테 큰 기대를 전반적으로 하지..
[iOS] ♻️ Localization(지역화) 가능한 요소 구현해보기 # Localization (현지화란?) [정의] 앱을 여러 언어 및 지역으로 번역하고 조정하는 프로세스이다. 국제화(internationalization)를 I18N or i18n 으로 지역화(localization)를 L10N이나 l10n 으로 표기합니다. 지역화 - L10N 국제화 - I18N 국제화(Internationalization)란? 국제화란 각 나라의 문화정보에 맞게 앱을 적용하는 과정을 말합니다. (문화정보란 언어, 통화, 날짜 포맷, 숫자 포맷 등) 예) 앱스토어같은 경우 이미 국제화가 되어있다. 전세계적으로 각 나라에 맞게 언어, 문화, 통화, 숫자 등 맞춰저 있다. 그러면 지역화는 뭘까 ? 지역화(Localization)란? 지역화란 사용자의 언어와 지역 포맷 설정을 기반으로 앱에..
[iOS] Core Animation으로 햄버거 만들기(미완성) // // ViewController.swift // CoreAniStudy // // Created by LIMGAUI on 2022/06/25. // import UIKit class ViewController: UIViewController { lazy var burgerView = BurgerView(frame: view.bounds) override func viewDidLoad() { super.viewDidLoad() } } class BurgerView: UIView { override func draw(_ rect: CGRect) { let bread = UIBezierPath( roundedRect: CGRect( x: bounds.width * 0.1, y: bounds.height ..
[작성중] CoreData 2편(Update&Delete 코드 구현)
[iOS] CoreData 1편(Create&Read 코드 구현) # 코어데이터 나는 여자친구에게 선물을 주려고 선물을 박스안에 포장하고있다고 가정을해보자 그러면 선물을 에어팟과 편지 그리고 과자등등을 줄건데 그냥 이체로 주면 지저분하고 보기 안좋을 수있다. 그래서 한 포장지 상자안에 넣고 선물을 해주면 전달하기가 편하고 받기도 편할것이다. 크크 코어데이터값을 전달할때도 비슷하다. 전달하고싶은 Model data를 persistentceContainer의 context에 실어 넣고 이 실은 데이터 뭉치를 메서드를 이용해서 coreData에 저장하면된다. 솔직히 비유가 적절한지 잘모르겠으나 ㅋㅋㅋ 일단 coreData를 계속해서 알아보면서 이해할 수 있을것이다. 그러면 코드 구현순서를 알아보자 크게 섹터를 CoreData를 셋팅하고 값을 저장하고 값을 가져오는 방법 값을..
[iOS] Core Animation (feat. Layer, CABasicAnimation) # Core Animation [정의] 시각적요소를 렌더링, 합성하고 애니메이션화합니다. 즉, Core Animation은 iOS/ OS X 에서 사용할 수 있는 그래픽 렌더링 및 애니메이션 인프라이다. (Core Animation은 드로잉 시스템 그자체가 아니다. 하드웨어에서 앱의 컨텐츠를 합성/조작 하기위한 인프라임) Core Animation인프라에는 핵심이 Layer(CALayer)가 존재한다. 이는 컨텐츠를 관리/조작 하는데 사용됩니다(Layer는 그래픽 하드웨어로 쉽게 조작할 수 있도록 비트맵으로 컨텐츠를 캡쳐합니다.) Core Animation을 사용하면 대부분의 작업이 자동으로 수행된다. 그래서 시작과 끝지점과 같은 매개변수를 구성하고 CoreAnimation이 시작하도록 지시하면된다. C..
[iOS] View Drawing Cycle # Drawing cycle이 뭔디 View가 로드되거나 변경이 되었을때 화면에 시각적으로 표현되어 그려지는 사이클임 view load 시 system이 UIView에게 draw를 통해 Drawing을 요청함 view의 스냅샷을 캡쳐하고 UIView에게 전달함 view의 content변경시 관련(setNeedsDisplay, setNeedsLayout 등등) 호출하여 system에 업데이트를 요청함 Next drawing cycle에서 업데이트 요청 받은 view를 업데이트함 # view drawing cycle trigger 해주는 상황 View 컨텐츠 변경 관련한 업데이트 트리거를 해주는 상황이 존재한다 view를 부분적으로 가린 타 view의 이동 및 제거 hidden view 노출 view를 화면..