안녕하세요 Diana 입니다.앨범의 첫 화면을 마치고 이제 앨범에서 썸네일을 눌렀을 때 자세한 이미지 보기를 구현해보려고 합니다.이때 단순히 Modal 또는 Navigation View로 화면전환을 구현할 수 있지만 앨범앱과 다양한 사진 앱들을 확인해보면 사용자에게 더욱 자연스러운 경험을 제공하기 위해 Transitioning Delegate를 통한 화면전환 애니메이션을 제공하고 있습니다.저도 이 부분을 활용해서 화면전환을 구현해보려고 합니다. 시작할게요! ✅ TransitioningDelegate를 통한 화면 전환화면전환 애니메이션을 사용하기 위해서는 Transitioning Delegate 에 대해 알아볼 필요가 있습니다.공식문서에 따르면 Transitioning Delegate는 Transiti..
안녕하세요 Diana입니다.오늘은 앨범 앱을 구현하며 수 많은 이미지를 한꺼번에 받아오는건 비효율적이라고 생각하여 무한스크롤 이라고 불리는 뷰를 구현해보려고 합니다.시작하겠습니다. ✅ 무한스크롤 구현하기우선 무한스크롤을 구현하기 앞서 비슷한 기능이 있는 앱들을 살펴보았습니다.Snow, Foodie 그리고 다른 여러 앱들을 확인해본 결과 많은 이미지와 데이터들을 처리하는 앱의 경우 특정 개수의 이미지를 우선 보여준 뒤 스크롤하였을 때 추가적으로 이미지를 불러오도록 구현되어있었습니다.추가적으로 데이터 로드 속도가 스크롤 속도를 따라오지 못하는 경우 Cell에서 기본 이미지(보통 회색)를 보여준 뒤 데이터가 로드 된 이후 Cell을 채워넣는 방식으로 구현되어 있었는데 이부분은 저는 서버에서 이미지를 받아오는..
안녕하세요, 앨범 앱을 만들고 있는 Diana 입니다.저번 게시물에서는 앨범 앱을 만들기 위해 접근권한을 설정하고 이미지 메타데이터를 사용하여 PHCachImageManager를 통해 이미지를 가져와 CollectionView에 뿌려주었습니다. 하지만 여기서 몇 가지 문제가 발생했는데요.오늘은 문제를 해결하기 위해 PHCachImageManager의 requestImage()에 대해 알아보려고 합니다. 좀 두서가 없긴 하지만 미래의 저를 위해 쓰는 글이기 때문에 괜찮을..지도? 시작하겠습니다. 이전 포스팅까지 구현한 코드를 실행해보면 발생하는 문제는 크게 세 가지가 있습니다. 첫 번째, 앨범에 사진이 별로 없는 테스트 폰에서는 상관 없지만 수 만개의 이미지를 가진 제 핸드폰에서 코드를 실행하면 이미지 ..
안녕하세요 Diana 입니다.근래에 iPhone의 기본앱인 앨범을 구경하고 있는데 계속 보다보니 생각보다 다양한 기능들이 들어가 있더라구요.그래서 한번 만들어보면 좋겠다 싶어 앨범앱 구현을 시작하게 되었고 그 과정에서 학습하고 겪은 일들을 기록해보고자 합니다. 시작할게요! ✅ Info.plist 앨범 권한 설정앨범 구현에 앞서 우리는 사진을 가져오기 위해 아이폰의 앨범에 접근을 해야 하는데 이때 권한 설정이 필요합니다. 권한설정을 위해 Info.plist에 Privacy - Photo Library Usage Description 와 Privacy - Camera Usage Description 값을 추가해줍니다. 이후 유저에게 권한을 요청하는 창을 구현해야하는데 저는 앨범앱 구현을 위해서는 권한이 ..
안녕하세요. Diana 입니다.요즘 SwiftUI로 개발을 하다보면 에러 문구로 Opaque Type이라는게 자주 보이더라구요.그리고 주변에서도 종종 귓동냥으로 이런게 있다 하고 들었던 것 같은데 미루고 미루다 이제서야 공부합니다 ㅎㅎ 그럼 바로 시작하겠습니다. Swift에는 코드의 디테일을 숨기는 방법으로 Opaque Type과 Boxed Protocol Type이라는 두 가지 종류를 제공합니다.그 중 Opaque Type은 Swift 5.1에 나온 개념으로 구현을 구체화하는 대신 호출에서 내용이 추상화 된다는 흥미로운 특징을 가지고 있죠. 구현을 구체화하고 호출을 추상화한다?어디선가 비슷한 개념을 본적이 있는 것 같습니다. 네 바로 제네릭인데요.제네릭은 비슷하긴 하지만 Opaque 타입과는 반대..
- Total
- Today
- Yesterday
- 빅세타표기법
- Xcode
- tuist v4
- tipkit
- swift
- 코어데이터
- 알고리즘
- ios
- 개발자코테
- SwiftUI
- coredata
- tipview
- Tuist
- reusablelist
- private(set)
- capsulation
- opaquetype
- 팁킷
- iphone
- 스위프트
- boxedprotocol
- opaque
- kakaomapssdk
- BoxedType
- ViewBuilder
- Algorithm
- PHCachImageManager
- Concurrency
- asymptoticnotation
- boxedprotocoltype
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |