JavaScript will disrupt Native, if not already
I've written a lot of apps. Mostly at hackathons and to show off my company's hardware products. The challenge has never been to prove out the functionality of an idea, but to make it look polished. I'd say we spend over 60% of our time making the apps pretty, easy to use, and following common design patterns found in the App ecosystems. Maybe it's because I'm a hardware geek that this frustrates me. I can accept that poor aesthetics can turn away users, but seems like a waste to have talented engineers moving pixels around rather than solving hard problems.
Take the example I captured in the header image. The challenge was create an app that discovered Bluetooth devices in range and connected to them when selected. Finding the Bluetooth devices in range was easy, but to show a nifty radar plot that reflected where each device was in a visually appealing and intuitive way was not. This is where JavaScript outshines Native development ecosystems like iOS and Android.
The stats to the left are pulled from Stack Overflow, a popular site amongst developers to answer each other's questions. There's been no question that Javascript and it's web upbringings have been outpacing iOS and Android in popularity for some time but what's new these days is the mobile device improvements in both Javascript support and processing power. This is allowing Javascript-based applications running on mobile devices to look and feel just like their native counterparts.
Case in point, the code we used to display the radar plot is a simple script we pulled from a random website. It's what we often call "copy/paste coding". Javascript is ideal for this because not only is it Functional -making it more modular- but it also offers near infinite code samples to re-use from all the pages on the web. So if you see an interesting effect on one website and want to include it in your app like we did with the radar, it's a simple copy and paste operation.
Granted -as my friend and colleague Boris Polania would quickly point out- this benefit doesn't come without sacrifices. Javascript needs a bridge layer in order to properly run on mobile devices. This is often hidden behind the scenes in the browser but if you want to use Javascript to make your mobile app, the bridge layer is a necessary evil. If you're building complex applications involving teams of developers, this bridge layer can wreak havoc since there's no good visibility across it. In other words, timing issues and catastrophic events (eg app crashes, freezes, etc) are difficult to solve.
So Javascript may not be a perfect fit for all mobile apps but increasingly I'm convinced it's the best option out there. Sacha Grief did an amazing job of gathering developers thoughts on the state of Javascript and his report truly captured the growing interest in the community around mobile app development. Powerful open source frameworks like React-Native, Cordova, and Ionic are making mobile app development in Javascript much more rewarding. Particularly when designing an experience with IoT hardware in under 24 hours.
- by Richard Grundy, Founder of Flomio, Inc., a TechStars company that delivers proximity ID hardware, software, and services for applications ranging from access control to payments.
Congratulations Professor Grundy! Great Article and Keep on plugging away..Bernoulli Sleep Cycle paying off!