전체 글

iOS

[Swift] 이미 사용된 변수 사용하기, 백틱으로 예약어를 식별자로 사용하기

Swift에서 예약어를 identifier로 사용해야 할 때가 있는데, 이를 위해 백틱(``)을 사용합니다. 예를 들어, default, class, struct와 같은 예약어들을 변수명, 함수명 또는 열거형 케이스명으로 사용할 수 있습니다. 이 기능은 주로 기존 코드와의 호환성이나 특정 도메인 용어를 그대로 사용하고자 할 때 유용합니다. option + ₩  // 예약어를 사용한 열거형 정의public enum TextFieldState { case `default` case focused case disabled}// 열거형 사용 예시let currentState: TextFieldState = .defaultswitch currentState {case .default: pri..

iOS

[Swift] @propertyWrapper로 UserDefaults 구현해보기

이 글은 작성자의 학습을 위하여 작성되었습니다@propertyWrapper, 프로퍼티 래퍼?속성 래퍼는 속성을 정의할 때 코드의 반복을 줄이고, 속성의 동작을 재사용할 수 있게 해주는 기능입니다.  @propertyWrapper는 WWDC 2019에서 Swift 5.1과 함께 도입되었습니다. 프로퍼티의 관리를 용이하게 하기 위해 사용됩니다. 이를 통해 코드의 중복을 줄이고, 가독성을 높이며, 특정 동작을 프로퍼티에 자동으로 적용할 수 있습니다. 선언 Attributes의 대표적인 것 중 하나 입니다. WWDC 2019 Modern Swift API Design 중 PropertyWrapper 훑어보기 Property Wrappersget과 set을 사용하여 매번 코드를 작성한다면 너무 많은 공간을 차지합..

iOS/UIKit

[UIKit] Line Height(행간), Line Spacing(자간) 조절하기

기본인 System font에 대하여 옵션으로 font의 Size와 Weight에 대해 다룰 수 있습니다. 또는 Custom Font를 이용한다면 Custom Font의 주어진 이름과 Size 옵션을 조절할 수 있습니다. 디자이너와 협업을 하는 과정에서 처음으로 행간과 자간에 대해 다루는 과정을 마주했습니다.font size와 개별로 행간을 조절해야 할 때는 어떻게 해야할까요? Line Height행간과 Line Spacing(자간)에 대해 어떻게 조절할 수 있을까 고민해보았습니다.   우선 Font Size와 LineHeight에 대해 인지하기 위해 직접 값을 출력해보면서 확인해봅니다. 아하! 폰트 사이즈와 별개로 Line Height에 대한 값이 존재합니다.  이외에도 font에 대한 더 다양한 속성..

카테고리 없음

UT(Usability Test), 사용성 테스트의 개념과 방법

사용성 테스트 (Usability Test)제품을 개선할 목표를 가지고, 사용자가 제품을 사용하는 모습을 관찰하는 것이라고 합니다.UT는 유저의 행동을 관찰하는 조사 방식입니다.  이 때 유의할 점은 UT와 인터뷰는 다르다는 점입니다.  UT vs 인터뷰인터뷰는 개인의 경험을 알고 싶을 때 수행합니다. 개개인의 경험을 파악해야하기 때문에, 그에 해당하는 특정 경험이 있는 사람이 대상이 될 수 있습니다. 또한 경험을 수집하는 것이기 때문에 세그 당 5명 이상의 다양한 사람을 많이 만날수록 좋습니다. 또한 경험에 대한 심층적인 이유를 파악할 필요가 있으므로 사용자의 답변에 대해서 깊게 캐묻는 것이 중요합니다. UT에서는 알고 싶은 대상은 UI입니다. 사용자가 사용을 잘하는지 알고 싶을때 사용합니다. 경험과 ..

iOS

Xcode File Template 커스텀하기

Xcode 파일은 Xcode 프로젝트에서 사용되는 다양한 파일 형식을 말합니다. 여기에는 소스 코드 파일, 인터페이스 파일, 리소스 파일 등이 포함됩니다.  Xcode 파일 템플릿이란?Xcode 파일 템플릿은 새로운 파일을 생성할 때 미리 정의된 파일 구조와 내용을 자동으로 포함시키는 기능입니다. 이를 통해 개발자는 반복적인 작업을 줄이고, 프로젝트 전반에 걸쳐 일관된 코드 스타일을 유지할 수 있습니다.왜 Xcode 파일 템플릿을 사용하나요?효율성: 반복적인 파일 생성 작업을 자동화 → 시간을 절약일관성: 팀 프로젝트에서 코드 스타일과 파일 구조를 통일  기본 Xcode 템플릿 파일은 /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates ..

카테고리 없음

