Pro Yearly is on sale from $80 to $50! »

Learn From Thy Users

9f63c98d741c8130adb71db3bbf77f08?s=47 Dasmer
August 29, 2014

Learn From Thy Users

A talk about how to use Analytics, AB Testing, and Pre-release builds to gather data from your apps users in order to make apps that people love to use. This was presented at A Swift Start at the Flatiron School.

9f63c98d741c8130adb71db3bbf77f08?s=128

Dasmer

August 29, 2014
Tweet

Transcript

  1. SO YOU WANT TO WRITE AWESOME IOS APPS? DASMER SINGH

  2. BUT WHAT MAKES AN APP AWESOME?

  3. IS IT...

  4. SOMETHING REALLY OUT OF THE BOX

  5. OR LIFE SAVING

  6. COOL ANIMATIONS?

  7. THESE ARE ALL IMPORTANT MANY GREAT APPS HAVE THESE

  8. BUT WHAT TAKES AN APP TO THE next level

  9. IS ITS USER-BASE

  10. LEARN FROM THY USERS

  11. BUT HOW DO WE KNOW WHAT USERS WANT? 1. Analytics

    2. AB Testing 3. Asking
  12. 1. ANALYTICS TRACK ALL THE THINGS

  13. THERE ARE MANY GREAT TRACKING TOOLS FOR IOS SOME EXAMPLES:

    1. Mixpanel 2. Flurry 3. Google Analytics 4. Parse
  14. WHAT CAN WE TRACK? 1. Events 2. Properties

  15. EVENTS USUALLY SIGNIFY AN ACTION TOOK PLACE EXAMPLES AT VENMO:

    1. Recipient Selected 2. Invite Sent 3. Story Tapped 4. Address Book Authorized
  16. PROPERTIES ARE PASSED WITH EVENTS TO GIVE CONTEXT TO THE

    ACTION BEING LOGGED EXAMPLES AT VENMO: 1. Recipient Selected - isNearby 2. Invite Sent - inviteType (SMS/Payment/Email) 3. Story Cell Tapped - rowIndex 4. Address Book Authorized - sourceViewController
  17. EXAMPLE: Mixpanel *mixpanel = [Mixpanel sharedInstanceWithToken:MIXPANEL_TOKEN]; [mixpanel track:@"Compose - Recipient

    Selected" properties:@{ @"isNearby": @"YES", @"isFriend": @"NO" }];
  18. ZERO TAP SEARCH AT VENMO: BECAUSE ANALYTICS, MOST PAYMENTS REQUIRE

    NO SEARCH TEXT INPUT AT ALL.
  19. 2. AB TESTING

  20. A SIMPLE WAY TO TEST CHANGES TO YOUR UI/UX AGAINST

    THE CURRENT DESIGN
  21. SKYLAB AN OPEN SOURCE AB TESTING FRAMEWORK FOR MULTI-VARIATE AND

    ABTESTING WRITTEN BY MATTT
  22. SIMPLE EXAMPLE: [SkyLab abTestWithName:@"Title" A:^{ self.titleLabel.text = NSLocalizedString(@"Hello, World!", nil);

    } B:^{ self.titleLabel.text = NSLocalizedString(@"Greetings, Planet!", nil); }];
  23. SLIGHTLY MORE COMPLICATED EXAMPLE: [SkyLab splitTestWithName:@"Subtitle" conditions:@{ @"Red" : @(0.15),

    @"Green" : @(0.10), @"Blue" : @(0.50), @"Purple" : @(0.25) } block:^(id choice) { self.subtitleLabel.text = NSLocalizedString(@"Please Enjoy This Colorful Message", nil); if ([choice isEqualToString:@"Red"]) { self.subtitleLabel.textColor = [UIColor redColor]; } else if ([choice isEqualToString:@"Green"]) { self.subtitleLabel.textColor = [UIColor greenColor]; } else if ([choice isEqualToString:@"Blue"]) { self.subtitleLabel.textColor = [UIColor blueColor]; } else if ([choice isEqualToString:@"Purple"]) { self.subtitleLabel.textColor = [UIColor purpleColor]; } }];
  24. OPTIMIZELY AND MIXPANEL MORE SOPHISTICATED AB TESTING FRAMEWORKS (AND POTENTIALLY

    COSTLY) 1. Edit any nib on the fly 2. Iterate quicker 3. No code necessary
  25. EXAMPLE:

  26. ANALYZE AND OPTIMIZE TRACK YOUR AB TEST RESULTS WITH ANALYTICS

  27. 3. ASK

  28. WHO? EVERYONE & ANYONE HOW? BETA BUILDS WITH TESTFLIGHT 1.

    Upcoming Xcode 6 + iTunes Connect Integration 2. Up to 1000 Testers 3. Easy to use
  29. OK I SENT THEM A BETA, NOW WHAT? 1. Read

    crash logs 2. Talk to them for feedback. 3. Send another build with every change you deem significant or want to validate
  30. THE APPLE APP STORE IS ONE OF THE WORLD'S MOST

    POWERFUL MARKETPLACES 1. Over 50 Billion iOS apps have been downloaded 2. Over 500 million iPhones have been sold 3. As developers we can have a large reach and can learn from a lot of people
  31. TAKE WHAT YOU LEARN AND ITERATE. THE MORE USERS LIKE

    YOUR APP, THE MORE: 1. they'll use it 2. the user-base will grow 3. awesome your app becomes.
  32. Make something beautiful