분류 전체보기

iOS

[iOS] Animation 방법(UIView.animateKeyframes)

Keyframe Animation 이번 포스트는 애니메이션의 연속적인 처리에 유용한 keyframe에 대해 알아 보도록 하겠습니다. 지난 포스트는 UIView.animate를 이용해서 애니메이션을 구현하는 방법에 대해 알아보았습니다. 간단한 애니메이션같은 경우에는 충분히 커버가 가능하지만, 순차적으로 애니메이션들이 진행된다고했을때, 아래와 같이 completion 클로저를 이용해서 애니메이션을 구현해야됩니다.(콜백지옥...) UIView.animate(withDuration: 1, animations: { animate1() }, completion: { finished in UIView.animate(withDuration: 1, animations: { animate2() }, completion: ..

iOS

[iOS] Animation 방법(UIView.animate)

iOS에서 자주 사용하는 애니메이션은 크게 2가지가 존재합니다. UIKit을 이용한 UIView의 API Core Animation을 이용한 API 이번 포스트에선 1번 UIView의 API에 대한 기본 사용법, Spring애니메이션, 여러가지 애니메이션 옵션들에 대해 알아 보도록 하겠습니다. iOS 2부터 절차적으로 사용되던 애니메이션(beginAnimations, commitAnimations)은 iOS13에서 deprecated되었고, iOS 4부터는 Closure형태인 animate메서드를 주로 이용해왔습니다. 하지만! 여전히 많이~ 사용되고 있지만 이 메서드도 언젠간 deprecated될 것 같습니다. 💡 Use of these methods is discouraged. Use the UIVie..

iOS

[iOS] 개발자 계정 및 인증서 가이드

이전 포스트에 코드사이닝이 무엇인지, 인증서는 무엇이며 어떻게 생성하는지 처음부터 단계적으로 설명을 적어놓은 적이 있습니다. 이번 포스트는 iOS개발에 필요한 개발자 계정 및 인증서 가이드에 대해 알아 보도록 하겠습니다. 계정 종류 및 등록 방법 계정은 배포하려는 목적에 따라 개발자, 엔터프라이즈 계정으로 분류가 됩니다. 개발자 계정 앱스토어에 앱을 등록하고 싶은 경우 개발자 계정을 등록해야 됩니다. 연간 비용 : $99 등록 방법 참고(https://developer.apple.com/kr/programs/) 엔터프라이즈 계정 앱스토어가 아닌 기업에서 직원들에게 배포할 수 있는 iOS응용 프로그램을 개발해 직접 배포하려면 엔터프라이즈 계정을 등록해야됩니다. 연간 비용 : $299 등록 방법 참고(htt..

iOS

[iOS] iOS13 Modal Style 및 Life Cycle

iOS13에도 많은 변화가 있었죠? 지난 포스트에는 변경 사항에 대한 이슈들을 정리해보았으니 미처 못보신 분들은 보시고 추가해야될 사항있으면 댓글 환영합니다. :) 많은 변화 가운에 이번 포스트에는 Modal의 라이프 사이클에 대해 적어보려고합니다. 💡Modal Presentation Style iOS13부터 Modal presentation Style의 디폴트 값이 full screen이 아닌 'automaic'으로 변경되었습니다. XCode11업데이트 후 13.0으로 빌드 해보니 모달 형식이 아래와 같이 'page sheet'형태로 나타나는걸 볼 수 있으셨을 겁니다. 그렇다면 automatic은 무엇일까요? 세로화면에선 page sheet, 가로화면에선 full screen형태의 타입을 나타냅니다! ..

iOS

[iOS] 13 이슈 대응 및 변경 사항 공유

안녕하세요. iOS13 대응을 진행하면서 몇 가지 변경사항 및 급한 불을 끌 수 있는 이슈 방안에 대해서 적어보려고 합니다. 💡KVC 금지 *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Access to UISearchBar's _searchField ivar is prohibited. This is an application bug' *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Access to UITextField's _placeholderLabel ivar is prohibited. This is an applicat..

RxSwift

[RxSwift] filter vs skip operator

Rx의 감을 되찾기 위해 Operator들을 정리하려고 합니다. 먼저 이번엔 특정 조건이 맞으면 이벤트를 발생시키는 메서드들에 대해 알아보도록 하겠습니다. filter 조건이 맞는(참) 이벤트만 발생한다. 짝수만 이벤트를 발생하는 예제 let disposeBag = DisposeBag() let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Observable.from(numbers) .filter { $0.isMultiple(of: 2) } .subscribe { print($0) } .disposed(by: disposeBag) /* 출력 next(2) next(4) next(6) next(8) next(10) completed */ skip 정수를 파라미터로 받고, 지정..

iOS

[iOS] Library를 CocoaPods에 배포하는 방법

얼마전에 Coordinator Pattern을 적용한 Dependency Injection(DI) 라이브러리(FlowInjection)를 만들었는데, CocoaPods에 배포하는 과정을 자주 안하면 까먹게 되더라구요. 그래서 이번엔 만든 Library를 CocoaPods에 배포하는 방법에 대해 정리해보도록 하겠습니다: ] 먼저 Github과 CocoaPods를 사용한 경험이 있는 분들을 대상으로 진행해보도록 하겠습니다. 1. 먼저 GitHub에 들어가서 새로운 Repository를 만들어줍니다. 저는 FlowInject를 만들었습니다. 이때 왠만하면 README라던가 License같은걸 건들지 않고 생성하는것이 좋습니다. 2. 주소를 복사해서 clone을 해줍니다! * 현재 경로 : ~/Documents..

Swift

[Swift] 2. 예제로 알아보는 함수의 합성(Composition)

합성(Composition)에 관해 알아보도록 하겠습니다. 이전 글 순수함수(Pure Function), Functional Programming in Swift [Swift] 1. 순수함수, Pure Function (Functional Programming in Swift) 순수 함수(Pure Function)에 관해 알아보도록 하겠습니다. 함수형 프로그래밍 Funtional Programming은 함수를 중심으로 Side-Effect가 없도록 프로그래밍을 하는 것을 말합니다. 여기서 말하는 함수는 순수함수를.. jinnify.tistory.com 함수의 합성이란 함수의 반환값이 다른 함수의 파라미터로 사용되는 것을 말합니다. 생각해보면 Composition이 되기 위해서는 함수의 반환값이 받아들이는..

iOS

[iOS] Image Rendering Mode

이미지 렌더링 모드에 대해 알아 보도록 하겠습니다. UIImage의 RenderingMode에는 아래와 같이 3가지의 옵션이 있습니다. extension UIImage { @available(iOS 7.0, *) public enum RenderingMode : Int { case automatic // Use the default rendering mode for the context where the image is used case alwaysOriginal // Always draw the original image, without treating it as a template case alwaysTemplate // Always draw the image as a template image, i..

iOS

[iOS] Build Configuration 설정 방법

Build Configuration은 코드 수정없이 각 서버 및 조건 별로 배포가능하도록 환경설정 방법입니다. 천천히 순서대로 진행해보도록 하겠습니다. 먼저 프로젝트를 생성 합니다. 아래 튜토리얼 프로젝트 이름은 ConfigurationPractice라고 생성했습니다. 1. Configuration 생성 Project -> Info + 선택 후 원하는 항목 duplicate Beta라는 이름으로 생성 2. Scheme 추가 추가 후 Manage Schemes를 선택하면 아래와 같은 화면이 나타나고, 현재 프로젝트명만 보입니다. 왼쪽 하단에 있는 + 을 선택하고 이름을 넣어줍니다. 저는 ConfigurationPractice-Beta라는 이름으로 생성했습니다. ConfigurationPractice-Bet..

jinnify
'분류 전체보기' 카테고리의 글 목록 (3 Page)