That Missing Guide To Kotlin Part 2

Share if the site was helpful

That Missing Guide To Kotlin Part 2

In part one of our Kotlin series we began exploring the newly adopted language.  We saw a few examples of how it can make our code more concise and user friendly than Java including type inference and inline constructors.  In part two we’ll continue to show how Kotlin can make your code easier to work with while focusing on one dreaded Java roadblock: The NullPointerException.

If you’ve written anything in Java before then you’re familiar with NPE’s.  It occurs when you attempt to interact with a variable’s value, but it turns out there is no value to interact with.  Your compiler can’t see that there’s no value available, but at run-time your system checks for it and then crashes when it can’t be found.

Kotlin to the rescue

While Kotlin is 100% interoperable with Java (99% really as we’ll see soon) it’s fundamentally different in a few aspects.  One of these is nullability.  In Java every variable has a default value.  This is the value it can fall back on if you never explicity say what value it contained.  For example when you declare a boolean variable, unless you specify its value, it will be false.  For any variable that isn’t a primitive type, the default value will be null.  This can be really useful at times, but it allows us to accidentally try to grab a value when there isn’t one.

In Kotlin its possible to completely avoid this situation. Every variable that is declared is either a nullable type or a non-null type.  What this means is that along with declaring what type of value (Int, Boolean, custom class) your variable holds, you declare whether it is ever allowed to be null or not.  Here are two varaibles declared in Kotlin.  The first can never be null, while the second is nullable.

As you can see, the question mark is used to show a variable has the possibility of being null.  If there’s no question mark in the variables declaration, then you are safe to use it in every situation without risking it throwing an NPE.  This means that you’ll never have to write if statements checking if a variable is null to play things safe. Goodbye useless lines of code

Nullablility In Action

When using non-null type variables, we don’t have to check if there is a value present.  But for other situations we still must take precautions.  One way that Kotlin allows us to do this concisely is through safe calls.  A safe call looks similar to the traditional method of retrieving a value, except we include a question mark at the end of the variable.  So

Becomes

By doing this we can almost read the code as if it’s English.  We’re asking “does the pet exist?”, and if the answer to that question is yes then we move on to the name characteristic of our pet.  If there is no pet that has been created at this point in our code, instead of the app crashing our variable will be given a value of null.

This becomes incredibly powerful when we start chaining safe calls.  Let’s say we want to check if a company has an HR department with an employee name Toby who at tuna for lunch.  Instead of writing a null check for each of these before interacting with them we can write

If along the way any of these things doesn’t exist, then the code will finish the statement returning null and not interacting with any of the variables past the break.  Without an HR department the code won’t crash, but instead our employee variable will be set equal to null.

Control Is A Good Thing

This is probably the most common feature of Kotlin that you see people talk about, and it’s because of how powerful it is.  Not having to deal with null values is amazing, but even when we have to our code can be concise and clean.

The language can also smart cast nullable variables into non-null given the proper verification at first.  So if you had a nullable variable and then explicitly check if it wasn’t null, then you wouldn’t need to use any ?’s moving forward when accessing that variable.

Kotlin isn’t perfect, but when it comes to dealing with null values it has everything that Java has to offer with some additional perks and changes.  We’ll continue exploring some of Kotlin’s advantages in part 3.  In the mean time if you have any questions about how nullability works let us know in the comments below!

Rumors About Rumors About the Pixel 3

Share if the site was helpful

Rumors About Rumors About the Pixel 3

Over the past few months rumors have been floating around left and right about the upcoming Pixel 3 and Pixel 3 XL.  We’ve written about leaks here before as a serious of photos have surfaced revelaing potential designs.  Of particular interest are the XL leaks with the notch taking phone manufacturers by storm these days.  These are so interesting not because of what they show, but what they may be hiding.

The newest rumor going around is that the Pixel 3 XL we’ve seen thus far is a fake.  And not simply fake that someone decided to make up, but rather a fake that was released by Google to throw people off.  It’s a bold claim, but not entirely impossible.  Here’s why:

