애플 프레임워크에서 제공하는 Healthkit을 사용해 사용자의 수면정보를 가져와보겠습니다. 1. Info.plist에 읽기/쓰기 권한 설정 및 표시 문구 설정 먼저, 정보 접근을 위해 사용자 동의를 얻어야합니다. Target > Info > Custom iOS Target Properties (or WatchOS Target Properties) 1. + 버튼을 눌러서 Privacy - Health .. 를 적어줍니다. 2. 권한은 Share(읽기권한), Update(쓰기권한) 중 필요한 것을 설정해줍니다. 3. 접근 권한을 허용할 때 뜰 문구를 Value에 써줍니다. Record 권한은 Healthkit 샘플이 아닌 '의료기록'에 관한 접근 권한입니다. 필요에 따라 설정해주세요. 2. Signing..
에러 메세지 Build input file cannot be found: '/file path'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it? 해당 에러는 프로젝트 파일이 특정 파일을 찾지 못해 발생하는 오류입니다. 제 경우에는 Git에서 머지하는 과정에서 프로젝트 파일이 충돌했는데 이걸 해결하면서 파일이 손실된 것 같습니다. 일단 중요한 파일은 아니라 다음과 같이 해결했습니다. 해결방안 Target > Build Phases > Compile Sources 여기서 소스파일들을 살펴보니 문제를 일으켰던 파일의 아이콘이 흐릿하네요. Delete키를 이용해 삭제해..
문제: 구슬을 나누는 경우의 수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import Foundation func solution(_ balls:Int, _ share:Int) -> Int { if (balls == share ){ return 1 } let answer = fac(balls) / fac(balls - share) / fac(share) return Int(NSDecimalNumber(decimal: answer)) } func fac(_ n: Int) -> Decimal{ var mu: Decimal = Decimal(1) f..
이번엔 제가 몇년째 잘 쓰고 있는 플래너 템플릿을 공유해보려고 합니다. 템플릿 만드는 법을 설명한 후에 복사할 수 있는 링크도 첨부해드리겠습니다! 기본적인 플래너 만들기 0. 결과물 이렇게 시간입력칸에 0140(1시간 40분)이라고 입력하면 이를 분단위로 바꾸고 다시 총 ~~분 형태로 바꾸도록 수식을 작성하겠습니다. 분단위는 월간합계와 주간합계에도 사용할겁니다! 1. 캘린더형태 데이터베이스를 하나 생성해줍니다. 2. '+ 속성 추가'를 눌러 시간입력, 전체시간, 전체시간(분) 이렇게 총 3개의 속성을 추가합니다. 시간입력은 텍스트, 전체시간과 전체시간(분)은 수식으로 설정해줍니다. 3. '전체시간(분)'의 비어있음 부분을 클릭해서 수식을 채워줍니다. 시간입력 부분의 텍스트를 분단위로 바꿔주는 역할입니다...
노션의 종속성 기능을 소개해보려고 합니다! 종속성 기능 한 작업이 다른 작업의 완료에 종속된 경우 사용 종속성 기능은 어떤 작업이 다른 작업의 완료에 영향을 받을 경우에 이런 흐름을 가시화해 볼 수 있는 기능입니다. 종속성을 설정한 후엔 타임라인에서 확인해보실 수 있습니다. 종속성 기능 설정하는 방법 1. 데이터베이스 설정에서 종속성 부분을 클릭해줍니다. 2. 완료해야할 작업과 그 다음 이어질 작업의 이름을 정해줍니다. 이름은 자유롭게 설정하셔도 됩니다! 3. 여기선 다음작업와 이전작업이라고 이름을 수정하였습니다. 완료하면 다음과 같이 아이템의 속성에 관계형 2개가 추가됩니다. 4. 타임라인 뷰에서 아이템(조금 옆쯤)에 커서를 올려서 동그라미를 클릭한 상태로 드래그 해서 다음 아이템에 연결해줍니다. 5...
문제 가장 가까운 같은 글자 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. n은 처음 나왔기 때문에 자신의 앞..
문제 둘만의 암호 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다. 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다. index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다. skip에 있는 알파벳은 제외하고 건너뜁니다. 예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서..
기존 프로젝트를 스토리보드에서 코드기반 UI로 리팩토링하면서 네비게이션이 복잡해져 코디네이터 패턴을 적용하고 있는데요, 가장 기본이 되는 TabBar를 코드로 작성하는 방법을 공유해보려고 합니다! 탭바가 생각보다 복잡한 구조를 가지고 있어서 설정하기가 좀 어려웠습니다. ʕᴗ̩̩ᴥᴗ̩̩ʔ 그래서 코디네이터 패턴보단 탭바의 구조부터 자세히 알아보고 실제 코드에서 코디네이터패턴을 적용해 보여드리겠습니다. TabBarController 구성 알아보기 TabBar를 생성하기 위해 TabBar가 어떻게 구성되는지 알아보겠습니다. TabBar는 UITabBarController로 생성할 수 있는데요, 이 UITabBarController안에는 Bar자체인 UITabBar가 있고 그 안에 홈, 설정 등 각 뷰를 담당하..
- Total
- Today
- Yesterday
- notion
- design pattern
- 프로그래머스
- swift
- coordinator pattern
- programmers
- 아키텍쳐 패턴
- MVVM
- 코디네이터 패턴
- MVC
- 노션
- Flux
- ios
- GetX
- SwiftUI
- SWM
- TestCode
- healthkit
- reactive programming
- Flutter
- Architecture Pattern
- DocC
- 소프트웨어마에스트로
- combine
- Bloking/Non-bloking
- 비동기/동기
- RX
- MVI
- Swift Concurrency
- 리액티브 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |