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.
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!
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.
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!
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 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
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.
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
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…
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!
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
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.
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!
Mobile OS or the operating systems used in smartphones, smartwatches and other mobile devices are the epitome of advancement and progress. These systems are very different from the ones that are found on laptops and desktops. Various companies have different features and different ways of functioning. Android and the iOS are two of the most popular operating systems that are used and preferred. Although Microsoft’s Windows OS had some fans, Android and iOS continue to dominate the markets.
But the market wasn’t always like this. We had multiple operatingsystems with each bringing something unique to the table in terms of functionality, design and features.Today, we look at some of the mobile operating systems that no longer exist.
The many flavours of Linux before Android:
At this moment, almost 81% of the world’s smartphones run on Linux OS, Android being one of the most popular ones of all. However, not all the Linux OS have had a good past, some version of Mobile Linux is no longer in use. Maemo OS is one of those OS.
This open source OS was developed by Nokia, for smartphones and tablets. Like many hand-held devices,this OS featured a home screen, which allows the users to access other applications, a Google Search bar and a menu. This OS projects from Linux kernel, Debian, and GNOME and is based on Debian GNU/Linux. Further more, it draws from GUI, frameworks, and libraries from the GNOME project.
The last known version of the OS in any smartphone was called Maemo 5 which was found on Nokia’s N900 smartphone. However, in 2010, Nokia announced that Maemo was being merged with Moblin OS, another Linux OS, to create MeeGo.
Moblin stands for Mobile Linuxwas produced by Intel. However, this OS has been discontinued and only surfaced in one smartphone. This OS first featured in the Acer netbooks.LG Electronics chose to use Moblin OS 2.1 for mobile Internet device class smartphone, the LG GW990.
This OS was known to enhance the power management policy, UI framework and other things.
MeeGo is a discontinued Linux version, hosted by the Linux Foundation. This OS made use of the source code obtained from Moblin produced by Intel and by Maemo produced by Nokia.This OS was developed in order to offer a better operating system to the hardware of various appliances, including smartphones.
The best part about this OS was that it offered various kinds of interface options which were termed as user experiences inside the OS.
Depending on the hardware of the smartphone, the users could find applications for their smartphone by making use of Nokia Ovi digital software distribution systems or the Intel App Up. The MeeGo OS was seen in the Nokia N9and N950 models.
Windows for mobiles and phones:
For some years Nokia had favored the Windows OS for their new line of smartphones. However, Windows Mobile phones and software have been permanently discontinued and are not being manufactured anymore.
Nokia Lumia was the brand face of the OS, which featured a different UI and a totally different look than your regular Android phones. Although the Windows OS was aeons ahead of what Apple and regular Android smartphones were offering in terms of smoothness and design, the fact that it joined the race a bit too late did not fare well for Microsoft.
The biggest aspect to Windows success had been that the phones were well-built and had great features along with being priced affordably. However, players such as Vivo, Oppo and Xiaomi killed the game for it. Furthermore, the lack of developer support also had a large part to play in the downfall of the Windows OS. The last version to released was Windows 8.1, which now has been updated to Windows 10. Microsoft has nothing planned for these phones, and there will be no updates in the future.
The other big players:
The Palm OS was one of the most popular OS from the 90s, this OS was found in the PDAs manufactured and marketed by Palm Inc. The now discontinued OS came with an easy to handle OS, which made the use of touchscreens easy. Furthermore, there was a personal suite of applications which allowed the users to manage their personal data.Later versions of the OS were even adapted to work with smartphones.
Although Palm had a lot of things planned, the ideas and the plans simply did not work as they should have. Palm’s marketing for Pre and Pixi were nothing to sneeze at. What’s more is that Palm did not allow developers to develop WebOS applications until too late. So, all in all, Palm’s downfall was just like BlackBerry’s and similar to what happened to Nokia’s Lumia series while they offered great functionality there was always something missing.
There was a time when BlackBerry enjoyed the popularity that Apple’s iPhone enjoys now, but now things have changed, and BlackBerry is a thing of the past now. The BlackBerry OS is a proprietary OS specifically made for the BlackBerry line of smartphones. The OS supported multitasking and was adapted in order to offer away to various features such as trackball, track wheel and touchscreens, as seen more recently.
The success of this giant began with its pagers, seen on the belts of lawyers, doctors and various other kinds of successful people; BlackBerry had made it possible for you to reach just about anybody. Then came BBM, a way to get in touch with everyone.However, when the world was evolving, and Android smartphones along with iPhones began dominating the markets, BlackBerry stuck to what it did. In 2013,BlackBerry did try to enter the game with its touchscreen, BlackBerry 10, butit was already too late.
The BlackBerry name still remains even today but is merely licensed to TCL to making Android-powered devices that are overpriced and just do not have the same appeal as the older BlackBerry’s.
Once the Symbian OS was the king of all OS’. Used by Samsung, Nokia and Motorola, this OS was one of the most popular ones, at one point. Nokia made use of the Symbian OS the most out of all the other brands and rose to prominence in the smartphone market.
However, right about the time, the iPhone came around, Symbian tech started to fall behind. The main attractive component of this OS was the UI, and iPhone had a better, bolder and slicker interface. However, the death of Nokia’s popularity and Symbian OS came slowly with the popularity of Android and iPhones, which were easier to use and had a ton more apps in their app stores.
Android, today is one of the most popular OS alongside iOS. However, the massive popularity enjoyed by these two does not simply stem from the ease use of the OS but also from the support of the developers.
As we just read about the other kinds OS that came around, and are no more, the only drawback was that they joined the race a bit too late or refused to change themselves quickly to adapt to the new generation. By the time Nokia made its come back with Android, or even brought in Microsoft, which offered top-end features seen in no Android or Apple phone, it was too late.
Furthermore, Palm and BlackBerry also decided to jump in a bit too late. By the time the other OS decided to join in, Android and iPhone had developed by leaps and bounds and was out their reach.
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.
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?
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.
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 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.
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!
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.
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.
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!
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.