Developer 90

[Object-c]FactoryPattern - 팩토리 패턴

(소스 주소 : https://github.com/minjoongkim/iOS-Pattern) 팩토리 패턴이란?객체 생성을 처리하는 패턴입니다. 어떠한 경우에 사용하는가?예를들어 책이라는 클래스가 있고, 그 하위에 만화책, 소설책이라는 클래스가 있습니다. 만화책, 소설책은 책이라는 큰 범위안에 각자가 해야할 메소드들이 따로 있습니다. 어떠한 정보를 받아서 클래스로 생성할때, 매번 if문으로 만화책인지 소설책인지 판단해서 클래스를 만들게 되면 번거롭고 틀릴수도 있기 때문에 이 부분을 띄어서(나눠서) 팩토리 메소드를 만들게 됩니다.그렇게 되면 객체를 생성할때마다 팩토리 메소드에 객체생성을 하도록 지시하면 객체를 생성해서 반환하게 됩니다. 팩토리 패턴을 사용하게 되면?이렇게 되면, 객체생성의 버그를 줄일수 있..

Developer/Pattern 2016.04.19

[iOS9] AVPlayerViewController로 비디오 재생하기. Video player

간단하게 비디오만 재생시키는 샘플입니다. 1. .h 파일@property (strong, nonatomic) NSURL *videoURL;@property (strong, nonatomic) AVPlayerViewController *avVideoController; 2. Play Video-(void) playMovie{ self.avVideoController = [[AVPlayerViewController alloc] init]; AVPlayer *player = [AVPlayer playerWithURL:[self localMovieURL]]; self.avVideoController.player = player; [self.avVideoController.view setFrame:CGRectMa..

Developer/iOS 2016.04.07

[iOS9] Contacts.framework 연락처, 주소록 불러오기

Contacts.framework 는 iOS9 부터 기존 ABAddressBook.framework 를 대체합니다. 샘플프로젝트는 깃허브에 올려놓았습니다.https://github.com/minjoongkim/iOS9-Contacts.framework-AddressBook-Sample 1. 주소록 불러오기CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts]; if( status == CNAuthorizationStatusDenied || status == CNAuthorizationStatusRestricted) { NSLog(@"access denied"); } else { ..

Developer/iOS 2016.01.08

[ios]iOS8 UIAlertController Sample

sample : https://github.com/minjoongkim/UIAlertController-for-ios8 안녕하세요 iOS8에서 UIAlertView를 사용하면 경고창이 떠서 UIAlertController에 대한 간단한 샘플입니다.1,2,3번은 UIAlertControllerStyleAlert의 샘플이고, 4번은 UIAlertControllerStylerActionSheet입니다. 1,2번의 타입에 preferredStyle만 바꿔주시면 완성됩니다. 1. 기본 AlertView UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"simpleAlert" message:@"UIAlertContro..

Developer/iOS 2016.01.06

[iOS]iOS9 Contacts 이용해 연락처, 주소록 가져오기

1.Build Phases -> Link Binary With Libraries 에서Contacts.framework 추가하기. 2. 코드 작성-(void)loadContactList { CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts]; if( status == CNAuthorizationStatusDenied || status == CNAuthorizationStatusRestricted) { NSLog(@"access denied"); } else { //Create repository objects contacts CNContactStore *contactStore ..

Developer/iOS 2016.01.05

웹앱(하이브리드앱)의 앱스토어 통과(검수)하기 위한 기준

단순히 모바일웹만 보여주는 앱은 리젝대상입니다.꼭 앱으로 만들어야 하는 명확한 이유가 있어야 합니다. Apple의 리뷰 가이드라인이 있지만 하이브리드 앱, 웹앱에 대해서 명확한 규정은 있지 않기 때문에 Apple의 리뷰어가 누가 되는지에 따라서도 많이 달라집니다.하지만 사람들의 경험으로 웹앱이 통과하기 위해 몇가지 암묵적인 규칙이 있다고 합니다. 1. 푸쉬를 써야한다(푸쉬 뿐만아니라, 연락처, 위치정보 등 앱으로만 수행할 수 있는 기능이 꼭 들어가야 합니다.)2. 네트워크 연결이 되지 않은 상태에서 실행했을때도 뭔가가 있어야 한다 - 처음시작할때 인트로가 필요할테고, 네트워크 접속 오류 메세지 화면이 꼭 필요합니다.3. 웹으로는 회원가입이 불가능하게 해야한다. - 꼭 애플의 앱에서 회원가입이 가능하게 해..

Developer/iOS 2015.12.18

[iOS] iOS9 App Transport Security 설정법

iOS9으로 업데이트 되면서, HTTP로 접속을 하거나, 인증되지 않은 HTTPS즉, 정상적인 SSL이 아닌 곳으로 이동이나 webView를 띄우면 아래와 같은 에러가 나게 됩니다.NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) 자세한 내용은 아래에 링크에서 확인하면 됩니다. 아래는 WWDC 2015 발표되었던 ATS에 관해 잘 설명하고 있는 링크입니다. http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ App Transport Security에 대해 자세히 설명해보겠습니다. App Transport Security는? App..

Developer/iOS 2015.12.17

[iOS]앱 설정 띄우기

어플리케이션의 설정창을 코드로 띄우는 방법 카메라가 꼭 필요한 앱인데, 카메라 허용을 하지 않았을 경우, Alert창으로 "일반>설정에서 카메라를 허용해주세요" 보단,아래의 코드를 이용해 직접 설정창으로 이동하게 해주면 훨씬 편리하게 기능을 수락하도록 유도하기 편할것 같다. iOS8부터 사용이 가능하다. if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; [[UIApplication sharedApplication] openURL:url];} 이 코드를 실행하면, 이 앱의 설정으로 바로 이동한다

Developer/iOS 2015.12.17