Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Garage Days Return:
 Agile iPhone Development
Do you remember this?
Do you remember this?
Do you remember this?
A kid with a good idea...
Manic Miner
The big guys...
But...
These changed the rules...
What do you need to
      start?
A Mac
XCode
An iPhone...
Books
But...
OMG It’s ObjectiveC!
Bigino ObjectiveC
Smalltalk
C
Classes: declaration

#import <Cocoa/Cocoa.h>

@interface Photo : NSObject {
   NSString* caption;
   NSString* photograph...
Classes: implementation

    #import "Photo.h"

    @implementation Photo

    // ...

    - (NSString*) caption {
       ...
Method Invocation



photo = [[Photo alloc] init];

[photo setCaption:@"Day at the Beach"];

output = [photo caption];
First Reaction
The Same in Java



photo = new Photo();

photo.setCaption("Day at the Beach");

output = photo.caption();
In ObjectiveC



photo = [[Photo alloc] init];

[photo setCaption:@"Day at the Beach"];

output = [photo caption];
Message Passing




  [obj method:parameter];
Multiple Parameters


- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;


//...


[array insertObject:@"Hello, ...
If you want...


- (void)insertObject:(id)anObject :(NSUInteger)index;


//...


[array insertObject:@"Hello, World!" :5];
Dynamic Invocation


(id)anObject = [ factory getFor:par1 ]

[array foo];
[array bar];
No garbage collection!
Counter based
message     counter
   alloc        +1
   copy         +1
  retain        +1
  release       -1
autorelease     -1
If you’ll use an object

   take ownership

      retain
If you own an object

  should release it

     release
If you alloc or copy an object

        you own it

        release
Collections take ownership
- (void)printHello {
   NSString *string;

    string = [[NSString alloc] initWithString:@"Hello"];

    NSLog(string);

 ...
- (void)printHello {
 NSString *string;


 string = [NSString stringWithFormat:@"Hello"];


 NSLog(string);
}
- (void)printWindowTitle {
   NSString *string;

    string = [myWindow title];

    NSLog(string);
}
NSMutableArray *array;
NSUInteger i;
// ...
for (i = 0; i < 10; i++) {
   NSNumber *allocedNumber = [[NSNumber alloc] init...
Be Careful!
What about the tests?
Unit Tests...
Former SenTestingKit



        OCUnit
TestCase Definition

#import <SenTestingKit/SenTestingKit.h>
#import "RpnCalculator.h"

@interface RpnCalculatorTestCase :...
TestCase Implementation

@implementation RpnCalculatorTestCase

-(void)setUp{

 rpnCalculator = [[RpnCalculator alloc]init...
TestCase Implementation


#define   STAssertNil(a1, description, ...)
#define   STAssertNotNil(a1, description, ...)
#defi...
XCode Integration
XCode Integration
XCode in a Nutshell
Useful Shortcuts



Esc - Name Completion
Useful Shortcuts



⌘S - Save
Useful Shortcuts



⌘B - Build
Useful Shortcuts



⌥⌘↑ - HeaderSource
Conclusions
The Market Asks For Apps
The Market Asks For Apps
More Apps...
More Apps...
More Apps!
Lot to Improve
Be Good Kids:
Test First!
Questions?
Coding Dojo Rules
Randori
Silence
Suggest
KataRpnCalculator
20 5 /          => (20/5)      = 4
4 2 + 3 -       => (4+2)-3     = 3
3 5 8 * 7 + *   => 3*((5*8)+7) = 141
Let’s Start!
Agile Iphone Development
Agile Iphone Development
Agile Iphone Development
Agile Iphone Development
Agile Iphone Development
Upcoming SlideShare
Loading in …5
×

Agile Iphone Development

6,391 views

Published on

Introductory presentation to Agile iPhone Development

Published in: Technology
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... (Unlimited)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Agile Iphone Development

  1. 1. Garage Days Return: Agile iPhone Development
  2. 2. Do you remember this?
  3. 3. Do you remember this?
  4. 4. Do you remember this?
  5. 5. A kid with a good idea...
  6. 6. Manic Miner
  7. 7. The big guys...
  8. 8. But...
  9. 9. These changed the rules...
  10. 10. What do you need to start?
  11. 11. A Mac
  12. 12. XCode
  13. 13. An iPhone...
  14. 14. Books
  15. 15. But...
  16. 16. OMG It’s ObjectiveC!
  17. 17. Bigino ObjectiveC
  18. 18. Smalltalk
  19. 19. C
  20. 20. Classes: declaration #import <Cocoa/Cocoa.h> @interface Photo : NSObject { NSString* caption; NSString* photographer; } - (NSString*) caption; - (NSString*) photographer; - (void) setCaption: (NSString*)input; - (void) setPhotographer: (NSString*)input; @end
  21. 21. Classes: implementation #import "Photo.h" @implementation Photo // ... - (NSString*) caption { return caption; } - (NSString*) photographer { return photographer; } @end
  22. 22. Method Invocation photo = [[Photo alloc] init]; [photo setCaption:@"Day at the Beach"]; output = [photo caption];
  23. 23. First Reaction
  24. 24. The Same in Java photo = new Photo(); photo.setCaption("Day at the Beach"); output = photo.caption();
  25. 25. In ObjectiveC photo = [[Photo alloc] init]; [photo setCaption:@"Day at the Beach"]; output = [photo caption];
  26. 26. Message Passing [obj method:parameter];
  27. 27. Multiple Parameters - (void)insertObject:(id)anObject atIndex:(NSUInteger)index; //... [array insertObject:@"Hello, World!" atIndex:5];
  28. 28. If you want... - (void)insertObject:(id)anObject :(NSUInteger)index; //... [array insertObject:@"Hello, World!" :5];
  29. 29. Dynamic Invocation (id)anObject = [ factory getFor:par1 ] [array foo]; [array bar];
  30. 30. No garbage collection!
  31. 31. Counter based
  32. 32. message counter alloc +1 copy +1 retain +1 release -1 autorelease -1
  33. 33. If you’ll use an object take ownership retain
  34. 34. If you own an object should release it release
  35. 35. If you alloc or copy an object you own it release
  36. 36. Collections take ownership
  37. 37. - (void)printHello { NSString *string; string = [[NSString alloc] initWithString:@"Hello"]; NSLog(string); [string release]; }
  38. 38. - (void)printHello { NSString *string; string = [NSString stringWithFormat:@"Hello"]; NSLog(string); }
  39. 39. - (void)printWindowTitle { NSString *string; string = [myWindow title]; NSLog(string); }
  40. 40. NSMutableArray *array; NSUInteger i; // ... for (i = 0; i < 10; i++) { NSNumber *allocedNumber = [[NSNumber alloc] initWithInteger: i]; [array addObject:allocedNumber]; [allocedNumber release]; }
  41. 41. Be Careful!
  42. 42. What about the tests?
  43. 43. Unit Tests...
  44. 44. Former SenTestingKit OCUnit
  45. 45. TestCase Definition #import <SenTestingKit/SenTestingKit.h> #import "RpnCalculator.h" @interface RpnCalculatorTestCase : SenTestCase { RpnCalculator* rpnCalculator; } @end
  46. 46. TestCase Implementation @implementation RpnCalculatorTestCase -(void)setUp{ rpnCalculator = [[RpnCalculator alloc]init]; } -(void)tearDown{ [rpnCalculator release]; } -(void)testShouldDisplayTwoNumbersWhenNumbersAreSeparatedByEnter{ [rpnCalculator put:@"1"]; [rpnCalculator put:@"enter"]; [rpnCalculator put:@"2"]; STAssertEqualObjects(@"1n2",rpnCalculator.display,nil); }
  47. 47. TestCase Implementation #define STAssertNil(a1, description, ...) #define STAssertNotNil(a1, description, ...) #define STAssertTrue(expression, description, ...) #define STAssertFalse(expression, description, ...) #define STAssertEqualObjects(a1, a2, description, ...) #define STAssertEquals(a1, a2, description, ...) #define STFail(description, ...) #define STAssertTrueNoThrow(expression, description, ...) #define STAssertFalseNoThrow(expression, description, ...) //....
  48. 48. XCode Integration
  49. 49. XCode Integration
  50. 50. XCode in a Nutshell
  51. 51. Useful Shortcuts Esc - Name Completion
  52. 52. Useful Shortcuts ⌘S - Save
  53. 53. Useful Shortcuts ⌘B - Build
  54. 54. Useful Shortcuts ⌥⌘↑ - HeaderSource
  55. 55. Conclusions
  56. 56. The Market Asks For Apps
  57. 57. The Market Asks For Apps
  58. 58. More Apps...
  59. 59. More Apps...
  60. 60. More Apps!
  61. 61. Lot to Improve
  62. 62. Be Good Kids:
  63. 63. Test First!
  64. 64. Questions?
  65. 65. Coding Dojo Rules
  66. 66. Randori
  67. 67. Silence
  68. 68. Suggest
  69. 69. KataRpnCalculator
  70. 70. 20 5 / => (20/5) = 4 4 2 + 3 - => (4+2)-3 = 3 3 5 8 * 7 + * => 3*((5*8)+7) = 141
  71. 71. Let’s Start!

×