Microsoft Moving Out Of Mobile

Share if the site was helpful

Microsoft Moving Out Of Mobile

It’s the end of an era for Microsoft phones.  While back in 2017 Microsoft announced they were done developing new hardware for their devices, now they’ve decided to end support altogether.  Security and software updates will be coming to a close In December of this year.  It’s time to move on to an Android or iPhone.

Failure To Launch:

The company once had huge plans for their mobile phones, but things never really took off quite as expected. The Windows Phone 7 launched in 2010, but now less than a decade later Microsoft is moving out of the mobile hardware industry. Back then Microsoft touted that the emergence of their phones would be the death of both BlackBerry and iPhone. One of these has come true, but the other…not so much.

There are many reasons for the Windows phones not resonating with users, but a hefty one was the lack of apps in the app store.  Many popular apps on Android and iOS devices simply weren’t available for Windows users. Now Microsoft has decided to bypass this issue and instead focus on providing its services to other carriers. 

The Future of Mobile For Microsoft:

Microsoft phones may be done for, but the company’s future in mobile is far from over.  They’ve invested heavily in making Office products available on both Android and iPhones.  They also have a partnership with Samsung, who sells some of their Galaxy phones with Office pre-installed.

Android seems to be the mobile choice that Microsoft has embraced.  With an Android launcher and upcoming app mirroring support, users moving away from Microsoft phones will likely lean towards that option.

Moving Forwards:

It’s no huge surprise that Microsoft dropped support for Windows 10 mobile, since the same thing happened for the Windows Phone 8.1 in 2017.  While Microsoft will be playing a role in mobile phones down the road, their attention has shifted elsewhere.  They’re still a mega player in the tech world (we just wrote about their changes to GitHub).

Still, Microsoft is urging users to move to either one of the two main players.  They said “With the Windows 10 Mobile OS end of support, we recommend that customers move to a supported Android or iOS device.  Microsoft’s mission statement to empower every person and every organization on the planet to achieve more, compels us to support our Mobile apps on those platforms and devices.”

What are your thoughts on the end of Microsoft mobile support?  Will these phones be missed or is it best that Microsoft focus their efforts elsewhere?  Let us know in the comments below!

 

Private Repos Coming to a Website Near You

Share if the site was helpful

Private Repos Coming to a Website Near You

Chances are you’re familiar with GitHub, the web-based hosting service for version control.  It’s where many developers go to save their code online or share it with others.  While GitHub is free to use, if you wanted more privacy then that cost money.  At least it used to!

Free Private Repos:

Earlier this week GitHub underwent a change.  Users are now allowed to host as many private repositories as they want.  A dramatic change considering this feature used to cost $7 a month.  Private repos are free to use with up to three collaborators, and public repos still allow for unlimited collaborators.

The number of collaborators is the only real limitation on private repos, and the change is aimed at improving the version control experience for smaller fish in the development pool. The idea being that if you’re on a small team or an individual you won’t have to pay the fees larger companies do. 

GitHub’s Going Through Changes:

GitHub has been making headlines a lot in the past few months. In October Microsoft completed their $7.5 billion acquisition of it.  In November of 2018 GitHub passed 100 million repositories (and that number could sky rocket now that anyone can utilize private repos for free).

A number of pricing changes have come along with free repos, but this is the most noteworthy for individual developers.  Originally called GitHub Developer, the $7/month plan has been rebranded to GitHub Pro.  The company also offered GitHub Enterprise and GitHub Business Cloud for $21 each and has now consolidated them into one $42/month subscription.

Moving Forward:

It’s worth noting that these changes bring GitHub more in line with other version control services like Bitbucket and GitLab.  The former allows unlimited private repos with up to five collaborators, and the latter has no limit.

This is definitely a plus for GitHub users like myself, but it by no means that public repos will come to an end.  The development community thrives on open source technology.  That being said having options is certainly nice.  What are your thoughts on Microsoft making private repos free? Let us know in the comments below!

Keep The Resolutions Going With Phonlab

Share if the site was helpful

Keep The Resolutions Going With Phonlab

