Objective-C in the Cloud

Download Terrasphere (beta)

FAQ

Who will use Objective-C in the Cloud?

Objective-C in the Cloud is intended to be used by developers who are already familiar with Objective-C and at least with some of the frameworks that are part of OS X and iOS. We created Objective-C in the Cloud for you. Start Xcode, solve your problems with the tools and frameworks you already know, push it to Objective-C in the Cloud and you're done.

Why would you use Objective-C in the Cloud?

You may have some idea in mind that requires a web service or something else running in the cloud. With Objective-C in the Cloud you have Objective-C itself, as well as all the frameworks you know and love, at your disposal. When we created Objective-C in the Cloud, we had the following use cases in mind:

  • Exposing functionality provided by the frameworks as HTTP services to your apps/clients. This makes sense for many reasons. Think about tasks which are extremely processor-intensive (such as converting videos) that could be done in the cloud rather than on the (mobile) device itself. Another reason why you would want to expose framework functionality as HTTP services are the frameworks themselves. OS X comes with tons of powerful frameworks. You can write a face detector in 15 lines of code - so why not expose the face detector as a web service and make use of it in a web application?
  • Execute background tasks: scrape webpages, analyse PDF documents as well as audio and video files. There are many tasks that can be easily solved by using the frameworks provided by OS X/iOS to build a database or something else that's useful.
  • Permanent Storage: Core Data in the cloud - why not?

To make it clear: we have not built Objective-C in the Cloud because we are narrow-minded Objective-C freaks. No. We created Objective-C in the Cloud because of the frameworks. Learning a new programming language is easy but learning the frameworks available for any language is not.

How does Objective-C in the Cloud work in detail?

Let's assume your app is running on our servers. You can communicate with your app by sending us an HTTP request. We then transform this HTTP request into an NSDictionary and pass it to your method. You can examine the dictionary in your implementation and do anything you like with it. At some point you have to return a result in the form of a dictionary. We use this dictionary and transform it back into an HTTP response.

What kind of services can I run in the cloud?

There are three kinds of different services that you can run in the cloud:

  1. Classical request/response-driven services accessible via HTTP: you simply implement a method that has one input and one output. The input and output are both typed as an NSDictionary*. HTTP requests are transformed into a dictionary and passed to your method. You can do anything you want in your implementation. The output dictionary you return becomes the HTTP response.
  2. Background services: background services run all the time (if you decide to never suspend them) and can be used to do anything you want.
  3. Storage services: a storage service allows you to write data to a permanent storage location.

You can combine these services and chain them together. For example, a classical request/response service can put something in the background service queue and return immediately or do something else. At some point the background service queue will use your background service to work on the task. Once your background service has done its job, it can use a storage service to save the result permanently.

Where are my cloud apps hosted?

Your cloud apps will initially be hosted on Mac minis in Germany. Mac minis are very energy efficient and they have a lot of computation power. If you have special needs please contact us at team@objective-cloud.com.

What do I have to do in order to scale with Objective-C in the Cloud?

By default your request/response services and your background services scale automatically. Of course you can still limit the scaling we do on your behalf.

Can I run Core Data in the cloud?

Yes - although the storage service won't be initially available as part of the private beta.

How do I work with my cloud services?

Your request/response services will be made accessible via HTTP. Let's say you have implemented a service called -facesInImageWithImageDetectionRequest:. You simply send an HTTP request to http://objective-c-in-the-cloud.com/your_username/facesInImageWithImageDetectionRequest. The HTTP request has to contain all the information that your -facesInImageWithImageDetectionRequest: method needs. We will transform the HTTP request into an NSDictionary and pass this to your method. By default all of your services are publicly available. You can add access restrictions to the service by requiring authentication.

Do I have to upload the source code of my cloud app?

You can upload the source code (including your Xcode project). If you do so we will build it automatically and execute your unit tests - and if everything checks out, your app will be deployed. You also have the option to simply upload your app without the source code.

Do you have a review process like Apple?

Nope.

Is it possible to prevent unauthorised people/clients from using my services?

Yes.

What will happen to my cloud apps if you go out of business?

If this happens, we will make our server technology available to everyone in an open source fashion.