feed-dialog-iphone-1

Dialog Feed : Facebook SDK 2.0 for iOS

이번에 Facebook SDK 2.0 for iOS 가 나오면서 Dialog Feeding방법이 변경되었네요.

OpenGraph등이 적용되고, Session, Token처리가 좀 달라진것 같습니다.

“photos.upload”가 안되서 한참 쳐다봤네요.. ㅠㅠ


Mobile dialog

On an iPhone, the following code makes an equivalent dialog:

The above code generates the following dialog:

altitude

[AIP-dev] 현재 위치의 해발고도 알아내기


* 초기 iPhone과 iPod Touch에서 볼수있는 WiFi기반의 위치정보서비스는 이 기능을 지원하지 않습니다.
GPS칩을 가진 디바이스만 제공가능하며, GPS fix를 지원해야 합니다.

// MainView.h

//MainView.m

변수 newLocation에는 고도(해발고도) 정보가 들어있지만, 같은 장소에 대한 위도와 경도정보도 얻을수 있습니다.

screen-capture-2

iOS SDK Release Notes for iOS 4.3 beta 1

important: This is a preliminary document for an API or technology in development. Although this document has been reviewed for technical accuracy, it is not final. Apple is supplying this information to help you plan for the adoption of the technologies and programming interfaces described herein. This information is subject to change, and software implemented according to this document should be tested with final operating system software and final documentation. Newer versions of this document may be provided with future seeds of the API or technology.

Introduction

iOS SDK 4.3 provides support for developing iOS applications and includes the complete set of Xcode tools, compilers, and frameworks for creating applications for iOS and Mac OS X. These tools include the Xcode IDE and the Instruments analysis tool among many others.

With this software you can develop applications that run on iPhone, iPad, or iPod touch running iOS 4.3. You can also test your applications using the included iOS Simulator, which supports iOS 4.3. Installing iOS SDK 4.3 requires a Macintosh computer running Mac OS X 10.6.4 (Snow Leopard) or later.

For more information and additional support resources, visit:

http://developer.apple.com/programs/ios/

Bug Reporting

Please report any bugs not mentioned in the “Notes and Known Issues” section using the Apple Bug Reporter on the Apple Developer website at: http://developer.apple.com/bugreporter/. Additionally, you may discuss these issues and iOS SDK 4.3 in the Apple Developer Forums: http://devforums.apple.com.

Notes and Known Issues

The following issues relate to using the 4.3 SDK to develop code.

AppleTV

  • AirPlay Video requires the AppleTV Software Beta.
  • AirPlay Video support is now available as an option for developers in the MPMoviePlayerController class. It is also available to web authors via the QuickTime Plug-In or media element. Supported formats include:
    • H.264 video with AAC audio
    • HTTP streaming, both live and on demand
    • progressive download content
    • local content
  • For web-based content, AirPlay Video can be enabled in the QuickTime Plug-in or media element as described below:
    • QTPlug-in attribute:
      • airplay=”allow”
      • airplay=”deny” (Default)
    • For example: <embed src=”movie.mov” width=320 height=240 airplay=”allow”>
    • Media element:
      • x-webkit-airplay=allow
      • x-webkit-airplay=deny (Default)
    • For example: <video controls width=640 height=368 x-webkit-airplay=allow src=content/side_with_the_seeds.mov> </video>

Core Audio

  • NEW: When using the AudioQueueRef type or AVAudioRecorder class to record at a sample rate that is different from the hardware sample rate, the resulting recording is corrupt.

GameKit

  • FIXED: GameKit now reports an error when an achievement or leaderboard score is not actually submitted.

Xcode

  • NEW: Application symbols are not being symbolicated correctly in the Xcode organizer’s device logs.
The-VGA-Adapter-for-iPad

[AIP-Dev] VGA-Adapter를 이용하여 화면출력하기

공식적으로 VGA-Adapter를 지원하는 어플들이 몇가지 있습니다.

1. 기본으로 설치되어있는 Video App
2. 사진 (슬라이드쇼 지원)
3. YouTube
4. Keynote같은 Apple에서 나온 Office App
5. Safari (일부 컨텐츠 지원)
6. 그외 몇몇 지원하는 Apps

6번항목에 해당하는 Apps들을 보면서, 어떻게 하면 이 기능을 활성화시킬수 있을까를 구글링하다보니, 관련 포스팅을 발견하여, 저도 공유하려고 합니다.

기본적으로 아이패드 화면을 Mirroring하는 기능이고, 해상도는 1024 * 768 입니다.

