riaction 2010 - love hate relationship of zopim and flex

30
Confidential 23 April 2010 1 Royston Tay [email protected] Co-founder

Upload: zopim

Post on 16-Jan-2015

2.851 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: RIAction 2010 - Love hate relationship of Zopim and Flex

Confidential23 April 2010 1

Royston Tay

[email protected]

Co-founder

Page 2: RIAction 2010 - Love hate relationship of Zopim and Flex

Business dude, engineer, co-founder Zopim

Electrical engineering background (NUS)

Only started serious coding in 2005◦ QA engineer at FaceTime Communications

◦ Makeshift developer at Zopim

Keen focus on RIA technologies especially

after co-founding e27.sg

Currently in Product Management role in

Zopim

23 April 2010 Confidential2

Page 3: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 3 Confidential

• Web-based Solutions

Zopimprovides..

• Small-medium

Businesses

For..

• Influence Sales Online

To..

Page 4: RIAction 2010 - Love hate relationship of Zopim and Flex

The best Live Chat for

sales conversion

Tailor-made for SMBs

Emphasis on» Simple, great user

experience

»Accessibility

» Powerful features

Simple, affordable, powerful

23 April 2010 Confidential4

Page 5: RIAction 2010 - Love hate relationship of Zopim and Flex

Websites with shopping carts◦ Surf-station.com Being logged onto Zopim is now a basic requirement of both our store

locations. Zopim has absolutely changed the way we do day to day customer service

◦ MiracleNoodle.com Zopim has reduced phone calls substantially and has increased sales on

our website by 16%. We can't imagine our website without it

Real Estate◦ Buddyblake.com In the past 2 months we've sold 2 homes directly as a result of Zopim. This

is the best investment I've made in some time.

Offline Services◦ Spahaven.com Having an automated lead engagement tool like Zopim gives our

company the ability to execute like the big boys, for a fraction of the cost

23 April 2010 Confidential5

Page 6: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 6 Confidential

Page 7: RIAction 2010 - Love hate relationship of Zopim and Flex

Our history with RIA frameworks

Why we adopted Flex in 2008

Our major gripes with Flex

How we coped with Flex

Recent release of Flex 4 / Flash 10

Which RIA framework is the fairest of them all?◦ Flex, Silverlight, JavaFx, AJAX?

23 April 2010 Confidential7

Page 8: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 8 Confidential

Page 9: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 Confidential9

Flex

Zopim

2004: Flex 1 released

2006: Flex 2 released

Feb 2008: Flex 3 released

Open sourced

June 2007: Challenge to come

up with a prototype

Page 10: RIAction 2010 - Love hate relationship of Zopim and Flex

Not OS dependent

Browser-based»No downloads required

Provide the best possible desktop-like UI experience for our users

Easily skinned

No / Low learning curve

Decision : ExtJs (JS framework built on YUI)

Awesome Live Chat experience for business owners

23 April 2010 Confidential10

Page 11: RIAction 2010 - Love hate relationship of Zopim and Flex

ExtJs Problems◦ Minimal animation

support

◦ Cross-browser

compatibility (read IE6!!)

◦ Longer development

cycle

23 April 2010 Confidential11

Page 12: RIAction 2010 - Love hate relationship of Zopim and Flex

Flex beckons..

Large Market Share

WYSIWYG Editor

MXML – XML based declarative language for

display components

Inline actionscript for business logic

Flash socket

Better animation / visualization / multimedia

support

23 April 2010 Confidential12

Page 13: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 Confidential13

Flex

Zopim

2004: Flex 1 released

2006: Flex 2 released

Feb 2008: Flex 3 released

Open sourced

Aug 2007: Prototype

in ExtJs

Jan 2008: Zopim

founded

Sep 2008: Zopim

releases Flex

Dashboard

Page 14: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 Confidential14

Flex

Zopim

2004: Flex 1 released

2006: Flex 2 released

Feb 2008: Flex 3 released

Open sourced

Aug 2007: Prototype

in ExtJs

Jan 2008: Zopim

founded

Sep 2008: Zopim

releases Flex

Dashboard

Jan 2009: Our first baby

– JXML created

(Declarative Javascript

framework similar to

Flex’s MXML)

Page 15: RIAction 2010 - Love hate relationship of Zopim and Flex

Modular, faster widget development

23 April 2010 Confidential15

