4 ms·
Didn't Google win the lawsuit with Oracle? I never understood why they do not track the OpenJDK versions. I don't work on Android apps.. but it seems mildly in
by geokon 10mo ago
Didn't Google win the lawsuit with Oracle?
I never understood why they do not track the OpenJDK versions. I don't work on Android apps.. but it seems mildly insane to basically have a weird almost-Java where you aren't even sure if you can use a given Java lib.
Ex: I just took a look at a dependency I'm using
https://github.com/locationtech/spatial4j https://github.com/locationtech/spatial4j
Can it be used on Android..? I have no idea
From what I understand it's a weird stack now where nobody is actually writing Java for Android.
I'm still waiting for the day I can write a Clojure app for my phone..
(and not a Dart chat app.. but something actually performant that uses the hardware to the full extent)
- refulgentis 10mo ago> I never understood why they do not track the OpenJDK versions. I don't work on Android apps.. but it seems mildly insane to basically have a weird almost-Java where you aren't even sure if you can use a given Java lib. NIH syndrome > (and not a Dart chat app.. but something actually performant that uses the hardware to the full extent) I used to work on Android, quit two years ago and have used Flutter since, it's a breath of fresh air. It does use the hardware to the full extent, imo it's significantly more performant: it does an end-around all the ossified Android nonsense.
- geokon 10mo agoHmm, so if you wanted to make an AR app, or some audio processing app, would you do that in Flutter? All the projects I have in mind involve using the camera/microphone/gps etc. Looking at Dart sample projects it just seemed to be quite different from what they're aiming at
- refulgentis 10mo agoMy caffeinated instinct is to say basically "yes I'd do anything in Flutter", I honestly would rather stop coding than go back to anything I've done before (ObjC/Swift/Java/Kotlin with side journeys in C++). It boggles my mind how much of a different job dev is with true hot reload. More carefully, and dealing with what you're indicating more directly: There's stuff that we just need every millisecond of performance from. Generally, Dart's great, I don't notice any difference between iOS / Android standard UI platforms. But...for example, Flutter's image decoding is actually using "native" code behind the scenes, i.e. calling into C or OS-level APIs or browser APIs as needed on each platform. And there's a Flutter package called "image" that's Dart-native but I abhor because I know it's going to be higher latency than going thru lower-level code. (now I'm wondering how Java does this...I wonder if its JNI...) Let's do a scenario: I've been contracted to build a bus route app for the local gov't. They want an AR feature. What happens if I choose to build on Flutter, build out the basic features, then get to the AR, and I'm getting 5 fps?" Solution to that is "plugins" - https://docs.flutter.dev/packages-and-plugins/developing-packages https://docs.flutter.dev/packages-and-plugins/developing-pac... - the intro to the doc is way out of date, like years. TL;DR is you can drop in C / Swift / Java / whatever easily as needed. You can get a sense of what that looks like from my package for doing ML inference here: https://github.com/Telosnex/fonnx https://github.com/Telosnex/fonnx, specifically https://github.com/Telosnex/fonnx/tree/main/lib/models/minishLab https://github.com/Telosnex/fonnx/tree/main/lib/models/minis...: X_native.dart shows us calling into shared C code on every non-mobile platform. On mobile, I have to take a dep on specific packaged & code signed libraries provided by Microsoft for ONNX. Then, I (AI, at this point) writes Swift and Kotlin to call into that library. (Swift: https://github.com/Telosnex/fonnx/blob/main/ios/Classes/OrtMinishLab.swift https://github.com/Telosnex/fonnx/blob/main/ios/Classes/OrtM..., Kotlin: https://github.com/Telosnex/fonnx/blob/main/android/src/main/kotlin/com/telosnex/fonnx/OrtMinishLab.kt https://github.com/Telosnex/fonnx/blob/main/android/src/main...) This might feel convoluted at first, it did to me, but really, all that's going on is: when things are slow, we write a Dart interface, then for each platform where we want to use native code, provide impls of that interface in native.
- aquariusDue 10mo agoRE: Flutter Yeah, I'm currently developing a Flutter app and also using flutter_rust_bridge to separate the business logic and I can hardly believe how enjoyable it is. Other than the initial project setup which is a me and Nix flakes problem it all comes together pretty smoothly.