SlideShare a Scribd company logo
1 of 33
people
About Me
Companies

Technologies

NetLabs
Agenda
• Custom view introduction
• Demo
• High-level architecture of custom view
framework
•Q&A
Mobile Application Landscape
Native

Mobile Web

Hybrids

• Device integration

• Single app for multiple
platforms

• Leverage Web
advantages while
having native
capabilities

• User experience
• Push capabilities
• Offline access

• Performance
• Tuned for particular
platform
• App Store

• Leverage Web
standards (Jscript,
CSS3, HTML)
• Upgradability,
flexibility – instant!
• Easy access via links
browser, email
• Installation
Custom view introduction (Mint use case)
Wish List
• Personalize
• Let me design my dashboard
• Let me configure my dashboard
• Let me action on my dashboard

• Let me change it
• Run my dashboard
• Enable reports
• Add more features over time
Demo
How It Started
•
•
•
•
•
•
•

Custom dashboard
Comparison (see things side by side)
Get functionality which is in the product but never exposed
Avoid extra release cycles
Provide customization on product/group/user level
Platform-agnostic
Environment:
– Starting point:
• Android – Mint – Tablet

– Target:
• {IOS/Android/Windows/Web ?} – {Tablet/Phone/Desktop?}-{Intuit
product}
Architecture Objectives
• Lego paradigm
– Quickly build UX out of existing components
– Be able to add 3rd-party components

• Platform is a glue
• Light interfaces
– IOS & Java APIs
– View representation
– Metadata registry

( HTML - <TABLE>, <H1> <A> …)

• Platform-independent view description
– 3 type of layouts – vertical, horizontal, carousel
– Additional aspects – scrolling, divider, background
– Component configuration
Architecture Objectives

(Continued)

• View instantiation
– Take whole real estate
– Take designated portion(s)

• View crafting
– Custom view designer
– Hand-crafted

• “Custom view” meaning could be highlighted for power users
or administrators or hidden (ordinary users)
Environment
• Android 3.x+
• IOS – 6.x+
Custom View Architecture

Native Platform

Custom View
Interpreter

Custom View
Manager

Custom View
Designer

Metadata
Component
registration

Local Storage
Custom View Architecture
Cloud Custom
View Repository

Native Platform
Custom View Cloud API service

Custom View
Interpreter

Custom View
Manager

Custom View
Designer

Metadata
Component
registration

Local Storage
Custom View Architecture

Cloud Custom
View Repository

(Continued)
Architecture Components
Custom View Representation
(Custom View Layout,
Configuration)

Custom View Metadata
Custom View APIs
Custom View Cloud Services
Custom View Representation
• JSON-based

• Screen
– Container
• Content

<Screen>:= {
Name = text,
[Title= text],
[Description=text],
[Constraints],
[Orientation],
Container}
<Container>:=
[background="image tag"],

[scrollable=true|false],
ExtentType=proportional|filled| fixed
ExtentValue=value ( weight for
proportional, size for fixed)
children={Container|Content}+,
type=vertical|horizontal|carousel
}
<Content>:= {tag=text ,
[Configuration],
ExtentType=proportional|variable|
fixed
ExtentValue=value( weight for
proportional, size for fixed)
}
Custom View Layout
• Containers
– Vertical,
– Horizontal
– Carousel

• Touch-based layout tuning
(gesture recognition)
Configurable

{

"tag": "webview",
"configuration":
"http://www.intuit.com",
"flexible”: true,
"suggestedLayout": {
"type": "filled"
}
},
Flexible
Metadata Service

Component registry
platform-agnostic

