How Android integrates twitter,facebook,mail and others

Due to recent iOS announcements about twitter integration I wanted to show how Android integrates not only twitter but hundres of other services.

On Android with the intents system basically any app that wants to can share data with any other app that accepts that type of data. For example this makes it possible for an app to share a picture to twitter,facebook,picasa or others without having to know credentials.

This is what it looks like

Share it

 

 

Tweet it

Facebook it

Mail it

Sending apps do not need to know which apps are capable of handling the data. And vice versa for receiving apps. The OS takes care of all the coupling.

Cool huh?

 

 

Posted in Uncategorized | Comments Off

Side by side comparison of Android 2.x apps on phone and tablets

Earlier today someone asked me how regular Android 2.x apps look when they run on a 10″ honeycomb tablet. Here are a couple of screenshots of some of my most-used apps both on the phone (Nexus S) and the tablet (Motorola Xoom).

The following screenshots are made with the same version of the app binary on both devices.

Twitter

Twitter (phone)

Twitter (tablet)

 

 

 

 

 

 

 

 

Foursquare

phone

tablet

 

 

 

 

 

 

 

 

Wifi Manager

phone

tablet

 

 

 

 

 

 

 

 

Google Reader

phone

tablet

 

 

 

 

 

 

 

 

Astro file manager

phone

 

 

 

 

 

 

 

 

XBMC remote

phone

tablet (portrait)

 

 

 

 

 

 

 

 

phone

tablet (portrait)

 

 

 

 

 

 

 

 

Generic settings screen

If the default PreferencesActivity is used to show preferences/settings of an app then the the settings screen takes the layout of the platform it is running on. So 2.x apps will have a 3.0-style look for their settings.

phone

tablet

 

 

 

 

 

 

 

 

Conclusion

Android phones come in a lot of form factors and screen sizes. Because of this developers are forced to write UI’s that work both on small and large screen devices. The platform provides a great set of tools to accomplish this. (for example auto-scaling of pixel dimensions and coordinates)

By using these tools developers can rest assured that their Android 2.x phone app will run and look OK on Honeycomb tablets.

While it is true that for now there are not that many apps on the market that are Honeycomb-optimized, this does not mean that the general Honeycomb experience is horrible. All regular phone apps are available and most of them look OK.

Due to the fact that Honeycomb is only out for 2 months and available on only 1 device in 1 country and the Honeycomb emulator that is dead slow, not many Android developers have had the chance to work on apps for this platform. I am sure this issue will resolve itself once more devices are out there on the market and in the hands of developers.

(comments are disabled because of ongoing spam attacks, If you want to react on this article please do so on twitter @vbsteven)

Posted in Uncategorized | Comments Off

Review of De Standaard Android app

This week – two years after its iPhone app – the Belgian newspaper De Standaard released its Android app on the market. Immediately after installing the application I noticed that some things were off on this app so here is my constructive criticism on how to make it better.

The app comes in two parts. One that lets you read the daily news from the standaard.be website and one part that allows you to download a digital version of the paper version and flick through it. I will be focusing on the first ‘general’ part in this post.

Ads and Pricing

Full screen ad on every startupAds and Pricing

First of all the app comes at a price of 3.99 euros. I don’t mind paying this amount for a good mobile app but when I pay for an app like this I don’t expect to be greeted with a 5 second fullscreen ad every time I start the app or with a small ad in every newsarticle. Which is both the case.

My advice for De Standaard is to pick one way of monetizing. Or you charge for the initial download + extra content but lose the ads or you keep the app free and monetize purely based on ads.

Another argument against the 4 euro download fee: By charging 4 euro for the application you are drastically reducing the amount of installs. Your potential userbase is already quite small as the app is only usable for dutch speaking android users and then you are narrowing down that userbase to only users with a creditcard AND are willing to pay 4 euro for a news app.

Popup when clicking the back button

Application flow

I have two major concerns about the flow of the application.

I already mentioned the fullscreen forced ad that is displayed every time you open the application. By enforcing this a user has to wait 5-10 seconds before he can start browsing the news inside the application. If I want to read news on my mobile phone that usually means I am on the go and I want to read my news fast so I want direct access to the content.

