Xojo Inc showed off the iOS version of their development tool at XDC last week. They showed several Xojo compiled applications running in the iOS Simulator. They noted that all of the controls they showed were native iOS controls rather than drawn. This is important because some non-Apple iOS dev tools are not using native controls and instead draw their controls.
They showed buttons, lines, rectangles, ovals, html viewers, canvas controls, images, text area and text fields. The text fields automatically bring up the keyboard when they have the focus. In addition to controls that are more or less common to all platforms they iOS specific controls like bar buttons, icon buttons, views, split views, tab bars, tab buttons, and tables to name a few.
Tables look like they will be very easy to implement in iOS. Xojo implements sections and grouping at runtime and allow buttons and all sorts of crazy things you’d expect in an iOS table. One thing it will not do for the version 1 release is support gestures (swipe a table item to bring up a delete button for example).
The iOS version is going to use Styles for their controls. Styles can be at the application level, view level, and even down at the control level. This should make for some very interesting style sets. Xojo Inc indicated that eventually this new Style set will be implemented in all UI builds starting with iOS, then for Web Edition, and then finally for Desktop builds.
Debugging occurs in conjunction with the iOS Simulator on Mac OS X. Builds will be made with the LLVM compiler which is the same compiler that Apple uses for ARM. LLVM is a little slower than the regular Xojo compiler so builds will take longer than debug runs. LLVM is scheduled to be ready for iOS for the beta.
Because iOS devices change their rotation the concept of control locking is kind of outdated, or at a minimum rotation makes it much harder. Apple recommends using Auto Layout which allows you to make the maximum use of space for your controls. For example, localizing your apps can be difficult when it comes to sizing and laying out the controls. Auto Layout should make this easier. Cross-platform differences (like pushbuttons in Linux) should be easier with Auto Layout too as you can control sizes, relative sizes, fit to caption, and matching other controls.
The Xojo IDE handles much of this silently when you add controls to the layout. The Guidelines in the view/page/window editor will show the constraints and then there are a number of properties you can use too.
The demo that Geoff demonstrated during the keynote showed a couple of interesting Auto Layout properties. For one, he changed the localization between English and Afrikaans and captions automatically resized properly. Auto Layout also automatically constrains window minimum widths and heights. Frankly, it was nothing that you couldn’t do via code right now, but the demo showed what you could do without code. Only time will tell if Auto Layout is helpful or not. Xojo is implementing Auto Layout for iOS first, then Web and then for Desktop apps.
Building for iOS requires using the new Xojo framework. See this post for more info on it.
Xojo for iOS Beta isn’t close yet though it is scheduled for late summer 2013. They plan on shipping in December 2013. It will be missing a number of things like Core Data but there should be nothing from stopping a developer from making declares into the system to use what they need at the OS level.
iOS for Xojo looks promising. Much of the heavy lifting has already been done and now it’s just a matter of finishing it up. Sure, not everything will be available in the first release and I expect there to be hiccups that no one thought of but it’s showing promise now in the iOS Simulator.
I am skeptical of the summer beta and December release timeframes but perhaps we can all be pleasantly surprised for once. You can be sure that once we get closer we’ll know a whole lot more about its limitations in comparison to doing it in xCode and CocoaTouch.