iOS
-
iOS) Core Data (3) - CRUDiOS 2021. 1. 27. 14:21
전에 생성 했던 Entity Class를 이용하여 데이터를 생성하고 읽고 업데이트하고 삭제 하는 기능을 구현 해보자. Core Data Model에서 Codegen를 Manual/None으로 바꿔준 후 Xcode의 NSManagedObject Class를 생성 하는 기능으로 Entity Class를 생성 해주었다. DataManager를 extension 하여 CRUD 기능을 만들어 보자. 또 Entity Class가 아닌 Xcode에서 자동으로 생성 해주었던 Entity와 어떻게 다른지 비교해 보자. CREATE extension DataManager { func createPerson(name: String, age: Int?) { mainContext.perform { let newPerson = ..
-
iOS) Core Data (2) - Managed Object와 Managed Object ContextiOS 2021. 1. 26. 20:17
summary - NSManagedObject - NSManagedObjectContext - Data Model 구성 - Entity 클래스 생성 Managed Object Core Data는 모든 데이터를 Entity 단위로 처리한다. 여기서 Entity는 모델 관점의 용어이다. context에서 처리하는 실제 데이터는 Managed Object이다. 여기서 Managed가 붙는 이유는 라이프 사이클을 core data가 관리 하기 때문이다. Managed Object는 NSManagedObject 클래스로 구현 되어있다. 우리가 모델 파일에서 볼 수 있고 생성 할 수 있는 Entity는 swift에서 NSManagedObject와 1대1로 연결된다. 이 클래스는 관리 객체에 필요한 모든 기능이 구현..
-
iOS) Core Data (1) - over viewiOS 2021. 1. 25. 19:12
코어 데이터는 데이터를 영구적으로 저장할 때 사용하는 기술이다. '영구적'의 의미는 앱을 종료 하더라도 유지되는 데이터이다. Object Graph Management Tool core data는 4가지의 객체로 구성되어 있다. - Persistent Store: NSPersistentStore 이름 그대로 영구 저장소이다. 메모리에 저장되어 앱이 종료 될 시 없어지는 데이터와 달리 앱이 종료 되거나 전원이 차단되어도 계속 유지된다. 기본적으로 4가지 영구 저장소를 제공하고 custom 저장소를 구현하는 것도 가능하다. 영구저장소는 데이터를 메모리에 로딩하는 방식에 따라서 Atomic store과 non-atomic store로 나뉜다. 아토믹은 데이터를 처리할 때 모든 데이터를 메모리에 로드해야 한다...
-
iOS) Custom Present 이용시 ViewContoller Life Cycle 문제iOS 2021. 1. 6. 15:46
기존 modalPresentaionStyle을 통해 presentation 방식을 지정했던 것과 다르게 UIPresentaionController를 사용하여 custom presentatin을 진행하는 경우 따로 설정을 해주지 않는 한 ViewController가 메모리에서 제거되지 않는 것으로 보인다. 아니 메모리에서 제거 되는 것이 아닌 viewDidDisappear메서드가 불리지 않는다. 이는 transition과정에서 매우 문제가 되며 present transition에선 영향이 없지만 dismiss transition에선 transitionContext.viewController(keyType:) 메소드를 통해 containerView에 추가하고 호출할 때, 메모리에서 사라지지 않았던 VC의 v..
-
iOS) Appstore Transition 따라하기(2) - Present TransitioniOS 2021. 1. 5. 13:49
AppStore Transition 따라하기의 정수와 묘미인 transition 구성이다. 우리가 만들 Transition은 총 4개이다. - Presentation - Present Transition - Dismiss Transition - interactive Transitioning 분기를 위하여 Transition을 총괄 해주는 역할을 할 UIVIewControllerTransitioningDelegate를 채택한 AppContentTransitionController를 만들어 주자. import Foundation class AppContentTransitionController: NSObject, UIViewControllerTransitioningDelegate { var superView..
-
iOS) Appstore Transition 따라하기(1) - 기본 구성iOS 2020. 12. 2. 07:50
우리가 알게 모르게 익숙해져 있는 Appstore의 Transition을 구현 해보고자 한다. 생각 보다 복잡해 보인다... 애니메이션은 나중에 생각하고 화면의 구성부터 생각해보자. View와 ViewController 아래 tab bar와 기본적으로 메인 viewController, cell을 터치시 생성 되는 Viewcontroller. collectionView와 collectionView cell로 구성하자. TabBarController - main viewController - tableView - contentView ㄴ DummyVC 시작 VC는 tab bar controller이다. menu화면인 menuVC와 tabbar의 구색을 갖추기 위한 더미 VC를 하나 만들어준 뒤 tabbarV..
-
iOS) Singleton View와 viewController (feat. programmers iOS 실력체크)iOS 2020. 10. 24. 17:53
View와 View Controller view는 viewController에 귀속되어 모든 기능의 시작과 끝을 VC에서 관리한다. 보통 view의 객체는 viewController 안에서 생성되고 VC의 rootView에 addSubView()를 통해 view 계층에 추가 된다. viewController가 화면에서 사라진다 하더라도 메모리에는 viewController가 남아있고 따라서 VC의 view 계층에 있는 subView들도 살아 있다. VC의 viewDidLoad()에서 구성 했던 view들은 다른 VC로 넘어 갔다 온 이후에도 여전히 VC의 rootView에 남아있다. 이 말은 각 view들에 붙어있는 function이나 gestureRecognizer, Notification등은 계속 기..
-
iOS) Network -ATSiOS 2020. 9. 24. 22:56
App Transport Security iOS 어플리케이션을 만들다 보면 http 통신을 하게 될 때가 있다. 이때마다 App Transport Security policy 어쩌고 하면서 컴파일 에러가 나는데, 구글링 해보면 info.plist에 가서 App Transport Security Setting을 바꿔주고 어쩌고 하라고 한다. 항상 따라만 했지 정확하게 왜 안되는지 어떻게 안되는지 몰랐기 때문에 이번 기회에 정리 해보려고 한다. 앱 심사에 중요한 역할을 한다. ATS는 iOS의 보안기능이다. TLS, AES, SHA-2를 사용한다. HTTP 통신은 데이터를 일반 텍스트로 전달하고, HTTPS는 데이터를 암호화하여 전달한다. 따라서 ATS는 기본적으로 HTTP를 허용하지 않는다. info.pl..