분류 전체보기
-
Recap 2024회고 2025. 1. 13. 18:53
안녕하세요. 그린입니다 🍏 금일의 포스팅은 2024년 회고입니다.사실, 조금 늦었어요 🥲작년에는 1월 1일 되자마자 떠오르는 해를 바라보고 와서 한 해를 돌아보고 새로운 시작을 다짐하는 회고글을 작성했는데요.이번에는 핑계일지 몰라도 개인적으로 연말, 연초에 정신 없을 정도로 많이 바빴기에 조금? 늦은 감이 있지만 그래도 회고를 작성해봐요 🥹(왜 연말, 연초에 바빴는지 마지막에 얘기할 예정입니다.) 개발자가 되서 쓰는 4번째 회고인데 작년에도 그랬지만 2024년 한 해와 2025년 첫 시작이 저한테 많은 의미가 있었습니다. 생각해보니 매번 회고에서 의미가 있다고 했는데, 그만큼 1년을 꽉차게 살았다고 생각합니다 ☺️ 이번 2024년 회고도 당연하게도 무형식 무근본의 회고입니다 😃 어떻게 회고 해볼까..
-
SwiftUI에서 UUID를 활용한 뷰 갱신 업데이트SwiftUI 2025. 1. 9. 18:53
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI에서 실제 많이 사용될 수 있는 UUID를 활용한 뷰 갱신 업데이트에 대해 알아보겠습니다 🙋🏻 무엇을 해보는걸까?SwiftUI로 만약 애니메이션을 구현하거나 할 때 가장 까다로울 수 있는 부분이 상태 변경 시 애니메이션을 새로 시작하는것이죠.특히, Lottie와 같은 서드파티 애니메이션 라이브러리를 사용할 때 이러한 문제가 더욱 두드러질 수 있습니다.그래서 이번에 UUID를 활용하여 해결해보고자 합니다. 문제 상황우선 간단한 로티를 사용한 코드를 볼께요. import Lottieimport SwiftUI// 첫 번째 화면struct FirstView: View { @State var isGrowUp: Bool = false var actio..
-
Swift로 효율적인 디버그 로깅 시스템 구축하기Swift 2025. 1. 6. 18:49
안녕하세요. 그린입니다 🍏이번 포스팅에서는 앱 개발 환경에서 효율적인 디버그 로깅 시스템 구축을 주제로 포스팅하려 합니다 🙋🏻 개발 과정에서 로깅(logging)은 앱의 동작을 이해하고 디버깅하는데 필수적인 도구라 볼 수 있어요.그렇기에 이번 포스팅에서 Swift로 구현된 효율적인 디버그 로깅 시스템 구축을 해볼까 합니다! Swift로 효율적인 디버그 로깅 시스템 구축하기우선 해당 포스팅에서 가장 큰 주축이 되는 두 클래스 구현을 설계합니다. 1️⃣ SwiftLog - 실제 로그 파일 관리와 쓰기를 담당하는 클래스2️⃣ DebugLogger - 로그 메시지 포맷팅과 로깅 인터페이스를 제공하는 클래스 해당 클래스들로 만들어진 시스템은 다음과 같은 주요 특징을 가지게 됩니다. 1️⃣ 파일 기반 로깅2️..
-
SwiftUI Text에 stroke 적용하기 (feat. UIKit)SwiftUI 2025. 1. 2. 18:49
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI Text에 stroke를 적용하는 두번째 방법에 대해 알아보겠습니다 🙋🏻 이전 첫번째 방법에 대해 기술한적이 있어요. SwiftUI의 Text에 stroke 적용하기안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI의 Text에 테두리에 stroke를 넣는 방법에 대해 한번 구현해보겠습니다 🙋🏻 간단하기도 하고 제가 필요해서 한번 모디파이어로 빼보면서 만green1229.tistory.com 해당 방법에서는 SwiftUI Text 자체에 shadow를 적절히 주어 표현했었는데요.한계가 있었습니다.stroke 두께를 늘릴수록 shadow가 크게 적용되고 그에 따라 사실 상 aliasing, 계단 현상으로 디자인이 매끄럽지 못하게 나..
-
RangeSet (feat. Set, IndexSet)Swift 2024. 12. 26. 14:35
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Swift 6에서 새로 도입된 RangeSet이라는것에 대해 학습해보겠습니다 🙋🏻 그럼 바로 가볼까요?RangeSetRangeSet은 범위로 표현되는 비교 가능한 모든 유형의 값의 집합입니다. struct RangeSet where Bound : Comparable Swift 6에서 탑재되어 iOS 18 이상부터 해당 타입을 사용하여 코드를 구현할 수 있어요. 기본적으로 설명해보자면, RangeSet은 불연속적인 범위에 걸쳐 있는 비교가 가능한 값 집합을 효율적으로 표현할 수 있습니다.RangeSet은 일반적으로 컬렉션의 인덱스 유형 범위를 저장해 컬렉션의 여러 하위 범위를 나타내는데 사용됩니다. 예시를 볼께요. var numbers = [10, 12, -..
-
SwiftUI의 Custom Grid로 카테고리 뷰 구현하기SwiftUI 2024. 12. 23. 18:55
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI의 Custom Grid를 적절히 구현하여 우리가 많이 접할 수 있는 카테고리 뷰 시스템을 한번 만들어보려고 합니다 🙋🏻 오늘의 포스팅은 새로운 지식의 습득보다는 실제 많이 쓰일 수 있는 뷰 개발에 초점을 맞춰 코드가 많습니다 😃 SwiftUI의 Custom Grid로 카테고리 뷰 구현하기그럼 가장 먼저 오늘 어떤걸 구현해볼지 결과물부터 보고 가볼까요? 자 요런걸 만드려고 합니다! 일반적인 메인 카테고리와 그 메인 카테고리를 선택하면 나오는 서브 카테고리의 형태 구조입니다.물론, 카테고리 형태는 정말 다양하겠지만 이렇게 서브 카테고리에 대해서 그리드로 한번 작업해보려고 합니다.여기서 저는 예시로 우리가 많이 접할 수 있는 회원 정보를 입력하..
-
NSObject에 대하여Swift 2024. 12. 19. 08:44
안녕하세요. 그린입니다 🍏이번 포스팅의 주제는 NSObject에 대해 한번 정리해보려 합니다 🙋🏻 사실, NSObject는 Swift 카테고리보다는 Objective-C에 더 가깝긴하죠.또, iOS 개발의 근간이라고 볼 수 있습니다. 그럼 한번 알아볼까요? NSObject?NSObject는 Objective-C 런타임 시스템의 근간을 이루는 최상위 클래스죠.Foundation 프레임워크의 루트 클래스로, 거의 모든 Cocoa와 Cocoa Touch 클래스의 기본 클래스 역할을 해줍니다.결국 Objective-C의 객체 지향 프로그래밍을 가능하게 해주는 핵심 요소라고 볼 수 있어요.이 NSObject를 상속받는 하위 클래스들은 런타임 시스템에 대한 기본 인터페이스와 Objective-C 객체처럼 동작..
-
UIGestureRecognizerRepresentable 사용하기SwiftUI 2024. 12. 16. 18:55
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI의 UIGestureRecognizerRepresentable에 대해 학습해보겠습니다 🙋🏻 UIGestureRecognizerRepresentable?UIGestureRecognizerRepresentable는 이번 WWDC 2024에서 소개되었는데요.iOS 18이상에서 사용 가능합니다. UIGestureRecognizerRepresentable는 SwiftUI에서 UIKit의 제스처 인식기를 사용할 수 있게 해주는 프로토콜이에요.우리 UIViewRepresentable이 SwiftUI에서 UIKit의 뷰를 사용할 수 있게 도와주는 프로토콜이었던것과 같은 맥락이죠.해당 프로토콜을 통해서 우리는 SwiftUI 뷰에서 UIKit의 다양한 제스처 인..