Danny의 iOS 컨닝페이퍼
반응형
article thumbnail
[iOS/Swift] 3. PinLayout 메서드를 알아보자! (+ ScrollView)
Xcode/Library 2024. 1. 20. 02:15

목차 FlexLayout, PinLayout을 사용해 보자! FlexLayout 모든 메서드들을 알아보자! PinLayout 메서드를 알아보자! (+ ScrollView)! 개인적으론 snapKit이 직관적이고 쉬운 것 같은데, 생각보다 FlexLayout + PinLayout도 많이 사용하는 것 같더라고요. 이제 거의 다 왔습니다. 빠르게 마무리 지어보고 사용하다가 팁이나 문제가 생기면 바로 새로운 글을 올려보겠습니다. PinLayout의 사용 시점은 레이아웃이 다 잡히는 시점(슈퍼뷰의 위치 및 크기를 알 수 있는 시점)인 viewDidLayoutSubViews(), layoutSubViews()에서 사용해줘야 합니다. 그 이유는 장치 회전 및 컨테이너 크기를 동적으로 조절하기 위해서 위와 같은 시점에..

article thumbnail
[iOS/Swift] 2. FlexLayout 모든 메서드들을 알아보자!
Xcode/Library 2024. 1. 16. 04:07

목차 FlexLayout, PinLayout을 사용해 보자! FlexLayout 모든 메서드들을 알아보자! PinLayout 메서드를 알아보자! (+ ScrollView)! 메서드들도 많고 CSS를 사용해 보지 않아서 그런가 생소한 단어들도 보이네요 ㅠ.ㅠ 뭔가 느낌은 알 것 같은데, 그래도 일단은 한 번씩은 써봐야 이해되겠죠?! 자, 이전 글 의 예제로 시작해 봅시다. import UIKit import FlexLayout import PinLayout class ViewController: UIViewController { private let containerView = UIView() private let label1: UILabel = { let label = UILabel() label.bac..

article thumbnail
[iOS/Swift] 1. FlexLayout, PinLayout을 사용해 보자!
Xcode/Library 2024. 1. 15. 19:09

목차 FlexLayout, PinLayout을 사용해 보자! FlexLayout 모든 메서드들을 알아보자 PinLayout 메서드를 알아보자! (+ ScrollView)! FlexLayout이란? FlexLayout은 CSS의 Flexbox를 영감을 받아서 만들어진 레이아웃 라이브러리라고 합니다. Auto Layout, UIStackView보다 8~12배 정도 렌더링 성능이 빠릅니다. SwiftUI와 마찬가지로 선언형이고 구문 연결(Chain-able)이 가능합니다. 일단, GitHub 문서 를 간단히 살펴보니, Flexbox와 동일한 역할을 하는 Container를 만들어 초기화시켜 주네요. 이 Container는 UIStackView와 비슷하게 동작하는 것 같은데, 같이 한 번 살펴봅시다. PinLa..

article thumbnail
[iOS/Swift] TextField를 바인딩 시켜보자(MVVM, RxCocoa 원리)
UIKit/Swift 2023. 11. 28. 01:40

시작 이전 글에서 [iOS/Swift] MVVM 패턴의 Data Binding에 대해서 알아보자! (Closure, Observable, Combine) 간단하게 바인딩을 하는 법을 알아봤습니다. 이전 글의 방법은 'ViewModel -> View 바인딩'으로 어디선가 데이터를 받아오면, ViewModel의 데이터들이 View와 결합되어, 즉시 View에 업데이트 되게 만들었고 이번에 공부해 볼 것은 'View -> ViewModel 바인딩' 에 대해서 알아보려고 합니다. 말 그대로 이번엔 View(사용자)에서 입력 받은 데이터를 즉시 ViewModel에 결합시키는 방법을 배워봅시다. 일단, 들어가기 전에 간단히 로그인 화면을 생각해 봅시다. 로그인 화면은 먼저 사용자가 ID와 Password를 입력을 ..

article thumbnail
[Swift/ TIP] subscript 활용 (깔끔하게 모델에 접근)
TIP 2023. 11. 21. 18:00

subscript란? 공식문서에서는 클래스, 구조체, 열거형 등 시퀀스의 멤버 요소에 접근할 수 있는 기능(문법)이라고 합니다. 공식문서 에 문법에 대한 자세한 내용은 나와있으니, 문법은 여기서 참고합시다! 다시 설명하면 클래스, 구조체, 열거형 등에서도 배열이나 콜렉션에서 사용되는 "[]" subscript 문법(첨자)을 통해 접근할 수 있게 도와준다네요. 그리고 subscript을 사용자의 요구사항에 맞게 정의할 수 있다고 하는데, 어떤 방식으로 사용할 수 있는지 간단히 알아봅시다. 사용자가 만든 모델에 쉽게 접근 가능 먼저, 이름과 나이로 간단한 모델(Model)을 만들어 줬고 클래스인 ModelManger를 통해 모델 데이터를 사용하기 편리하게 만들어 줬습니다. 추가로 subscript 문법을 사..

article thumbnail
[Swift/ TIP] 앱 이름 변경하기 (+Localization)
TIP 2023. 7. 21. 20:03

앱 이름 변경하기 info.plist를 수정을 통해, 간단히 앱 이름을 변경할 수 있습니다. 앱 이름 현지화 나라마다, 앱의 이름을 달리 해줘야 할 때 사용 ex. 영어권 문화에서도 앱을 출시했는데, 만약 한국어로 돼있다면 곤란하겠죠. 구현하기 1. Strings File을 생성하고 이름을 'InfoPlist.strings'로 저장해 주세요. 2. 만들어준, InfoPlist 파일의 인스펙터 창에서 'Localize' 버튼을 눌러 줍니다. 3. 프로젝트 설정으로 들어가 Localizations에서 한국어를 추가해 줍니다. 그러면 이와 같이, 하위 파일이 지역별로 나뉘어 생성됩니다. 4. 다시 'InfoPlist.string' 파일로 돌아와서 'Korea'가 체크 돼있다면, 사용 준비 완료! 5. 각 지역..

article thumbnail
[Swift/ TIP] 앱 추적 투명성 권한 요청 (App Tracking Transparency)
TIP 2023. 7. 21. 17:56

앱 추적 투명성(App Tracking Transparency) iOS +14.5부터 도입된 개인 정보 보호 관련 기능입니다. 앱에서 자신의 정보를 수집하거나 추적할 여부를 사용자에 물어보는 기능입니다. iOS +14.5 부터, ATT(App Tracking Transparency)가 도입되서 사용자가 추적을 허락할 때만, 광고 추적 식별자인 IDFA(Identifier for Advertisers)를 이용할 수 있게 됬습니다. 여기서, 광고 추적 식별자 IDFA(Identifier for Advertisers)는 사용자에게 맞춤형 광고를 보여주는 기능입니다. 자세한 내용은 공식 문서 를 참고해주세요. 앱 추적 권한 요청하기 먼저, info.plist에서 권한 요청 설정을 해줘야 합니다. 구현하기 참고로..

article thumbnail
[Swift/ TIP] Alert를 사용해, 앱 설정창으로 이동하기
TIP 2023. 7. 21. 16:31

시작 간단히, App Settings에 접근하는 코드를 알아 봅시다. private func presentAppSettingsAlert() { let alertController = UIAlertController( title: "위치 접근 요청", message: "위치 정보를 얻을 수 없습니다. 위치 권한을 '항상 허용'으로 변경해 주세요.", preferredStyle: .alert ) let action = UIAlertAction( title: "설정창 이동", style: .default, handler: goToAppSettings ) alertController.addAction(action) self.present(alertController, animated: true) } privat..

article thumbnail
[Swift/ TIL #37] UIPageViewController를 사용하여 튜토리얼 화면을 만들기
프로젝트 2023. 7. 18. 22:32

[TIL #37] 2023 / 07 / 18 앱을 처음 시작할 때, 나타나는 튜토리얼 화면을 만들어 보려 합니다. 보통 튜토리얼 화면을 만드는 방법으로는 UIScrolView 또는 UIPageViewController를 사용하여 만들 수 있습니다. 여기서 만약, 그냥 UIScrolView를 통해 만들게 되면, 기능을 구현하는 방식은 비슷하지만 레이아웃을 잡을 때, 생각보다 골치 아프더라고요. (스크롤 가능한 콘텐츠를 보여주기 때문에, 콘텐츠의 크기, 위치, 스크롤 영역 등을 정확한 설계가 필요) 그리고 UIScrolView는 보이는 영역(View Port)을 제외하고도 모든 페이지들이 메모리에 올라가기 때문에, 많은 페이지를 보여줄 때는 비효율 적일 수 있습니다. 예를 들어, [page1, page2, ..

article thumbnail
[Swift/ Tip] 스크린의 크기를 구해보자 (UIScreen.main is deprecated)
TIP 2023. 7. 18. 02:33

시작 iOS + 16부터 UIScreen.main는 더 이상 사용되지 않는다는 메시지가 뜨네요. 사용은 가능하지만 그래도 메시지가 거슬리니까, UIScreen.main을 사용하는 대신, 다른 방법으로 Screen의 크기를 구하는 방법을 알아봅시다. 방법 1 공식문서에서 하라는 대로 따라해보기 (정석?!) guard let screen = view.window?.windowScene?.screen else { return } let screenSize = screen.bounds 방법 2 UIApplication를 통해 window 접근해서 사용하기! guard let window = UIApplication.shared.connectedScenes.first as? UIWindowScene else { ..

반응형