Hacker News new | ask | show | jobs
by jampekka 899 days ago
Because in native even simple is complicated?
1 comments

Are you not saying that because you know webtech and not native? I find native easier, webtech with new frameworks and bundlers and fashion every two days is much more annoying to me.
Probably not. I've coded more for webtech, but have done native for Android (and Linux and Windows. And J2ME and Symbian FFS). Luckily very little iOS and MacOS apart from some reverse engineering.

You don't need frameworks or bundlers for simple cases. For many you need just one .html file.

For e.g. Android you need quite a bunch of files and directory structures to do even get a Hello world [1]. You need to compile and bundle and package. And install. And god knows what if you want the application distributed. And then you have to fight with the inconsistent and very boilerplatey Android APIs. And figure out which API was deprecated yesterday and what's today's one that will be deprecated tomorrow.

From what I gather, iOS native is even worse. E.g. have to buy a Mac and use MacOS. And Xcode. And faff with signing keys.

[1] https://github.com/IanDarwin/AndroidTemplate

In my experience, Android-Studio creates the app for me. There are many files indeed, but that's nicely solved by the IDE. Then Kotlin is great, and I really like Jetpack Compose.

You can distribute your APK manually, but if you want it on the Play Store you have to jump through loops indeed. Though I don't think it's worse than running a webserver.

> And figure out which API was deprecated yesterday and what's today's one that will be deprecated tomorrow.

That's a bit exaggerated. I have been developing for Android for 10 years, and deprecations take years. There are deprecations, but I find that they are made in a controlled fashion.

> E.g. have to buy a Mac and use MacOS. And Xcode.

Yes, I am not a big fan of that. But many people are, so...

There are plenty of e.g. scaffolding tools to handle the bundlers and deployments etc for web frameworks if you are OK with IDE doing that.

I don't use IDEs or scaffolding tools if I can do without. I use many different languages and platforms, and for that just good old vim and terminal make juggling between them a lot easier.

I do understand that using the tool you know makes things (seem) simple. But it's the same for all tech.

The deprecations were exaggarated (along the tune of your two day). I haven't done Android native in a while, but e.g. the situation with Camera/Camera2/CameraX was quite bad.

> e.g. the situation with Camera/Camera2/CameraX was quite bad.

Yeah, I think overall it all converged a bit. Well Kotlin and Compose are big changes, but I can't really blame a change like that after more than a decade.

> But it's the same for all tech.

Yeah, I think we mostly agree. My opinion is just that I can switch between many languages and platforms, and native is always better integrated than anything cross-platform. Which makes for better apps and nicer development (I am happier learning Swift than debugging JS on the latest weird iOS-JS-framework with no community to help me).

IMO, if you write a simple app, then everything is simple. If you write a complex app, then native is better. As soon as it gets complex, nobody from the webtech community will know the details of the platform in question (unless they also do native dev on this platform). The native community for a specific platform is always bigger than the web community for it, in my experience.