Best Strategy for Developing App Architecture and High Quality App
-
Upload
flurry-inc -
Category
Mobile
-
view
711 -
download
0
Transcript of Best Strategy for Developing App Architecture and High Quality App
![Page 1: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/1.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/2.jpg)
Duration of Development
Quality of Product
![Page 3: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/3.jpg)
CHALLENGE
![Page 4: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/4.jpg)
![Page 5: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/5.jpg)
![Page 6: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/6.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/7.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/8.jpg)
![Page 9: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/9.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/10.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/11.jpg)
![Page 12: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/12.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/13.jpg)
![Page 14: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/14.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/15.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/16.jpg)
+ (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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/17.jpg)
+ (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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/18.jpg)
Change once apply anywhere Theme color management
![Page 19: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/19.jpg)
YDevelopKit
![Page 20: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/20.jpg)
Introducing YDevelopKit in iOS development
Jeff LinABU Senior App Engineer, Yahoo
![Page 21: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/21.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/22.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/23.jpg)
![Page 24: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/24.jpg)
5pt 20pt
[today hideViewWidth]; [today hideTrailingConstraint]; [8hr hideViewWidth]; [8hr hideTrailingConstraint];
![Page 25: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/25.jpg)
DemoUsing UIView+YDKAutoLayoutSupport
![Page 26: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/26.jpg)
![Page 27: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/27.jpg)
Image Filters
![Page 28: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/28.jpg)
Color replacement
![Page 29: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/29.jpg)
Color replacement
![Page 30: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/30.jpg)
ModalMaskView
![Page 31: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/31.jpg)
DemoUsing UIImage+YDKImageFilter
![Page 32: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/32.jpg)
![Page 33: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/33.jpg)
![Page 34: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/34.jpg)
![Page 35: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/35.jpg)
Dynamic Height/Width cell
![Page 36: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/36.jpg)
DemoUsing YDKCellDynamicSizeCalculator
![Page 37: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/37.jpg)
![Page 38: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/38.jpg)
Pull to Refresh & Infinite scrolling
![Page 39: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/39.jpg)
DemoUsing UIScrollView+YDKPullToRefreshView
![Page 40: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/40.jpg)
![Page 41: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/41.jpg)
![Page 42: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/42.jpg)
The following story is inspired by actual events
![Page 43: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/43.jpg)
![Page 44: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/44.jpg)
![Page 45: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/45.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/46.jpg)
The DevOps Strategy in Mobile Development
QC LiABU Senior App Engineer, Yahoo
![Page 47: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/47.jpg)
DevOps
![Page 48: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/48.jpg)
DevOpsContinuous Delivery
![Page 49: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/49.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/50.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/51.jpg)
Continuous Delivery
Commit to Production without human intervention
![Page 52: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/52.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/53.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/54.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/55.jpg)
▪ 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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/56.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/57.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/58.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/59.jpg)
Continuous Delivery Pipeline▪ Let the state of pipeline visible ●Dashboard
![Page 60: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/60.jpg)
Continuous Delivery Pipeline▪ Let the state of pipeline visible ●Physically
![Page 61: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/61.jpg)
DemoUsing physical device to be the whistle
![Page 62: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/62.jpg)
TVBS News Visits Yahoo Office
![Page 63: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/63.jpg)
Continuous Delivery Pipeline
![Page 64: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/64.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/65.jpg)
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](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/66.jpg)
Duration of Development
Quality of Product
![Page 67: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/67.jpg)
![Page 68: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/68.jpg)
YDevelopKitOpen Source is Coming Soon…
![Page 69: Best Strategy for Developing App Architecture and High Quality App](https://reader031.fdocuments.us/reader031/viewer/2022021918/58ae4b331a28abad338b6651/html5/thumbnails/69.jpg)
Q + A