best strategy for developing app architecture and high quality app
TRANSCRIPT
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