ios

디자인 패턴

[디자인패턴] 싱글톤

싱글톤 패턴(Singleton pattern) 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 class NetworkService { static let shared = NetworkService() private init() {} } 스위프트에서는 static let으로 객체의 인스턴스를 할당해주면 끝. 그리고 인스턴스가 추가로 생성되는 것을 방지하기 위해 init()함수의 접근제어자를 private로 선언한다. 보통 데이터베이스나 네트워크등 서비스 모듈에 많이 사용합니다. 싱글톤 패턴의 장단점 장점 인스턴스를 최초 1회만 생성하므로 메모리와 성능 측면에서 효율이 좋다. 전역 인스턴스로 다른 모듈 및 클래스간 데이터 공유가 쉽고 접근이 쉽다. 단점 전역으로 어디서든 접근 하여 안티패턴으로 불릴수 ..

iOS

[iOS] 애플 로그인 사용해보기(Sign in with Apple)

Sign in with Apple은 iOS 13이상 부터 사용가능한 새로운 인증 방법입니다. 단계별로 Sign in with Apple 사용법에 대해 알아 보도록 하겠습니다. AppleIDButton 설정 먼저 AuthenticationServices를 import 해야 됩니다. ASAuthorizationAppleIDButton를 이용해서 type 및 style을 지정해줍니다. import UIKit import AuthenticationServices class ViewController: UIViewController { @IBOutlet weak var loginStackView: UIStackView! override func viewDidLoad() { super.viewDidLoad() se..

Swift

[Swift] Codable - Decoding 방법

이전 포스트는 Codable의 Encodable에 대해 알아 보았습니다. 이번 포스트는 Codable의 Decodable에 대해 알아보도록 하겠습니다. Decodable JSON 데이터를 디코딩 하는 방법에 대해 알아보도록 하겠습니다. Decodable을 이용하면 JSON을 쉽게 처리할 수 있습니다. # 디코딩 방법 decode 메서드는 두개의 파라미터가 필요합니다. 첫번째 파라미터는 디코딩할 타입을 정의한다. 반드시 Decodable이나 Codable 프로토콜을 채택해야됩니다. struct Person: Codable { var name: String var age: Int var birthDate: String var address: String? } 두번째 파라미터에는 json이 저장되어있는 dat..

Swift

[Swift] Codable - Encoding 방법

이번 포스트는 Codable의 Encodable에 대해 알아 보도록 하겠습니다. 먼저 애플의 문서를 확인해보면 💡 A type that can convert itself into and out of an external representation. 외부 표현으로 변환하거나 외부 표현으로 변환할 수 있는 유형이라고 하는데 쉽게 이야기하자면, 자신을 외부 표현으로 인코딩할 수 있고, 자신을 외부 표현으로 부터 디코딩할 수 있다는 이야기입니다. 주로 JSON을 이용할 때 사용되기 때문에 외부 표현을 JSON데이터로 생각하면 더 쉽게 이해가 될것 같습니다. public typealias Codable = Decodable & Encodable Codable은 Encodable과 Decodable로 이루어져 있습..

iOS

[iOS] Animation 방법(UIViewPropertyAnimator)

이번 포스트에선 UIViewPropertyAnimator에 대해 알아 보도록 하겠습니다. 지난 포스트에서 알아봤듯이 UIView.animate는 Deprecated될 가능성이 높습니다. 따라서 프로젝트 타켓이 10이상인 프로젝트에서 애니메이션을 적용할때 UIViewPropertyAnimator를 사용하는걸 권장합니다. 특징 iOS 10 부터 사용가능 UIIView.animate를 대체하는 API 애니메이션 상태(시작, 중지, 일시정지 등)를 제어할 수 있다. Interactive Animation Animation State https://developer.apple.com/documentation/uikit/uiviewanimating UIViewAnimating - UIKit | Apple Devel..

iOS

[iOS] Autolayout으로 제약조건을 걸었을때 Animation 방법

Autolayout을 이용한 animation 방법에 대해 알아 보도록 하겠습니다. 제약 조건이 걸렸을때의 애니미에션을 어떻게 처리하는지에 대해 간단히 알아보기위해 아래와 같은 스토리보드 화면의 X,Y가 Center잡혀 있고, 크기가 50으로 제약이 걸려있습니다. view의 사이즈가 증가하는 간단한 애니메이션으로 확인 해보겠습니다. iOS Animation 방법(UIView.animate) iOS Animation 방법(UIView.animateKeyframes) 기존에 위의 포스트 방식대로 frame의 애니메이션을 구현하는 방식대로 해보도록 하겠습니다. view의 사이즈를 200만큼 증가 @IBOutlet weak var objectView: UIView! @IBOutlet weak var widthC..

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형태의 타입을 나타냅니다! ..

jinnify
'ios' 태그의 글 목록