Another thing is when the user clicks the back button on his device he is asked if he is sure he wants to exit the application. This is totally against the Android way of using applications. This flow of entering an app, using it for some time and then completely closing it to do something else might be the way to go for old pre-multitasking iPhone applications but on Android things are done in a different way.

Android apps are made up of Activities – single screens – where the user can navigate through. When a user is using an application and suddenly wants to do something else, he does not need to fully close the application. He can just press the home or back button, open another application to use that for a while and at any time he can go back to the previous application to resume what he was doing. This is not possible with De Standaard when using the back button.

News article view with a visual back button

IOS UI concepts

The Android app is clearly a cheap/fast clone of the existing iPhone app. The bottom bar is completely copied and is a concept we don’t really have in most Android apps. Most apps use the already existing default tab framework that places big tabs with icons at the top.

There is also a visual back button on the screen which is unnecessary. All Android phones already have back buttons on the device.

There is no sign of Android-specific UI concepts like the action bar or preferences screen.

Caching and usage on slow networks

One of the big advantages of using a mobile app instead of the mobile website is that it has the possibility to use local storage.  De Standaard for Android does not use this opportunity to store already fetched stories in the cache. Instead it always starts with an empty page and fetches the data from the server when the user wants it. This means that if the user does not have mobile data coverage and opens the application he will not be able to see any news at all.

When the user does have a network connection but it is a very slow one the app takes ages to load. It seems that the big fullscreen ad is being downloaded during the “De Standaard” splash screen and that the first batch of news is downloaded during the showing of this ad. With my current edge connection this means that when I want to see news via the app I need to sit through 8 seconds of splash screen and 6 seconds of advertisement before I can actually use the app. This is very long compared to the 3 seconds it takes me to open my mobile browser and load the m.standaard.be mobile website.

Main UI with iOS tab bar

Other small annoyances

There are some other small issues with the app which I am not going to spend to much time on. These are:

  • No support for horizontal orientation: Very annoying when using the app while lying down or with a phone that has a hardware keyboard.
  • No smooth scrolling when reading a news article: The scroll stops abruptly when the finger stops touching the screen. In the article list this is implemented well.
  • When browsing the categories via the tabbar at the bottom the back button does not take you back to the previous app. Instead it pops up the very annoying “are you sure you want to exit” popup.
  • No clear indication that swiping left/right on news articles navigates between articles. This is actually a good android-like feature: advertise it!
  • When downloading the digitalized paper versions there is no way of stopping the process.

Custom settings popup

Conclusion/Advice

Please don’t see this article as an attack on this application. I am really glad that Belgian publishers are finally starting to realize there is another mobile platform available besides iOS. I just hate to see that people are automatically assuming “What works for iOS will work for Android” because it is not the case at all!

To the PM’s responsible for this application: If you want Android users to like and use your app I suggest you consider the following improvements:

  • Make it free to download: If you are supporting your app with ads and charge for additional content don’t cripple your potential customerbase by charging an initial fee. I can guarantee that if you make it free, you will get a huge boost in downloads. (After three days the app just reached 100+ downloads in the market, not really impressive)
  • Remove the splash+forced ad when starting the app. The goal should be that the user is able to access articles faster through the app than through the mobile website.
  • Use Android UI guidelines instead of cloning iOS. There is extensive documentation available on http://developer.android.com/guide/practices/ui_guidelines/index.html
  • Remove the “are you sure” popup and “Quit” menu option. These are not necessary if the Android app flow is implemented well.
  • Fix the issues I listed above in the “small annoyances” section.
  • Please remember that Android users are not iOS users.

To the developers responsible for this application: If you are promoting yourself as Android developers and are selling apps like this as good Android applications you should REALLY reconsider what you are doing!

I see two reasons for an Android app to come out like this. Or De Standaard came to you for an Android app and said “it must be done fast and cheap, just copy iOS”. In this case, if you truly care about the platform you should have told them that Android does not work that way and that by doing it this way the app is sure to fail.

