2010. 2. 1. 16:17

iPhone OS 3.2

iPhone OS 3.2

This article summarizes the developer-related features introduced in iPhone OS 3.2. This version of the operating system runs on iPad only and many of the corresponding features were designed specifically for that device. In addition to describing the features, this article lists the documents that describe those features in more detail.
Note: iPhone OS 3.2 does not support iPhone and iPod touch devices. It runs only on iPad.

User Interface Changes
Applications running on iPad have several new options for presenting content and receiving input from the user. For information and guidelines about how to use these new features, be sure to consult iPad Human Interface Guidelines.

Popovers are floating views that reside above your application’s window and help you organize the contents of your user interface. Popovers help to eliminate the clutter that might occur in applications that need to display important controls or information in an unobtrusive way that does not distract from the main content.
The benefit of using a popover is that:
It appears only in response to specific user interactions and is dismissed automatically when the user taps outside of its bounds. This behavior makes the popover less obtrusive to the user.
It typically covers only a small portion of the screen and so does not obscure as much of the underlying content as a modal view might.
For more information about using popovers in your application, see Views and View Controllers in iPad Programming Guide.

Split Views
The UISplitViewController class is a new container view controller that you use to manage two side-by-side content views. These content views are typically used to create a master-detail interface, whereby selecting an item in one view causes the other view to display detailed information about the selection. The views themselves are managed by view controllers that you provide.
The split view controller coordinates any interactions between your view controllers and the system. For example, when the user rotates the device, the split view controller rotates both view controllers together, forwarding any needed notifications to both of them.
For more information about split views, including how to use them in your applications, see Views and View Controllers in iPad Programming Guide.

Custom Input Views
Instances of the UIResponder class now support the ability to display custom input and accessory views when they become the first responder. Now, you can provide input views for any of your custom views and have them presented automatically by the system. (Previously, the keyboard was the only supported input view, and it was supported only by text view and text field objects.)
In addition to input views, you can also provide a custom accessory view to display above the input view. Accessory views are commonly used to provide additional buttons and controls when the keyboard is displayed. The explicit support now provided by responder objects makes it easy to animate your accessory views into position.
For more information about how to configure and use custom input and accessory views, see Custom Text Processing and Input in iPad Programming Guide and the UIResponder Class Reference.

External Display Support
An iPad can be connected to an external display through a set of supported cables. When connected, the associated screen can be used by the application to display content. Information about the screen, including its supported resolutions, is accessible through the interfaces of the UIKit framework. You also use that framework to associate your application’s windows with one screen or another.
The UIScreen class provides support for retrieving screen objects for all available screens (including the device’s main screen). Each screen object contains information about the properties of the screen itself, including the dimensions that correctly take into account the size and pixel aspect ratio of the screen.
The UIScreenMode class provides information about one particular size and pixel aspect ratio setting of a screen.
Windows (represented by the UIWindow class) can now be assigned to a specific screen.
For more information about the support offered by these classes, see the individual class descriptions in UIKit Framework Reference.

Gesture Recognizers
Gesture recognizers are objects that you attach to views and use to detect common types of gestures. After attaching it to your view, you tell it what action you want performed when the gesture occurs. The gesture recognizer object then tracks the raw events and applies the system-defined heuristics for what the given gesture should be. Prior to gesture recognizers, the process for detecting a gesture involved tracking the raw stream of touch events coming to your view and applying potentially complicated heuristics to determine whether the events represented the given gesture.
UIKit now includes a UIGestureRecognizer class that defines the basic behavior for all gesture recognizers. You can define your own custom gesture recognizer subclasses or use one of the system-supplied subclasses to handle any of the following standard gestures:
Tapping (any number of taps)
Pinching in and out (for zooming)
Panning or dragging
Swiping (in any direction)
Rotating (fingers moving in opposite directions)
Long presses
For more information about using gesture recognizers in your application, see Gesture Recognizers in iPad Programming Guide.

Improved Text Support
In iPhone OS 3.2, there is significant new support for text input and rendering. This support is provided for applications, such as word processors, that need more sophisticated text-handling capabilities.

