Download Remote Files Without A Browser In Android

There is often a scenario where you need to download files from a server onto the Android device.  This needs to be done without forcing the user to launch a web browser and have interaction as some of the downloaded data might be private.  Let’s use the scenario where you’ve made a game and you have in-app purchases.  You want to keep the size of the game small for everyone so you decide to put the purchase items on your server.  When a user purchases an item then the item will be downloaded in the background.  This is a perfect usage example.

For purposes of the tutorial we will be staying simple.  We will be downloading a remote image in the background and then displaying it when it has finished downloading.


Launch External URLs with IonicFramework

I recently found myself needing to launch external URLs with IonicFramework.  I needed to let my users contact me via my personal website or visit my Twitter page.  This is not a task that ends well when trying to execute from an Ionic view.  Luckily, with a little help from the Apache Cordova plugin InAppBrowser, I was able to accomplish the task with very little effort.  The best part is that it works for iOS and Android with the same code set.

If you’re using Ionic 2, a special version of this article can be found here.  Otherwise enjoy this writeup for Ionic Framework 1.


Using Polymer With Apache Cordova

Making great mobile applications used to require a certain type of skill, but with the latest technologies you don’t need much more than basic web design knowledge.  With the aid of Apache Cordova, developers can make native API calls directly from JavaScript functions.  Pair this with a front-end framework like Adobe PhoneGap or my current favorite, IonicFramework, and you can create stunning mobile applications with no more than CSS and HTML skills.

However, I recently discovered Polymer, a project by Google, and it looks pretty slick.  The best part is you can easily use Polymer with Apache Cordova to create a native mobile application.


Using Google Analytics With IonicFramework

Apple and Google don’t offer much in terms of analytics after an app has been downloaded.  Google will take it a step further than Apple and show how many devices have the app installed rather than just downloads, but nothing in terms of usage.  To use Google Analytics with IonicFramework, not much is required.

There is a convenient plugin created for Apache Cordova by Dan Wilson called simply Google Analytics Plugin.  With a bit of adjusting we can easily use it with AngularJS.


Using Admob With IonicFramework

Having your mobile application generate some kind of revenue is usually critical.  Not many people want to spend endless hours slaving over an app without some kind of profit.  Luckily, using IonicFramework with Apache Cordova device APIs in addition to a nifty and easy to use Admob plugin, you can take full advantage of Google Admob in your cross platform application.

To use Admob with IonicFramework we will be using the floatinghotpot Cordova plugin.

If you’re using Ionic 2, you should visit the revised tutorial I wrote to accommodate the Angular 2 differences.  Otherwise, continue for Ionic Framework 1 and AngularJS.


Using Volley To Make Android HTTP Requests

Threads and asynchronous tasks have never been pleasant in Android.  It is a nightmare to handle screen orientation changes or update the UI from a common thread.  However, the guys at Google came up with Volley and it is an excellent way to make Android HTTP requests.

Out of the box you have the ability to make a request that will return a JSONArray or JSONObject which is pretty slick because most APIs use those as a standard.