In March of this year, the first preview version of Android N was presented. While it exists as a beta and the date of the final release has not yet been determined (presumably, the OS will be released in the second half of 2016). On the main innovations and trends, now, at the beta stage, traced in the update, we talked with the first in Russia Android Google Developer ExpertDenis Neklyudov . And for those who want to meet in person, Denis will speak at the Mobius 2016 conference on June 4 in St. Petersburg.
- Hello!Please tell us in a few words about yourself and your work.
- Good day! My name is Denis Neklyudov. I work in a small company that develops mobile applications for financial organizations and start-ups. In the company, I take the team-lead position, specializing specifically in developing for Android. In addition to the main work, I participate in the recording of the Android Dev podcast , where we are at a professional level with colleagues discussing Google technologies and development in general. ')
- What does your Google Developer Expert mean?What does he give you professionally?
- I got the status of Google Developer Developer a year ago. As conceived by Google, the main task of the GDE expert is to connect the creators of the company's technologies and the ordinary developers who use these technologies. Accordingly, the expert can use early access to new developments of the company, has certain privileges when speaking at conferences, etc. Personally, the status of the GDE allows me to quickly receive information about technologies affecting my professional activities. I use it both at work and when recording Android Dev releases. And also engage in my favorite hobby: sharing knowledge with people at conferences, in podcasts and in articles.
- Surely you already had a chance to work with the preview versions of Android N. What is your opinion about the update presented as a developer?
- For a full-fledged impression is still too early, because at the moment only the second technical preview-version has been released, which is far from the final release. But the main features of the update and ideas are already visible. I can not say that Android N is an update that globally changes, breaks or brings something to the platform. This is another full-fledged annual update that adds missing parts and improves existing elements, like last year’s Marshmallow.
- The new version of Android N announced quite a lot of innovations.How relevant are they for the current level of mobile hardware development?
- There are no innovations that determine heavy loads on hardware (in particular, the processor and the video card) in the new Android. Yes, a multi-window mode has appeared, but Android devices have been working in a multi-threaded environment for a long time, when simultaneous launch of several applications and services in the background is allowed. So modern devices will not have problems with displaying two applications in multi-window mode. For those who work closely with iron, the most interesting thing is the API Vulkan, but as far as I know, it is also not that demanding on resources. Quite the contrary - it is optimized by working at a lower level and allows you to get more fps with the same hardware performance.
- It is believed that the interface of previous versions of Android is not very suitable for devices with large screens.Is it possible to say (according to the stated innovations and their implementation in the preview versions) that this problem will be solved in Android N, in particular due to the multi-window mode?
- In my opinion, the statement that Android is poorly adapted for large screens is speculative. Indeed, there is a narrow-minded opinion that applications on iPad (written for iOS) look nicer and more adapted for tablets than “tablet” versions of Android applications. But these are the nuances of the applications themselves. This is not due to the screen size, but with the UX when working with the tablet. Previously, perhaps, there were similar difficulties. But back in 2011, when Android 4.0 was introduced and one OS began to work both on tablets and on other devices, developers had the opportunity to create applications for tablets and phones in a single installation file (a single apk file). Those. The issue has been resolved. I do not think that the innovations announced will somehow drastically change the user experience from working with an Android tablet.
- Which innovations of the system, in your opinion, were the most expected by the developers?
“To be honest, I didn’t see some wow features that everyone dreamed about in the Android N lists of innovations (which one could say:“ Wow, we were waiting for this, and they finally did it ”) . The existing tools in Android are by and large enough, and it’s difficult to find fundamental flaws that I would like to correct. But I can note the most major innovations.
The first moment is not even a wow-feature, but rather the opposite, the next step of “tightening the screws”, which Google has been performing over the last few OS releases. It concerns projects within the OS, which deprive the application of resources when running in the background. In principle, this is a very logical step, since initially Android allowed the application to work as it wants and consume as many resources (as if the user had not opened it for a long time). But there are many unscrupulous developers working on the market who actively use the resources of the system, even when their application is in the background. And with each release (both in Android Marshmallow, and now in Android N), Google demonstrates a tendency to limit system resources, as well as access to the network, applications that have been available for a long time but not running, but running in the background. This is quite logical and allows you to extend the battery, saving the user from the headache that he has a bunch of services in the background that he had no idea about.
The second point is the long-awaited official support for the blacklist of incoming calls. It is most relevant for application developers contact managers or managers of incoming calls. Everyone knows that earlier, in order to implement blocking unwanted incoming calls in Android, it was necessary to perform magic with reflection, and this is not the most pleasant decision. Now, finally, the official API appeared. Important innovations that not all journalists are talking about, but the developers noticed right away - these are changes in security. Android N has an improved certificate entry that will allow you to make more secure applications that are less susceptible to attack by intruders. Another good addition is support for icu4j, which allows for various things with application localization (in particular, working with number formatting and other locale-dependent things).
- How can you comment on the transition to a new version of Java?
- This is a twofold moment. On the one hand, the transition to the new version is really needed. This is a natural process, we are glad that support has appeared. But the transition is not so expected. Many developers who have long dreamed of Java 8 chips have already switched to Kotlin from JetBrains, and Google does not object to this approach. Thus, they were able to realize themselves in a beautiful code. In addition, there is a project retrolambda, which allows you to use lambda when writing code in Java 7. It does not slow down the compilation process much, but it also speeds up development for those who like to insert lambda. In any case, talking about Java versions is a conversation about the beauty of the code. If a person thinks about product development, and not about self-realization in the purity of the code, all this is secondary. Therefore, the presence of new chips from Java 8 is certainly a positive thing; Thanks to Google for this. But many of the features of Java 8 will be supported only in Android N, and we will not be able to deliver it with the basic or minimum version - by that time Java 9 will be released, and maybe Java 10. And again, there will be some backports, alternative ways of using features .
- Are there any innovations that, on the contrary, will complicate the work, with the exception of the above-mentioned “tightening the screws” with resources for applications in the background?
- The cutting of resources is, in fact, the most important. Doze Mode, designed to ensure that applications receive fewer and fewer resources, is a key problem, especially for guys who have been holding open sockets for a long time, trying to get changes in the user's location, changes in network status, etc. Now they all have to keep in mind that the situation is changing and we need to switch to the built-in google message service and push notifications. Another thing that developers who are starting to write for Android N should worry about is the dynamic change in DPI. Now the user can change the DPI multiplier in his device on the fly, and the entire layout will suddenly change its shape. Therefore, the developer should make the maximum rubber interface during layout and take into account that the user can not only change the device to another, but also change the DPI multiplier on an existing device.
- Is the dynamic DPI change the “tail” of a multi-window mode?
- The postulate that developers should make a rubber interface is connected with rubber layout and multi-window mode, but the dynamic change of DPI is made more for people with poor eyesight. This will allow them not only to increase the font size, as before, but also to improve the entire interface, make it larger so that it is more convenient to view the individual elements on the screen. I would, for example, gladly, buying a grandfather a grandfather, would reduce the DPI value so that he could see everything on the screen.
- Only the second Preview version for developers has been released.Is it not too early to start transferring applications, especially the date of the final release of the system has not yet been set?
- It is important to talk about the categories of developers. If you are a pipeline developer who makes an application for a customer behind the application, then I don’t see much point in looking towards Android N and trying to explain to the customer what you need to lay it. Especially if we are talking about one-day applications for a 0.1 user. If you are a serious grocery company, and your product already has millions of users, then surely what to pull? In any case, you will have to support Android N. So do it in advance, at least on beta versions of your future releases. Get support and see how your applications will work, taking into account the limitations of the background mode, layout changes, etc. Moreover, if you have millions of users, then at least a small percentage of them will have Android N as soon as the release is released (or maybe they are already using beta). Why not please them with the support of new features and the adaptation of your application for this system?
- Have you noticed any problems in the SDK for Android N?
- As far as my colleagues and I tried, there are no special problems. You can take new chips and try to use them. True, as far as I know (maybe something has already changed), there is no full support for all the promised Java 8 chips in Android.
- In your opinion, is it now better for developers to focus on Android N right away or to look at more common versions of the system?
- If you start from the most common OS version on the market, then you need to develop a lollipop for Android 5.1 and not even think about supporting Marshmallow, because she doesn't have many users. But this approach is initially not true, because every day more and more users are updated. For example, Marshmallow has updated many Samsung flagships, and this is a huge number of users. Therefore, of course, you need to develop for the latest versions of Android and test both the previous and the most popular ones - this will always be a winning approach.
We invite habrovchan to the conference on mobile development Mobius 2016 (St. Petersburg, June 4), at which Denis will make two presentations: