Hacker News new | past | comments | ask | show | jobs | submit login
Android Studio 3.2 Beta (googleblog.com)
61 points by el_duderino on June 22, 2018 | hide | past | favorite | 28 comments



The whole package this year looks pretty good. A great step towards modernizing the clusterf*ck that has been Android Development.

JetPack is thoughtful collection of APIs along documentation, essentially providing solid guidelines on "how to write a modern android app". Good to see Google embarrassing Single Activity as well as reactive binding/view model patterns, and providing a standard way to implement it.

Then you have Auto.. I mean ConstraintLayout replacing all the other layouts, which is a good step forward too.

Android KTX looks good too, although it does seem to be a bit a odds with Anko? Or maybe not at odds, but looks like it has the same goal as Anko, to provide syntax sugar for Android Development in Kotlin. Could be interpreted as a "no" from Google in regards to Anko. As I really like Anko I wish there was more clear stance of what the future of Anko is.


ConstraintLayout is excellent in connection with TransitionManager APIs - so easy to animate layout changes and data updates now.


>Good to see Google embarrassing Single Activity

You probably meant "embracing", but a funny autocorrect nevertheless.


I wish they would focus on backward compatibility of their IDE instead, every time I upgrade I need to spend several days on SO to figure out how to work around the newest breakage. This is from a part-time developer who doesn't have the time to keep up with the CATD[0] development model of Android's APIs and UIs.

[0] https://www.jwz.org/doc/cadt.html


Reminder, links to JWZ.org from HN will have NSFW results.


Funny how android studio helps you develop in 1 way : developing non-native java apps.

The two ways people develop apps seem to be going fully native, or using web "masks" like react native, outright web directly, or something like apache cordova. Neither of which seem to be the focus of android studio.

Curious.


>Neither of which seem to be the focus of android studio.

I think the decision is a layer below "Android Studio" -- or -- it depends on how you slice & dice what Android Studio is.

If you look at the ancestor of Android Studio as being IntelliJ, Jetbrains (not Google) did make a version of that IDE (CLion) for C/C++ native.

However, if you look at the Android operating system philosophy, it seems like Google (Andy Rubin) decided that a Java-like (Dalvik) VM is the 1st class programming model with native C/C++ (NDK[1]) being 2nd class. The Android Studio being Java-focused is just a downstream side effect of that.

[1] https://developer.android.com/ndk/


Um, Android Studio actually has the CLion C/C++ module intergrated for NDK.

I think the author of the post is complaining about lack of JavaScript or similar support in the IDE :)


>, Android Studio actually has the CLion C/C++ module intergrated for NDK.

Right, but I was responding to gp's question about "focus" of the IDE and not just about the extended capabilities (plugins) for NDK.

The "focus" of Android Studio is Java and example of that is when you click "New Project", you will get "MainActivity.java" as the starting file. You don't get "MainActivity.cpp".

In the full Clion IDE (not the CLion plugin), the focus is C++ because the "New Project" auto-generated file is "main.cpp".

>I think the author of the post is complaining about lack of JavaScript

The gp used the phrase "neither of which" that seems to refer back to "two ways" and therefore it includes question about native C/C++ being a possible "focus" for Android Studio.

I'm saying that whether Android Studio evolves to write "MainActivity.js" (Javascript React/Cordova) or "MainActivity.cpp" (C++ native) -- it is a philosophical decision outside of Android Studio. In other words, the Dalvik/Java VM as the foundation seems to dictate the programming tools' "focus". Maybe if Google makes a drastic change to Android and make the V8 engine the underlying runtime instead of Dalvik, the "focus" of Android Studio would then switch to "Javascript".


Android is a Java based OS, the NDK is there to implement native methods just like we used to write inline Assembly on the good old days.

Even what is called a native activity isn't really one, because what Google did was standardize a common pattern many were doing before as android.app.NativeActivity, with a bunch of native methods that the .so is expected to expose.

And android.app.NativeActivity is pretty thin anyway, because it doesn't provide a good way to work with permissions or SAF from native code.

