본문 바로가기

iOS/STUDY

(56)
Figma-export로 color, icon, image, typography를 자동으로 export 해보기 결론부터 말하자면 다 하고보니 피그마 유료버전만 사용 가능해서 결국은 사용하지 못했지만.. 추후에 다시 사용할 때를 대비하여 멤모멤모 Figma color 일일이 asset 추가 + SwiftGen 지난 프로젝트에서 Figma로 디자인 시스템을 간단히 만들고 asset에 추가했는데 이때 color picker로 light, dark 모드 컬러를 하나하나 찍으면서 추가했어서 정말 오래걸리고 부정적인 경험이었다ㅠ 가끔 멍때리다가 잘못 찍으면 이렇게 추가하고는 SwiftGen 이라는 오픈소스를 사용해서 assets에 있는 컬러들을 자동으로 코드로 변환해주도록 사용했었다. https://github.com/SwiftGen/SwiftGen 이 부분에선 자동으로 생성해주니 편안했는데 color를 추가하거나 변경할때..
[iOS] NSCache https://developer.apple.com/documentation/foundation/nscache Apple Developer Documentation developer.apple.com NSCache A mutable collection you user to temporarily store transient key-value pairs that are subject to eviction when resources are low. 리소스가 부족할 때 제거될 수 있는 임시 key-value 쌍을 저장하는 데 사용하는 변경 가능한 컬렉션입니다. = 임시 캐시 공간..! class NSCache : NSObject where KeyType : AnyObject, ObjectType : AnyObje..
[iOS] Generic 오류 (URLSession과 Decode를 곁들인) URLSession의 요청이 많아지다보니 공통화를 하고싶어서 Generic에 손을 댔는데 생각지도 못한 오류 때문에 시간을 많이 잡아 먹었다. 해결책도 사실 근본적인 해결책이라고 볼 순 없지만.. 적어놓고 나중에 완전히 이해되면 다시 볼 생각으로 글을 적어보려고한다. 오류상황 현재 NetworkManager에 모든 URLSession 작업과 Encode, Decode 함수를 넣어놨는데 Decode 함수를 제네릭으로 만들고 request 함수에서 호출하려고 보니 오류가 발생했다. 처음으로 발생한 오류 : 일반 매개변수 T를 유추할 수 없습니다. Generic parameter 'T' could not be inferred private func decode(data: Data?) -> T? { let de..
[iOS] UITabBarController, UITabBar UITabBarController A container view controller that manages a multiselection interface, where the selection determines which child view controller to display. 다중 선택 인터페이스를 관리하는 container view controller로, 선택에 따라서 보여질 child view controller가 결정됩니다. Declaration @MainActor class UITabBarController : UIViewController 이 클래스는 일반적으로 그대로 사용되지만 서브 클래스로 사용될 수도 있습니다. Tab bar 인터페이스는 화면 아래 쪽에 탭으로 보여집니다. 사용자가 ..
[iOS] Static, Dynamic Library, Framework Xcode에서 Cocoapods, Carthage, SPM 같은 도구를 사용하여 외부 프레임워크를 사용합니다. 프레임워크가 어떻게 구성되어 있고, 동작하고, Static Framework와 Dynamic Framework의 차이가 무엇인지 알아보려고 합니다. Framework 프레임워크는 공유 라이브러리와 헤더 및 다른 리소스의 하위 디렉토리를 포함하는 번들입니다. 프레임워크는 Dinaymic shared library, nib 파일, 다국어 문자열, 헤더 파일, 레퍼런스 문서와 같이 공유 리소스를 패키지로 캡슐화하는 계층 구조 파일 디렉토리 입니다. 리소스 사본은 프로세스 수에 상관없이 항상 물리적으로 메모리에 상주하며 리소스 공유로 메모리를 차지하는 공간을 줄이고 성능을 향상 시킵니다. 번들이라면 실..
[iOS] Compositional Layout 에 관하여 CollectionView를 무작정? 쓰다가 레이아웃 잡을 때 감으로 때려 맞추는 일을 그만하기 위해서 정리를 해보려고 합니다.. Layout 우선 레이아웃을 사용하는 이유는 컬렉션 뷰의 컨텐츠를 정렬하기 위해서입니다. 레이아웃이 잘 잡혀있으면 컨텐츠를 그냥 넣기만 하면 레이아웃대로 구성이 되기 때문이죠! 이 레이아웃을 커스텀 하는 방법으로는 두 가지 방법이 있습니다. UICollectionViewFlowLayout UICollectionViewCompositionalLayout 우선 flow 레이아웃은 iOS 6.0+ , compositional 레이아웃은 iOS 13.0 + 에서 사용 가능합니다. flow 레이아웃이 훨씬 오래됐다는 것을 알 수 있죠 두 레이아웃 객체 모두 UICollectionVie..
[iOS] 카카오 로그인 이해하기 로그인.. 간단해보이지만 이해하기 어려운 부분이 아닐까..ㅠㅠ 프로젝트에서 간편 로그인 기능을 사용하기로 했기 때문에 간편 로그인 기능도 OAuth2 프로토콜 기반의 사용자 인증 기능이라 공부해보려고 합니다. OAuth 2.0 주요 용어 Authentication 인증, 접근 자격이 있는지 검증하는 단계입니다. Authorization 인가, 자원에 접근할 권한을 부여하는 것입니다. 인가가 완료되면 리소스 접근 권한이 담긴 Access Token이 클라이언트에게 부여됩니다. Access Token 리소스 서버에게서 리소스 소유자의 보호된 자원을 획득할 때 사용되는 만료 기간이 있는 Token 입니다. Refresh Token Access Token 만료시 이를 갱신하기 위한 용도로 사용하는 Token 입..
[iOS] UIToolbar 이슈 (UIToolbarContentView, UIButtonBarStackView) "", "", "" 키보드 위에 버튼을 나타내기 위해 툴바를 사용했는데 이 오류가 처음 화면에는 안나타나고.. 다시 화면에 재진입할때 발생한다. WTF 홈페이지랑 콘솔창에서 translatesAutoresizingMaskIntoConstraints 를 확인해보라고 해서 버튼 false 툴바 false 지우고 지우고 sizeToFit도 건드려보고 별짓 다해봤는데 안되길래 구글 검색 가장 첫 글에 발견 https://developer.apple.com/forums/thread/121474 UIToolbar issue in iOS 13 | Apple Developer Forums I'm adding one UIBarButtonItem with a custom view. The custom view uses a..