best strategy for developing app architecture and high quality app

69
Best Strategy for Developing App Architecture and High Quality App Anistar Sung ABU Engineering Manager, Yahoo

Upload: flurry-inc

Post on 23-Feb-2017

709 views

Category:

Mobile


0 download

TRANSCRIPT

Page 1: Best Strategy for Developing App Architecture and High Quality App

Best Strategy for Developing App Architecture and High Quality App

Anistar SungABU Engineering Manager, Yahoo

Page 2: Best Strategy for Developing App Architecture and High Quality App

Duration of Development

Quality of Product

Page 3: Best Strategy for Developing App Architecture and High Quality App

CHALLENGE

Page 4: Best Strategy for Developing App Architecture and High Quality App
Page 5: Best Strategy for Developing App Architecture and High Quality App
Page 6: Best Strategy for Developing App Architecture and High Quality App

I want red color background.

Challenge on Color Design easy sync tool for designer

Designer said:

Page 7: Best Strategy for Developing App Architecture and High Quality App

Sure!

Challenge on Color Design easy sync tool for designer

Developer said:

self.backgroundColor = [UIColor redColor];

Page 8: Best Strategy for Developing App Architecture and High Quality App
Page 9: Best Strategy for Developing App Architecture and High Quality App

I want #7b19a9 color background.

Challenge on Color Design easy sync tool for designer

Designer said:

Page 10: Best Strategy for Developing App Architecture and High Quality App

Hmmm… What the color is?

Challenge on Color Design easy sync tool for designer

Developer said:

Page 11: Best Strategy for Developing App Architecture and High Quality App
Page 12: Best Strategy for Developing App Architecture and High Quality App

I want Yahoo purple background.

Challenge on Color Design easy sync tool for designer

Designer said:

Page 13: Best Strategy for Developing App Architecture and High Quality App
Page 14: Best Strategy for Developing App Architecture and High Quality App

Using Category to improve UIColor

+ (UIColor *)colorWithHexString:(NSString *)hexstring;+ (UIColor *)colorWithHexNumber:(NSUInteger)hexNumber;

Challenge on Color Design easy sync tool for designer

Page 15: Best Strategy for Developing App Architecture and High Quality App

Management your theme color

+ (UIColor *)themeBackground; + (UIColor *)themeForeground; + (UIColor *)themeDisabled; + (UIColor *)themeFocus; + (UIColor *)themeHighlight; + (UIColor *)themeTitle; + (UIColor *)themeSubtitle;

Challenge on Color Design easy sync tool for designer

Page 16: Best Strategy for Developing App Architecture and High Quality App

+ (UIColor *)themeBackground{ return [UIColor colorWithHexString:@"1f2f3b"]; }

+ (UIColor *)themePanel{ return [UIColor colorWithHexString:@"333e49"]; }

Change once apply anywhere Theme color management

Page 17: Best Strategy for Developing App Architecture and High Quality App

+ (UIColor *)themeBackground{ return [UIColor colorWithHexString:@"dedede"];}

+ (UIColor *)themePanel{ return [UIColor colorWithHexString:@"f4f4f4"];}

Change once apply anywhere Theme color management

Page 18: Best Strategy for Developing App Architecture and High Quality App

Change once apply anywhere Theme color management

Page 19: Best Strategy for Developing App Architecture and High Quality App

YDevelopKit

Page 20: Best Strategy for Developing App Architecture and High Quality App

Introducing YDevelopKit in iOS development

Jeff LinABU Senior App Engineer, Yahoo

Page 21: Best Strategy for Developing App Architecture and High Quality App

YDevelopKit

Hex ColorDate Formatter

Number Formatter

Gradient View

Over 100+ featuresAnimation

App Util

Nib Size Calculator

CalculatorHelper

AutoLayout Constraint Tool

Image Filters

ModalMaskView

Dynamic width/height Cell

Pull to RefreshInfinite scrolling

Page 22: Best Strategy for Developing App Architecture and High Quality App

YDevelopKit

Hex ColorDate Formatter

Number Formatter

Gradient View

Over 100+ featuresAnimation

App Util

Nib Size Calculator

CalculatorHelper

AutoLayout Constraint Tool

Image Filters

ModalMaskView

Dynamic width/height Cell

Pull to RefreshInfinite scrolling

Page 23: Best Strategy for Developing App Architecture and High Quality App
Page 24: Best Strategy for Developing App Architecture and High Quality App

5pt 20pt

[today hideViewWidth]; [today hideTrailingConstraint]; [8hr hideViewWidth]; [8hr hideTrailingConstraint];

Page 25: Best Strategy for Developing App Architecture and High Quality App

DemoUsing UIView+YDKAutoLayoutSupport

Page 26: Best Strategy for Developing App Architecture and High Quality App
Page 27: Best Strategy for Developing App Architecture and High Quality App

Image Filters

Page 28: Best Strategy for Developing App Architecture and High Quality App

Color replacement

Page 29: Best Strategy for Developing App Architecture and High Quality App

Color replacement

