반응형

전체 글 229

[iOS, Swift] 싱글턴 구현

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. class UserInfo { static let shared = UserInfo() private init() { } } 싱글턴 패턴은 객체지향 디자인 패턴 중 하나로, 어떤 클래스가 최대 1개의 인스턴스만 가지고 있도록 보장하는 것입니다. 이를 통해 객체의 생성과 파괴가 지나치게 빈번하게 일어나지 않도록 하고, 메모리 사용량을 줄이는 등의 이점을 얻을 수 있습니다. 위의 코드 조각에서는 UserInfo 클래스를 싱글턴으로 구성하였습니다. static let shared를 이용하여 UserInfo 클래스의 인스턴스를 단 하나만 생성할 수 있도록 하였고, private init()으로 객체 생성을 외부에서 할 수 ..

iOS/코드조각 2023.03.23

[iOS, Swift] Any to String 형변환

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. let text: String = String(describing: sender.userInfo!["text"]!) Notification userInfo 타입이 [AnyHashable: Any]? 이어서 밸류 값 Any 타입을 형변환 해주었습니다. 위 코드에서 `sender.userInfo!["text"]!` 부분은 Notification 객체에서 userInfo 딕셔너리로부터 "text" 키에 해당하는 값을 가져오는 부분입니다. 그러나 이 값은 Any 타입으로 반환됩니다. Any 타입은 Swift의 모든 타입을 나타낼 수 있는 타입으로, 타입 안정성을 보장하지 않습니다. 따라서 이 값을 String으로 사용하려..

iOS/코드조각 2023.03.22

[iOS, Metal] Metal에서 Image를 MTKView에 올리는 방법