Given that they locked down the NDK on Android 7, require JNI for like 80% of the APIs and Brillo was rebooted as Android Things, that says pretty much how they see the NDK for general use.

Which is why most NDK users keep implementing their own versions of NativeActivity anyway.


Sorry, are you saying that Android Studio helps you develop in a way that is unused or unwanted?

Because if so that is quite wrong. The overwhelming majority of Android apps, existing and under development, are made as traditional byte code apps. Among more intensive games, things like game engines are more common (e.g. Unity, Unreal Engine, etc), but that's a specialized case.

As to the web apps, that remains kind of the worst of all possible solutions. People who are wed to the traditional web often ply that course, but it certainly isn't most common.


>Funny how android studio helps you develop in 1 way : developing non-native java apps.

How are Java/Kotlin apps non native in Android when they're first class languages that are compiled to native code? AS also supports Android C/C++ development if you need bare metal speed and complete control.

>The two ways people develop apps seem to be going fully native, or using web "masks" like react native, outright web directly, or something like apache cordova. Neither of which seem to be the focus of android studio.

Last time I viewed the percentages of what frameworks Android apps were developed in these web based frameworks ranked extremely low.


Sounds like you have no clue what you are talking about.


Since Android 5, Java is quite native on Android.

Android Studio has the C/C++ plugins from CLion if that is what you mean.


May be that is a good thing.

The worst possible IDE in any world + the worst possible build system in any world = Android Studio.


It's funny that I think the opposite: Idea is the best IDE in the world and Gradle is very good build system.

I know very little about Android development, though.


Seriously, IDEA is absolutely fantastic. From it I'm a huge fan of their sibling products as well (GoLand, CLion, etc). I come from a hugely varied history of IDEs, including Visual Studio, NetBeans, Eclipse, and every one of the so-called light ones, and I would pick IDEA in a heartbeat.

People can shit on how Google integrates with it, but the IDE itself is top notch.


You have obviously not tried enough IDEs!


It's been a while since I've done much Android development, but from what I can recall, Android Studio/Gradle seem to be a major improvement over Eclipse/Ant(?).


I've been a fan of PyCharm - AS that much worse?


Love PyCharm too, AS so far was a nightmare, mostly because of gradle/jvm/whatever breaking down, but AS often does NOT help, where it could.

Also saw regression creep in in more and more other intellij products.


I dont think AS is the problem. Android SDK + Build System + Emulators are just not good enough.

If it works the first time you are lucky, if it breaks you are on your own.


Anectodally, but most of the breakage around Android build system I see online and with people I mentor is because they don't actually bother to read the first thing about how their build system works.

It's like people would use npm without ever reading how the package.json file is structured... and then complaining how everything is broken because their copy-pasted internet text broke the build.


This is my experience also. People not fluent with Gradle or just don't want to invest the necessary time in learning how it works just cut and paste stuff into it and wonder why it doesn't work anymore.


Perhaps a build system shouldn't need people to invest so much time into learning it. There must be a better way than all those Gradle API's and all that Groovy syntax.


That's a nice sentiment, but you really can't be an engineer in any kind of software development without having an understanding how your software is put together. Especially if you want to do things like builds for different flavors, customize branding or do any kind of changes in the build process.

Some minimal standard of competence and knowledge is required for you to basically function.


I agree. I was talking about the needless complexity of Gradle and Groovy in handling a build, not the inherent complexity of a build itself. Builds can easily be described declaratively, as shown by Make and Ant, and this was a major step forward for the science of build descriptions. Gradle and Groovy, however, provide a procedural description of builds, with the apparent intention of generating technical debt in user IT land, and then selling them consultancy services and courses.


>I dont think AS is the problem. Android SDK + Build System + Emulators are just not good enough

My AS Emulator starts in about 20 seconds from a cold start and in a couple seconds from a saved image state.

>If it works the first time you are lucky, if it breaks you are on your own.

The people that work on the AS Emulator are on the Androidev reddit quite regularly to answer any questions regarding new releases.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: