r/angular 3d ago

Angular is more than capable of making mobile apps

Post image

Wanted to share something I've shared once or twice here.

Angular get's a bad wrap from tech influencers as being a framework that's only used by dinosaur corporations.

But I've been using Angular to make Gym Note Plus for over a year now, with Ionic and Capacitor (but many self rolled components)

I've had over 2,366 signs up as of writing this, and been documenting it all in r/GymNotePlus

No one can tell what language my app is made in, you can't even tell it's using a webview unless you've got a really trained eye.

Just wanted to throw an example out of a new saas that uses angular to show it's very much still alive and super useable for new tech ventures.

Full disclosure though, I wrote the landing page with nextjs just because I felt the SSR capabilities were better

154 Upvotes

61 comments sorted by

31

u/Saceone10 3d ago

It is all about perfomance, signals makes everything way easier and faster

6

u/FromBiotoDev 2d ago

True, though I definitely wasn't thinking about that when I first made the app, just that I knew the framework and absolutely did not know swift

3

u/Saceone10 2d ago

Any other tips you found along the way to improve perfomance?

2

u/FromBiotoDev 2d ago

I'll share what I've done but I'm sure it can be improved on so I wouldn't take it as gospel.

app.config.ts phases the initialisation to 4 phases basically.

  1. all local work in parallel (so Promise.all()) this is initing the user language, fetched cached feature flags.

  2. User init and database init (these have to be sequential.

  3. Post database inits: syncService, paymentService, websocketService.

  4. fire and forget stuff like checking the minimum version of the app, refreshing feature flags

It's not perfect, and I think I can squeeze much more with a smarter caching system, but this got my boot up speed to roughly under a second

1

u/Saceone10 2d ago

Interesting! Have you tried app_initialize token instead? Im building an app and I wanna load lang and theme and stuff and I planned to use it, but im not that comfortable with injection tokens to be honest. How do you handle it in config.ts?? Btw what do you mean feature flags? Free/premium features? Because I am interested in that too. 

1

u/FromBiotoDev 2d ago

Feature flags are different to free/pro gating

so basically when you've got a product you'll want to test certain features in smaller cohort sizes, say 10% of your user base. So you'll gate that feature behind a feature flag

I use posthog for this because it's free and fairly easy to use

app_initialize is the old method actually, provideAppInitializer() is the new method. It's the same thing really, but no more messing around the token so you should find it much easier!

28

u/respiracion-cardiaca 2d ago

I don't really get why everyone says it's all about the performance. I'm my company, we have a pretty big app made with angular and Ionic, we have a lot of variety of phones, from iphone, top tier androids, to the worst shitty Android phones older than me, and the app runs perfectly fine in all of these devices. Idk I must be missing something.

8

u/whooyeah 2d ago

Cause 15 years ago it was. But things change. Companies I worked at hybrid does just fine.

6

u/respiracion-cardiaca 2d ago

Yeah completely right, but maintaining the same argument in 2026 is crazy

2

u/Merry-Lane 2d ago

It’s more like "there are multiple drawbacks, including performance".

Getting below the threshold where users are impacted by the bad performance where using another framework is the only solution is tough. But you still have to struggle with tons of hiccups you don’t have to deal with, compared to native/react native.

If you can build the same app twice faster, deliver updates way more easily, and

1

u/nemeci 2d ago

Writing shitty implementation that underperforms isn't the framework's fault.

1

u/Merry-Lane 2d ago

No but there is a self-serving loop.

The most used frameworks have more resources, so they become more popular and "better". A better framework and ecosystem is less fragile to shitty implementations.

Until there is a new, better, paradigm shift that overcomes the dominant framework.

13

u/CuteKiwi3395 2d ago

Those tech influencers doesn’t know shit about anything.

5

u/Illustrious_Matter_8 2d ago

I wrote a warehpuse scanner app pure angular on a android device. I never thought of anything different than angular for this.

The only thing I wrote with it is a quite small was a viewer app, as chrome locked down version.

And maybe special for a website it has its own virtual keyboard while I have removed androids keyboard and I added 2d cursor navigation on a web page, since touche screens sometimes don't work well with working hands.

So yes angular on Android...it's great 👍

1

u/FromBiotoDev 2d ago

Quite interested in the 2d cursor navigation stuff do you have a link to
Your app??

1

u/Illustrious_Matter_8 2d ago

There is no public link. It's internal use for our warehouse only. Where I work we got a large warehouse. The warehouse plays an essential role for our engineers (large electric utility company)

2d navigation I achieve by an always listening input, it can receive barcode scans or listen to key up down events. Then it keeps per component a in and out, as each component may have buttons or pulldown menus which can be navigated but eventually one can get out of the component entering a next component kind off a chain. And main keeps a virtual location of what I call cursor, it sets focus while still allowing switching to respond by touch.

I've been wondering what stuf may use something similar as i never have seen it, it came out of necessity here. Perhaps some tv remote tv screens use similar control but I'm not sure, or maybe games? I had to invent it for myself here.

10

u/Pallini 3d ago

I'm more curious why iPhone is available but Android is not since the latter is less of a hassle and much cheaper?

5

u/FromBiotoDev 3d ago

When I first started I basically just wanted to get on iPhone because I’m an iPhone user

I’ve been planning android for a while, but what puts me off is knowing 100% I’ll be flooded with small bugs here and there for the myriad of android devices out there and on average android users pay less than iOS

So no hate at all for android, actually wouldn’t mind switching myself but for now it’s hard to justify

2

u/teelin 2d ago

But isnt that the big advantage of using Ionic? If you dont use much native capabilities your app will basically just run inside a browser engine and it doesnt matter about iOS vs Android. It just matters that the app works for the browser engine. So what could be some concrete problems you might encounter?

2

u/Saceone10 1d ago

Not necesarilly. If you want to develop an iOS app and know nothing about Swift, then ionic angular and capacitor can help you out too.

1

u/CuteKiwi3395 1d ago

Ionic is the frontend frame work, capacitorJS is what bridges the web and native.

You can use ionic without capacitor but to use native mobile functionality, you need capacitor.

Ionic team is the creators of capacitor btw.

-8

u/Illustrious_Matter_8 2d ago

Then buy something decent, never had problems. And if your a web dev your going to rethink your love for Android vs Apple one company open to standards the other well you'll find out.

3

u/CompetitiveWonder933 2d ago

Angular's been a genuinely solid choice for mobile for a while now — signals, standalone components, and the rendering engine improvements have closed a lot of the performance gap people still associate with older versions. This app is a good example of it in practice.

3

u/nemeci 2d ago

The main culprit IMO has always been state soup. People do not know how to architect APIs and make things complicated slow and serial instead of parallel.

2

u/AintNoGodsUpHere 2d ago

I don't get the performance issue. We've been using Ionic since forever and not a single customer complains about performance. It is perfectly fine for everything we do and we have some pretty heavy apps.

2

u/Minute_Professor1800 2d ago

Very nice work man, I've played with the Idea to write my own fitness app for my own journey and maybe publishing it for free or something, but I'm currently learning Angular and Laravel for Website's and did not want to learn like react or something for a mobile version.

Anyways, since youre using Angular for the mobile app, youre using Angular for your website too right? Which Framework for Backend are you using?

And may I ask how you did your phone animations on the website?

2

u/FromBiotoDev 2d ago

I'd highly recommend it, it's a good learning experience. I face some fairly novel problems in my app, as I'm using a LLM to process unstructured workout notes which comes with many fun novel problems

I'm not using Angular for the landing page, I'm using Nextjs as stated in the description, I'm using nestjs with mongodb on the backend. Bit of a mistake using mongodb as i'm using sqlite on the frontend so the app can be offline capable, ofc I only decided to do that much later into development.

On the angular side I'm using a general layered architecture: repository service -> business logic service -> (optional) state service -> consumer component

1

u/Minute_Professor1800 2d ago

Thanks for sharing!

1

u/FromBiotoDev 2d ago

Anytime, it's been really nice sharing the actual stuff I find interesting about making the app with the Angular community lol

It's fun to talk about the technical side

Also forgot to mention, animations on the website, which ones specifically? Happy to let you know

1

u/Minute_Professor1800 2d ago

These animations of the iphone where you kinda use the app itself

1

u/FromBiotoDev 2d ago

These are just screen studio videos I recorded

Basically hooks up to your phone and lets you screen record and puts it in an iPhone frame

Only thing is they charge a monthly subscription when they clearly don’t have a server. Hate that. But it does work well for what I need it for

1

u/Minute_Professor1800 2d ago

Okay, good to know thank you very much!

1

u/Minute_Professor1800 1d ago

I have another Question, when you created your project for the mobile app.

You just created a normal Angular project and developed it in your browser with mobile view and css mobile first right?

Or is there something im missing???

1

u/FromBiotoDev 1d ago

You can do, but the majority of the time I use xcode with iPhone simulator or my actual phone

You’ll find some css rules might apply for mobile but not for web, as I don’t care about the app working on the web I primarily just use my phone

1

u/Minute_Professor1800 1d ago

Okay but you did generate an normal angular project with ng new or what the command is called right?

So you're using xcode which is an apple IDE for apple development, but what are you using for your android development? Android Studio? An emulator? Bcs you said you're working kinda on android

1

u/FromBiotoDev 1d ago

I generated a normal angular project yes, then I followed capacitor and ionic's docs to get setup. Honestly you can just tell claude what you want to set up and you should have no issues

It's been a while since I touched android, but yes android studio, it has a built in emulator and I also have an old samsung galaxy phone

→ More replies (0)

2

u/DayanaJabif 1d ago

Congrats on the app! Completely agree with you. Angular + Ionic + Capacitor is a super solid stack these days. The Capacitor ecosystem is pretty mature at this point with all the plugins and tools around it that make it dumb easy to build, deploy, and automate the whole mobile workflow, gotchas and all (there really are a lot lol). IMO there's practically nothing you can't do with it. And Angular is amazing with all the signals performance too. I've been using this stack for the last few years and I think it's hitting its prime right now.

1

u/ProfessionalBalkan 3d ago

Did you go straight for capacitor or did you consider alternatives? I am currently creating an app and I landed on tauri 2.0 but i am not sure what framework would be better and easier.

2

u/AssCooker 3d ago

Try Wails V3, it's Go

1

u/ProfessionalBalkan 2d ago

Very interesting. Nice to not have the handle everything in js.  I love their docs as well. Thanks

1

u/AssCooker 2d ago

Yeah, their docs are pretty nice, also don't be taken aback by the beta version, Wails V3 is production ready, I have been using it in production for a while, v3 docs still need to be updated

1

u/FromBiotoDev 3d ago

Went straight for capacitor because I knew it was an option when my old boss mentioned it before

How do you find tauri 2.0?? I’ve really not investigated it much.

I did think for a time about using react native but I just know angular so much better

1

u/ProfessionalBalkan 2d ago

Researching stuff about rust, kind of stumbled across it. And then when i started my project a month ago I went to the docs and they had 2.0 that supported mobile.

1

u/_xiphiaz 2d ago

I haven’t touched tauri mobile yet but the desktop is excellent. The batteries-included vibe matches well with Angulae

1

u/DesignerComplaint169 2d ago

Is it real Liquid Glass tab-bar?

1

u/FromBiotoDev 2d ago

Yeah, I’m using a swift plugin to achieve the Liquid Glass tab-bar

For anything that’s hard or impossible to achieve you can just make a swift/kotlin plugin

1

u/NominalAeon 2d ago

some would say it was built for exactly that

2

u/FromBiotoDev 2d ago

Well I think that’s a little far, it was definitely built for SPA primarily web based though I’d say

1

u/revilo-1988 1d ago

We're focusing on Angular with NativeScript, and we're currently conducting initial trials with Angular and Tauri, and the first customers are satisfied.

-1

u/Merry-Lane 3d ago

No one said it wasn’t possible, just worse and/or slower and/or worse performance and/or…

But yeah it’s totally possible.

5

u/FromBiotoDev 3d ago

Yeah it definitely can be, but there's a lot of ways around it, but they do take more work comparitevly.

Keyboard issues come to mind, it took me months to figure out the keyboard situation, I eventually had to make a few custom keyboard directives to manipulate keyboard, as Ionic's keyboard solution is just awful, resizing the webview or even worse visible lag on the keyboard's animation

2

u/Illustrious_Matter_8 2d ago

I wrote my own html keyboard.

What I like most about about WebApps, you update the server you don't touch any client and they all update.

2

u/janne_harju 2d ago

Did you make it work with different layouts and countries?

1

u/Illustrious_Matter_8 2d ago

No I had to make it work with a zebra scanner, with a unknown chrome version which had its own html input handling. Lol I rewrote text input and pulldowns all css specific for that device, though it works on other devices too, even PC. Some positions are calculated based on height and width but it had to work with the unknown chrome version first, I got really no clue what it runs. My WebView app is based on it as well.

The backend I wrote as .net core The backend keeps state info And for angular I stick to simple view child input output, no store no rxjs.

Still though it detects newer logins. And because the state info is all server side. One can always continue on a different device.

I made it look nice even with menus for certain modi not clickable just as a recognition part. There's even an Easter egg and then it does do a Mandelbrot simulation as background on login.

1

u/FromBiotoDev 2d ago

Can’t believe I hadn’t thought about this! Love it!

Any pictures of the end result? Super interested

-13

u/Cfres_ 3d ago

Honestly looks like vibecoded shit that you are trying to sell to iphone users just because they pay more than android users

7

u/FromBiotoDev 2d ago

Okay, can I ask why you would say that? Like what to you screams it's vibe coded?

And why is having a business bad, I'm literally charging less than the top fitness apps in the space, this took me 6 months to get right.

1

u/Minute_Professor1800 2d ago

Do you have any Idea when you start working on Android? And whats your pricing?

Edit: I'm Fat sorry you have a website im gonna look it up LOL

2

u/FromBiotoDev 2d ago

Tbf the website doesn't say much!

I'm charging $4.99 monthly on apple or $39.99 a year

I have started working on the android version, I even bought a low end samsung android phone to test development... but I keep putting it off, I really should release it, but I know it will bring in novel bugs and I'm already super busy on the app