UIkit 4

[iOS] 언제까지 SnapKit? SwiftLayout은 어때?

1. SwiftLayout이란?SwiftLayout은 Auto Layout의 복잡성을 줄이고, 선언형(Declarative) 방식으로 뷰를 구성할 수 있도록 도와줍니다. SwiftUI의 레이아웃 작성 방식과 유사하게 UIKit에서 사용할 수 있도록 설계된 것이 특징입니다.이 글에서는 SwiftLayout을 활용하여 어떻게 간결하고 효율적인 UI 레이아웃을 구성할 수 있는지 예제 코드와 함께 살펴보겠습니다.2. SwiftLayout의 특징선언형(Declarative) 문법: SwiftUI처럼 직관적으로 UI를 구성할 수 있습니다.간결한 코드: 기존 Auto Layout 코드보다 훨씬 짧고 가독성이 좋습니다.동적 레이아웃 변경 용이: 특정 조건에 따라 레이아웃을 쉽게 변경할 수 있습니다.UIKit과의 완벽한..

클라이언트 2025.02.17

[iOS] SnapKit을 활용한 iOS UI 레이아웃 잡기

iOS 앱을 개발할 때 UI를 배치하는 방법은 여러 가지가 있지만, 최근에는 Auto Layout을 코드로 작성하는 것이 일반적입니다. 하지만 Apple의 기본 API인 NSLayoutConstraint를 사용하면 코드가 길어지고 가독성이 떨어지는 문제가 있습니다. 이를 해결하기 위해 SnapKit이라는 라이브러리를 활용하면 훨씬 간결하고 직관적인 코드로 UI를 구성할 수 있습니다.이번 글에서는 SnapKit을 사용하여 iOS UI를 어떻게 쉽게 배치하는지 설명하고, 여러 가지 예제 코드를 제공하겠습니다.1. SnapKit이란?SnapKit은 Swift 기반의 Auto Layout DSL (Domain Specific Language) 로, 코드로 UI 레이아웃을 설정할 때 더 간결하고 읽기 쉽게 만들어..

클라이언트 2025.02.17

[UIKit] UIColor Hex 초기화, 문자열 초기화 유틸 Extension 코드

Swift에서 UIColor를 초기화할 때, 다양한 16진수 형식의 문자열(0x~~, #~~~, FFFFFF)을 지원하는 유틸리티 확장을 구현해보겠습니다. 또한, 이를 검증하기 위한 테스트 코드도 작성합니다.import UIKitextension UIColor { convenience init?(hex: String) { var hexSanitized = hex.trimmingCharacters(in: .whitespacesAndNewlines) hexSanitized = hexSanitized.replacingOccurrences(of: "0x", with: "").replacingOccurrences(of: "#", with: "") var rgb: UInt..

클라이언트 2025.02.16

[iOS] iOS 앱 리버싱 간단한 예제

리버싱(리버스 엔지니어링, Reverse Engineering)은 소프트웨어의 내부 동작을 분석하고 이해하는 과정입니다. iOS 앱 리버싱을 통해 보안 취약점을 탐색하거나 앱의 동작을 변경할 수 있습니다. 본 글에서는 간단한 iOS 예제 앱을 만든 후 이를 리버싱하고, 일부 기능을 조작하는 방법을 다룹니다.주의: 타인의 앱을 무단으로 리버싱하거나 조작하는 것은 불법이며 윤리적으로도 문제가 될 수 있습니다.1. 환경 구축리버싱을 위해 다음과 같은 도구가 필요합니다:macOS (iOS 개발 및 리버싱 환경 필수)Xcode (Swift 기반 예제 앱 개발)lldb (디버깅 및 런타임 메모리 조작)Hopper Disassembler (바이너리 분석)Frida (런타임 코드 주입 및 분석)class-dump (클..

클라이언트 2025.02.16