목록iOS (133)
k-coding

@discardableResult 결과 값을 버릴 수 있게 해주는 키워드 함수의 return 값을 버릴 수 있다. 예시 1에서 보시다싶이 return 타입을 정의한 메서드에 결과 값을 넣어주지 않으면 경고창이 뜬다. 이러한 경우 메서드 위에 @discardableResult를 사용하면 경고 메세지가 사라지게 된다 @discardableResult func returnFunction(count: Int) -> String { if count >= 3 { print("3 이상") } else { print("3 이하") } return String(descibing: count) } 참고 https://ios-development.tistory.com/343

Swift ) Lottie Lottie라는 라이브러리를 통해 애니메이션을 구사하는 방법을 공부해보겠습니다. Lottie 란? 위에서 한줄로 말했듯이 Lottie는 애니메이션을 구사하게 해주는 라이브러리지만 조금 더 풀어서 이야기하자면 최소한의 코드로 벡터기반 Animation과 Art를 실시간으로 렌더링하는 iOS와 안드로이드, 윈도우등 모두 지원하는 라이브러리입니다. 애니메이션을 내보낼때 JSON형식으로 내보내기 때문에 크기가 작지만 복잡성이 크기도 합니다. 더 자세한 설명은 해당 깃허브 주소를 통하여 읽어볼 수 있습니다. 이 Lottie는 애플에서 공식으로 지원하는 라이브러리이기 때문에 SPM(Swift Package Manager)를 지원해줍니다. 사용법 위에서 SPM이 지원되는 라이브러리이기 때문..

HIG ( Human Interface Guidlines ) 애플은 앱을 개발할 때 필요한 디자인과 동작을 포함한 여러 규칙을 통하여 사용자 인터페이스를 구성하는 방법에 대한 지침을 제시합니다. 이 기준에 충족하지않는다면 앱을 앱스토어에 등록할 시 리젝당할 가능성이 매우 높기 때문에 개발자라면 최소 한번은 읽어보고 숙지해야 될 내용입니다. 애플은 HIG를 이렇게 소개합니다. Get in-depth information and UI resources for designing great apps that integrate seamlessly with Apple platforms. 애플의 플랫폼과 원활하게 통합되는 앱을 디자인하기 위한 깊이 있는 정보와 UI 리소스를 얻어갈 수 있다. 이 H.I.G를 기준으로..

