building an app across 11 arabic countries

34
Building an app for 11 arabic countries The dubizzle story

Upload: droidcon-dubai

Post on 25-Jul-2015

170 views

Category:

Mobile


1 download

TRANSCRIPT

Building an app for 11 arabic countries

The dubizzle story

ContentBackground.Building our team Challenges Research and pivot1 API. The MVP. VerticalizingNative or Hybrid?

RTL (thanks google)Material design listening to feedback. fixing fastreleasing fastour success.the reality

Background- dubizzle was built and formed in the UAE by

2 American founders. - Originally the HQ was in a villa.- dubizzle has grown to 150 since then.- I am one of them 150

BackgroundWho am I?- I am from London- I‘m a Native iOS and Android Developer- I have been building native apps since 2009- Currently leading dubizzles’ mobile team.

BackgroundWhat made me move to Dubai from London? - To build something that changes lives.- For dubizzle’s culture and environment.- To build and lead a strong mobile team.

concept

May June July August Oct Nov Jan FebSept March

2014 2015

Building our team- The right mobile engineer is hard to find in Dubai. - Eventually we had our team. - We had a big challenge to face.

build a team

May June July August Oct Nov Jan FebSept March

2014 2015

Challenges- The market moves fast- We will need to pivot to any category fast.- We will need to be able to fail fast- Learnings will come as we develop and come fast.

Challenges

May June July August Oct Nov Jan FebSept March

2014 2015

Challenges..and learn fast we did. We changed a lot in this last year. Some include:- Moving from Eclipse/Ant -> Gradle/Android Studio- From Multiple apps to a single app- From English first to Arabic first- Our design += Material design principles.

Started to learn

May June July August Oct Nov Jan FebSept March

2014 2015

Challenges- Multiple apps to a single app

- moving away from a vertical app- considering every one of our categories- deprecating and moving old users to our new app.

Started to learn

May June July August Oct Nov Jan FebSept March

2014 2015

ChallengesEclipse/Ant -> Gradle/Android Studio- Eclipse crashes -> Android Studio (usually) doesn’t- multidex support in Eclipse is hard work. - multidex support comes out the box with gradle- gradle supports maven dependency management- great lint checking.

Started to learn

May June July August Oct Nov Jan FebSept March

2014 2015

Research and pivotRules we learnt:- Make it data driven. A hunch can work, but always

prove it.- justify theory with some data. - track everything. - test heavily before releasing

driven by research

May June July August Oct Nov Jan FebSept March

NOT SO GOOD

GOOD

2014 2015

Research and pivot- Google analytics is an amazing tool- One analytics tool to rule them all

driven by research

May June July August Oct Nov Jan FebSept March

2014 2015

ONE API1 API:- Simplifies development. Makes things easier.- Single data Transformation layer.- Encourages clean architecture.

One API to serve them all

May June July August Oct Nov Jan FebSept March

Android Client

One API

Service Service Service Service Service

client 2client 3

2014 2015

ONE APIThird parties are still okay.- We use some for:

- A/B testing- Analytics- Request logging

One API to serve them all

May June July August Oct Nov Jan FebSept March

- User feedback- Crash reporting- ad-hoc deployment

2014 2015

The MVP

We had the MVP and the right insights.- listen to our customers- consider all analytics.

The MVP release

May June July August Oct Nov Jan FebSept March

2014 2015

App

Analytics User feedback

Listen to feedback

May June July August Oct Nov Jan FebSept March

We listen to all the feedback (inc engineers; them too!)We use Hockeyapp and Zendesk for customer support.

2014 2015

Fixing fastOnce you know you can improve something… fix it!

May June July August Oct Nov Jan FebSept March

2014 2015

Fixing fastWe see crash reports as soon as new crashes happen.

May June July August Oct Nov Jan FebSept March

2014 2015

VerticalizingLooking at the vertical picture. - We focus on multiple streams at once. (jobs, property,

motors, classifieds)- We knew our architecture had to allow us to

customize per category.

2014 2015

Verticalize

May June July August Oct Nov Jan FebSept March

Native or Hybrid?- We use a webview for some features.- This allows us to provide functionality

we do not have time to build.

2014 2015

Going Hybrid

May June July August Oct Nov Jan FebSept March

Native or Hybrid?A Webview can be a good solution for getting mobile web features out the door in a native environment.- We use AdvancedWebView by delight.im. - There are problems with openFileChooser in

Android Kitkat 4.4.2 and lower. (issue 62220; Android codebase).

2014 20152015

Going Hybrid

May June July August Oct Nov Jan FebSept March

2014

Native or Hybrid?So we are Native with Hybrid Elements. - Most functionality is Native.- We rely on a WebView for only the things we want to

make native later.

2014 20152014 2015

Going Hybrid

May June July August Oct Nov Jan FebSept March

RTL (thanks google)We knew that a lot of people speak arabic here.- Arabic is read right to left.- We use xml layouts for everything right to left.- We allow people to change locale within the app.

2014 20152015

RTL

May June July August Oct Nov Jan FebSept March

- Our localization became regional

2014 2015

RTL (thanks google)

2014 2015

RTL

May June July August Oct Nov Jan FebSept March

- Interaction points and animations became reversed

2014 2015

RTL (thanks google)

2015

RTL

May June July August Oct Nov Jan FebSept March

2014

Material Design and how it helped us.We ran an A/B test for some material design principles….Elevated floating action buttons and our toolbar. Its working for us… (we use floatingactionbutton by getbase)

2014 20152015

Material Design

May June July August Oct Nov Jan FebSept March

2014

Material Design and how it helped us.Biggest advantage:Lots of free research centric design principles out the box to combine with our own principles.

2014 20152015

Material Design

May June July August Oct Nov Jan FebSept March

2014

Releasing fast

2014 2015

We use release trains

2014 2015

Releasing fast

May June July August Oct Nov Jan FebSept March

Releasing fast

feature branch PR to release branch

mobile team

reviews

Good to go?

good for release train. do integration testing.

GTG?fix the code

Yes

Yes

No

No

release

2014 2015

Releasing fast

May June July August Oct Nov Jan FebSept March

Our success

2014 2015

We really have succeeded on the google play market now.

2015

Our Success

May June July August Oct Nov Jan FebSept March

2014

Our success

2014 2015

We are in top 5 lifestyle apps.We won a wonderful award

2014 2015

Our Success

May June July August Oct Nov Jan FebSept March

The Reality

2014 2015

The Android SDK and tools are amazing. Making a great app would not be so possible without

the tools google provide us.

Monkeyrunnerdraw 9 patchheirarchyview

proguarduiautomatorview

DDMSAndroid Studio (beta no more!).

ADB

2014 2015

The reality

May June July August Oct Nov Jan FebSept March

The Reality

2014 2015

An Android success with a great team.

2014 2015

The reality

May June July August Oct Nov Jan FebSept March

Questions?