Page 30: Best Strategy for Developing App Architecture and High Quality App

ModalMaskView

Page 31: Best Strategy for Developing App Architecture and High Quality App

DemoUsing UIImage+YDKImageFilter

Page 32: Best Strategy for Developing App Architecture and High Quality App
Page 33: Best Strategy for Developing App Architecture and High Quality App
Page 34: Best Strategy for Developing App Architecture and High Quality App
Page 35: Best Strategy for Developing App Architecture and High Quality App

Dynamic Height/Width cell

Page 36: Best Strategy for Developing App Architecture and High Quality App

DemoUsing YDKCellDynamicSizeCalculator

Page 37: Best Strategy for Developing App Architecture and High Quality App
Page 38: Best Strategy for Developing App Architecture and High Quality App

Pull to Refresh & Infinite scrolling

Page 39: Best Strategy for Developing App Architecture and High Quality App

DemoUsing UIScrollView+YDKPullToRefreshView

Page 40: Best Strategy for Developing App Architecture and High Quality App
Page 41: Best Strategy for Developing App Architecture and High Quality App
Page 42: Best Strategy for Developing App Architecture and High Quality App

The following story is inspired by actual events

Page 43: Best Strategy for Developing App Architecture and High Quality App
Page 44: Best Strategy for Developing App Architecture and High Quality App
Page 45: Best Strategy for Developing App Architecture and High Quality App

SOFTWARE TESTING IS NOT OPTIONAL

but it doesn’t have to be a burden

Page 46: Best Strategy for Developing App Architecture and High Quality App

The DevOps Strategy in Mobile Development

QC LiABU Senior App Engineer, Yahoo

Page 47: Best Strategy for Developing App Architecture and High Quality App

DevOps

Page 48: Best Strategy for Developing App Architecture and High Quality App

DevOpsContinuous Delivery

Page 49: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery

“Continuous Delivery (CD) is a software engineering approach in which teams keep producing valuable software in short cycles and ensure that the software can be reliably released at any time.

— Wikipedia

Page 50: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery

“Continuous Delivery (CD) is a software engineering approach in which teams keep producing valuable software in short cycles and ensure that the software can be reliably released at any time.

— Wikipedia

Page 51: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery

Commit to Production without human intervention

Page 52: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline▪Workflow of tasks ▪ Automatically delivers code from commit to production

Automation

Commit

Commit Stage

Acceptance Testing

Non-functional Testing

Production Candidate

Release

Page 53: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline▪ Keep everything in Version Control

Automation

Version Control Ready for release

Commit Stage

Acceptance Testing

Non-functional Testing

Production Candidate A

Commit A

Page 54: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline

Automation

Version Control Ready for release

Commit Stage

Acceptance Testing

Non-functional Testing

Production Candidate A

Automation

Commit B

Commit Stage

Acceptance Testing

Non-functional Testing

Production Candidate B

Commit A

▪ Keep everything in Version Control

Page 55: Best Strategy for Developing App Architecture and High Quality App

▪ Each change should propagate through the pipeline instantly

Continuous Delivery Pipeline

TriggerCommit A

Commit Stage

Acceptance Testing

Non-functional Testing

Page 56: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline▪ If any part of the pipeline fail, stop the line.

TriggerCommit A

Commit Stage

Acceptance Testing

Non-functional Testing

TriggerFeedback

Page 57: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline▪ If any part of the pipeline fail, stop the line.

Trigger

Production Candidate

Commit A

Commit Stage

Acceptance Testing

Non-functional Testing

Trigger

Trigger

TriggerTrigger

Trigger

Commit B

Commit C

Trigger

Trigger

Feedback

Page 58: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline▪ Let the state of pipeline visible

Trigger

Production Candidate

Commit A

Commit Stage

Acceptance Testing

Non-functional Testing

Trigger

Trigger

TriggerTrigger

Trigger

Commit B

Commit C

Trigger

Trigger

Feedback

Page 59: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline▪ Let the state of pipeline visible ●Dashboard

Page 60: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline▪ Let the state of pipeline visible ●Physically

Page 61: Best Strategy for Developing App Architecture and High Quality App

DemoUsing physical device to be the whistle

Page 62: Best Strategy for Developing App Architecture and High Quality App

TVBS News Visits Yahoo Office

Page 63: Best Strategy for Developing App Architecture and High Quality App

Continuous Delivery Pipeline

Page 64: Best Strategy for Developing App Architecture and High Quality App

App Release▪ Submit the production candidate to Google Play / App Store

.apk

.ipa

Page 65: Best Strategy for Developing App Architecture and High Quality App

After Release▪ If find an error in production… ▪ Add test cases to prevent it, 「不貳過」

Page 66: Best Strategy for Developing App Architecture and High Quality App

Duration of Development

Quality of Product

Page 67: Best Strategy for Developing App Architecture and High Quality App
Page 68: Best Strategy for Developing App Architecture and High Quality App

YDevelopKitOpen Source is Coming Soon…

Page 69: Best Strategy for Developing App Architecture and High Quality App

Q + A