We’re one week into the new year, and hopefully sticking with resolutions.  The most common goals tend to revolve around exercising, eating healthier, or learning something.  We can’t help you out with the first two, but if you’re looking to pick up a new skill this year you’re in luck!

Mobile Developer Courses:

Phonlab’s Mobile Development courses offer a great affordable way to learn app development.  Whether you’re completely new to programming or looking to add a new skill to your repertoire, it’s worth it.  These courses will take you from writing your first line of code all the way up to publishing your first app on the Google Play Store or Apple App Store.

Coursework is great, but really sets Phonlab apart from other online educational materials is the personal touch.  As you’re learning you’ll undoubtedly get stuck. Instead of having to spend hours researching your issue, you’ll receive personalized support walking you through solutions.

What’s in a Lesson?

Depending on your level of dedication, you could go from never programming to publishing an app in less than a month.  And you only have a few spare hours a week, fear not!  With Phonlab’s one-time payment you get access to the coursework forever.  You can either speed through the course again and again or take your time and absorb all the knowledge it has to offer.

And that knowledge covers all the core topics in mobile development.  Whether it’s Material Design tips for how to create an aesthetic layout of images, or efficiently downloading information from online and displaying it to users, there’s a video teaching it.  These videos feature footage of apps being built in real time with audio explaining every step.  And along with the actual creations are animations helping to explain any tricky concepts.  The goal is to make it as easy as possible for you the developer.

Sign Up Today!

If you’re interested in taking your programming skills to the next level or starting at line 1, I’d definitely recommend you check out these courses.  Who knows, by the end of 2019 you may be making apps for a living.

Pie Is On The Roll

Share if the site was helpful

Pie Is On The Roll

Pie made its debut earlier this year on Pixel devices, and since then other users have been waiting patiently for it to expand.  Now Christmas presents have been delivered and Android has begun rolling out Pie to a number of other devices.  So read on and see if Google got you anything for the holidays.

Android Is SLOW:

Android’s OS offers some incredible experiences, but there’s no denying that rollouts take forever.  Roughly a year after Oreo’s release it made it onto 12% of Android phones.  Five months after its release it was only at 1%!  While these statistics aren’t perfect due to factors such as the Play Store’s unavailability in China, it still paints a good picture.  Things move slow.

With rollouts taking so long, every new wave of devices is big news when it’s yours.  Today rollouts have begun to a number of new phones.  These include the Galaxy S9/S9+, the OnePlus 5/5T, and the Infinix Smart 2 (a very popular phone in India).  Older phones will be receiving this update as the year goes on, but Christmas came just in time for these parties. 

Times Are Changing:

The Android circle of life must continue.  As new versions like Pie come out, they replace the older ones.  With a shrinking number of phones running earlier versions of Android support for them becomes difficult in an efficient manner.  Earlier this month Google Play Services ceased support for Ice Cream Sandwich.  The version came out seven years ago, and it’s userbase has dwindled below the 1% mark for a while. 

And along with this new Android apps must target at least Oreo when they are released to the Play Store.  It may seem tough to leave users behind, but it really just makes sense.  At a certain point upgrades need to take place so that companies/developers can make new features available in their apps without having to worry too much about ancient versions. 

There is still a span of versions that run any app on the Play Store, but the line has to be drawn somewhere.  The good news with this is that deprecating versions simply means that new and improved versions are being released.

Pie Is Hot

And for the most part Pie has been just that; new and improved.  Having played around with a Pixel 3XL running Pie for some time I have to say that its user interface has been very pleasant.  Pixel users have experienced a some bugs over the past months, but nothing has come close to outweighing the pro’s the new version has offered.  My personal favorite has been Google Call Screen to identify unknown numbers.  I’ve taken 0 calls from telemarketers since upgrading to this phone!

There are certainly things users wish Pie could do that it doesn’t.  One of these being multi-resume.  The software allows users to have two different apps open simultaneously, but as the Android Activity Lifecycle is currently implemented only one can be in the resumed state at a time.  This can lead to funky behavior if you’re trying to play two videos as the same time, but there are already rumors that this is in the works. 

