분류 전체보기 333

Deep Link -target iOS 13 이하 대응

Deep Link -target iOS 11.0 (iOS 13 이하 대응 필요한 경우 참고) (DeepLink를 AppDelegate에서 구현하는 방법) 딥링크 정확히는 custom scheme 구현이 필요하게 되었다. 고객이 본사 서버에서 작업된 특정 url 을 문자로 받아 해당 url을 Safari 또는 네이버 등등에 복사 + 붙여넣기를 하면, 해당 앱의 특정화면이 실행되게끔 해야 하는 것이 미션. 1) 사전작업: 프로젝트 - Info 부분에서 아래 URL types scheme 추가 왜 필요한가? 고객이 DeepLinkingDemo:// ~~ 로 시작하는 url을 받아서 접속시 우리 앱이 딱 실행되어야 하기 때문 2) 본격 코딩 작업 회사 앱 버전 target이 iOS 11 이므로 이를 고려해야 하..

iOS SwiftUI) List (UIKit의 tableView에 해당)

iOS SwiftUI) List (UIKit의 tableView에 해당) SwiftUI에는 CollectionView는 없고, List만 있는데 이건 UIKit의 tableView에 해당. struct MyList: View { var body: some View { List { ForEach(1...10, id: \.self) { Text("마이 리스트 \($0)") } } } } struct MyList: View { var body: some View { List { ForEach(1...10, id: \.self) { itemIndex in Text("마이 리스트 \(itemIndex)") } } } } 위에 2개 코드블럭은 같은 의미. (맨 위에있는 똑같은 테이블 만들게 됨) 섹션을 넣고 싶다면..

iOS/SwiftUI 2023.02.22

SwiftUI 기본 정리

SwiftUI 기본 정리 1. 텍스트 또는 이미지 등 무언가 속성을 쓰고 VStack이나 HStack으로 감싸는 식 1-1. 당연히 VStack 안에 HStack , 또는 HStack 안에 VStack이 들어갈 수 있다. 물론 위의 MyVStackView를 별도의 파일로 뺄 수도 있다. 2. 뷰에다가 클릭 처리를 하고 싶다? -> .onTapGesture { } 사용 import SwiftUI struct ContentView: View { var body: some View { HStack { MyVStackView() MyVStackView() MyVStackView() } .padding(10) .background(Color.yellow) //탭 제스쳐 추가 .onTapGesture { print..

iOS/SwiftUI 2023.02.20

RxSwift 간단 핵심 정리

Reactive Programming entity 방출 요소에 의존, 변경 사항을 구독, 해당 변경 사항에 반응. 왜 RxSwift 이용하는가? 상태를 다시 확인하고 수동으로 코드에 조건을 입력하지 않아도 됨 if -else 나 switch 구문 등을 많이 줄일 수 있다. 비동기 실행 코드를 observable-subscriber method에 의해 깔끔하게 짤 수 있음 핵심 요소 1. Observable : 모든 데이터 유형이 될 수 있는 Entity 모든 다른 유형의 이벤트가 발생 시 Observer에게 요소를 방출 2. Observer: 관찰 가능 항목 구독, 변경사항 수신, 모든 변경사항에 대해 프로그래밍된 조치를 취한다. 3. Dispose Bag: 특정 파일의 메모리 할당이 해제될 때마다 이걸..

iOS/RxSwift 2023.02.18

아키텍쳐 MVC, MVVM

아키텍쳐 MVC, MVVM MVC Model View Controller의 약자 모델 - 데이터를 보유. 코딩 가능한 파일, 네트워크 파일, 상수파일, 핵심 데이터모델, 기타 데이터 소스 등 포함. 데이터를 모델링하는 가장 좋은 방법 - struct 사용 (class를 사용하는 경우 상속 같은 무거운 개념 필요하니깐. 그리고 model 의 경우 값만 저장하면 되니깐 struct를 사용) struct = 값 유형 . 클래스와 달리 구조체를 복사할 때, 두 인스턴스에 대해 고유한 복사본을 유지. 뷰 사용자로부터 입력을 받는 상호작용 레이어 시각적 작업 수행 비즈니스 논리 필요 X 기본 레이블, 버튼, 이미지, 애니메이션, 그래픽 등과 같은 요소 포함 컨트롤러 모델에서 모든 데이터를 가져와 비즈니스 로직 수행..

iOS Swift) 2개 이상의 변수를 한꺼번에 Swap

iOS Swift) 2개 이상의 변수를 한꺼번에 서로 바꾸기 (Swap) Swap several variables between two variables 사용 예시 >> 가운데 언어 switch 버튼 클릭 시 한국어 영어 바꾸기 (버튼 UI 뿐만 아니라 내부 로직도 바꿔줘야 되었음) 적용 코드 예시>> @IBAction func changeLangBtn(_ sender: UIButton) { (firstLang, secondLang) = (secondLang, firstLang) (firstLangCode, secondLangCode) = (secondLangCode, firstLangCode) firstLangBtn.setTitle("\(firstLang)", for: .normal) secondLan..