Push notifications are amazing. With iOS and also Android, developers are able to send a notification to the user’s device. A notification of breaking news if you built a news app, a bid on the user’s for sale time or a message from a potential date. Push notifications are great to engage and re-engage a user. However, push notifications done wrong can be annoying and even lead to uninstalls. So let’s look how you can do push notifications in a user-friendly way.

Ask for permissions when relevant

Android recently changed its permission model with Android 6.0 (API level 23) and is now on par with iOS. Both platforms allow you to ask for the required permissions after installation at any moment. Notifications can be invasive, so you have to explain to a user why he/she should allow you to push notifications to the app. The best way is to ask at a relevant time: the user puts a product up for sale, ask how he/she wants to be notified and offer push notifications. Asking for permissions immediately at installation is crude and premature. Does the user trust your brand? What added value does your app offer? The user hasn’t had a chance yet to answer those questions, so will be inclined to decline permissions for your push notifications. And reversing that decision via System settings is very hard, so you lost forever the possibility to sent notifications to that user.

Lately it has become a trend to first show a pre-permission modal dialog explaining why your app needs push notifications. After the OK the OS then shows the standard permissions dialog. I find that a bit cumbersome. If it is clear why you want to send notifications, there is no need to have an extra modal.

Send only relevant notifications

By definition your users are doing something. You are interrupting them and are asking for their attention. Yes a push notification is not as invasive as a phone call. Still a user will have to grab their phone, pull the phone out of their bag or pocket. Then he/she needs to unlock the screen maybe and process your message. In short, there is a cost involved for the user and your notification should be worth it. So send relevant information that offers value to the user.

Time it right and limit number of notifications

Push notifications are by definition disruptive, but how much depends on the user’s situation A user might be asleep. At work in meetings, having dinner with the family. Or waiting on the elevator or be on the bus. You should try to minimize disruption and find the best time to send notifications. Also, don’t send too many notifications. Make sure to send user-friendly notifications that don’t irritate the user. For some notifications it is clear, like when you receive a message from another user. But some notifications like news item of the day allow you to choose your time.

Make notifications configurable

Let the user decide what events should send a push notification and what not. Giving users granular control over their notifications will make them feel empowered and less likely to completely turn off notifications or delete your app.

Integrate well with your app

User-friendly push notifications will take the user to the relevant view in your app. Ready to read that content, or reply to that message. Embed urls in your push notification that your app can parse to find out what view you should show. Or for iOS, use interactive notifications.

Sync across devices

Users have multiple devices. iPhones and iPads. Personal computers. Pushing the same notification to all devices will create a barriage of beeps. If possible, invest the time to detect what is the best device to send the notification to. Slack is a great example of a service that neatly manages notifications across devices. When you run the Slack desktop app and receive a notification, no notification is sent to your iPhone app. When you close your desktop app, suddenly user-friendly push notifications arrive on your phone.

Monitor and tune

It is very important that you monitor what effect your notifications have. Don’t just fire and forget, that will mean you will lose users. With a few lines of code you can detect on iOS and Android if an app is openend after a notification. Track those event. In particular re-engagement notifications are important to monitor. They have the power to turn a dormant user in an active user. Or make the user realize he/she doesn’t need your app after too many irrelevant and therefore annoying notifications and to uninstall it.

What apps do you know handle their notifications well and send only user-friendly push notifications?


We are on the verge of the release of iOS 9. Some of the new iOS features I like very much are related to viewing web content inside apps. I am not talking so much about apps that are built primarily with web technology, but about apps that link to web pages. For instance when you open a web link inside Twitter for iOS. Back in the days, we would use UIWebview and build our own browser view, which generally was a bad idea. Not only was UIWebView performance subpar, the layout of these custom built web browser screens was always different which confused users.

Why were custom browser views used in the first place?

The main reason why developers build their own in-app browser views, is to not have the user completely leave their app and forget to switch back. This was and still is a legitimate concern. UIWebview would display the web content, but app developers had to build the whole interface around it. Besides a back button to the app, sometimes developers would build a back and forward button for navigating between web pages if users were lucky. You maybe would see the url and see if HTTPS was used, but most of the time not. The biggest drawback would be that UIWebview was running in its own process wit no access to Safari information. So the user had no access to bookmarks or cookies. This meant that credentials that were saved in cookies were not available, requiring users to login again. Overall this rendered a bad user experience.

