As you know, we are working hard and fast on adding support for iOS to Xojo (Xojo iOS is here, download it today!). Just as we have done for the desktop and web, iOS support will make it easy for anyone to build powerful iPhone and iPad applications. To help you prepare and plan, here are 10 things you need to know:
1. A Mac will be required.
When you run from the Xojo IDE, your app will be compiled and run using Apple’s iOS Simulator. That app runs only on OS X. And that app is part of Xcode which means you will need Xcode as well. But fear not. Xcode is free and you won’t have to actually use Xcode at all. It just needs to be installed on the Mac on which you do your development work so that the Xojo IDE can access the iOS Simulator and other tools, behind the scenes.
2. An Apple iOS Developer account will be required.
Apple requires an iOS Developer account in order for you to be able to deploy your app once you are ready to do so. If you don’t have one, you can get one here.
3. The development process is the same.
If you’ve used Xojo already, you will find the process of using Xojo to create iPhone and iPad apps to be nearly identical to how you work today. You drag and drop to create the user interface, double-click to access events, add methods and properties, etc.
4. The framework is very similar.
You will find that most of the classes you are used to using are there. We have taken this opportunity to make them more self-consistent, more consistent with each other as well as instituting some changes that will make them easier to use and more intuitive. We’ve also been working on solving some common problems you’ve been running into over the years. You will have a few new things to learn, but we think you’ll pick them up quickly.
To avoid confusion between this new framework and the one you use today, they each will have unique names. This new framework will be the “Xojo Framework”. The one you use today will then be referred to as the “Classic Framework”. The Xojo framework will start with iOS but will be available later for the web and desktop as well. Can the Xojo and Classic Frameworks be used together? Keep reading.
For iOS specifically there will be a couple of new concepts to learn. For example, layouts for the desktop are called windows and for the web, webpages. For iOS, they are called views. iOS projects also have something called Screens which hold views. Screens have some features views don’t have such as the ability to have tabs and be split on iPad.
5. You can share code between your desktop, web and iOS projects.
Yes, you can share code between them. However, that code must be written with the Xojo Framework. Classic Framework code is not shareable with iOS projects. However, we think you will find that converting code from one to the other will a pretty straightforward operation. And you’ll find some niceties in the Xojo Framework that we think will make you want to use it.
6. No plugin support (at first).
While we won’t have plugin support for the first release, we do plan to have them available for iOS projects in a future release.
7. That means database server access will be different.
Our database server access is all via plugins, so they won’t be available. However, for security reasons, directly accessing a database from your app isn’t a great idea anyway. It’s better for you to have your iOS app talk to a console app running on a server somewhere and have that console app talk to your database server. You will be able to use this solution from day one.
Note that this does not affect access to SQLite. We plan to provide that in the first release.
8. Some things will be missing.
There will be parts of the Classic framework you are used to using such as RegEx, XML, etc., that will not be available in the first release for iOS. There will also be things from iOS itself such as access to the camera which will not be available in the first release. However, we will be updating our iOS support every quarter, adding more access with each release.
9. You can use declares.
If you just can’t wait for an update that provides access to a nifty iOS feature, I have good news for you. Using Declares you should be able to access just about any feature in iOS you want. It won’t be as easy as it is when we have it built-in, but it’s a solution. We expect that many of you will be creating libraries of declares and sharing them with the community.
10. Start learning about exceptions.
The Classic Framework uses error codes for some things and exceptions for others. We find that exceptions make for much cleaner, easier to read code. In the Xojo Framework you will find few error codes and a lot more exceptions. I personally had never used exceptions in any past programming language so I was unsure of them at first. But once I learned how they worked, I realized they made my code much easier to work with. If you haven’t used them, take this opportunity to start learning about them now. The basic idea is that when something goes wrong (such as attempting to write to a volume that is read-only), an exception occurs and there’s a place for you to put your code that deals with that. In most cases, when exceptions occur the user can’t really recover from it. They will have to start again. In this example, the app should tell the user they need to choose another place to save their data. Once you get used to using exceptions, you’ll see that they can really clean up your code compared to using nested IF statements with functions that return error codes. If you’re not comfortable with exceptions, start learning about them now.
We are alpha testing Xojo for iOS now. Beta testing comes next and we plan to be shipping later this year. We are excited to be bringing Xojo users yet another platform to which you can deploy apps and we are confident that Xojo for iOS will be the easiest and swiftest way to create apps for iOS.
UPDATE December 2014: Xojo iOS Support was released in Xojo 2014r3. If you don’t have the latest Xojo release, download it now and get to work on your next iOS app in your favorite RAD tool, Xojo!