The bottom line is Pie rolling out is good news, and it’s sure to continue doing so as time goes on.  Hopefully Pie proves to roll out faster than previous Android versions, but only time will tell.  And if you want to run your phone on a different version flashing is always an option.  What are your thoughts on the Pie rollout?  Let us know in the comments below!

Reduce, Reuse, RecyclerView

Share if the site was helpful

Reduce, Reuse, RecyclerView

Mobile users have developed a rigorous set of standards in the past few years.  If an app takes more than a few seconds to launch, they’re annoyed.  If a button takes more than one second to react to a click, there will be some uninstalls.  With such high expectations for performance app developers need to make sure they do everything in their power to speed up their apps. 

RecyclerView For Efficiency:

The Android OS has grown alongside user expectations.  New libraries and views have emerged to offer improvements to an app’s efficiency.  One of these that EVERY Android developer should know is the RecyclerView.  RecyclerView is (as defined byAndroid) a flexible view for providing a limited window into a large data set.

Basically, think about every list you scroll through on an app.  Odds are that list is a RecyclerView.  The idea is you can map out how large you want the space to be on a user’s screen, and then that portion of the screen will be scrollable showing a number of smaller layouts.  Each of these can be designed however you see fit. 

Think of Spotify’s list of songs in your library for example.  Each layout in the list holds TextViews displaying the song name, artist, an ImageView of the album cover, and an arrow on the right indicating you can click on it for more information.  This layout is used again and again but different information is loaded into it each time.

But How Is It Efficient?

So if you saved 2000 songs to your library then every time you open the app you’ll have to load 2000 layouts? That sounds like an awful user experience as they have to wait.  No you won’t, and that’s the beauty of a Recyclerview.  Your app is only going to create 10-15 of those layouts. Then as you scroll it will empty the top layout’s info, kick it back down to the bottom of the RecyclerView, and load it with new data. 

Your app has all the info from the list, but it only has to create views for items as they appear to the user.  And once a few views have been created, it won’t ever have to make new views since it recycles them as you scroll.  I wonder how they came up with the name RecyclerView…

Setting Up RecyclerView

Adding a RecyclerView to your app’s layout is not too complicated, but there is a fair amount of work involved.  Phonlab’s Android App Developer Course shows a detailed step by step tutorial, but we’ll cover the 30,000ft view here.  The process essentially breaks down into two parts:  Your layout and your adapter.  The layout is more straightforward; it’s you creating an xml wireframe view for where you want the info to load.  What should a layout look like when it’s given the proper info?

The adapter is a little more complicated.  There are three methods that your RecyclerView adapter will override.  These are onCreateViewHolder(), onBindViewHolder(), and getItemCount().  In order these tell your adapter what to do when creating a new layout, adding new data to a layout, and how many items are in the list total.  onCreateViewHolder will be called every time we need to make a new layout, but once the initial work is done and a user begins to scroll onBindViewHolder will be where you add click listeners and other interaction logic.

Seeing it in action:

After you have all of your logic for loading the data into a ViewHolder (layout) you need to create an instance of the RecyclerView in your app.  Then set the RecyclerView’s LayoutManager and Adapter using the class’s methods.  If everything is set up correctly and you’ve added an xml RecyclerView in your parent layout, then clicking run should show your scrollable list of views.

It’s essential your app meets current standards for efficiency.  RecyclerView is a great way to improve responsiveness.  With it you can present users with immense amounts of data without slowing down their experience at all!

Configuring Features With Remote Config

Share if the site was helpful

Configuring Features With Remote Config

Here’s a scenario for you: you built an app that is now being used by thousands of people.  It’s a huge success, but you want to really make it pop with some live updates.  Let’s say on Halloween you want your app to be black and orange, but on Christmas you want users to see red and green.  There’s a way to do this, and it’s shockingly easy with Firebase Remote Config! 

Rolling Out Updates:

