애플 엔터프라이즈 프로그램에 대해 조사하던 중 알게된 정보들을 정리해보았습니다. Apple Enterprise 앱스토어에 공식 출시를 할 수 없는 특정 앱으로 회사 및 조직 내부 사용을 위한 앱 배포를 의미. 대규모 조직은 Apple Developer Enterprise Program을 통해 조직 내부에서만 사용하는 전용 앱을 개발하여 직원에게 배포할 수 있음. 내부 시스템을 이용하여 회사 내 직원들에게 비공개로 배포하여 이용할 수 있다. 앱스토어에 배포 불가능! 자격 요건 직원 100명 이상 법인 자격이어야 함. 사내에서만 사용하는 전용 앱을 생성하여 조직 내의 직원에게 비공개로 안전하게 배포하기 위한 용도로만 사용해야 함. Apple의 확인 인터뷰 및 지속적인 평가 절차에 참여하고 통과해야 함. (참..
How to create iOS Framework 애플은 코드 공유를 쉽게하기 위해 프레임워크라는 도구를 제공합니다. 뿐만 아니라 코드를 그룹화(모듈화)하고, 코드 접근을 제어하는(캡슐화) 매커니즘을 제공해줍니다. 앞서 제작해본 CocoaPod, SPM 제작 방식을 활용하여 iOS Framework를 만들어볼게요! 프레임워크 예제 본 포스팅은 raywenderlich 사이트의 'Creating a Framework for iOS' 튜토리얼을 바탕으로 작성되었습니다. 예제 파일은 아래 링크에서 확인해보실 수 있습니다. https://www.raywenderlich.com/17753301-creating-a-framework-for-ios Creating a Framework for iOS Learn how..
스위프트 패키지 매니저 라이브러리 만들기 Package.swift 파일 생성 스위프트 패키지 매니저를 이용하려면 Package.swift 파일만 추가해주면 된다. 앞서 만든 라이브러리(코코아팟) 디렉토리 위치에서 아래 명령어를 실행하여 Package.swift 파일을 생성해준다. https://miiiiiin-devlog.tistory.com/5 touch Package.swift Package.swift를 열어 아래 코드를 입력해준다. 단 Package.swift는 꼭 swift-tools-version 항목을 명시해주어야 한다. swift-tools-version의 버전은 PackageDescription 라이브러리의 버전을 의미한다. // swift-tools-version:5.1 import Pa..
iOS 라이브러리 제작기 iOS에서의 의존성 관리도구 현재 iOS 애플리케이션 개발 환경에서 쓰여지는 의존성 관리도구는 아래 3가지 정도가 있다. Cocoapods(코코아팟) Carthage(카르타고) Swift Package Manager(스위프트 패키지 매니저) 참고자료 https://yagom.net/courses/open-source-library/ https://guides.cocoapods.org/making/index.html 코코아팟 라이브러리 제작 코코아팟 프로젝트 생성 pod lib create StepProgressIndicatorView 원하는 디렉토리 안에서 pod lib create {라이브러리명} 명령어를 실행한다. 프로젝트 설정 프로젝트 생성에 앞서 플랫폼, 언어, 데모 앱 ..
[2교시] RxSwift 활용하기 - 쓰레드의 활용과 메모리 관리 1. Merge: Observable 여러개를 묶어서 하나의 Observable로 만들어줌. 2. Zip: 위 아래 데이터가 하나씩 생성되면 그것들을 쌍으로 하나 만들어서 내려줌. 3. CombineLatest: 쌍이 하나 없으면 못내려가는 zip과 달리 가장 최근에 나온 것과 쌍으로 만들어줌. // zip: Observable들을 합쳐서 처리 let jsonObservable = downloadJson(MEMBER_LIST_URL) let helloObservable = Observable.just("hello world") _ = Observable.zip(jsonObservable, helloObservable) { $1 + "\n"..
유튜브 곰튀김님 강의를 토대로 RxSwift의 기초를 정리해보았습니다. 개인 공부 목적으로 정리한 내용이라 부족한 부분이 있거나 오류가 있을 수도 있으니 언제든 알려주시면 정정하도록 하겠습니다. [1교시] 개념잡기 - RxSwift를 사용한 비동기 프로그래밍 RxSwift 사용 이유 중 하나로는 비동기적으로 생기는 결과값을 리턴값으로 전달하기 위해서이다. (나중에 생기는 데이터를 리턴값으로 전달) 기존 : 비동기로 생성되는 데이터를 처리하기 위해 completion 등을 만들어 전달했었음. 그러나 completion이 아닌 return 값으로 전달을 해주고 싶었음. class Observable/*나중에생기는데이터*/ { //나중에 생기는 데이터 private let task: (@escaping (T)..
최근에 컬렉션 뷰를 활용한 무한 스크롤링 배너를 구현하다가 문득 이 UICollectionView의 기본 개념이 부족하다는 생각이 들었습니다. 여태까지는 별 문제없이 써왔지만 제대로 알고 쓰는 것이 추후 뷰 구현 시 설계에 대해 고민하는 시간을 많이 줄여줄 것으로 생각되어 간단하게라도 기초를 정리해보고자 합니다. UICollectionView는 변경이 가능한 레이아웃을 이용하여 데이터를 view 상에 보여줍니다. 컬렉션 뷰의 레이아웃은 단순한 행, 열 그 이상의 기능을 수행하는데 각 셀의 레이아웃을 동적으로 변경할 수도 있습니다. 컬렉션 뷰는 모두 사용자에게 정렬 된 데이터를 제공한다는 점에서 테이블 뷰와 다소 관련이 있습니다. 테이블 뷰의 구현은 인덱스 경로, 셀 및 뷰 재활용 사용에있어 표준 컬렉션 ..