Slashdot Mirror


Google Bridges Android, iOS Development With Flutter 1.0 (arstechnica.com)

Google has launched Flutter 1.0, the first stable release of its open source, cross-platform UI toolkit and SDK. "Flutter lets developers share a single code base across Android and iOS apps, with a focus on speed and maintaining a native feel," reports Ars Technica. From the report: Flutter enables cross-platform app code by sidestepping the UI frameworks of both Android and iOS. Flutter apps run on the Flutter rendering engine and Flutter framework, which are shipped with every app. The Flutter platform handles communication with each OS and can spit out Android and iOS binaries with native-looking widgets and scrolling behavior if desired. It's kind of like applying a "video game" style of development to apps: if you write for a game engine like Unity or Unreal, those engines are packaged with your game, allowing it to run on multiple different platforms. It's the same deal with Flutter.

Flutter apps are written in Dart, and the SDK offers programmers nice quality-of-life benefits like the "stateful hot reload," a way to instantly make code changes appear in the emulator. For IDEs, there are plugins for Visual Studio Code, Android Studio, and IntelliJ. Apps come with their own set of Flutter UI widgets for Android and iOS, with the iOS widgets closely following Apple's guidelines and the Android widgets following Google's Material Design. Flutter is designed to be fast, with its custom app engine running on Google's hardware-accelerated Skia engine. This means 60fps apps on Android and iOS and a path for 120fps apps in the future. This is a bigger deal on Android than it is on iOS.
The Google Ads app is already built on Flutter, which means Google "thinks Flutter is ready for prime time," writes Ron Amadeo. There's a list of other apps built on Flutter, too. Amadeo goes on to suggest that Flutter may be the path to Android's replacement. "Flutter ships its own app engine on Android and iOS, but in secret, Google is also developing an OS called 'Fuchsia' that runs these Flutter apps natively," writes Amadeo. "With Fuchsia, Google would switch from the Android apps written in Java to Flutter apps written in Dart..."

