Best Strategy for Developing App Architecture and High Quality App

  • View
    712

  • Download
    0

  • Category

    Mobile

Preview:

Citation preview

Best Strategy for Developing App Architecture and High Quality App

Anistar SungABU Engineering Manager, Yahoo

Duration of Development

Quality of Product

CHALLENGE

I want red color background.

Challenge on Color Design easy sync tool for designer

Designer said:

Sure!

Challenge on Color Design easy sync tool for designer

Developer said:

self.backgroundColor = [UIColor redColor];

I want #7b19a9 color background.

Challenge on Color Design easy sync tool for designer

Designer said:

Hmmm… What the color is?

Challenge on Color Design easy sync tool for designer

Developer said:

I want Yahoo purple background.

Challenge on Color Design easy sync tool for designer

Designer said:

Using Category to improve UIColor

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

Challenge on Color Design easy sync tool for designer

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

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

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

Change once apply anywhere Theme color management

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

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

Change once apply anywhere Theme color management

Change once apply anywhere Theme color management

YDevelopKit

Introducing YDevelopKit in iOS development

Jeff LinABU Senior App Engineer, Yahoo

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

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

5pt 20pt

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

DemoUsing UIView+YDKAutoLayoutSupport

Image Filters

Color replacement

Color replacement

ModalMaskView

DemoUsing UIImage+YDKImageFilter

Dynamic Height/Width cell

DemoUsing YDKCellDynamicSizeCalculator

Pull to Refresh & Infinite scrolling

DemoUsing UIScrollView+YDKPullToRefreshView

The following story is inspired by actual events

SOFTWARE TESTING IS NOT OPTIONAL

but it doesn’t have to be a burden

The DevOps Strategy in Mobile Development

QC LiABU Senior App Engineer, Yahoo

DevOps

DevOpsContinuous Delivery

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

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

Continuous Delivery

Commit to Production without human intervention

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

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

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

▪ Each change should propagate through the pipeline instantly

Continuous Delivery Pipeline

TriggerCommit A

Commit Stage

Acceptance Testing

Non-functional Testing

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

TriggerCommit A

Commit Stage

Acceptance Testing

Non-functional Testing

TriggerFeedback

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

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

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

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

DemoUsing physical device to be the whistle

TVBS News Visits Yahoo Office

Continuous Delivery Pipeline

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

.apk

.ipa

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

Duration of Development

Quality of Product

YDevelopKitOpen Source is Coming Soon…

Q + A