Google to power Java-free Android apps with DART language
Java is the language used to normally write non-game Android apps. However, a group inside Google is exploring a whole new way of writing Android apps using Dart, Google’s in-house Web development language. It’s Android apps with no Java, a focus on speed, and deep unification with the Web.
The biggest goals for Sky is to be fast and responsive. The smoothness standard most devices and app developers aim for is 60FPS (or Hz). However, the Dart team wants to raise that up to 120FPS, which is not even possible to show on the standard 60Hz smartphone screens that we have today. It sounds rather unlikely to happen on Android, where many apps don’t stay at 60FPS, leave alone 120. To provide an app at 60FPS, a frame is required to be drawn every 16ms, and apps “jank” or display an animation stutter, when they are unable to meet the 16ms deadline.
A demo app was brought by the Dart team, which provided entire frames in 1.2ms. Although, it was a simple example, it seems like Sky has plenty of space for silky-smooth animation on more complexed apps and makes that 120FPS goal (8ms rendering time) look like a possibility. According to the Dart team, Sky is “Jank-free by design” with APIs that don’t obstruct the main UI thread. In other words, in the event the app slows down, the UI would still be fast and responsive.
Sky’s Web background moves over to the mobile space. It’s platform skeptic—the code can run on Android, iOS, or anything with a Dart VM. Apps work a little like websites, too. While there is a bare-bones Android APK, the majority of the app is served over HTTP, letting continuous deployment where all of them always run the newest version. Everything is internet aware, as URLs form the base layer of DART. However, the flip side to this is that the demo app cannot be used if you are offline. Also, the app takes a second or two to start because it needs to download data. Though both of these could be solved with caching.
Development is a lot easier if it served over HTTP. Instead of editing code, compiling, and installing the new app, code is edited on the HTTP server. Then the app just needs to be closed and opened again to “refresh” it with the new code. It’s more like a Web browser. Sky Framework is available for Android development, which gives a whole bucket of Material Design widgets, that allows the developers to easily add action bars, touch effects, navigation panels, and all the bits one would expect in an Android app.
Just like a normal app, Sky apps have full rights to Android privileges and APIs; however, it raises a big security question when it is merged with the automatic updates from a Web server somewhere. At this point of time, Sky is just an experiment. Hence, questions like this need to be responded before Sky becomes a serious Android app solution. The group’s GitHub page says “We’re still iterating on Sky heavily, which means the framework and underlying engine are both likely to change in incompatible ways several times”. With Sky’s concentration on speed and unusual way of doing Android development definitely makes it look like something to see in the future.