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

Best Strategy for Developing App Architecture and High Quality App

Embed Size (px)

Citation preview

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