H3 2011 ios5 새로운 기능들의 프로젝트 적용 사례_ios팀_김윤봉
Upcoming SlideShare
Loading in...5
×
 

H3 2011 ios5 새로운 기능들의 프로젝트 적용 사례_ios팀_김윤봉

on

  • 684 views

 

Statistics

Views

Total Views
684
Slideshare-icon Views on SlideShare
684
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    H3 2011 ios5 새로운 기능들의 프로젝트 적용 사례_ios팀_김윤봉 H3 2011 ios5 새로운 기능들의 프로젝트 적용 사례_ios팀_김윤봉 Presentation Transcript

    • iOS5,새로운기능들의프로젝트적용사례모바일개발실 iOS앱팀 김윤봉
    • 김윤봉 |YoonBongKim iOS Developer @y8k Eager for some knowledge constantly.
    • •https://www.facebook.com/iOSTip•http://dreamofblue.tistory.com•http://y8k.me
    • 새로운프로젝트,의미있는프로젝트로만들고싶다!
    • iOS5의새기능을적용하겠습니다!
    • ??
    • 추가된기능들중어떤기능들이적합할까?
    • ✓ 시스템에녹아든iCloud 서비스레벨의클라우드서비스와는다른클라우드서비스 사용자(User)의특별한통제가필요치않음 문서및Key-Value데이터저장 VS.
    • ✓ 데이터스토리지이용가이드의엄격한적용 http://developer.apple.com/icloud/documentation/data-storage/ /Documents디렉토리는iCloud와자동으로동기화 임시데이터는/Library/Caches나/tmp디렉토리를이용하도록권고 Storage용량이부족할경우/Library/Caches와/tmp디렉토리내용삭제 iOS5.0.1에서“donotbackup”속성추가
    • ✓ 확장파일속성으로제어 속성이부여된파일은/Documents디렉토리의데이터라도iCloud로백업안됨 파일생성직후에호출 iOS5.0.1에서추가됨 #include<sys/xattr.h> -(BOOL)addSkipBackupAttributeToItemAtURL:(NSURL*)URL{ constchar*filePath=[[URLpath]fileSystemRepresentation]; constchar*attrName="com.apple.MobileBackup"; u_int8_tattrValue=1; intresult=setxattr(filePath,attrName,&attrValue,sizeof(attrValue),0,0); returnresult==0; }
    • ✓ Objective-C객체들의수명을자동으로관리 컴파일레벨에서의수행되며자동으로객체수명관리 retain,release,autorelease,dealloc등의메소드불필요
    • ✓ Apple의권고안 CoreFoundation는미적용 C구조체객체포인터대신다른객체(NSObject)에포인터를저장 객체와객체가아닌타입사이에직접캐스팅의금지 NSAutorelease대신@autoreleasepool와중괄호({,})를이용 assign,retain대신weak,strong속성이용➡ 성능보다는생산성의향상
    • ✓ ACAccountFramework ACAccount,ACAccountStore,ACAccountType클래스제공 현재는트위터계정정보만저장및사용가능 구조상다른OAUTH서비스도적용이가능 ACAccountStore ACAccountType Service1 Service2 Account Account Account ... Account Account Account ... ... ...
    • ✓ 이전에연동된정보를시스템으로이동oauth_tokenoauth_token_secret-saveAccount:withCompletionHandler: SYSTEM
    • ✓ 시스템에저장된정보를앱에서사용하기
    • ✓ Built-inComposer사용하기 enumTWTweetComposeViewControllerResult{ TWTweetComposeViewControllerResultCancelled, TWTweetComposeViewControllerResultDone };
    • ✓ 트위터API호출 -ACAccount:Identifier -RequestURL -Parameters
    • ✓ JSONParser의내장 NSJSONSerializationClass의추가 JSONDatatoObject +isValidJSONObject: +dataWithJSONObject:(id)objoptions:(NSJSONWritingOptions)opt error:(NSError**)error; +JSONObjectWithData:(NSData*)dataoptions:(NSJSONReadingOptions)opt error:(NSError**)error; StreamtoJSON +writeJSONObject:(id)objtoStream:(NSOutputStream*)stream options:(NSJSONWritingOptions)opterror:(NSError**)error; +(id)JSONObjectWithStream:(NSInputStream*)stream options:(NSJSONReadingOptions)opterror:(NSError**)error;
    • ✓ ContainerViewController ViewController의구조가Parent-Child로확장 하나의ViewController가여러개의ViewController를가짐 ∈
    • ✓ 추가된메소드 -addChildViewController: //child추가/삭제 -removeFromParentViewController: -transitionFromViewController:toViewController: //child간전환애니메이션 duration:options:animations:completion: -willMoveToParentViewController: //parent로이동 -didMoveToParentViewController:
    • ✓ iBooks페이지넘김효과
    • ✓ UIPageViewController로이미지뷰어구현 두 개의 View Controller가 필요 컨텐츠가 정의된 View Controller 페이지를 제어할 UIPageViewController가 정의된 View Controller 컨텐츠 정의 View Controller 이미지 설명과 정보, 페이지 번호 property 구현 UIPageViewController 포함된 View Controller에 ContainerViewController로 정의 페이지 넘김 효과 정의 dataSource, delegate 정의
    • ✓ UIPageViewController구조 각각은동일한구조의ViewController 현재index의-1,+1위치의ViewController미리준비되는구조 idx=current-1 idx=current idx=current+1 Before Current After
    • ✓ Delegatemethod✓ DataSourcemethod
    • ✓ UINavigationBar와UIToolbar는기본적으로background에image적용불가 UINavigationBar,UIToolBar의background에이미지적용 iOS4까지는기본적으로제공하는메소드없음 -drawRect메소드를이용,Layer를이용등의방법등이용 -기본NavigationBar가아닌UIView를이용하여구현 iOS5에서기본메소드지원 -setBackgroundImage:forBarMetrics:UINavigationBar -setBackgroundImage:forToolbarPositionbarMetrics:UIToolBar
    • ✓ 단말기의UDID를얻는[[UIDevicecurrentDevice]uniqueIdentifier] -단말기를구분하기위한유일값 -Deployment가iOS5.0이상일경우컴파일경고. -당장의조치가아닌서서히사용을줄여나갈려는의지로해석됨 UUID의사용권장 -앱을사용하는사용자의유일한값 -유일값으로UUID를이용하여생성하도록권고 -CoreFoundation레벨에서의API존재
    • ✓✓
    • 프로젝트의하위호환성을유지?!간과했다!
    • ✓ iOS5로업데이트한사용자는약30%수준 ➡ 아직iOS4의사용자가더많다!
    • ✓ [[[UIDevicecurrentDevice]systemVersion]floatValue]>=5.0f로분기 재사용및효율적인코드관리를위해서클래스단위를iOS버전별로나누자! 귀찮다고생각하기보다미리해놓는다고생각하자! 단,새로운기능이라고다좋은것은아니다!
    • ✓ InXcode4.x $(ARCHS_STANDARD_32_BIT)==armv7 ByXcode3.x Standard==armv6 Optimized==armv7
    • ✓ 최신버전보다는현재사용자가많이사용하는OS를기준! 적용가능한부분은일부의적용으로사용자에게새로운경험을줄수있다는점! ➡ 따라서적절한새로운기능조합과함께전략이필요함!✓ 새로운무언가는개발자의활력소이다. 이활력소를스스로의것만이아닌프로젝트에적용함으로보람을느끼자! 부단히노력하는모습어필! ➡ 배움을게을리하지말아야할개발자들의필수덕목!!
    • scent07@paran.com @y8k