전체 글

· iOS
Fastlane 초기화 Fastlane 주 사용 목적 선택 및 앱스토어 디스트리뷰션 스킴 선택 (스킴이 2개 이상일 경우) 앱 자동 배포화를 목적으로 하기 때문에 3번 Automate App Store distribution 선택 (처음 진행 할 경우 아래와 같이 Apple ID와 이중 인증 6자리 입력 필요) 릴리즈 버전인 prod 선택 애플 디밸로퍼 계정 로그인 배포할 애플 계정을 입력합니다. .Would you like fastlane to manage your app's metadata? 이미 앱스토어에 작성된 metadata가 존재하므로 y를 선택하여 metadata를 다운로드 합니다. Fastlane 기본 설정 완료 모든 설치과 기본 설정을 마치면 해당 폴더 내에 Gemfile과 fastlan..
· iOS
현재 잇차 앱에서 쓰이고 있는 MVC 구조는 모델의 뷰 적용, 라이프 사이클 이벤트 관리, 콜백 처리 등을 View Controller에서 전부 전담하고 있기 때문에 추가 기능 등이 늘어남에 따라 각 컨트롤러 별 변수, 함수들이 점점 많아지고 있는 상태이다. 이러한 상황이 계속된다면 하나의 View Controller에서 비대한 코드들을 관리해야 될 것이다. 이러한 문제를 해결하기 위해 로직부분을 ViewModel로 옮겨 View Controller의 크기를 줄이고, 테스트에도 용이한 MVVM 구조로의 변환이 필요할 것으로 보인다. MVVM의 특징 View Controller가 모델에 직접 접근하지 못한다. (View Model은 Model을 가지고 있고, Model은 View Layer와 소통하지 않는..
· iOS
카메라 촬영을 통한 결과를 FileManager의 document directory에 저장하고, 그 경로를 URL 형식으로 변환하여 S3를 업로드하는 내용입니다. 코코아팟 설치를 해줍니다. # AWS pod 'AWSS3', '~> 2.27.1' poolId를 발급받아 AWSCognitoCredentialsProvider과 AWSServiceConfiguration을 생성 후, Default Service Configuration을 이니셜라이징 해줍니다. func configure() { let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .APNortheast2, identityPoolId: "INSERT-POOL-ID-HERE") g..
· Swift
클로저의 정의 클로저는 코드에서 전달 및 사용할 수 있는 독립된 기능의 중괄호 "{}"로 구분된 코드 블록이다. python의 람다(lambda)와 유사한 개념이라고 보면 된다. 클로저는 정의된 컨텍스트 내에서 모든 상수 및 변수에 대한 값을 캡쳐하고 레퍼런스를 저장할 수 있다. 클로저의 형태 클로저에는 크게 3가지 형태가 있다. 전역함수(Global functions)의 형태 : 이름이 있고 값을 캡쳐하지 않음. 중첩된 함수(Nested functions)의 형태 : 이름이 있고 둘러싸는 함수에서 값을 캡쳐할 수 있다. 클로저 표현식(Closure expressions) : 이름이 없고 경량 구문(lightweight syntax)으로 쓰이며 주변 컨텍스트에서 값을 캡쳐할 수 있다. 클로저와 함수의 차..
· iOS
애플 엔터프라이즈 프로그램에 대해 조사하던 중 알게된 정보들을 정리해보았습니다. Apple Enterprise 앱스토어에 공식 출시를 할 수 없는 특정 앱으로 회사 및 조직 내부 사용을 위한 앱 배포를 의미. 대규모 조직은 Apple Developer Enterprise Program을 통해 조직 내부에서만 사용하는 전용 앱을 개발하여 직원에게 배포할 수 있음. 내부 시스템을 이용하여 회사 내 직원들에게 비공개로 배포하여 이용할 수 있다. 앱스토어에 배포 불가능! 자격 요건 직원 100명 이상 법인 자격이어야 함. 사내에서만 사용하는 전용 앱을 생성하여 조직 내의 직원에게 비공개로 안전하게 배포하기 위한 용도로만 사용해야 함. Apple의 확인 인터뷰 및 지속적인 평가 절차에 참여하고 통과해야 함. (참..
· iOS
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..
· iOS
스위프트 패키지 매니저 라이브러리 만들기 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에서의 의존성 관리도구 현재 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 {라이브러리명} 명령어를 실행한다. 프로젝트 설정 프로젝트 생성에 앞서 플랫폼, 언어, 데모 앱 ..
빵판 AKA 브레드보드
BreadBoard's devlog