본문 바로가기
반응형

프로그래밍/Swift51

XCode archive distribute content? distribute app 설정 오늘 앱 Archive를 하다가 닥친? 문제. 아카이브 빌드 후 오픈 된 창에서 distribute app이 안나오고 distribute content가 나온다. 이게 뭐야? 난 content는 필요없다. 찾아낸 결과 target Build Settings > Deployment > Skip Install > YES 를 NO로 수정하고 다시 아카이브하면 된다. 끝. 2021. 9. 9.
Xcode Provisioning Profile 삭제 참 다양한 이슈가 발생한다. 여튼, 프로젝트 앱의 프로비저닝이 여러개 발행이 되면서 특정 프로비저닝 파일에서 내 단말의 UDID가 누락된 상황, 빌드를 하니 오류가 발생했다. 인터넷 검색을 통해 찾았지만, 내 블로그에도 기록을 해 둔다. cd ~/Library/MobileDevice/Provisioning Profiles/ 폴더로 이동 한다음, 프로비저닝을 다 지운 다음 새로 넣으면 된다. 끝. 2021. 8. 27.
UIViewController를 이용한 Bottom Popup만들기 요즘 신규로 앱을 만들거나 리뉴얼을 하는 앱들에게 많은 영향을 주는 대표적인 앱이 토스 또는 카카오뱅크인듯. 하단에서 스르르 하고 올라오는 바텀팝업(Bottom Popup)이 인기를 끌고 있다. 현재 진행중인 프로젝트에서도 대부분 사용자 선택이나 약관들을 이 팝업을 통해 노출하고 있다. 어제 디자인팀에서 새롭게 추가된 Bottom Popup을 제시했다. 날짜선택 피커뷰를 바텀팝업형태로 제작을 해 달라는 것. 프로젝트팀 다른 멤버가 이미 만들어놓은 바텀팝업을 따라해서 만들었는데 영 이상하길래 그 차이가 뭔가? 했더니 UIViewController의 Transition Type과 Presentation의 차이때문에 그런 것이다. 바텀팝업은 일반적으로 UIViewController에서 원하는 모양대로 만들면 .. 2021. 8. 25.
Swift 패턴 이야기- 빌더 패턴(builder) 빌더 패턴은 복잡한 객체의 생성을 도우면서 어떻게 이러한 객체들을 생성하는지에 대한 프로세스를 강제한다. 일반적으로 빌더 패턴에서는 복잡한 타입으로부터 생성 로직을 분리하며, 다른 타입을 추가한다. 빌더 패턴은 타입의 서로 다른 결과물을 생성하는 데 동일한 생성 프로세스를 사용하게 해준다. 빌더 패턴을 구현하는데 사용할 수 있는 방법에는 두 가지가 있다. 첫 번째 방법은 구체적인 방법으로, 원래의 복잡한 객체를 설정하는 정보를 가진 여러 가지의 빌더 타입을 갖는 방식이다. 두 번째 방법은 모든 설정 가능한 옵션을 기본 값으로 설장하는 단일 빌더 타입을 사용해 빌더 패턴을 구현하며 필요하다면 옵션 값을 변경하는 방식이다. 빌더 패턴 구현 struct BugerOld { var name: String var.. 2021. 7. 21.
Swift 패턴 이야기- 싱글턴 패턴(singleton) 싱글턴 패턴은 애플리케이션 생애 동안 클래스 인스턴스화를 단일 인스턴스로 제한한다. 이 패턴은 애플리케이션에서 행위를 조직화하기 위해 하나의 인스턴스만 필요ㅛ로 하는 경우에 매우 유용하다. 애플리케이션이 블루투스로 원격 장치와 통신하면서 애플리케이션 곳곳에서 연결을 유지하고 싶을 경우가 싱글턴을 사용하는 좋은 예가 된다. 누군가는 연결 클래스의 인스턴스를 한 페이지에서 다음 페이지로 전달해 줄 수 있다. 싱글턴 패턴은 참조 타입에서만 구현할 수 있다. 싱글턴 패턴 구현하기 class MySingleton { static let sharedInstance == MySingleton() var number = 0 private init() {} } 싱글턴 사용 예 var singleA = MySingleto.. 2021. 7. 21.
Swift 제네릭 함수, 제네릭 타입 제네릭은 중복을 피하면서 매우 유연하고 재사용이 가능한 코드를 작성할 수 있게 해 준다. 스위프트 언어에서 제네릭은 옵셔널의 예로 사용 된다. 옵셔널 타입은 두 개의 사용 가능한 값인 None과 Som(T)로 이뤄진 열거형으로 정의돼 있으며, 여기서 T는 적절한 타입의 연관 타입을 나타낸다. 옵셔널에 nil을 대입하면 None 값을 갖게 되고, 옵셔널에 어떠한 값을 대입하면 적절한 타입의 연관 값을 갖는 Some 값을 갖게 될 것이다. enum Optional { case None case Some(T) } T는 옵셔널과 연관된 타입, 플레이스홀더인 T는 제네릭을 정의하는데 사용한다. 제네릭을 사용해 중복을 피하는 예는 다음과 같다. 두 변수의 값을 교환하는 함수를 만들고자 할 때 여러 타입(Intege.. 2021. 7. 15.
반응형