Unify

Native-like applications for smartphones, tablets and desktops

Unify was built to improve the development efficiency of apps for smartphones. Currently it supports smartphones based on the platforms iOS, Android and WebOS. There is support for desktop operating systems like Windows or Mac OS as well.

The software makes use of a whole range of modern web technologies such as HTML5, CSS3 and JavaScript. A typical end user should not be able to distinguish an application built with Unify from a natively programmed application. Unify bypasses the traditional limitations of the web browser. Detecting the current geo location, accessing the file system, etc. is easy to implement.

There are a lot of benefits of this approach. First it saves money and improves time-to-market. Secondly it reduces follow-up costs as only one implementation needs to be developed further. JavaScript and web technology is improved rapidely at the moment. Just-in-Time compilers and graphic accelaration will be widely support in the upcoming quarters.

Unify is made available under a dual license: MIT + Apache, Version 2.0

Showcase API Twitter

Features

Mobile Application Support

  • iPhone-Style App Navigation
  • Integrated Application Recovery Support
  • URL-based Navigation (Bookmarkable)
  • In-App Navigation via Standard Links
  • Animated Layer Control

Mobile UI Components

  • Activity Indicator
  • Tab Views
  • Elastic Scroll & Slide Views
  • Segmentation Controls
  • Toolbars & Titlebars

Business Layer

  • Powerful Communication API
  • Intelligent Caching
  • Support for HTTP Proxying
  • YQL Support

Misc APIs

  • Support for TouchScreen Events
  • Integrated Support for CSS3 Transitions
  • Lightweight Browser History Support
  • Geo Location API
  • URI Parser

Integration

  • XCode Project integration
  • Android Project integration
  • Adobe AIR integration

qooxdoo Optimizations

  • Improved Client-/Feature-Detection API
  • Completely Rewritten Property System
  • Improved Theme System
  • Performance Optimization
  • Reduced Number of Dependencies

Foundation

A modern JavaScript framework with advanced OO support, powerful UI components and great toolings.

The defacto standard to bring natively-enhanced web applications to existing mobile app stores.

Foundation Features

Desktop UI Components (qooxdoo)

  • Wide Range of Mature Components
  • No CSS/HTML Knowledge Required
  • Custom JSON-Like Theming Engine
  • Cross Browser Unique Behavior/Look&Feel
  • Powerful Layout Managers
  • Decorators for Borders/Shadows
  • Advanced Form Managment + Validation
  • Full-blown Window Manager
  • Virtual Widget Infrastructure

JavaScript Core (qooxdoo)

  • Object Oriented JavaScript
  • Fully Event-Based
  • Properties (setter/getter)
  • Full Localization Support
  • High-Performance DOM Manipulation

Misc APIs (qooxdoo)

    Range and Selection APIs
  • Rich-Text Editing Support
  • Ajax Support
  • CSS Selector Engine (Sizzle)
  • Formatters (Date, Number)
  • Colors Parsers / Converters
  • JSON Support
  • Support for Flash Embeds

Tooling (qooxdoo)

  • Dependency Analysis
  • JavaScript Compressor
  • Platform Specific Builds (Variants)
  • Built-in API Viewer
  • Built-in Unit Testing Framerwork
  • Resource Managment (Images, CSS)

Desktop Capabilities (Adobe AIR)

  • File System Access
  • Drag and Drop
  • Run at Startup
  • File Extension Registration
  • Microphone Support
  • UDP Networking
  • Encrypted Database
  • Custom Window Chrome
  • Clipboard Access

Mobile Capabilities (PhoneGap)

  • Geolocation
  • Accelerometer
  • Camera
  • Vibration
  • Contacts
  • SQLite
  • Audio Playback

Roadmap

Unify 2.0 (Q4/2011)
switch to UI component model (widget system)
support of Qooxdoo layouting system
support of Qooxdoo themeing system
Unify 1.2 (Q3/2011) done
update to newest platforms
support of tablets
Unify 1.1 (Q1/2011) done
stabilization release
Unify 1.0 (in Q3/2010) done
added support for iOS 4.x
added support for Android 2.x.
added support for WebOS 1.x.
Unify 0.5 (in Q4/2009) done
iOS 3.x.