Rolling out changes to your app is not an incredibly difficult process.  If you know what you’re doing you can do it in a matter of minutes.  Getting those changes into user’s hands worldwide…well it’s another story.  Android users can be somewhat reluctant to update their apps, and months after a release you may still have users running older versions.  In fact, this is almost a guarantee.

With user’s taking a long time to update to newer versions of your app, you can’t just create a new release with orange and black colors the day of Halloween.  Even if you target 100% of your users in the rollout it won’t hit the majority within a day.  Instead you need to create a feature that you can toggle on and off from a remote location. Enter the aptly named Remote Config.

Firebase Remote Config:

Remote Config is one of the many features Firebase offers for superior app development.  It allows developers to create variables and update their values from the Firebase console.  So for our example above, we could create a currentColor variable and set it to orange.  Then when we want the app to change color we can go online and change currentColor to green. No release necessary, and as long as we set things up in the app to read this correctly, any users logging on will now see a green screen.

This is great news for us as developers, but it gets even better.  Implementing remote config is EASY. 

Step one: create a FirebaseRemoteConfig instance using the class’s method getInstance(). 

Step two:  call the config’s method fetch( Long cacheExpiration) and pass in a time interval.

Step three: add an OnCompleteListener to the result of ‘fetch’ which calls activateFetched()

Step four: get the specific value by calling the config’s method getString(String) and pass in the variable name as it shows up in Firebase.

Thats It!

 After doing these four steps your app will have a variable to use however you want in the rest of your logic.  The uses for this are endless if you apply the right amount of creativity.  The important thing is that you can now change parts of your app without having to release new versions!

Firebase has lots more to offer, and if you want to learn about some of these other features you should either check Firebase’s website or Phonlab’s Android App development courses!

Brain Chips Are Here To Help

Share if the site was helpful

Brain Chips Are Here To Help

As smartphone technology has advanced over the years there have been efforts to make sure no users are left behind.  Android Accessibility features have evolved alongside to help users with disabilities.  These have ranged from voice commands to braille displays.  And now, thanks to BrainGate, even paralyzed users who can’t pick up a phone have the opportunity to use one.

The IBCI unleashed:

Researchers have developed a new brain-computer interface that lets people with paralysis control a tablet fresh out of the box.  In the study, three participants with tetraplegia used the IBCI (intracortical brain-computer interface).  The IBCI was then connected to the tablet with a point-and-click wireless Bluetooth mouse.  The end result being that user were able to move a mouse around on the tablet screen and interact without ever touching the product.

Testers were able to use common apps ranging from web browsing to texting to playing music on a piano app.  Two of the users were able to use the device to “chat” with each other in real time.  Let me again emphasize that all of this was able to happen with a tablet that had no altercations done to it.  Users who were unable to move their arms or legs at all were able to experience the cutting-edge technologies that a lot of us take for granted.

Android Accessibility:

While the research for this achievement has been done by BrainGate, Android has taken steps as well to try making smartphone technology accessible to any and all users.  Android Accessibility’s feature set includes things such as the TalkBack function and Braille display.  TalkBack allows users to interact with their devices using spoken feedback.  The BrailleBack feature lets people connect a refreshable braille display to an android device via Bluetooth.  This way users can read their phone even though they can’t see the screen.

There are other Bluetooth connections that Android thrives on such as switch, keyboard, and mouse.  These help users with limited mobility, and they’re constantly undergoing innovations and improvements.  Fuchsia, proclaimed as Android’s successor, is working heavily on these kinds of integrations.

Taking Tech to The Next Level:

BrainGate’s research is truly amazing, but we also shouldn’t just pigeon hole it into something that can help those with paralysis.  As this technology continues to develop it will likely expand into all of our life’s until we’re eventually at the “Google Glasses” stage.  By this I mean seeing an entire virtual work around us and being able to interact with just our thoughts.

I’m incredibly excited to see this helping people experience what they otherwise couldn’t.  But there’s tons of opportunity for every smartphone user to utilize this tech down the road too.  What are your thoughts on the IBCI?  How far off do you think we are from this being a commodity that we all by at the store?  Let us know in the comments below!

Overriding and Overloading: What’s the Difference?

