LightBlog

dimanche 2 octobre 2016

Exploring Andromeda: A Look at the Challenges Awaiting Google’s Next Voyage

With the release of the Pixel and Pixel XL phones coming up, rumors abound that Google will be announcing a new platform based on Android enhanced by Chrome OS features, called Andromeda. Google has already started bringing features from one to the other (Android apps in Chrome OS, seamless updates in Android, etc.), but questions remain about how Google intends to gain market share in the laptop and convertible market.

Chrome OS already has a substantial niche in the education sector thanks to the low price of Chromebooks and their ease of use, but how will Google grow beyond that? How can Google use that niche to expand Andromeda to other markets? What can Google do to compete against existing laptop operating systems with long histories of native program libraries and users growing accustomed to the design language?

Pixel C Edge ImageDeveloper support is vital, and a major problem is going to be app development. Right now Android Studio does not run on Android or Chrome OS, but it will need to run on Andromeda if Google wants to succeed. With Chrome OS, everything is web focused, so you didn't really need a development environment for running anything locally (and development tools are limited). With Android, historically most devices weren't powerful enough to develop on, and developers typically didn't want to develop on smaller screens anyway. With Andromeda though, Google is targeting an expansion of Chrome OS's market share, by bringing Android (with some Chrome OS features added in) and the ability to run Android apps to the laptop and 2-in-1 markets. Full Android apps on, potentially, your primary laptop. If Google doesn't port Android Studio to Andromeda, they will be severely handicapping themselves. They would essentially be telling any developer that can only afford one computer "Too bad. We won't let you develop for our laptops while on our laptops." They would be directly harming the ability of the developers most interested in their products to develop for those products.

Google needs to make sure that it is easy for developers to get involved in the Andromeda development scene, and Google does know this. They've been pushing how easy it is to get into Android development for a long time (which is a big part of why they chose Java), and it has gone a long way towards helping grow the Android platform, and especially the platform's app store. They just need to keep pushing for it, they need to keep improving ease of use. Android Studio needs to be easy to install and update on Andromeda. It needs to run smoothly despite the low power processors (compared to what you see in workstations) that you will often see in Andromeda devices. It needs to be something that the students who will likely make up a significant portion of Andromeda's initial customer base will want to use.

Google has made it possible to run Android apps in Chrome OS, and that is helping to bridge the gap and ease transition pains by unlocking a huge repertoire of apps for the new OS, from both Chrome OS and Android, but even that doesn't come close to scratching the surface of the huge libraries that Windows, OSX, and Linux have (especially with Google discontinuing Chrome Apps). Andromeda will need substantial development to fill in the gaps, as even being able to do 90% of what people use their laptops for still means that for many people, Andromeda will not be enough.

office-suites-and-standardizationMany companies have ported versions of their desktop software to Android for cheap or for free (like Adobe Photoshop and Microsoft Word), albeit often with a reduced feature set, but will they block that version on laptops/hybrids in order to prevent cannibalizing their own desktop sales? What will Google have to do to convince them to target that market?

A developer may not want to sell a game on Andromeda laptops for $10, when the Windows/Linux/etc. version of the same game goes for $30. Some developers might split out the phone and laptop/tablet versions of the app into two different Play Store listings in order to try to keep their prices consistent in some ways. Andromeda will have a limited program library as it is, Google cannot afford to let it splinter.

If the program library problems weren't enough, Google is also going to have to deal with the issue of inter-OS compatibility if they want Andromeda to take off in the corporate world. Microsoft Office tends to not play nice with other office suites, often having issues with both opening and saving files in industry standard formats (which Microsoft claims to follow, but that's a different article), and Microsoft Office is extremely widespread. Google themselves have issues with it as well, with Google Drive sometimes struggling to export documents that won't lose key formatting when imported elsewhere. If Google wants to break Microsoft's hold on the office environment, they're going to have to take a shot at it from multiple levels. Just having a fantastic product alone isn't enough (as LibreOffice/OpenOffice has proven). Google needs to push for ODF support and for public adoption of open standards (especially at a governmental level), something that The Document Foundation has actually been seeing a lot of success with lately. Google needs to fight to ensure compatibility.

They also need to move beyond the web-first mentality of Chrome OS. We're already seeing it to some extent with the rumors of increased storage in the Pixel devices, and the increased focus on offline content (alongside Google's recently increased attempts to drive usage of their cloud services through things like Assistant). Most notably, earlier this week Google launched YouTube Go for offline YouTube viewing in India.

Alongside the launch, Sundar Pichai published an op-ed in The Economic Times where he talked about why there has been such a shift in Google's behaviour. Specifically, he noted that while many of the data saving features that Google has introduced have been targeted at India, they have become immensely popular elsewhere when brought to other markets. It appears to have made Google realize that much of the world (even in Europe and North America) isn't as ready for online-only content as Google may have hoped.

"Moreover, we learned the issues Indians may have with connectivity, and data constraints can be universal. We dreamed up Maps Offline for India, but people in the United States and Europe are finding it just as useful. Simply put, solving for India is inspiring new Google innovations. … new things built for and inspired by India that move us a few steps towards the vision of making the benefits of the open Internet available for everyone."

