Regretting/Questioning my current stack Flutter + Elixir as solo dev for mobile app

Don’t take me wrong, I am not a supporter of this and I never had a word in this. I think that mobile OSes are the opposite of security, when I heard the first launch of the apple pay and google pay, bringing guarantees of local device storage security, it is still a joke nowadays.

I just said a place where native functionality comes in handy, nothing more nothing less, if you were to look at the banking api I work with, you would put your hands on the head…

1 Like

There is also this project for creating mobile apps using LiveView running on the phone. GitHub - elixir-desktop/desktop: Elixir library to write Windows, macOS, Linux, Android apps with OTP24 & Phoenix.LiveView

This project is far from completion on mobile, at least on android, there are some important things that need to be addressed that still are in the air in that project, shortly said that project is far from production applications.

For me I was thinking of going mobile app approach for a smoother experience than on browser and also that since it’s B2C I’m pretty sure people would want downloadable apps rather than for advertising.

I mean maybe I am overblowing it haha!

You seem to have a lot of experience regarding mobile dev, at least much more than me which tends to 0 :grin:
Can I ask for advice? Im building productivity apps on the web and was planning on making PWAs which is almost free as I just need to make it work a minimum offline with service workers.
If PWA are suboptimal compared to native apps on the store, why are PWAs still relevant and popular?
Most importantly: what is the best way for me to offer the PWA to my customers? How to distribute them?
You confused me when I read that you are fan of PWA but on the other hand you say they are not even that worth to be distributed through the Google store, because they are just wrapped web apps.
Overall, it’s not clear your stance regarding PWAs and for which apps/audience those are acceptable, and how to distribute them.
Ty for any advice!

1 Like

I don’t see them as popular at all, I see them as niche, a really very focus niche. In the web world they may be popular or not, it all depends on the bubble you are in. Due to work I am in the mobile bubble, and here native apps are kind of the kings, despite cross-native platforms keep trying to overthrow them from the ranking.

First, know your customer. Is it a an heavy mobile user? Are they from the younger generations?
If yes, then they may dislike to download an app from the mobile app store to realise that it’s not native, it lacks all the gestures and behaviours they are used in a native mobile app, thus they may uninstall it immediately, and you loose a customer, and/or you get bad reviews on the store.

The only way to put a PWA in the store is to wrap it in a webview. I don’t know other way, but I am not a mobile developer, just work on the security side.

When a user visits a web app in a mobile browser and the browser detetects the manifes.json file it may prompt the user to add the PWA to the home screen after the algorithm decides the user as interest on the PWA app. Another alternative is for you to detect the user is on mobile and show a popup with a button to add it to the home screen (not sure if his possible). The browser also as an option in the top menu to add the PWA to the home screen.

I didn’t say that they aren’t worth to distribute, I just say they are wrapped in web views and that may fireback against you. For example, you can buy fake iPhones, that are hard to distinguish by just looking to them, but easy once you get your hands on it, how would you feel by buying a fake one when what you wanted was a really iPhone? That feeling may be the one your mobile users will experience when they install an app from the store that turns out to not be a mobile app, just a website wrapped in a webview.

It depends on your use case and resources.
Most important, if you are competing with others that have a native mobile app then you may already be in the loosing side from day one.

8 Likes

This is the type of answer I was looking for, thanks!

1 Like

I believe that Uber and FT used to be PWA’s with wrapped webviews. Not sure what the status is anymore though.

Uber PWA - Progressive Web Apps on Appscope shows them as a PWA, but that doesn’t preclude them having something native also.

I think what ends up always is someone who is either familiar with PWA or native, implements the first prototype, then at some point that prototype is running in production and of course nobody in their sane mind will rewrite the application from the ground up in another technology from scratch.

1 Like

Hi @Morzaram