Share if the site was helpful

Overriding and Overloading: What’s the Difference?

When programming for Android (or anything) writing custom methods isn’t optional. If you don’t know what it means to write a method, then I recommend you check out Phonlab’s video tutorials.  And if you do, then don’t tune out yet!  Methods are like icebergs (90% of their functionality is unseen at first glimpse).  And getting to know the other 90% is what can take you to the next level in your development.  In this post we’re going to explore the ins and outs of overriding and overloading to make development easier.

Methods 101:

If you’re an Android programmer, then you undoubtedly know what a method is.  It’s a block of code that you give a name.  This way every time you call it that block is executed.  I know it’s a fundamental concept of programming, but here’s a sample that we’ll build onto over time.  Let’s say that you’re building a contacts app and can add contacts given a name and phone number.  Here’s the class your app uses:

Great, seems simple enough right?  But any good contacts app is going to do more than just this.  If a user wants, they should be allowed to include other info as well.  What if they want to put one contact on speed dial? Or what if they want to add a contact to a group?  How about this:

Now, there’s no problem with this code.  Each of these three methods will add a contact with the extra information that they included.  But these method names could start turning ugly if we kept adding parameters.  How do you feel about the method name addNewContactWithSpeedDialAndGroupAndPictureAndAgeAndRingtone?  First off, I’d say let’s drop every “And”, but even so that method name is getting long.  This is where overloading can help.

Overloading:

Overloading is the practice of creating new methods with the same name.  But you can’t have two identical method names, right?  If they had different logic how would the computer know which one to execute? Well they actually can as long as the parameters are different.  As long as your methods each differ like this:

then the compiler is able to recognize them each as individual methods.  So now if a user wants to add a contact it doesn’t matter how much information they give!  They can either call addNewContact(Carl, “1112223333”) or addNewContact(“Carl”, 1112223333, “Friends”) and their new contact will be added with that info.

Order counts too, you could have the methods addNewContact(String name, int phoneNumber) and addNewContact(int phoneNumber, String name) as two separate methods in the same class.  This doesn’t open many doors in this specific scenario, but it’s handy to know all the same.

Overriding:

While it sounds almost identical, overriding a method is a somewhat different technique.  This allows us to take a method that exists in a parent class and change its behavior.  As a demonstration let’s say that our contacts app has a page where you can look at individual groups.  When you open the group for “Family” there is a button where you can add contacts to this group.

Our new class named FamilyGroup will extend our NewContact class.  By doing so it now has access to the parent class’ methods.  But we don’t want our user to have to type in the group they are going to use.  That’s a waste of time for them since they’re already in “Family”.  To fix this we’ll override our addNewContact(int phoneNumber, String name) like so:

Now when a user puts in info for a new contact’s name and phone number this method will call NewContact’s addNewContact(int phoneNumber, String name, String group) and pass in “Family” for the group.  Sure, we could have written another function in this class to add the contact, but this way no matter how complicated NewContact’s method is, we get to call it again with only one line of code!

Wrapping up:

Overriding and overloading can make your code a lot neater if used properly, and there’s a tone of cool things you can do with these techniques in the real world.  This contacts app isn’t the most realistic project, but it gets the simple idea across.  When you start getting into more complex inheritance overriding can save you a ton of space.

If you enjoyed this post at all and want to learn more about Android development check out some of our other tutorials such as how to develop augmented reality or more complex apps!

 

Duplex Makes its Debut

Share if the site was helpful

Duplex Makes its Debut

At Google I/O 2018 we saw a breathtaking performance on the center stage.  The world watched as Google Assistant placed a call to a hair salon and booked an appointment.  This new feature known as Duplex has been marketed as your new secretary, but unfortunately up until  now it’s just been an exciting video to watch.  Things are changing though, and Pixel 3’s are about to start seeing Duplex roll out onto their phones.

Duplex:

From a 3rd party view what was so amazing was how lifelike the conversation appeared.  Though the conversation took place between a computer and a real person, it was borderline impossible to tell which was which.  Google Assistant dialed the company’s phone number and then conversed with a receptionist on the other side.  It even went as far as to throw in lifelike “mhmm”’s. 