Demos

Try the googly sample app included in the source code (unify/application/googly)

Real life examples

Telekom E-Mail for iPad
email client served to ipad users of telekom email services
deployed from a common web server
custom theme designed for telekom

Developers

Bernhard
Hochstätter

Project Lead

XING

Sebastian
Fastner

Lead Developer

Tutorials GitHub Twitter XING

Alexander
Dittner

Developer

GitHub Twitter XING

Filiz
Hazer

Student

GitHub XING

Sebastian
Werner

Former Lead Dev

GitHub Twitter XING

FAQ

Q: What's Unify?
A: Unify allows the programming of applications for smartphones, tablets, desktops and other web enabled devices with a single technology stack. The main claim of Unify is to allow solutions thats users can not differentiate from natively programmed applications.

Q: Why Unify?
With Unify you are immediately able to develop application based on a well defined API that is equal across all platforms. Basically it's using standard web technology that is well known to many developers.

Q: What platforms are supported by Unify?
A: For now Unify supports smartphones based on iOS, Android and WebOS. It also supports Windows, Mac OS and Linux.

Q: What about smartphones from Nokia, Blackberry, etc.?
A: Our priority is to support platforms with an widely accepted application market. With this aspect in mind the iOS and Android based devices are currently the most interesting platforms. As soon as manufacturers of other platforms achieve a similar popularity, Unify will also strive to support them. Support for BlackBerry OS 6.0, Windows Phone and Nokia's operating systems is planned for 2011.

Q: Is it difficult to develop applications for differenct platforms using the same development technology?
A: Yes and no. First of all, the development and run environment provided by Unify is equal over all platforms. So all platforms can use the same interfaces, business logics and data models. It is very easy to have a well tested base of application code over all platforms. The challenging task is to create the user interfaces. As every platform has is own usage patterns you have to adapt your UI to the common behaviour of the target platform.

Q: Why does Deutsche Telekom develop such a solution?
A: Currently there are no comprehensive and well-established solutions available. The cost of native development for multiple devices are high. Each platform must be individually developed, maintained and improved.

Q: Do external partners contribute to Unify?
A: Unify has just been published as open source. The license allows external partners to use, extend and improve it as well. As open source software allows everybody to have a look at the code. there is a good chance, that the overall quality will be higher than in closed software.

Q: What technologies is Unify based upon?
A: Unify makes use of several existing frameworks and technologies. At its core it is based on web technologies. HTML5 and CSS 3 are two of the essential ingredients. The whole UI is generated by JavaScript. Unify makes use of the qooxdoo framework for professional JavaScript development.

Q: Are web technologies powerful enough?
A: Web technologies are currently improved at a rapid pace. Browsers such as Firefox from Mozilla or Chrome from Google are improving their performance by about 30% per quarter. Impressive animations, playing audio and video files, accessing databases etc. is pretty easy to implement. Even features like accelerated graphics are on the way to the browser engines. So yes, we think web technologies are really powerful enough.

Q: What distinguishes Unify from other solutions based on web technology?
Unlike some older and less sophisticated solutions Unify aims to bring a native look&feel to applications. The usage of a professional and mature JavaScript framework helps developers building applications rapidly.

Q: Is Unify prepared for the future?
A: In contrast to technologies that are based on translation of program code, Unify is future safe. Its foundation is built upon open and widely distributed technology used for years now. Through the improvements in the underlaying software the speed and the possibilities are quite good even on older hardware.

Q: Could web applications integrate themselves to the system?
A: Web applications typically run in a browser, which does not allow any access to the system. That is the so-called sandbox. A typical web application has no way to read emails or files of the user. Technologies like PhoneGap allow to break out of these boundaries. Applications built using these solutions enjoy the same level of access and integration.

Q: Why does Unify chose PhoneGap?
A: PhoneGap is currently the only technology of its kind that makes it possible to publish applications in the Apple AppStore and Android Market. For the moment this is the reason why it is more interesting for application developers than initiatives like BONDI or JIL. PhoneGap is open source. It can be perfectly adapted to the needs of Unify.