[ios] camera frame rate, resolution

카메라 앱 만들 때 참고해야 하는 정보들.

Advertisements

[IOS] APNS 개발 설정 – (ios8)

* Apple Push Notification Service 가이드 (개념 이해)

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

* 인증서 설정 가이드 :

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html

* 앱 개발 가이드 :

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html

* stack_overflow : adHoc-build

http://stackoverflow.com/questions/3820525/adhoc-build-receives-no-push-notifications

* adHoc build for production push test

http://stackoverflow.com/questions/7208669/enabling-apple-push-notifications-for-ad-hoc-distribution-environment

* provider(3rd party message server : 직접 구현 하거나 이미 만들어진 플랫폼을 이용 (아마존 SNS)
https://github.com/notnoop/java-apns

ㅇ APNS Push size : 2 kbytes (ios8 layer), 256 bytes (Prior to ios8)
ㅇ 앱이 실행 되지 않을 때 : alert message, sound, badge 의 형태로 전달.
ㅇ 앱이 실행 중일  때 : NSDictionary 형태로 전달 된다.
ㅇ 전달되는 메시지 : JSON structured and consist of primitive type
ㅇ 메시지 포멧 작성 주의 : customer information(민감한 데이터 포함해서는 안된다)
ㅇ notification 전달 : 항상 전달이 보장 되는 것이 아니다.

Push Server response packet

Code Error : https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

Table 5-1  Codes in error-response packet
Status code Description
0 No errors encountered
1 Processing error
2 Missing device token
3 Missing topic
4 Missing payload
5 Invalid token size
6 Invalid topic size
7 Invalid payload size
8 Invalid token
10 Shutdown

closed the connection

255 None (unknown)

* UX 고려

Apple 문서에 보면 notiifcation 남용은 사용자를 귀찮게 만든다고 되어 있다.
과도한 push는 사용자에게 가치를 주는 행위가 아니다.
꼭 필요한 정보, 그리고 빈도수가 높으면 요약해서 전송하는 push 서버를 구현 해야 한다.

Push Notification은 반드시 필요한 정보만을 제공해야 한다.

* APNS Tester (app store – for os-x)

스크린샷 2015-07-23 오전 12.27.50

[IOS] CIImage, CGImage, UIImage 차이점

아이폰 이미지 클래스 종류

UIImage : UIKit framework

이 객체는 이미지 데이터를 보여주기 위한 high-level 수단을 제공한다.
파일이나 Quartz 이미지 객체나 raw image 데이터로부터 이미지들을 생성할 수 있다.
UIImage 클래스는 또한 이미지 객체를current graphics context에 그리기 위한 여러가지 옵션을 제공한다. 옵션으로는 blend model나 opacity value를 조정할 수 있다.

UIImage 클래스를 사용하여 읽어들일 수 있는 이미지 포멧이다.
스크린샷 2014-10-16 오후 6.33.18

CIImage : Core Image framework
CIImage 클래스는 이미지를 나타낸다. Core Image 들은 전부 immutable이다.
CIImage 객체는 다른 Core Image 클래스들에 사용되는데 CIFilter, CIContext, CIVector, CIColor가 있다. 이것을 사용하면서 유리한 점은 이미지를 필터링 하는데 이점을 가진다.
그러나 CIImage는 이미지를 렌더링 하지 않고 이미지를 만드는 “recepi”만 보관한다(이미지를 만들기 위한 재료라고 이해 했다) , lazy evaluation method는 Core Image가 가능한 효과적으로 동작할 수 있도록 한다.

CIContext와 CIImage 객체는 immutable이며 Thread Safe하다. 즉 여러 thread 는 GPU 또는 CPU CIContext 를 이용하여 CIImage 객체를 렌더링 한다.

그러나 CIFilter 객체는 mutable 객체며 필터는 다른 스레드 들과 공유 될 수 없다.

좀 더 자세한 것은 Core Image Programming Guide를 참고한다.

CGImage : Core Graphics framework

The CGImageRef opaque type represents bitmap images and bitmap image masks, based on sample data that you supply. A bitmap (or sampled) image is a rectangular array of pixels, with each pixel representing a single sample or data point in a source image.보다 자세한 사항은 “Quartz 2D Programming Guide”를 참고한다.

[IOS] 코딩 가이드 & 시작 지점

무턱대고 아이폰을 개발한지 3주가 되었다.

1. 처음으로 되돌아 갔을 때 도움이 되는 문서 (어디서 부터 시작해야 할까 난감할 때)

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/WhereToGoFromHere.html#//apple_ref/doc/uid/TP40011343-CH12-SW1

2. 이건 개발하면서 뭔가 기준이 없어서 해매고 있을 때 코딩 가이드라인을 제시한 문서.

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html

정말 IOS 개발은 웹 개발보다 공부할게 많은 것 같다. ㅜ_ㅜ

web develop 4year VS IOS 3 weeks

[IOS] 아이폰 폰별 분기처리

아이폰을 이제 처음 입문한 새내기 입장에서 무엇이 좋고 무엇이 나쁜지는 아직 모른다.

많은 삽질 끝에 깨달음을 얻고 보다 효과적인 방법을 몸에 익히는 방법이 최선인것 같다.

답을 찾아가는 과정이 고통스럽다.

얼마전에 Storyboard, XIB, Code를 가지고 프로그래밍을 하는 것의 장단점에 대해 블로깅을 해보았는데 결론은 다음과 같다.

ㅇ storyboard : 복잡한 view controller 전환을 파악하는데 효과적이다.’
ㅇ XIB : View Template를 관리하는데 효과적이다.
ㅇ Code : View를 만드는 것을 코드로 관리하기 때문에 한눈에 파악하기 어렵다. (즉 해석하는데, 오래 걸린다)
대신 SVN 충돌이 났을 경우 StoryBoard나 XIB 파일보다는 복구하기 용이하다.
코드로 만들었기 때문에 상속에 유리하다.
자유도는 높지만 그만큼 시간과 노력이 필요하다.

그럼 기계 타입별로 관리하기 위해서는 코드가 최선일까?
아직까지 아이폰 디바이스 단편화가 안드로이드만큼 많은 것은 아니다…그래서 이런 여유있는 답변이 나오는 것이 아닐까?
-> http://stackoverflow.com/questions/12696242/how-to-switch-to-different-storyboard-for-iphone-5

내용을 요약하면 iphone4, iphone5 즉 버전별로 스토리보드를 따로 만들면 된다. 가 요지인데….
장점은 각 디바이스별 디자인이 따로 따로 나온 경우 스토리보드를 이용하여 손쉽게 UI를 개발할 수 있다는 것이다.
그리고 각 디바이스별로 스토리보드를 분기처리하여 로드하면 View 정보를 분리 할 수 있다.

로직은 코드로 관리
view 메타 정보는 스토리보드로 관리….

아직까지 반박할 수 없고 훌륭한 답변이다.

난 아직도 초보다…ㅜ_ㅜ

[IOS] 스토리보드 영문을 알기 어려운 오류 발생 시 대처 방법

정말로 view controller id를 storyboard에 지정 했는데도 불구하고 오류가 발행 하였다.

원인은 잘 모르겠으나 해결 방법은 ? ㅋㅋ

폰이나 시뮬레이터에서 빌드한 앱을 삭제하고 다시 돌리면

마법처럼 잘 돌아간다 ㅋㅋ

storyboard를 사용하게 되면 케이스별로 발생 할 수 있는 문제점에 대해 정리 해본다.

1. 다른 uiView 복사 할 때 발생 가능
IBOutlet과 연결 해줘야 할 필드가 존재하지 않는다. 라는 오류인데
다른 스토리보드에 ViewController와 바인딩 된 디자인 정보를 카피 했기 때문이다.
새로 지정한 ViewController 는 이전 컨트롤러와 달리 바인딩된 outlet, action 정보가 없기 때문에
우측 메뉴의 connection insepctor를 이용하여 outlet, action을 일단 청소하고 난 뒤에 작업을 시작한다.

2. view controller id를 찾을 수 없다고?
분명 storyboard에 있는 view controller의 속성에서 storyboard id를 지정 해주었는데 이런 문제가 발생한 경우는 빌드한 앱을 삭제한다.(시뮬레이터, 테스트 디바이스)
앱 삭제 후 다시 돌리면 마법과 같이 잘 돌아간다. ㅋ
앱을 삭제 후 다시 배포 하지 않는것 같다.

* 참고 링크
http://stackoverflow.com/questions/11653861/storyboard-doesnt-contain-a-view-controller-with-identifier
http://stackoverflow.com/questions/8295471/storyboard-doesnt-contain-a-view-controller-with-identifier