http://code.google.com/p/iphoneos-screen-mirroring/
http://stackoverflow.com/questions/2662201/ipad-vga-connector-mirror-screen-in-own-application

가장 중요한 핵심코드는 아래와 같습니다.

이 코드를 삽입하지않으면, Adapter를 연결해도 아무런 반응이 없습니다.

Application을 시연하는 경우에 반드시 필요한 기능인것 같네요.

참고ref : http://alones.kr/1809

3

[AIP-Dev] 현재 네트워크상태 확인하기 (WIFI vs 3G)

어플을 만드는 중에, 현재 네트워크상태가 어떤지 혹은 3G에서 WiFi망으로 전환되었는지 여부를 확인해야할

경우가 있을것입니다. 특히 동영상같은 컨텐츠를 제공할 경우, WiFi망에서만 구동되도록 만들수 있을 것입니다.
이를 확인할때 필요한 함수들입니다. sockaddr_in이라는 빈 소켓구조체를 생성하여 확인하는 방법입니다.

필요할 때마다 [self isNetworkReachable] 의 결과값(YES/NO)을 가지고 현재 상태를 확인하면 되겠죠?

질문이 있으신 분들은 댓글을 달아주세요~ ^^

4

아이폰 개발시 Mac/PC의 색상과 iPhone의 색상차이의 이유와 해결방법

필자는 최근 아이폰 어플을 개발하면서, 모니터상의 색상과는 너무나 다른 iPhone액정화면에서의 색상에 경악을 금치못했습니다.
아이폰과 작업PC의 색상차가 생기는 이유와 그 해결책에 대해서 알아보도록 하겠습니다.

Color Management to Match Colors Across Multiple Devices

인쇄가 주를 이루던 시기에는 색상관리(Calibrating)은 스캐너 혹은 디지털카메라에서 컴퓨터의 디스플레이장치로의 변환과정에서 하드교정에 대한 키값을 포함했습니다. 이들중 가장 힘든 것은 RGB장치(광학디스플레이) CMYK장치(잉크등을 사용하는 출력물)의 서로 다른 색상계를 가지는 것을 맞추는 것일 것입니다.

TV매체를 위해 디자인을 하거나 편집을 할때는, 편집용 디스플레이과 송출용 디스플레이가 공용입니다. 이러한 경우에는 Real-time Proof로 시청자의 TV와 색상을 맞출수 있도록 제공합니다.

, 어플리케이션 인터페이스를 제작할때는 그러한 상황이 조금 다릅니다.

최종 결과물은 윈도우(MS Windows), Mac OSX (10.6+), iPhone…등의 Gamma값이 서로 다른 디스플레이에서 작업된 작업물입니다. 웹/어플리캐이션 인터페이스를 개발할 때, 정말 수많은 소스들을 사용하게 됩니다. 일반적으로 PNG, JPG, GIF 이미지들, CSS (Style Markup), 그리고 코드들(Javascript, HTML, Objective-C, ActionScript, etc) 등의 다양한 소스들을 사용하여 보여지게될 최종작업물을 같은 종류의 Device에서 보여지게 되는 것이죠.
이 과정에서 모든 일치하는 녀석들을 얻지 못할 확률이 높습니다.

우리는 웹사이트를 디자인 하거나 UI디자인을 할 때, 포토샵상에서 보이는 자신의 화면이 동일하게 모든 Device에서 재현되기를 바랍니다. 모든 Device라는 말은 동일 플랫폼 내의 다른 브라우저(IE, Safari, Firefox…)일 수도 있고, 전혀 다른 PC(IBM, MAC)와 모바일(iPhone, WM, Android) 기기간의 차이를 가질 수도 있습니다.

하지만 우리가 저장한 실제값들은 포토샵에서 정의한 색상과 정확히 일치하지 않습니다. 어떤 식으로든 색상은 변환되어 표현되거나, 이미 대체되어있거나 입니다.

사용자 삽입 이미지

뭐가 이렇게 어렵나요?

포토샵은 기본적으로 보여지고 있는 디스플레이
혹은 해당파일이 저장된작업환경에 대한 Color Management를 지원합니다.

이러한 기능은 웹 혹은 화면상에 보여질
유저인터페이스를 작업중이라면 정말 필요없는 기능입니다. 포토샵의 기본설정값으로는 #FF0000이 실제로 #FB0018로 보이도록, BB95FF #BA98FD로 보이도록 되어있습니다. 바로 이점에서 미묘하지만 확실한 차이가 발생합니다.