Core Text
The Core Text framework (CoreText.framework) contains a set of simple, high-performance C-based interfaces for laying out text and handling fonts. The Core Text framework provides a complete text layout engine that you can use to manage the placement of text on the screen. The text you manage can also be styled with different fonts and rendering attributes.
This framework is intended for use by applications that require sophisticated text handling capabilities, such as word processing applications. If your application requires only simple text input and display, you should continue to use the existing classes of the UIKit framework.
For more information about using the Core Text interfaces, see Core Text Programming Guide and Core Text Reference Collection.

Text Input Support
The UIKit framework (UIKit.framework) includes new protocols that allow you to implement custom text-input objects. If you are implementing an application that requires sophisticated text-handling capabilities, you can use these protocols to implement new views and controls for receiving incoming text. Depending on your needs, there are different protocols for receiving text input. Which protocols you use will depend on the complexity of your user interface.
The UIKeyInput protocol lets you define simple objects (like text fields) that are capable of character-by-character input.
The UITextInput protocol lets you define complex text views that support multiple lines of text, selections, pasteboard operations, and more.
For more information about how to use the text input support to implement your own custom objects, see Custom Text Processing and Inputin iPad Programming Guide.

Custom Font Support
Applications that want to use custom fonts can now include those fonts in their application bundle and register those fonts with the system by including the UIAppFonts key in their Info.plist file. The value of this key is an array of strings identifying the font files in the application’s bundle. When the system sees the key, it loads the specified fonts and makes them available to the application.
For more information about the keys you can include in your application’s Info.plist file, see Information Property List Key Reference.

ICU Regular-Expression Support
The BSD layer of iPhone OS now exposes a modified version of 4.2 of the International Components for Unicode (ICU) libraries. ICU is an open-source project for Unicode support and software internationalization. The installed version of ICU includes only those header files necessary to support regular expressions.
For more information about using the functions of the ICU 4.2 library, see the documentation and user guide at http://icu-project.org/apiref/icu4c/index.html.
File and Document Support
In iPhone OS 3.2, there is new support for exchanging and opening files. This support makes it easier to implement more document-centric applications, similar to what you might find on a desktop computer, while still maintaining a simplified interface for your users.

File-Sharing Support
Applications that want to share files with the user can now do so using the file-sharing support in iPhone OS 3.2. Here’s how it works:
An application indicates that it wants to share files by including the UIFileSharingEnabled key in its Info.plist file.
It puts whatever files it wants to share in its Documents/Shared directory.
When the device is plugged into the user’s computer, a mount point is added to the system and the contents of any shared directories appear on the user’s desktop.
Users can modify the contents of this directory freely by copying files out, deleting files, or dragging new files in.
Applications that support file sharing should recognize when files have been added to the directory or removed and respond appropriately. For example, if the user added files to the directory, your iPad application might make those files available from its interface. You should never expect the user to go searching for files in this directory, nor should your application rely on any files being in this directory. It is strictly for sharing files with the user’s computer.
For detailed information about how to support file sharing in your own applications, see The Core Application in iPad Programming Guide

Document Support
An application can now register the file types it supports with the system and receive notifications when a file of the given type needs to be opened. It does this by including the CFBundleDocumentTypes key in its Info.plist file. An application that registers one or more file types may also be expected to open files of those types at some point later. It does this by implementing theapplication:didFinishLaunchingWithOptions: method in its application delegate and look for a file in theUIApplicationLaunchOptionsURLKey key of the provided dictionary.
Complimenting the ability to open files of known types is the addition of the UIDocumentInteractionController class in the UIKit framework. This class provides a user-based interaction model for managing files that your application does not know how to open. The document interaction controller provides options for previewing the contents of a file in place or opening it in another application. Document interaction controllers are particularly useful for email applications or applications that may download files from the network.
For more information about supporting documents, see The Core Application in iPad Programming Guide.

PDF Generation
The UIKit framework (UIKit.framework) includes new functions for generating PDF files and data objects from your application’s custom content. You can use this support to generate PDF-based content for use within your application or for storing to the local disk. The UIKit functions manage the setup and pagination for the PDF data. You provide the actual content using the same native platform graphics technologies (UIKit, Core Graphics, Core Text, and so on) already available for drawing to the screen. (You cannot draw to a PDF context directly using OpenGL commands. However, you can transfer the pixels of your rendered content to a CGImageRef data type and draw that.)
For more information about how to use the new UIKit functions to create PDF content, see Graphics and Drawing in iPad Programming Guide.