SwiftUI ) 커스텀 Container View 만들기 SwiftUI에서는 VStack, HStack, List등등 내장 컨테이너 뷰가 많이 있지만, 때로 사용자가 커스텀해서 컨테이너를 정의할 수 있습니다. 이러한 상황은 주로 사용자가 스크롤할 수 있는 구성요소를 갖춘 뷰를 구성할 때 사용됩니다. struct ContentView: View { let content: Content var body: some View { // } } ContentView: View 해당 라인을 보면 Generic을 사용하여 ContentView에게 원하는 모든 종류의 content를 제공할 수 있지만 모든 content가 View 프로토콜에 적합해야한다는 문장입니다. 물론 제네릭이 닫힌 뒤에도 ContentView 자..
Swift ) == 와 === 차이점 '===' 이 요상한녀석에 대해서 알아보겠습니다. 우선 우리가 흔히아는 == 는 값, Value가 같은지를 비교해주는 연산자입니다. 예를 들면 a == b 이면 a와 b의 값이 같은지 비교하는것이지요 let a = "가" let b = "나" print(a == b) // false 하지만 = 이 하나 추가돤 === 는 참조하고 있는 인스턴스를 비교합니다. 무슨 말이냐면 a === b 이렇게 있다면 a가 참조하는 인스턴스와 b가 참조하는 인스턴스가 같냐고 물어보는것입니다. let a = Word(word: "가") let b = Word(word: "가") let d = b 이런 코드가 있다면 print(a === b) // false print(b === d) //..

Swift ) 커스텀 컬러 사용하기 Swift에서 View를 구상하다보면 다양한 색을 사용하게 됩니다. 이때 내가 원하는 색을 RGB로 설정하고, 해당 색을 코드로 사용하는 방법에 대하여 포스팅해보겠습니다. 보이는것처럼 Assets창에서 아래에 보면 + 누르면 다음과같이 뜨는데, Color Set을 눌러봅시다. 다음과 같이 추가되면 적절한 이름을 지어줍시다. 일반모드와 다크모드의 색깔이 따로 나오는데 각각 모드에 맞게 설정하시면됩니다. 누르면 Color창에 다음과 같이 RGB값이 나옵니다. 여기서 RGB값을 조정해봅시다. 이제 이걸 상수로 저장해줄 수 있는데요 스위프트 파일을 하나 생성하고 다음과 같이 입력해줍니다. import Foundation extension Color { static let ex..
Swift ) CaseIterable 오늘은 Swift에서 열거형 값을 배열 요소처럼 순회하도록 할 수 있는 프로토콜 CaseIterable에 관하여 알아보겠습니다. CaseIerable 프로토콜은 모든 case값들에 대하여 컬랙션을 제공하는 타입입니다. 열거형(enum)타입에 이 프로토콜을 채택하여 enum안에 case 값들에 대하여 forEach 등을 사용하여 값을 순회할 수 있습니다. 해당 프로토콜을 채택하고 싶다면 다음과 같이 선언해주면 됩니다. enum Animals: CaseIterable { case dog, cat, bird } allCases 위와 같이 프로토콜을 선언했다면 allCases 타입 프로퍼티를 통해 case에 접근이 가능합니다. enum Animals: CaseIterable..

SwiftUI ) Binding SwiftUI가 스토리보드와 다른 이점은 역시 Preview에 있다. Preview를 사용할 때 확인하기 위해서 초기값을 주어야 하는데 초기값을 설정하다 보면 다음과 같은 타입이 나올 때가 있습니다. Int면 그냥 Int고 Optional 까직은 배웠는데 Binding는 무엇일까요? 이 형태는 struct에 @Binding로 외부의 값을 대여해왔기 때문입니다. 그렇다면 위 같은 타입에 그냥 Int를 넣으면 어떻게 될까요? 타입이 맞지 않는다고 뜨는군요? 이럴때는 정적메서드인 .constant를 활용하여 preview의 고정값을 설정해 줄 수 있습니다. 에러없이 값이 잘 전달된 모습입니다.

SwiftUI) ZStack / zIndex https://choiki923.tistory.com/121?category=1037696 SwiftUI (HStack / VStack) SwiftUI (HStack / VStack) SwiftUI 에서 사용되는 HStack과 VStack에 대해서 알아보겠습니다. 우선 기존 Swift에서 StoryBoard를 구상할 때 StackView를 굉장히 유용하게 사용을 많이 하셨을것입니다. SwiftUI.. choiki923.tistory.com ZStack을 알아보기전에 HStack과 VStack에 대해서 먼저 알고 공부해야합니다. 기존에 알던 HStack은 수평, VStack은 수직으로 정렬하였습니다. ZStack은 그림을 보시면 나열이 된것처럼 안보이겠지만 실제..
SwiftUI ) Identifiable 프로토콜 SwiftUI에서는 List나 ForEach처럼 데이터를 나열하는 View 혹은 alert, actionSheet처럼 화면을 띄울 항목을 구분해야할 때 Identifiable프로토콜을 요구합니다. 앱 내에서 다음과 같은 구조체가 존재한다고 봅시다. Struct Profile { let name: String let age: Int } 위 구조체를 이용하여 객체를 생성할 때 let kim1 = Profile(name: "KimMinJae", age: 26) let kim2 = Profile(name: "KimMinJae", age: 26) let kim3 = Profile(name: "KimMinJae", age: 27) 위와 같이 객체가 생성되었다면 ki..