VGTech is a blog where the developers and devops of Norways most visited website share code and tricks of the trade… Read more



Are you brilliant? We're hiring. Read more
the

Android

category

Async patterns on Android: Kotlin with coroutines

Android

9 months ago I wrote about asynchronous programming patters in different languages covering C#, Javascript and Java. Lately I’ve been digging into Kotlin and specifically the Coroutines implementation in their 1.1 beta. This finally brings the async/await-pattern to Android – a pattern I grew learned to love when it was introduced to C# some years ago. The main benefit from my point of view is how it integrates asynchronous programming into the language syntax, making writing, and even more important: reading asynchronous code simple.

(more…)


Simplifying login with Googles smart lock for passwords and Apples shared web credentials

Android

To deliver a truly personalised experience across multiple devices we require our users to login. To get our users to login we need to create a seamless login experience. Users often forget their username or password or do not understand that they can use the same login credentials between the different products or services we offer.

Password management services make it easy for users to keep track of their login credentials and use them across multiple platforms.
Apple and Google have created services to manage user credentials. Apples initiative is called “shared web credentials” and Googles “Google smart lock for passwords”.
If you update your apps and website to support both ‘shared web credentials’ and ‘Google Smart lock for passwords’ you can simplify the login experience for those users who have chosen to save their credentials with Apple and Google. The biggest benefit is in sharing login credentials between your website and your apps.
(more…)



Async programming patterns in different languages

Android

During the 10 years I’ve been into professional programming, the largest paradigm shift I’ve witnessed is the one from sequential to asynchronous programming. Not that it is a new concept – asynchronousity has been has been present in programming since the dawn of time, but what’s new is the tight integration in programming languages and the prevalence of it. From events and callbacks in C# to async-await. From callbacks in Javascript to Promises. In Java we got Futures in Java 7, CompletableFuture, lambdas and streams in Java 8. On top of all these language features you have a vast array of libraries that help you implement common async patterns – ReactiveX for instance exists for all the three languages mentioned, and a lot more.

(more…)


How App linking in Android M and iOS9 will help to increase app engagement

Android

New functionality available in the next version of both Apple and Googles mobile operating systems (iOS9 and Android M) will have dramatic consequences for publishers trying to get users to use their apps instead of the mobile web browser. The next version of the iOS and Android operating systems will take deep linking to a new level.

Both Apple and Google have worked simultaneously on improving app linking, and essentially blurring the lines between content displayed in an app and content in a mobile website.
(more…)


Android Databinding: Goodbye Presenter, hello ViewModel!

Android

The Model-View-Presenter-pattern (MVP) has been the dominating trend lately when it comes the UI-layer architecture of Android applications. Frameworks like Ted Mosby, Nucleus and Mortar have all talked about Presenters to help you achieving a clean architecture of your app. They also (to a varying degree) help you with the infamous issues of device rotation and state persistence on the Android platform. This isn’t directly related to the concept of MVP, but the pattern helps you isolate the boiler plate code.
(more…)


Don’t forget the View Model!

Android

Background

I’ve observed an increase in architecture-focused Android posts lately in channels such as /r/androiddev and Android Weekly. That’s great, but frankly it’s about time. When I transitioned from Windows Phone development to Android a couple of years ago I felt it was difficult to find good examples on how to architect a solid app. It didn’t help that Google’s examples violated most best practices[1] either. I kind of went with my own version of MVVM (or MVPVM) which I had with me from the .NET platform and it sort of worked. Reading
Hannes Dorfmann’s post on MVP and his Mosby framework, I realize I’m not the only one who’ve been struggling with getting the established patterns working with Android (he spent 3 years). The Android SDK is not exactly leading you into a good architecture out of the box. Maybe Fragments is partly to blame, and why Square Inc is advocating against it. (more…)


Aggregator apps: friend or foe?

Android

Aggregator apps are changing the way news is discovered, consumed and packaged. The popularity of aggregator apps vary largely from country to country. A quarter of the top 20 apps in the news category on both Googles US Playstore and Apples US Appstore are aggregator apps.

More and more publishers have begun to understand the need to have a presence wherever their readers or potential readers are consuming content. Some have chosen to work together with aggregator apps like Flipboard, Smartnews and Yahoo news digest so as to capitalize on this relatively new distribution channel.

(more…)


6 deep link tactics to drive traffic to your mobile apps

Android

Many publishers have developed mobile apps that deliver a better user experience than their mobile websites. Getting people to use your app instead of your mobile website can increase user engagement with your publication. Using different deep linking techniques to link to content within your app is one way of increasing traffic to your mobile apps and establishing app reading habits with your users.

In an ideal world there should be no difference between an ‘app link’ and a ‘web link’, links should simply work no matter what device or platform you are using. The device should know whether to open the link in an app or in a website depending on the users preference. It should be possible to link from one app to another app or from a website to an app without knowing if the user has the app installed. There is currently no standardised way to do this but there are a number of ways this can be implemented.

Google, Facebook and Apple are among the many companies that have developed initiatives to improve deep linking and tackle some of these challenges. Here are some of the others mobile.deep.linking, SPARQ, AppURL, mURL.cc, appsfire, URX, Facebook applinks, Cellogic, Branch, Tapstream.

(more…)


Pushing the news, 7 things to consider when using news-related push notifications

Android

There is no doubting the power of push notifications to generate instant spikes in traffic to your app. Push notifications have proven to increase user engagement and loyalty to a publication. It can help with conversions and customer retention and they can simply remind the user of how great your app and content is. According to localytics push notifications drive 88% more app launches, 52% of people opt-in to push notifications and users who enable push have a nearly 3X higher retention rate compared to those who disable push.

The users who accept push notifications are some of your most loyal customers. Who else would care enough to download your app and give you permission to interrupt their day at a time you deem appropriate with a notification you feel is relevant to them. This even happens when the app is not running and the screen is locked. This is an incredible act of trust. This trust, if betrayed is difficult to win back. The is brilliantly portrayed by Breaking News in this video

(more…)