일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 앱의생명주기
- Safari Inspector
- RxSwift
- 프로그래머스
- 코딩테스트입문
- alamofire
- ARC
- Di
- 반응형프레임워크
- firestore
- unittest
- firebase
- ios면접
- 카카오맵클론
- Swift디자인패턴
- IOS
- SWIFT
- RC
- mrc
- AutoLayout
- algorithm
- Swift코딩테스트
- ReactorKit UnitTest
- iOS앱 디버깅
- 시험에자주나오는것만
- Bubble Search
- TDD
- hackerrank
- HackersRank
- UIKit
- Today
- Total
목록전체 글 (93)
샘성의 iOS 개발 일지
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으..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yGWC8/btsjkMi5vi8/D3gdccRZI1uGRtXNfga1B0/img.gif)
오늘은 Firestore를 이용하여 장소 즐겨찾기 기능을 추가할 것이다! 배경: Firebase 로그인 기능 완료 된 상태, KakaoMap 세팅 완료 된 상태. 1. 알아보기 시작하기 앞서, 어떻게 구현할 것이고 데이터를 어떤 구조로 저장할 것인지에 대해 기록하고자 한다. 1-1) 구현 로직: Firebase Auth를 사용해 현재 유저의 로그인 여부 확인. (로그인 된 유저인 경우 즐겨찾기 기능 제공, 아닌 경우 즐겨찾기 기능은 제공되지 않는다.) 유저의 uid와 카카오맵API에서 제공하는 해당 장소의 id를 사용하여 Firestore에 즐겨찾기 데이터 저장 (해당 장소의 고유값인 id를 사용하여 해당 장소가 Firestore에 저장되었는지 여부를 체크할 수 있도록 할 것이다.) 저장 버튼을 누르면 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mV1wA/btsjiHvmgNR/TIhoRvoCTz5PVm5kKe94xK/img.gif)
로그인 한 유저의 검색 기록, 장소별 별점, 즐겨찾기 한 장소 쉽게 저장하고 꺼내볼 수 있도록 Firebase에 저장할 것이다. 이를 위해 'Cocoa Pods'를 사용하여 Firebase를 세팅하고 카카오톡 로그인 유저 데이터를 저장해보자! 배경 : 카카오톡 로그인 구현 완료 된 상태 카카오톡 로그인 구현이 안 된 상태라면, 하단의 게시글을 참고하시면 좋을 것 같습니다. 카카오톡 로그인 구현하기 국민 메신저인 카카오톡 로그인 구현은 필수일 것 같아 구현하면서 기록하려한다. 간단한 Auth만 구현하는 것이기 때문에 스토리보드로 해보려고 한다. 1. 종류 우선, 카카오에서 제공하는 로그 iossammy.tistory.com 1. Firebase 프로젝트 세팅하기 하단의 사이트에 접속 >> '시작하기' 버튼..
Swift 5.3 이전 : UIApplicationMain에 구현 Swift 5.3 이후 : @main에 구현
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dEqx1v/btsjbJk1knX/qUVTcLDsstFlmyLVzdauf1/img.png)
Asset에 불러온 이미지를 사용할 때 해당 이미지를 그대로 사용하는 경우 이미지가 터무니없이 작거나 과하게 큰 경우를 흔히 겪을 수 있다. 이럴 때 UIImage에 메서드 하나를 확장하여 추가하면 손쉽게 이미지의 크기를 변경할 수 있다. 소스코드 extension UIImage { func resizeImage(targetSize: CGSize) -> UIImage { // 1. 얼마나 더 크기를 늘려야하는지 측정 let widthRatio = targetSize.width / size.width let heightRatio = targetSize.height / size.height // 2. 1번에서 얻은 측정값 중 더 작은 값 비교하여 얻기 let scaleFactor = min(widthRati..
1. App Bundle이란? 앱은 실행 가능한 코드와 관련 리소스로 구성된다. 이를 하나로 묶은 것을 Bundle이라고 하는데, App Bundle은 그 중 개발자에 의해 생성되는 번들로 iOS 앱이 실행 가능한 버전을 패키징 하는데 사용되는 디렉토리 모음이다. 2. App Bundle의 구조 Info plist 파일 : 앱에 대한 구성 정보가 포함된 파일 실행 가능한 파일(Executable) : 앱의 진입점, 앱 타겟에 연결된 코드가 이에 속한다. 리소스(Resource) 파일 : 이미지, 아이콘, nib파일, 문자열 파일, 사운드 등으로 구성되며, Localized될 수 있다. 프레임워크 및 라이브러리 : 앱이 의존하는 프레임워크 및 라이브러리 파일이 포함된다. 3. App Bundle의 역할 ..
1. NotificationCenter 동작 방식 Notification에 등록된 이벤트가 발생되면 NotificationCenter에 등록된 Observers 중 해당 Notification을 담당하는 Observer가 해당 되는 이벤트에 대한 액션(#selector로 정의된)을 취하는 방식으로 동작한다. Delegate와는 다르게 등록된 하나의 이벤트에 대해 여러개의 옵저버가 구독할 수 있다. 2. NotificationCenter 활용 방안 이벤트 발생 시, 이를 알릴 수 있고 관심이 있는 객체들은 해당 이벤트를 구독하여 처리할 수 있다. (하나의 이벤트를 여러개의 객체가 구독할 수 있음) 사용자가 로그인할 때마다 "로그인 완료"라는 이벤트를 발생시키고, 다른 객체들은 이 이벤트를 받아서 로그인 완..