[SwiftUI] NavigationView, NavigationStack, navigationTitle
·
Dev/SwiftUI
SwiftUI 블로그글들을 참고하기가 가끔 애매하다고 느껴질 때가 있는데, 아무래도 애플이 계속 개선하고 있는 중이라 과거(라기엔 비교적 최근이지만)에 쓰여진 기술들 중 Deprecated 된 게 많다는 점 같다. 실제로 NavigationView를 사용해서 navigationTitle을 단 블로그 글들이 많았는데, 현재는 Deprecated 되었다. 그대신 사용할 수 있는 게 NavigationStack이다. 다른 스택들 사용하는 것처럼 NavigationStack이 끝나는 중괄호 끝에.navigationTitle("Title Text")를 붙여주면 네비게이션 타이틀이 나오게 된다. 이때, navigationBarTitleDisplayMode 을 통해 타이틀의 스타일을 조정해줄 수 있다...
[CS] 이미지 캐시
·
CS
프로젝트 유지보수 중 사수님이 이미지 캐시 관련 로직을 구현하시다가 나에게 이미지 캐시에 대해 설명해주셔서 까먹기 전에 살짝쿵 정리하고 가기로 했다. 실제로 캐시에 대한 개념을 개발자가 알고 있는 게 중요하기도 하고, 의외로 면접 단골 질문이라 미래를 위해서 (?) 이해하고 있는 게 도움이 될 것 같다.    https://motosw3600.tistory.com/37 ImageCacheImageCache 이미지 캐시로 이미지를 받아오는 로직은 총 3가지로 분류된다. 메모리 캐시 디스크 캐시 URL 요청 1. 메모리 캐시 NSCache사용 Key-Value쌍으로 이루어진 Generic Type의 클래스 메모리 영역 일부motosw3600.tistory.com 위 블로그가 사수님이 간결하게 잘 정리 된 것..
[Swift] Keychain vs UserDefaults
·
Dev/Swift
iOS 앱 개발을 하면, 사용자의 정보를 저장할 데이터베이스 선택지를 한번씩은 꼭 고민해보게 되는 것 같다. CoreData, UserDefaults, Keychain 등이 있는데,이 글은 보안 유지가 필요한 데이터를 저장할 때 사용하기 좋은 Keychain에 대해 정리다. 1. UserDefaults로 사용자의 개인정보 저장해도 될까?물론 UserDefaults에 사용자의 데이터를 저장할 수도 있다. 우선 UserDefaults에 대해 정리해보자. UserDefaults는, 1. 런타임에 동작2. 앱이 실행되는 동안 기본 데이터베이스에 접근해 info 파일에 key-value의 형태로 데이터를 저장 이라는 특징을 가지고 있으며, 데이터가 샌드박스에 저장되어 있기 때문에 앱을 삭제하면..
[UIKit] CustomView
·
Dev/UIKit
새싹에서 후반기 프로젝트를 개발할 당시 CustomView를 많이 사용하게 되어서 정리하게 되었다.주로 코드베이스로 UI를 그려왔기 때문에 해당 글에선 코드 베이스 + SnapKit 기반으로 customView를 만드는 방법을 다룰 예정이다. 커스텀 뷰를 왜 사용하는 이유 우선 내가 CustomView를 사용했던 가장 큰 이유는 재사용성 때문이었다. 앞서 올린 이미지처럼, 반복되는 UI 요소가 많은 화면을 그릴 때 매번 UI와 관련된 코드를 작성하면 굉장히 비효율적일 수 밖에 없다. 폰트를 바꿔야한다면?포인트 컬러를 바꿔야한다면?버튼의 코너 레디어스를 변경해야한다면? 동일한 구성의 코드를 일일이 찾아서 수정한다면, 반복되는 뷰의 수가 많을 수록 수정의 굴레에 빠질 수 밖에 없으니까...
[UIKit] 앱의 생명주기
·
Dev/UIKit
생명주기 (Life Cycle)생명주기란, 앱이 최초로 실행되는 시점부터 종료되는 시점까지의 상태를 의미한다. 그렇다면 이런 앱의 상태가 무엇인가 하면, "the current state of your app determines what it can and can’t do at any time." 즉, 현재 시점에서 앱이 무엇을 할 수 있느냐를 결정 짓는 것을 뜻한다. 앱을 개발 및 사용을 하다보면 사용중인 앱을 백그라운드로 잠시 보낼 때도 있고 (카톡으로 받은 계좌번호를 복사하고, 그대로 은행앱을 켜서 붙여놓는다거나 하는 상황), 백그라운드에 둔 채로 해당 앱을 계속 사용할 때도 있고 (유튜브 뮤직을 사용중인 채로 다른 앱을 메인으로 사용하고 있을 수도 있고), 포그라운드 상태로 그 앱을 이용할 때도 ..
[CS] 이미지
·
CS
이전에 잭님이 다뤄주신 부분이지만,휴님께서 CS 정리 할 때 한번 더 이미지와 관련된 부분을 정리해주셔서 개인적으로 정리를 하기로 했다. 오늘 정리할 내용은 이미지에 대한 내용으로,비트맵과 벡터, JPG - PNG - GIF 에 대한 내용을 개인 복기용으로 (정말) 간단하게 다룰 예정이다. 비트맵 vs 벡터 비트맵(Bitmap) 서로 다른 점(픽셀)들의 조합으로 그려지는 이미지 표현 방식으로, 일정 이상 사이즈를 늘리면 픽셀이 깨져버린다. 우리가 흔히 아는 JPG, JPEG, PNG, GIF가 비트맵 표현방식 기반으로 이미지를 표현하는 종류의 예시. 그 특징은 아래와 같다. 종류특징투명도 지원용량JPG손실 압축RGB(세 가지 컬러에 대한 처리)X적음PNG무손실 압축RGBA (알파값에 대한 ..