본문 바로가기

분류 전체보기184

[iOS] Notification Service Extension와 Firebase 정리 UNNotificationServiceExtension 원격 푸시 노티피케이션의 컨텐츠를 수정하는 객체. 사용자에게 전달되기 전에 수행됨 class UNNotificationServiceExtension : NSObject notification service 앱 기능 확장 => 사용자에게 remote notification 이 전달되기 이전에 컨텐츠를 커스터마이징 할 수 있는 기능 UI를 가지지 않음 notification 이 사용자의 기기에 전달되면 런칭됨 notification 의 내용을 수정하거나 이미지, 비디오 등을 다운로드 받을 수 있으며 암호화 혹은 복호화를 수행할 수도 있음 silent notification, 사운드만 재생시키기, 앱 아이콘에 표시되는 뱃지는 변경 불가 UNNotifica.. 2022. 6. 15.
[Swift] MVVMC의 Coordinator 알아보기 기존 MVVM에서 화면 전환 로직 즉, navigation 로직을 맡아하는 Coordinator가 MVVMC에서 핵심이지 않을까 싶습니다 그래서 이번 포스팅에서 Coordinator가 무엇이고 Child Coordinator는 왜 사용하는지 알아보겠습니다! 혹시 더 좋은 방법이 있다면 공유 부탁드려요!! 만약 MVVMC가 처음이라면 아래 글을 먼저 보고 오시면 도움이 될거 같아요! 2022.06.11 - [🍎 iOS/Architecture Pattern] - [Swift] MVVMC 간단하게 알아보기 ⭐️ 화면 전환을 담당하는 Coordinator 우선 Coordinator가 무슨 역활을 하는지 알아봅시다! MVC 는 Massive View Controller라 불릴 만큼 ViewController의 역.. 2022. 6. 14.
[Swift] UITextField borderStyle 텍스트 필드 테두리 설정 UITextField.BorderStyle UITextField의 테두리 유형을 설정할 수 있음 none idTextField.borderStyle = .none default로 .none 타입 테두리 영역이 아무것도 설정 되지 않은채 나타남 line idTextField.borderStyle = .line 테두리 영역이 한줄로 나타남 bazel idTextField.borderStyle = .bezel 입체감이 있는 베젤 스타일로 텍스트 필드 영역 표시 전형적으로 데이터 입력을 받는 영역에서 사용되는 스타일 roundedRect idTextField.borderStyle = .roundedRect 라운드를 가진 모서리 스타일로 텍스트 필드 영역을 표시함 idTextField.layer.borderCol.. 2022. 6. 13.
[Swift] MVVMC 간단하게 알아보기 MVVMC 는 기존 MVVM 아키텍처 패턴에 Coordinator을 추가한 조합 MVVMC, MVVM-C, MVVM Coordinator 패턴이라고도 함 MVVM에서 화면 전환(navigation) 기능을 Coordinator가 맡아 처리함 MVVM 이 처음이라면 👇 2022.06.07 - [🍎 iOS/Architecture Pattern] - [Swift] MVVM 응용편 MVVM+C 를 구현하는 방법이 딱 정해져 있는 것이 아니라 Coordinator 역활 안에서 구현하는 방법이 다양하게 존재하더라구요 생각보다 복잡한 부분들이 많아서 이번 포스팅에서는 간단하게 살펴 보겠습니다! 우선 Coordinator의 역활 이해하기! MVVM+C 살펴보기 ⭐️ Model 데이터 구조 정의 애플리케이션에서 필요한 .. 2022. 6. 11.
[Swift] MVVM 응용편 RxSwift + MVVM을 사용하다가 RxSwift가 없는 MVVM을 사용하니 RxSwift 의 장점이 확실히 느껴지는거 같아요 저번 포스팅에서 MVVM에 대해 간단하게 정리해 두었는데 👇 2022.06.04 - [🍎 iOS/Architecture Pattern] - [Swift/Architecture] MVVM 이해하기 MVVM은 Model - View - ViewModel로 나누는 것이 다가 아닌 View와 ViewModel의 상호 작용에 대해서 더 깊게 다뤄 볼 필요가 있어서 정리해 보았습니다 🦑 MVC의 문제점 기존 MVC의 경우 Massive ViewController의 약자이다~ 라는 말이 있을 정도로 ViewController의 역활이 컸습니다 UI를 로드하고 사용자의 이벤트를 받고, 비즈.. 2022. 6. 7.
[iOS/Swift] UICollectionView scroll animation 보호되어 있는 글 입니다. 2022. 6. 6.
[iOS/Swift] UICollectionViewFlowLayout 알아보기 UICollectionViewFlowLayout 레이아웃 오브젝트 UICollectionViewController의 이니셜라이저에 넘겨주는 파라미터 collectionViewLayout 값. init(collectionViewLayout: UICollectionViewLayout) 각 섹션의 헤더와 푸터를 옵셔널 값으로 하여 그리드를 구성함 @MainActor class UICollectionViewFlowLayout : UICollectionViewLayout collection view layout 타입 flow layout은 collection view의 델리게이트 오브젝트와 함께 동작하며 각 섹션 안에 아이템(셀), 헤더, 푸터의 사이즈를 결정하는 역활을 함 델리게이트 오브젝트는 UICollect.. 2022. 6. 6.
[Swift] MVVM 간단하게 알아보기 정의 오브젝트를 Model, View, ViewModel로 분리하는 디자인 패턴 Model 데이터 구조 정의 애플리케이션에서 필요한 데이터를 가지고 있음 structs 혹은 아주 간단한 class로 구현 View 사용자와 상호 작용하고 이벤트가 발생하거나 데이터를 요청할 경우 ViewModel에게 알려줌 UI를 표시하기 위한 코드를 포함하고 이 외에 ViewModel에 있는 비즈니스 로직을 호출하는 코드가 들어 있음 ViewModel view로 부터 사용자의 상호작용을 받고 이에 맞는 이벤트를 처리하게 됨 UIKit 불필요 데이터를 업데이트 하고 뷰 요소를 업데이트함 model 정보 view에 fetch 하기 위해 그 값을 변경 (뷰에 보여주기 위해 데이터 처리를 한다는 뜻) 장점 기존 MVC에서 많은 .. 2022. 6. 4.
[Swift/CoreAnimation] CABasicAnimation 이란 전체 코드 링크 계층 속성에 대한 basic, single-keyframe 애니메이션을 제공하는 객체 객체 생성 let animation = CABasicAnimation(keyPath: "position.x") initializer을 통해 keyPath를 지정해서 객체 생성 let animation = CABasicAnimation() animation.keyPath = "position.x" keyPath는 따로 지정 가능 keyPath var keyPath: String? { get set } receiver가 애니메이션하는 키 패스를 지정 -> opacity, backgroundColor, position 등 (왜 스트링으로 받도록 했을까 ... ㅠㅠ) Animatable Properties An.. 2022. 6. 2.
[iOS/Swift] UICollectionView paging 덜컥 거리는 이슈 수정하기 이전 포스팅에서 Carousel effect (UICollectionViewController paging)을 구현했었지만 개선사항이 있었어요! 바로 쿰척거리는 이슈! 포스팅 제목을 뭐라 지을 지도 애매한...ㅎㅎㅎ 수정 안하고 그대로 쓰기에는 마음에 걸립니다! 무조건 사용자가 UI/UX에 부드러움을 느끼게 해주고 싶단 말이쥬 🤔 여하튼 수정해 봅시다 완성된 코드는 여기 깃허브에서 다운 받으시면 됩니다-> 깃허브링크 우선 이전 포스팅에서 작성해 두었던 코드를 가지고 와서 로그를 위해 print 문을 추가해 주었습니다 func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOf.. 2022. 6. 1.
[iOS/Swift] Carousel Effect - UIEdgeInset이 있는 UICollectionView 페이징 하기 정말 자주 사용하는 기능 중 하나인 컬렉션 뷰 페이징! UICollectionView 속성에 isPagingEnable이 있지만 이렇게 셀과 셀 사이에 minimumLineSpacing이 들어가거나 sectionInset이 들어가면 페이징이 제대로 되지 않습니다 🥲 scrollViewDidScroll에서 로그를 찍어보면 그 이유를 알 수 있는데요 UIScreen의 넓이가 390이고 한번 페이징이 될때 화면 넓이 만큼 페이징이 되는 것을 알 수 있어요 셀 사이즈는 320으로 화면 넓이보다 작고 minimumLineSpacing을 7로 설정해 줬기 때문에 한번에 화면 넓이 만큼 페이징 하면 틀어지게 됩니다! 좌우 여백 포함, 셀 사이 spacing 까지 포함해서 페이징이 되게 하는 UI 가 많이 사용되는데.. 2022. 5. 31.
[Git] Personal Access tokens 생성하기 terminal에서 깃 저장소를 관리할 때 혹은 커밋할 때 내가 이 저장소 권한이 있다! 증명하는 방법에 두 가지가 있습니다! 하나는 아이디와 비밀번호를 제공하는 것 두번째는 SSH를 사용하는 건데용 첫 번째 방법은 매번 아이디와 비밀번호를 입력해 주어야 합니다 아이디, 비밀번호 입력해서 사용하려고 했는데 아쉽게도 2020년 12월 15일 부터 불가능하다고 하네용 그 동안 UI로 제공해 주는 툴을 쓰다가 깃 명령어로 해보려 하니 이런 변화가 있다는 걸 이제야 알게 됬네용 우선 이 로그에서 말하는 personal access token 을 만들어 봅시당 깃 허브 들어가시고 로그인 하시면 오른편 상단에 자신의 계정이 보일 텐데 클릭해 주시면 됩니당 그후 드롭 메뉴에서 Settings를 눌러주세용 왼편 메뉴 .. 2022. 5. 13.