Xcode Tools
Xcode includes new features to make developing applications that run on iPad much simpler, including the following:
Xcode simplifies the process of sharing code between your iPhone and iPad applications by helping you update your existing iPhone projects to include the necessary files to support iPad. The Transition command (in the Project menu) creates a new target for the iPad and modifies a copy of your project’s nib files to support the larger screen size. For more information on how to use this command, see iPad Programming Guide.
Xcode simplifies the validation and submission process of your applications by allowing you to debug signed applications.
You can now easily transfer your iPhone developer identity information to a new computer. The Organizer window includes an option to export your profile and certificate information. To begin developing on a new computer, all you have to do is import the resulting data file into Xcode on that computer.
Interface Builder supports the new view controllers and window sizes available for iPad.

API Changes
The following frameworks and technologies include additional incremental changes.

UIKit Framework Changes
The UIKit framework includes the following additions:
The UIBezierPath class is a new class that supports the creation of vector-based shapes. This class provides an object-oriented wrapper around Core Graphics paths.
The UIScrollViewDelegate protocol includes additional methods for processing zoom-related events in a scroll view.
Modal view controllers can now be presented in a style other than full screen. The UIViewController class includes amodalPresentationStyle property that allows you to present modal view controllers using one of several predefined styles.
The UIMenuController class now allows you to add custom menu items. You can use custom menu items to augment the Cut, Copy, Paste, and Select behavior provided by the system.
Support for popovers, described in “Popovers.”
The UISplitViewController class, described in “Split Views.”
Support for gesture recognizers, described in “Gesture Recognizers.”
Support for implementing custom input and accessory views, described in “Custom Input Views.”
Support for getting information about externally connected displays, described in “External Display Support”
Support for creating PDF files, described in “PDF Generation.”
Support for previewing and opening documents, described in “Document Support.”

Media Player Framework Changes
The video classes in the Media Player framework (MediaPlayer.framework) have been redesigned to give you more control over the presentation of video content. Instead of simply playing a video full screen, the MPMoviePlayerController class now vends a view that you can incorporate into your interface however you want. This class also includes more sophisticated support for managing and controlling the playback of movies.
For situations where you want a simpler alternative to movie presentation, you can now use the MPMoviePlayerViewController class. This new class provides a view controller-based wrapper for a movie interface and is for applications that want the same basic behavior offered by the older movie player controller design.
For information about the new classes available in this framework, see Media Player Framework Reference.

Core Animation Changes
The Core Animation technology (defined in QuartzCore.framework) includes the following additional features:
The CATextLayer class is now available for incorporating text-based content into your layer hierarchies.
You can now apply shadow effects to a layer and customize the appearance of the shadow using the shadowOpacity, shadowRadius,shadowOffset, shadowColor, and shadowPath properties.
You can configure the rasterization behavior of the layer using the shouldRasterize and rasterizationScale properties.

MapKit Framework Changes
The MKReverseGeocoder class now includes a placemark property for accessing the placemark that was computed by the reverse geocoding service. You can use this property to retrieve placemark information after the results are reported to the associated delegate object.

Foundation Framework Changes
The NSString class now includes the ability to search the text of a string using regular expressions. The NSStringCompareOptions type includes a new flag called NSRegularExpressionSearch, which you can use in conjunction with the following methods:
When you pass the NSRegularExpressionSearch as an option, the search string is interpreted as a regular expression instead of a string literal. The regular expression syntax conforms to the syntax used by the International Components for Unicode (ICU) library. When performing regular expression searches, the only other options you can include in the mask parameter are the NSCaseInsensitiveSearchand the NSAnchoredSearch flags.
Because some regular expressions can trigger a match but still return a zero-length range, you should check both the location and range length of the result. If a match was unsuccessful, the search methods always return a range whose location is set to NSNotFound and whose length is 0.
For more information about the NSString class and its methods, see NSString Class Reference. For more information about regular expressions in the ICU library, go to http://site.icu-project.org/.
From - http://1985.pe.kr/archives/185

