I'd argue that in recent years, most people can't tell the difference between a native Swift app on iOS and a Kotlin app running on a midrange Android phone. I agree that Apple's approach is more technically correct here, but Android's approach is also pretty sustainable.
I think those are both the native app targets of their respective platforms though? The Kotlin app targeting Android APIs is not cross platform. I gathered they were more drawing a comparison between native and some HTML/JS/CSS thing.
Ah, so this takes us into the question of what "native" means.
Some people use the word native to mean "the way apps were written in the 90s and on Apple platforms, still are written". It's short hand for manual memory management, full commitment to the operating system vendor's APIs, and so on.
Apps written that way have some big advantages for end users - consistency, low memory usage, and so on. But they suck for developers. Manual memory management sucks, having your app market share be limited to the operating system's market share sucks, often the vendor APIs suck.
Some people use the word "native" just to mean "uses the operating system specific APIs". The other aspects like being written in an AOT compiled manually memory managed language don't count. For those people Android apps written in Kotlin running on a JVM are native, but the other people, not so much.