Hating The Notch:

When the XL leaks first surfaced a lot of people got excited.  And likewise a lot of people were upset to see that the notch was involved.  The 3 is set to bring back other exciting features like wireless charging, yet the notch seems to be what gained so much attention.  Some well known YouTubers have critiqued the design on their channels.  Google has taken note.

According to Jon Prosser, one of the YouTubers who spoke out against the leak, Google reached out to him and asked for a very specific clip of him speaking badly about the design.  He found out from other YouTubers that the same request was made to quite a few of them.  Google didn’t say why it wanted the footage, but simply asked for it.

What’s Google’s Game?

So why would Google want to use footage from well known reviewers bashing its product?  Well, the natural conclusion is that it’s not really their product.  If people hate the design that’s been leaked and it turns out that’s not actually the desing Google is unveiling in October, then no harm no foul.  Actually if anything it could help Google as they market that they’ve listened to people’s feedback and are moving in a direction that consumers want.

It’s possible (but not confirmed) that Google has artificially leaked things in an attempt to generate a buzz about the new phones.  If that’s the case then it’s definitely worked.  As to the probability of this actually ocurring…well that’s another story.  Only time will tell, but you could argue it’s pretty farfetched.  It would be incredibly hard to keep this kind of fake leak in house up until now.

Pie and The Notch

The Pixel 3 will also be the first phone to come with Android Pie which includes notch support.  The two don’t have to come in a package deal, but it would be a little strange to see that as a feature in Pie and not have it avaiable to users who buy the first phone with it.

What do you think of these rumors about rumors?  Whether you think its plausible or ridiculous let us know in the comments below!

 

 

That Missing Guide To Kotlin

Share if the site was helpful

That Missing Guide To Kotlin

 

In 2017 Kotlin began taking the Android community by storm.  Google adopted it as a first class language, and shortly afterwards developers everywhere renounced Java in favor of the newer, sleeker language.  That change isn’t going away.

I won’t lie, when I first was exposed I didn’t see what all the fuss was about. There were tons of articles that talked about how revolutionary Kotlin was compared to Java, but other than avoiding NullPointerExceptions they didn’t seem to go in depth at all. Because of this all I saw was slightly different syntax.  Boy was I wrong.

Kotlin is not perfect, but it does have a lot to offer that you don’t really notice until you start writing code with it.  This is part 1 of a 3-part piece will dive deeper into some of the things Kotlin has to offer.  Ideally after reading these posts you’ll have a better idea of how Kotlin can make your codebase shorter, more efficient, and easier to read.

Let’s start with the basics

Before we get into anything fancy, let’s explore a very basic concept that Kotlin offers: type inference.  In Java when you’re declaring a variable you have to do two things.  First you have to say what type your value is going to be (String, int, byte, etc.).  Second you have to name your variable.  Additionally you can set the variable to a value, or if it’s a member variable you can let it default to null, 0, or false depending on its type.

Kotlin tries to alleviate this (even if it’s not that painful) with type inference.  The compiler is smart enough to know what kind of value you’re working with based on what you set it to. Instead of writing

You can write

var is the generic term for variable in Kotlin, and the compiler knows that we’re dealing with a String because the value “hello” is a string.  Ok, that’s really not very cool. But compare these three lines in Java and Kotlin:

A small difference, but once you start writing with it you’ll be surprised how nice it is to not have to give that split second to declaring the right type.  The var keyword will work for any type that we attempt to put in it, even customized classes.  The keyword val functions the same way except its value is final.  In fact, everything in Kotlin is declared final by default unless otherwise specified (more on that later).

Saving Space

Ok, so we can replace a type declaration with the words var or val.  That doesn’t really save us a ton of time or space in our code.  Let’s look at something a little more impressive: Constructors.

Let’s say the app your building has a database that you need to get into to provide users with information.  To manage this data you’ve built the class DataManager.  Here it is in Java:

And here it is in Kotlin.

