38
iOSDevUK 2015 Reusable Native Mobile Components Kristina Thai iOS Software Engineer @kristinathai

Native Reusable Mobile Components

Embed Size (px)

Citation preview

iOSDevUK 2015

Reusable Native Mobile Components

Kristina Thai iOS Software Engineer

@kristinathai📱

Hi, I’m Kristina "

🎓 😻 ⛄&📱

Reusable Components

Mobile Components

Image Capture Component

Document Review

Component

Mobile Application

Image Capture Component

Document Review

Component

Mobile Application

Mobile Application

Mobile Application

Cha r t s

UI Component

Log i n

UI Widget

Ana l y t i c s

Mobile Application

Mobile SDK

Lessons learned along the way

Build once, support many🏠🏠🏠🏠🏠🔨

Build once, support many🏠🏠🏠🏠🏠🔨

Build once, support many🏠🏠🏠🏠🏠🔨

M i n t P a y r o l lQ u i c k B o o k s

Expertise🎓

Expertise🎓

Expertise🎓

People have no idea how to take a good picture*

*for OCR

Expertise🎓

In fact, they’re pretty terrible at it.

Expertise🎓

Expertise🎓

Expertise🎓

Expertise🎓

Expertise🎓

Expertise🎓

Image Capture Widget

API Gateway

Data Extraction Orchestration

OCR Image Classification MashUp PDF

Extraction

Mobile App (iOS/Android)

Data Completion and Validation

Expertise🎓

-(void)launchImageCapture{ self.imageCaptureVC = [[ImageCaptureViewController alloc] initWithDelegate:self];

[self presentViewController:_imageCaptureVC animated:YES completion:nil];}

Extensibility🌍

Extensibility🌍

Generic Stylized

Working with partner

teams 👫👬👭

What you want What they want

The compromise

Working with partner

teams 👫👬👭

⭐⭐⭐⭐⭐ March 2015

"We are using the OCR widget in the TurboTax product and I thoroughly enjoy working with the service and the team. Thank you for helping us delight our

customers!”

How do I get started⁉

1.Choose component

2.Choose distribution method

3.Create static/dynamic library

4.Develop simple, but extensible APIs

5.???

6.Profit!

How do I get started⁉

How do I get started⁉

1. Choose Component

• Generic and reusable

• High complexity for outsiders

• Unified experiences

• Not tied to one product or domain

• Generic or stylized interface

2. Choose distribution methodHow do I get started⁉

• Internal open source

• Cocoapods

3. Create static/dynamic libraryHow do I get started⁉

Static library

A unit of code linked at compile time, which does not change.

Dynamic library

A unit of code and/or assets linked at runtime that may change.

4. Develop simple, but extensive APIsHow do I get started⁉

Image Capture Widget

API Gateway

Data Extraction Orchestration

OCR Image Classification MashUp PDF

Extraction

Mobile App (iOS/Android)

Data Completion and Validation

2 lines of code

5. ???How do I get started⁉

🔮

6. Profit!How do I get started⁉

💰🎉 🎉