From an idea to Google Play

Agenda

Pre development

Market research

Package name

Native approach

HTML5 approach

During development

ANRs and NPE

Avoiding ANRs and NPE

Failsafe exceptions

            // Bad practice
            try{
              // do something risky
            } catch (NarrowException1 e){

            } catch (NarrowException2 e){

            }
          
            // Good practice
            try{
              // do something risky
            } catch (NarrowException1 e){

            } catch (NarrowException2 e){

            } catch (Exception e){

            }
          

Remote error logging

            try{
              // do something risky
            } catch (NarrowException1 e){

            } catch (NarrowException2 e){

            } catch (Exception e){
              // call error API
              // for remote logging
              // on server
              error( e.getMessage() );
            }
          

Offline capabilities

Performance & Security

Minimum viable product

Google Analytics integration

            // Start tracking
            tracker.start("UA-MY_CODE-XX", this);

            // Register an activity view.
            tracker.trackPageView("/map_activity");

            // send views to server
            tracker.dispatch();
          

Google Admob integration

            // Create adview
            AdView adView = new AdView(this, AD_TYPE, 
            MY_BANNER_UNIT_ID);

            // Create an ad request
            AdRequest request = new AdRequest();

            // Load ad in the UI.
            adView.loadAd(request);
          

ACRA integration

            // Associate the form
            @ReportsCrashes(formKey = 
            "tWTBQaGdDI4V1YDgzWHVqQWc6MQc2ZVZRb")

            // Initialize ACRA
            ACRA.init( this );
          

ACRA usage modes

ACRA report desitnations

Post development

Testing over production build

Three things to remember ALWAYS!

Publishing on Google Play

Post deployment

Collecting feedback

Application updates

Third party App Stores

Leverage social

Some numbers

1.3mn activations daily

Questions ?