Review: Appcelerator is a mobile cloud platform in progress
Appcelerator Platform 2 combines rich mobile client support with the advantages of Node.js, but lacks pre-built integrations and full sync support
MBaaS reviews
- Review: Appcelerator is a mobile cloud...
- Review: Kinvey boosts enterprise mobile...
- Review: FeedHenry uses Node.js to...
- Review: Parse delivers on mobile apps,...
- Review: AnyPresence aces enterprise...
Appcelerator Insights allows you (or your manager) to view published analytics on an iPad. The most recent improvement in Insights is the ability to view event funnels. If properly constructed, event funnels can tell you how users are progressing through your app, whether they are getting to the key functionality, and if not, where they are bogging down.
Appcelerator Platform allows you to build custom back-end services using Studio and Node.ACS. Node.ACS combines Node.js and Express with interfaces to Appcelerator Cloud Services and a model-view-controller (MVC) framework. Appcelerator also allows you to run plain Node.js applications on its cloud platform.
The Node.ACS support in Studio requires you to have Node.js installed on your development machine, and it tries to install acs
with Node. On my iMac, this failed. I eventually had to run this rather scary command in Terminal:
sudo npm --unsafe-perm -g install acs
Some developers at Appcelerator found that for me, and it worked -- but using the unsafe permissions
flag to Node's package manager didn’t exactly make me feel warm and fuzzy. Appcelerator claims this is a known but uncommon Node.js bug; Node.js claims it’s a bad install script. Finger-pointing doesn’t make me feel warm and fuzzy, either, especially finger-pointing at a free, open source software project to which you’re adding commercial software.
Appcelerator Studio's app configuration screen.
Frameworks and API types
Appcelerator has multiple frameworks on the client side and multiple API types for the cloud. At the base level on the client, Appcelerator offers the Titanium SDK, which provides an interface between JavaScript and native services. At a higher level, Appcelerator offers the Alloy Framework, which is based on the MVC architecture and contains built-in support for Backbone.js and Underscore.js. When you create a new client app from Studio, you’ll typically generate one that uses Alloy.
On the cloud side, you can reach the Appcelerator Cloud Services using a REST API, via bindings to the Titanium SDK, via Node.ACS as discussed above, and via native SDK support as discussed below. The REST API will always work, though it’s the least convenient option. You’ll mostly want to use REST calls to reach new services that don’t yet have bindings to the Titanium SDK.
Using the acs command to publish an app from within Appcelerator Studio.
Native SDK support
Appcelerator used to make a big deal about Titanium's ability to trans-compile JavaScript into native code for iOS and Android, and pooh-poohed any need for Native SDK support. As part of Appcelerator's transition into having an MBaaS, it now includes Native SDK support for iOS and Android.
On iOS, you’ll have to add the Appcelerator framework code to your Objective-C project, import Appcelerator.h
from your code, and call various Objective-C classes starting with APS
. On Android, you’ll copy the Appcelerator framework JAR file to your Java project, import the APSServiceManager class, and call various Java classes starting with APS
. In both systems, working from the provided examples and instructions to add MBaaS functionality in the native SDK tools is straightforward. However, none of this is included in Appcelerator Studio. Rather, you use Eclipse or Xcode for this editing. In the future, as I understand it, Studio or some other Appcelerator component might support actions to add the appropriate stuff to Java and Objective-C projects.
MBaaS reviews
Facebook's MBaaS shines for consumer mobile applications, but misses some must-haves for business...
AnyPresence combines broad client support, useful code generation, and a rich set of options for...