One of the options you may want to explore for your use case is Nativescript. This framework officially supports Svelte - noting that you’ve done a previous iteration in Svelte. My understanding is that Nativescript is different as it does not use web views like Ionic but compiles to native. So, theoretically, with a single Javascript (or Typescript) codebase you can have an app for IOS and Android with their respective ‘touch and feel’ and distribute them on Google and Apple just like normal apps.

Have you had experience with NativeScript? I heard it’s not ready yet.

Not to the point of launching a product. I did go through a couple of the video courses by Alex Ziskind too and the whole concept was interesting. Whether it is ready for prime time I’m not sure. I will say that when I was considering your issue for my personal project, I came to the conclusion that it is probably better to start with a simple mobile responsive web app and that is the route I’ve gone down. When I looked at the data around apps and new app downloads by users - it wasn’t particularly encouraging and I decided the former approach to get a MVP done was much quicker and simpler.

Good luck though with whatever you decide.

2 Likes

The biggest downside to these technologies is the fact that it can add a lot of complexity once something goes wrong. For example on android, some small things like how your UI container resizes when you open keyboard has changed on newer versions compared to old ones, and if you implement it incorrectly, it will not show correctly on older devices.

Since such frameworks abstract this level, you will either need to be sure that the maintainers implemented this correctly, or do it yourself, witch includes you writing code in android/js at the same time.

1 Like

urgh, and herro :woozy_face:

i ended up here via Google search (with ai, do people even use Google now?..), and I resonate so so hard to the eternal conflict of choosing the right tools: choosing the right web and/or mobile framework. There’s just too many choices, too many ways. But thanks to everyone who contributed to this thread, I’ll stick to my gut which is yelling elixir/phoenix 'n throw-together some simple css. :slight_smile:

for me too the battle was flutter vs a web-only framework (phoenix or sinatra/roda if I can’t handle the functional jump), but in the end I feel the functionality of something as crude as even craigslist, which looks the same as it always has been, is fitting for my very anarchist/diy/punk/indie use case. With a little childish css work, it’ll be alright.

au revoir flutter, and hello ruby/elixir/crystal :smiling_face_with_three_hearts:

1 Like

@AndyL - Would you mind expanding on which parts of the process and stack were painful? Like, was it the React Native, Hyperview itself, the integrations/extensions from HXML to React Native, the different HATEOAS models between Hyperview & LiveView (partial documents vs. minimal diffs derived from state changes), etc.?

I’m stuck in Flutterland at the moment, and I’d love to be able to present some compelling alternatives, especially since the white-labeling of our product poses a number of problems that taking a more HATEOAS-like approach would make much easier.

@imkleats - for me the painful bit was installing/maintaining/upgrading the tooling, and the research & trial-and-error to get the tooling configured. Android Studio - ugh. Probably it took me an afternoon of study and tweaking to get to the point where I could write code.

Once the tooling was set up, I found the development process itself to be quite nice! Great for fast prototyping and updates. Note that I’ve never needed to build ‘best in class’ mobile apps - just fast MVPs.

Still waiting / hoping for LiveView Native… :crossed_fingers:

1 Like

Last month I discovered NTFY a push notification tool for Android/IOS that has been working very well.

You can send push notifications from the command line or from your Elixir app. The notifications can redirect to your mobile-optimized Phoenix app. Quick and useful for some mobile workflows.

Completely unrelated to frameworks or anything but wow deploying and dealing with these stores are an absolute pain.

Regardless of frameworks the deploying of an app on an app store has been an absolute pain and I wouldn’t suggest it for any solo-dev to do a mobile app unless necessary.

Now it’s been 5 weeks trying to get my business name on the apple app instead of my full name… hoping for next week. Being an international resident doesn’t make it easier since they don’t take my situation into their app and some of the stuff they tell me to do doesn’t exist on my account.

Alas, The app is in the app store now though if any of you want to give it a shot.

Info on what it’s about:
https://mentalkit.app/
(cta is join wait-list, even though it’s out)

Android

Apple

3 Likes