패키지 만들기
·
iOS
👋 들어가기 전나만의 오픈소스를 만들어 다른 사람에게 도움이 될만한 경험을 제공하는게 꿈이었다.현재 프로젝트를 하며 작지만 꽤나 귀찮은 불편함을 느꼈는데 이 아이디어를 나의 첫 오픈 소스 패키지로 활용하면 재밌겠다라는 생각이 들었다. 이번 시간에는 패키지를 만들며 겪는 과정과 어려움을 정리해보려한다. 드가자 ~!✊패키지 생성하기패키지 생성은 생각보다 어렵지 않았다.Xcode -> File -> Packag를 순서대로 누르자. 이후 Library를 선택 후 Test 파일 여부와 Packag이름을 써주면.. 짜잔 패키지 만들기 성공!☝️구성말했던 것 처럼 나의 첫 패키지는 굉장히 간단하기 때문에패키지를 만들 때 거치는 과정이 굉장히 간단해서 구성을 살펴보는건 공식 패키지를 보고 배워보자. 우리가 살펴볼 공..
PhotoPicker 최적화하기
·
iOS/UIKit
👋 들어가기 전현재 하고있는 프로젝트는 이미지가 굉장히 중요하다.이미즈는 크게 2가지 종류가 있을 수 있다. 첫 번째는 링크 또는 서버에서 제공해주는 이미지고 두 번째는 나의 로컬 갤러리를 통해 불러오는 이미지가 있다. 여기서 애플에서 제공해주는 PHPickerViewController를 사용하면 쉽게 앨범 이미지를불러올 수 있지만 디자이너님의 요구는 커스텀이 가능한 뷰를 원하고 있어 직접 자체 개발을 해야했다. 현재 UI Framework가 SwiftUI로 개발되어 ScrollView와 LazyVGrid를 이용하여 어렵지 않게 UI는 구성했다. 여기서 처음했던 기술적인 도전은 사진을 가져오는 과정을 최대한 modern concurrency를 이용하여나름 최적화와 completion Handler를 c..
iOS Cache
·
iOS/UIKit
캐시캐시란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소이다.갑자기 iOS에서 이 개념이 왜 나올까 ??  부스트 캠프 과정 중 앱 개발을 할 때 항상 비용을 고려해야한다. 비용은 크게 2가지로 나눠진다비용 Money전원 Power전원 Power는 말 그대로 우리 서비스를 이용할 때 배터리 소모량이 된다. 비용 Money은 우리 서비스를 이용하면서 유저가 지불해야하는 금액적인 비용이다. 금액적인 비용은 우리 서비스내의 제품을 구매할 때도 역시 필요하지만앱이 네트워크가 필요하여 인터넷 비용도 있다.  우리가 컨트롤 할 수 있는 것은 바로 인터넷 비용이다.우리는 유저의 인터넷비용을 최대한 기술적으로 절감시켜 유저 이탈 수를 막야한다. 대표적인 예로 바로 캐시 데이터를 통해 불필요한 네트워크 통..
NSKeyedArchiver
·
iOS/UIKit
NSKeyedArchiver 오브젝트의 데이터를 key로 참조해서 기록하는 encoder다.  NSKeyedUnarchiverkey로 참조해서 오브젝트의 데이터를  복원하는 decoder다.UserDefaults와 차이점나는 지금까지 데이터를 저장할 때 UserDefaults를 이용했지만 이 아카이버의 역할은 무엇일까?? NSKeyedArchiverUserDefaults저장 방식Key - Value데이터 타입 매핑 여부O상위 하위 관계 매핑 여부OX 공통점이 많은 인터페이스 가지만 큰 차이점이 존재한다.바로 상속과 같은 복잡한 데이터의 관계를 같이 저장하는데 차이가 있다. 흠.. 상하 관계가 있다는 것은 상속을 쓴다는 것이고 NSKeyedArchiver는 클래스를 저장할 때 많이 쓰이는군.. 으로 예상된..
NSCoding , NSSecureCoding
·
iOS/UIKit
정의A protocol that enables an object to be encoded and decoded for archiving and distribution. 아카이빙과 배포를 위해 객체가 encoding과 decoding을 가능케 도와주는 프로토콜이다. 조금 더 자세히 설명하면 NSCoding은 Objective-C 기반의 클래스를 직렬화 및 역직렬화를 하는 역할을한다. 인코딩이란?Swift의 데이터를 컴퓨터가 이해할 수 있는 0과1로 코드화, 암호화 등을 하는 과정이고보안, 저장 공간 절약등의 효과를 볼 수 있다. 디코딩이란?디코딩은 인코딩의 정확한 반대 과정으로 복호화, 역코드화가 진행되며  컴퓨터가 이해할 수 있는 정보를 우리가 사용하는 Swift 데이터로 바꾸는 과정이다. 구성publi..
NSObject
·
iOS/UIKit
정의The root class of most Objective-C class hierarchies, from which subclasses inherit a basic interface to the runtime system and the ability to behave as Objective-C objects.NSObject는 Objective-C 및 Swift 프로그래밍 언어의 기본 클래스이며  대부분의 다른 클래스의 루트 클래스 역할을 한다. 기능많은 기능들이 있지만 대표적인 4가지 기능만 살펴보자.  1. 객체 초기화NSObject클래스는 다른 모든 클래스에서 상속되는 기본 초기화 메서드인 init을 제공한다. 2. 메모리 관리NSObject클래스는 객체에 할당된 메모리 관리를 하는 메서드를 제공..