You don't need completely separate code bases, just separate UI implementations.
When did we decide that developer time was more precious than user experience anyway? Every time I see an electron app now I just assume that the devs don't care about their users, just how much easier it is for them to push bloated crap out the door.
> When did we decide that developer time was more precious than user experience anyway?
I think people really over exaggerate native UI experiences... maybe a native experience is 10 out of 10 good and a non-native experience is something like 7 out of 10 good but it's not as bad as 1 out of 10 good. I'm sure there's lots of occasions where users will be happy with a non-native app rather than not having one at all because the developer didn't have enough resources for multiple native apps.
Don't we promote MVPs around here as well?
I use the Spotify, Whatsapp and Slack apps frequently for example and don't think they'd be vastly improved going native.
Spotify would be vastly improved going native. That thing has ridiculous lag when loading the app, trying to play a song. I have an older iPhone, so it's much more noticeable, but then when you use the built-in music app and see how fast it is, it's inexcusable. I've started buying music again instead of using Spotify because of it.
It's not just my ancient iPhone though - the Mac Spotify client regularly sticks for at least 30 seconds on the Browse screen, or if I try to search for an item. I could literally type my search, go make a coffee, and by the time I return it will almost be ready to display the result.
As for Slack, I deleted it because it was so slow and a resource hog. Pushover is faster and less resource intensive for my purposes.
>Don't we promote MVPs around here as well?
That's to get it out the door and evaluate whether it has business potential. That's not meant to be your final product. If your product is just an MVP you don't have much of a competitive moat - you also want it to be difficult for competitors to match what you have.
I wonder if it's struggling with the size of some of my playlists. I've got a 70 hour coding music playlist, that's the only thing I can think would slow it down during startup. My machine has 16GB RAM.
Helpful to know I might be an isolated case, though.
Hmm, 70H and downloaded? Because I have a 63H playlist in my 'Playlists' that I didn't make but have, and I have no lag like you describe on my Windows 10 machine.
The 70hrs isn't downloaded on my Mac desktop, just streaming. I've timed Spotify ("native" Mac app) at 25 seconds from launch to UI - but even at that point, the Browse UI still doesn't appear for a long time.
Guess I'm just unlucky on this one. Thanks for the additional info though.
> and a non-native experience is something like 7 out of 10 good
I'd agree. Maybe even as high as 9 out of 10, depending on the framework used and the adherence to platform norms. User experience is not just the UI though, using a GB of RAM when you could be using 10MB is also a poor user experience, particularly when you run out of memory. Most people won't be knowledgeable to blame the app for this poor experience though, they'll blame MS or think there's something wrong with their computer.
> Don't we promote MVPs around here as well?
An MVP can be single platform, multi platform is clearly not the minimum.
>I use the Spotify, Whatsapp and Slack apps frequently for example and don't think they'd be vastly improved going native.
On what hardware? A good chunck of users are on less than 4GB of RAM still (http://store.steampowered.com/hwsurvey). Even if you've got 16GB, what happens when everything in the computer starts to be a resource hungry as electron apps? These are companies with a tonne of money to spend, there is no reason they can't stop being so wasteful with their users resources.
And that's on desktop. Go get a low end android phone and see how many apps you can even install. Very quickly you have to start making decisions like "should I uninstall facebook or audible".
To be honest, I don't even use many desktop apps at all anymore besides a music player, terminal, IDE and a browser. Everything else has slowly transitioned to the web. I'd wager non-technical users are fine with this is well and really don't have strong feeling about what native apps are.
> and a non-native experience is something like 7 out of 10 good but it's not as bad as 1 out of 10 good
The problem is that when a native app falls short, it stays with the conventions of the platform. When a non-native app falls short, it'll stay with the convention of the framework and likely be confusing or broke for the user.
As an example Adobe Flash was really popular for 10+ years. On all platforms it broke copy/paste, swallowed keystrokes, and ate battery, cpu, and memory. Those things could technically be addressed, but rarely were. Most of the time the website was for a restaurant where I was only interested in the menu, location, or hours.
I don't use any of the apps you cited regularly, but I do often hear complaints about them using excessive battery and memory usage for apps that just do chat and music playback.
I also don't see why it matters if your MVP is built on a cross-platform abstraction? In my experience, I often find details where I have to fight the abstraction to access something exposed in the native API.
Reaching a larger audience isn't a minimum viable product. Especially, like I said, if you're fighting with the abstraction to achieve your minimum viable feature set.
Sure, use a library if it papers over deficiencies or adds features your app needs to be viable. That's always a technical debt : developer time call. But, especially with the amount of iteration on the native mobile platforms, I haven't heard of that very often.
As a user, if good native is 10/10 non-native is at best 5/10. Usually though a native app isn't good so it's only 6-7/10. Non-native though are usually in the 2-4 range...
That Spotify, Whatsapp and Slack don't have native apps is a disgrace beyond comprehension. Those are probably the easiest type of apps anyone can come up with.
> That Spotify, Whatsapp and Slack don't have native apps a disgrace beyond comprehension
Pretty easy to comprehend why you wouldn't burn more developer resources than necessary actually.
Try to set aside your own dev bias towards 'non-native' and consider what the average users of those apps think. They don't care the apps are non-native, they don't even know what that means.
> Pretty easy to comprehend why you wouldn't burn more developer resources than necessary actually.
No, it is incredibly short sighted and in the long run Spotify in particular must have spent a ridiculous amount of effort ironing out bugs and issues (this often takes many many months) that are a consequence of unnecessary cross-platform efforts.
The average user don't care about native and non-native. But they do absolutely care about performance, look and feel.
It's easier to transition from the (presumably) single code-base they have now to build specialised native apps later, if there's some expected pay-off, no?
But if they'd had separate code-bases all this time the maintenance effort to date would have been an order of magnitude higher. And consolidating to a single codebase from that would be a nightmare (should some new cross-platform toolkit mature).
> The average user don't care about native and non-native. But they do absolutely care about performance, look and feel.
And I've never heard anyone in my office (which has lots of non-devs) complain about Spotify's UI when they're changing the office music. Search for a song or playlist, play ... works fine as far as they're concerned.
Show me the evidence average users think there's a problem.
> consider what the average users of those apps think. They don't care the apps are non-native, they don't even know what that means.
Just because the average user is unaware the shitty UX, performance or battery-draining is your app's fault, doesn't make it a good or professional choice. It means you can get away with it, because the user is unaware there was a choice, who's making it, and based on what criteria.
When did we decide that developer time was more precious than user experience anyway? Every time I see an electron app now I just assume that the devs don't care about their users, just how much easier it is for them to push bloated crap out the door.