Your SlideShare is downloading. ×
I phone 2 release
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

I phone 2 release

972
views

Published on

Saii iPhone Workshop Lecture 2

Saii iPhone Workshop Lecture 2

Published in: Technology, News & Politics

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
972
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • OS 3.1.2 이후 iphone browser/explorer 등에서 application bundle 직접 접근 불가 57x57 icon, 광택효과 자동 Resources, 동일 폴더 저장 Local English.lproj, French.lproj, German.lproj, uk.lproj , ... 각 언어별 리소스 아이폰 설정 어플리케이션 위한 Settings.bundle, Icon-Settings. 29x29 MainWindow, 첫화면 코드 , 리소스 480x320 Default, MainWindow.nib loading pix
  • Application 몸통 Interface Builder 에서 Window 의 Visual 속성 변화 하거나 , Control 추가해도 변화 없다 .
  • 눈에 보이는 장면 구성 , window 최상단의 하나의 View 만 활성화 된다 ., 보이고 , 사용자 입력을 받는다 .
  • Transcript

    • 1. iPhone 어플리케이션 제작 워크숍
      • team Gurunun
      • 오재혁
      • [email_address]
    • 2.
      • Cocoa
      • Objective-C
      • Window + View
    • 3.
      • Cocoa 의 탄생 , 역사
      • Cocoa 동작 구조
      • 어플리케이션 동작 순서
      • Application Bundle 구성
      • 개발 도구
      • Debugger, NSLog
      • Cocoa Style
      Cocoa
    • 4. Cocoa 의 탄생
    • 5.
      • 1955 Steve Jobs 탄생
      • 1972 Jobs, HP 강의 참석 , 직원으로 고용 , Stephen Wozniak 만남
      • 1974 Jobs, Atari, 비디오 게임 디자이너 취직 , 인도 여행
      • 1975 Jobs, Wozniak, Apple 1 제작 시작
      • 1976.4.1 Apple 설립 , Steve Jobs, Stephen Wozniak (HP 직원 ), Ronald Wayne (Atari 직원 )
    • 6.
      • 1983 John Sculley 영입 (1977 펩시콜라 최연소 사장 )
      • 1984 전성기
      • 1985 위기 , 5 월 Jobs 퇴사
    • 7. http://www.youtube.com/watch?v=OYecfV3ubP8&feature=player_embedded
    • 8.
      • 1985 NeXT Computer 설립
      • 1986 Avadis Tevanian, NeXTSTEP OS
      • 1988 1st NeXT Computer ‘The Cube’
      • 1990 소매 판매 시작 $9,999
    • 9.
      • 1991 CERN Tim Berners-Lee HTML, first Web server
      • 1992-3 John Carmack, Wolfenstein 3D, Doom
    • 10.
      • 1993 NeXTSTEP -> OneStep
      • 1996 Apple, NeXT 인수
      • 1999 NeXTSTEP -> Mac OS X Server 1.0, OpenStep Dev Toolkit -> Cocoa Apple registers iPhone.org to Apple.com
    • 11.
      • 2001 Mac OS X 10.0
      • 2002 iPhone TM 상표권 등록 시작
      • 2005 ROKR, “an iPod Shuffle on your phone” (with Motorola)
      • 2006.12.18 iPhone (VoIP phone, by LinkSys)
    • 12.
      • 2007.6.29 iPhone Launched
      • 2008 3.6 iPhone SDK release
      • 2008.7.11 iPhone 3G Launched
      • 2009.6.8 iPhone 3Gs Launched
      • 2010.6.24 iPhone 4 Launched
    • 13. Cocoa 동작 구조 Window Server Cocoa Applications event reaction
    • 14. 어플리케이션 동작 어플리케이션 시작 nib 파일 불러오기 Main Event Loop 시작 어플리케이션 종료 이벤트 대기열에서 이벤트 수집 View 의 이벤트 코드 실행 Custom 객체 코드 실행 (delegate) 필요하면 뷰 다시 그리기
    • 15. 어플리케이션 동작 W i n d o w S e r v e r Application 화면 터치 센서 pixel event value event drawing
    • 16.
      • Executable
      • Info.plist
      • Resources
      • MainWindow.nib
      • icon.png
      • Default.png
      • Settings.bundle
      • Icon-Setting.png
      • Localization Folders
      Application Bundle
    • 17. Executable Info.plist MainWindow.nib icon.png Default.png PkgInfo : APPL???? Bundle/creator OS Type Code
    • 18. Localization Folder
    • 19. Localization Folder
    • 20. 개발 도구
      • Xcode
      • Interface Builder
      프로그램 코드 , 이미지 , 소리 , ... 모든 리소스 파일 관리 GUI, 객체 생성 , 속성 편집 , 객체간 연결
    • 21. Debugging
    • 22. Debugger Open
    • 23. NSLog
    • 24. NSLog 소개
    • 25. NSLog
      • String Format Specifiers
      %@ Objective-C, descriptionWithLocale %% %’ character %d, %D, %i Signed 32-bit integer (int) %u, %U Unsigned 32-bit integer (unsigned int) %x, %X Unsigned 32-bit integer in hexadecimal %o, %O Unsigned 32-bit integer in octal %f 64-bit floating-point number (double) %e, %E 64-bit floating-point number in scientific notation %c 8-bit unsigned character (unsigned char) %C 16-bit Unicode character (unichar) %s Null-terminated array of 8-bit unsigned characters %S Null-terminated array of 16-bit Unicode characters %p Void Pointer (void *) in hexadecimal ...
    • 26. Cocoa Style
      • Class Names
      • Variable Names
      • Method Names
      • Abbreviations
      • Preprocessor Constants / Macros
    • 27. Class Names
      • capitalized
      • NS... (NeXTSTEP)
      • prefix ~ namespace
    • 28. Variable Names
      • Correct
      • Incorrect
      NSString *hostName; NSNumber *ipAddress; NSArray *accounts; NSString *HST_NM; NSNumber *theip; NSArray *nsma; NSString *_name;
    • 29. Method Names [fileWrapper writeToFile: path atomically: YES updateFilenames: YES]; [finder openFile: mailing withApplication: @”MailDrop” and Deactivate: YES];
    • 30. Preprocessor constants/Macros
      • all capitalized
      #define MAX_ENTRIES 20 #ifdef ENABLE_BINDINGS_SUPPORT
    • 31. Model-View-Controller
      • Model : Data
      • View : UI
      • Controller : Logic
    • 32. Mutable objects
      • NSArray : 초기화 이후 수정 불가
      • NSMutableArray : 가능
    • 33. Delegation
      • The Delegating object : a framework object
      • The Delegate : a custom controller object, typically
      • Delegating Object:Delegate = 1:1
    • 34. Notification
      • Receiver:Poster = n:1
      • Poster can send any message
    • 35. 알아두면 좋은 문서
      • Foundation Framework Reference
      • Cocoa Fundamentals Guide
    • 36. Objective-C
    • 37. Objective-C
      • SmallTalk 에 영향 받아 C 를 확장한 언어
      • 1986 Brad Cox, Tom Love
      • Object-Oriented (Concept/Programming)
    • 38. Object
      • 메모리를 할당 받고 , 그 안에 변수 저장
      • “ 객체에 메모리 할당하는 법 ”
      • “ 객체가 갖고 있는 여러 변수 확인하는 법 ”
      • “ 사용 끝난 객체를 메모리에서 제거하는 법 ”
    • 39. Class
      • Object 를 만드는 공장
    • 40. Instance
      • Class 가 메모리에 생성한 객체
    • 41. Method
      • 객체에 연관된 함수
      • 객체에 Message 를 보내서 Method 를 사용한다 .
    • 42. Framework
      • 함께 사용하는 Class 의 집합
      • Class 를 재사용하기 위해 Library 로 컴파일 해둔 것
      • .framework
    • 43.
      • id (4) : pointer to Object
      • nil : a null Object instance
      • BOOL (char, 1) : YES 1, NO 0
      • char (1), int (4), short (2), long (4), long long (8), double (8)
      Types
    • 44. Operators
      • +, -, /, *, %
      • >, >=, ==, !=, <=, <
      • &&, ||, !
    • 45. Conditions
      • if
      if (test) do_something else if (test) do_something_else else ...
    • 46. Loops
      • while (test) {statement;}
      • do {} while (test);
      • for (...;...;...) {}
    • 47. Defining a class
      • @interface ... @end
      • @implementation
      @interface ClassName : ItsSuperClass { instance variable declarations } method declarations @end #import “ClassName.h” @implementation ClassName method definitions @end
    • 48. Method Declaration
      • MethodType (ReturnType) MethodName: (argumentType) argumentName ...;
      • MethodType + : class method
      • MethodType - : instance method
    • 49. Object Instantiation
      • id anObject = [[SomeClass alloc] init];
      • [anObject release];
    • 50. Object Method Call
      • [receiver message];
      • [aRect setOriginX:30 y:50];
      • [aRect setColor:[otherRect color]];
      • self, super
    • 51. 메모리 관리
      • NSObject, Reference counter
      • new, alloc : 메모리 할당 , ref count +1
      • retain : ref count +1
      • copy : 복사본 생성 , 복사본의 ref count +1
      • release : ref count -1
      • autorelease : 임의 시점에 ref count -1
    • 52. 메모리 관리 con’t
      • dealloc method : 모든 instance 에 release
      • 블록 내에서 alloc : release = 1:1
    • 53. References
      • #import
      • #include
    • 54. Property
      • @property (attributes [,attribute2, ...]) type name;
      • readwrite / readonly
      • assign / retain / copy
      • / nonatomic
      [self setATable:nil]; == [aTable release]; aTable = nil;
    • 55. Property con’t
      • @synthesize : setter, getter
      • Interface Builder outlet
      @property float value; == - (float) value; - (void) setValue: (float) newValue; @property (nonatomic, retain) IBOutlet NSButton *myButton;
    • 56. Protocol
      • @protocol
      @protocol ProtocolName method declarations @end
    • 57. Category
      • Add Methods to Class
      #import “ClassName.h” @interface ClassName (CategoryName) // method declarations @end #import “ClassName+CategoryName.h” @implementation ClassName (CategoryName) // method definitions @end
    • 58. Interface Builder Constants
      • IBOutlet
      • IBAction
      - (IBAction) respondToButtonClick : (id)sender; @interface MyClass : NSObject { NSView * aViewOutlet; } @property (nonatomic, retain) IBOutlet NSView * aViewOutlet; ... @synthesize aViewOutlet;
    • 59. Fast Enumeration
      • NSArray, NSDictionary, NSSet, NSEnumerator, ...
      NSArray *array = [NSArray arrayWithObjects:@”1”, @”2”, @”3”, nil]; for (NSString *string in array) { NSLog(@”string is %@”, string); }
    • 60. Selector
      • Class 의 Method table 에 대응하는 index
      • @selector
      • 프로그램에서 타겟 설정하기
      [myButtonCell setAction:@selector(DoSomething:)];
    • 61. Developer Document 내용 찾아보기
      • NSObject
      • NSArray
      • NSMutableArray
      • NSString
    • 62. Window-based Application
    • 63. Window?
    • 64.  
    • 65. Add a View
    • 66. View?
    • 67. Add a View 1 Add a View 2 Add a View 3 Add a View 4
    • 68. View-based Application
    • 69.  
    • 70. + ‘Hello World’
    • 71. Hello World 1 Hello World 2 Hello World 3

    ×