Android Studio 3.0 has released, and most Android developers seem happy about it. There are so many new features and improvements that updating your IDE to this new version is clearly a new brainer!
Android Studio should have prompted you to update to 3.0. If it hasn’t done so, then go to ‘Check for updates’ in the menu bar to do so.
Once you launch your project in 3.0 for the first time, Android Studio will tell you that there is a new version of the plugin to update to. You can continue to use your project as it is, but you will miss out on many of the new features and improvements until you update. Simply, follow the prompts to have your project updated to version 3 of the Gradle plugin and to use the latest version of Gradle 4.
There is an endless list of new features and improvements in Android Studio 3.0 and in the new Gradle plugin.
Though this list is long, it still doesn’t cover all the features of Android Studio 3.0! If you are interested, you can check out the full release notes on the Android developers website.
In this post, I will only be focusing on a select few features of Android Studio 3.0:
I will also write about Kotlin and how it is different from TypeScript.
Android Studio 3.0 now lets you build Instant Apps. Android Instant Apps enable native Android applications to run on your device by launching a URL. Simply put, you can run an app on your device, without having to install it!
With Instant Apps, users can use a single feature of an app without having to install the app with all its other features. When users request a feature from an instant app, they receive only the code necessary to run that specific feature, no more and no less. After the users have finished using the feature, the system can dispose of the features’ code.
To provide this on-demand downloading of features, you need to break up your app into smaller modules and refactor them into feature modules.
When you build an instant app project, the build outputs are Instant App APKs that contain one or more feature APKs. Each feature APK is built from a feature module in your project and can be downloaded on demand by the user and launched as an instant app.
The New York Times created a simple, but highly effective user experience: once you click their URL, you are immediately able to play the daily mini crossword puzzle. If you then want to continue playing puzzles, you can play one of the other free puzzles, wait for tomorrow’s daily puzzle, or subscribe using Play in-App Billing to access even more puzzles.
This Instant App has been used more frequently and those using the instant app have more than doubled the number of sessions. The more time someone spends in the app, the more likely they are to subscribe and remain a user, so this is an important metric for the team!
Check out more Instant Apps here:
Apps to Try Now - Android Apps on Google Play_Enjoy millions of the latest Android apps, games, music, movies, TV, books, magazines & more. Anytime, anywhere, across…_play.google.com
The new Android Profiler window in Android Studio 3.0 replaces the Android Monitor tools. This new tool provides real-time data for your app’s CPU, memory, and network activity.
You can perform sample-based method tracing to time your code execution, capture heap dumps, view memory allocations, and inspect the details of network-transmitted files.
ConstraintLayout
allows you to create large and complex layouts with a flat view hierarchy (no nested view groups). Just like [RelativeLayout](https://developer.android.com/reference/android/widget/RelativeLayout.html)
, all views are arranged according to relationships between sibling views and the parent layout. The only difference is that ConstraintLayout
is more flexible than RelativeLayout
and easier to use with Android Studio’s Layout Editor.
To learn more about ConstrainLayout
, click here:
Build a Responsive UI with ConstraintLayout | Android Developers_ConstraintLayout is available in an API library that's compatible with Android 2.3 (API level 9) and higher. This page…_developer.android.com
Kotlin is a statically-typed programming language by JetBrains that runs on the Java virtual machine and also can be compiled to JavaScript source code or use the LLVM compiler infrastructure.
Android Studio 3.0 lets you code in Kotlin! In fact, Google has even deemed it as the First Class Citizen for writing Android Apps!
The reason for such a major decision was that Kotlin code proved to have:
As I said before, Kotlin is a statically typed programming language. A language is said to be statically typed if the type of a variable is known at compile time.
For some languages, this would mean that a programmer needs to specify the type of a variable before using it in the code.
Kotlin uses an aggressive type inference to determine the type of values and expressions for which type has not been stated.
TypeScript was created to provide type safety to JavaScript. Kotlin also helps you achieve this goal, and in addition, Kotlin provides the best of JVM and the web.
TypeScript is a superset of JavaScript. So basically, it is JavaScript. This makes it easier for JavaScript developers to shift to TypeScript.
Kotlin, on the other hand, is a completely different language that runs on the Java Virtual Machine (JVM). And though Kotlin can be compiled to JavaScript, the question one has to ask is to why should a developer go through the hassle of learning a completely different language which can be compiled down to JavaScript, when we have TypeScript: which is JavaScript but with the added type safety.
But while TypeScript aims to replace JavaScript, Kotlin has much bigger plans of becoming full-stack for creating apps!
Also, Kotlin has features like built-in null safety that gives it an edge over TypeScript.
If the above arguments have confused you even more and now you don’t know whether to use Kotlin or TypeScript, here is a comparison between the syntax of the two languages based on several fronts:
// Kotlinvar myVariable = 42myVariable = 50val myConstant = 42
// TypeScriptvar myVariable = 42;myVariable = 50;val myConstant = 42;
// Kotlinval explicitDouble: Double = 70.0
// TypeScriptconst explicitDouble: number = 70;
// Kotlinval label = 'The width is "val width = 94val widthLabel = label + width
// TypeScriptconst label = "The width is ";const width = 94;const widthLabel = label + width;
// Kotlinval apples = 3val oranges = 5val fruitSummary = "I have ${apples + oranges} " + "pieces of fruit"
// TypeScriptconst apples = 3;const oranges = 5;const fruitSummary = `I have ${apples + oranges} ` + "pieces of fruit.";
I am Rajat S, a Technical Content Writer at GeekyAnts. An aspiring coder who has a long way to go. A Die-Hard DC Comics Fan who loves Marvel Movies. 😛 Follow me on Twitter to know more about all the amazing things that are happening at GeekyAnts.
Thanks to Rahul Raj, who is a Software Engineer at GeekyAnts.
And thank you for reading! Please do 👏 if you liked it.