This was the first peek into Duplex, and since then we’ve seen the Pixel 3 elaborate on the release.  The newest flagship phone users have the option to avoid calls from unknown numbers.  They leave the dirty work of figuring out who is calling to Duplex which talks to callers and displays a transcript of the conversation to users.  The beauty of this is that you’ll never have to talk to a telemarketer again!

The Rollout begins:

Duplex has been big talk recently but that’s been it.  Now Google has announced it’s rolling out the feature to a select number of Pixel owners in select cities.  If you own a pixel and live in Atlanta, New York, Phoenix, or San Francisco then you’ll get to be one of the first beta testers.  As a Pixel 3 owner myself I’m waiting eagerly for the next wave, but it’s good to know progress is being made.

As expected there are initial limitations on the feature such as it only being able to make calls in English.  People using Duplex will be able to use it with commands as simple as “Hey Google, make a restaurant reservation”.  Yes, it would help to specify where, but the concept is that you have to do next to nothing!

Opting Out:

Google has also said that businesses can opt out of the service by toggling an option in their Google My Business account.  Or if a business answers the phone and says, “I don’t want to be recorded” (or something similar) they are opted out.  It seems Google is preparing for the inevitable backlash from businesses and people who don’t want any part of the system.

What are your thoughts on Duplex rolling out to Pixel phones?  Are you counting down the days until you can use it too?  Let us know in the comments below.

Android Q for Quick Release

Share if the site was helpful

Android Q for Quick Release

You may think we’re getting ahead of ourselves here, but Android Q is already on the horizon.  Yes, we just finished covering the release of Pie a few months ago.  But it looks as though rollouts are starting to pick up more speed in the Android community.  Android Q’s full scale release is slated for 2019, and last week it was hinted that it will be available on a wider scale than we’ve seen before.

Android’s History:

Unless you own a pixel device chances are there’s been a time where you were waiting for your phone to have the newest software.  While Android is an amazing operating system, it’s notorious for rolling out very slowly.  Many phones just updated to Oreo as Pie was already being released.  In July Oreo was only active on 12.1% of devices.  This is somewhat understandable since Google is not the only player in the Android user experience But people still want what’s new, and that’s never going to change.

Last week at Android Dev Summit Hung-Ying Tyan, an engineer for Google’s Project Treble team, hinted that Q may be coming out on a trial basis sooner than we thought.  He said “We are also exploring ways to make future GSI available earlier than the release of next Android version.  So you will be able to try out next Android version earlier over GSI, and at the same time, we can get early feedback from you, so the benefit is mutual.”  GSI stands for Generic System Image and is a version of Android based on the Android Open Source Project.

What will Q have to offer?

Things are of course mostly speculation at this point, but predictions exist for a reason.  One such prediction is that the software is going to develop to match the ever-expanding tablets and foldable smartphones.  With increased screen size and split screen functionality users are bound to want to use multiple apps at the same time.  Enter Multi-resume.  I don’t know about you, but I find it incredibly frustrating when I’m trying to use split screen but one app pauses once I interact with the other.  Depending on the app, this could render the whole feature pointless.  Split screen is an amazing tool, but it needs to be perfected still.

In the Android activity lifecycle there are different states an app can be in.  Currently when an app is no longer the forefront of attention in split screen it goes into a paused state.  Then when a user interacts with it again it enters the resumed state.  In Q we may see a multi-resume where two apps can both be “resumed” at the same time.  It’s also speculated that Q will have features like multi-monitor support, but only time will tell what all is on the table.

Coming Soon to a Phone Near You:

Android Q source code will be shared with users and app developers for testing before the version officially launches.  The long term goal of this is to make users and developers more acquainted with the upcoming version.  Increased comfort equals an increased adoption rate.  I’m currently enjoying and exploring Pie, but as with the rest of you I’m looking towards the future!  What are your thoughts on Android Q?  Is there a feature it desperately needs?  Let us know in the comments below.