'Iphone' 카테고리의 다른 글

iPhone OS 3.2  (0) 2010.02.01
Trackback 0 Comment 0
2009. 10. 15. 15:39

페이스 메이커 개봉기

페이스메이커 개봉기

페이스 메이커 개봉기에 앞서 이전에 간략하게 적은 페이스 메이커 소개 글을 참조 하길 바란다.
역시나 멀티미디어 플레이어가 대중의 이미지화를 위해서 시각적인 요소를 많이 추가 한 것 같다. 인쇄로 되어진
로고나 페이스 메이커의 대표적인 텔레토비(난 이렇게 부른다. 정확한 명칭이 기억나지 않아) 시그널이 들어간
박스를 보니 사뭇 기대감이 커지게 된다.

지문이 조금 찍히는 구려. 양해 바란다. 운동하고 나서 개봉기를 위해 책상에 올려둿더니 지문이 슬쩍 찍히는..
화면에는 안보이는데 의외로 놀란 점이 있다. MADE IN KOREA 다. 이제껏 난 스웨덴의 업체에서 만든 제품이라고 알고 있었는데 한국의 제품이라는 것이 세계적인 트랜드화를 일으키고 있다는 점에 뿌듯해 한다.
OEM 인가.  하는생각도 들지만 나중에 페이스 메이커 담당자님께서 혹시 이글을 보게된다면 태생에 대해서
간략히 적어주었으면 한다..

일반적인 음향 제품들 보다 약간 고가의 제품이다 보니 역시 포장에 많이 신경을 쓴것 같다.
메모리 방식이 아닌 HDD 방식이라 이런 보완제가 필수로 적용된 것 같다.

박스 주요 구성품으로는 USB 케이블본체가 들어가 있다.
페이스 메이커의 재질적인 측면이 약간 아쉽다. 기스가 많이 나는 플라스틱 재질이다보니. 하이그로시형이나 카본
재질로 했더라면 기스나 담배 먼지에 좀더 강했을 터인데 안타까운..
어쨋던 개봉기다 보니까 성능적인 측면이 중요한 이 기기에서는 중요한 내용이 아닌 것 같다.

 Line-In, HeadSet , Power 

 사실 이 개봉기를 적으면서도 지금 어느정도 사용을 해보았다.
 사용자 편의성이나 모든 면에 만족하고 있지만 외부 출력방식에 대해서 하나 넘어가고자 한다.

 음원 출력 방식이 Line-in/out 방식만을 채택하다보니 웹스트리밍 방식으로 브로드케스팅을 진행하기 위해서는
 해당 PC에 Line-in 이 지원되어야 하는데 최신 노트북에는 mic/SPK 만 지원을 한다. 물른 MIC에 연결하여
 마이크로 웨이브 형식으로 출력을 해도 되지만 USB 케이블에 External Sound Module 을 하나 탑재 해서 외부
사운드 카드로 인식하여 Direct host 기능을 사용할 수 있었더라면 웹 사용자들에게 좀더 깨끗한 음질로 제공할
수 있었을텐데 내가 사용하고 있는 노트북에서 Mic 값을 최대한 잘 조절하더라도 원격지에서 듣는 이들에게는
128k 이상의 고음질 서비스를 지원하기가 어려웠다. 아날로그 출력방식이라 패시버라던지 기타 장비가
필요한 것 같다.

이부분에 대한 다음 버전에는 단가가 약간 올라가더라도 탑재 하는 것이 옳지 않을까 생각한다.
유무선 네트워크로 원격지의 사람들과 함께 즐기기위해서는 반드시 진행되어야할 선행과제라고 생각이 든다.

 USB(Sync 용), 전원 버튼,  초기화 버튼(이부분에 대해서는 다시 설명하겠다)


어떤 분들은 OMP 어플리케이션으로 충분히 페이스 메이커과 동일한 기능을 소화할 수 잇다고 한다.
사실 이와 같은 시퀸서/믹서 프로그램을 만들어볼려고도 노력했고 무수히 찾아보았지만 듀얼 플렉스 플레이
(동시에 두개의 사운드 모듈을 동작하는 기능)을 일반적인 단말기에서는 불가능하다. 끊임없이 반복되는
연결되는 음악을 사용자에게 들려주는게 이 제품의 메인 컨셉 아닐까 한다.

