Native programming can strike fear into the heart of anyone that doesn’t know how to write it. While we as programmers understand our limits and capabilities, we still like to brag about the complicated function or route we just wrote.
But just drop the words “Objective C, or Android Java” into the next conversation you have with fellow programmers and see who starts biting their nails.
It’s well known that the path to building a great mobile app doesn’t have to be native though. But it’s also well known that the farther you get away from the native languages of the operating system you are programming for, means the further up the “stack” you have to go. The “stack” meaning the low-levels of the API’s exposed to you by the manufacturer.
Why native code matters
So why would I care if I move farther up the stack? Because if you need to do something that isn’t supported in the higher-level language you are using, you can’t do it. For example, with the Corona SDK I can call a simple web view control with just one line of code, compared to around 7 lines using Objective C, so Corona makes it easier to program, plus it’s cross-platform.
But if I needed to overlay something on top of the native web view, I can’t – Corona doesn’t support native web view overlays, something that is no problem with Objective C. And that’s just one of the hundreds of use cases when programming away from the native language.
Creating native apps without native code
Progress (recently named a “Visionary” in Gartner Magic Quadrant for Mobile App Dev Platforms (MADP) has an extensive e-book, which explains more about the mobile concepts I’m talking about in this write-up, as well as getting started with NativeScript to create native apps using a simpler method.