본문 바로가기

Programming/iOS

(92)
Swift - iPad 멀티태스킹 설정 (Split View/Slide Over) 아이패드 앱 개발 시 이를 활성화 해줘야 내 앱이 멀티태스킹 기능을 동작할 수 있습니다. 애플에서 소개하는 아이패드 멀티태스킹 설명입니다. https://support.apple.com/ko-kr/HT207582 iPad에서 멀티태스킹 사용하기 iPadOS에서는 멀티태스킹을 사용하여 동시에 두 개의 앱으로 작업하고, 비디오를 시청하면서 이메일에 답장하고, 제스처를 사용하여 앱을 전환하는 등 다양한 작업을 수행할 수 있습니다. support.apple.com 앱에서 설정 방법 Info.plist에서 UIRequiresFullScreen 기능을 꺼주시면 됩니다. UIRequiresFullScreen 설정 한 뒤 앱을 실행하면 이렇게 SplitView 기능이 활성화 됩니다. https://developer.a..
Objective-C에서 Swift파일을 Import하는 방법 Objective-C에서 Swift파일을 Import하는 방법에 대한 설명입니다. developer.apple.com/documentation/swift/imported_c_and_objective-c_apis/importing_swift_into_objective-c Apple Developer Documentation developer.apple.com
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)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 쉽게 예를 들어 설명하도록 해보겠습니다. 요즘 미세먼지가 심하잖아요? 저도 미세먼지에 민감한 사람중 한명인데요. 그래서 얼만큼 미세먼지 농도가 나오는지 미세먼지를 측정하고 기록하는 모델을 하나 만들었습니다. 이 소식을 듣고 저처럼 미세먼지에 민감한 분..

반응형