practicing appdevkit in kata training

59
Practicing AppDevKit Anistar Sung Engineering Manager Kata Training -

Upload: anistar-sung

Post on 09-Jan-2017

360 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Practicing AppDevKit in kata training

Practicing AppDevKit

Anistar SungEngineering Manager

Kata Training -

Page 2: Practicing AppDevKit in kata training

git clone https://github.com/anistarsung/AppDevKitLearning.git

Download Learning Template

Page 3: Practicing AppDevKit in kata training

• Leverage AppDevKit in few steps

• Build Some Apps with AppDevKit

• Using Swift with AppDevKit

Agenda

Page 4: Practicing AppDevKit in kata training

Leverage AppDevKitBuild First App with AppDevKit

Page 5: Practicing AppDevKit in kata training

Source Code of AppDevKit

https://github.com/yahoo/AppDevKit

Page 6: Practicing AppDevKit in kata training

Get Source Code from Github

Page 7: Practicing AppDevKit in kata training

Set up AppDevKit

• Cloning code into your project directly

• Using CocoaPods to manage package

Page 8: Practicing AppDevKit in kata training

What’s CocoaPods

Page 9: Practicing AppDevKit in kata training

Using CocoaPods

Installing CocoaPods $ sudo gem install cocoapods

Initializing CocoaPods $ pod init $ nano Podfile

Page 10: Practicing AppDevKit in kata training

Using CocoaPods

Editing Podfile platform :ios, '8.0'

target 'MyApp' do pod 'AppDevKit', '~> 1.0’ pod 'AFNetworking', '~> 2.6' end

Page 11: Practicing AppDevKit in kata training

Using CocoaPods

Installing Package by CocoaPods $ pod install

Updating Package by CocoaPods $ pod update

Page 12: Practicing AppDevKit in kata training

Working with AppDevKit

Open iOS Project with Pods $ open MyApp.xcworkspace

Page 13: Practicing AppDevKit in kata training

Working with AppDevKit

Importing Libraries from AppDevKit #import <AppDevKit.h>

YES!You Made It!

Page 14: Practicing AppDevKit in kata training

DemoStart HelloWorld with AppDevKit

Page 15: Practicing AppDevKit in kata training

Using UIColor Hex presentationUtilities made setting color easier

Page 16: Practicing AppDevKit in kata training

Hex Color Format from Designer

4C00A521B1E6FBDA18

Page 17: Practicing AppDevKit in kata training

But UIColor….+(UIColor *)colorWithWhite:(CGFloat)white alpha:(CGFloat)alpha;

+(UIColor *)colorWithHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha;