What’s happening here?  Well we’re declaring the class the same way with the words “class DataManager”, but Kotlin allows for an inline constructor.  This means we can create our constructor inside of the class declaration by adding our parameters “variable1” and “varaible2”.  Notice that we had to declare the types of each of these two variables along with the word val.

But…Type Inference

This seems to go against what we just learned about type inference, but don’t worry its not.  Along with the type inference we’ve seen so far you can declare the type.  There are some situations where both are necessary/appropriate (such as an inline constructor).  What this code is doing is saying that our class will have two var’s that are Strings, but since we haven’t actually created an instance of the class yet there’s no way our compiler would be able to know the values are Strings unless we explicitly declare them to be.

By including val before each parameter we ask Kotlin to both use it as a constructor argument as well as declare it as a member variable for the class.  And Kotlin classes also take care of getters/setters for us automatically, so we don’t need to write those.

From 20 to 2

So by declaring my two member variables inline I’ve knocked my code down from 20 lines to 2.  Yes, 10 times less code.  Obviously not everything changes this drastically, but this is a great example of how Kotlin can both speed up your coding as well as make it neater.  And really by no means does the readability suffer here.  Reading this Kotlin code we can see clearly that DataManager takes 2 parameters in its constructor, and unless we specify otherwise, Kotlin will always take care of our getters and setters.

Again, this is just one instance where Kotlin saves code, but we could take this example even farther by overloading our constructor with default values.  That’s an example for another Kotlin post down the road, but hopefully even this one gives you a taste of how your codebase can shrink when you convert it.

If you want to go DEEP down the Kotlin rabbit hole, then Phonlab offers classes on it in the Android App Development course.  I’d highly recommend you check it out, as well as stay tuned for part #2 of this!

Monetizing Your Apps With Ads

Share if the site was helpful

Monetizing Your Apps With Ads

App making is a beautiful things.  You can literally write down what you want to happen, and watch your creations come to life.  It’s both a science and an art.  Unfortunately sometimes app making alone doesn’t pay the bills.  It does if you work for a company or you freelance your skills to other people, but if you want to make apps on your own, you need to find a way to cover your costs.  Enter ads.

Of course, no one likes ads.  They’re an evil necessity though, allowing goods and services that would otherwise cost money to be enjoyed for free. The user gets a free experience, the company displaying ads gets publicity, and you the developer get money! It’s not a get rich quick scheme, but trust me, you’re going to get downloads a lot quicker if you can make your app free.

Who do I need to call?

Before you pick up the phone and start calling local companies to see if they want a spot in your app you should know its easier than you think. Rather than having to contract with advertisers yourself, Google does the heavy lifting.  AdMob is a mobile advertising company designed to link developer’s creations with companies looking to advertise.  All you the developer have to do is add a spot in your app for ads to appear, and Google takes care of the rest.

It doesn’t matter how they do it or what steps are involved, but Google will gather and distribute the advertisements companies have paid them for.  You may be advertising for Coca-Cola, or Tide.  You don’t really know and you probably don’t care.  Meanwhile every time an ad is displayed to a user and then clicked on you earn a couple pennies.  Not enough? Well get a few thousand downloads and then we’ll see how your bank account is doing.

How to get started?

A lot of job descriptions I’ve seen include “experience with AdMob” as if it’s something that takes a while to master.  This couldn’t be farther from the truth.  There are a few steps to get things set up initially, but the process isn’t complicated.  We walk you through creating an account, adding the necessary code, and publishing your app at on the Play Store.

Here’s AdMob’s website where you can create an account. Once you do that the two things you’ll need to do are update your xml to include a view for your ads, and then create a new AdRequest to load your ads.

One Size Fits All?

There are actually different kinds of ads that you can include in your app.  The instructions above are for Banner ads.  These are small ads that appear either at the top or bottom of the users screen while they are using the app.  User’s may not even notice them if you use them correctly.  Then there are other ads such as Interstitial ads.  These are much more invasive taking up the user’s entire screen for a short time.  User’s really don’t like these, so make sure you use them wisely (maybe in between levels in a game).

