반응형

iOS 186

[App] 삼체 - Body Problem

삼체 - BodyProblem은 실시간으로 중력 상호작용을 시뮬레이션하는 앱입니다. 이 앱을 통해 사용자는 가상의 우주 공간에서 여러 물체들을 생성하고, 그들이 서로의 중력에 어떻게 반응하는지 직접 관찰하고 실험할 수 있습니다. 각 물체의 질량과 위치를 조정하면서 물리적 원리를 탐구해보세요! 주요 기능: 인터랙티브 물리 시뮬레이션: 사용자가 직접 물체를 배치하고, 질량을 설정하여 중력의 법칙을 체험할 수 있습니다. 직관적인 사용자 인터페이스: 손가락 하나로 물체를 추가하고 위치를 이동시킬 수 있는 간단하고 이해하기 쉬운 인터페이스를 제공합니다. 다양한 시뮬레이션 옵션: 물체 간의 거리, 질량, 초기 속도 등 다양한 변수를 조절하여 실험의 조건을 변경할 수 있습니다. 시각적 효과: 아름다운 그래픽과 부드러..

iOS/iOS 2024.04.22

[iOS, App] 스테퍼 개수 세기 어플리케이션

스테퍼 개수 세기 스텝퍼 개수 세기 앱은 사용자가 운동 횟수, 운동 시간 및 휴식 시간을 입력하여 커스텀 운동 경험을 제공합니다. 앱을 시작하면, 사용자는 운동 반복 횟수, 운동 시간, 그리고 휴식 시간을 설정할 수 있습니다. "운동 시작" 버튼을 누르면, 사용자는 다음 페이지로 이동하여 실시간으로 시간 카운트와 남은 반복 횟수를 확인할 수 있습니다. 이 페이지에서 앱은 운동 시간과 휴식 시간을 구분하여 알려줍니다. 이를 통해 사용자는 운동을 보다 효과적으로 관리하고, 각 단계별로 휴식 및 운동 시간을 추적할 수 있습니다. 스텝퍼 개수 세기 앱은 건강한 생활습관을 돕기 위한 완벽한 도구입니다. 문의할 사항이 있다면 블로그의 댓글이나 tuche24@naver.com 으로 문의바랍니다.

[iOS, Swift] Object to Dictionary 형변환

iOS 15.5, Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다. extension Encodable { // object to Dictionary var toDictionary: [String: Any]? { guard let object = try? JSONEncoder().encode(self) else { return nil } guard let dictionary = try? JSONSerialization.jsonObject(with: object, options: []) as? [String: Any] else { return nil } return dictionary } } let parameter = model.toDictionary 이 글에서는 Swift에서 E..

iOS/코드조각 2023.03.24

[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
반응형