The Appcelerator “Now” App

At Appcelerator, account managers use an app called “Now”. “Now” is a cross-platform, Salesforce-connected app that gives our sales group an at-a-glance view of their opportunities and what they should focus on right now. Here’s a short video of how it looks on iOS and Android.

The “Now” app is also a great example of what an app built on Appcelerator’s suite of products can achieve for an organization. Here are some quick, technical stats on the app:

  • Built 100% on the Appcelerator Platform
  • Mobile app built on top of Alloy
  • Built in less than 5 weeks
  • 3 employees touched the app
    • Developer & Designer: Matt Congrove
    • QA: Cindy Kao
    • Architecture: Rick Blalock
  • A little under 5,000 lines of code
  • 99.95% code re-use across iOS and Android (only 37 lines of code are OS specific)
  • Node.ACS middle tier server to manage the data coming from Salesforce and in to the app
  • 15 Appcelerator Automated UI, Test scripts
  • CI/CD flow with automatic deployment

The document below shows a more detailed breakdown of the time and resources used for this app, compared with the time/resources required for building it using Objective-C or Java.

cost breakdown


The app originally talked directly to the SalesForce API. It worked perfectly but half way through the project we realized our SalesForce instance was going to go through some major customizations and changes. We were able to move most of the data / business logic code from the app to Node.ACS untouched because after all it’s all JavaScript. The Node.ACS server is now a middleware layer that brokers the data from SalesForce to the app.

The Node app is architected in a way where we can swap out the data source from SalesForce to SAP to even some demo data for our account managers to use so they can show off the app to customers.

While we were demo-ing the app to our account managers this quarter, the SalesForce instance actually went through some changes and broke the data structure. Since we were using Node.ACS, we were able to fix the issue on the server within a few minutes without missing a beat during the demo, or requiring any changes to the actual app! If we hadn’t built the data integration on the Node.ACS tier, we would’ve had to fix it in the app, re-compile, and send out a new app update to everyone.

Analytics and Performance Management

Analytics and performance reporting are a vital part of any serious, enterprise-grade app. The “Now” app leverages the Appcelerator Analytics and Performance Management, so that we can determine what features are being used by our salesforce and how they interact with the sales data.

On High Code Re-use

We were able to achieve 99.95% code reuse because of the unique design of the Now app. Code reuse can be defined in two different ways: Code referring to programming logic, or code referring to programming logic AND user interface code. In the case of the “Now” app, we decided to go with a platform-agnostic design, which allowed us to achieve 99.95% code reuse of both UI and programming logic! The app has very little OS specific API’s used, in fact, only 37 lines of code are platform specific.

It’s important to understand: when you build cross-platform Titanium apps, you can follow several different approaches: 100% native UI/UX, platform-agnostic UI, or a mix of both. If you use 100% the OS specific UI API’s, a lot of your UI code will be platform specific and things like Action Bars, Navigation Windows, etc. won’t be re-usable. If you choose a design route that has a very unique design that isn’t specific to any platform, then you can achieve very high UI code reuse. There isn’t anything wrong with either approach and Titanium can help you achieve either goal.

This app uses a view-based navigation architecture using our core.js boilerplate. There is one window and stacked views are animated in and out on that one window. If you’d like to see a sample app that utilizes this structure, we set one up for you here in the Core.js repo at


  1. Awesome! What’s the most difference beetwen these app and the salesforce app? Is the source code avaiable?

    • The SalesForce app is an all in one integration with SalesForce. It’s a bit much for a quick glance at certain things. The philosophy around the app is to give the account manager a quick glimpse of what he/she needs to see “now”.

    • Regarding the swipe menu: We’re grabbing a swipe gesture, animating and scaling the main view to the right. The menu is revealed when we move it over (the menu is a view that sits behind everything else.

Comments are closed.