[Swift] @Environment에 대해 알아보기(Property Wrapper 3편)
·
Swift
안녕하세요. 이전 글에서 @ObservedObject, @StateObject에 대해 알아봤고, 오늘은 마지막 @Environment에 대해 알아보겠습니다. @Environment A property wrapper that reads a value from a view’s environment. 출처: 공식문서 공식 문서에는. @Environment Property Wrapper는 View 환경에 저장된 EnvironmentValues 을 읽어오기 위한 Property Wrapper이고, key path를 통해 EnvironmentValues을 지정하고, 읽어올 수 있다고, 나와있습니다. 위 같은 글을 읽었을 땐 바로 이해가 되질 못했습니다. 때문에 직접 사용해 보면서 정리해 보겠습니다. 예제를 통해 사..
[Swift] Alamofire의 RequestInterceptor을 사용해 토큰 갱신하기
·
Swift
안녕하세요. 이번에 프로젝트를 진행하면서 JWT를 통한 인증 방식을 사용했는데 앱 같은 경우 accessToken의 유효기간이 있어 refreshToken을 사용해 토큰을 갱신 받아야 합니다. 때문에 오늘 알아볼 것은 좀 더 간편하게 accessToken을 갱신 받을 수 있는 방법에 대해 알아보겠습니다. RequestInterceptor Type that provides both `RequestAdapter` and `RequestRetrier` functionality. `RequestAdapter` 및 `RequestRetrier` 기능을 모두 제공하는 유형입니다. RequestInterceptor는 Alamofire 라이브러리에서 제공하는 프로토콜 입니다. 프로토콜을 보면, adapt와, retry..
Appearance사용해 NavigationBar 커스텀하기(iOS 13.0+)
·
iOS
오늘은 프로젝트 때문에 NavigationBar을 입맛에 맞게 커스텀 해야 했는데 iOS13 이후로 NavigationBar가 변경되어 커스텀 하는데 삽질을 좀 했습니다. 때문에 이번에 삽질했던 과정 및 해결 방법을 기록하기 위해 iOS13부터 변경된 NavigationBar를 커스텀 하는 방법에 대해서 알아보겠습니다. 오늘의 목표 그림과 같은 반투명한 NavigationBar 만들기 먼저, 왼쪽 버튼과 title만 입력하고, 아무 작업도 하지 않은 navigationBar의 기본적인 모습입니다. 그럼 제가 처음 접근했던 방법부터 보여드리면서, 최종적으로 Appearance 사용하여 문제를 해결한 방법까지 순차적으로 작성해 보겠습니다. navigationBar.tintColor = .white // 흰색..
[iOS] Clean Architecture 파헤치기
·
iOS
안녕하세요.오늘은 Clean Architecture에 대해 알아보겠습니다.Clean Architecture 란?옛날 소프트웨어를 설계할 때, 많은 부분 하드웨어의 설계 방식을 많이 가져왔다고 합니다.하지만, 하드웨어와 소프트웨어의 가장 큰 차이점은 하드웨어는 한번 설계할 때 완벽히 설계하여 제품 출시 이후 오점이 없어야 합니다. 오점이 있다 하더라도, 이는 수정하기가 힘들죠.하지만, 소프트웨어는 버그가 생기면, 수정하여 다시 출시할 수 있고, 새로운 기능이 필요하다 생각되면, 추가하여 다시 출시할 수 있습니다.정리하면, 하드웨어는 설계 단계부터 완벽해야 하지만, 소프트웨어는 언제든 확장, 수정이 될 수 있도록 유연한 설계가 필요합니다.유연한 소프트웨어 설계를 위해 Clean Architecture와 같은..
[iOS]PhotoKit 알아보기(2)
·
iOS
PhotoKit 통해 기기 사진 라이브러리에 접근 권한을 받아오는 방법에 대해서 PhotoKit 알아보기(1) 글을 참고하시기 바랍니다. 이번 글에서는 부여받은 권한을 이용하여 기기의 저장된 이미지 Asset을 가져오는 방법에 대해서 알아보겠습니다. 이미지 Asset을 가져오기 위해선 PHFetchResult 객체를 통해 가져올 수 있지만, PHFetchResult 객체를 사용하기 위해선 PHAsset과 PHAssetCollection에 대해 알고 있어야 합니다. 하지만, 두 객체는 PHObject를 상속받기 때문에 PHObject 먼저 알아보겠습니다. PHObject PHObject는 공식문서에 따르면, 직접 인스턴스를 만들거나 사용하면 안됩니다. 하위 클레스인 PHAsset, PHAssetCollec..
[iOS]PhotoKit 알아보기(1)
·
iOS
만약 우리가 만든 App에 사진첩의 사진을 가져오려고 한다면, PhotoKit을 사용해야 할 것입니다. 이번 주제에서는 위 PhotoKit을 이용하여 사진첩에 있는 사진을 가져와 나만의 Custom 사진첩을 만들어 보겠습니다. 하지만, 만들어 보기 전에 PhotoKit과 사진첩을 만들기 위한 객체 및 메서드에 대해서 먼저 알아보겠습니다. PhotoKit PhotoKit 공식문서에서는 PhotoKit을 Framework가 아닌 Technology라고 기재해 두었네요. PhotoKit은 사진 앱에서 관리하는 사진 및 비디오 자산에 대한 직접 액세스도 제공합니다. PhotoKit을 사용하여 우리의 앱에 이미지 또는 동영상을 표시 및 재생을 위해 Asset을 가져오거나, 캐시까지도 가능합니다. 또한, 위 사진과..