'체험기' 카테고리의 다른 글

페이스 메이커 개봉기  (0) 2009.10.15
Trackback 0 Comment 0
2009. 8. 10. 15:17

왜 스마트폰을?

" 스마트폰 ? "

스마트폰? 사실 기존의 Feature 단말기의 기능적 인프라가 많이 쌓여서 그런지 일반 소비자가 눈으로 봤을때 그렇게 차이점을 확인하기가 어려울 수도 있습니다. 실제로도 최근에 발매한 LG의 Arena 나 삼성의 아모레 같은 경우도 일반 Feature 단말기이긴 하지만 마케팅을 잘한 덕분인지 젊은 사람들에게 크게 어필하고 있습니다.
이렇게 지금 잘 팔리는데도 왜 스마트폰인가...? 제가 고집하는 이유는 다음과 같습니다.

스마트폰은 아래 제가 포스팅한 글과 같이 사용자가 자유롭게 폰의 어플리케이션 설치나 간단한 커스터마이징을 할 수 있다는 장점이 있습니다. 편의성보다는 기능성이 더욱 업데이트 된다고 해야겠죠.? 서비스 산업의 중심이 컨텐츠/어플리케이션으로 돌아서면서 앱스토어에 하루가 멀다하고 많은 어플이 등록되고 소비자는 자신의 취향에 맞는 어플을 설치 하면서 사용할 수 있다는 장점이 있습니다. (OS 나 제조사의 SDK 기반으로 무궁무진한 기회를 개인 및 그룹 개발자들에게 제공하고 있으니 그쪽으로 공급이 되니 소비가 진행되는 것은 당연지사 아닐까 합니다)

스마트폰은 하드웨어적 구성보다 어떤 OS 가 탑재되었나가 이것은 무슨 스마트폰이다라고 정의 할 수 있습니다.
각 스마트폰에 쓰이는 OS는 서로 다른 기반아래 동작하고 있습니다.
MS 사의 윈도무 모바일( MS에서는 차기 버전부터 윈도우 폰으로 개명한다고 합니다.)
Linux 기반의 구글 안드로이드 플랫폼(안드로이드는 OS라기 보다는 Linux OS 기반에서 동작하는 모바일용 미들웨어라고 하는 것이 좀더 정확하지 않을까 하는 개인적인 소견입니다)
Apple사의 OS X (이미 ipod, notebook 등에 범용으로 애플에서 밀고 있으며 LCD 파블렛 및 비디오 게임 콘솔까지 영역을 넓히고 있습니다. 단점이라면 약간의 폐쇄적인 면이 강해서 개발자에게 자유로움을 주지는 못하고 있지만 소비계층이 두터우면서 많은 호응을 얻고 있습니다)

아이폰의 대박 행진에 전세계 주요 제조사들도 황급히 스마트폰 시장에 접근 하고 있습니다. 국내에서도 늦 가을쯤이면 안드로이드 단말기(기본에 충실한)를 보실 수 있을 것 같고 좀더 커스터마이징하여 UI 가 개선된 버전은 내년 봄이 시작되면 국내에서도 본격적인 스마트폰 시장이 도래될 것이라 봅니다.

2008년 12월 18일 애플의 앱스토어에서 다운로드된 어플리케이션이 5억만 카운터를 기록하였습니다. 북미/유럽시장에서 선전했기 때문이 아닐까 합니다. 이찬진 대표님께서 세미나중 하신 말이 기억이 나는데 ' 미국 출장 중 야구장에서 공수교대시 대형 스크린에 ' 아이폰으로 지금 경기 내용을 볼 수 있는 어플리케이션을 다운로드 하고자 하신다면 XX 번으로 접속해서 다운로드하세요 ' 라는 내용이 나왔을 때 그 주위에 있는 거의 모든 이들이 주머니에서 아이폰을 내어 어플리케이션을 다운로드 받았다' 라는 내용입니다. 컨텐츠 라이프...

