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
Credits
Foreword
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Communication with the server


The code we use will use to talk to the server is the nonvisual component XMLHttpRequest. This component is actually already included in the global namespace, since that is where most normal JavaScript expects it. We will create a simple class wrapper around it to communicate with the server. The first part of the class is just the initialization:

var AJAXSocket = function() {
  this._host = null;
  this._counter = 0;
  this._clientId = Math.floor(Math.random()*100000);
  this._from = "Unknown_"+this._clientId;
  this._messageHandler = [];
  var self = this;
  setInterval(function () {
    self._handleListener();
  }, 250);
};
exports.AJAXSocket = AJAXSocket;

As you can see, we set up a couple of internal variables, and then we made a listener function fire every 250 milliseconds to ask the server for any new updates. This is not very battery or bandwidth efficient, but with some work, it could be made a lot smarter. Then, we made sure to assign this class to...