이 글에서는 Metal에서 이미지를 MTKView에 올리는 방법에 대해 알아보겠습니다. 1. 이미지 로드하기 Metal에서 이미지를 사용하기 위해서는 이미지를 로드해야 합니다. guard let image = UIImage(named: "{이미지 파일 이름}") else { fatalError("이미지를 로드하는 데 실패했습니다.") } 2. Texture 생성하기 이미지를 로드했다면, 이제 해당 이미지를 Metal에서 사용할 수 있는 Texture로 변환해야 합니다. guard let texture = try? MTLTextureLoader(device: device).newTexture(cgImage: image.cgImage!, options: nil) else { fatalError("Textur..

iOS/라이브러리 2023.03.21

[Objective-C, iOS] Objective-C 헤더와 m 파일에 대한 이해

Objective-C는 C 언어를 기반으로 하는 객체 지향 프로그래밍 언어입니다. Objective-C는 C 언어와 마찬가지로 헤더 파일과 구현 파일로 이루어져 있습니다. 이들 파일은 Objective-C에서 클래스 및 인터페이스를 선언하고 구현하는 데 사용됩니다. 헤더 파일(.h) Objective-C에서 헤더 파일은 클래스와 인터페이스의 선언을 포함합니다. 헤더 파일은 다른 클래스나 소스 파일에서 해당 클래스 또는 인터페이스를 import할 수 있도록 합니다. 헤더 파일의 일반적인 구조는 다음과 같습니다. // MyClass.h #import @interface MyClass : NSObject // Properties @property (nonatomic, strong) NSString *name;..

iOS/강의, 고찰 2023.03.20

[iOS, Swift] UILabel Highlight 효과주기

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. label.isHighlighted = true label.highlightedTextColor = UIColor.red 위 코드는 iOS 앱에서 라벨의 하이라이트 텍스트 색상을 빨간색으로 설정하는 예시입니다. iOS 개발을 하다보면 라벨의 텍스트 색상을 변경해야 할 때가 있습니다. 예를 들어, 라벨을 탭하면 텍스트 색상이 바뀌게 하고 싶은 경우가 그렇습니다. 그럴 때, 위의 코드를 참조하여 라벨의 하이라이트 텍스트 색상을 빨간색으로 설정할 수 있습니다. 이 코드를 활용하면 원하는 색상으로 텍스트 색상을 바꿀 수 있습니다.

iOS/코드조각 2023.03.19

[iOS, Swift] UILabel 여러 줄 표현하기

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. UILabel은 iOS 앱에서 많이 사용되는 UI 컴포넌트 중 하나입니다. 하지만 한 줄의 text만을 표시하기 때문에 text가 길어지면 너비가 부족해져서 표시되지 않는 경우가 있습니다. 이때 numberOfLines 속성을 사용하면 text가 여러 줄로 표현될 수 있습니다. numberOfLines 속성은 Label의 text가 차지할 수 있는 최대 줄 수를 정의하는데, 0으로 설정하면 필요한 만큼의 textLine을 표현할 수 있습니다. 더 복잡한 텍스트의 경우, UITextView를 사용하는 것이 더 적합할 수 있습니다. UITextView는 text를 수정할 수 있기 때문에, 사용자로부터 입력을 받아야 할..

iOS/코드조각 2023.03.18

[iOS, Swift] UILabel 밑줄 추가하기

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. NSAttributedString 클래스는 문자열에 다양한 스타일을 적용할 수 있는 클래스입니다. 이 클래스를 사용하면 문자열의 특정 부분에 대해 폰트, 색상, 기울임 등의 스타일을 지정할 수 있습니다. NSAttributedString의 인스턴스를 생성하려면 문자열과 스타일을 딕셔너리 형태로 전달해야 합니다. 이 때, 스타일은 NSAttributedString.Key 열거형의 값으로 전달됩니다. 이 열거형은 다양한 스타일 옵션을 제공하며, 예를 들어 폰트, 색상, 밑줄, 중앙선 등의 스타일을 지정할 수 있습니다. NSAttributedString 클래스의 Key 열거형 중에서도 NSUnderlineStyle 속성..

iOS/코드조각 2023.03.17

[디자인, 피그마] UX/UI 디자이너를 위한 실무 피그마

"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 컴퓨터 프로그래밍을 하면서 프론트 작업을 할 때, 디자이너가 없이 개발자만 작업하면 매우 어려울 것입니다. 또한 개발자와 디자이너 간의 소통이 없으면 작품이 나오지 않을 수 있습니다. 개발자와 디자이너가 소통하는 데 있어서 피그마나 다른 프로그램이 없으면 소통이 어려울 것이지만, 지금은 소통할 수 있는 프로그램인 피그마가 있어서 소통이 더욱 편리해졌습니다. 이 책은 피그마를 처음 시작하거나 배우는 학생들이 쉽게 접할 수 있도록 작성되었습니다. 또한 피그마를 사용하는 디자이너, 기획자, 개발자들을 위해 작성되었으며, 피그마에서 리소스 사용법을 알려주고, 협업하는 방법도 설명합니다. 마지막으로, 실제 앱을 바탕으로 예제를 설명하므로 피그마를 쉽게..

2023.03.16

[iOS, Swift] RunLoop 사용하기

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. RunLoop은 iOS 애플리케이션에서 이벤트 처리를 위한 핵심 메커니즘 중 하나입니다. 이 메커니즘은 쓰레드를 대기 상태로 만들거나, 타이머를 실행하거나, 입출력 이벤트를 처리하는 데 사용됩니다. RunLoop은 앱의 UI 쓰레드를 유지하면서 동시에 다른 쓰레드에서 작업을 처리할 수 있도록 해줍니다. UI 쓰레드에서 사용자 입력을 처리하면서 백그라운드 쓰레드에서 네트워크 작업을 처리할 수 있습니다. RunLoop은 기본적으로 이벤트 루프로 구성되어 있으며, 이벤트가 발생할 때까지 대기합니다. 이벤트가 발생하면 해당 이벤트를 처리하고 다시 대기 상태로 돌아갑니다. RunLoop 클래스를 사용하여 이벤트 루프를 만들..

iOS/코드조각 2023.03.15

[iOS, Swift] 코드로 뷰 작성하기(UIKit, Constraint)

iOS 15, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. 이번 글에서는 Swift 코드로 뷰를 작성하는 방법에 대해 알아보겠습니다. 뷰를 코드로 작성하면 Interface Builder를 사용하는 것보다 더 세밀한 제어가 가능합니다. 그리고 Constraints를 활용하여 뷰를 자동으로 정렬하는 방법도 함께 알아보겠습니다. 1. 뷰 작성하기 Swift 코드로 뷰를 작성하는 방법은 매우 간단합니다. 먼저, UIView 클래스를 상속받은 새로운 클래스를 만듭니다. 그리고 그 클래스 내부에서 필요한 뷰들을 생성하고, addSubview() 메소드를 사용하여 부모 뷰에 추가합니다. class MyView: UIView { let titleLabel = UILabel() let de..

iOS/코드조각 2023.03.14
반응형