The bottom line is that ads can be really beneficial to you as the developer, and if done correctly hardly an inconvenience to users.  It’s a win-win.  We didn’t go into the weeds on anything here, but if there’s something else you want to know about ads or AdMob, just let us know in the comments below!

 

The Man In The Disk

Share if the site was helpful

The Man In The Disk

If you’ve ever taken an introductory class on cyber security (or if you’ve explored the topic on your own), then you’re likely familiar with the term MITM.  Man-In-The-Middle attacks are security breaches where a 3rd party butts their way in-between two parties attempting to communicate.  Obviously, this is not an ideal situation for either party, and a new variation of MITM is taking Android users by storm.

MITD

Man-In-The-Disk (MITD) is the name that’s been flying around the past few days.  But before we get into its details, let’s discuss a little more of what MITM attacks entail.  A MITM attack is when an unknown party inserts itself between the two trying to communicate.  When this is done that malicious party is able to spy on the conversation happening.  Even worse they might altar what is being sent.

As an example let’s picture an everyday conversation between two friends.  Person 1 and 2 are talking to one another about their plans for tonight.  And let’s say person 3 is bitter they didn’t get invited.  Person 1 might send 2 a message online asking “Want to meet up at 8?”, but 3 intercepts it, changes it, and then forwards the newly modified message to 2.  Now when 2 opens the message it instead says “On second thought there are cooler people I’d rather spend my time with”.  (A riveting example, right?)

The idea is simply that a 3rd party can both invade and modify conversations between clients and servers.  And a lot of the time the invasion can be a lot more critical than hurt feelings.  MITM attacks can be avoided by taking proper precautions and such as certificate pinning.  But that deserves a whole post of its own.

So How Does It Happen?

MITD attacks are a specific type of MITM that takes advantage of careless storage on users phones.  MITD attacks can allow 3rd party users to access information that is stored on an android device’s external storage.  This is something that many apps don’t use, but researchers at Check Point recently found that many app developers (including Google itself) are not following the recommended security precautions for avoiding this vulnerability.

There are a couple different methods for storing information in Android apps.  Android’s developer website has a good page laying out the differences between them.  If you want to go deeper into when using each is appropriate PhonLab covers this in its Android Development Course.   For the most part Android security is very sound due to sandboxing.  This is the idea that each app silo’s its information and only makes it available to others if either the user allows it or if both apps are on board for sharing.

External Storage

External storage is essentially a part of the device’s storage card that is shared by all applications. Google suggests that developers should add extra validation if apps utilize this storage functionality.  And unfortunately it seems that a lot of apps currently aren’t doing this.  Due to prioritization of external storage, data coming in to the phone may be subject to MITM attacks before it even reaches the app meant to use it.

Ironically Google was not following this advice either.  Since the report came out they’ve addressed the places where they were falling short, but it seems many other apps have made the same mistake and will be named after they correct their issues.

In conclusion, there is a security scare going around for android apps, but don’t overhype it.  If developers take the proper precautions to prevent MITM attacks (something Google explains easily how to do on their site) then this danger fades away.  Security is an ever-changing field, but this breach is one that can be easily avoided if developers do their due diligence.

 

Fortnite Could Change The App Market As We Know It

Share if the site was helpful

Fortnite Could Change The App Market As We Know It

Fortnite, the first person survival shooter game that has taken the world by storm, has finally made its way to Android.  I’m sure it will be a blast to play, but this isn’t the place to read reviews of videogames.  So why are we bringing it up?  Because Fortnite with its popularity has brought some light to a very deep discussion for what the future of apps looks like.  It’s more than a videogame, it’s the start of a movement.

Some Background

For those who aren’t familiar with the game’s success thus far, Fortnite has become one of the most popular games of all time and is played on PCs, gaming consoles, and iPads/iPhones.  It’s been developed for all of these different systems so that virtually anyone that has an electronic gadget has the opportunity to play, and for months now its been building up to its Android debut. 

