The Early Bird… - Michi Henning

The Early Bird…

October 19th, 2008 | Filed under News, ZeroC | 1 comment

It’s been quite a while since my last post. The reason (as you might have guessed) is that we’ve been very busy with Ice Touch, which we released last week. If you haven’t seen it yet, I suggest that you head over and take a look.

Ice Touch really is quite a cool way to get network-enabled applications onto the iPhone and iPod touch. For example, we’ve ported our chat application to the iPhone, and you can use the chat server we host (or a server of your own) to run the Ice protocol straight from the phone to the server. We have also included an application that shows how to access a database from the iPhone.

Of course, strictly speaking, you don’t need Ice to do this. However, if you want to network your application using the facilities in the iPhone SDK, you are back to the way we did things twenty years ago, namely, raw sockets. And, as we all know, that’s a rather tedious way to do networking, and doubly so for a mobile device, with its often unreliable wireless network connections. Ice handles these things for you in its usual elegant way: failed operation invocations are retried automatically (provided they will not violate at-most-once semantics), and location transparency means that you do not have to hard-wire addresses and ports.

In fact, Ice Touch gives you a full-blown development environment with almost all of the features of Ice for Windows or Linux. To keep code size small, we made a few minor concessions in Ice Touch, but the important things are all there. In particular, the run time is fully thread safe, you can use TCP, UDP, and SSL, you can use synchronous and asynchronous invocations, and the iPhone can even act as a server.

Normally, you would not expect to run an Ice server on an iPhone. However, the server-side support is important for callbacks: you can implement an Ice servant in the iPhone and have it respond to invocations from a client elsewhere. In other words, with Ice, you can create push applications that allow a server in your corporate network to push information to the iPhone instead of having to poll the server from the phone.

Ice Touch provides the same router support as Ice for other platforms, which means that you can do all this even if the server you need to access from the iPhone is behind a firewall (thanks to Glacier2) and, because Ice Touch supports bidirectional connections, the firewall does not interfere with push applications.

The development language for iPhone applications is Objective-C so, naturally, Ice Touch includes an Objective-C mapping. The mapping is simple and elegant and nicely integrates with the Cocoa framework. For example, a Slice dictionary is mapped to a Cocoa NSDictionary, so you are already familiar with how to use it. After maybe half an hour of browsing the manual, you’ll be up and running, especially if you have experience with Ice for other programming languages.

Overall, Ice Touch is a great development platform for the iPhone and iPod touch. Ice Touch makes it easy to create networked applications that seamlessly integrate with your corporate computing environment. Or, if you are into the lighter side of computing, with Ice Touch you can create multi-user games without having to sink a large part of your budget into the development of custom protocol stacks and sockets code. And, in contrast to other mobile platforms, it is easy to distribute your application via the App Store.

We see a great future for Ice Touch. For one, the trend toward wireless mobile computing shows no sign of abating; the continuously improving wifi coverage and affordable unlimited data plans in many countries will accelerate this trend. Second, the iPhone’s computing power and memory capacity are at the point where it is possible to create fully-featured mobile applications with slick user interfaces that are fun to use, instead of having to live with applications that are crippled by the limitations of a less powerful device. Finally, future versions of the iPhone (and other mobile devices) will be more powerful still. It will be interesting to see the impact of Android, for example. I expect that, over the next few years, we will see a new renaissance in computing, driven by increasingly more powerful devices and applications that are truly distributed, with the user interface chores handled by the mobile device, and heavy-duty database and computing needs being met by remote data centers.

Ice Touch is the first and only middleware for the iPhone. It removes a major obstacle from the development of truly networked and interactive mobile applications. So, I suggest that you give Ice Touch a try, get your toes wet, and catch the wave. Or, as they say, the early bird catches the worm!

Cheers,

Michi.

Tags: , , , ,

Comments

RSS Feed
  1. [...] Michi Henning placed an observative post today on The Early Bird…Here’s a quick excerptFinally, future versions of the iPhone (and other mobile devices) will be more powerful still….For example, we’ve ported our chat application to the iPhone, and you can use the chat server we host (or a server of your own)…However, if you want to network your application using the facilities in the iPhone SDK, you are back to the way we did things twenty years ago, namely, raw sockets….However, the server-side support is important for callbacks: you can implement an Ice servant in the iPhone and have it respond to invocations from a client elsewhere…. [...]

    Pingback by The Early Bird… » iPhone Tricks — October 19, 2008 @ 5:06 pm

Sorry, the comment form is closed at this time.

Terms of Use | Privacy © 2009 ZeroC, Inc.