전체 글 63

iOS Custom Calendar 구현하기 3

자 오늘은 본격적으로 Calendar 구조체를 이용해서 만들어보겠습니다. 그래서 Calendar 구조체가 뭐하는 녀석인데?? 흠... 뭔가 이해하기 어려운데 쉽게 설명드리면 날짜를 계산하고 비교해주는 기능 Calendar의 객체를 생성할때는 두가지 방식으로 사용 가능합니다. 사용 방법으로는 이렇게 있습니다. 적용시켜 보겠습니다 1) CustomCalendarViewController.swift에 프로퍼티를 만들어줍니다. // user의 현재 캘린더 private let calendar = Calendar.current // 입력되는 날짜를 형 변형 시키기위해 DateFormatter() 객체 생성 private let dateFormatter = DateFormatter() // Date() 를 생성해서..

Swift 2023.04.18

iOS Custom Calendar 구현하기2

네!~ 안녕하세요 다시 돌아왔습니다. 그럼 작업 이어서 진행해보겠습니다. 1) 최상단 View아래에 있는 일(Day)를 구현 달력을 보면 격자모양 처럼 생겼으니 뭘 하면 좋을까 생각하다... 다재다능한 CollectionView를 활용해서 작업을 진행했습니다. // MARK: - CollectionView lazy var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() let collectionView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout) return collectionView }() collectionView를 구현하는 방..

Swift 2023.04.17

iOS Custom Calender 구현하기

Uikit으로 돌아왔습니다. 이번에는 라이브러리를 사용하지 않고 CustomCalendar를 구현해보도록 하겠습니다. 1) 최상단에 있는 View를 먼저 구현해보겠습니다. 최상단은 button, title, button button으로 구성되어있습니다. class CustomCalendarViewController: UIViewController { // MARK: - Properties // MARK: - 년, 월 ( 메인 타이틀 ) var titleLabel: UILabel = { let title = UILabel() title.font = UIFont.systemFont(ofSize: 15, weight: .semibold) title.text = "2023년 01월" title.textColor..

Swift 2023.04.17

어서와 SwiftUI @FetchRequest는 처음이지?

SwiftUI에서 Core Data를 사용할때 같이 사용하면 좋은 @FetchRequest에 대해 설명해보겠습니다. 그럼 Core Data가 무엇인가요? 데이터를 디바이스에 저장하는 하는 방법으로는 @AppStorage, UserDefault가 있지만 이러한 것들은 간단한 정보(즉, 원시타입) 를 저장하기에 적합했다면... Core Data는 복잡하고 다른 객체간의 관계를 관리하며 user data를 저장하기에 적합합니다. @AppStorage에 대해 궁금하다면 https://yeomir.tistory.com/11 어서와(SwiftUi) AppStorage는 처음이지? @AppStorage 란 무엇인가? - Swift에서는 앱을 빌드하고 실행할때 메모리에는 String과 Int형식으로 저장된다. 상태변화..

Swift 2023.03.23

SwiftUI @AppStorage 심화편

@AppStorage 심화편으로 돌아왔습니다. 이번 차트에서는 @AppStorage를 사용하여 프로젝트를 만들어 볼테데요. 기초편에서도 말했지만 간단히 짚고가지면 @AppStorage는 Int, String과 같은 원시타입만 저장할수 있어요 그래도 기억이 안난다 싶으면 블로그를 참고해보세요 https://yeomir.tistory.com/11 어서와(SwiftUi) AppStorage는 처음이지? @AppStorage 란 무엇인가? - Swift에서는 앱을 빌드하고 실행할때 메모리에는 String과 Int형식으로 저장된다. 상태변화가 될때 사용하는 @State와 @StateObject랑 차이점은 뭔가요? A. 앱을 종료하면 메모리 yeomir.tistory.com 자 그럼 심화편 시작하겠습니다. 이 프로..

Swift 2023.03.22

SwiftUI OpenAPI 적용시키기

오늘은 간단하게 OpenAPI를 활용하여 영화 순위를 만들어보겠습니다. 사이트는 영화진흥회를 이용했습니다. 영화 진흥회 상단에 있는 로그인 -> 키 발급 후 이용 할 수 있습니다 ( 키 발급은 3일정도 걸리는거 같습니다...), 로그인후 상단에 OPEN API -> 기본 요청 URL사용 ( 끝단에 .json으로 변경후 사용 ) 엥? 스러울수 있습니다.. 아니왜 안나타나지? 사이트 하단에 보면 요청 예시 ( 응답 예시라고 되어있음...) 예시를 보면 .json 뒤에 ?( 물음표 ) 가 붙고 key 값 있는데, 로그인하고 발급 받은 키 값을 적고, &(그리고를 뜻함) targetDt(조회하고자 하는 날짜를 yyyy.mm.dd형식으로 입력)= (원하는 날짜를 적으면 된다) 요청 예시로 불러들인 것을 보면 1위..

Swift 2023.02.14

우당탕탕 앱 출시 리젝...

앱 출시를 하고 2~3일 정도 예상을 했지만 하루만에 이메일로 연락이 왔다. 리젝 사유 1. 애플 로그인 단어 수정: 기존 - Apple ID로 로그인 2. 로그인시 닉네임 요구 3. 포인트를 얻을 수 있는 방법은? 개선 1. 애플에서 규정하는 단어는 Sign in with Apple, Sign up with Apple, Continue with Apple로 구성되어 있으며, 번역 했을때는 "애플로 로그인"으로 수정 2. 애플 규정 상 SNS 로그인 시 닉네임(이름)이 자동으로 올라가는데 왜 한번 더 닉네임을 요구하냐 라고 판단해서, 두번째 페이지는 삭제하였습니다. 3. 포인트 구매 방법을 적어 애플에 이메일로 첨부 하였습니다. 결과 앱 심사 통과하였습니다. 여기서 멈추지 않고 더욱 더 완벽하고 유용한 ..

Swift 2023.02.11

우당탕탕 팀 프로젝트 앱출시

사용한 기술 1) 프레임 워크 - SwiftUI - Firebase - CoreData - GoogleSignIn, KakaoSDKAuth, CryptoKit 2) 오픈 소스 - swiftLint 개발 기간 - 1월 17일 ~ 2월 17일 ( 30일 소요 ) 맡은 역할 - 기획, 디자인, 개발 회고 및 느낀점 앱을 기획하는 과정에 있어 원하는 기능들이 많았지만 막상 개발에 들어가보니 볼륨이 너무 커져 있다는 것을 깨달았다... 기간안에 모든 것을 해치우기에는 벅차다는 것을 느꼈고, 일단 애자일 방식으로 진행하기로 했다. 개발보다는 팀원들과의 커뮤니케이션을 많이 하여 뒤쳐지는 인원 없이 모두 함께하는 앱을 만들수 있어 너무 재밌고, 행복했다. ( 사실은 내가 제일 질문을 많이했다... ) 어려움에 부딪히다..

