Commerce Cloud Endless Aisle Technology Stack

The development components for Endless Aisle include:

Operating system The host operating system is iOS. The Endless Aisle app can run on current versions of iOS.
Titanium

Titanium Mobile SDK is the base of the Endless Aisle app. It’s an application framework that is written in the native language of the supported platforms. You interact with Titanium Mobile SDK using JavaScript APIs and modules that you can add to your app. Common platform modules expose native features. You can also create custom modules to extend the Titanium framework.

Within Titanium there is a JavaScript runtime, which lets you execute JavaScript code within the app. There are native modules that let you interact with native components that you can only access through Objective-C, like the address book and calendar. There is also a different native-to-JavaScript Bridge for each supported platform, including Android, Blackberry, and iOS, The JavaScript runtime makes calls directly to the Objective-C side using the JavaScript Bridge.

You also download Appcelerator Studio, which is the developer environment based on eclipse.

Alloy

Alloy provides a model-view-controller framework. Alloy uses Titanium Mobile SDK to abstract the creation of UI components. In order to implement the MVC, Alloy relies on Backbone.js and Underscore.js.

Alloy compiles into JavaScript to create a standard Titanium mobile app. All the sync adapters are definitions of the models. Models are mixed in with sync adapters, so you can reuse the sync adapters across multiple models.

Because it's multi-platform, different platforms support different styles and display sizes. Within an app, there can be different code to support different platforms. When Alloy compiles code for a specific platform, it removes any code that is specific to a different platform.

Views and styles are merged with controller code to generate pure JavaScript. Views are converted into widgets. Styles are applied on those widgets.

Backbone.js Backbone.js is the basis for model events. It’s also the basis for the sync adapters. Events themselves are a part of Backbone. For example, client side validation is a built-in feature of backbone. You can listen for changes on a model, whether a basket, a product, or a product line item. You can also listen for changes on a nested attribute, for example, variation values like size or color. When the app shows the product detail page and the customer selects a color, that’s a change in a nested attribute. You can then filter by variant so that you can update prices or available sizes. It’s a completely consistent and convenient way to update model view changes. Backbone has one dependency – Underscore.js.
Underscore.js Underscore.js provides common functions for objects, arrays, collections, events, and functions across browsers and other JavaScript environments. For example, if you want to take all product line items and get a price, you could use map() over the collection of product line items to map into an array of prices. You could use filter() to look for a matching set of objects. There are also array functions that mean you don’t have to write a bubble sort. There are also some advanced JS features too. For example, bind() lets you have a function always operate on a specific object. You can use wrap() to specify other functions to execute every time either before or after a particular function.
Endless Aisle app code At the highest level is all the custom code. This is what you can customize.

Related Links

Endless Aisle in Store Wi-Fi Requirements

Endless Aisle Supported Devices

Endless Aisle App Components

Endless Aisle and MVC

Caching in Endless Aisle

How Endless Aisle App Access Works