By: Phillip Sharpless

 

Write Once, Run Anywhere

The writing of a new software application has always historically been bound to the question, “For?”

The array of different operating systems, processor types, and input devices usually meant an inevitable binding of an application to a specific platform that it would be running on. This poses an ongoing challenge for developers: which platform(s) should the application ultimately support?
 

Any platform skipped represented a loss of potential users. Every platform chosen represented significant additional development and testing costs. Building and maintaining multiple codebases to support different platforms was historically the only way. The mantra “Write Once, Run Anywhere” emerged as an envisioning of a more ideal scenario, but an actual implementation of that vision was the tricky part.

The chasing of that vision is one of the major reasons web-based application development exploded in popularity so quickly. In theory, building a web application would allow the app to run on any device capable of running a web browser, giving your app an immediate and wide reach across many platforms.
 

Web applications do provide tremendous cross-platform flexibility, but some issues still remain. Browser compatibility, screen resolutions, internet connectivity or bandwidth restrictions… all of these can still result in users on different platforms experiencing issues with web applications. Even when web applications prove extremely robust, the advantages of native applications still remain.

Native applications can access a device’s full capabilities, offer superior performance, and don’t require an active internet connection to run, thus allowing offline features. Mark Zuckerberg once somewhat famously said that betting on HTML5 over native apps was a big mistake Facebook had made as a company. With native apps still proving both powerful and popular, the desire for native application cross-platform development solutions persists.

Today, we can take a closer look at the frameworks that are on the cutting edge of cross-platform application development: React Native, Flutter, and Xamarin.
 

React Native

React Native is a framework created by Facebook to facilitate cross-platform development. React Native is built upon the same principles as the popular React web development library, but with the purpose of creating native applications for platforms such as iOS, Android, and Windows devices. Written in modern ES2015 JavaScript, React Native quickly became one of the earliest popular cross-development frameworks to gain widespread traction.
 

Flutter

Google Flutter is one of the newer cross-platform toolkits and, given Google’s power and influence, many consider it the potential future of cross-platform development. Unlike React Native, Flutter apps are written in Google’s own DART language. DART is often considered a more modern and performant language as opposed to JavaScript, but adoption of it is still somewhat minimal, thus the community tools and resources surrounding it may be more limited. There will also be the normal learning curve when adopting and using a new language.
 

Xamarin

.NET developers also have an option for their cross-platform dev needs. Microsoft’s Xamarin platform allows .NET developers to write cross-platform apps in the familiar language of C# and the power Visual Studio IDE. As with the other frameworks, one can create Windows, iOS, and Android applications. Microsoft shops may find Xamarin a more readily accessible cross-platform solution.
 

Conclusion

Choosing which platforms your application should be available on and what sort of resources will be needed to support them is something any organization should consider before beginning any major application development project. Depending on the answers, a cross-platform development framework such as the ones listed here may be worth exploring.
 

Questions?

Thanks for reading. We hope you found this blog post to be useful. Do let us know if you have any questions or topic ideas related to BI, analytics, the cloud, machine learning, SQL Server, Star Wars, or anything else of the like that you’d like us to write about. Simply leave us a comment below, and we’ll see what we can do!
 

Keep Your Business Intelligence Knowledge Sharp by Subscribing to our Email List

Get fresh Key2 content around Business Intelligence, Data Warehousing, Analytics, and more delivered right to your inbox!

 


Key2 Consulting is a data warehousing and business intelligence company located in Atlanta, Georgia. We create and deliver custom data warehouse solutions, business intelligence solutions, and custom applications.