Ruby-based JXML

Compiler

Jxml

files

Compiled

Javascript

Page 16: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 Confidential16

Flex

Zopim

2004: Flex 1 released

2006: Flex 2 released

Feb 2008: Flex 3 released

Open sourced

Aug 2007: Prototype

in ExtJs

Jan 2008: Zopim

founded

Sep 2008: Zopim

releases Flex

Dashboard

Jan 2009: Our first baby

– JXML created

(Declarative Javascript

framework similar to

Flex’s MXML)

Mid 2009: First signs of

problems. Optimization

issues.

Page 17: RIAction 2010 - Love hate relationship of Zopim and Flex

> 50% for heavy-traffic sites◦ Constant visual updates on visitor list

Spikes when dynamically adding / removing

UI components

23 April 2010 Confidential17

Page 18: RIAction 2010 - Love hate relationship of Zopim and Flex

Reduce Measurement / Layout calculations◦ Use absolute layouts where possible (vs fluid layouts)

◦ Avoid nested VBox, HBox

◦ Use stripped-down Group, VGroup, HGroup in Flex 4

Reduce data-bindings for frequently

changing data

For lists containing large data sets –

useVirtualLayout = true

23 April 2010 Confidential18

Page 19: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 Confidential19

Reuse dynamic UI components◦ Reduces unnecessary object creation

Use mouseEnabled = false

mouseChildren = false

liberally!

Page 20: RIAction 2010 - Love hate relationship of Zopim and Flex

No way to explicitly delete an object

Garbage collector

Objects with lingering references leads to

memory leak

23 April 2010 Confidential20

A B

Creates and

references

C

Adds Event

Listener De-reference & remove event

listeners diligentlyaddEventListener (type, listener, useCapture, priority, useWeakReference)

Be careful – Hard to find leaks

Page 21: RIAction 2010 - Love hate relationship of Zopim and Flex

Compiled SWF > 1.5MB

Solution was relatively straightforward◦ Use Runtime Shared Libraries (RSLs)

◦ Compiled SWF < 50% of original

23 April 2010 Confidential21

Page 22: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 Confidential22

Flex

Zopim

2004: Flex 1 released

2006: Flex 2 released

Feb 2008: Flex 3 released

Open sourced

Aug 2007: Prototype

in ExtJs

Jan 2008: Zopim

founded

Sep 2008: Zopim

releases Flex

Dashboard

Jan 2009: Our first baby

– JXML created

(Declarative Javascript

framework similar to

Flex’s MXML)

Mid 2009: First signs of

problems. Optimization

issues.

Mar 2010: Flex 4 released

Page 23: RIAction 2010 - Love hate relationship of Zopim and Flex

Better designer / developer workflow◦ Adobe Catalyst and FlashBuilder

Data-centric development◦ Define data model + Bind data to Flex components

Developer Productivity / Testing Tools◦ Better Refactoring, Profiling, Documentation, Unit

Testing

Better mobile compatibility◦ Adobe Packager: AS3 to iPhone app

◦ Adobe Slider: Mobile Flex Framework

23 April 2010 Confidential23

Page 24: RIAction 2010 - Love hate relationship of Zopim and Flex

SEO

Level of adoption / X-browser issues

Breaking of normal browser experience

Compatible with 3rd party JS / swf

Speed / File size

Level of multimedia integration

Need to manipulate DOM / HTML

Ease of hiring developers

Important Considerations

23 April 2010 Confidential24

Page 25: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 25 Confidential

Page 26: RIAction 2010 - Love hate relationship of Zopim and Flex

Frontend Developer◦ Experienced in Javascript / JS frameworks

◦ Dabbled with Flex 3 / 4

◦ Passion and creativity is a must

◦ Keen interest in UI design

Backend Developer◦ Knowledge & understanding of OOP (Python preferably)

◦ Experienced in MySQL, DB design and administration

◦ Familiar with web technologies such as Web server, DNS,

TCP, etc..

◦ Creative and persistent problem solver

23 April 2010 Confidential26

Page 27: RIAction 2010 - Love hate relationship of Zopim and Flex

23 April 2010 27 Confidential

Page 30: RIAction 2010 - Love hate relationship of Zopim and Flex

Flare Data Visualization

FlexLib – Open source flex components

Tour de Flex – AIR app with demos & code

samples

23 April 2010 Confidential30