This would just be another story of a successful video game, except that Epic Games (Fortnite’s creator) has made a bold decision for its distribution strategy.  They decided to forgo the common pathway of sharing their app on the Google Play Store.  Instead they will be distributing the app in their own digital store and keep the 30% “store tax” that Google would otherwise keep from in-app purchases.

Fortnite Paves Its Own Path

“It’s a high cost in a world where game developers’ 70 per cent must cover all the cost of developing, operating, and supporting their games.”  Epic said about the decision.  “And it’s disproportionate to the cost of the services these stores perform, such as payment processing, download bandwidth, and customer service.”

Epic has shared its opinion that the app market is a highly monopolized one where developers are unfairly being taken advantage of.  Google and Apple have grown to such high user adoption rates that users don’t get apps from anywhere else.  This means that as a developer you either play by their rules or you don’t play at all.  Epic isn’t the first entity to share this sentiment, and the EU has even recently filed a lawsuit against Google for monopoly abuse.

Breaking The Cycle

Fortnite just happens to be such an incredibly popular game that it could potentially survive playing by its own rules.  Sure it won’t get as many downloads as it would on the Google Play Store, but it could still prove a successful venture which would open a serious discussion about other companies following suit.

To give Google a little credit Android phones do have the capability to download apps from 3rd party sources, it’s just not as common or streamlined a process.  Apple on the other hand has completely rejected this philosophy and gives users the choice of their app store, or users jailbreaking their phones to get what they want.

In the age of tech giants its hard to not just accept the fact that these monopolies exist and are becoming solidified.  So when a discussion is brought to the table about a potentially unfair situation arising it’s imperative that we keep an open mind and think about what impact can be made in the long run to ensure a healthy a thriving market economy.  Anti-trust is a sticky, sticky issue, but that doesn’t mean it shouldn’t be discussed.

The Google Play Store is a great tool that tons of developers (myself included) get to use to share their creations with the world, but every system needs checks and balances or else it will eventually experience abuse.  It will be interesting to see how successful a venture Fortnite on Android will be without involving itself in the Play Store.  What do you think about Epic’s decision?  Let us know in the comments below!

 

Android Pie is Fresh Out Of The Oven

Share if the site was helpful

Android Pie is Fresh Out Of The Oven

Today Google officially dubbed the newest version of the Android operating system as Pie!  Along with this naming they’ve also released the first official version of it to Pixel phones.  Android users around the world are debating whether this was the right dessert name or not, but either way we know that Pie has some great things in store for us.

The Build Up:

Over the past few months we’ve seen a few beta version of Pie released on a series of smartphones, but this official release is only available on Pixel phones.  People who signed up for the Android Beta program will receive the update by the end of this fall though.  Google also said it’s working to launch/upgrade other devices sometime this year.

Those details are pretty vague, and if Pie behaves anything like other Android versions, it could be over a year before it’s adoption rate breaks double digit percentages.  All the same it’s officially available to Pixel users and it has a name.  That’s plenty for now, but let’s also not forget that Pie is available in its beta format on a number of different devices.

A review of Pie:

We’ve talked about Pie and its cool new features a few times here at RootJunky.com.  The new software is designed with predictive analytics and AI for battery power as some of the main features.  The idea is to improve things behind the scene for users.  Pie monitors and adjusts screen brightness as well as what apps are in the background during different times of the day.  It gets used to user’s habits, and then preps itself in advance to recreate that behavior.  AI is definitely a buzz-word, but that doesn’t mean it can’t have some perks.

It also features an official dark mode option in settings, something Android user’s have been asking for for years.  Notifications also offer features such as smart replies for texting and a new feel to them, so the changes in this version are both front and back end.

Aaand the Notch:

Of course when we’re talking about new looks we have to mention the notch.  It’s taken a hold of both the iOS and Android markets so much that Google has actually come out and banned phones with more than 3 notches from getting Google support.  Somewhat crazy to even think more than 3 notches could exist on a phone right now, but you never know!

