Google I / O 2018 through the eyes of a mobile game developer + follow-up recommendations
In May, together with CTO Pixonic Sergey Zhdanov (I am on the left, he is on the right) visited Google I / O 2018 in California. I wanted to look at trends, technologies, talk with developers (I was also going to participate in Codelabs, otherwise I could not get there last time). In general, when compared with last year, Keynote was not so impressive, but still there is something to tell about the results of the conference.
I won’t repeat that I’ve already heard everything, but I’ll tell you what interested me as a developer of mobile games, and it would be useful to know others. Let's start. ')
What is interesting in Android
Firstly, Android P was announced - now it is in beta, but you can already download and see how your application will work on it.
Now from the interesting:
The most important, in my opinion, announcement is the Android App Bundle and Dynamic Delivery . They make it possible to split apk applications into many small apk for different devices. Those. You load one “bundle” into the story, and the story already splits it into apk depending on the processor, OpenGL version, languages ​​- and the smaller version of your application (similar to App Shrinking on the App Store) is downloaded to a specific device. Some applications (for example, Duolingo) were able to reduce the size of the build by 2 times.
The main limitation for developers: “Android App Bundles do not support APK expansion files.However, on Google Play, there is still a requirement for the size of a downloadable application of 100MB or less . ” In addition, in Unity games, all resources are packed in asses, there is no native mechanism for separating them according to screen resolutions and languages. The only thing that is useful to us is the separation according to processor architecture. And at the moment, the build requires the use of Gradle 3.2.0-alpha , so it is advisable to wait for a stable version. You also need to enable the Google Signing App.
Battery Profiler. A new type of profiler, which allows you to figure out how your application eats battery.
App Time Limit. Allows the user to limit the time that he spends in a particular application. Those. if the user decides that he will spend no more than 23 hours a day on your wonderful three-in-a-row game, he will only be sleeping an hour a day more than that time on his phone on his phone. We investigated the question of the existence of an API of the type Kakimlim PostavilUzer () . Total is obtained: - in UsageStatsManager, you can see which category the application belongs to by frequency of use; - for applications with low priority, push notifications come with a delay; - background processes rise less frequently; - More information yet!
Dynamic features. What is forbidden on iOS is possible on Android. If you do dopfichu (code / library / assets / anything can be attached to it) and it is not so important and not often used, then the user can “reload” it later. Those. he enters the application, sees the feature and if he wants to use it, then loads it from the side. It also allows you to reduce the size of the downloaded apk and speed up the launch time of the application, and thus reduce the login threshold for the user. Instead of Dynamic features, game developers at Unity can use a resource system. And do not forget about the limit of 100 MB per bundle, if you still use the Dynamic feature. Unloading features that are no longer needed is also possible.
Android Jetpack. So they called a set of libraries and tools for developing for Android - Android Studio 3.2 , libraries for testing and many other things. From pleasant - unrealistically quick restart of the application in the emulator (rises from snapshot'a).
Kotlin. For the second year in a row, Google promotes Russian rapour Kotlin . I went to Codelabs, made four labs there: one at Kotlin and three at Java - and felt all the pain and suffering when switching to Java. Kotlin is really simpler and more convenient (I myself program mainly in C #).
App Actions. A group of features, of which the most interesting is Action Links - essentially a deep link for your application with metadata that is passed to the application. App Links need to be supported: to teach the application to open certain content by reference. Next, an actions.xml file is created that describes what the application can do, what actions it performs, and how to wrap these actions in the link inside the application.
Action Notifications. This is a great opportunity to send notifications to the user, even if he does not have your application installed (another way to attract new users or return old ones).
Firebase Predictions. Now it will be possible to predict on the basis of events from the user in the analytics, for example, whether he should offer a certain purchase.
DisplayCutout. The ability to get info about the cutouts on the screen under the camera. With the advent of the iPhone X, a lot of cut-out smartphones have appeared, even with well-known brands like Asus. And these cuts should be taken into account when imposing UI (as we do for the iPhone X, read here ).
Requirement to use API Level no lower than 26 from November 2018 and mandatory support for 64-bit applications from 2019. For developers at Unity, this means a mandatory transition to IL2CPP on Android.
What's new and useful in the Play Store
There was a separate session on how game developers can be successful on the Google Market. Be sure to look, there are a lot of useful things for developers, marketers, analysts and product owners. In short:
Internal Test Track. Similar functionality of Internal Testing is in TestFlight on iOS. Previously, it took several hours to lay out the build, add testers there, and they got this build. Now it will happen in seconds. Add your internal testers, publish the build and they immediately get access to it.
Early Access. If you have a soft lunch, you can add to the Early Access program. This is a separate section on Google Play, and players will be able to find your application on the stack and get early access to it - to become beta testers.
Open Testing. Also beta testing, the user gets access to a possibly unstable version of the application in exchange for early access to the newest features. The developer gets the opportunity to collect feedback without harming the assessment for the application, since reviews and user ratings will only be visible to the developer, they will not be taken into account in the account. Very comfortably.
Pre-Launch Report. When you download apk to the Play Store, it runs a series of tests on real devices and displays the primary metrics - the dimensions of the application parts, how much it is loaded on different devices, and other important metrics for the developer.
Updated Device catalog . For example, a clause was added, why your application does not support this particular device and what needs to be done to fix it.
Pre-registration. As it was with Mario Run, you show in advance that the application will be available soon and allow them to register 1-2 months before the release (during the release they receive a notification). Google claims that some gaming companies that have already tested Pre-registration have been able to increase conversion to installs and lower the cost to attract players.
Organic Acquisition Insights. Now you can find out from what sources organic materials came to your application page in the store - it is also very important for marketers.
Play Instant Games. It's like Instant Apps, only for mini-games (the size of the build is no more than 10 MB). A separate button appears on the game's page in the store, which launches the game in just a few seconds. An important trick - the Instant Play button can be embedded directly into an advertisement, the result of a search query, or throwing invites to friends - he clicks on the link and almost immediately starts playing on his device. In the case of Unity is not very relevant. The minimum Android build I could achieve on Unity 2018.1 is 8 MB. But Unity announced Unity for Small Things , which will be available from 2018.3. There are lightweight physics, graphics, ECS and only 2D. We tried to build the Instant App from Unity, but the build took more than 20 MB and does not work (it crashes on the initialization of the Unity Player due to the error of the unavailability of a write operation in the Instant App mode). So for us this is not yet an option, we will wait for Unity.
Live Ops. Allows you to display in-game events and promotions directly on the project page in the store. For now, Google is just experimenting with this, but in the future, when you click on a message, you can launch the application and immediately get to the event screen.
Code labs
This year I finally went to Codelabs - this is the format of laboratory work (as in school). The workplace is issued iMac with installed Android Studio and Unity, connected by Google Pixel and a clock (and in some cases a set of Android Things ). Next, choose one of the topics and for about 45 minutes to get acquainted with her. What did I do:
I wrote a simple Android application on Kotlin.
I programmed a weather station with a sample of data from temperature and pressure sensors and displaying them on the connected display of the IoT kit.
Familiarized with unit and UI tests in Java for an Android application with a complex UI.
I used the ML Kit (local and cloud versions) to recognize text in non-Latin languages ​​using a mobile device camera.
I really liked the format. Allows you to probe the tools, features, quickly learn how to do something really useful. I think it would be nice to go to conferences of other major market players, for example, on Unity Unite. One could try, say, the new Rendering Pipeline and quickly learn to cook something on it. Recently, Digital Dragons communicated with Unity - threw the idea to them.
Bonus
At one of the I / O sessions, our flagship project War Robots was mentioned, it was nice. Pixonic developer Andrei Gruzinov adapted the game for Chrome OS, and the guys from Google on I / O urged everyone to do the same (see from 04:28, there are only 15 seconds).
PS In general, I liked this Google I / O. And now the most interesting thing - what do you remember and what will you use?