back button iOS 9

Enter the Back Button with iOS 9

With iOS 9, the operating system is smart enough to remember what app you used before you switched to another app. So if your iOS app opens a web url, Safari is opened with a back button. In the left hand top corner a small button is added, with the title Back to <AppName>. So a user can view the web page, do everything she does normally inside of a browser like navigating back-forward, bookmark etcetera. And when the user is done, she can just tap the back button and go back to your app. This is similar to the back button in Android, that has been there for a while and is available on operating system level. And with better and faster app switching it is no nuisance anymore to switch between apps.

SFSafariViewController for a little more customization

For developers that want a little bit more control there is the SFSafariViewController. With this class you can create a web view that looks and works 95 % like Safari. It is the responsibility of the developer to show and hide the view. But after that, it is Safari. So URL is visible, bookmarking functionality is there. Cookies are available.

Better web browsing user experience with iOS 9

I love the new features in iOS 9. Hopefully lots of developers will start using these features and ditch custom UIWebview based browsing.

Quip is apparently ready to switch over:

AMC iPhone app ratings and reviews

Great app ratings are vital for your app. Our last blog post was about the psychology of app ratings. In this post we point out how you can use this knowledge to get great app ratings and great app reviews.

  1. Build an awesome app. Fix a massive problem in an excellent way. Make sure your messaging in the app store and on the first screens is clear so that you set the right expectations. Test the app quality, on lots of devices. Have awesome and intuitive interface that is easy to understand. Do mobile user testing to validate this. Be better than your competition and previous version.
  2. Have top-notch customer support. Not only have knowledgeable staff handling customer support via any channel, but also make sure they respond fast and in an empathic way, valuing the feedback from each and every user. Make sure users can give feedback from inside your app, so they can vent any frustration directly via sending you feedback when they have a subpar experience. Disappointed users will never give great app ratings but might instead give bad ratings if they become frustrated.
  3. Make it personal. Leverage the fact that you are a small company. Identify the people that built the app with blood, sweat and tears, for instance on your web site. That way your users can identify and sympathize with your team and will be more inclined to give you great app ratings. There is a reason why politicians tell so much about themselves, it helps that voters can feel like the politicians are similar and will take care of their issues.
  4. Ask for reviews, the right way. Yes you need to create a trigger to have the user rate and review your app, but do it the right way.

Continue Reading…

app ratings for YoshirtYour app ratings and reviews are a very important indicator of whether your app is awesome or not to potential customers. Also, app store ranking are influenced by ratings. Even Google shows Google Play ratings in search results. And ratings reflect on the brand of your company. So great ratings are important for the success of your application. In order to get great ratings it is vital that you understand why and how users rate your app. Let’s see what influences their rating.

Motivation drives app ratings

Based on experience with your app, your user will have a specific motivation, a goal in mind that she wants to achieve. For instance, she feels like you as a developer did a great job and wants to reward you for that. Or she wants to tell other people that your app sucks. She wants to blow off steam. She really likes the app but wants to tell you about a certain feature she thinks is missing. She wants to write a smartass review to come across as an expert.

Context has influence

Context is everything around the use of the app and the user that has influence on the way she perceives your app and will rate your app.  Like their emotional state: your user really needed to get home soon, and your taxi app helped out tremendously. Or she had a bad day, is grumpy and impatient and not willing to wait for your long list of messages to download. And ratings are not absolute but relative. For instance, the previous version of your app was really buggy and this new version fixes that. You have a competing app that is just much easier to use. And big expectations set the bar high: apps published by a big company will be rated harsher when quality is mediocre. Paying for your app will result in higher expectations and if not met, result in stronger disappointments. Are there other options for the user to send feedback? In particular if a user wants to send suggestions to improve but cannot find any ways of communicating with the developers, she might get even more frustrated and give a very negative review. Are there competing apps or are you one of a kind? If your app is bad, they might just leave you when there are alternatives and leave no review at all. If you are one of a kind, for instance the only official app to a popular service, switching over will not be possible so users will get frustrated and leave a negative review. Good thing that that negative review will have not much of an effect, as users are basically forced to use your app.

Continue Reading…

wrist turn wearing a watch

Tomorrow Apple will announce the release date of their Apple watch. This is their entry device in a whole new category, as were the iPhone and iPad. Although there are other smartwatches like the Pebble and various Android smart watches, none these have been sold on a grand scale and are only used by early adopters. Apple always waits, until Apple’s version is near perfect and the market is ready for it. So it is time for smartwatches to become mainstream.

