iPhone Lecture #1

1,499 views
1,398 views

Published on

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
1,499
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

iPhone Lecture #1

  1. 1. Welcome to <ul><li>www.gurunun.com </li></ul><ul><li>오재혁 </li></ul><ul><li>[email_address] </li></ul>the iPhone World
  2. 2. 개발자 등록 및 SDK 설치 -
  3. 3. <ul><li>애플 개발자 등록 </li></ul><ul><li>SDK 다운로드 </li></ul><ul><li>iPhone Developer Program </li></ul>
  4. 4. 애플 개발자 등록
  5. 5. 등록과정
  6. 6. SDK 다운로드
  7. 7. SDK 다운로드
  8. 8. iPhone Developer Program 등록
  9. 9. devProgram 등록1
  10. 10. devProgram등록2
  11. 11. 테스트 iPhone 준비
  12. 12. <ul><li>프로파일 종류 </li></ul><ul><li>프로파일 준비 </li></ul><ul><li>프로파일 확인 </li></ul>
  13. 13. 프로파일 종류
  14. 14. <ul><li>Development Profile </li></ul><ul><li>Distribution Profile </li></ul>
  15. 15. 프로파일 준비
  16. 16. <ul><li>인증서 등록 </li></ul><ul><li>기기 등록 </li></ul><ul><li>App ID 생성 </li></ul><ul><li>프로파일 생성 </li></ul><ul><li>프로파일 설치 </li></ul>
  17. 17. 인증서 등록
  18. 18. <ul><li>Certificate Signing Request </li></ul><ul><li>Create Development/Distribution Certificate </li></ul><ul><li>WWDR (Apple Worldwide Developer Relations Certification Authority) </li></ul>
  19. 19. Certificate Signing Request
  20. 20. PublicKey생성
  21. 21. Create/Download Certificate, WWDR
  22. 22. 인증서생성
  23. 23. 키체인에 인증서 추가
  24. 24. 인증서추가
  25. 25. 기기 등록
  26. 26. device 추가
  27. 27. App ID 생성
  28. 28. AppID생성
  29. 29. 프로파일 생성
  30. 30. 프로파일생성
  31. 31. 프로파일 설치
  32. 32. 프로파일설치
  33. 33. 프로파일 확인
  34. 34. 프로파일확인
  35. 35. 유료 판매를 위한 준비 준비
  36. 36. iTunes Connect
  37. 37. iTunesConnect소개
  38. 38. 계약 요청
  39. 40. Ref. Developer Guide
  40. 41. Ref. Developer Guide (validate Financial Name and Legal Entity Address)
  41. 42. Bank 정보 제공
  42. 43. Ref. Developer Guide
  43. 51. Tax 정보 제공
  44. 56. 어플리케이션 등록
  45. 57. 어플리케이션등록
  46. 58. 등록 이후
  47. 59. 어플리케이션등록이후
  48. 60. Objective-C
  49. 61. <ul><li>id (4) : pointer to Object </li></ul><ul><li>nil : a null Object instance </li></ul><ul><li>BOOL (char, 1) : YES 1, NO 0 </li></ul><ul><li>char (1), int (4), short (2), long (4), long long (8), double (8) </li></ul>Types
  50. 62. Operators <ul><li>+, -, /, *, % </li></ul><ul><li>>, >=, ==, !=, <=, < </li></ul><ul><li>&&, ||, ! </li></ul>
  51. 63. Conditions <ul><li>if </li></ul>if (test) do_something else if (test) do_something_else else ...
  52. 64. Loops <ul><li>while (test) {statement;} </li></ul><ul><li>do {} while (test); </li></ul><ul><li>for (...;...;...) {} </li></ul>
  53. 65. Ref. OpenGLES template Project Project Project
  54. 66. OpenGLESApplication소개
  55. 68. Objective-C문법소개1
  56. 69. Objective-C문법소개2
  57. 70. Objective-C문법소개3
  58. 71. Objective-C문법소개4
  59. 72. Objective-C문법소개5
  60. 73. Fast Enumeration NSArray *array = [NSArray arrayWithObjects:@”1”, @”2”, @”3”, nil]; for ( NSString *string in array ) { NSLog(@”string is %@”, string); }
  61. 74. 메모리 관리 <ul><li>NSObject, Reference counter </li></ul><ul><li>new, alloc : +1 </li></ul><ul><li>retain : 원본 +1 </li></ul><ul><li>copy : 사본 +1 </li></ul><ul><li>release : -1 </li></ul><ul><li>autorelease : 임의시점에 -1 </li></ul>
  62. 75. 메모리 관리 con’t <ul><li>dealloc method : 모든 instance 에 release </li></ul><ul><li>블록 내에서 alloc : release = 1:1 </li></ul>
  63. 76. Cocoa
  64. 77. Cocoa Style <ul><li>Class Names </li></ul><ul><li>Variable Names </li></ul><ul><li>Method Names </li></ul><ul><li>Abbreviations </li></ul><ul><li>Preprocessor Constants / Macros </li></ul>
  65. 78. Class Names <ul><li>capitalized </li></ul><ul><li>NS... (NeXTSTEP) </li></ul><ul><li>prefix ~ namespace </li></ul>
  66. 79. Variable Names <ul><li>Correct </li></ul><ul><li>Incorrect </li></ul>NSString *hostName; NSNumber *ipAddress; NSArray *accounts; NSString *HST_NM; NSNumber *theip; NSArray *nsma; NSString *_name;
  67. 80. Method Names [fileWrapper writeToFile: path atomically: YES updateFilenames: YES]; [finder openFile: mailing withApplication: @”MailDrop” and Deactivate: YES];
  68. 81. Abbreviations
  69. 82. GuidelinesForCocoa
  70. 83. Preprocessor constants/Macros <ul><li>all capitalized </li></ul>#define MAX_ENTRIES 20 #ifdef ENABLE_BINDINGS_SUPPORT
  71. 84. Key-Value-Coding
  72. 85. ClassMethodDef .
  73. 86. [[column identifier isEqualToString:@”name”] SEL aSelector = NSSelectorFromString(@”methodName”); NSString *name = [person valueForKey:@”firstName”]; ...
  74. 87. Model-View-Controller <ul><li>Model : Data </li></ul><ul><li>View : UI </li></ul><ul><li>Controller : Logic </li></ul>
  75. 88. Mutable objects <ul><li>NSArray : 초기화 이후 수정 불가 </li></ul><ul><li>NSMutableArray : 가능 </li></ul>
  76. 89. Delegation <ul><li>The Delegating object : a framework object </li></ul><ul><li>The Delegate : a custom controller object, typically </li></ul><ul><li>Delegating Object:Delegate = 1:1 </li></ul>
  77. 90. ImplementDelegate
  78. 91. Notification <ul><li>Receiver:Poster = n:1 </li></ul><ul><li>Poster can send any message </li></ul>
  79. 92. Debugging
  80. 93. DebuggerOpen
  81. 94. NSAssert
  82. 95. NSAssert 소개
  83. 96. NS_BLOCK_ASSERTIONS
  84. 97. NSLog
  85. 98. NSLog소개
  86. 99. NSException
  87. 100. NSException소개
  88. 101. iPhone Frameworks
  89. 102. <ul><li>Core OS Layer </li></ul><ul><li>Core Services Layer </li></ul><ul><li>Media Layer </li></ul><ul><li>Cocoa Touch Layer </li></ul>
  90. 103. <ul><li>External Accessory </li></ul><ul><li>Security </li></ul>Core OS Layer
  91. 104. External Accessory <ul><li>30-pin dock connector </li></ul><ul><li>Bluetooth </li></ul>
  92. 105. Security <ul><li>Keychain </li></ul><ul><li>Random number generator </li></ul>
  93. 106. Core Services Layer <ul><li>Address Book </li></ul><ul><li>CFNetwork </li></ul><ul><li>Core Data </li></ul><ul><li>Core Location </li></ul><ul><li>Core Foundation </li></ul><ul><li>Foundation </li></ul><ul><li>MobileCore Services </li></ul><ul><li>Store Kit </li></ul><ul><li>System Configuration </li></ul>
  94. 107. Address Book <ul><li>User’s Contacts </li></ul><ul><li>Mail </li></ul><ul><li>SMS </li></ul>
  95. 108. CFNetwork <ul><li>BSD sockets </li></ul><ul><li>SSL (Secure Socket Layer), TLS (Transport Layer Security) </li></ul><ul><li>Resolving DNS hosts </li></ul><ul><li>HTTP, FTP </li></ul><ul><li>Bonjour services </li></ul>
  96. 109. Core Data <ul><li>support for Data management </li></ul>
  97. 110. Core Location <ul><li>Latitude </li></ul><ul><li>Longitude </li></ul>
  98. 111. Core Foundation <ul><li>the basis for Foundation </li></ul>
  99. 112. Foundation <ul><li>“nuts and bolts” for Objective-C programming </li></ul>
  100. 113. Mobile Core Services <ul><li>Uniform Type Identifiers </li></ul>
  101. 114. Store Kit <ul><li>in-app purchase </li></ul>
  102. 115. System Configuration <ul><li>network reachability </li></ul>
  103. 116. Media Layer <ul><li>Audio ToolBox </li></ul><ul><li>Audio Unit </li></ul><ul><li>AV Foundation </li></ul><ul><li>Core Audio </li></ul><ul><li>Media Player </li></ul><ul><li>Core Graphics </li></ul><ul><li>Core Text </li></ul><ul><li>Quartz Core </li></ul><ul><li>OpenGL ES </li></ul>
  104. 117. Audio <ul><li>Audio Session </li></ul><ul><li>Audio Queue </li></ul><ul><li>Audio Unit </li></ul>
  105. 118. Audio Session <ul><li>mix app’s sounds with other’s </li></ul><ul><li>respond to an audio interruption </li></ul><ul><li>respond when a user plug in or unplug a headset </li></ul>
  106. 119. Audio Queue <ul><li>a straight forward, low overhead way to record/play audio </li></ul>
  107. 120. Audio Unit <ul><li>Convert unit </li></ul><ul><li>iPod Equalizer unit </li></ul><ul><li>3D Mixer unit </li></ul><ul><li>Multichannel Mixer unit </li></ul><ul><li>Generic Output unit </li></ul><ul><li>I/O unit </li></ul><ul><li>Voice Processing I/O unit </li></ul>
  108. 121. AV Foundation <ul><li>Objective-C interface for handling audio </li></ul>
  109. 122. Media Player <ul><li>playing video/audio files </li></ul>
  110. 123. Core Graphics <ul><li>Quartz 2D drawing engine </li></ul>
  111. 124. Core Text <ul><li>laying out text, handling fonts </li></ul>
  112. 125. Quartz Core <ul><li>Core Animation </li></ul>
  113. 126. OpenGL ES <ul><li>a compact and efficient subset of the OpenGL </li></ul>
  114. 127. Cocoa Touch Layer <ul><li>Address Book UI </li></ul><ul><li>Game Kit </li></ul><ul><li>Map Kit </li></ul><ul><li>Message UI </li></ul><ul><li>UIKit </li></ul>
  115. 128. Address Book UI <ul><li>user’s contacts </li></ul>
  116. 129. Game Kit <ul><li>peer-to-peer connectivity </li></ul><ul><li>in-game voice </li></ul>
  117. 130. Map Kit <ul><li>display map or satellite imagery with custom information </li></ul>
  118. 131. Message UI <ul><li>email messages </li></ul>
  119. 132. UIKit <ul><li>event handling, drawing, windows, views, controls for Multi-Touch interface </li></ul>

×