Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Latest & Interesting updates #AndroidDev

Paresh Mayani
September 28, 2013

Latest & Interesting updates #AndroidDev

A talk on the latest and interesting #AndroidDev updates recently announced and available.

This talk was delivered at GDG DevFest Kathmandu (Nepal).

Paresh Mayani

September 28, 2013
Tweet

More Decks by Paresh Mayani

Other Decks in Technology

Transcript

  1. GDG DevFest @ Kathmandu, Nepal

    View Slide

  2. Latest & Interesting updates
    #AndroidDev
    @pareshmayani

    View Slide

  3. Paresh Mayani
    Android Developer
    Manager, GDG Ahmedabad

    View Slide

  4. Interesting updates - #AndroidDev
    • Android Studio
    • Gradle Build System
    • Volley Library
    • Google Maps Android API v2
    • Staged rollouts
    • Alpha and Beta Testing
    • Optimization Tips
    • App Translation Service
    @pareshmayani

    View Slide

  5. Android Studio
    @pareshmayani

    View Slide

  6. Android Studio
    • Android focused IDE (designed
    specifically for Android development)
    • New Android development environment
    based on IntelliJ IDEA
    • Similar to Eclipse with the ADT Plug-in
    • Contains All the Android SDK Tools to
    design, test, debug, and profile your app
    @pareshmayani

    View Slide

  7. Gradle Build System
    @pareshmayani

    View Slide

  8. Gradle Build System
    • Gradle is an advanced build
    management system based on Groovy
    • Its an Open source build system
    • Combines the power of Ant and Maven
    @pareshmayani

    View Slide

  9. Features of Gradle build system
    • Dependency Management (Flexible approach to
    dependency management that can reuse existing maven
    repositories or reference local JARs)
    @pareshmayani

    View Slide

  10. Features of Gradle build system
    • Dependency Management (Flexible approach to
    dependency management that can reuse existing maven
    repositories or reference local JARs)
    • A single build system (Gradle is the authoritative build
    across the IDE and the command-line.)
    @pareshmayani

    View Slide

  11. Features of Gradle build system
    • Dependency Management (Flexible approach to
    dependency management that can reuse existing maven
    repositories or reference local JARs)
    • A single build system (Gradle is the authoritative build
    across the IDE and the command-line.)
    • Product Flavors (Free & Paid version), Build Variants (Play
    store OR Amazon OR Any other store), Build Type (Debug,
    QA, Release)
    @pareshmayani

    View Slide

  12. Features of Gradle build system
    • Dependency Management (Flexible approach to
    dependency management that can reuse existing maven
    repositories or reference local JARs)
    • A single build system (Gradle is the authoritative build
    across the IDE and the command-line.)
    • Product Flavors (Free & Paid version), Build Variants (Play
    store OR Amazon OR Any other store), Build Type (Debug,
    QA, Release)
    • Binary Bundles for Libaries (.aar) (Gradle supports the new
    .aar binary bundle format for the library projects)
    @pareshmayani

    View Slide

  13. Volley – “the simultaneous firing of a
    number of missiles”
    @pareshmayani

    View Slide

  14. Android – Volley library
    “Volley is a library that makes networking for
    Android apps easier and most importantly, faster.”
    @pareshmayani

    View Slide

  15. Advantages of using Volley Library
    • Volley automatically schedule all network requests.
    Volley will be taking care of all the network requests your app
    executes for fetching response or image from web.
    • Volley provides powerful customization abilities.
    • Volley provides Debugging and tracing tools.
    • Volley provides powerful cancellation request API.
    - You can cancel a single request or
    - You can set blocks or scopes of requests to cancel.
    @pareshmayani

    View Slide

  16. How to get started?
    1. Clone the Volley project
    2. Import the code into your project
    @pareshmayani

    View Slide

  17. Clone the Volley Project
    git clone
    https://android.googlesource.com/platform/frameworks/volley
    @pareshmayani

    View Slide

  18. 2 Main classes of Volley Library
    2 main classes
    Request queue
    It is the interest you use for
    dispatching requests to the
    network
    It contains all the
    necessary details for
    making web API call
    Request
    @pareshmayani

    View Slide

  19. Take a look at JsonObjectRequest
    JsonObjectRequest ObjJsonRequest = new JsonObjectRequest(Request.Method.GET, url, null, new
    Response.Listener() {
    @Override
    public void onResponse(JSONObject response) {
    // Successful response
    }
    }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    // Failure response
    }
    });
    @pareshmayani

    View Slide

  20. Basic Example
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.JsonObjectRequest;
    import com.android.volley.toolbox.Volley;
    public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    ……
    …...
    RequestQueue queue = Volley.newRequestQueue(this);
    String url = “Web API URL”;
    // Prepare JSON Object request
    queue.add(ObjJsonRequest );
    }
    @pareshmayani

    View Slide

  21. Google Maps API v2
    @pareshmayani

    View Slide

  22. Google Maps Android API v2
    • With v2 of Maps Android API, you can embed maps into an
    activity as a fragment
    @pareshmayani

    View Slide

  23. Google Maps Android API v2
    • With v2 of Maps Android API, you can embed maps into an
    activity as a fragment
    • The API is now distributed as part of the Google Play
    services SDK
    @pareshmayani

    View Slide

  24. Google Maps Android API v2
    • With v2 of Maps Android API, you can embed maps into an
    activity as a fragment
    • The API is now distributed as part of the Google Play
    services SDK
    • Maps are now 3D
    @pareshmayani

    View Slide

  25. Google Maps Android API v2
    • With v2 of Maps Android API, you can embed maps into an
    activity as a fragment
    • The API is now distributed as part of the Google Play
    services SDK
    • Maps are now 3D
    • The Maps API now uses vector tiles. Their data
    representation is smaller, so maps appear in your apps faster,
    and use less bandwidth.
    @pareshmayani

    View Slide

  26. Google Maps Android API v2
    • With v2 of Maps Android API, you can embed maps into an
    activity as a fragment
    • The API is now distributed as part of the Google Play
    services SDK
    • Maps are now 3D
    • The Maps API now uses vector tiles. Their data
    representation is smaller, so maps appear in your apps faster,
    and use less bandwidth.
    • Caching is improved
    @pareshmayani

    View Slide

  27. Getting started with Map API v2
    Step - 1 Install and Set up the Google Play Service SDK
    @pareshmayani

    View Slide

  28. Getting started with Map API v2
    Step - 2 Run the sample
    Once you've installed the Google Play services package, the
    Google Maps sample is located in
    /extras/google-play-services/samples/maps
    @pareshmayani

    View Slide

  29. Basic example

    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

    public class BasicMapActivity extends FragmentActivity {
    /**
    * Note that this may be null if the Google Play services APK is not available.
    */
    private GoogleMap mMap;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.basic_demo);
    mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
    .getMap();
    }
    @pareshmayani

    View Slide

  30. Placing Marker
    // latitude and longitude
    double latitude = ;
    double longitude = ;
    // create marker
    MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title(“Hello World!");
    // adding marker
    googleMap.addMarker(marker);
    @pareshmayani

    View Slide

  31. Placing Marker
    private static final LatLng AHMEDABAD= new LatLng(23.0300, 72.5800);
    // Uses a colored icon.
    Marker mBrisbane = mMap.addMarker(new MarkerOptions()
    .position(AHMEDABAD)
    .title(“Ahmedabad")
    .snippet("Population: 5.571 million ")
    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
    // Uses a custom icon.
    Marker mSydney = mMap.addMarker(new MarkerOptions()
    .position(AHMEDABAD)
    .title(“Ahmedabad")
    .snippet("Population: 5.571 million ")
    .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));
    // Creates a draggable marker. Long press to drag.
    Marker mMelbourne = mMap.addMarker(new MarkerOptions()
    .position(AHMEDABAD)
    .title(“Ahmedabad")
    .snippet("Population: 5.571 million ")
    .draggable(true));
    @pareshmayani

    View Slide

  32. Staged Rollouts
    @pareshmayani

    View Slide

  33. Staged Rollouts
    • With a staged rollout, you can
    publish your app to a certain
    percentage of the market first to
    make sure that your app works
    properly before rolling it out to
    everybody.
    • Users receiving the staged
    rollout can leave public reviews
    in Google Play.
    @pareshmayani

    View Slide

  34. Staged Rollouts
    Step - 1 Publish APK as staged rollout
    @pareshmayani

    View Slide

  35. Staged Rollouts
    Step - 2 Publish app to certain percentage
    @pareshmayani

    View Slide

  36. Alpha and Beta Testing
    @pareshmayani

    View Slide

  37. Alpha and Beta Testing
    • Google Play Developer console
    allows you to test two different
    version of your app at the same
    time in addition to your production
    version.
    • It’s FREE
    • Testing by real users before app
    goes live
    @pareshmayani

    View Slide

  38. Alpha and Beta Testing
    Step - 1 Upload new APK to Beta/Alpha
    @pareshmayani

    View Slide

  39. Alpha and Beta Testing
    Step - 2 Publish now to Beta/Alpha
    @pareshmayani

    View Slide

  40. Alpha and Beta Testing
    Step - 3 Selecting groups of testers
    @pareshmayani

    View Slide

  41. Alpha and Beta Testing
    Move to Alpha/Beta/Production
    @pareshmayani

    View Slide

  42. Google Play Services
    Optimization Tips
    @pareshmayani

    View Slide

  43. Optimization Tips
    @pareshmayani

    View Slide

  44. Optimization Tips
    @pareshmayani

    View Slide

  45. App Translation Service
    @pareshmayani

    View Slide

  46. App Translation Service
    • Google Play can help you quickly find and purchase
    translations of your app.
    • In the Developer Console, you can browse a list of third-
    party vendors who are pre-qualified by Google to offer high-
    quality translation at competitive prices.
    Steps:
    1. Upload the strings you want translated, select the
    languages you want to translate into.
    2. Select your translation vendor based on time and price.
    @pareshmayani

    View Slide

  47. Links
    1. https://github.com/PareshMayani/Android-Volley-Example
    2. https://developers.google.com/maps/documentation/andro
    id/
    3. http://developer.android.com/distribute/googleplay/publish
    /localizing.html#gp-trans
    @pareshmayani

    View Slide

  48. Paresh Mayani
    Manager, GDG Ahmedabad
    Android Developer
    [email protected]
    @pareshmayani
    < Stay in Touch >

    View Slide