In October 2012, I released a library called Polaris. At that time, the library received quite a lot of success because it was really filling the mammoth blanks of the Google Maps external library (aka Google Maps Android API v1): effortless map annotation, gesture support, map callout support, built-in “user tracking” mode, etc. If you have never heard of Polaris feel free to checkout one of the links below:
Some of you may have noticed the maintenance page this weekend and the new face of this website. I’ve recently spent some time lately working on a complete redesign of my cyrilmottier.com domain. Here is a brief explanation of the motivations behind this redesign and a list of the main changes.
3 or 4 months ago I received an email from my host telling me they were dropping support of my old version of PHP (5.2). The version of Wordpress used for my android.cyrilmottier.com blog was so old it wasn’t supporting the PHP 5.4 and can’t even upgrade itself to a PHP 5.4 compliant version… Not being a server/backend guy, I decided to go for a complete redesign of both the guts and the look of cyrilmottier.com.
I will never say it out loud enough: always do overwhelm your users with your mobile apps. One of the most important way to mind-blow your users is to polish what is usually called the first impression. Indeed, the first impression is essential if you want to catch your users’ attention. Contrary to what most people think, this process doesn’t start at the first launch of your application. It starts way before this when your potential users are looking at your app’s description, screenshots, icons, reviews, etc. in the Google Play Store.
This is only after the user has downloaded and launched the app you can start thinking of gradually engaging her/him, presenting an awesome user interface, displaying a minimalist setup, etc. A recent study measured the importance of the first impression and determined 26% of all apps downloaded are opened only once and then never used again. Only 26% were used 11 times or more. Of the remaining 48% of apps: 13% are opened only twice, 9% are opened only three times, and so on. Regarding such figures, there is no need to tell how crucial the polishing of the first impression is if you want your app to survive in the “apps jungle”.
I generally don’t talk a lot about iOS on this blog. I’ll be honest with you, it is not because I consider iOS as an evil platform. As an extremely curious person, I just hate that iOS is a closed-source platform. I would really love to look at the implementation of some parts of the system or framework sometimes. However, Apple’s iOS remains an incredibly awesome mobile platform to develop for and to use. I assure you the APIs are gorgeous. From the UI point of view, iOS also has tons of exciting features, one of which is the “tap status bar to scroll to top”.
The purpose of this article is to give you a clear explanation about the control offered by Android over scroll containers. I have intentionally used iOS to do the comparison because the philosophy behind scroll containers in iOS is relatively different than Android.
One of the major announcement this week was the release, by Google, of a new maps framework: the Google Maps Android API v2. It is nothing to say that this new framework was overwhelmingly expected among the Android developer and user communities. Indeed, while the Google Maps app was using vector-based maps and 3D rendering since its version 5.0 (working on Froyo+), these features weren’t available to third-party applications. The only option at this time was to continue leveraging (yep that’s not a joke) the long-outdated Google Maps Android API v1…
As the creator and developer of Polaris - a library greatly enhancing the features of Google Maps API v1 with effortless map annotating, gesture support, map callout support, built-in “user tracking” mode, etc. - and the developer of AVélov - a map-based application to determine the availability of city bikes/slots in Lyon, France - I really wanted to have a look at the new version of the framework. So did I and here is a feedback after 5 days playing with it.
Edit (11/27/12): Added a video demonstrating the result on a Nexus 7 running on Android 4.1
Over the past year, the ActionBar paradigm has become an essential component in the process of designing and developing an Android application. Indeed, the ActionBar has many advantages that help developers in future-proofing their apps. It contains contextual actions, can be customized fairly easily, is highly scalable, etc. Because of this, one should ALWAYS consider using the ActionBar UI pattern in one’s design process when creating a new Android app.
ActionBar features a lot of interesting styling APIs. These APIs let you brand your application so that it fits your design, while still being recognizable among other applications. Put simply, there are almost no limits to what you can do with an
ActionBar. Until you try doing something more advanced …
It’s been almost three years since Google last updated the Google Maps framework for Android. As you all know, this external library can be used to integrate map-related features into your applications. Unfortunately, in addition to getting old, this framework also suffers from a lot of limitations. I’ve recently spent a lot of time working on a map-based application of mine called AVélov and encountered a lot of issues while developing it. To make my life easier (as well as yours), I started creating a library with highly reusable components.
In a previous article I shared some designer resources to help you create stunning and professional looking screenshots. This time, I wanted to share some of the resources I recently created as part of a project of mine named AVélov. Put simple, AVélov is an application I develop that lets you determine the availability of slots/bikes in the city of Lyon, France. I recently released it so you can download it on the Google Play Store, play with it and send me your feedbacks.
As you can imagine, AVélov heavily rely on the Google Maps External Library. This library lets you easily add mapping capabilities to your application. Unfortunately it is far from being perfect. It doesn’t support vector graphics, you can’t use the new animation framework to create custom map animations, you can’t have several
MapActivity per process,
MapActivity can contain one and only one
MapView instantiation outside of a
MapActivity is impossible,
MapView doesn’t support some fundamental gestures such as “double tap to zoom”,
MapView zooming gestures are completely buggy sometimes, etc. In other terms, the current Google Maps Android framework is far from what we could expect from a world-class mapping actor like Google.
I guess you all have noticed, just like I did, that the Android community have been keeping a low profile for the past few weeks. I assume lots of developers are on vacation and I can’t blame them! I will soon take a well deserved two-week break too. Prior leaving, I wanted to share some new helpful graphic resources I recently made.
In a previous article of mine I explained how important it is to create stunning and pixel-perfect screenshots. I gave several Photoshop resources you can use to create professional looking screenshots. Unfortunately, the pack had a lack of landscape resources. I am proud to tell you I have fixed this mistake and I am sharing the new resources to you. Here is the new zip file containing all of the PSDs:
In the three preceding articles, I talked about the fly-in application menu and how to implement it on Android. For those who want to catch up on the Making of Prixing series, here are the links:
- The making of Prixing #1: Fly-in app menu
- The making of Prixing #2: Swiping the fly-in app menu
- The making of Prixing #3: Polishing the sliding app menu
This time, I would like to talk about the way we’ve managed notifications in Prixing 3.0. Indeed, Prixing for Android is a rather complex application containing tons of screens. Each of these screens can notify the user about something important: an error occurred while connecting to the server, you earned a new badge, the query you typed is too short, etc. By default, Android provides two great ways to notify the user without blocking: status bar notifications and
Toasts. The first is dedicated to notifications happening outside of the application while the latter is for in-app notifications. Simply put, a
Toast is a non intrusive and non touchable notification that is always displayed on top of your application’s screens.