Swift 2023.02.09

어서와 @ObservedObject 처음이지?

@ObservaedObect 너란 녀석... 정복하고 싶다 @ObservaedObect를 서치하다 보면 @StateObject라는것이 같이 보일 것이다. 비교해가면서 알아보자 일단 @ObservaedObect가 무엇인가? 공식문서에서 찾아보면 관찰가능한 객체를 구독하고 변경될때 마다 view를 무효화하는 property wrapper라고 되어있습니다. 쉽게 풀이해보자면 관찰중인 객체의 변경에 반응해서 화면을 업데이트해준다 라고 생각하면 됩니다. 관찰중인 객체에 반응해서 화면을 업데이트한다??... 전에 배웠던 @State랑 비슷한 느낌적인 느낌인데... 네 맞습니다. @State에서는 특정 view에서만 사용되는 프로퍼티 였다면 ObservaedObect는 다양한하게 사용할수 있습니다. 여기서 Obser..

Swift 2023.01.25

어서와 @Binding은 처음이지?

@State를 사용하면 짝으로 활용되는게 Binding입니다. 그럼 Binding이 무엇인가요? bind의 사전적 의미로 보면 묶다, 감다를 나타냅니다. 사전적 의미에서 느껴지는 느낌을 갖고 binding에 대해 알아봅시다. 결론은 @State 속성으로 선언된 프로퍼티와 연결되어 있다고 생각하면 됩니다. 첫 화면 에서 보여지는 Text를 다른 화면에서도 똑같은 값을 보여주기 위해선 어떻게 하면 좋을까? 답은 @State 로 설정되어 있는 값을 @Binding해서 나타내고자 하는 뷰에 만들어주면 됩니다. 영상을 보시면 +1씩 증가 시키고 시트뷰를 누르면 다른 뷰에서도 같은 값이 나오는 것을 볼 수 있습니다. 어떻게 가능 한거죠?? 주가 되는 뷰에 @State를 한 번만 선언해주고, 다른 뷰들에서 사용하기 ..

Swift 2023.01.25