Sundar Pichai

That only begins to scratch the surface of the issues that Google will have to face if they want Andromeda to succeed. The user interface will be a huge issue as well. Just stretching phone apps up to laptop sizes won't cut it. Google needs to prepare for users using a mouse and keyboard. You have to look no further than Windows 8 (and even current Desktop vs. Metro Apps) to see a whole crop of issues that pop up with focusing too much one way or the other. Large tiles in the center of the screen and gestures swiping in from the top and sides of the screen are fine for a tablet, but don't work so well on a laptop with a mouse and keyboard. Small little icons to click on around the edges of the screen are great for a precise mouse and keyboard, but don't work so well for our larger fingers and a touchscreen.

Windows 10 Split Keyboard With Nuit Blanche HTC 10 Long Exposure Toronto BackgroundProper button placement can be defined extensively by what is easy to reach. On a phone, that might be the entire screen. On a tablet, the center may be harder, but the edges and bottom are still fine. On a touchscreen laptop, you may want everything in the bottom corners to minimize how far off the keyboard you have to raise your hand. User Interface is affected by device form factor, and we need to take it into account if we want Andromeda to succeed. We may need drastically different UIs when in laptop and tablet mode (much in the way Windows 10 handles it), which kills a large portion of the benefit of having one device (as it creates two UIs that the average person needs to learn for the same device). That's not to say that it can't be done well. If there are two separate UIs many people will choose to use it in desktop mode at all times (and vice versa), as both UIs will have their own unique benefits and restrictions. Yes, a single UI that is a happy medium is often ideal, but two UIs that coexist can be just fine, as long as they work together in sensible ways.

Speaking of touchscreens, not every Chromebook has a touchscreen, and if Google wants to continue to target some Andromeda devices to the absolute low-end of the market (like the sub-$100 Chromebook), then some Andromeda devices likely won't have touchscreens either. It can be an absolute pain to use certain Android apps without a touchscreen, and developers will get flak for it. It's just a reality, some apps won't play well with a mouse and keyboard, and unfortunately some developers will prevent Andromeda laptops from installing their app in order to avoid those negative reviews. We will need an extension of Material Design with clear guidelines on how to best target both touchscreen and mouse + keyboard devices. It shouldn't be a requirement, but there hopefully will be some information to assist developers in preparing their apps for this change (and Google might have to change their stance a bit on tablet specific apps as a result).

" Unless Google intends for every Andromeda laptop to be ARM based, they need to work on getting developers to port their native apps to x86, and binary translation doesn't cut it"

The hardware platform itself also has some issues. Unless Google intends for every Andromeda laptop to be ARM based, they need to work on getting developers to port their native apps to x86 (and potentially MIPS) as well as ARM. Binary translation just doesn't quite cut it, although we have seen some improvements over the years. The NDK and Vulkan are very powerful tools, and will only become more so if Andromeda really takes off and we see Andromeda in increasingly powerful computers.

