Flutter – A mobile app SDK for iOS and Android
flutter.io
flutter.io
User acquisition got so insanely expensive for apps that there are few to none business models where you can justify or break even the user acquisition costs.
I'll add that even after acquiring a user, engagement, apathy, and not being a 24-hour uninstall statistic are close seconds.
I'm working on a solution that's currently in private beta but it should be in public beta in a few weeks.
The only thing is that the gold rush of the app stores is gone.
The next site ia just ONE single click away. The next app is few clicks and a download away, even without any sign-up, an app install is a gigantic conversion breaker. This is not comparable with websites at all. Anyone who does new apps in 2017 must have a good plan.
* Are you providing enough value?
* Are you charging enough for it?
Of course there might be use cases which have a healthy CAC to LTV ratio. But almost none of them is B2C, except scammy dating apps and addictive fremium games. And some one-hit-wonder games which cannot replicate their success.
On the B2B side it's a bit better because of higher LTVs but all B2B apps have a web version where leads are generated anyways. So, mobile is just complementing but not in the user acquiring role.
But maybe you tell us if you are so lucky and have a, from a business-POV working, app which provides enough value and charges enough for it AND can acquire users for less than their LTV. Give us your example, we are curious to hear how you make money in the app stores (which is just hard to believe).
This, to my mind, also means that small paid apps indeed is not a reliable market. Either you need to go viral (a rare stroke of luck), or you have to complement an existing business of some sort (and it has a web site which is a powerful lead generator, this goes without saying).
So no, I don't have a good example, for these very reasons. When I will have executed on a a million-dollar idea (which is, of course, peanuts for a startup but could be a great side project), and it would happen to be in the mobile-only space, and won't be a freemium game, I promise to write a post.
Flutter looks pretty different from React Native on one side and Cordova/webview based frameworks on the other side. Flutter is not based on webviews, but is also not using the native widgets but instead rendering custom widgets.
To me, this is a little weird. One of the downsides of Webview based apps is that it's harder to align with the native OS look and feel. React Native solves this problem, but Flutter clearly has the same problem.
I recently prototyped an app in both Flutter and React Native. React Native feels incredibly fragile. Half of the month spent on a React Native app has been spent fighting with React and finding the right combinations of node and npm versions. Update some component and everything can fall apart.
Flutter's developer ergonomics are so much better. Time to first-running code was faster, and time spent due to broken shit outside my control was way smaller.
Isn't there a way to "publish", "expose" say text and other information to the system? I believe for example Windows has this, and Qt on the desktop can use it (although there were still complaints, that some really popular brand of braille reader was not working).
Simply curious, as long time ago I was heavy proponent of native only widgeting systems (like wxWidgets), but lately in favour of self-drawn one, but imitating the interface (like Qt).
"Flutter has basic support for accessibility on iOS and Android, though this feature is a work in progress."
https://flutter.io/faq/#how-do-i-do-internationalization-i18...
You should file bug reports with Apple to enable that.
If you use a lot of Interface Builder (IB), then your localization support stems from all the basic UIKit widgets having support for localization built into IB, and in that case you'll end up building custom components on top of your UIKit blocks, and localizing via IB.
One of the views in an app I work on (a Settings view) also uses some plists to generate the table, so we end up having a bit of code to generate the NSLocalizedStrings for the stuff that's not actually in the source code.
I'd agree with that in 2014 but this has been much less of a problem since the last few years. The fast pace of mobile OS's have slowed down to a halt. IOS has pretty much the same looks since version 7, Android since version 5.
The metro/material/flat design fashion has been the best thing for cross platforms apps, be it desktop or mobile, any platform or any framework.
Flutter seems to be at the right place at the right time.
I develop a lot of cross platform apps using Cordova. While this works pretty well, and indeed in recent years support for this is only becoming better, it remains that Webview based apps always feel just a tad off.
This can only be said by someone with a very little attention to details. There are constant changes to how the OS looks.
So the parent is right.
And judging from the kind of non-native look apps that are nonetheless immensely popular in the app store, few care that much anyway.
Yeah, I only just realised this after further looking into it today (when I last checked their site, they only had one page introducing the project). They try to spin this from a negative to a positive[1], by saying that they think they can guarantee the Flutter widgets quality and performance compared to native widgets, and it's on them (the Flutter devs) to make sure those widgets are up to date to the look and feel of the platform.
Which to me just seems like trying to solve a non-issue in the first place, not to mention depending on the Flutter developers to ensure their supported widgets remain up-to-date to the platforms standards and not deviate in any way.
[1] https://flutter.io/faq/#does-flutter-use-my-systems-oem-widg...
So it can be done, but I imagine it isn't easy. Qt has years of experience doing it.
For some applications (including the one I'm currently working on), you can get away with having nearly the same UI on Android and iOS, with just a little extra work to (for instance) give iOS users a more native-feeling navigation experience.
In regards to Flutter, I'm not sure if it's reasonable to expect the Flutter project to do a better job simulating native iOS widgets than Qt has been able to.
For the majority of OS APIs there are no wrappers, beyond of what is available on the desktop + hardware sensors.
So basic stuff like file pickers or asking for permissions aren't even supported.
I tried it once back in 5.4 and gave up on it, going back to Java / C++.
> Recent versions of Qt use the native style APIs of the different platforms, on platforms that have a native widget set, to query metrics and draw most controls.
Two anecdotes:
1. The TeamTalk (http://bearware.dk/) voice chat system is popular among blind people. Originally when it was Windows only, it was an MFC application. Then when it went cross-platform, the developer used Qt. But the Qt version was inferior for blind users, so the developer still maintains the MFC version just for them.
2. Rant from a blind programmer trying to develop an accessible cross-platform application with Qt: https://blind.guru/qta11y.html
On every major platform, it's possible for non-native widgets to be accessible by implementing the platforms' accessibility APIs. But Qt doesn't do this very well.
Writing code once is a non-issue?
To my eye Material applications on iOS looks like what applications should be doing - taking the HIG and improving on it in their own way.
It can also be attributed to laziness on the part of the PM and/or designer. Or in general, clients opting for cheaper solutions when hiring an agency to build apps for them.
I say all this to point out that, Android users often get the short end of the stick when it comes to app design. Often there is a strong lack of consideration on what is a native Android app feel. No consideration for the use of back-buttons, menus and UI elements using bottom navigations or custom ones instead of native Material design... Generally convergence is made for all kinds of reasons that ultimately leave Android users alienated.
Is this really a problem though? It doesn't seem crazy to want your app to just look the same on all platforms.
As someone who built some mobile apps with web technology I can see how Flutter would have an appeal because going into the project you've already given up on the native experience. There are still (unfortunately?) a world of marketing-driven apps with the brand overriding design choices which would be suited to this. Tools like Xamarin probably have a lead for line-of-business apps inside companies due to the MS ecosystem integration, but I could see people choosing Flutter for these apps if it's easy to build and maintain apps.
None of this changes the fact that for best-of-breed apps in a public store you'll need to use the native toolkits.
When I looked at a friend's Windows XP installation, it struck me that pretty much every application they used had a different UI system: WinAmp, Firefox, Opera, Windows Media Player, MSN Messenger, ...
That is true, but does anyone actually like the feel of google's iOS apps? I personally think they're awful, but the content they present is so useful that people use them anyway.
https://github.com/flutter/flutter/issues/73
An awful lot of apps use a map, and a static map in many cases isn't going to be enough. Likewise many apps will want to display video. Looks like they also have an issue open for webview support, which could be a problem too:
https://github.com/flutter/flutter/issues/730
But then I found this, so perhaps there is hope if you can launch it in a new view:
https://github.com/flutter/flutter/tree/master/examples/plat...
Looks like you could do the same for any view, so it's more that you can't have a subview which is a map or video etc, which isn't such a bad limitation (not ideal, but at least it's not impossible).
I know for a fast that the core team is open to the idea of creating desktop backends but does not have the resources to do it. They'll gladly accept any contributions towards that.
https://github.com/netdur?tab=repositories
I say porting Flutter to web using canvas (both have similar APIs) is very bad idea.
this repo closes the gap in sane way https://github.com/yjbanov/butterfly
Of note is that Appcelerator did target all three simultaneously (as well as blackberry and windows phone), but eventually dropped web support.
Thats a pretty serious, and surprising, limitation.
And the opposite is also true, that if you do both along side one another, it really isn't that bad. I guess I'm just surprised they would be willing to tackle cross platform upfront (ios/android) but not cross form-factor (handset/tablet).
None of programmers knew what is dart / reactive, we did fast sessions learning by using ES6 and react, once that (and state management) is understood we switched to dart and programmers found it very similar and fun... however, some programmers said they have understood state but they didn't, made naive mistakes and app worked well anyway, tests couldn't catch them, my code review did.
Android programmers couldn't believe hot reload button, very welcome upgrade of gradle, they don't like how UI is built (used to xml), I agree it is confusing nesting all those functions, you have to wrap your mind around it, I believe introducing XML or JSX to flutter would be a mistake.
The only complains is third part plugins, we had to drop Flutter where ads or some third plugins is a must.
Flutter is not a complete solution, you still have to write some android / ios code to make your app works well.
Exactly. Dart is a sort of rational and modern variant of Java/C# language family. It is excellent in handling async/await. I find Dart Code extension for Visual Studio Code fairly useful for developing Flutter. Dart Code as well as IntelliJ supports for flutter hot reload.
https://marketplace.visualstudio.com/items?itemName=DanTup.d...
but for other use cases, flutter seems nice (for 90% of app use cases?)
>We are aware of apps built with Flutter that have been reviewed and released via the App Store.
Which apps? I'd like to try them out and see how they look and feel.
Also it works on ChromeBook... throuh ARC - there were some glitches, but after the recent updates (in ARC itself) I haven't seen them.
Actually scrolling might be still broken (but again this was something ARC is responsible, as other Android apps on Chrome are broken the same way).
Does anyone have an opinion on whether Flutter would be a better choice? Why?
I also looked at Xamarin but that seems a little in-depth for what I need, which is basically some data-input screens (using standard Web-style controls) and then to upload the data to an API.
Make sure that the Cordova APIs/plugins cover everything you need, because writing custom plugins can be a major pain.
You won't have a lot of performance headroom, especially on Android where some unsolved V8 bugs and inconsistent GPU support on older devices will hold you back. If things start to feel slow and it's a problem for the customer you may need to look elsewhere.