전체 글
[Swift] KeyChain 사용법
로그인 화면을 구현하다가 중요한 정보들을 UserDefaults에 넣으면 보안 이슈가 생길 수 있다고 한다. 자신의 핸드폰에 보안된 데이터로 저장하는 방법으로 키체인에 대해서 알아보았다. https://dvlpr-chan.tistory.com/27 [iOS] 키체인 (Keychain Service) 안녕하세요~ 차니에요! 오늘은 키체인에 대해 알아보겠습니다~~! 1. 키체인이란? Apple에서 공식으로 제공하는 보안 프레임워크이며, 사용자의 민감한(개인 정보 등) 데이터들을 저장하는 저장소 dvlpr-chan.tistory.com https://beenii.tistory.com/160 키체인 (Key Chain) 아이폰 유저라면 한 번쯤은 키체인 로그인을 사용해봤을 것 같습니다. 저는 이번 동아리 프로젝..
[Swift] UITableView Cell에서 TapGesture가 안될 때
간혹 Cell 내에 뷰를 addSubview 할 때 self.addSubview(tempView) 처럼 할 때가 있었다... 이렇게 되면 tempView.addGestureRecognizer(UITapGestureRecognizer(....)) 가 먹히질 않는다. 꼭 아래처럼 바꿔서 사용해주자.... 이거로 몇분을 버렸나. // 테이블 뷰 셀 내에서! // 사용을 지양할 것 tempView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: ...)) self.addSubview(tempView) // 탭 제스처를 먹이려면 다음과 같이.. contentView.addSubview 를 해주자.. tempView.addGestureRecogn..
[Swift] UITableView에서 scroll 에 따른 Header 부분 컨트롤 하기
간혹 UI를 만들다 보면 멋있고 깔끔하게 만드려고 생각하다 보니 최근 트렌드는 어떤가 싶어 둘러보았다. 사용성이 좋게끔 화면을 더 넓게 활용하거나 스크롤에 따라 하이라이트를 사용하기도 하는 것 같았다. 그런 설명이 있는 블로그들을 찾아 모아놨다. https://macgongmon.club/29 iOS 힙한 UI 따라 만들기 Ep.01 "에이블리, 배민" 헤더가 고정되는 테이블 뷰 만들기👋 일상 생활을 하면서 정말 많이 쓰이는 힙한 앱들이 많은데 그 앱에서 보여주는 UI에 대해서 당연하게 사용만 해보고 구현 방법에 대해서는 깊게 생각해본적이 별로 없는 것 같습니다..😭 힙한 macgongmon.club https://iamcho2.github.io/2020/11/02/uitableview-sticky-he..
[iOS-rxSwift] Network 통신 시 rxSwift + alamofire 조합
REST API과 같은 통신을 할때 NetworkManager를 어떻게 설계하면 편할까 하고 공부를 해보았다. 다양한 모델에 맞게 대응할 수 있도록 짠 코드가 있기에 좋은 글이라고 생각한다. 더 좋은 방법이 많겠지만 미숙한 나에겐 새로운 소재거리로 다가왔다. 아래 블로거의 글을 확인하면 도움이 많이 된다. https://ontheswift.tistory.com/17 RxSwift, Network Error 처리하기 RxSwift에서 networking을 주로 Single객체로 처리한다. 이 때, error가 발생할 경우 single(.error(error))로 이벤트를 처리하면 해당 Stream이 종료된다. 이럴 경우 enum을 활용하여 error를 처리해보자! RxSwift, Netw ontheswif..
[iOS-rxSwift] RxFlow 란?
ReactorKit을 공부하다가 화면전환 관리를 어떻게 하는지 도무지 몰라 카카오 오픈채팅방에 도움을 요청했다. 어떤 분이 친절하게 답해주셨는데 RxFlow를 사용하여 화면 전환을 관리하고 있다고 했다. 이전에 공부한 Coordinator 패턴을 적용한 것이라고 한다. 그전까진 enum 으로 화면들을 쪼개서 변화에 맞춰 화면을 나타냈는데 ViewController 내 View단은 관리하기 힘들어 RxFlow를 도입했다고 한다. 도더체 RxFlow는 무엇인가..? https://github.com/RxSwiftCommunity/RxFlow GitHub - RxSwiftCommunity/RxFlow: RxFlow is a navigation framework for iOS applications based ..
[Swift] if case let 은 언제 쓰는 것인가?
switch문을 쓰다가도 case let .example(param1, param2) 이라는 것이 있다. case .example(let param1, let param2) 와도 같은 문자인데 자세한 사항은 아래 링크로 공부하자. https://woozzang.tistory.com/177 [Swift] if case let 를 사용하여 불필요한 코드 줄이기 안녕하세요🐶 이번 시간에는 if case let 패턴을 사용해 switch-case 구문의 boiler plate 를 줄여보도록 하겠습니다. 언제 쓰는가? 열거형을 처리할 때 보통 저는 switch-case 를 사용했었습니다. 단일 case woozzang.tistory.com
[iOS-rxSwift] reactorKit + Coordinator 패턴
reactorKit을 공부 중 단순한 한 페이지에서만 이벤트 처리가 되어 있는 부분만 공부하였다. 근데 reactorKit 을 사용하면서 다른 화면 전환을 할때는 어떻게하는거지? 라는 의구심과 함께 찾아 공부했다. 나랑 똑같은 생각을 했던 분이 있기에 블로그를 공유한다. https://jinsangjin.tistory.com/161 Reactorkit에 coordinator 패턴 적용해보기 Viper나 RIBS 같은 패턴은 화면 전환 로직을 담당하는 라우터를 모듈화 해서 관리하는 것으로 알고 있는데, ReactorKit은 화면 전환 로직을 어떻게 관리하는지에 대한 궁금증이 생겼습니다. 공식 문서 jinsangjin.tistory.com
[Swift] WebKit 의 웹 관련 캐시 삭제 하는 방법
분명 서버에서 css나 문구를 바꾼 html을 반영 했는데 웹뷰에서는 이전 html을 불러오는 경우가 발생했다. 캐싱이 되어있어 해당 url은 캐싱 값을 가져오고 있었던 것이다.. WebKit 내 모든 캐시 데이터를 날릴 수 있는 방법이 있다. 다음 코드를 ViewWillAppear 이나 로직에 따라 사용하면 좋을 것 같다. func deleteWebCash() { let websiteDataTypes = NSSet(array: [WKWebsiteDataTypeDiskCache, // 디스크 캐시 WKWebsiteDataTypeMemoryCache, // 메모리 캐시 WKWebsiteDataTypeCookies, // 웹 쿠키, WKWebsiteDataTypeOfflineWebApplicationCach..
[iOS] 모바일 앱 UI / UX 디자인 가이드
간혹 UI/UX를 설계할 때 어떻게 해야 맞는 걸까 라고 생각할 때가 있다. 그럴 때 참고할 만한 사이트를 찾았다. 다음 사이트에서 참고해서 레이아웃과 디자인을 신경쓰면 좋을 것같다. https://brunch.co.kr/@chulhochoiucj0/8 모바일 UI·UX 디자인시 고려해야 할 가이드라인 1 애플 iOS HIG와 Material design 가이드를 중심으로 | 모바일 앱과 웹 디자인은 데스크톱 웹 디자인과는 많은 부분이 다릅니다. 이는 각 기기device의 특성과 사용 맥락의 차이에서 기인합니다. 우선 모 brunch.co.kr
[iOS-Swift] Clean Architecture + MVVM 설명
rxSwift 를 사용하면 뷰모델을 사용하는 것은 거의 필수적이다. 이때 Massive View Model이 되지 않도록 하는 방법론 중 Clean Architecture 를 채택하는 방법이다. 하단은 타 블로거분이 매우 잘 설명해주신 내용이 있다. https://eunjin3786.tistory.com/207 [Clean Architecture] iOS Clean Architecture + MVVM 개념과 예제 repository패턴이란 Interfaces > Repositories에 있는 파일들은 모두 프로토콜이고 Data > Repositories 에 있는 파일들은 Domain > Interfaces > Repositories의 프로토콜들을 채택한 클래스들입니다. 아래 그림처럼 Repo eunjin..