iTerm2 기본 셋팅하기

*  이 글은 작성자의 아카이빙을 위해 작성되었습니다! iTerm2는 macOS용 터미널 에뮬레이터로, GUI 기반의 애플리케이션입니다.이를 통해 터미널 세션을 보다 쉽게 관리하고, 다양한 기능(스플릿 창, 검색, 알림 등)을 활용할 수 있습니다.iTerm2는 기본 터미널보다 더 많은 사용자 정의 옵션과 편의 기능을 제공하여 사용자가 터미널 작업을 더 효율적으로 수행할 수 있도록 합니다. 01 iTerm 설치하기🔗 https://iterm2.com/ 링크를 통해  iTerm2를 다운 받아 응용프로그램에 설치합니다.  02 Oh-My-Zsh 설치하기그리고 iterm에서 Oh-my-zsh를 설치합니다.아래 명령어를 붙여넣습니다.sh -c "$(curl -fsSL https://raw.githubuserco..

iOS/UIKit

URLRequestConvertible 잘 사용해보자

앱의 크기가 커짐에 따라 네트워크 스택을 구축하면서 일반적인 패턴을 채택하는 것이 중요합니다.이때 중요한 부분은 요청을 라우팅하는 방법입니다.Alamofire의 URLConvertible 및 URLRequestConvertible 프로토콜과 함께 Router 디자인 패턴이 이를 도와줍니다.“라우터”는 요청의 “경로” 또는 요청의 구성 요소를 정의하는 타입입니다.구성 요소에는 URLRequest의 요청을 만들기 위한 파라미터, 메소드 등이 포함될 수 있습니다.

iOS/SwiftUI

[SwiftUI] 왜 body에서 변수를 수정하지 못할까?

* 이 글은 작성자의 학습을 위하여 작성된 글입니다. 개발자는 animal이라는 변수를 통해 중앙의 Text를 바꾸고 싶습니다. 우선, 변경 버튼을 누르면 토끼라는 텍스트를 사자로 바꾸려합니다. Button의 클로저 영역에 버튼을 눌렀을 때, animal 변수의 값을 "사자"로 바꾸자고 생각합니다. 개발자는 너무 당연하게 animal = "사자" 라고 코드를 작성합니다. 어라! 에러메세지가 발생합니다. 왜 안될까요? 가장 먼저 에러메세지를 읽어봅니다. self가 불변이다. 여기서 self는 ContentView 입니다. ContentView가 불변이라는 뜻이겠군요. 왜 ContentView가 불변이라는 걸까요? ContentView에 대해 들여다 볼 시간입니다. ContentView는 View 프토토콜을..

iOS/SwiftUI

[SwiftUI] some View에 대해서, some과 Opaque Type

해당 포스팅은 작성자의 학습을 위해 작성된 글 입니다. Opaque Type이란? Opaque Type(불투명한 타입)은 함수로 역제네릭 함수라고 할 수 있습니다. 함수나 메서드의 반환 타입이 특정 프로토콜을 준수하지만, 구체적인 타입은 숨겨짐을 의미합니다. Swift에서는 some 키워드에 Opaque Type을 담아냅니다. 더 쉽게 이해해보겠습니다. SwiftUI의 View 프로토콜은 모든 뷰가 가지고 있어야 할 가장 기본적인 기능을 정의하고 있습니다. View 프로토콜에서 기본 규칙은 var body: some View { get } 프로퍼티를 생성하는 것입니다. 이 body 프로퍼티는 뷰의 내용을 구성하고, 화면에 어떻게 표시될지를 결정하는 역할을 합니다. 예를 들어, ContentView 구조..

iOS/SwiftUI

[SwiftUI] SwiftUI를 소개합니다.

* 이 글은 작성자의 학습을 위하여 작성된 글입니다. 2019년, WWDC 2019에서 Apple은 SwiftUI를 소개했습니다. iOS 13과 macOS Catalina 10.15에서 처음으로 지원되기 시작했습니다. SwiftUI의 등장은 Apple 플랫폼에서 UI 개발 방식에 큰 전환점을 가져옵니다. 선언적(Declarative) 프로그래밍 SwiftUI는 선언형 프로그래밍으로, 개발자가 UI의 최종 상태를 선언하면 시스템이 상태변화를 자동으로 처리하여 UI에 대한 코드가 더 간단하고 직관적입니다. 이전의 UIKit은 명령형 프로그래밍으로, UI 요소를 각각 단계별로 관리하고 상태 변화도 수동으로 처리해야했습니다! 명령형 VS 선언형, 무엇이 다를까? 예시로 아보카도 토스트를 만든다고 가정해봅시다. ..

쨈미니
서우의 성장일기