Google Glass failed not so much because of the technology and features, but because of social reasons. People thought it was intrusive. Is he taking pictures of me? Is he reading his email when his eye wanders? Granted, Google Glass is really “in your face”, both for the wearer and the person interacting with the wearer. Social reasons, not technology reasons made Glass fail as a consumer product.

Apple Watch will come with a slew of new technologies and new ways we can use our watch. Pay, open our car doors, operate our music. I have a Pebble. One of the things I find most useful are the notifications that arrived the watch. No need to pull out your phone, just look at your watch. A subtle vibration indicates a notification has arrived. And you just turn your wrist and look at the display, and see what notification came in.

Normally, looking at your watch means you want to know what time it is. Seeing someone else look at their watch might indicate they need to go, or are bored. Now this will be a thing we will do a lot more when smartwatches become mainstream, and look at our notifications. So my question is: can we change the perception of the wrist turn?


Android Facebook errorFor months your team have been slaving away on your iOS or Android app. Burned the midnight oil to find the last bugs and fix them, polished the interface. Made sure you followed the Apple iOS Human Interface Guidelines or Android Core App Quality Guidelines. Now you ask yourself, is our app mature enough to launch? Will your hard work pay off or will it be a botched launch?

But first, why is the launch of an app an important moment?

  1. You may up in the Best New Apps list (Apple iTunes Store) or New Releases (Google Play), if you are new
  2. Apple or Google may feature you. They only do this with new apps.
  3. News sites and blogs are only interested in new apps. Your PR campaign should be concentrated around your app launch. When you reach out to authors they will only write about your app if it is of high quality.
  4. For iOS, posting bug fixes will take a week at least which is enough time to tank your users’ experiences and therefore ratings.

As an industry, we are pretty bad in engaging new users. We lose 22 % of users after just one time using an app, and beyond 11 times we have lost 66 %. As user acquisition costs are rising, it is easier and cheaper to convert a one time user to an engaged user.

So what matters should you look at?

  1. Does your app icon entice the user to open the app? Make sure your icon appeals and stands out, and gets the user interested to open up your app for the first time Your app name should explain what the app does.
  2. Do you have a smooth onboarding process? Your first screens should explain already what problem the app solves or what needs it fulfills. Make sure a user can understand or learn in 30 seconds what the main use case is and how it works. If needed, a good walkthrough may help, but first try with the app itself.
  3. Does your app provide value in a few minutes? So make sure your app helps solve that problem, or fulfill that need. That first time should already provide value or make it clear how it will provide value.
  4. Does the app provide a pleasant and engaging experience? Create an interface that is clear and responds snappy, test the app for bugs that may crash it. Beef up your backend to be able to handle massive download spikes because of raving posts on major sites
  5. Will the user come back? Create a reason for the user to return to the app, either because he/she remembers or you trigger this with a subtle and valuable push notification (don’t spam your users!). Try to have something habit forming built in that will get the user to come back on a daily basis.

Well, to make sure you meet these requirements, test well before launch. With the right testing, experimenting and of course PR and marketing it is definitely possible to create an engaging app that will attract *and* capture users.

What other issues do you think are important to look at?

Last week Amazon announced the availability of app engament metrics for Android apps published in their app store. Finally, I thought! The mobile industry has been focused solely on app downloads and personally I think that is the wrong metric. It is quite easy to get somebody to download an app. Great marketing, news/blog posts and incentivised downloads in combination with easy installs make it simple to get lots of downloads. However this study by Localytics show 24 % of users try out a downloaded app only once. That is a massive churn, which is a pity. You can’t provide value to users that have your app installed but don’t use it. For that you need engagement. So now Android developers with apps in the Amazon store can see daily user sessions, app retention and daily active devices. This gives app developers a much better idea how much value they provide.

The next step would be to use app engagement for top 25’s ranking. One reason why everybody has been focused so much on downloads is that they have a big impact on ranking for various stores, in particular Apple’s iTunes App Store. As app downloads are too easy to fake a lot of companies resorted to playing the system in various ways, instead of focusing on a great product for a great market with a huge need.