윈도우와 OSX의 포토샵이 어떻게 다른가요?

사용자 삽입 이미지

OSX의 색상관리는 비디오램의 메인버퍼후 프로세싱체인이 결과를 전체화면에 보이도록 지원합니다. 쉽게 말해서, 소프트웨어가 화면상의 색상을 측정하여 같은 값으로 저장하도록 하는 것이 가능합니다. 윈도우비스타나 윈도우7에 도입된 Windows Color System(색상관리시스템)도 이와 비슷할 것으로 추정됩니다

포토샵의 Color Management는 윈도우의 이미지 부분만을 저장하고 그것을 파일에 적용합니다. 포토샵으로 화면에 이미지를 그림으로써 색상보정이 생기는데, 소프트웨어 유틸리티가 측정한 화면의 색상이 때때로 다른 색상으로 인식될수 있습니다. 이는 OSX의 색상관리가 포토샵의Color Management를 지원하는 것이 아무런 가치가 없다는 뜻입니다.

제가 찾은 최선책은 포토샵의 Color Management (RGB Document와 관련된)을 최대한 Disable 시키는 것입니다. 이렇게 하면 화면에 있는 파일과 실제색상에 저장된 값과 일치하여 RGB색상으로 맞추려고 애씁니다. 혹시 디자인작업을 위해 모니터를 보정하려면 OS레벨에서의 Calibration을 선행해야 할 것입니다.

포토샵cs2이전 버전에서의 색상관리는 간단하였으나, 지금은 좀더 세부설정이 필요합니다.

Disabling Photoshop’s RGB Color Management

아래의 설명은 Photoshop CS4 on Mac and Windows입니다. CS3설정과 매우 비슷합니다.

1 단계 : 이동 편집색상 설정 RGB위한 작업 공간 설정 모니터 RGB.

사용자 삽입 이미지

2 단계 : Open a document > Edit
Assign Profile 그 다음에 Working RGB. 이렇게 하면 작업할 때 마다 이 과정을 거쳐야 합니다..

사용자 삽입 이미지

3 단계 : View 확인Proof Colors 해제됩니다.

4 단계 : Save for Web & Devices 으로 저장할 때, Convert to sRGB은 끄셔야합니다. JPEG파일을 저장하는 경우, Embed Color Profile을 끌수 있습니다.

Assign Profile Convert To Profile의 차이점은?

“Assign Profile”, “Convert to Profile” 이 두가지의 차이점에 대해서 조금 알아볼 필요가 있겠군요. 포토샵문서에는 각각의 픽셀의 실제색상 데이터를 저장한 별도의 Color Profile를 포함합니다. Assign Profile은 단순히 어떤 색상데이터에 영향을 주지 않고 작업파일의 프로필을 변경합니다. 이것은 문서에 영향을 주지 않고, 자주 새로운 Color Profile을 지정할 수 있습니다. 새로운 프로필을 할당하지만, 데이터를 변형하지 않고, 화면에 표시되는 방법을 변경할 수 있습니다.

Convert to Profile은 많이 다릅니다. Color Profile을 문서에 할당할 뿐만 아니라, 화면에서 항상 같아 보이게 하기 위해 계속 시도합니다. 이는 각각의 픽셀에 대한 파일에 포함된 색상데이터를 처리합니다. 새로운 profile을 변환하는 것은 화면상에 보존된 작업물의 색상을 영구적으로 변형함을 뜻합니다. 이는 매우 주의해서 사용해야 합니다.

만약에 포토샵에서 작업문서를 하나의 레이어로 카피해서, 그것이 동일한 Color Profile이 할당되었는지 반드시 확인해야합니다.


Gamma Differences

윈도우는 2.2 Gamma를 사용해왔습니다. OSX 1.8감마를 사용해왔습니다(Snow Leopard제외, 2.2감마). 이것은 무슨 뜻일까요? SnowLeopard이전에는 웹페이지를 윈도우보다 어둡게 보았습니다. 고맙게도 이제는 두 운영체제의 동기화로 인해, 같은 모니터에서 비슷하게 웹페이지를 볼수 있게 되었습니다.

아이폰의 감마에 대한 정보는 쉽게 접하기 힘듭니다. 아마도 1.8 아니면 2.2 일것입니다. 이것이 여러분의 작업물들을 아이폰상에서 테스트하는 이유일것입니다.

iPhone UI를 위한 마지막 확인

