In the past year or so, we have witnessed a major shift from client-server to client-cloud. This shift is primarily
fueled by two factors: mobile devices exceeding desktop computers and the thousands of different APIs available on the Internet today. What started in early 2000 on eBay and Amazon has become a real revolution in 2012 with thousands of companies, from Twitter and Facebook to AT&T, offering cloud-based services.
One of the most common ways to access private or public service APIs is via REST requests.
In the client-server approach an organization builds applications that consume its own internal content and resources. However, even large IT organizations such as AT&T, Verizon and Amazon have come to realize that they are no match for the social consumer and social enterprise developers out there. By making APIs publicly available, these organizations hope that developers and “citizen developers” will come and build applications and mobile apps on top of their services.Citizen developers at work
Analysts at Gartner see a trend toward app creation independent of IT. They predict that by 2014, citizen developers – employees outside of IT and software development – will build 25% of new business applications. In 2007, they built less than 5%.
One of the best-known API success stories comes from Amazon: Its cloud service APIs let outsiders access the company’s massive data centers. Twitter, with its deceptively simple 140-character message model, exploded thanks to its API. In fact, you probably read and write tweets via a Twitter application or mobile app rather than going directly to Twitter’s Web site. Facebook’s Graph API has spawned a whole industry of apps to support its hundreds of millions of users.
Just looking at popular ProgrammableWeb site that lists close to 5,500 APIs (at the time of writing this) and 6,500 mashups or apps created that consume the various APIs. The city of San Francisco, already a mecca for startups, technology, and innovation, has made a big push into attracting developers by making city data and other date from its data.SFgov.org Web site available via API. For example, the city’s MUNI (city bus service) API is available for developers to build apps with using information about bus stations, schedules, and arrivals. Even the United States government jumped on the API bandwagon by making available data.gov, which provides public access to high-value machine-readable data sets generated by the U.S government.
Beyond this, a whole new market segment was created by companies such as StackMob, Parse, Kinvey, CloudyRec, and others that allow you to create your own back-end services and content instantly available as REST services.
The REST protocol consists of just four basic commands: GET for getting objects or data, POST for creating or posting new objects or data, DELETE for deleting objects, and PUSH for updating (and also creating) objects. This protocol along with the use of JSON as a format format greatly simplifies working with clients that consume various cloud-based services. For example, the following might get all objects of type Flower:
The following might be used to get a specific Flower with an ID of 1234:
The following could be used to create a new Flower:
The following might be used to delete a Flower object with an ID of 1234:
As you can see this is extremely elegant and easy to understand. As discussed in Cloud Tools section, using REST API inside tools makes this approach even simpler.
The client-cloud evolution is also being fueled by a new breed of cloud-based development tools. From the beginning of time (or at least it seems that way), tools would need to be installed on a developer’s computer. Today, many powerful and popular tools such as Eclipse (and its hundreds of plug-ins), NetBeans, IntelliJ, and others can be quickly downloaded and installed on a developer’s computer. Most updates can now be done within the tool, freeing the developer from re-downloading the tool again. These tools are also powerful, providing advanced visual and source features as well as extensive customization.
Despite how advanced these tools are, a shift is happening where development tools are moving into the Cloud. Eclipse itself has launched the Orion project. The Orion project is “basic” Eclipse in the Cloud and focuses on Web development. One of its main goals is to offer collaborative Web development.
And yet another cloud-based tool is Tiggzi. Tiggzi is a cloud-based HTML5 and PhoneGap mobile app builder. Tiggzi makes it super easy and fast to build exactly the apps that are described in this article: client-cloud. The mobile UI is built with HTML5 and jQuery Mobile components. Also, the UI can be easily connected to thousands of private and public REST APIs. In case, the mobile back-end actually needs to be created, services such as StackMob, Parse, and MongoDB can be used to create and expose back-end services and databases instantly via REST API. Tiggzi provides the following features that make it easy and fast to build clientcloud mobile apps.
HTML5 and jQuery Mobile drag and drop visual builder
To quickly build the mobile UI, components are simply dragged and dropped into the phone. Using the drag-and-drop approach makes building the mobile UI very fast.
PhoneGap included to create hybrid apps and get access to device features
In addition to HTML5 and jQuery Mobile apps, you can build PhoneGap (hybrid) mobile apps by using outof-the-box components or any accesible through the PhoneGap API.
Quick definition and connection to any cloud service
Define any cloud-based service, private or public, and connect to it.
A powerful API console allows you to quickly test the service to make sure it works before using it in an app.
Visual data binding for UI (UI to service, service to UI)
A drag-and-drop visual data binding editor allows you to quickly map data from the mobile UI to services
and then from services to the UI. This unique editor makes using and consuming any cloud service incredibly
fast and easy.
Testing the app instantly in the browser (desktop or mobile) or on the device (for native apps)
Because the app is being built in the browser, testing the app in the browser can be done instantly. At any point during development, the real app can be tested in a desktop or a mobile browser. PhoneGap (hybrid) apps can also be quickly tested by being launched from a special tester app. Make the app link public and share it with other users or the customer.
Collaboration on the app with other developers
Tiggzi Mobile App Builder comes with Google Docslike collaboration. Collaborate and work on the app with elopers in real-time.
Downloading the app as source code, mobile Web, or PhoneGap project (Android, iOS, Windows Phone)
Note: Windows Phone export added after the article was written.
The app can also be easily and quickly hosted with Tiggzi as a mobile Web app.
The New Stack: HTML5, REST Services, Cloud