Or De Standaard came to you for an Android app, you implemented one and you are convinced that you delivered good work. If this is the case I suggest you put your iPhone/iPad aside and use an Android phone full time for a few weeks.

Posted in Uncategorized | 4 Comments

alias for executing your previous command as root

When working in the shell I often encounter this pattern

steven@gentoo ~ $ /etc/init.d/postgresql-9.0 start
postgresql-9.0    | * postgresql-9.0: superuser access required
steven@gentoo ~ $ sudo /etc/init.d/postgresql-9.0 start
postgresql-9.0    | * Starting PostgreSQL ...

Sounds familiar? You execute a command but the system tells you you need to run this command with root privileges.

The simplest way to solve this is to type ‘sudo’ and copy the previous command by hand. This can be tedious if you entered a command with lots of arguments. The fastest way to do it is to press [up], [home], type ‘sudo ‘, [enter] but this requires your hands to move all around the keyboard.

By adding 1 line to your .bashrc file you can create a short alias that is efficient to type and does these steps for you.

To add the alias open up your .bashrc file. (you can replace vim with your favourite editor)

steven@gentoo ~ $ vim ~/.bashrc

Enter the following line at the bottom of the file

alias sudo2='sudo `history | tail -n2 | head -n1 | tr -s " " | cut -d " " -f3-`'

Save the file and close/reopen your terminal window. Now whenever you type ‘sudo2′ in your terminal it will take the last command from the history stack, add ‘sudo ‘ in front of it and execute.

steven@gentoo ~ $ /etc/init.d/postgresql-9.0 start
postgresql-9.0    | * postgresql-9.0: superuser access required
steven@gentoo ~ $ sudo2
postgresql-9.0    | * Starting PostgreSQL ...

Enjoy.

Posted in Uncategorized | 2 Comments

Android PUSH to Desktop is coming! (video)

Here is a little sneak preview of what I’ve been working on for the last few days. It is an addition to my Bookmark to Desktop application but instead of just polling for new bookmarks every x minutes, the device can now push the link to the desktop browser so it opens immediately.

The push functionality is not on the Android market yet. I have the technology working but I still have to iron out some bugs and prepare it for prod. For updates on the app check this blog or follow me on twitter @vbsteven

Posted in Uncategorized | 5 Comments

How and why I wrote Bookmark to Desktop for Android in 2 days

This weekend I released a first BETA version of Bookmark to Desktop. My new Android app that allows users to place webpages from their Android phone into the bookmarks bar of their desktop browser. The app grew from idea to published in just under 2 days. Continue reading

Posted in Uncategorized | 6 Comments

Enabling flash plugin in Conkeror

I recently started using Conkeror as my main browser. It is a mozilla-based browser that is not controlled with the mouse but purely by emacs-style keybindings.

Initially I struggled getting the Flash plugin  to work. As flash already worked on my firefox install I knew it was just a configuration issue. After some googling I found that the folders where Conkeror was looking for plugins was not in sync with the folder where my firefox plugins are installed.

A simple symbolic link fixes the issue:

ln -s /usr/lib/firefox/plugins ~/.mozilla/plugins

Enjoy

Posted in Uncategorized | Leave a comment

Making the best of an unproductive day

As software developers our job involves thinking. A lot of thinking. To do this properly your mind has to be in good shape. As human beings it is normal that our mental state is not always the same. Some days you feel really focussed and productive, other days you are not even able to think straight for 15minutes at a time.

Earlier this week I had one of those days where I did not feel very good, could not focus at all and my morale was very low. This post describes what I did to avoid this unproductive day from turning into a wasted day. Continue reading

Posted in Uncategorized | 5 Comments

Why I prefer the Linux desktop for software development

I’ve been a full time Linux user for the past 6 years. In this post I’ll try to explain why I prefer the Linux desktop for doing all my software development work. I will try to stay as objective as possible about the other OS’s when making my comparison. Continue reading

Posted in Linux | Tagged , , | 10 Comments

Review of Droidcon.be

Yesterday I attended Droidcon Belgium, the first Android Conference organized in Belgium at Living Tomorrow in Vilvoorde. This is my personal opinion on the event. Continue reading

Posted in Uncategorized | 5 Comments