NativeScript and Frameworks: The Good, The Bad, and the Bitchy

Photo by Luca Bravo on Unsplash

Photo by Luca Bravo on Unsplash

Over the last 6-12 months, Raika has worked on a few different projects with a mobile app component and needed to build natively in iOS and Android. In the past, there have been projects designed to bring these two disparate platforms together by allowing programmers to construct a single code base and compile it to the native platforms before deployment. We research a bunch of different options (including Adobe’s PhoneGap and Google’s Flutter) and found that NativeScript gave us the most flexibility to create apps that were more complex and looked the most like code we were already comfortable with using.

NativeScript is a framework with the capacity to build native apps from a single code base using JavaScript (or any language that compiles to JavaScript) and CSS, along with a somewhat proprietary markup language that looks like a cross between HTML and XML. The CSS implementation is not complete, by NativeScript’s own admission, and some of that lack is due to the limitations of cross-platform features and functionality that we in the HTML/CSS/JavaScript world are accustomed to having.

There are also some elements of the HTML and JavaScript specs that aren’t easily implemented, despite documentation saying otherwise. One example is the canvas tag, which has been part of the HTML spec since 2005 when it was adopted into Gecko and Opera browsers and gained wide-spread popularity. There is a NativeScript plugin that claims to be able to replicate the canvas tag, but all of our efforts to implement it successfully for our purposes came to nothing. Perhaps the tag itself is supported but what you can do the in the tag is limited? We were looking for a way to do bezier curve drawings, which we’ve done successfully in the browser using the canvas tag and JavaScript, but those drawings never rendered in the NativeScript code base.

Last year we posted our thoughts about frameworks as part of our “Buzz Words That Suck” series. We at Raika Technologies feel there’s far too much emphasis and reliance on frameworks in modern web and software development, and that often times these are used at the expense of or due to the lack of understanding traditional software development concepts and methodologies, like object-oriented, design patterns, and other fundamental skills and knowledge.

This week we are exploring the topic in a more in-depth way. Look for the podcast and the video blog (with our usual sarcastic wit, pop-up-video style) and let us know what you think.

Have you used NativeScript, PhoneGap or Flutter? What was your experience? What do you think of frameworks in general and the proliferation of such in the web and software development culture?