One more feature that I have to mention that I’m very excited for is the change to rotation.  Instead of just locking your rotation or having it rotate every time you accidentally turn your screen, you now have optional re-orientation.  Android Pie will display a small button when it detects a screen rotation, and if you select this then the phone knows to readjust, and if not then you can continue doing things as you were, undisturbed.

The Pixel 3 will be coming out on October 4th just a few months from now, and it will likely be the first phone to be released with Pie as it’s initial operating system, but Pie is now available to those who are willing to take the steps to get it.  I’m excited to see it grow this year, and I’m also very interested to see what Q is going to be named.

What are your thoughts on Pie’s name?  Could Google have done better?  And if so, do you think it’s new features will make up for it? Let us know in the comments below.

 

Will Fuchsia be Android’s Usurper?

Share if the site was helpful

Will Fuchsia be Android’s Usurper?

Android is the world’s most popular mobile operating system, and for good reason.  It’s created both high end and affordable options for users worldwide to experience what it has to offer.  And what is has to offer has been time and time again improved upon.  That being said, improvements are always happening in the tech world, and 5 years from now Android might not hold it’s place as #1.  Here’s a curve ball for you: I’m not talking about Apple.  Android’s upcoming replacement may be Fuchsia.

Wait…what the heck is Fuchsia?

For a few years now a stealthy group on engineers at Google have been working on Fuchsia.  The project came into existence as a potential solution to Android’s limitations.  It’s being designed with voice interactions and security updates in mind where the current Android platform falls short.  And while this has been quiet, it hasn’t been locked down.  Some of the code has been open source since 2016 and outside app developers have been allowed to experiment with it.

The Fuchsia team has a higher goal than just more efficient software though.  They’re attempting to design something that will make interaction with all in-house gadgets a fluid experience.  Imagine a single operating system that controls all your speakers, tv, and other residential tech.  Now imagine also being able to interact with all of these devices by speaking to them.  Your house becomes a sentient being, somewhat like this post we wrote a few months back.

So Android will be gone in 5 years?

No, I definitely exaggerated in that first paragraph.  5 years would be an insanely quick turnaround for Android to completely fall off the map.  Android currently dominates as king with roughly 75% market share compared to Apple’s 15%.  Still, it’s far from perfect.  There are performance, privacy, and security concerns with out of date Android phones that need to be addressed, and a new software like Fuchsia could help jump that transition forward.  All the same we’ll be seeing Android phones for quite some time still, and P hasn’t even reached the market!

Fuschia is being developed with audio interactions at its core.  There haven’t been any apps built on it at a serious commercial level yet, but rumors are flying that we’ll be seeing a YouTube app with voice command soon.  My prediction is that over the next year or two Fuchsia is going to grow in the open source community until its eventual official launch, at which point we’re going to see a boom (hopefully a quicker boom than new Android version adoption rates!).  I’ll be keeping a close eye on it, so stay tuned for more updates.  And if you have any thoughts about Fuchsia or it’s potential let us know here!

 

Android P Releases Its Final Beta

Share if the site was helpful

Android P Releases Its Final Beta

While Android Oreo is just starting to hit its stride, Android P is making news too.  This week Google released the final beta preview of Android P before it’s official launch.  We’ve seen a few beta previews so far this year, and this one should be even closer to what P will look like when it launches.

According to Android VP Dave Burke this beta includes “final system behaviors” meaning Google’s new gesture-based navigation will be locked in and shipping with Android 9.0.  Of course there’s always room for improvement, and that’s a large reason betas exist, but this should be stable for installation on your main phone.  Google hasn’t mentioned any known bugs, so if you have a phone that can handle it out get the beta and let us know what you think!

What’s new in P?

We’ve talked before about Android P and what features it has to offer.  Spoiler: they’re awesome.  P offers a series of features that revolve around the idea of predictive analytics.

