Book Image

Getting Started with NativeScript

By : Nathanael J. Anderson
Book Image

Getting Started with NativeScript

By: Nathanael J. Anderson

Overview of this book

NativeScript allows you to build a fast cross-platform application that has a native UI. NativeScript is a true cross-platform framework that generates native speed applications using the native components of the host platform, all using JavaScript. Although NativeScript allows you to build your application in JavaScript, you have full access to the host OS from your code, allowing you to easily tweak or use new platform features instantly at native code speeds. Whether you have already developed multiple applications or zero applications, this book will help you to develop your next application in a cross-platform framework quickly, saving you a massive amount of time and money. This book concisely shows you NativeScript’s built-in framework that allows you to rapidly develop a fully-working compiled cross-platform application in just a few chapters. It starts by laying the foundation of NativeScript and working through the fundamentals to create a basic shell of the application. Moving on, you’ll see how to build a full-fledged application step by step. We’ll show you how to use plugins, and how to communicate with the native OS libraries easily so that you can customize your application as if your app was created in Java or Objective C. We then deal with the issues that arise from being cross platform and compensate for the different screen sizes, screen resolutions, and device abilities. Finally, we progress to testing and deploying your app.
Table of Contents (15 chapters)
Getting Started with NativeScript
About the Author
About the Reviewer

Local testing of your code

Let's look at testing the WebSocketWrapper.js file. At the top of it, it requires nativescript-websockets code. Well, the nativescript-websockets code only runs on Android or iOS. It doesn't run on your development machine. So, how are you going to test it?

You will use Proxyquire. Proxyquire is a Nifty library that allows you to replace any require statements during tests without modifying the code that you are testing. Using it allows you to dynamically replace the functions and classes exported from a module with mock or dummy replacements. A require statement would load the exported functions and classes into your code. So, let's look at the top part of the testWebSockets.js file:

var proxyquire = require('proxyquire');
var assert = require('assert');

var DummyWS = function() {
  this._isOpen = false;
  this._events = {};
DummyWS.prototype.on = function(event, callback) {
  if (!this._events[event]) { this._events[event] = [];}