여러분의 iPhone 혹은 iPod의 화면과 색상은 Mac이나 PC에서와는 다를수도 있습니다. 저는 수시로 Mac이나 Window에서 만들어진 작업이미지들을 아이폰과 동기화 시켜서 확인하곤 합니다.

사용자 삽입 이미지
는 아이폰App의 인터페이스를 테스트하는 중 생기는 문제해결점에 대해 다루고 있습니다. 아이폰 상에서는 포토샵에서보다 더욱 Blur가 많이 먹어 보입니다.

참고사항 : 어떤 이상한 이유로 인해, 아이폰 내의 사진프로그램에서 1:1비율의 가로이미지가 보이지 않는 문제가 있습니다. 대신 약간 하위픽셀로 이동하거나 약간의 sub-pixel을 잘라내면 괜찮습니다. 이러한 문제를 피하기 위해서는 항상 portrait(세로형)으로 저장해서 테스트하시길 바랍니다. ( 세히보기)

Mac에서는 포토샵과 Code사이에 색상을 이동하는 것이 보다 쉽습니다. Developer Picker, Hex Color Picker, Colors (무료프로그램들)

결론

포토샵에서 어떠한 색상의 비트맵,벡터이미지들이던 자유롭게 변경가능하며, 포토샵에서의 Color Picker로 색상값을 찾거나, CSS,HTML,Flash, Objective-C에서의 HEX 색상값을 찾을수 있을 것입니다. 저의 포스팅이 도움이 되었기를 바랍니다~ ^^

질문이 있으시다면 아래의 댓글에 올려주시길 바랍니다.

참고사이트 :

1. http://www.smashingmagazine.com/2009/10/12/setting-up-photoshop-for-web-app-and-iphone-development/
2. http://bjango.com/articles/photoappscaling/

iPhone SDK Network기능


아이폰이 가지는 여러가지 하드웨어 기능가운데에 네트워크 기능은 고급 어플리케이션을 개발하고자 하는 개발자라면 반드시 주목해야할 부분입니다. 특히 아이폰에서는 이통사와 연결되는 3G망 외에 WiFi망에 자유롭게 접근할수 있는 무선랜 기능을 제공하기 때문에 어플제작의 범위가 상당히 넓다.

일단 iPhone OS에서 제공하는 네트워크 기능에 대해 알아봅시다.
일반적으로 네트워크 기능이라 하면, 한 시스템이 다른 시스템과 통신할수 있는 모든 수단을 뜻하지만, App레벨에서는 IP수준에서의 통신(TCP통신을 의미)을 칭합니다.

TCP를 이용하는 방법은 다음과 같습니다.
1. BSD socket API를 이용하는 방법
2. CF Networking 관련 라이브러리를 이용하는 방법
3. NSStream클래스를 이용하는 방법

BSD socket API는 일반적으로 GCC환경에서 사용하는 소켓과 관련된 API입니다. 기존의 TCP소켓 프로그래밍 방법을 그대로 사용할수 있다는 말이죠.

CF Networking관련 라이브러리는 Cocoa에서 제공하는 네트워킹 관련 API들입니다. BSD socket API를 좀더 쓰기 쉽게 Wrapping해둔 형태라고 보면 됩니다.
RunLoop에 대한 동작을 포함해서, 별개의 Thread를 생성하지 않고 쉽게 소켓프로그래밍을 할수있습니다.

NSStream관련클래스는 Cocoa에서 제공하는 상위레벨의 API로 CFNetworking라이브러리에서 제공하는 CFSocket을 이용하여 비동기화 형태로 네트워킹을 상당히 이용하기 쉽게 구현하고 있습니다.

Thread와 RunLoop에 대한 문서
http://developer.apple.com/documentation/Cocoa/Conceptual/Multithreading/Multithreading.pdf

Check out TBXML V1.2 for a super-fast, lightweight, easy to use XML parser!

TBXML is a light-weight XML document parser written in Objective-C designed for use on Apple iPhone / iPod Touch devices. TBXML aims to provide the fastest possible XML parsing whilst utilising the fewest resources. This requirement for absolute efficiency is achieved at the expence of XML validation and modification. It is NOT possible to modify and generate valid XML from a TBXML object and NO validation is performed whatsoever whilst importing and parsing an XML document.

[TBXML 원문]
http://www.tbxml.co.uk/

과연 device에서 사용가능한 Parser인지는 테스트가 필요합니다. (다해놓고 reject당하면 어떡해;)
테스트후 다시 포스팅하겠습니다.