What is Icenium?
For the last 10 months I've been working on the Icenium team, here at Telerik.
Icenium is Telerik's brand new SaaS solution for mobile application development, currently targeting Android and iOS.
There are 2 basic ideas behind Icenium:
- Build them once, run them everywhere.
Icenium Mist & Graphite
Icenium provides not 1, but 2 environments in which the developers can build their applications.
Graphite is a desktop client application for Microsoft Windows. It's the richest of the two environments (for now :P).
Mist is the browser-based development environment.
My primary job was to work on the architecture and the development of Mist. That's why I will try to give you a bit better idea of this aspect of Icenium.
What can you do in Mist?
Create your project
You can choose from one of our 3 default templates:
- jQuery Mobile;
- KendoUI Mobile.
You can do all the file operations available in any other dev environment.
You can upload your files.
You can even import projects from archive.
And if you want to, you can export your projects.
User's of Mist can use all the local version control operations available - commit, revert, rollback.
Debug and Inspect in Simulators
We support simulators for 4 devices:
- Samsung Galaxy SII;
- Android Tablet (as generic resolution factor 1024x600).
Our simulators can be zoomed and rotated.
Also you can set mock data for simulating Geo Location.
Code Syntax Colorization
We support folding of your code. Our intentions are to take it even further - level folding with optional key shortcuts.
Our editor also supports Auto Tag Closing, Highlight Matching Identifiers, Tab Indention on Selection, Smart Indention.
Users can set rich variety of project specific settings:
- Device orientations (Landscape and Portrait);
- Application version;
- Used Plugins;
QR Code and Build for App Stores
From Mist you can build your app and deploy it to any supported device.
We generate QR code so you scan it with a device and get the application on it initially and then you can pull the latest version of your app, by using a simple gesture on the device.
This way we even add functionality that is now available only in Mist - the ability to easily share your application during development:
- Let's say you are on an event (conference for example) and you want to show sample on which you currently work on - you load your project in Mist, run build for it and let people scan the QR code from the screen of your device. Cool, isn't it? :)
Here is an example of our QR Code generation:
Closing the end-to-end scenario, you can finally upload your provisions and certificates and build for Google Play as well as for iOS App Store.
Current limitations compared to Graphite
Find & Replace
This is a feature that we will definitelly implement for future releases. It will be possible to execute Find & Replace at least on solution and file levels.
Code Editor - Syntax and Logical Error Reporting (unused variables etc.), Smart Autocompletion
The only static analysis we currently make, is for code syntax colorization.
All the missing features are on our backlog and we will eventually implement them in Mist.
We haven't put too much thougth on this and we'll probably emphasize on coding experience and not so much on tools that work mostly for strongly typed languages.
For now we are thinking about Identifier Rename (variable rename).
Remote Version Control Operations
Not yet implemented in Mist, Graphite already has clone and push from/to remote repository.
These and even more (pull for example) remote operations will be implemented in Mist for our next releases.
Icenium Mist supports the end-to-end scenario:
- You can create a new project;
- Implement your application using Mist's environment;
- Use Version Control along the way;
- Use simulators for testing and debugging;
- Use real devices for testing and debugging;
- Share and Demonstrate easily your app (QR Code);
- Set all your project settings and properties;
- Build for app stores.
You can use it wherever you are. Supported are the following browsers:
Plus, we work on Mobile Chrome for Android and Mobile Safari for iOS.
Work from anywhere on your applications. :)
Here you can check Mist's documentation.