본문 바로가기

전체 글

(177)
Xcode를 통해 Universal Framework 제작하는 방법 프로젝트에서 Framework 제작 방법에 대한 소개 XCFramework / Fat Framework 1. 프로젝트 실행 2. XCFramework 제작용 스크립트를 위한 Aggregate 생성 3.Target 이름 생성 4.New Run Script Phase 클릭 5. 스크립트 작성 1) XCFramework용 # Build Device and Simulator versions xcodebuild archive -scheme "${PROJECT_NAME}" -archivePath "${BUILD_DIR}/iphoneos.xcarchive" -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES xcodebuild archive -schem..
ObjC Framework import 시 'Failed to build module'로 인해 import할 수 없는 경우 ObjC로 이루어진 framework를 import시 위와 같은 에러를 만났을 가능성이 있는데요 Failed to build module '' from its module interface; it may have been damaged or it may have triggered a bug in the Swift compiler when it was produced ObjC로 이루어진 framework를 import시 위와 같은 에러가 발생했을 때 확인 및 수정 방법입니다. Framework에서 헤더파일 확인 public header를 import 시 헤더앞에 Framework 이름을 기록하지 않아 발생한 문제로 Framework자체는 빌드가 되지만, 이를 사용하는 프로젝트에서는 module이 헤더를 인..
Swift 메뉴 화면 제작 아래 영상 처럼 제스쳐 및 버튼을 이용해서 메뉴 화면을 열고 닫는 방법에 대한 소개로, UIViewController에 종속된 UIView 기반의 메뉴 화면 입니다. 프로젝트 생성 메뉴화면을 구성할 프로젝트를 생성합니다. (여기서는 SwiftMenuView라는 이름으로 생성 하였습니다.) MenuView 생성 메뉴 화면으로 쓰일 UIView(MenuView.swift)를 생성합니다. // // MenuView.swift // SwiftMenuView // // Created by magicmon on 2020/03/10. // Copyright © 2020 magicmon. All rights reserved. // import UIKit class MenuView: UIView { required in..
Swift 코드상에서 deinit호출 여부 체크하기 코드상에서 UIViewController 벗어날 때 retain cycle 해지가 되지 않아 메모리에 상주해 있는 경우가 있습니다. 처음 UIViewController를 만들고 작업 했을 때는 생기지 않았지만, 그 이후에 추가기능을 넣고 빼는 과정에서 특정 객체 참조가 해지 되지 않거나, self 참조 등으로 retain cycle이 다 해지가 되지 않는 경우 이 UIViewController는 계속 메모리에 남아 있는데요 Instruments가 아닌 코드상으로 체크 할 수 있는 방법입니다. UIViewController있는 아래 두 property를 검사 할텐데요 isBeingDismissed: UIViewController가 dismiss될 때, 해당 값은 true입니다. isMovingFromPar..
iOS command build script 스크립트를 통해 Xcode 프로젝트를 빌드하는 방법에 대해서 설명 드리려고 합니다. 구성 Xcode상에서 작성된 코드를 가끔 커맨드를 통해 빌드해야 할 경우가 생깁니다. 저와 같은 경우는 Jenkins를 통해 자동배포 구성 시 Jenkins에서 자동으로 설정해주는 셋팅값 대신 스크립트로 제가 원하는 환경을 만들고 빌드하기 위해 주로 사용합니다. 그 이유는 Jenkins빌드셋팅이 생각보다 쉽지 않을 뿐더러 Xcode버전업 등으로 재 설정이 필요할 경우 일정기간 제대로 동작하지 않는 문제가 발생하기 때문입니다. 사실 Xcode7에서 마이너버전 업데이트 이후에 제대로 동작하지 않아 알아보던 중 구성하게 됐습니다. 아래 스크립트 구성 방식은 아래와 같습니다. Xcode빌드 ipa파일 추출 Fabric을 통해 해..
Observer Pattern in Swift Observer패턴이란 무엇인지에 대해서 알아보도록 하겠습니다. (제가 이해하고 있는 기준이라 혹 잘못된 내용이 있으면 알려주시기 바랍니다.) 옵저버 패턴 설명은 wikipedia를 토대로 작성하였습니다. Observer 패턴 옵저버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 쉽게 예를 들어 설명하도록 해보겠습니다. 요즘 미세먼지가 심하잖아요? 저도 미세먼지에 민감한 사람중 한명인데요. 그래서 얼만큼 미세먼지 농도가 나오는지 미세먼지를 측정하고 기록하는 모델을 하나 만들었습니다. 이 소식을 듣고 저처럼 미세먼지에 민감한 분..
iOS 서버별 자동배포 환경 구축 방법 Xcode + Jenkins 설정을 통해 각 서버별로 자동배포 가능하도록 구축하는 방법입니다. 코드 수정 없이 각 서버 및 조건 별로 배포가능 하도록 환경설정 하는 방법에 대해서 기술합니다. 아래 내용에서는 QA용 배포 환경 설정을 추가하는 방법을 기준으로 설명하도록 하겠습니다. Xcode설정 Xcode에서 각 서버별로 배포가능 하도록 환경 설정을 해줘야합니다. Build Configurations 설정 Project > Info에 가면 Configurations 항목이 있습니다. (기본 환경 설정은 Debug와 Release입니다.) 여기서 +버튼을 눌러 Duplicate 하면 되는데요, 어떤 환경설정을 Base로 생성할 것인지 선택하면 됩니다. (Debug 기준으로 할지 Release기준으로 할지) ..
UICollectionView Custom Animation Dribbble의 Valerya Nasikan UX 디자이너의 프로젝트를 보고 앱으로 구현한 내용에 대한 기술입니다. https://dribbble.com/shots/3489204-Flower-App UICollectionView의 스크롤 효과를 모두 활용할 수 있고 앱으로 활용하기 좋은 UX인 듯 하여, iOS 앱으로 바로 구현했습니다. 메인화면 raywenderlich의 Custom Collection View Layout강좌를 토대로 구현했습니다. 기존 강좌에서는 UICollectionView를 vertical로 스크롤 하는 방식에 대해서 설명하였는데, 이를 horizontal로 변경하여 코드를 작성했습니다. 아래는 스크롤 에니메이션 관련 코드 입니다. class FlowerListFlowLayou..

반응형