과거에는 단말기를 판매하여 부가가치를 창출하는 것이 주목적이였지만 이제는 컨텐츠다 라는 것을 대다수 업체에서 인지하고 있다보니 황금알을 낳는 시장을 감히 버려둘 순 없겠죠? 

Contents Value Chain

애플의 성공적인 앱스토어로 영향으로 인해 OS사인 구글, MS 뿐만 아니라 제조사와 그리고 통신사업자까지 앱스토어 시장의 위치를 확보하기 위한 경쟁을 시작하고 있습니다.

최근 퀄컴에서 MSM72X7 이라는 BaseBand Chipset + Application Chipset 이 모듈화된 칩셋이 발표되었습니다. 스마트폰용으로. 오래전 어떤분과 개발을 하면서 했던 이야기가 떠오릅니다 " 뭐야- 폰 만드는게 레고도 아닌데 뚝딱하면 만들어지는 줄 알자나?" 조금씩 레고가 되어가고 있습니다. 단말기 제조 회사를 보더라도 H/W 보다는 S/W 엔지니어들이 훨씬 많이 투입이 되고 있다는 것을 바로 볼 수가 있습니다.

이제 S/W 컨텐츠의 속성에 따라 단말기의 특성이나 업체의 방향이 바뀔 만큼 중요 요소로 자리 잡고 있습니다.

스마트폰의 OS 영향력은 높은 범용성을 지니고 있습니다. 최근에 Asus 의 안드로이드 노트북 탑재 기사를 접해보셨는지요? 제가 있는 회사에도 R&D 로써 의료단말기 서비스 프로젝트를 진행하고 있는데 처음에 아 안드로이드 폰을 개발하고 시스템 구축 인프라가 쌓이면 이런 파생 IT 서비스에도 쉽게 구축을 할 수 있겠구나.. 라는 생각이였습니다. 쉽게 말해 기존의 폰 단말기에 쓰인 OS를 Cell ( Call, SMS 등) Service 단을 Block 해버리고 게임 콘솔이나 노트북등에 탑재 하여 활용이 가능하다는 것이겠죠? 물른 안드로이드만 그런것은 아니라는 것을 밝혀둡니다


하나의 기회의 시간이라고 생각합니다.

많은 모바일에 속해 있는 그룹에서 변화하는 시기에 어려움을 호소 하겠지만 이러한 환경적 요소가 준비된 사람에게 기회와 비전을 제시 할 것이라는 것은 누구도 부인할 수 없는 것입니다.
시장의 변화를 알고 기술적 인프라를 쌓아 새로운 부가가치를 창출 할 수 있는 스터디 시간을 가질려고 합니다.
그 기술적 인프라로써 안드로이드 플랫폼과 구조론에 접근하여 그 속에서 앞으로 어떠한 시간이 올 것인지 하는 시대 예측 정신과 대응력을 만들어가는 것이 제가 바라는 것입니다.
그리고 각자 가지고 있는 시선들이 이러한 기반아래 새로운 비즈니스 모델을 창출 할 수 있을 것이라고 확신합니다.  항상 주위에 있으니까요.......

PS 두서 없이 포스팅한 글이니 가볍게 읽어주시면 감사하겠습니다.



'IT & Think' 카테고리의 다른 글

국내 아이폰 4G 도입..... 과연..?  (1) 2010.03.11
왜 스마트폰을?  (2) 2009.08.10
스마트폰 (Smartphone) 이라는 것에 대한..  (0) 2009.06.03
Trackback 0 Comment 2
  1. 박상근 2009.08.10 19:45 신고 address edit & del reply

    저는 블랙잭(SCH-M620)을 사용중입니다.
    스마트폰 한번 쓰고나면 일반폰은 못쓰겠더라구요 :D

    • simcard 2009.08.11 10:27 신고 address edit & del

      네. 저도 직무때문에 스마트폰을 설계하고 만져보고 하는 경우가 많은데 역시나 매력에 한번 빠지니 일반 Feature 단말기에는 뭔가 답답하다라는 생각을 지울수가 없더군요. 일반 소비자 계층이 스마트폰을 많이 접하게 될 수록 수요가 늘어가는 것은 어쩔수가 없을 것 같습니다 ^^