{ "type": "component-registry”
"components": [
{
"name": "Budget",
”icon”: ”budget.png”
"tag": "current_budget",
"description": "This month overall budget.nNot
configurable",
"suggestedLayout": {
"type": "fixed",
"value": "120"
}
}
,{
"name": "Feed",
"tag": "feed",
"description": "Lists Mint alerts &
advices.nNot configurable",
"suggestedLayout": {
"type": "proportional",
"value": "1"
}
},
Metadata Service
{

Component binding
platform-specific

(Continued)

"type": "tag-registry",
"tags": [
{
"type": "component",
"tag": "blue",
"value": "BlueViewController"
},
{
"type": "component",
"tag": "budget",
"value": "TrendsController_iPad"
},
{
"type": "component",
"tag": "feed",
"value": "VespaFeedsController"
},
{
"type": "component",
"tag": "accounts",
"value": "AccountsViewController_iPad"
},
APIs
• Content (may be implemented by content provider)
• Screen instantiation
– Inflate screen in view

• Components discovery and bindings
• Custom View management
– Delete
– Create
– Find

• Cloud services
– Get all
– Delete
– Publish
Content APIs
@protocol VespaConfigurable <NSObject>

– VespaConfigurable

-(void) configure:(NSString *)configuration;

– VespaConfigurableView

-(NSString *) configuration;

– VespaConfigurableController

-(void) flexConfiguration;
@end

@protocol VespaConfigurableController <VespaConfigurable>
- (id)initWithNibName:(NSString *)nibNameOrNil
bundle:(NSBundle *)nibBundleOrNil configuration:(NSString *) configuration;
- @end
package com.intuit.mobilelib.vespa.api;
public interface ConfigurableComponent {
public void setComponentConfiguration(String config);
public String getComponentConfiguration();
public void flexConfiguration(ComponentConfigurator configurator);
}
Custom View Interpreter
• Inflate screen
• Create layout hierarchy
– Instantiate content
– Configure content
– Apply layout constraints
– Binds components
Custom View Manager
• Manages screens
– Create (Designer)
– Delete
– View (sort)
– Edit
Custom View Designer
• Create/edit screens
– Displays content repository
– Layout selection
– Layout tuning
– Drag & drop interface
– Orchestrate content
configuration
Custom View Discrimination
•
•
•
•

By
By
By
By

platform (any, Android, IOS)
orientation (any, portrait, landscape)
type (phone, tablet)
tags – multi-tenancy (“Plumber”, “Sweet Bagels”)
Standard Components
• General
– Web view
– Image view
– RSS feed
– Weather
– Stock

• Mint
– Accounts
– Budget
– Transactions
– Spending
– Income
– Reports
Custom Reports

28
Custom Reports –continued

29
Content Writers’ Guidelines
• Componentization!!!
• Do not use hardcoded sizes!!! (IOS)
• Make everything “relative”
• Maximize advantages of Android layouts & fragments and IOS
autolayout
Takeaways
• It is possible to personalize, customize native user experience
for certain type of applications
• You may achieve common dashboard, reporting capabilities in
a platform agnostic way
• It is possible to distribute and share custom views among
group of users (admin/crowd sourcing)
Q&A

Want to talk more?
I’ll be at the Intuit booth today 11am – 2pm.

Email: eugene_krivopaltsev@intuit.com
Intuit Speakers @ Silicon Code Camp 2013:
SATURDAY
9:45 a.m. - Ramakrishna Kollipara – “Complete Automation of Performance Testing”
1:45 p.m. - Joe Wells - “QBO: Journey From legacy Java app to a Client-side HTML5 app”
3:30 p.m. - Naga Addagadde & Sangeeta Narang – “Intuit APIs for Financial Transaction

Aggregation”
5:00 p.m. Ted Drake –“Hitting the Accessibility High Notes with ARIA”
SUNDAY
9:15 a.m. - Eugene Krivopaltsev –“Building Native Mobile Apps with Custom Views”
1:15 p.m. - Tim Hobson – “Developing Highly Instrumental Applications with Minimal Effort”

For more information about joining our organization visit our booth or connect with
our onsite recruiter:
Chriscox_recruiter@intuit.com
You don't want to miss out on a chance to win this cool headset.
Stop by our booth to enter

33

More Related Content

What's hot

Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...SSA KPI
 
Building responsive web mobile mapping applications
Building responsive web mobile mapping applicationsBuilding responsive web mobile mapping applications
Building responsive web mobile mapping applicationsAllan Laframboise
 
Building a ArcGIS mobile, cloud, checkin app in 75 minutes - zero to hero
Building a ArcGIS mobile, cloud, checkin app in 75 minutes - zero to heroBuilding a ArcGIS mobile, cloud, checkin app in 75 minutes - zero to hero
Building a ArcGIS mobile, cloud, checkin app in 75 minutes - zero to heroAllan Laframboise
 
What's coming in WCM for Liferay 6.2?
What's coming in WCM for Liferay 6.2?What's coming in WCM for Liferay 6.2?
What's coming in WCM for Liferay 6.2?Julio Camarero
 
11g boot camp weblogic and adf
11g boot camp weblogic and adf11g boot camp weblogic and adf
11g boot camp weblogic and adfChad Thompson
 
ADF in Action - getting (re)acquainted with Oracle’s premier application deve...
ADF in Action - getting (re)acquainted with Oracle’s premier application deve...ADF in Action - getting (re)acquainted with Oracle’s premier application deve...
ADF in Action - getting (re)acquainted with Oracle’s premier application deve...Lucas Jellema
 
PowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application DeploymentPowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application Deploymentzulmach .
 
Application Development Approaches
Application Development ApproachesApplication Development Approaches
Application Development ApproachesOsman Celik
 
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile ServicesBuilding Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile ServicesPranav Ainavolu
 
Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev TricksGabriel Walt
 
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...Luc Bors
 
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Lucas Jellema
 
Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus WSO2
 
Refinery CMS: BostonRB CMS Showdown
Refinery CMS: BostonRB CMS ShowdownRefinery CMS: BostonRB CMS Showdown
Refinery CMS: BostonRB CMS ShowdownDan Pickett
 

What's hot (19)

Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
 
Building responsive web mobile mapping applications
Building responsive web mobile mapping applicationsBuilding responsive web mobile mapping applications
Building responsive web mobile mapping applications
 
Mobile for the rest of us
Mobile for the rest of usMobile for the rest of us
Mobile for the rest of us
 
Twitter bootstrap1
Twitter bootstrap1Twitter bootstrap1
Twitter bootstrap1
 
Building a ArcGIS mobile, cloud, checkin app in 75 minutes - zero to hero
Building a ArcGIS mobile, cloud, checkin app in 75 minutes - zero to heroBuilding a ArcGIS mobile, cloud, checkin app in 75 minutes - zero to hero
Building a ArcGIS mobile, cloud, checkin app in 75 minutes - zero to hero
 
What's coming in WCM for Liferay 6.2?
What's coming in WCM for Liferay 6.2?What's coming in WCM for Liferay 6.2?
What's coming in WCM for Liferay 6.2?
 
Chag dashboard
Chag dashboardChag dashboard
Chag dashboard
 
AMIS Oracle OpenWorld 2013 Review Part 4- SAAS Miscellaneous and Summary
AMIS Oracle OpenWorld 2013 Review Part 4- SAAS Miscellaneous and SummaryAMIS Oracle OpenWorld 2013 Review Part 4- SAAS Miscellaneous and Summary
AMIS Oracle OpenWorld 2013 Review Part 4- SAAS Miscellaneous and Summary
 
11g boot camp weblogic and adf
11g boot camp weblogic and adf11g boot camp weblogic and adf
11g boot camp weblogic and adf
 
ADF in Action - getting (re)acquainted with Oracle’s premier application deve...
ADF in Action - getting (re)acquainted with Oracle’s premier application deve...ADF in Action - getting (re)acquainted with Oracle’s premier application deve...
ADF in Action - getting (re)acquainted with Oracle’s premier application deve...
 
PowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application DeploymentPowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application Deployment
 
Application Development Approaches
Application Development ApproachesApplication Development Approaches
Application Development Approaches
 
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile ServicesBuilding Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
Building Android, iOS and Windows 8 Apps with Windows Azure Mobile Services
 
Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev Tricks
 
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
AMIS UX Event 2014: Mobile ADF; From Design To Device; The Tools that make it...
 
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
 
Prashant_Shukla-UI
Prashant_Shukla-UIPrashant_Shukla-UI
Prashant_Shukla-UI
 
Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus
 
Refinery CMS: BostonRB CMS Showdown
Refinery CMS: BostonRB CMS ShowdownRefinery CMS: BostonRB CMS Showdown
Refinery CMS: BostonRB CMS Showdown
 

Similar to Intuit Mobile Custom Views

Xamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego MeetupXamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego MeetupSeamgen
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!Supercharge
 
A Smooth Transition to HTML5
A Smooth Transition to HTML5A Smooth Transition to HTML5
A Smooth Transition to HTML5Chris Bannon
 
PaaS + Appcelerator = WIN
PaaS + Appcelerator = WINPaaS + Appcelerator = WIN
PaaS + Appcelerator = WINAaron Saunders
 
Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesSalesforce Developers
 
SharePoint Design & Development
SharePoint Design & DevelopmentSharePoint Design & Development
SharePoint Design & DevelopmentJonathan Schultz
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!Gabriel Walt
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!connectwebex
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Jeff Haynie
 
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumMobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumJeff Haynie
 
A Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMA Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMChris Bannon
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Ganesh Kondal
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotchaphegaro
 
Tutti pronti per Windows 10?
Tutti pronti per Windows 10?Tutti pronti per Windows 10?
Tutti pronti per Windows 10?Fabrizio Bernabei
 

Similar to Intuit Mobile Custom Views (20)

Xamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego MeetupXamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego Meetup
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!
 
A Smooth Transition to HTML5
A Smooth Transition to HTML5A Smooth Transition to HTML5
A Smooth Transition to HTML5
 
PaaS + Appcelerator = WIN
PaaS + Appcelerator = WINPaaS + Appcelerator = WIN
PaaS + Appcelerator = WIN
 
Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile Architectures
 
Kentico CMS
Kentico CMSKentico CMS
Kentico CMS
 
DotNetNuke
DotNetNukeDotNetNuke
DotNetNuke
 
SharePoint Design & Development
SharePoint Design & DevelopmentSharePoint Design & Development
SharePoint Design & Development
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Androidify workshop
Androidify workshopAndroidify workshop
Androidify workshop
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0
 
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumMobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
 
A Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVMA Smooth Transition to HTML5 Using MVVM
A Smooth Transition to HTML5 Using MVVM
 
SAP Business Objects Trianing
SAP Business Objects TrianingSAP Business Objects Trianing
SAP Business Objects Trianing
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
 
Mobile gotcha
Mobile gotchaMobile gotcha
Mobile gotcha
 
Tutti pronti per Windows 10?
Tutti pronti per Windows 10?Tutti pronti per Windows 10?
Tutti pronti per Windows 10?
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Intuit Mobile Custom Views

  • 3. Agenda • Custom view introduction • Demo • High-level architecture of custom view framework •Q&A
  • 4. Mobile Application Landscape Native Mobile Web Hybrids • Device integration • Single app for multiple platforms • Leverage Web advantages while having native capabilities • User experience • Push capabilities • Offline access • Performance • Tuned for particular platform • App Store • Leverage Web standards (Jscript, CSS3, HTML) • Upgradability, flexibility – instant! • Easy access via links browser, email • Installation
  • 5. Custom view introduction (Mint use case) Wish List • Personalize • Let me design my dashboard • Let me configure my dashboard • Let me action on my dashboard • Let me change it • Run my dashboard • Enable reports • Add more features over time
  • 7. How It Started • • • • • • • Custom dashboard Comparison (see things side by side) Get functionality which is in the product but never exposed Avoid extra release cycles Provide customization on product/group/user level Platform-agnostic Environment: – Starting point: • Android – Mint – Tablet – Target: • {IOS/Android/Windows/Web ?} – {Tablet/Phone/Desktop?}-{Intuit product}
  • 8. Architecture Objectives • Lego paradigm – Quickly build UX out of existing components – Be able to add 3rd-party components • Platform is a glue • Light interfaces – IOS & Java APIs – View representation – Metadata registry ( HTML - <TABLE>, <H1> <A> …) • Platform-independent view description – 3 type of layouts – vertical, horizontal, carousel – Additional aspects – scrolling, divider, background – Component configuration
  • 9. Architecture Objectives (Continued) • View instantiation – Take whole real estate – Take designated portion(s) • View crafting – Custom view designer – Hand-crafted • “Custom view” meaning could be highlighted for power users or administrators or hidden (ordinary users)
  • 11. Custom View Architecture Native Platform Custom View Interpreter Custom View Manager Custom View Designer Metadata Component registration Local Storage
  • 12. Custom View Architecture Cloud Custom View Repository Native Platform Custom View Cloud API service Custom View Interpreter Custom View Manager Custom View Designer Metadata Component registration Local Storage
  • 13. Custom View Architecture Cloud Custom View Repository (Continued)
  • 14. Architecture Components Custom View Representation (Custom View Layout, Configuration) Custom View Metadata Custom View APIs Custom View Cloud Services
  • 15. Custom View Representation • JSON-based • Screen – Container • Content <Screen>:= { Name = text, [Title= text], [Description=text], [Constraints], [Orientation], Container} <Container>:= [background="image tag"], [scrollable=true|false], ExtentType=proportional|filled| fixed ExtentValue=value ( weight for proportional, size for fixed) children={Container|Content}+, type=vertical|horizontal|carousel } <Content>:= {tag=text , [Configuration], ExtentType=proportional|variable| fixed ExtentValue=value( weight for proportional, size for fixed) }
  • 16. Custom View Layout • Containers – Vertical, – Horizontal – Carousel • Touch-based layout tuning (gesture recognition)
  • 19. Metadata Service Component registry platform-agnostic { "type": "component-registry” "components": [ { "name": "Budget", ”icon”: ”budget.png” "tag": "current_budget", "description": "This month overall budget.nNot configurable", "suggestedLayout": { "type": "fixed", "value": "120" } } ,{ "name": "Feed", "tag": "feed", "description": "Lists Mint alerts & advices.nNot configurable", "suggestedLayout": { "type": "proportional", "value": "1" } },
  • 20. Metadata Service { Component binding platform-specific (Continued) "type": "tag-registry", "tags": [ { "type": "component", "tag": "blue", "value": "BlueViewController" }, { "type": "component", "tag": "budget", "value": "TrendsController_iPad" }, { "type": "component", "tag": "feed", "value": "VespaFeedsController" }, { "type": "component", "tag": "accounts", "value": "AccountsViewController_iPad" },
  • 21. APIs • Content (may be implemented by content provider) • Screen instantiation – Inflate screen in view • Components discovery and bindings • Custom View management – Delete – Create – Find • Cloud services – Get all – Delete – Publish
  • 22. Content APIs @protocol VespaConfigurable <NSObject> – VespaConfigurable -(void) configure:(NSString *)configuration; – VespaConfigurableView -(NSString *) configuration; – VespaConfigurableController -(void) flexConfiguration; @end @protocol VespaConfigurableController <VespaConfigurable> - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil configuration:(NSString *) configuration; - @end package com.intuit.mobilelib.vespa.api; public interface ConfigurableComponent { public void setComponentConfiguration(String config); public String getComponentConfiguration(); public void flexConfiguration(ComponentConfigurator configurator); }
  • 23. Custom View Interpreter • Inflate screen • Create layout hierarchy – Instantiate content – Configure content – Apply layout constraints – Binds components
  • 24. Custom View Manager • Manages screens – Create (Designer) – Delete – View (sort) – Edit
  • 25. Custom View Designer • Create/edit screens – Displays content repository – Layout selection – Layout tuning – Drag & drop interface – Orchestrate content configuration
  • 26. Custom View Discrimination • • • • By By By By platform (any, Android, IOS) orientation (any, portrait, landscape) type (phone, tablet) tags – multi-tenancy (“Plumber”, “Sweet Bagels”)
  • 27. Standard Components • General – Web view – Image view – RSS feed – Weather – Stock • Mint – Accounts – Budget – Transactions – Spending – Income – Reports
  • 30. Content Writers’ Guidelines • Componentization!!! • Do not use hardcoded sizes!!! (IOS) • Make everything “relative” • Maximize advantages of Android layouts & fragments and IOS autolayout
  • 31. Takeaways • It is possible to personalize, customize native user experience for certain type of applications • You may achieve common dashboard, reporting capabilities in a platform agnostic way • It is possible to distribute and share custom views among group of users (admin/crowd sourcing)
  • 32. Q&A Want to talk more? I’ll be at the Intuit booth today 11am – 2pm. Email: eugene_krivopaltsev@intuit.com
  • 33. Intuit Speakers @ Silicon Code Camp 2013: SATURDAY 9:45 a.m. - Ramakrishna Kollipara – “Complete Automation of Performance Testing” 1:45 p.m. - Joe Wells - “QBO: Journey From legacy Java app to a Client-side HTML5 app” 3:30 p.m. - Naga Addagadde & Sangeeta Narang – “Intuit APIs for Financial Transaction Aggregation” 5:00 p.m. Ted Drake –“Hitting the Accessibility High Notes with ARIA” SUNDAY 9:15 a.m. - Eugene Krivopaltsev –“Building Native Mobile Apps with Custom Views” 1:15 p.m. - Tim Hobson – “Developing Highly Instrumental Applications with Minimal Effort” For more information about joining our organization visit our booth or connect with our onsite recruiter: Chriscox_recruiter@intuit.com You don't want to miss out on a chance to win this cool headset. Stop by our booth to enter 33