dexetra labs - building apps that can get featured

Post on 12-May-2015

463 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A presentation from Dexetra Labs talking about how to build apps that have higher chances of getting featured in the Play Store

TRANSCRIPT

Dialapp

2

DownloadsOF COURSE

Expect a download rate anywhere between 10000 and 50000 a day.

3

+1’sTHE NETWORK EFFECT

This is the best way to get to friends of users. And will also keep the downloads rate up, even after featuring. The +1s always help a lot in getting eyeballs and are a very powerful marketing tool.

4

Bragging rightsINVESTORS. FRIENDS. ANYONE.

You can fill one entire slide in that investment deck of yours. And if you are creative with white space, maybe even two.

5

CredibilityOH, IT IS A FEATURED APP?

Well this sets you apart, and makes you special. You can talk about how Google found your app good.

6

Validation.SWEET SWEET VALIDATION

This almost beats your dad finally telling you “Son, you made me proud.”

Your idea has value. Your implementation makes sense! You have succeeded in eliminating poverty. Almost.

7

User feedbackTHE GOOD. THE AWESOME.

You get a good understanding about the usability, and where people are dropping off in big numbers.

The user reviews and mails will pour in, with enough feature requests to fill your roadmap for the next 100 years.

“Private Diary/ tasks add ons If you can please create add-ons for business tasks/calendar, and private diary (other apps on the play store which I use frequently)

it's gonna be fantastic! ”

“Great, efficient and fast Awesome app!

Thanks for adding speed dial. Keep up the great

work So much better

than stock dialer”

8

Media 15 MINUTES OF FAME

So you filled one slide with featured stats. Well you can fill one more with the media mentions you got. That space at the bottom of your website you did not know what to use for: you should include the names of all these magazines there.

9

You’ve been featured!

TESTING YOUR METTLE

10

RuggednessHOW RUGGED IS YOUR SYSTEM

• Ability to take multiple logins at the same time

• Server load handling capability in case you have a server backend

11

Fix it CAN YOU FIX THINGS IN REAL TIME

• Well organized, modular code

• Efficient code

12

Communication

KEEP TALKING TO YOUR USERS

• Keep people posted when things are going well

• Even more important to keep people posted when things are not going well

13

Fast.Reusable. Compatible.

MAKE YOUR CODE

14

Modular coding

SEPARATE UI AND BUSINESS LOGIC

- 6 month update cycle for android UI

- Easy to maintain code

- Reusable

- Easy bug fix

15

Modular coding

SEPARATE UI AND BUSINESS LOGIC

• Use Interface to join different modules

• Create Libraries (e.g. Image loader, common backend)• Easy to reuse, maintain• Quick bugfix

• Use Fragments • Easy to maintain code• Ability to reuse UI Components• Easy to adapt your app for tablet, and different orientations

16

Optimize Overdraw

REMOVE UNWANTED PROCESSING

• Customise listitem parent to reduce overdraw

• Set your main theme colour as Windowbackground color and make your views transparent.

17

18

Optimize Overdraw

THEME COLOR: WINDOWBACKGROUND COLOR

<item name="android:background">@null</item>

<item name="android:windowBackground">@android:color/transparent</item>

<item name="android:colorBackground">@null</item>

19

Listview and adapters

ANDROID 101: THE BASICS

• Use convertview efficiently (override getItemViewTypeCount and getViewTyePosition method correctly)

• Use cursoradapter and cursorloaders for memory optimization

• Use Mergeadaptor for reusing and maintaining codes

20

ListviewMERGE ADAPTER

Listview listView; // initialize

  ListAdapter a, b, c, d;// initializeMergeAdapter adapter = new MergeAdapter(context);adapter.addAdapter(a);adapter.addAdapter(b);adapter.addAdapter(c);adapter.addAdapter(d);

Adapter A

Adapter B

Adapter C

Adapter D

21

ListviewLISTVIEW ITEM OPTIMIZATION

@Overridepublic void requestLayout() {        // We will assume that once measured this will not need to resize        // itself, so there is no need to pass the layout request to the parent        // view (ListView).        forceLayout();    }

22

Sensors, http calls

YOU NEED YOUR PHONE TO MAKE CALLS…

• Wi-Fi state, charging state to determine when to make http calls

• Activity sensor to optimise other sensors (Location)

• SyncAdaptors to make your http calls efficient and user friendly

23

onCreate

onStart

THE FASTER, THE BETTER.

This has to run before the UI is populated. Optimizing this will reduce the time it takes for user to see content on the app.

Lesser loading time = Happy user

UX is the secret sauce!

25

Guidelines

UX TRANSLATE THE IDEA FOR THE USER

• Tried and tested methods

• Backward and forward compatible

• Learning curve is not steep

Tips

• Reduce custom UI components - build on top of the existing frameworks

• Don’t change standard navigation patterns

e.g. Back button and Navigation up

26

Stay updated

DROID GOT NEW SHOES

• Innovative/ first movers

• Ride the wave

Tips

• Just keep an eye out for updates

• Google I/O

27

Don’t restrict user base

THINK ABOUT TARGET AUDIENCE

• Bad reviews are bad

• Don’t kill the network effect downloads

Tips

• Code for multiple screens

• Think about landscape mode

• Don’t forget LTR and RTL

28

TranslateTHINK ABOUT TARGET AUDIENCE

• Big target segments might not get catered to

• Low effort, high investment

Tips:

• Thing about how content will sound in different languages

• Use xliff to provide context to make translations better

29

xliffMAKING TRANSLATION SIMPLER

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><string name="detailed_persons_timeline">

<xliff:g id="person_name" example="John Samuel">%s</xliff:g>\'s Timeline

</string></resources>

Code UsagemTextView.setText(getString(R.string.detailed_persons_timeline, person.getName()));

30

Feedback LISTEN TO USERS AND NUMBERS

• A/B testing

• User reviews

• Analytics• Put in the right checks• Keep a tab of where users are

dropping off

31

Resources

http://developer.android.com

32

Contact

Vijith Menon (vijith.memon@dexetra.com)

Kiran B H (kiran.bh@dexetra.com)

Vishvesh Suriyanarayanan (vishvesh.suri@dexetra.com)

top related