[iOS] 넷플릭스 클론 코딩 0. 목표
·
iOS 프로젝트/클론
목표 기존에는 클론 코딩의 효과에 대해 의아함이 있었지만, 인턴십을 하면서 생각이 바뀌었습니다. 클론 코딩을 하면서 스킬이 늘고 다른 프로젝트에 응용할 수 있기 때문입니다. 이번 넷플릭스 클론 코딩도 이와 같은 목표로 시작합니다. 넷플릭스 앱에는 이미지, 리스트와 관련된 기능이 많습니다. 1. 가이드에 따라 개발을 하고, 2. 제 코드 스타일로 리팩토링을 하고, 3. 제 개인 프로젝트에 기술을 적용을 해보려고 합니다. 클론 코딩은 1년 전에 Amr 유튜브 채널에 게시된 영상을 토대로 진행하고, 다음 넷플릭스 클론 코딩 - 1부터 본격적인 포스팅을 시작하겠습니다. 감사합니다. 아직은 초보 개발자입니다. 더 효율적인 코드 훈수 환영합니다! 공감과 댓글 부탁드립니다.
[iOS] UnitTest 사용해보기
·
iOS/개념 & 개발
서론 의존성 주입 등을 공부하면서 "테스트가 쉬워진다."라는 문장을 자주 접했습니다. 오늘은 UnitTest가 무엇인지 알아보고, Xcode의 UnitTest 기능을 간단히 사용해보겠습니다. UnitTest UnitTest는 프로젝트의 특정 모듈이 의도된대로 정확히 작동하는지 검증하는 절차로, 모든 함수와 메서드에 대한 테스트 케이스를 작성하는 절차를 의미합니다. 작성한 프로그램이 의도대로 잘 동작하는지 검증하는 가장 작은 단위의 테스트라고 할 수도 있습니다. 작은 단위의 테스트이므로 테스트에는 의존성을 최소화해야 합니다. 따라서 각 객체의 관심사를 분리해야 하고, 이때 의존성 분리와 주입이 필요합니다. 저도 최근에 의존성에 대한 포스팅을 작성했는데요. 의존성 주입 DI(Dependency Injecti..
[iOS] Quick Help 작성
·
iOS/개념 & 개발
* 이번 포스팅의 Quick Help는 간단한 소개가 목적이라서 복잡하고 모범적인 예시는 Swift 코드를 참고하시면 됩니다! 서론 [iOS] JeongLogger SPM 라이브러리 생성과 배포 라이브러리 준비 라이브러리를 직접 만들고, SPM을 직접 배포해 봅시다. 라이브러리는 모든 프로젝트에서 사용되는 Log 기능으로 만들어볼건데요. 이에 몇 가지 주의점이 있습니다. 혹시 라이브 jeong9216.tistory.com 저번 포스팅에서 JeongLogger라는 SPM 라이브러리를 만들고 배포까지 진행해보았는데요. 오늘은 Quick Help라는 것을 추가해서 라이브러리 퀄리티를 높여보겠습니다. 이게 꼭 필요한가? 싶으신 분들을 위해 미리 Quick Help 적용 차이를 보여드리겠습니다. Quick Hel..
[iOS] JeongLogger SPM 라이브러리 생성과 배포
·
iOS/개념 & 개발
라이브러리 준비 라이브러리를 직접 만들고, SPM을 직접 배포해 봅시다. 라이브러리는 모든 프로젝트에서 사용되는 Log 기능으로 만들어볼건데요. 이에 몇 가지 주의점이 있습니다. 혹시 라이브러리 클래스에 고유한 단어를 붙이는 이유가 뭔지 아시나요? 예를 들면, Kingfisher는 "kf"라는 글자처럼요. 이런 글자를 붙이는 이유는 라이브러리 사용자가 사용하는 이름과 중복되는 것을 피하기 위해서 입니다. 같은 이름의 클래스가 있으면 안 된다는 것은 대부분 아실거에요. 그 규칙이 라이브러리의 클래스에도 적용되기 때문에 kf같은 특수한 단어를 붙이는 겁니다. (클래스 뿐만 아니라 이름이 겹치면 안 되는 모든 것에 적용되는 얘기입니다.) 따라서 이번 Logger 라이브러리 이름을 JeongLogger로 만들고..
[iOS] WWDC19 - Combine in Practice (2)
·
WWDC/iOS
이전 포스팅 2023.01.22 - [🍎 iOS/iOS 개념&개발] - [iOS] WWDC19 - Combine in Practice (1) [iOS] WWDC19 - Combine in Practice (1) Combine Combine은 시간의 흐름에 따라 값을 처리하는 API 입니다. 자세한 내용은 이전 포스팅인 "WWDC19 - Introducing Combine"을 참고해 주세요. 이번 발표인 "WWDC19 - Combine in Practice"에서는 실제로 Combine을 jeong9216.tistory.com Subscriber 지난 포스팅에서 Publisher에 대해 알아보았으니, 이제는 Subscriber에 대해 알아봅시다. Subscriber는 Publisher와 동일하게 두 개의 a..
[iOS] WWDC19 - Combine in Practice (1)
·
WWDC/iOS
Combine Combine은 시간의 흐름에 따라 값을 처리하는 API 입니다. 자세한 내용은 이전 포스팅인 "WWDC19 - Introducing Combine"을 참고해 주세요. 이번 발표인 "WWDC19 - Combine in Practice"에서는 실제로 Combine을 사용해보겠습니다. 우리는 이 UI 스케치를 가지고 앱을 하나 만들 것입니다. Trick Name에 마법 기술 이름을 넣을거에요. NotificationCenter는 특정 Notification을 위한 Publisher로 등록할 수 있도록 지원합니다. 이렇게 생성된 Publisher의 Output 타입은 Notification 타입이고, Failure 타입은 Never입니다. 이제 우리는 Notification을 발행하는 Publi..
[iOS] WWDC19 - Introducing Combine
·
WWDC/iOS
App Requirements 몇 가지 요구사항을 만족하는 앱을 만들고 있습니다. 사용자 이름을 입력하고, 서버에 전달해서 유효한 입력인지 확인합니다. 서버 통신을 할 때는 메인 스레드를 Blocking 하지 말고, 인터페이스를 그대로 유지해야 합니다. 이부분에서 Target/Action, Timer, KVO 등이 사용됩니다. 사용자가 TextField에 입력을 하고, URLSession을 이용해 서버와 통신합니다. 네트워크 리소스를 아끼기 위해 Timer를 이용해 사용자가 입력이 멈춘 뒤 서버에 요청을 보낼거고, 네트워크 Progress Update를 위해 KVO를 통해 처리할 수 있습니다. 결과적으로 이러한 비동기 API들을 만나게 됩니다. 이들은 각각 사용하는 방법이 달라서, 엮어서 쓰는 것은 까다..
[iOS] Combine 준비하기
·
iOS/개념 & 개발
Combine 준비 TLDR은 처음으로 MVVM을 도입한 프로젝트입니다. 바로 Combine을 도입하진 않았고, 프로퍼티 옵저버인 didSet을 이용해 데이터 바인딩을 구현했습니다. 이제 Combine을 학습해서 도입하고자, 정리하는 포스팅을 한 번 작성하려고 합니다 ㅎㅎ Observable 먼저 기존 Observable에 대해 알아봅시다. Observable 모델은 아래처럼 구현되어 있습니다. final class Observable { typealias Listener = (T) -> Void var listener: Listener? var value: T { didSet { listener?(value) } } init(_ value: T) { self.value = value } func bin..
[iOS] Apple 개발자 프로그램(멤버십) 등록시 주의할 점
·
iOS/개념 & 개발
서론 오랜만에 포스팅을 작성하네요. 최근에 최종 탈락으로 인한 심신미약과 졸업 준비로 인해 글을 쓰기가 힘들었습니다 ㅎㅎ; 아무튼, Apple 개발자 프로그램을 갱신하라는 메일이 왔습니다. 애플에게 1년에 한 번씩 친구비를 내는 날이죠. 이 과정에서 발생했던 문제와 Apple 개발자 프로그램을 등록할 때 주의할 점에 대해 알아봅시다. Apple 개발자 프로그램도 구독 결제가 가능하다. 먼저 Apple 개발자 프로그램은 구독이 불가능하다고 알고 계시는 분들이 계실텐데요. Apple 개발자 프로그램도 자동 구독 결제가 가능합니다. 바로 Apple Developer 앱을 이용하는 것이죠. 이 앱에서 계정에 로그인한 후 들어가면 멤버십을 결제하고 구독할 수 있습니다. 매번 카드 결제를 직접 하지 않아도 자동으로..
[iOS] TLDR 개발 일지 - Summarize ViewModel 구현
·
iOS 프로젝트/TLDR
서론 마지막 TLDR 개발일지인 Summarize ViewModel 구현입니다. 선택한 키워드를 어떻게 관리하는지 고민한 내용을 다룹니다. TLDR 앱 출시도 완료했으니 많은 관심 부탁드려요. [iOS] TLDR 개발 일지 - TLDR 앱 출시 앱스토어 등록 완료 앱스토어 등록을 완료했습니다~!! 앱스토어에 TLDR이라고 검색하면 저희 앱이 나와요 ㅎㅎ 링크는 https://apps.apple.com/kr/app/tldr/id6444666209 여기! PC는 아래 QR을 아이폰으로 인식하 jeong9216.tistory.com 키워드 ViewModel TLDR 앱에는 선택한 키워드를 TextView에 하이라이트 해주는 기능이 있습니다. 이 기능때문에 선택한 키워드를 Collection으로 관리해줘야 했어..
유정주
'iOS 개발' 태그의 글 목록 (3 Page)