iOS Development    Fun   for    Profit   and                  @phil_nash
Why?
it all started in the 80s...
the 90s
the 90s
Andrew Braybrook
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
Whereare wenow?
1 million   800k   400k   100k       0        0   2009   2010   2011   2012   2013
1. Idea2. Code3. ?4. Profit
Make a great app
“Good is theenemy of great             - Jim Collins
“Do one thing anddo it well             - Doug McIllroy
Don’t disrespect AppleDo engage with communityDon’t use private/ deprecated APIsDo use modern features
What do we need?
1. C2. Objective-C3. ?4. C++
1. C2. Objective-C3. Objective-C++4. C++
Apple docsCocoa Touch   Media        Apple samplesCore Services                Community blogs  Core OS                Sta...
Why?
“   One of the    biggest problems with Objective-C is that it is adynamically typed, OO,     statically typed, low- graft...
“    One of the   greatest strengths of Objective-C is that it is adynamically typed, OO,     statically typed, low- graft...
Hedgehog
Hedgehog             (this)                             - bobvoid bob( Hedgehog* this ) { ... }
bob              Hedgehog                 (self)                             - bobvoid bob( Hedgehog* self ) { ... }
C/C++/Java/C#/   hedgehog.bob();   etcObj-C      [hedgehog bob];
x[hedgehog bob];
y[hedgehog bob: x];
[hedgehog bob: x   y: y];
[circle setCenterAtX : x y : y ];
[circle setCenterAtX: x y : y withRadius:r ];
[circle setCenterAtX : x                   y:y          withRadius:r ];
-(void) setCenterAtX: (float) x                   y: (float) y          withRadius: (float) r{   // ... }
--(void) setCenterAtX: (float) x                   y: (float) y          withRadius: (float) r{   // ... }
-(void) setCenterAtX: (float) x                   y: (float) y          withRadius: (float) r{   // ... }
-(void) setCenterAtX: (float) x                   y: (float) y          withRadius: (float) r{   // ... }
-(void) setCenterAtX: (float) x                   y: (float) y          withRadius: (float) r{   // ... }
UIView* view =  [[UIView alloc] initWithFrame:     CGRectMake( 0, 0, 200, 300 )];
UIView* view =  [[UIView alloc] initWithFrame:   [UIView     CGRectMake( 0, 0, 200, 300 )];
UIView* view =  [[UIView alloc] initWithFrame:  [[UIView                                 ]     CGRectMake( 0, 0, 200, 300 ...
UIView* view =  [[UIView alloc] initWithFrame:  [[UIView                                 )]     CGRectMake( 0, 0, 200, 300...
UIView* view =  [[UIView alloc] initWithFrame:     CGRectMake( 0, 0, 200, 300 )];
AR C            ReferenceAutomatic                        Counting                         (for the people)
@interface{  float x, y, r;}-(void) setCenterAtX: (float) x                   y: (float) y          withRadius: (float) r ...
@implementation-(void) setCenterAtX: (float) x                   y: (float) y          withRadius: (float) r{  // ...}@end
#import “circle.h”@implementation-(void) setCenterAtX: (float) x                   y: (float) y          withRadius: (floa...
Circle* circle = nil;[circle setCenterAtX :100.0                   y : 150.0          withRadius:75.0 ];
Circle* circle = nil;[circle setCenterAtX :100.0                   y : 150.0          withRadius:75.0 ];
FusionReactor* reactor = nil;if( ![reactor isWithinTolerances] ) {  [self evacuate100MileZone];}
Don’t try this at home
Do learn Objective-C    Do build great apps    Do have fun    Do send me some of the profitshttp://www.levelofindirection.co...
stock images from iStockphoto.com                    & Shutterstock.com                     other resources:              ...
Developing iOS Apps for Fun and Profit by Phil Nash
Developing iOS Apps for Fun and Profit by Phil Nash
Developing iOS Apps for Fun and Profit by Phil Nash
Developing iOS Apps for Fun and Profit by Phil Nash
Developing iOS Apps for Fun and Profit by Phil Nash
Developing iOS Apps for Fun and Profit by Phil Nash
Developing iOS Apps for Fun and Profit by Phil Nash
Developing iOS Apps for Fun and Profit by Phil Nash
Upcoming SlideShare
Loading in …5
×

Developing iOS Apps for Fun and Profit by Phil Nash

676 views
458 views

Published on

Is it worth developing for mobile platforms? If so why pick iOS?

What does a developer new to iOS need to know? What are the keys to building a successful app that will actually make money and be fun to write? This talk will walk you through the landscape, from the idiosyncrasies of Objective-C to how to test a mobile app to getting an app on the app store and getting it noticed.

That's a lot to cover in a short time - so come with an open mind and expect to have some fun.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Developing iOS Apps for Fun and Profit by Phil Nash

  1. 1. iOS Development Fun for Profit and @phil_nash
  2. 2. Why?
  3. 3. it all started in the 80s...
  4. 4. the 90s
  5. 5. the 90s
  6. 6. Andrew Braybrook
  7. 7. 1999
  8. 8. 2000
  9. 9. 2001
  10. 10. 2002
  11. 11. 2003
  12. 12. 2004
  13. 13. 2005
  14. 14. 2006
  15. 15. 2007
  16. 16. 2008
  17. 17. Whereare wenow?
  18. 18. 1 million 800k 400k 100k 0 0 2009 2010 2011 2012 2013
  19. 19. 1. Idea2. Code3. ?4. Profit
  20. 20. Make a great app
  21. 21. “Good is theenemy of great - Jim Collins
  22. 22. “Do one thing anddo it well - Doug McIllroy
  23. 23. Don’t disrespect AppleDo engage with communityDon’t use private/ deprecated APIsDo use modern features
  24. 24. What do we need?
  25. 25. 1. C2. Objective-C3. ?4. C++
  26. 26. 1. C2. Objective-C3. Objective-C++4. C++
  27. 27. Apple docsCocoa Touch Media Apple samplesCore Services Community blogs Core OS Stackoverflow
  28. 28. Why?
  29. 29. “ One of the biggest problems with Objective-C is that it is adynamically typed, OO, statically typed, low- grafted over a language level, procedural language - Phil Nash
  30. 30. “ One of the greatest strengths of Objective-C is that it is adynamically typed, OO, statically typed, low- grafted over a language level, procedural language - Phil Nash
  31. 31. Hedgehog
  32. 32. Hedgehog (this) - bobvoid bob( Hedgehog* this ) { ... }
  33. 33. bob Hedgehog (self) - bobvoid bob( Hedgehog* self ) { ... }
  34. 34. C/C++/Java/C#/ hedgehog.bob(); etcObj-C [hedgehog bob];
  35. 35. x[hedgehog bob];
  36. 36. y[hedgehog bob: x];
  37. 37. [hedgehog bob: x y: y];
  38. 38. [circle setCenterAtX : x y : y ];
  39. 39. [circle setCenterAtX: x y : y withRadius:r ];
  40. 40. [circle setCenterAtX : x y:y withRadius:r ];
  41. 41. -(void) setCenterAtX: (float) x y: (float) y withRadius: (float) r{ // ... }
  42. 42. --(void) setCenterAtX: (float) x y: (float) y withRadius: (float) r{ // ... }
  43. 43. -(void) setCenterAtX: (float) x y: (float) y withRadius: (float) r{ // ... }
  44. 44. -(void) setCenterAtX: (float) x y: (float) y withRadius: (float) r{ // ... }
  45. 45. -(void) setCenterAtX: (float) x y: (float) y withRadius: (float) r{ // ... }
  46. 46. UIView* view = [[UIView alloc] initWithFrame: CGRectMake( 0, 0, 200, 300 )];
  47. 47. UIView* view = [[UIView alloc] initWithFrame: [UIView CGRectMake( 0, 0, 200, 300 )];
  48. 48. UIView* view = [[UIView alloc] initWithFrame: [[UIView ] CGRectMake( 0, 0, 200, 300 )];
  49. 49. UIView* view = [[UIView alloc] initWithFrame: [[UIView )] CGRectMake( 0, 0, 200, 300 )];
  50. 50. UIView* view = [[UIView alloc] initWithFrame: CGRectMake( 0, 0, 200, 300 )];
  51. 51. AR C ReferenceAutomatic Counting (for the people)
  52. 52. @interface{ float x, y, r;}-(void) setCenterAtX: (float) x y: (float) y withRadius: (float) r ;@end
  53. 53. @implementation-(void) setCenterAtX: (float) x y: (float) y withRadius: (float) r{ // ...}@end
  54. 54. #import “circle.h”@implementation-(void) setCenterAtX: (float) x y: (float) y withRadius: (float) r{ // ...}@end
  55. 55. Circle* circle = nil;[circle setCenterAtX :100.0 y : 150.0 withRadius:75.0 ];
  56. 56. Circle* circle = nil;[circle setCenterAtX :100.0 y : 150.0 withRadius:75.0 ];
  57. 57. FusionReactor* reactor = nil;if( ![reactor isWithinTolerances] ) { [self evacuate100MileZone];}
  58. 58. Don’t try this at home
  59. 59. Do learn Objective-C Do build great apps Do have fun Do send me some of the profitshttp://www.levelofindirection.com @phil_nash
  60. 60. stock images from iStockphoto.com & Shutterstock.com other resources: iDeveloper.tv xamarin.com/monotouch catch-lib.nethttp://www.levelofindirection.com @phil_nash

×