24 of 116 comments (clear)

  1. Not native by Anonymous Coward · · Score: 3, Informative

    These things never use the native look and are always slow.

    1. Re:Not native by Anonymous Coward · · Score: 4, Insightful

      Plus the developer needs to cope with bugs inherited from two platforms and the framework itself, just as in html5-crap. If one is writing a game engine, it is likely better to do it on a C/C++ and just add some native glue code for GUI. And if the app is mostly GUI, it is less hassle to write it in environments native language.

    2. Re: Not native by cyber-vandal · · Score: 2

      It's less hassle to keep two different codebases in two different languages in line?

    3. Re:Not native by Anonymous Coward · · Score: 2, Interesting

      Actually this compiles to native and uses the native look, running at about 60FPS. I've been developing in Flutter for about 6 months now and it works really well.

    4. Re:Not native by Anonymous Coward · · Score: 2, Interesting

      I've been working with Flutter since it was announced at Google I/O this year. I've been very impressed with the performance. In my opinion, it's bit slower than a Swift based iOS app, but actually faster than a Java or Kotlin based Android one due to the fact that it's 100% AOT compiling and there's no JIT involved.

      It's getting faster over time too. When I first started working with it, it was completely unusable on a GPU-less Android Things developer board I had. I tried recompiling yesterday. It's still slow (which is to be expected on a GPU-less developer board), but it's actually usable now.

  2. What's the over/under till Googl Drops this by Crashmarik · · Score: 4, Insightful

    The way they do just about everything else ?

  3. Origin Of Flutter by SuperKendall · · Score: 3, Funny

    "Flutter" is what the heart of your battery does when an app with the giant framework loads up.

    Kudos for making software development sound erotic though with "stateful hot reloads". You'd pay a few hundred $ for that in Vegas and here it is free!

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  4. how about this Hyper Text Markup Language ? by johnjones · · Score: 2

    honestly can we not just use web app for GUI development like Steve Jobs evanglised when they first launched the iPhone ?
    (native code if you must for OpenGL ES and specialist API's )

    maybe if google actually contributed to cordova so we could use their "app" on something with a fast keyboard as well as mobile :

    https://cordova.apache.org

    1. Re:how about this Hyper Text Markup Language ? by Actually,+I+do+RTFA · · Score: 3, Interesting

      I just want to get apps out of my HTML. Why can't we have a way of communicating over the internet that's safe and static. That way, I don't have to arbitrarily run code from 100 included sites (any of which may get compromised) to read your damn article.

      I'm all for SPAs like Facebook existing... and even running in the same browser. But I just wish they could have just been .js files navigated to (or whatever), so I can tell my browser not to go there unless it's whitelisted.

      --
      Your ad here. Ask me how!
  5. Please, explain it to me by Dutch+Gun · · Score: 2, Funny

    if you write for a game engine like Unity or Unreal, those engines are packaged with your game, allowing it to run on multiple different platforms. It's the same deal with Flutter.

    Thanks, Ars Technica (and Slashdot for the copy-pasta), for explaining to me how a software library works. I was completely mystified how they could pull off this wizardry otherwise.

    --
    Irony: Agile development has too much intertia to be abandoned now.
    1. Re:Please, explain it to me by mattyj · · Score: 2

      If you think the Unity or Unreal game engines are merely software libraries, you really don't know what you're talking about.

  6. This is the failed MicroSoft strategy by Actually,+I+do+RTFA · · Score: 4, Interesting

    Microsoft purchased Xamarin, a native cross-platform engine, that could export to iOS and Android (and Windows Phone). They gave it to everyone for free. Yet, it still wasn't enough to make people to develop enough software for Windows Phone to make it viable in the marketplace. I tend to think Fuscia is going to suffer from the same lack of software.

    A major difference is, unlike Google, MS supports their product line (you can still get Xamarin free). Whereas building an app on something that won't exist in 5 years seems silly. Also, Xamarin runs on .NET; this runs on Dart. I can find .NET programmers easily.

    So, I don't think this is going to work. But I wish them luck.

    --
    Your ad here. Ask me how!
    1. Re:This is the failed MicroSoft strategy by Zmobie · · Score: 2

      I instantly thought the same thing. I really don't see any secret sauce to make people want to use this framework when Xamarin is free, supported, somewhat established, and from a large vendor that will be much more likely to continue putting time and money into it. Just because Google's army of "lets use eclectic shit because we have money to burn" programmers decided to develop something in it does not mean it will catch on with everyone else. They are welcome to try, but my gut says dead on arrival...

    2. Re:This is the failed MicroSoft strategy by Actually,+I+do+RTFA · · Score: 2

      See, controlling 85% of all the smartphones in the world puts Google in a position to promote its own cross platform toolkit

      I don't see why Android's market penetration matters. They're trying to compete with Android with a new OS. That's the same position as Microsoft was in. I mean, maybe Google could sabotage Android to force people to move to Fuchsia, but I'm not sure that would work. More likely, it would cause an Android fork where Amazon or someone maintained it.

      Fact is, (almost) no one cares about a Google phone. But a lot of people are committed to an Android phone.

      --
      Your ad here. Ask me how!
    3. Re:This is the failed MicroSoft strategy by angel'o'sphere · · Score: 2

      Xamari is not really cross platform.
      If you ever had used it you would know that.

      Developers want one code base, not a platform where you still need to code versus native SDKs/libraries/APIs.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  7. Why not Qt? by Gravis+Zero · · Score: 4, Insightful

    Qt allows you to develop native applications with a single codebase for a whole host of platforms, including all the smartphone platforms you can think of and even include video acceleration. Even better is you don't have to learn a some bullshit language that Google will ditch in a few years because it's a C++ framework.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:Why not Qt? by should_be_linear · · Score: 2, Insightful

      Since it is C++ framework, you need to learn at least one bullshit language.

      --
      839*929
    2. Re:Why not Qt? by Rob+Y. · · Score: 2

      QT really needs a new sugar daddy. It was looking good when Nokia was a viable company and wanted to use QT as the basis for it's great new phone platform. If that had succeeded, QT might have ended up being truly free in all cases. I think it was Nokia that set it free on the desktop.

      Maybe IBM, with its billions to spend on the likes of Red Hat, should buy Trolltech and finish the job of setting QT free. Unfortunately, nobody develops new apps for the desktop any more, so QT is less useful than it could've been if it had been free back when single-source Windows/Mac/Linux development was a panacea. And maybe the mobile version of QT could still be viable in that role for Android/iOS. But given the choice between C++ and Java, I'd take Java most days. Given the choice of something less crazy complex, though, I'd take that.

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
  8. Cross-platform ad code by AHuxley · · Score: 2

    Always first with the ads for the real customers.

    --
    Domestic spying is now "Benign Information Gathering"
  9. Old news! Cordova/Phonegap rip-off by Anonymous Coward · · Score: 3, Insightful

    I have been developing native looking & behaving apps for ten years using JavaScript an HTML.

    Flutter is just a cheap attempt to get devs to use Dart, a language that's dead in the water since launch.

    1. Re:Old news! Cordova/Phonegap rip-off by Anonymous Coward · · Score: 2, Informative

      actually it's not. StackOverflow stats already show it being quite popular. I've been using it for about 6 months now and it's really good. And no it's not a cheap rip-off because Flutter is NOT HTML5/JS but native apps. And Dart is really easy to use.

    2. Re:Old news! Cordova/Phonegap rip-off by Arkham · · Score: 2

      actually it's not. StackOverflow stats already show it being quite popular. I've been using it for about 6 months now and it's really good. And no it's not a cheap rip-off because Flutter is NOT HTML5/JS but native apps. And Dart is really easy to use.

      The interesting part here is the statement that flutter produces "native apps". I think that's true in the sense that the code is compiled rather than interpreted, but it's false in that none of the UI widgets are the "native" ones provided by Apple.

      I've used Phonegap, Cordova, Corona, djinni, Xamarin, Appcelerator Titanium, Ionic, Sencha Touch, and React Native (and probably some others). All of them suffer in different degrees from the same thing. For most of them, they're using pseudo-native UI that looks like native until you use it, then you can tell it's painting widgets on a canvas or in a web view that just simulate the native ones. In a couple of cases (Xamarin, React Native), they do cross compile to native widgets, but you still end up creating bindings and bridges for every incremental release that adds something while you wait for the framework to catch up.

      Honestly, if I were seriously going to develop a cross-platform app today (and I do), I'd either go all native, or else write the core business logic in C++ and create bindings to a native UI. We've seen this work in the market (Dropbox), as long as your development team can do C++ well enough.

      --
      - Vincit qui patitur.
  10. Libraries by kbg · · Score: 3, Interesting

    There are major problems with this. Even tough Java isn't the greatest programming language (but then again no programming language is). The greatest benefit of using Java is that there are now gazzillions of libraries and utilities to do everything under the sun, no matter what you need to to do you know there exists some library available to do it, so you don't have to code absolulety everything from scratch. If you switch to a spanking new language it takes probably a decade or so for the community to get up to speed with available libraries and that is only if the language is popular.

    I hate all these new languages that are popping up, because there is nothing special about them, anyone can make a new programming language, that isn't the hard part. But the actual value of a programming language is in the availability of pre written solid working code that you can use in your projects.

  11. Been there, done that. by BenJeremy · · Score: 2

    Adobe did this with Air (ActionScript and Flash technology), and as the summary states, Unity, Unreal, and many other game engines also do this. Xamarin also does this (much the same way as Unity, with C#/IL as the layer closest to "the metal")

    You can make very serious apps with Unity, by the way... they don't have to be games - plus you get a pretty rich ecosystem of code (C#), support (Asset Store), and training.

    Why do big companies constantly try and re-invent the wheel, when the existing ones work quite nicely?