The goal of this article was to take a look at the latest Android Studio (v0.2.5) and see where it would take me in a single day.
For me an IDE should be simple, straightforward and hassle-free. The big pain in Android development has always been the IDE and more specifically the tooling around it.
Somehow the Eclipse plugins never worked well with the core Android tools and build system. Third party tools and plugins to offload dependency management to Maven were also far from ideal.
In short, it was a difficult marriage that ultimately led to choosing IntelliJ IDEA as the preferred platform for Android Development Tooling.
Unfortunately this again left developers with a 0.x product, meaning it’s going to be very rough around the edges. It’s a very difficult decision to make for developers. Stick with something you know but that is far from ideal, or go with something entirely new that is supposed to be better, but in reality could also take a very long time before it reaches some kind of stability.
For me another added complexity was a base platform that I didn’t know at all (IntelliJ IDEA) and a new build system (Gradle) that also isn’t fully featured yet for Android development.
But I decided to invest a single day on Android Studio and try to come to some kind of conclusion, while documenting the process along the way.
In this post, I’ll be discussing the steps required to created an Android application using the PhoneGap framework. For those of you who don’t know, PhoneGap is an HTML5 app platform that allows you to author native applications with web technologies. So although we are generating a native Android application (APK file) that can be put on Google Play, the actual views of our application will be made up by web pages, embedded in your native app in a WebView.
A couple of months ago, I published a post entitled A 30 minute guide to integrating Twitter in your Android application.. The post presented a sample Android application to integrate Twitter. Using the signpost library, the user was able to authorize our application to send tweets on his/her behalf. It seems that everyone is migrating to Oauth 2.0, but Twitter is still stuck at OAuth 1.0. Nevertheless, I still wanted to update the sample we did a couple of months ago for 3 reasons :
Google Latitude is a free service from Google that allows you to share your current location with a selected number of your Google contacts. It also allows you to record your past location changes, and provides you with a dashboard view of your recently visited places. Google Latitude can be used from either a desktop application, or from your mobile phone. Google Latitude is well integrated in most Android phones. Through an extension on the Google Maps application, integration with Latitude is seamless. However, there are a couple of features that are missing in Google Latitude on Android phones, and that’s where Latify tries to fill in the gap.
Latify is an Android client for Google Latitude. With Latify, you can continuously update your current position when on the move or stationary. Even when you’re not online, Latify can sync up your location movements with Google Latitude once back online. Latify can be configured to update your location based on GPS positioning, even when running in the background. It also allows you to view and manipulate your history location stored at the Google Latitude servers. Latify uses OAuth for secure authorization and does not capture your password when logging into Google. All you need is a Google account, and a Latitude setup and you’re ready to go.
Included below are some of the Latify features
Record and sync your location changes in real-time to Google Latitude.
No need to have Latify running in the front.
Visualize & replay your location history on a map
Remove incorrect / redundant history entries
Re-publish your last known location at user-defined intervals when no GPS signal is available
Configure Latify to send an update of your last known location every minute, half hour , hour ,
Store your location updates on your phone without sending them to Latitude in realtime.
Push your location updates in one shot to Latitude (ex: when a WIFI connection is available)