I liked the announcement a few weeks back from Google about referral tracking for Google Play Store, letting you know where your installs come from. Combined with Amazon’s announcement about engagement metrics I see two long awaited functionalities made available for app stores. Hopefully the two main app stores, Apple’s iTunes and Google Play will start adopting both soon and compete more for the hearths, minds and wallets of developers.


Facebook HomeYesterday’s announcement of Facebook Home means that for the first time a mainstream service has a better offering on Android than on iPhone, partly due to restrictions of the iOS platform itself. Facebook Home for Android updates your home screen with status updates and photos, shows profile pictures of your friends on top of other applications with the new Chat Heads messaging functionality, integrates text/SMS messaging with Facebook, which is all not possible with iOS. On top of that, Facebook has spent a lot of time making sure all interactions are absolutely astonishing, with new interaction patterns and a new physics engine. So this is really the first main stream service that has a much better and more powerful app on Android than on iOS.

Of course, this will not be for everybody. With the new Chat Heads, Facebook is clearly trying to keep other competing messaging services like WhatsAppMessageMe and SnapChat at bay. These services are mostly used by teens. Getting status updates on your home screen and even your lock screen has a huge impact on privacy and more serious business oriented users will not like this. Also, out of the box only 5 phones will be supported (HTC One, HTC One X/X+, HTC First, Samsung Galaxy S III, Samsung Galaxy S 4, and Samsung Galaxy Note II). This is probably because of hardware/OS requirements but also rigorous testing required to make sure all works fine. A crashing home screen of course needs to work flawless, otherwise users will uninstall within minutes. Your Android phone will become dominated by Facebook, and not everybody will like that. Hopefully Facebook keeps it as user experience focussed as possible and will not become the new toolbar as on the Windows platform.

So what does is mean for other companies? Google will be less visible within Android with Home, no search anymore on the home screen. No support announced for the Nexus 4 was remarkable, but as Facebook Home will be downloadable via Google Play store Google is aware and letting Facebook put it out there. Still users need to sign up with Google for a Google account, and Google can still gather all information it does normally. In the future FB might include it’s investor Microsoft’s Bing search engine and Bing Maps. Android has not been altered for this, although HTC admitted that they made some chances to Android to allow notifications to be shown in a more prominent way. For Apple, this means that the number one consumer service world wide will have a better presence on a competing platform, because of Apple’s own choices. Apple chooses to remain closed, keeping control over apps in a strict way. Yes that means less malware and crap apps, but also stops 3rd party developers from pushing the platform further. As we move to more constant monitoring and more push from apps from the current situation where interaction with your mobile phone is initiated by the user, background processing will prove to be vital. Apple not allowing this will be a big hurdle for companies to innovate on iOS.

I am curious to see what is does for app distribution. Facebook Home also has an app launcher, which is remarkable because the Android app launcher itself is great and Facebook for now does not all a lot of value. The value it has right now is that it is integral part of Facebook Home so you don’t need to switch a few taps forward to the Android launcher. This FB launcher offers great possibilities for the future, making FB a prime app marketing channel.

I am really excited about the new functionalities and interaction patterns, Facebook is pushing the envelope with what is possible for mobile. What do you think? Will you install Facebook Home on your Android phone?

Embedded down below you will find the deck from my presentation yesterday titled Human Testing iOS Apps presentation at the Renaissance the iOS app makers’ conference during the session about quality. I talked about manual QA testing, but also about various forms of user testing, including concept testing, usability testing, beta testing and live testing. It was a great conference over all, looking forward to the next one!

Also look at the Mobtest Renaissance Github repository, where various documents about testing and background information is provided.

don't be lazy but learn a native mobile languageOK, I had this post written already a couple of times, evaluating HTML5 tech versus native technology for mobile apps. Dealing with clients developing mobile apps puts me regularly in the position that I have to help out choosing between the two. A very concise but long post, written as a consultant so that any company that was facing this decision could figure out what is best for them. But in the end it boils down to this:


Native technology allows for excellent apps, whereas HTML5 apps will be at best just OK

Just look at the top 25’s of any category in the Apple iTunes store or the Google Play store. Most if not all apps are built using native technology. Yes, you can build crappy apps with a native mobile language also, that is not hard thing to do. Excellent HTML developers can get pretty close to native with their hybrid apps, look at the LinkedIn iOS app. But still, you can see the interface is not as fast and snappy as for instance Path or the new Facebook iOS app. Fact is, users now know you can build excellent apps for mobile so will expect this from any app.

Continue Reading…