본문 바로가기

Swift

(50)
[iOS/Architecture] UseCase 활용기 안녕하세요 제인입니다 :)최근에 진행한 개인 프로젝트의 아키텍처를 MVVM-Clean Architecture 로 설계하고, 각 레이어의 역할을 명확히 구분해 전체 코드의 유지보수성을 높이는 데 초점을 맞추어 개발을 했었는데요,이 과정에서 특히 UseCase의 역할에 대해 많이 고민을 한 것 같아요!그래서 제가 저의 방식대로 UseCase를 구성한 내용을 한 번 공유해보려고 합니다.UseCase란?UseCase 레이어의 역할을 한 줄로 정의한다면 아래와 같이 정의할 수 있을 것 같습니다.UseCase는 비즈니스 로직이 위치하는 곳으로, 엔티티로 들어오고 나가는 데이터 흐름을 조정합니다. 이 정의를 좀 풀어서 생각해볼게요!화면에 보여줄 데이터를 원하는 형태로 얻으려면?1. 네트워크 통신을 통해 DB에 있는 ..
[Combine] 관찰가능한 데이터 만들기 - ObservableObject와 @Published 안녕하세요 제인입니다 :)SwiftUI관련 내용을 정리하다보니 Combine 관련 내용이 나와버려서 Combine으로 돌아왔습니닷..ㅎSwiftUI로 개발하면서 데이터를 다루다보면 무조건 Combine을 공부할 수밖에 없는 것 같아요!오늘은 관찰가능한 데이터를 만들어서 데이터 변경에 따라 UI를 어떻게 업데이트할 수 있는지에 대해 한번 다뤄보겠습니다.@Published@propertyWrapperstruct Published Publisher로 만들어주는 프로퍼티 래퍼값 바뀔 때마다 willSet 블록에서 publish $ 기호를 이용하여 projectedValue에 접근클래스의 프로퍼티에서만 사용 가능 (값 타입 불가)저번 Combine 게시글에서 Publisher와 Subscriber가 무엇인지 개념..
[SwiftUI] View 업데이트 방식 - @State, @Binding 안녕하세요 제인입니다 :) SwiftUI에서는 뷰를 어떤 방식으로 업데이트 하는지 알아보고, SwiftUI에서 제공해주는 다양한 프로퍼티 래퍼 중 대표적인 몇 가지에 대해서 살펴볼게요~!SwiftUI의 View 업데이트 방식SwiftUI에서는 데이터가 바뀌면 이에 따라 뷰가 바뀝니다. 즉, 뷰는 데이터에 대한 의존성을 가집니다.SwiftUI에서는 데이터가 변경될 때마다 뷰를 업데이트하는 메커니즘이 내부에 존재합니다. 그렇기 때문에 데이터 업데이트 시점을 계산해서 뷰를 업데이트 시켜주는 일을 개발자가 일일이 해주지 않아도 되는 것이죠. 이를 위해 SwiftUI에서는 다양한 프로퍼티 래퍼를 제공합니다. 이 중 가장 기본적인 @State, @Binding 을 이용해 어떤 방식으로 뷰를 업데이트 하게 되는 것인..
[SwiftUI] View Life Cycle 안녕하세요 제인입니다 :)그동안 블로그 글을 못썼는데,,, 최근에 개인 프로젝트를 하나 진행했습니다..ㅎSwiftUI 프레임워크로 개인 프로젝트 개발을 진행하며 학습한 내용도 많아서 새롭게 학습하거나 정리해둔 내용을블로그에도 공유해볼게요~! (이제보니 UIKit 글을 거의 안썼네요...?ㅋ.......)SwiftUI View Life CycleLifecycle은 SwiftUI 뷰의 생성부터 소멸까지 생기는 일련의 이벤트 입니다.SwiftUI의 각 뷰에는 우리가 관찰하고 조작할 수 있는 세 가지 주요 단계가 있습니다.이 세 가지 단계는 Appearing, Updating, Disappearing 입니다.AppearingAppearing은 뷰 그래프에 뷰를 삽입하는 것을 의미합니다.이 단계에서 뷰는 초기화되..
[iOS] 이미지에 원하는 모양의 마스크 적용하기 안녕하세요 제인입니다~!UI 구현에 관한 게시글은 처음 업로드 하는 것 같은데요, 복잡한 UI를 구현하면서 겪었던 문제들 혹은 고민했던 점을 블로그에도 기록으로 남겨놓았으면 좋았을 걸,, 하는 생각에예전 프로젝트에서 꽤나 고민했던 과정을 포스팅하려고 합니다..! (공유하면 좋으니까요..ㅎ)앞으로도 이슈 해결에 대한 내용도 포스팅을 해보도록 노력하겠습니다!복잡한 모양의 마스크를 이미지에 적용하기이번 포스팅에서는 이미지에 사각형, 원처럼 간단한 도형이 아니라 복잡한 모양의 마스크를 적용하는 방법에 대해 공유해보겠습니다!!예전에 참여했었던 프로젝트에서 서비스의 심볼인 마시멜로 모양이 여러 화면에서 보였습니다.특히, 마시멜로 모양의 마스크가 적용된 이미지가 프로필 사진으로 적용되어 앱 곳곳에서 자주 사용되었습니..
[Algorithm/Swift] 프로그래머스(Lv.2) - 택배 배달과 수거하기 안녕하세요 제인입니다 :) 요즘 PS를 연습하며 아이디어를 코드로 구현하는 능력이 부족하다는 것을 깨닫고 있는데요,,, 차근차근 기록도 해가며 실력을 높여가야겠습니다..!! Greedy 유형인 2023 KAKAO BLIND RECRUITMENT - 택배 배달과 수거하기 문제 풀이를 정리해보겠습니다😊 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 처음 접근 일단 문제를 읽고 그리디로 풀어야겠다는 아이디어는 떠올랐는데, 스택 자료구조를 이용해야겠다는 생각은 하지 못해 방문 처리 및 조건을 판단해주기가 까다롭다고 느꼈습니다🥲 (택배 수거 ..
[Combine] WWDC19 - Introducing Combine 안녕하세요 제인입니다:) 지난 글에서 Combine의 핵심이자 기본인 Publisher, Subscriber에 대해 공식 문서를 토대로 정리해보았는데요, Combine에 대해 더 깊게 학습하기에 앞서 WWDC19 - Introducing Combine 영상을 보고 내용을 정리해보았습니다. 해당 세션에서는 Publisher, Subscriber, Operator 에 대해 개괄적인 내용을 담고 있어 Combine 프레임워크에 대해 한 번 훑어볼 수 있었던 세션이었습니다. Combine이란? A unified declarative API for processing values over time. Combine은 시간 경과에 따른 값 처리를 위한 통합된 선언적 API입니다. Key Concepts Publish..
[Combine] Combine 시작하기 - Publisher와 Subscriber 안녕하세요 제인입니다! 굉장히 오랜만에 글을 쓰는데... 컴바인으로 돌아왔습니다 ㅎ... 동아리 플젝으로 바빠서 블로그에 공부한 내용 정리를 못했는데, 동아리 후기도 가져오고 그동안 공부한 내용도 정리해서 올려보도록 할게요! 동아리 플젝에서 SwiftUI + Combine 으로 개발을 하게 되었는데요, 새로운 스택에 도전하니 재밌었습니다😆 더 깊게 공부해보면서 내용정리를 해보려구요 ! 오늘은 컴바인 시작하기로 Publisher와 Subscriber에 대해 정리해보겠습니다. Combine 이란? Combine은 Apple에서 공식적으로 제공하는 비동기 이벤트 처리를 위한 프레임워크입니다. 또 다른 비동기 처리 도구인 RxSwift는 third-party 라이브러리이지만 Combine은 Apple에서 공식..