Your SlideShare is downloading. ×
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
Developing iPhone Applications In .Net - March 16 SDC2010
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

Developing iPhone Applications In .Net - March 16 SDC2010

1,131

Published on

iPhone development opens up a world of opportunities for developers that invest the time to learn this exciting platform. And Monotouch allows developers to create C# and .NET-based applications that …

iPhone development opens up a world of opportunities for developers that invest the time to learn this exciting platform. And Monotouch allows developers to create C# and .NET-based applications that run on the iPhone while taking advantage of the iPhone API’s and their existing libraries and skills.

Experience a quick start to iPhone application development using the language and libraries that you are already familiar with, and prepare to learn something new about how to use what the iPhone API’s have to offer. Gain a solid understanding of the basics of iPhone development in .NET, and get up and running quickly building the next killer iPhone app.

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,131
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
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

Transcript

  • 1. Dev e lo p in g iP h o n e A ppl i c a t i ons i n Paul  Rayner AGILITY.  CRAFT.  ARCHITECTURE. Tuesday, March 16, 2010
  • 2. Why the iPhone? Tuesday, March 16, 2010
  • 3. Why the iPhone? Tuesday, March 16, 2010
  • 4. Tools Tuesday, March 16, 2010
  • 5. Distributing Apps Tuesday, March 16, 2010
  • 6. Tuesday, March 16, 2010
  • 7. MonoTouch Tools Tuesday, March 16, 2010
  • 8. MonoTouch Tools Tuesday, March 16, 2010
  • 9. MonoTouch Tools Tuesday, March 16, 2010
  • 10. Demo :: Getting Started Tuesday, March 16, 2010
  • 11. Demo :: Getting Started Tuesday, March 16, 2010
  • 12. iPhone Constraints Tuesday, March 16, 2010
  • 13. iPhone Constraints •iPhone  apps  are  not  small  desktop  apps Tuesday, March 16, 2010
  • 14. iPhone Constraints •iPhone  apps  are  not  small  desktop  apps •Limited  resources Tuesday, March 16, 2010
  • 15. iPhone Constraints •iPhone  apps  are  not  small  desktop  apps •Limited  resources •Different  usage  pa8erns Tuesday, March 16, 2010
  • 16. iPhone Constraints •iPhone  apps  are  not  small  desktop  apps •Limited  resources •Different  usage  pa8erns •Only  one  applica;on  can  run  at  a  ;me Tuesday, March 16, 2010
  • 17. iPhone Constraints •iPhone  apps  are  not  small  desktop  apps •Limited  resources •Different  usage  pa8erns •Only  one  applica;on  can  run  at  a  ;me •Handle  device  differences  gracefully Tuesday, March 16, 2010
  • 18. iPhone Constraints •iPhone  apps  are  not  small  desktop  apps •Limited  resources •Different  usage  pa8erns •Only  one  applica;on  can  run  at  a  ;me •Handle  device  differences  gracefully •Devs:  No  JIT  compila;on,  no  scrip;ng Tuesday, March 16, 2010
  • 19. Cocoa & Objective-C ! NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:// virtualgenius:dummypassword@twitter.com/statuses/update.xml"] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! cachePolicy:NSURLRequestUseProtocolCachePolicy ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! timeoutInterval:60.0]; Text ! [theRequest setHTTPMethod:@"POST"]; ! [theRequest setHTTPBody:[[NSString stringWithFormat:@"status=%@", themessage] dataUsingEncoding:NSASCIIStringEncoding]]; ! NSURLResponse* response; ! NSError* error; ! NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; ! NSLog(@"%@", [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease]); Tuesday, March 16, 2010
  • 20. Cocoa & Objective-C ! NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:// virtualgenius:dummypassword@twitter.com/statuses/update.xml"] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! cachePolicy:NSURLRequestUseProtocolCachePolicy ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! timeoutInterval:60.0]; Text ! [theRequest setHTTPMethod:@"POST"]; ! [theRequest setHTTPBody:[[NSString stringWithFormat:@"status=%@", themessage] dataUsingEncoding:NSASCIIStringEncoding]]; ! NSURLResponse* response; ! NSError* error; ! NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; ! NSLog(@"%@", [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease]); Tuesday, March 16, 2010
  • 21. Cocoa & Objective-C ! NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:// virtualgenius:dummypassword@twitter.com/statuses/update.xml"] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! cachePolicy:NSURLRequestUseProtocolCachePolicy ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! timeoutInterval:60.0]; ! [theRequest setHTTPMethod:@"POST"]; ! [theRequest setHTTPBody:[[NSString stringWithFormat:@"status=%@", themessage] dataUsingEncoding:NSASCIIStringEncoding]]; ! NSURLResponse* response; ! NSError* error; ! NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; ! NSLog(@"%@", [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease]); Tuesday, March 16, 2010
  • 22. Cocoa & Objective-C •When  there  is  no  more  memory,  there  is   ! NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:// ! ! no  more  memory virtualgenius:dummypassword@twitter.com/statuses/update.xml"] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! cachePolicy:NSURLRequestUseProtocolCachePolicy ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! timeoutInterval:60.0]; ! [theRequest setHTTPMethod:@"POST"]; ! [theRequest setHTTPBody:[[NSString stringWithFormat:@"status=%@", themessage] dataUsingEncoding:NSASCIIStringEncoding]]; ! NSURLResponse* response; ! NSError* error; ! NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; ! NSLog(@"%@", [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease]); Tuesday, March 16, 2010
  • 23. Cocoa & Objective-C •When  there  is  no  more  memory,  there  is   ! NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:// ! ! no  more  memory virtualgenius:dummypassword@twitter.com/statuses/update.xml"] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! •No  automa3c  objects  on  the  stack. cachePolicy:NSURLRequestUseProtocolCachePolicy ! ! ! ! ! ! ! timeoutInterval:60.0]; ! ! ! ! ! ! ! ! ! ! ! ! ! ! [theRequest setHTTPMethod:@"POST"]; ! [theRequest setHTTPBody:[[NSString stringWithFormat:@"status=%@", themessage] dataUsingEncoding:NSASCIIStringEncoding]]; ! NSURLResponse* response; ! NSError* error; ! NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; ! NSLog(@"%@", [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease]); Tuesday, March 16, 2010
  • 24. Cocoa & Objective-C •When  there  is  no  more  memory,  there  is   ! NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:// ! ! no  more  memory virtualgenius:dummypassword@twitter.com/statuses/update.xml"] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! •No  automa3c  objects  on  the  stack. cachePolicy:NSURLRequestUseProtocolCachePolicy ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! •No  garbage  collector  (manual  memory   timeoutInterval:60.0]; ! [theRequest setHTTPMethod:@"POST"]; ! [theRequest setHTTPBody:[[NSString stringWithFormat:@"status=%@", management) themessage] dataUsingEncoding:NSASCIIStringEncoding]]; ! NSURLResponse* response; ! NSError* error; ! NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; ! NSLog(@"%@", [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease]); Tuesday, March 16, 2010
  • 25. Cocoa & Objective-C •When  there  is  no  more  memory,  there  is   ! NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http:// ! ! no  more  memory virtualgenius:dummypassword@twitter.com/statuses/update.xml"] ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! •No  automa3c  objects  on  the  stack. cachePolicy:NSURLRequestUseProtocolCachePolicy ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! •No  garbage  collector  (manual  memory   timeoutInterval:60.0]; ! [theRequest setHTTPMethod:@"POST"]; ! [theRequest setHTTPBody:[[NSString stringWithFormat:@"status=%@", management) themessage] dataUsingEncoding:NSASCIIStringEncoding]]; ! NSURLResponse* response; ! NSError* error; ! NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; ! NSLog(@"%@", [[[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding] autorelease]); Tuesday, March 16, 2010
  • 26. MonoTouch Limitations Tuesday, March 16, 2010
  • 27. MonoTouch Limitations •No  JIT  or  scrip3ng Tuesday, March 16, 2010
  • 28. MonoTouch Limitations •No  JIT  or  scrip3ng •No  code  gen  at  run3me Tuesday, March 16, 2010
  • 29. MonoTouch Limitations •No  JIT  or  scrip3ng •No  code  gen  at  run3me System.Reflec3on.Emit  not  available Tuesday, March 16, 2010
  • 30. MonoTouch Limitations •No  JIT  or  scrip3ng •No  code  gen  at  run3me System.Reflec3on.Emit  not  available No  support  for  System.Run3me.Remo3ng Tuesday, March 16, 2010
  • 31. MonoTouch Limitations •No  JIT  or  scrip3ng •No  code  gen  at  run3me System.Reflec3on.Emit  not  available No  support  for  System.Run3me.Remo3ng No  support  for  DLR  languages  (eg.  IronRuby,   IronPython) Tuesday, March 16, 2010
  • 32. MonoTouch Limitations •No  JIT  or  scrip3ng •No  code  gen  at  run3me System.Reflec3on.Emit  not  available No  support  for  System.Run3me.Remo3ng No  support  for  DLR  languages  (eg.  IronRuby,   IronPython) See  hJp://monotouch.net/Documenta3on/ Limita3ons Tuesday, March 16, 2010
  • 33. Sample App Walkthrough Tuesday, March 16, 2010
  • 34. What’s Next? 15 Tuesday, March 16, 2010
  • 35. What’s Next? 15 Tuesday, March 16, 2010
  • 36. What’s Next? 15 Tuesday, March 16, 2010
  • 37. What’s Next? 15 Tuesday, March 16, 2010
  • 38. iPhone  development  is   challenging Tuesday, March 16, 2010
  • 39. iPhone  development  is   challenging MonoTouch  ==    Goodness Tuesday, March 16, 2010
  • 40. Questions Tuesday, March 16, 2010
  • 41. Resources Tuesday, March 16, 2010
  • 42. Resources Tuesday, March 16, 2010
  • 43. Resources Tuesday, March 16, 2010
  • 44. Resources http://delicious.com/virtualgenius/monotouch Tuesday, March 16, 2010
  • 45. Thank You… Paul  Rayner paul@virtual-genius.com www.virtual-genius.com http://twitter.com/virtualgenius AGILITY.  CRAFT.  ARCHITECTURE. Tuesday, March 16, 2010
  • 46. References • http://www.amazon.com/Building-iPhone-Applications-Developer- MonoTouch/dp/B003A6RCF2 • iPhone image: http://ke2yk.wordpress.com/2009/03/22/first-it-was-cw- now-its-the-question-pool/ • iPhone sales chart: http://en.wikipedia.org/wiki/IPhone • Monotouch home page: http://monotouch.net/ • MacBook Pro: http://www.apple.com/macbookpro/ • iPhone Dev Center Logo: http://developer.apple.com/iphone/index.action • Mono logo: www.mono-project.net • Objective C memory management: http://cocoadevcentral.com/d/ learn_objectivec/ • Microphone: http://www.faqs.org/photo-dict/phrase/377/microphone.html • App store logo: http://www.apple.com/iphone/apps-for-iphone/ • Android developer logo: http://developer.android.com/index.html • Head First iPhone Development: http://oreilly.com/catalog/9780596803551 Tuesday, March 16, 2010

×