Support for Android apps definitely will help with Andromeda's initial program library, but it is a double edged sword. Having no historical program library is a huge issue, but having Android app compatibility might just result in developers not coding for Andromeda, and instead just creating Android phone apps and hoping that it will work (or work out) on laptops as well (we already see this mentality with Android tablets). We saw this with BlackBerry 10, we saw this with Windows Phone, and we've seen this fail many times over. While we have to hope for the best, the general idea is one that has been tried, and which has failed over and over again. You can argue that it came down to implementation, but we'll have to wait to see if Google can find the right implementation. Even without the issues associated with using apps designed for touchscreens on computers with a mouse and keyboard, Android already has substantial issues with scaling. Using apps on tablets often has an insane amount of wasted screen space, frequently because developers (even Google) either don't fully understand how to use Android's scaling functionality, or don't care enough about tablets to implement it properly (given the current Android tablet market, we can't really blame them). If Google wants solid app support for laptops, then they need to find a major way to encourage developers to actually prepare their apps for the different device styles. They need a format that will work well on the desktop, and they need to push it heavily.

Screenshot of Top Paid Apps and Games Tabs on Play StoreMore importantly, Google will need to succeed somewhere that they have failed numerous times already. If Google wants Andromeda to take off, they will need to properly curate the Play Store. They'll need to make it possible to search specifically for mouse + keyboard optimized applications and touchscreen optimized applications. Phone optimized UIs, tablet optimized UIs, and laptop optimized UIs (which, admittedly goes against the "just let everything scale" mentality, but the differences between laptops and phones makes it necessary, as was mentioned above). People need to be able to find programs that actually work for them, and right now the process of discovering new apps on the Play Store is pretty bad. The "Top Charts" are filled with freemium games, flashlight apps, and even the occasional task killer still (the latter of which is outright harmful to your phone), although thankfully Google finally separated out apps and games into separate charts in August. You still see some embarrassing things while browsing the store though, like an app with a logo that was almost a palette swap of a competitor's logo making it into the top 40.

If Google cannot manage the Play Store more efficiently, then they may have to open up their platform a bit if they want to succeed. It seems unthinkable, but perhaps if Andromeda wants to compete against the vast library of programs available on other platforms, Google may have to target compatibility with the existing GNU/Linux software environment. Currently there are some very distinct differences between Android/Linux and GNU/Linux which prevent GNU/Linux programs from running on Android/Linux (namely the near complete lack of GNU libraries, although there are ways to install them if you are rooted), but the gap is shrinking. Google for years has been pushing code upstream where applicable (even if only just to reduce their code maintenance costs), and has been merging in features and potentially code in from Chrome OS (which uses a substantial amount of GNU libraries and can run standard GNU/Linux programs with a bit of tweaking). We have also seen Google go to great lengths to improve the graphics stack for Android (even dropping support of some devices at the last minute in order to add a requirement for Vulkan or OpenGL ES 3.1 in Android 7.0). While the stated reason is to improve the quality of games on Android and to make porting games to Android easier, it also closes the gap between Android/Linux and GNU/Linux a bit. With the recent major push by Valve to improve the Linux gaming experience, we actually see a decent number of AAA titles on Linux now, and having support for Dota 2 or Rocket League could make a huge difference for how the average user views the software situation on Andromeda. Then again, I don't think Google would be too happy to see an Andromeda devices shipping with an alternative program store like Steam.

Original IBM PC 5150That being said, there may be unintended benefits to merging code from Chrome OS into Android, and from the mentality shift that it brings. Android has struggled for years with some inherent differences between the platform and the traditional desktop environment. Namely, the fact that phones never had an "IBM PC Compatible" moment meant that there is a gross lack of standardization for both boot procedures and driver support. Google is trying to fix that to some extent with solutions like device trees, but a lot of work still needs to be done. Chrome OS is interesting in that a large portion of the devices using it ship with coreboot (as does the Android based Pixel C, which ships with a Chrome OS style boot image), which helps provide a specific platform for the OS to target. With Andromeda potentially following Chrome OS's model for its boot image rather than Android's, we may see Google attempt to leverage the existing Chrome OS infrastructure to make Android installations more modular, especially if the leaks that Andromeda will eventually be able to be installed on virtually any future x86, MIPS, or ARM device are true (which would tie in well with Google and Sony's recent work to provide enhanced theming support, which OEMs can use to apply their customizations).

"Two years of support just doesn't cut it. The support life of personal computers needs to be measured in many years, not a few months."

And that may be a key factor for Andromeda's future success. If Google can get carriers, OEMs, stores, foundries, etc. all onboard with the idea of having a single underlying OS (like Microsoft and Apple's products) with strong theming support and substantial extensibility (to allow OEMs to include their tweaks and enhancements), then they can completely change the update dynamic. No more waiting for OEMs and carriers to finish tweaking the update.

When Google pushes out the latest update, it would be immediately available for your device (assuming your device has the appropriate driver support of course, which will be highly dependant on development efforts like device trees). You could go and install it right away, and still keep your OEM themes as they would (theoretically) be built to hook into stable theming APIs.

Intel Pentium MMX Processor Logo 1993 to 1999For phones, that is nice, but for tablets and laptops it is crucial. You (hopefully) don't constantly carry your laptop with you at all times and don't drop it from time to time. Tablets and laptops are expected to last a lot longer than a phone is. Replacing them every two years isn't quite as common, and two years of support just doesn't cut it. The support life of personal computers needs to be measured in decades (best case scenario), not months. There are computers that launched in 2003 that can still run Windows 10, and don't even get me started on the ridiculous support life that Linux has (earlier this year Debian finally dropped support for Intel's 586 processors from 1993, and they're still going to be providing security patches for it until 2020). If Google wants to be taken seriously in the the laptop market (beyond the niche of Chromebooks), they are going to need an update model that is drastically different from what we see on Android, and Andromeda might just be bringing it.

Looking back knowing that Google has been working towards this since 2013, it appears almost obvious that many features were added with this shift in mind. From the substantial expansion of multi-user in 2014 (that never really was pushed after being expanded), to split screen, to the return of full support for SD cards, and a whole list of changes. Google has silently been preparing for this for a while, and hopefully that preparation will translate into platform success.

Remix OS Small LogoGoogle really need to look at where other OSes have failed to get an idea of what pitfalls this OS needs to avoid, but they also need to look at where other OSes have succeeded. Remix OS and Windows 10 give a feeling for how to succeed in the convertible space, and they draw from both ends of the spectrum in order to do it. Large buttons that are easy to hit and easy to read, but not without being huge tiles like in Windows 8. Interfaces that are friendly to both scrolling with your fingers, and scrolling with a mouse. Taking the existing UX that people are used to, and tweaking it a bit to fit touch screen implementation, rather than a complete overhaul.

Google definitely has their work cut out for them with Andromeda, but we may just see something amazing come out of it.



from xda-developers http://ift.tt/2dvEUbt
via IFTTT

Aucun commentaire:

Enregistrer un commentaire