Objective-C is a fantastic language. Apple is still writing tons of it. It's the C++ we should have ended up with. Protocol oriented programming is an absolute revelation if you've never been exposed to it before. And being a superset, the ability to seamlessly drop in and out of pure C within the same file is something no other language can do. It also happens to have the most highly cohesive, battle tested, well documented interface libraries in existence for native desktop apps with Cocoa/AppKit/CoreGraphics et.al.
One thing I've found recently is that Obj-C actually works extremely well with agentic coding tools too. Having header files is like a cheat code for them. You don't have to fill your context with implementation code; just the interfaces, and the agent can actually reason about an entire huge codebase.
C++ and Objective C++ can do it just as well.
D and Zig have good C ABI integration.
For Apple platforms I write almost entirely Swift these days but Obj-C really isn’t that bad. Every once in a while for uncomplicated personal projects I’ll use it for its simplicity and compile speed.
Things like ReactNative or <insert cross-platform app dev toolkit here> miss exactly the same point that CEOs firing engineers over LLMs or vibe coders do: the code was _never_ the problem. It's all the domain expertise that allowed you to produce said code.
Do you know how often I use an app that was clearly built for Android, but also happens to run on iOS? Most likely once, and then never again. Because all the conventions are wrong, and it requires more effort than what I'm willing to give it.
Granted, I haven't played around with Flutter so maybe I'm unaware of how good these cross-platform solutions have become, but still.
Problems are subjective.
To the people who work on the app and actually use it as a part of their work or daily lives, you're exactly right.
To the CEO doing the firing, the problem is that he wants a bonus because the other guy who founded his startup around the same time is able to afford <insert ostentatious display of wealth here> and he cannot. And in that case, the engineers are the problem because they cost money. Worst case scenario, you fire the engineers, business goes down, and you have to exit for less money than you thought you would. Not like it matters; you were paying yourself insane amounts of money out of the seed money anyways so you have plenty of money to last until the next big idea that Marc Andreessen wants to flush money away on.
... as for the survival of Objective C, I'm willing to bet that there's an entire class of apps for iOS and iPadOS that most of us use every day but barely give any thought to; apps that are the COBOL banking backends of the mobile world. They've fulfilled a purpose at some business since 2012, they're mission-critical, and you gain zero value rewriting them in anything else, so Objective C keeps getting written to add things onto those apps as new features are needed.
That being the case, the value prop of cross platform UI frameworks is a lot more shaky. Usually the UI isn’t the hard part, and most apps don’t have a ton of complex logic they need to share either (though there are ways to do this, if necessary). At that point why bother with the cross platform UI framework at all? Just skip the extra layer of bugs and write native.
Kotlin has built-in multiplatform support though.