일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카카오맵클론
- TDD
- SWIFT
- RC
- 코딩테스트입문
- HackersRank
- iOS앱 디버깅
- 시험에자주나오는것만
- Swift디자인패턴
- firestore
- ios면접
- RxSwift
- Bubble Search
- alamofire
- unittest
- algorithm
- UIKit
- 앱의생명주기
- mrc
- IOS
- firebase
- hackerrank
- Swift코딩테스트
- AutoLayout
- 반응형프레임워크
- ReactorKit UnitTest
- Di
- 프로그래머스
- ARC
- Safari Inspector
- Today
- Total
목록전체 글 (93)
샘성의 iOS 개발 일지
문제 설명: 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요. (정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.) 내 풀이: import Foundation func solution(_ numbers:[Int]) -> Double { // 배열 전체 더한 값 let sum = numbers.reduce(0) { $0 + $1 } return Double(sum) / Double(numbers.count) } 회고: 고차함수는 달콤햄...
문제 설명: 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 내 풀이: import Foundation func solution(_ slice:Int, _ n:Int) -> Int { // 조각이 사람 수보다 많은 경우, 1판이면 된다. guard slice < n else { return 1 } // 배열 형태로 몫, 나머지를 변수에 담기 let pizza = [n / slice, n % slice] // 나머지가 없는 경우, 몫을 / 나머지가 있는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mlgbh/btsdTRIpmYb/UzcPXTn6bsgXZjq7OlTPw1/img.png)
어제 한 카카오톡을 이어서 이번에는 구글 로그인을 해보려고 한다. https://developers.google.com/identity/sign-in/ios/start-integrating?hl=ko iOS 및 macOS용 Google 로그인 시작하기 | Authentication | Google Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 iOS 및 macOS용 Google 로그인 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류 developers.google.com 1. 모듈 설치 카카오톡과 일관되게 Cocoapods로 진행할 것이다. pod 'GoogleSignIn' // ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/uu36t/btsdMZ2pBgR/iy6IMCPpHmuOGo63f5PdxK/img.png)
국민 메신저인 카카오톡 로그인 구현은 필수일 것 같아 구현하면서 기록하려한다. 간단한 Auth만 구현하는 것이기 때문에 스토리보드로 해보려고 한다. 1. 종류 우선, 카카오에서 제공하는 로그인 종류는 2가지이다. (하단참고) 필자는 권장이라 써있는, 카카오톡으로 로그인을 구현할 것이다..! 2. iOS 플랫폼 등록 & 카카오 로그인 활성화 https://developers.kakao.com/ 상단 링크에 들어가서 로그인 >> 시작하기 >> 애플리케이션 추가하기 >> 정보 기입 (테스트용이기 때문에 필자는 임의로 넣었다 - 차후 수정도 가능하다고함) 여기까지 하면, 상단의 이미지처럼 앱이 추가된 것을 확인할 수 있다. 이제 본격적인 플랫폼 등록을 해야한다. 앱 키 밑의 '플랫폼' >> iOS 플랫폼 등록 ..
문제 설명: 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 내 풀이: 우선, 최소공배수와 최대공약수를 구할 수 있는지를 확인하는 문제 같았다. // 최대공약수 구하는 함수 func gcd(_ a: Int, _ b: Int) -> Int { // b가 0이 된다면(나누어떨어진다면) a가 최대공약수 / 나누어떨어지지 않으면 재귀함수를 통해 나누어떨어질때까지 실행 let result = b == 0 ? a : gcd(b, a % b) return result } // 최대공약수를 통해..
문제 설명: 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. 내 풀이: import Foundation func solution(_ n:Int) -> Int { // 몫, 나머지 형태로 배열 생성 let pizzaArray: [Int] = [n / 7, n % 7] // 나머지가 없으면 몫을 , 나머지가 있으면 몫 + 1을 결과로 줌 let result = pizzaArray[1] == 0 ? pizzaArray[0] : pizzaArray[0] + 1 return result }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yUZNw/btsdGIFl7XI/BQ0UEkYzwnycNfJVf2FgDK/img.png)
네모난 버튼의 전체 꼭짓점을 둥글게 깎는법 말고 원하는 꼭짓점만 깎는 법을 다루게 되었다. // 본인은 선택적 모서리 깎기를 여러번 할 것이기 때문에 UIView 확장했다. extension UIView { func addRoundedCorners(corners: CACornerMask, radius: CGFloat) { layer.cornerRadius = radius // 얼마나 깎을거야? layer.maskedCorners = [corners] // 어디 모서리 깎을거야? } } layer에서 최소 x, 최소 y측 코너 >> 왼쪽 밑 모서리 layer에서 최대 x, 최소 y측 코너 >> 오른쪽 밑 모서리 layer에서 최소 x, 최대 y측 코너 >> 왼쪽 위 모서리 layer에서 최대 x, 최대 y..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/K23IB/btr8UVa992X/ddGyeA7KP782fDSVYQaESK/img.png)
1. 배경 이전 포스팅에 이어서 Tinder 클론 앱을 제작 중, 컨텐츠를 서버(Firebase)로부터 불러오는 동안 띄울 loading progress indicator가 필요했다. 애플의 HIG에 따르면, progress indicator는 많은 이점을 가져다준다. 1. indicator를 계속 움직이게 해서 사용자가 앱이 멈췄다고 오해하지 않고, 무언가 로딩 중이라는 것을 인지하도록 도울 수 있음 2. 데이터를 다운받는 도중 사용자의 액션에 의해 취소되면 사이드이펙트가 생기는 경우, indicator + 얼럿을 추가로 띄우면 방지 가능 3. 자세하고 정확한 내용은 하단의 HIG - Progress Indicator 링크 참고 Progress indicators - Status - Components..