일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- ios면접
- Swift코딩테스트
- 카카오맵클론
- AutoLayout
- Di
- TDD
- IOS
- alamofire
- hackerrank
- 코딩테스트입문
- 앱의생명주기
- css학습
- five lines of code
- ARC
- 프로그래머스
- Swift디자인패턴
- 리팩터링
- firebase
- RxSwift
- Safari Inspector
- five lines of cdde
- SWIFT
- 클린코드
- firestore
- algorithm
- storekit2
- mrc
- unittest
- UIKit
- RC
- Today
- Total
목록전체 글 (97)
샘성의 iOS 개발 일지
1. Reference Counting(RC)이란? : 힙(Heap) 영역의 RC(Reference Count - 참조 숫자)를 세어본 후, RC(참조 숫자)가 0인 순간, 메모리 관리 혹은 컴파일 할 때 메모리 해제시점을 결정하는 방식 RC 모델 방식을 개발자가 직접 수동으로(Manual) 구현하여 메모리 관리를 하는 모델 Objective-C에서 사용하는 방식 현재는 MRC, ARC 방식 둘 중 선택 가능 수동으로 RC를 개발자가 구현하여 메모리 관리가 필연적인 모델 메모리를 관리하기 위한 변수 var refCount: Int 존재 retain() : RC(참조 숫자)를 +1 하는 코드 → 메모리 할당** release() RC(참조 숫자)를 -1 하는 코드 → 메모리 해제** ⇒ 할당과 해제 둘다 ..
1. Leading Constraint : 객체의 앞쪽 가장자리 2. Left Constraint : 객체의 왼쪽 가장자리 우리는 글씨를 읽을 때 왼쪽에서 오른쪽으로 읽지만, 히브리어나 아랍권은 오른쪽에서 왼쪽으로 읽는다. 따라서, 히브리어나 아랍권을 제외하면 Left Constraint와 Leading Constraint는 동일하게 객체의 왼쪽 가장자리를 가리킨다. 반대로, Leading Constraint는 객체의 앞쪽 가장자리를 뜻하기에 히브리어나 아랍권에서는 Leading이 오른쪽이 되고 반대 개념인 trailing은 왼쪽이 된다.
iOS 11 이후로 나온 개념으로, SafeArea는 컨텐츠가 디바이스의 요소들에 겹치지 않고 안전하게 보여질 수 있는 iOS 디바이스의 화면 영역을 나타낸다. UIViewController 및 UIView 클래스에서 사용할 수 있으며 디바이스의 요소에는 노치, 홈 버튼, 상태 표시줄 등의 요소가 있을 수 있다. iOS의 오토레이아웃 시스템은 SafeArea를 인식하고, 뷰의 경계를 배치할 때 SafeArea를 고려하여 콘텐츠의 위치를 조정한다. 개발자는 이를 활용해 화면 크기나 디바이스 유형에 관계없이 일관된 UI를 편리하게 제공할 수 있다.
1. 장점 UI를 한 눈에 볼 수 있음 코드를 모르더라도 Drag & Drow 방식으로 UI를 쉽게 구현 가능 앱의 흐름을 직관적으로 파악 가능 View의 초기화가 필요없어 빠르게 UI 생성 가능 2. 단점 View의 컴포넌트가 많아질수록 파일 로딩 기간이 길어짐 컴포넌트가 많아질수록 세밀하게 조정하는것이 까다로울 수 있음 View의 재사용성이 떨어짐 Storyboard의 identifier를 설정해줘야하므로 번거로울 수 있음 협업시 다른 사람의 View를 수정하면 충돌이 발생할 수 있음 협업시 pull request를 통해 상대방이 어떻게 UI를 만들었는지 확인하기 어려움. 파일을 받아야지 알 수 있음..
1. Content가 있는 View와 없는 View? 1-1)Content가 있는 View UILabel, UIButton, UISegementedControl 처럼 생성하면 안에 띄울 텍스트, 콘텐츠가 포함된 View. 개발자가 따로 크기를 조정하지 않아도 안에 들어간 콘텐츠의 사이즈에 맞게 알아서 조건이 설정된다. e.g) 기본 UIView를 좌표 위에 올릴 때는 넓이를 잡아야함. 반대로 UILabel은 넓이 잡지 않고 좌표 위에 올리면, 해당 레이블에 들어간 글자 수와 폰트 크기에 맞게 사이즈가 조정됨 1-1)Content가 없는 View UIView, UITextView처럼 생성할 때 안에 콘텐츠가 포함되지 않는 View. 개발자가 좌표 위에 올릴 때, 크기를 함께 설정해줘야한다. 콘텐츠가 없기에..
1. Hugging View가 가질 수 있는 최대의 크기에 대한 제한 설정한 값이 다른 view들보다 상대적으로 높을 수록 최대 크기에 대한 우선순위 보장받음 디폴트값 : 250 e.g) firstButton과 secondButton이라는 두 개의 UIButton을 view 위에 올렸다. 설정한 autolayout으로 인해 두 개의 버튼 중 하나의 버튼이 더 커져야 한다. firstButton의 width 크기는 아무리 커도 설정한 크기 이상은 커지길 원하지 않는다. firstButton의 horizontal hugging priority를 secondButton의 horizontal hugging priority보다 크게 설정한다. (firstButton : 251, secondButton : 250으..

오늘은 Firestore를 이용하여 장소 즐겨찾기 기능을 추가할 것이다! 배경: Firebase 로그인 기능 완료 된 상태, KakaoMap 세팅 완료 된 상태. 1. 알아보기 시작하기 앞서, 어떻게 구현할 것이고 데이터를 어떤 구조로 저장할 것인지에 대해 기록하고자 한다. 1-1) 구현 로직: Firebase Auth를 사용해 현재 유저의 로그인 여부 확인. (로그인 된 유저인 경우 즐겨찾기 기능 제공, 아닌 경우 즐겨찾기 기능은 제공되지 않는다.) 유저의 uid와 카카오맵API에서 제공하는 해당 장소의 id를 사용하여 Firestore에 즐겨찾기 데이터 저장 (해당 장소의 고유값인 id를 사용하여 해당 장소가 Firestore에 저장되었는지 여부를 체크할 수 있도록 할 것이다.) 저장 버튼을 누르면 ..

로그인 한 유저의 검색 기록, 장소별 별점, 즐겨찾기 한 장소 쉽게 저장하고 꺼내볼 수 있도록 Firebase에 저장할 것이다. 이를 위해 'Cocoa Pods'를 사용하여 Firebase를 세팅하고 카카오톡 로그인 유저 데이터를 저장해보자! 배경 : 카카오톡 로그인 구현 완료 된 상태 카카오톡 로그인 구현이 안 된 상태라면, 하단의 게시글을 참고하시면 좋을 것 같습니다. 카카오톡 로그인 구현하기 국민 메신저인 카카오톡 로그인 구현은 필수일 것 같아 구현하면서 기록하려한다. 간단한 Auth만 구현하는 것이기 때문에 스토리보드로 해보려고 한다. 1. 종류 우선, 카카오에서 제공하는 로그 iossammy.tistory.com 1. Firebase 프로젝트 세팅하기 하단의 사이트에 접속 >> '시작하기' 버튼..