+(UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;

......

No hex presentation… :’(

Page 18: Practicing AppDevKit in kata training

AppDevKit Hex Color Utility

[UIColor ADKColorWithHexString:@"fbda18"]

[[UIColor ADKColorWithHexString:@"fbda18"] ADKColorShiftByBrightness:0.7f];

Page 19: Practicing AppDevKit in kata training

DemoUsing UIColor+ADKHexPresentation

Page 20: Practicing AppDevKit in kata training

Applying UIImage FiltersChanging image color in one line

Page 21: Practicing AppDevKit in kata training

Color Replacement

Page 22: Practicing AppDevKit in kata training

Color Replacement

• One image could fulfill all states change

• Reducing App size

• Providing other filters and color replacement methods

Page 23: Practicing AppDevKit in kata training

Color Replacement

[UIImage ADKImage:originalImage replaceColor:[UIColor redColor]];

Page 24: Practicing AppDevKit in kata training

DemoUsing UIImage+ADKImageFilter

Page 25: Practicing AppDevKit in kata training

Using Animation MarcosAnimation is a piece of cake

Page 26: Practicing AppDevKit in kata training

Animation Marcos

Page 27: Practicing AppDevKit in kata training

Animation Marcos

[button popUpAnimation];

Page 28: Practicing AppDevKit in kata training

DemoUsing UIView+ADKAnimationMacro

Page 29: Practicing AppDevKit in kata training

Using Modal Mask ViewMaking A Focused UX Flow

Page 30: Practicing AppDevKit in kata training

Modal Mask View

Page 31: Practicing AppDevKit in kata training

Modal Mask View

• Presenting custom modal view and dismiss automatically

• Below iOS 8, it don’t support UIModalPresentationOverCurrentContext

Page 32: Practicing AppDevKit in kata training

Modal Mask View

[[ADKModalMaskView alloc] initWithView:UIView modalColor:UIColor autoDismiss:YES];

[modalView showInView:UIView withAnimation:YES completion:^(BOOL finished){…}];

Page 33: Practicing AppDevKit in kata training

DemoUsing ADKModalMaskView

Page 34: Practicing AppDevKit in kata training

Drawing Gradient BackgroundWithout Bitmap Image Solution

Page 35: Practicing AppDevKit in kata training

ADKGradientView

Page 36: Practicing AppDevKit in kata training

ADKGradientView

• Don’t need bitmap image (Programmable solution)

• Reduce App size

• Support assigning color and orientation

Page 37: Practicing AppDevKit in kata training

ADKGradientView

view.beginColor = [UIColor redColor]; view.endColor = [UIColor greenColor]; view.blendsType = ADKBlendsTypeFromLeftTopToRightBottom;

ADKBlendsTypeFromTopToBottom ADKBlendsTypeFromLeftToRight ADKBlendsTypeFromLeftTopToRightBottom ADKBlendsTypeFromRightTopToLeftBottom

Page 38: Practicing AppDevKit in kata training

DemoUsing ADKGradientView

Page 39: Practicing AppDevKit in kata training

Using AutoLayout UtilityControlling AutoLayout easier

Page 40: Practicing AppDevKit in kata training

AutoLayout Utility

Page 41: Practicing AppDevKit in kata training

AutoLayout Utility

• Resolving elements aligning problem

Expected

Unexpected

Original

Page 42: Practicing AppDevKit in kata training

AutoLayout Utility

[view ADKHideViewWidth];

[view ADKHideTrailingConstraint];

Page 43: Practicing AppDevKit in kata training

DemoUsing UIView+AutoLayoutSupport

Page 44: Practicing AppDevKit in kata training

Using ADKNibSizeCalculatorNice tool for Communication

Page 45: Practicing AppDevKit in kata training

ADKNibSizeCalculator

Page 46: Practicing AppDevKit in kata training

ADKNibSizeCalculator

Modify nib file without changing any code

Page 47: Practicing AppDevKit in kata training

Using ADKNibSizeCalculator

Use ADKNibSizeCalculator to calculate size

CGSize size = [[ADKNibSizeCalculator sharedInstance] sizeForNibNamed:@“NibName” withStyle:ADKNibFixedHeightScaling];

Page 48: Practicing AppDevKit in kata training

DemoCalculating Nib Size with AppDevKit

Page 49: Practicing AppDevKit in kata training

Pull To Refresh in List ViewSolution for Pull To Refresh

Page 50: Practicing AppDevKit in kata training

UIScrollView+ADKPullToRefreshView

Page 51: Practicing AppDevKit in kata training

Implement a PullToRefresh View

Implement required method for this protocol - (void) ADKPullToRefreshStopped:(UIScrollView *)scrollView - (void) ADKPullToRefreshTriggered:(UIScrollView *)scrollView - (void) ADKPullToRefreshLoading:(UIScrollView *)scrollView

Create a view which implemented protocol ADKPullToRefreshViewProtocol #import <AppDevKit/UIScrollView+ADKPullToRefreshView.h>

@interface PullToRefreshView : UIView <ADKPullToRefreshViewProtocol>

And more optional method for this protocol - (CGFloat) ADKPullToRefreshTriggerDistanceTimes:(UIScrollView *)scrollView - (void) ADKPullToRefreshDragging:(UIScrollView *)scrollView - (void) ADKPullToRefreshView:(UIScrollView *)scrollView draggingWithProgress:(CGFloat)progress

Page 52: Practicing AppDevKit in kata training

Add PullToRefresh View on Scroll View

Don’t forget to stop animation after things done [scrollView.pullToRefreshContentView stopAnimating];

Add PullToRefresh View on Scroll View [scrollView ADKAddPullToRefreshWithHandleView:refreshView actionHandler:^{

// do something here }];

Page 53: Practicing AppDevKit in kata training

DemoImplement Pull To Refresh with AppDevKit

Page 54: Practicing AppDevKit in kata training

Using AppDevKit in Swift projectAppDevKit Works Well with Swift

Page 55: Practicing AppDevKit in kata training

Add Bridge Header

Page 56: Practicing AppDevKit in kata training

Add Bridge Header

#import <AppDevKit.h>

Page 57: Practicing AppDevKit in kata training

Bridge Header Settings

Page 58: Practicing AppDevKit in kata training

Using Swift with AppDevKit

self.view.backgroundColor = UIColor.ADKColorWithHexString("0x1DB2E8")

Page 59: Practicing AppDevKit in kata training

Q + A