Class 16iOS 應⽤用軟體設計
課程⼤大綱 (1/3)•   各類型 framework 使⽤用    •   ⽂文件上傳與預覽 (QuickLook.framework)        Samples:DocumentPreview, QuickLookDemo,     ...
課程⼤大綱 (2/3)•   各類型 framework 使⽤用 (續)    •   信件與間訊傳送 (UIMessage.framework)        QV119:MFMail    •   通訊錄 (AddressBook.fram...
課程⼤大綱 (3/3)•   Resources    •   CocoaControls、CocoaObjects、iOSFrameworks•   網⾴頁設計者的框架⼯工具•   程式完成前注意事項    •   完善你的程式    •  ...
各類型 framework 使⽤用http://developer.apple.com/library/ios/#documentation/ Miscellaneous/Conceptual/iPhoneOSTechOverview/  iP...
Cocoa Touch Framework•   Address Book UI Framework•   Event Kit UI Framework•   Game Kit Framework•   iAD Framework•   Map...
⽂文件上傳與預覽(QuickLook.framework)
⽂文件預覽的功能• UIDocumentInteractionController 類別  (iOS 3.2) UIKit  參考範例:DocumentPreview• QuickLook framework  (iOS 4.0) framew...
設定可經由 iTunes 上傳⽂文件• 在 info.plist 中新增 UIFileSharingEnabled  的 key,其值設為 YES
範例觀摩:DocInteractionDemonstrates how to useUIDocumentInteractionController to obtaininformation about documents and how top...
影像輸出⼊入(ImageIO.framework)
⽂文件預覽的功能•   iOS 4 加⼊入•   透過 ImageIO 取得影像及其所包含的資訊,如    尺⼨寸⼤大⼩小、DIP、EXIF 等•   重要類別    •   CGImageSource:影像輸出⼊入和取得資訊    •   C...
範例觀摩ImageIOSample01   ImageIOSample02 (讀取影像資訊)            (建⽴立縮圖)
影⽚片播放(MediaPlayer.framework)
影⽚片處理注意事項• 主要類別 • MPMoviePlayerController• 可讀取內部檔案或網路取得 (需注意⼤大⼩小)• 可處理的影⽚片格式 • H.264 (Baseline Profile Level 3.0) • MPEG-4 ...
範例觀摩:MoviePlayer網路串流            本機檔案
⾳音訊應⽤用(AVFoundation.framework)
影⾳音視訊相關
• MediaPlayer.framework  單純播放聲⾳音和影⽚片  (MPMoviePlayerController)• AVFoundation.framework  進階的影⾳音處理
範例觀摩MediaSample01 (聲⾳音播放)MediaSample02 (錄⾳音)
信件與簡訊傳送(UIMessage.framework)
Project QV119MFMail.....
增加 MessageUI framework
ViewController.h#import <UIKit/UIKit.h>#import <MessageUI/MessageUI.h>@interface ViewController : UIViewController        ...
ViewController.m (1/4)-(IBAction)show1:(id)sender{    if([MFMailComposeViewController canSendMail])    {        MFMailComp...
ViewController.m (2/4)-(IBAction)show2:(id)sender{    if([MFMailComposeViewController canSendMail])    {        MFMailComp...
ViewController.m (3/4)-(IBAction)show3:(id)sende{    if([MFMailComposeViewController canSendMail])    {        MFMailCompo...
ViewController.m (4/4)-(void)mailComposeController:(MFMailComposeViewController *)controllerdidFinishWithResult:(MFMailCom...
補充說明無法在模擬器發出郵件實機需先設定好具 mail 之功能附件的處理......是否能夠強制⽴立即送出?
通訊錄 (AddressBook.framework)(AddressBookUI.framework)
範例觀摩:QuickContactsQuickContacts demonstrateshow to use the Address BookUI controllers and variousproperties such asdisplay...
地圖⼯工具(MapKit.framework)
範例• MapSample01:顯⽰示地圖及⼤大頭釘• MapSample02:MKCircle• MapSample03:應標轉換地址• MapSample04:Polyline• MapSample05:Polygon
iAD ⾏行動廣告平台 (iAD.framework)
運作原理• 在程式內預留⼀一塊空間給 ADBannerView• 點選廣告後即會開始廣告⾴頁⾯面
Banner View
Full-Screen (iPad only)
申請 iAD 服務• 由 iTunes connect 中設定 • Contacts • Banking • Tax• 開發者可收取廣告獲益 70%
Project QV171iAD 廣告
加⼊入 iAD.framework
ViewController.h#import <UIKit/UIKit.h>#import <iAd/iAD.h>@interface ViewController : UIViewController <ADBannerViewDelega...
ViewController.m (1/2)#import <iAD/iAD.h>@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];    /* ...
加⼊入完整的代理程式                                     ViewController.m (2/2)- (void) bannerViewWillLoadAd:(ADBannerView *)banner{...
補充參考ADBannerView 的基本使⽤用⽅方法(http://furnacedigital.blogspot.tw/2011/09/adbannerview.html)
其他功能• AirPrint (無線列印;UIKit)• Game Center (遊戲社群平台)• ......
⾮非官⽅方 Framework• iOS 好⽤用 framework 分享  (http://taiwanwolf.blogspot.tw/2012/02/ios-framework.html)
Resource ...
http://cocoacontrols.com/
http://cocoaobjects.com/
http://iosframeworks.com/
適合網⾴頁設計者的       框架⼯工具• 參考:10⼤大優秀的移動 Web 應⽤用程序開 發框架推薦 (http://www.hksilicon.com/kb/articles/53695/10Web?mobi=true)
不同的開發⽅方式Objective-C                                      iOS App iOS SDK                         NimbleKit...          HTM...
Nimblekit  http://nimblekit.com
直接將網⾴頁轉為 iOS App
jQuery MobileHTML5+jQuery 的⼿手機網⾴頁       http://jquerymobile.com/
PhoneGap將 HTML 網⾴頁包裝成                http://phonegap.com/  各平台的專案
Appcelerator (Titanium)開發者寫 Javascript去呼叫 Titanium API   http://www.appcelerator.com/
程式完成前注意事項
完善你的程式• 應⽤用程式的設定 info.plist• 圖像與啟動圖⽚片• 多國語系• 使⽤用 Instruments 檢測
圖像 icon• Application icon  • 存放在 Application Bundle 的第⼀一層⺫⽬目錄  • iPhone: 57x57; 114x114 (檔案結尾@2x)  • iPad: 72x72  • Settin...
ICONSource: http://www.vickiwenderlich.com/2012/09/app-icon-size-reference-chart/
more iconSource: http://www.vickiwenderlich.com/2012/09/app-icon-size-reference-chart/
• Icon.png (57x57)  Icon@2x.png (114x114)• Icon-72.png (72x72)• Icon-Small.png (29x29)  Ion-Small@2x.png (58x58)• Icon-Sma...
啟動圖⽚片•   圖檔尺⼨寸                •   圖檔名    •   iPhone:        320x480                             •   Default-PortraitUpside...
多國語⾔言(Localization)
Project QV172多國語⾔言
在專案設定中增加使⽤用的語⾔言 (zh-Hant)
會增加不同語系 下的檔案
必要時檢查其檔案編碼為 utf-8
InfoPlist.strings 檔  案內定義字串 (兩個檔案都要)
ViewController.xib (English)    xib 檔案內設計畫⾯面      (兩個檔案都要)     注意:和類別裡的       關聯設定也是     兩個檔案都要拉線
ViewController.h    @interface ViewController : UIViewController    {        IBOutlet UILabel *display;    }              ...
測試時,可在⼿手機的 setup(設定) 裡更改語系後,重新執⾏行
xcode
Instrument
Instruments
上架⽅方式•   申請帳號 iPhone Developer Program•   建⽴立應⽤用程序 profile....等相關程序•   上傳 Binary (在 xcode4 內的 Organizer 發佈)•   建⽴立 .ipa 檔案 ...
管理應⽤用程式• iTunes Connect • Sales and Trends • Manage Your Applicatons • Contacts, Tax, and Banking • Payments and Financial...
............
I os 16
I os 16
I os 16
Upcoming SlideShare
Loading in …5
×

I os 16

548 views
452 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
548
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

I os 16

  1. 1. Class 16iOS 應⽤用軟體設計
  2. 2. 課程⼤大綱 (1/3)• 各類型 framework 使⽤用 • ⽂文件上傳與預覽 (QuickLook.framework) Samples:DocumentPreview, QuickLookDemo, DocInteraction...... • 影像輸出⼊入 (ImageIO.framework) Samples:ImageIOSample01, ImageIOSample02 • 影⽚片播放 (MediaPlayer.framework) Samples:MoviePlayer • ⾳音訊應⽤用 (AVFoundation.framework) Samples:MediaSample01, MediaSample02
  3. 3. 課程⼤大綱 (2/3)• 各類型 framework 使⽤用 (續) • 信件與間訊傳送 (UIMessage.framework) QV119:MFMail • 通訊錄 (AddressBook.framework, AddressBookUI.framework) • 地圖⼯工具 (MapKit.framework) Samples:MapSample01~MapSample05 • iAD ⾏行動廣告平台 (iAD.framework) QV171:iAD• ⾮非官⽅方 framework...
  4. 4. 課程⼤大綱 (3/3)• Resources • CocoaControls、CocoaObjects、iOSFrameworks• 網⾴頁設計者的框架⼯工具• 程式完成前注意事項 • 完善你的程式 • 圖像 icon 與啟動畫⾯面 • 多國語⾔言 (QV172:多國語⾔言⽰示範) • 上架⽅方式 • 管理應⽤用程式
  5. 5. 各類型 framework 使⽤用http://developer.apple.com/library/ios/#documentation/ Miscellaneous/Conceptual/iPhoneOSTechOverview/ iPhoneOSFrameworks/iPhoneOSFrameworks.html
  6. 6. Cocoa Touch Framework• Address Book UI Framework• Event Kit UI Framework• Game Kit Framework• iAD Framework• Map Kit Framework• Message UI Framework• Twitter Framework• UI Kit Framework• ......
  7. 7. ⽂文件上傳與預覽(QuickLook.framework)
  8. 8. ⽂文件預覽的功能• UIDocumentInteractionController 類別 (iOS 3.2) UIKit 參考範例:DocumentPreview• QuickLook framework (iOS 4.0) framework 參考範例:QuickLookDemo
  9. 9. 設定可經由 iTunes 上傳⽂文件• 在 info.plist 中新增 UIFileSharingEnabled 的 key,其值設為 YES
  10. 10. 範例觀摩:DocInteractionDemonstrates how to useUIDocumentInteractionController to obtaininformation about documents and how topreview them. There are two ways topreview documents: one is to useUIDocumentInteractionControllers previewAPI, the other is directly useQLPreviewController. This sample alsodemonstrates the use ofUIFileSharingEnabled feature so you canupload documents to the application usingiTunes and then to preview them. With thehelp of "kqueue" kernel event notifications,the sample monitors the contents of theDocuments folder.
  11. 11. 影像輸出⼊入(ImageIO.framework)
  12. 12. ⽂文件預覽的功能• iOS 4 加⼊入• 透過 ImageIO 取得影像及其所包含的資訊,如 尺⼨寸⼤大⼩小、DIP、EXIF 等• 重要類別 • CGImageSource:影像輸出⼊入和取得資訊 • CGImageDestination:影像的輸出輸出的輸出 和輸出呈現⽅方式 • CGImageProperties:各種屬性資訊說明
  13. 13. 範例觀摩ImageIOSample01 ImageIOSample02 (讀取影像資訊) (建⽴立縮圖)
  14. 14. 影⽚片播放(MediaPlayer.framework)
  15. 15. 影⽚片處理注意事項• 主要類別 • MPMoviePlayerController• 可讀取內部檔案或網路取得 (需注意⼤大⼩小)• 可處理的影⽚片格式 • H.264 (Baseline Profile Level 3.0) • MPEG-4 Part 2 video (Simple Profile)
  16. 16. 範例觀摩:MoviePlayer網路串流 本機檔案
  17. 17. ⾳音訊應⽤用(AVFoundation.framework)
  18. 18. 影⾳音視訊相關
  19. 19. • MediaPlayer.framework 單純播放聲⾳音和影⽚片 (MPMoviePlayerController)• AVFoundation.framework 進階的影⾳音處理
  20. 20. 範例觀摩MediaSample01 (聲⾳音播放)MediaSample02 (錄⾳音)
  21. 21. 信件與簡訊傳送(UIMessage.framework)
  22. 22. Project QV119MFMail.....
  23. 23. 增加 MessageUI framework
  24. 24. ViewController.h#import <UIKit/UIKit.h>#import <MessageUI/MessageUI.h>@interface ViewController : UIViewController 要加上<MFMailComposeViewControllerDelegate>-(IBAction)show1:(id)sender;-(IBAction)show2:(id)sender;-(IBAction)show3:(id)sender;@end
  25. 25. ViewController.m (1/4)-(IBAction)show1:(id)sender{ if([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init]; mailView.mailComposeDelegate = self; // 信件標題 [mailView setSubject:@"Hello World"]; // 信件本⽂文 [mailView setMessageBody:@"Hey, this is from my app" isHTML:NO]; // 顯⽰示 [self presentViewController:mailView animated:YES completion:^{NSLog(@"ok");}]; }}
  26. 26. ViewController.m (2/4)-(IBAction)show2:(id)sender{ if([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailView = [MFMailComposeViewController alloc] init]; mailView.mailComposeDelegate = self; // 信件標題 [mailView setSubject:@"吃飯通知"]; // 信件本⽂文使⽤用HTML碼 NSString *emailBody = @"Hey, <br/><br/> this is from my app"; [mailView setMessageBody:emailBody isHTML:YES]; // 各種收件⼈人 [mailView setToRecipients:[NSArrayarrayWithObjects:@"shinjia168@gmail.com", @"bruce@mail.com", nil]]; [mailView setCcRecipients:[NSArrayarrayWithObjects:@"candy@mail.com", @"david@mail.com", nil]]; [mailView setBccRecipients:[NSArrayarrayWithObjects:@"eric@mail.com", nil]]; // 顯⽰示 [self presentViewController:mailView animated:YES completion:^{NSLog(@"ok");}]; }}
  27. 27. ViewController.m (3/4)-(IBAction)show3:(id)sende{ if([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init]; mailView.mailComposeDelegate = self; ****** 省略部分程式 ****** //加⼊入圖⽚片 UIImage *theImage = [UIImage imageNamed:@"Cat.png"]; NSData *imageData = UIImagePNGRepresentation(theImage); [mailView addAttachmentData:imageData mimeType:@"image/png" fileName:@"image"]; // 顯⽰示 [self presentViewController:mailView animated:YES completion:^{NSLog(@"ok");}]; }}
  28. 28. ViewController.m (4/4)-(void)mailComposeController:(MFMailComposeViewController *)controllerdidFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ [self dismissViewControllerAnimated:YES completion:nil];}
  29. 29. 補充說明無法在模擬器發出郵件實機需先設定好具 mail 之功能附件的處理......是否能夠強制⽴立即送出?
  30. 30. 通訊錄 (AddressBook.framework)(AddressBookUI.framework)
  31. 31. 範例觀摩:QuickContactsQuickContacts demonstrateshow to use the Address BookUI controllers and variousproperties such asdisplayedProperties,allowsAddingToAddressBook,and displayPerson. It showshow to browse a list ofAddress Book contacts,display and edit a contactrecord, create a new contactrecord, and update a partialcontact record.
  32. 32. 地圖⼯工具(MapKit.framework)
  33. 33. 範例• MapSample01:顯⽰示地圖及⼤大頭釘• MapSample02:MKCircle• MapSample03:應標轉換地址• MapSample04:Polyline• MapSample05:Polygon
  34. 34. iAD ⾏行動廣告平台 (iAD.framework)
  35. 35. 運作原理• 在程式內預留⼀一塊空間給 ADBannerView• 點選廣告後即會開始廣告⾴頁⾯面
  36. 36. Banner View
  37. 37. Full-Screen (iPad only)
  38. 38. 申請 iAD 服務• 由 iTunes connect 中設定 • Contacts • Banking • Tax• 開發者可收取廣告獲益 70%
  39. 39. Project QV171iAD 廣告
  40. 40. 加⼊入 iAD.framework
  41. 41. ViewController.h#import <UIKit/UIKit.h>#import <iAd/iAD.h>@interface ViewController : UIViewController <ADBannerViewDelegate>{}@end 加⼊入代理協定
  42. 42. ViewController.m (1/2)#import <iAD/iAD.h>@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; /* 最簡單的⽅方式 ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; [self.view addSubview:adView]; */ // 完整的廣告處理 ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; adView.delegate = self; [self.view addSubview:adView];}
  43. 43. 加⼊入完整的代理程式 ViewController.m (2/2)- (void) bannerViewWillLoadAd:(ADBannerView *)banner{ // 當使⽤用者按下廣告的時候}- (void) bannerViewDidLoadAd:(ADBannerView *)banner{ // 當廣告 banner 被載⼊入完成之後}- (BOOL) bannerViewActionShouldBegin:(ADBannerView *)bannerwillLeaveApplication:(BOOL)willLeave{ // 廣告旦否要被開啟或要被關閉 return YES;}- (void) bannerViewActionDidFinish:(ADBannerView *)banner{ // 當廣告被關閉之後}- (void) bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{ // 當廣告載⼊入錯誤的時候}
  44. 44. 補充參考ADBannerView 的基本使⽤用⽅方法(http://furnacedigital.blogspot.tw/2011/09/adbannerview.html)
  45. 45. 其他功能• AirPrint (無線列印;UIKit)• Game Center (遊戲社群平台)• ......
  46. 46. ⾮非官⽅方 Framework• iOS 好⽤用 framework 分享 (http://taiwanwolf.blogspot.tw/2012/02/ios-framework.html)
  47. 47. Resource ...
  48. 48. http://cocoacontrols.com/
  49. 49. http://cocoaobjects.com/
  50. 50. http://iosframeworks.com/
  51. 51. 適合網⾴頁設計者的 框架⼯工具• 參考:10⼤大優秀的移動 Web 應⽤用程序開 發框架推薦 (http://www.hksilicon.com/kb/articles/53695/10Web?mobi=true)
  52. 52. 不同的開發⽅方式Objective-C iOS App iOS SDK NimbleKit... HTML/CSS/ Javascript ⼀一般網⾴頁 HTML5/CSS3/ ⼿手機網⾴頁Android SDK Javascript Jave Android App
  53. 53. Nimblekit http://nimblekit.com
  54. 54. 直接將網⾴頁轉為 iOS App
  55. 55. jQuery MobileHTML5+jQuery 的⼿手機網⾴頁 http://jquerymobile.com/
  56. 56. PhoneGap將 HTML 網⾴頁包裝成 http://phonegap.com/ 各平台的專案
  57. 57. Appcelerator (Titanium)開發者寫 Javascript去呼叫 Titanium API http://www.appcelerator.com/
  58. 58. 程式完成前注意事項
  59. 59. 完善你的程式• 應⽤用程式的設定 info.plist• 圖像與啟動圖⽚片• 多國語系• 使⽤用 Instruments 檢測
  60. 60. 圖像 icon• Application icon • 存放在 Application Bundle 的第⼀一層⺫⽬目錄 • iPhone: 57x57; 114x114 (檔案結尾@2x) • iPad: 72x72 • Setting icon: iPhone(29x29);iPad(58x58) • Search icon: iPhone(29x29, 58x58); iPad(50x50)
  61. 61. ICONSource: http://www.vickiwenderlich.com/2012/09/app-icon-size-reference-chart/
  62. 62. more iconSource: http://www.vickiwenderlich.com/2012/09/app-icon-size-reference-chart/
  63. 63. • Icon.png (57x57) Icon@2x.png (114x114)• Icon-72.png (72x72)• Icon-Small.png (29x29) Ion-Small@2x.png (58x58)• Icon-Small-50.png (50x50)
  64. 64. 啟動圖⽚片• 圖檔尺⼨寸 • 圖檔名 • iPhone: 320x480 • Default-PortraitUpsideDown.png 640x960 (@2x) • Default-LandscapeLeft.png (不⽀支援橫向) • Default-LandscapeRight.png • iPad: • Default-Portrait.png 768x1024 (橫向為 1024x768) • Default-Landscape.png
  65. 65. 多國語⾔言(Localization)
  66. 66. Project QV172多國語⾔言
  67. 67. 在專案設定中增加使⽤用的語⾔言 (zh-Hant)
  68. 68. 會增加不同語系 下的檔案
  69. 69. 必要時檢查其檔案編碼為 utf-8
  70. 70. InfoPlist.strings 檔 案內定義字串 (兩個檔案都要)
  71. 71. ViewController.xib (English) xib 檔案內設計畫⾯面 (兩個檔案都要) 注意:和類別裡的 關聯設定也是 兩個檔案都要拉線
  72. 72. ViewController.h @interface ViewController : UIViewController { IBOutlet UILabel *display; } ViewController.m- (void)viewDidLoad{ [super viewDidLoad]; display.text = NSLocalizedStringFromTable(@"LabelString", @"InfoPlist", nil);}
  73. 73. 測試時,可在⼿手機的 setup(設定) 裡更改語系後,重新執⾏行
  74. 74. xcode
  75. 75. Instrument
  76. 76. Instruments
  77. 77. 上架⽅方式• 申請帳號 iPhone Developer Program• 建⽴立應⽤用程序 profile....等相關程序• 上傳 Binary (在 xcode4 內的 Organizer 發佈)• 建⽴立 .ipa 檔案 (供測試之⽤用,ad hoc 認證)
  78. 78. 管理應⽤用程式• iTunes Connect • Sales and Trends • Manage Your Applicatons • Contacts, Tax, and Banking • Payments and Financial Reports • Manage Users
  79. 79. ............

×