There’s an adaptive battery that takes into account what time of day you typically are running your apps, and if it doesn’t think you’ll be using them any time soon it shuts them off to save energy.  Couple this with the screen brightness which auto adjusts based on what you typically set it to throughout the day, and you’re looking at a much longer lasting battery life.

Apart from performance improvements, we also have completely new features that enable us to experience things differently.  One I’ve talked about before at length is Wi-Fi RTT.  Round Trip Time is a method of really getting to know your exact current location.  It’s accurate within about a meter, and does so by triangulating between multiple Wi-Fi access points nearby.  This improved location methodology offers some cool opportunities that just depend on how creative developers want to get.

Privacy Improvements:

There are also security improvements that come with P, and in an everchanging world of privacy that’s a key improvement.  Have you ever gotten a notification saying an app was running in the background when you didn’t think you’d been using it?  How about having an app crash in the background even though you haven’t opened it in ages?  That’s never a good thing to see.  P will prevent idle apps from performing actions such as accessing your camera (yes this is a thing!!).  P offers a series of security upgrades that limit what apps can do in the background in an effort to help protect user privacy.

How to get P?

First off, I’m so ready to stop calling it P and use it’s actual name. Unfortunately we’ll have to wait a little longer for that.  But if you want to get the beta on your phone today you can check it out on Android’s developer website here.  Give it a try and let us know your thoughts on it!  We’ll be sure to continue writing about developments in the software, so stay tuned for more.

 

 

 

Oreo: Coming Soon To A Phone Near You?

Share if the site was helpful

Oreo: Coming Soon To A Phone Near You?

It’s been just over 10 months since Android’s newest version (Oreo) began rolling out to devices. Almost a year, so let’s take a second to see how it’s doing. Well…it may be performing really well in terms of quality, but quantity is lacking.

How bad are we talking?

Every month Google releases Android’s distribution numbers showing how many devices are running each version of their operation system, and according to July’s numbers this year Oreo is active on 12.1% of active devices. As a point of reference, that puts Oreo at the 4th place position behind Nougat, Marshmallow, and Lollipop. There’s no denying this is a pretty sluggish speed for rolling things out (but to be fair it’s 0.4% ahead of where Nougat was during it’s growth phase).

So the trends show that new Android versions typically take more than a year to become the most used release, but this begs the question of why? Oreo offers some pretty cool new features such as picture in picture app usage and notification channels. Apart from battery life there aren’t too many reasons user’s would want to avoid upgrading to the newly offered software. But the issue is that it’s not actually offered to all users. There have been rollout calendars following which phones have adopted Oreo since it’s release, and the list of devices has grown slowly up until this month.

It’s Not The User’s Fault

A large part of why device updates are so slow is how fragmented the Android market currently is. Manufacturers often won’t bother with updating older pieces of hardware because it takes time and energy on their part that isn’t being put towards everything new. The end result is user’s being left high and dry. Even some new devices are hesitant to adopt the new software until it’s tried and true. User’s are able to flash their devices and test out other softwares if they so desire, but it’s not exactly mainstream to do so (as cool as it is!)

The bright side is that if you look at things over time they’re starting to ramp up exponentially. 5 months ago Oreo’s adoption rate was hovering around 1% (5 months after it’s release). Things were looking abysmal then even compared to other version’s growth rates, but thanks to a wave of updates this past month things are starting to look back on track.

Statistics Aren’t Perfect

It’s also important to note that the Android Developer dashboard I linked above relies heavily on Google’s Play Store to collect its data. This means that not every device running a version of Android is actually being accounted for in these numbers. The Play Store currently isn’t available in China (A $35 billion/year app market to be missing), and there are a few other factors at play attributing to uncounted devices. All the same it’s clear that Oreo is at about the same speed of rolling out as Nougat was, and we’ll likely see it enter the top 3 within the next few months. I for one am already looking forward to Android P though 🙂

Have you gotten Oreo on your device yet? What are your thoughts on either it’s performance or it’s rollout speed? Let us know in the comments below!