From Xojo Documentation
Welcome to Xojo, an integrated software developer tool and programming language that is the easiest way to make desktop, web and iOS apps. With Xojo you can create desktop apps for Windows, Mac and Linux (including Raspberry Pi), web apps for all popular web browsers and iOS apps for iPhones, iPads and other iOS devices.
Xojo is a rapid application development (RAD) tool with a user interface (UI) builder that lets you create your app's user interface with little to no programming required. If you know how to drag and drop, you can build the UI using the wide variety of built-in controls, making it easy to create powerful, multi-platform desktop, web and iOS applications faster than you ever thought possible. If you are new to programming, you will find Xojo’s object-oriented programming language easy to learn. If you are an experienced programmer, you will find the language to be powerful and robust. In either case, you will find you can accomplish quite a bit in a short amount of time.
One way Xojo makes app development faster and easier than traditional tools is by removing the need to learn how to use the complex Application Programming Interface (API) for the operating system. Instead, you use the Xojo Programming Language and Framework which provides a simpler and faster way to create your apps.
Xojo doesn't force you to use a specific OS. Are you a Mac developer that wants to create Windows apps? You can do that with Xojo right from your Mac. Do you use Windows, but want to create Mac apps? You can do that from within Windows. In fact, you can develop using Xojo on Windows, Mac or Linux to create apps that work on Windows, Mac, Linux or web (iOS app development does require a Mac, however).
About the Xojo Programming Language
Xojo is an integrated tool, but it is also a programming language for Windows, Mac, Linux, iOS, web and Raspberry Pi. Xojo builds on languages such as Visual Basic and Java to provide the fastest and easiest way for you to create the apps you need for the platforms you use. Xojo uses safe programming patterns (strong data typing, for example), is object-oriented and has modern programming features such as introspection, extension methods and delegates. Programming with Xojo is fast, easy and most importantly, fun!
Although maybe you haven't heard of it before, Xojo has been around for many years. Since 1998, in fact. Xojo was originally called REALbasic, then eventually Real Studio, but the programming language remains largely the same. Xojo was one of the first languages to use Automatic Reference Counting (ARC), something that other languages such as Swift and Objective-C now use. Although Xojo is easy to learn and use, it also has advanced features such as namespaces, extension methods, exception handling, introspection, delegates and more.
And Xojo is always being modernized. For 64-bit apps (and Raspberry Pi), Xojo uses the LLVM compiler tools to compile your apps for the best possible performance. LLVM are the same compiler tools used by Apple with Swift and Objective-C. A new Xojo framework is being made available, which uses a more modern design, standardizes API calls and takes advantage of new technologies. Xojo is ready for the future and the next 20 years of software development.
Xojo feels familiar to programmers who have used other languages such as Visual Basic, Java and C# because it uses a similar object-oriented programming model, with similar data types and constructs. Using Xojo, you'll be able to create apps even faster than you ever thought possible.
Xojo is also friendly to new programmers. A big problem with most programming languages is that they are overcomplicated and overwhelm those new to them. Xojo has a powerful, integrated code editor with auto-complete that makes it easy to learn the language. The Xojo IDE is also incredibly easy to use, making experimentation (one of the best ways to learn) fast and fun.
Xojo is a great programming language for creating all types of apps, from simple "hello, world" to powerful enterprise software. With Xojo you'll create your apps in less time than before at less cost, making it a great investment for you or your company. It is a wonderful way to create apps for Windows, Mac, Linux, iOS, web and Raspberry Pi and continues to evolve with new features and capabilities added on a regular basis (quarterly, in fact). Our goals with Xojo have always been to make programming simpler. We can't wait to see what you create with it!
You can download Xojo for your operating system (Windows, Mac or Linux) from the Xojo Download page. You'll have to first create an account (your Xojo ID), but after that Xojo is free to use. You can purchase a license when you are ready to create stand-alone apps. Xojo works on all current operation systems. For more specifics, you can review the Xojo System Requirements.
After the download has completed, you can run the installer (or copy the files) for your OS. Once the installation is finished (it only takes a minute or so), you can start Xojo to begin creating your first app.
Starting with Xojo
After starting Xojo, the Project Chooser window appears. In order for you to quickly dive right into Xojo, follow these steps to create your first (admittedly simple) desktop app.
- In the Project Chooser, choose "Desktop" and fill in the App Name as "MyFirstApp" and click OK. This displays the IDE (or Integrated Development Environment) with the Workspace for the project. This is where you work on your Xojo projects, creating UI layouts and writing code. Don't worry about everything that you see there, it will be covered later in the User Guide.
- Now, drag a Button from the Control Library on the right onto the Window layout in the center. You can position the button anywhere you like within the window.
- With the button selected, press Return to change its caption to "Click Me".
- Double-click the button on the layout to add an Event Handler. This is where you'll put a single line of code to display a message when the button is clicked.
- After double-clicking the button, the Add Event Handler window appears.
- Select Pressed and click OK to add the Action event handler. This event handler is called when the button is pressed.
- The Code Editor now appears. Add this simple line of code to display a message: MessageBox("Welcome to Xojo!")
- Click the Run button on the toolbar to run your app.
- Click the button to display the message.
That's it. You've now created an app. Although Xojo makes it easy to create simple apps, it can also create much larger and more powerful apps just as easily. In fact, Xojo is actually written in Xojo!
User Guide Contents
- Layout Editor
- UserGuide:Code Editor
- UserGuide:Image Set Editor
- UserGuide:Picture Editor
- UserGuide:Menu Editor
- UserGuide:Toolbar Editor
- UserGuide:Report Layout Editor
- UserGuide:Style Editor
- UserGuide:File Type Group Editor
- UserGuide:Find, Errors, Messages Panels
- UserGuide:Running the Project
- UserGuide:Project Types
- UserGuide:Keyboard Shortcuts
- UserGuide:App Icons
- UserGuide:Desktop Apps
- UserGuide:Web Apps
- UserGuide:iOS Apps
- UserGuide:Xcode Setup
- UserGuide:iOS Simulator
- UserGuide:iOS App Icons
- UserGuide:iOS Retina Images
- UserGuide:Using a plist
- UserGuide:Copy Files to iOS Device
- UserGuide:iOS Device Deployment
- UserGuide:Submitting to the iOS App Store
- UserGuide:Submitting to TestFlight
- UserGuide:Deploy to Device With Free Xcode Provisioning Profile
- UserGuide:Console Apps
- UserGuide:IDE Scripting
- UserGuide:IDE Communicator
- UserGuide:Desktop Windows
- UserGuide:Desktop Control Hierarchy
- UserGuide:Desktop Button
- UserGuide:Desktop Bevel Button
- UserGuide:Desktop Disclosure Triangle
- UserGuide:Desktop Popup Arrow
- UserGuide:Desktop SegmentedButton
- UserGuide:Desktop Scrollbar
- UserGuide:Desktop UpDown Arrows
- UserGuide:Desktop Check Box
- UserGuide:Desktop Popup Menu
- UserGuide:Desktop Radio Button
- UserGuide:Desktop Slider
- UserGuide:Desktop Text Field
- UserGuide:Desktop Text Area
- UserGuide:Desktop Combo Box
- UserGuide:Desktop Canvas
- UserGuide:Desktop Label
- UserGuide:Desktop Line
- UserGuide:Desktop Oval
- UserGuide:Desktop Placard
- UserGuide:Desktop Rectangle
- UserGuide:Desktop Round Rectangle
- UserGuide:Desktop Separator
- UserGuide:Desktop Group Box
- UserGuide:Desktop Page Panel
- UserGuide:Desktop Tab Panel
- UserGuide:Desktop Progress Wheel
- UserGuide:Desktop Progress Bar
- UserGuide:Desktop List Box
- UserGuide:Desktop HTML Viewer
- UserGuide:Desktop Image Well
- UserGuide:Desktop Movie Player
- UserGuide:Desktop OLE Container
- UserGuide:Desktop OpenGL Surface
- UserGuide:Desktop Controllers
- UserGuide:Office Automation Overview
- UserGuide:Desktop Reports
- UserGuide:Desktop Dialog Boxes
- UserGuide:Desktop Toolbars
- UserGuide:Desktop Menus
- UserGuide:Desktop Control Sets
- UserGuide:Desktop Container Controls
- UserGuide:Desktop Drag and Drop
- UserGuide:Desktop Custom Controls
- UserGuide:Web Pages
- UserGuide:Web Control Hierarchy
- UserGuide:Web Button
- UserGuide:Web Segmented Control
- UserGuide:Web Toolbar
- UserGuide:Web Check Box
- UserGuide:Web File Uploader
- UserGuide:Web Popup Menu
- UserGuide:Web Radio Group
- UserGuide:Web Scrollbar
- UserGuide:Web Slider
- UserGuide:Web Search Field
- UserGuide:Web Text Area
- UserGuide:Web Text Field
- UserGuide:Web Canvas
- UserGuide:Web Label
- UserGuide:Web Link
- UserGuide:Web Rectangle
- UserGuide:Web Separator
- UserGuide:Web Progress Bar
- UserGuide:Web Progress Wheel
- UserGuide:Web HTML Viewer
- UserGuide:Web Image View
- UserGuide:Web List Box
- UserGuide:Web Map Viewer
- UserGuide:Web Movie Player
- UserGuide:Web YouTube Movie
- UserGuide:Web Animator
- UserGuide:Web Controllers
- UserGuide:Web Device Location
- UserGuide:Web Page Source
- UserGuide:Web Timer
- UserGuide:Web Dialog Boxes
- UserGuide:Web Control Sets
- UserGuide:Web Container Control
- UserGuide:Web Menus
- UserGuide:Web Drag and Drop
- UserGuide:Web Custom Controls
- UserGuide:Using Google Fonts in Web Apps
- UserGuide:iOS Auto Layout
- UserGuide:iOS Button
- UserGuide:iOS Canvas
- UserGuide:iOS Container Control
- UserGuide:iOS Control Hierarchy
- UserGuide:iOS Controllers
- UserGuide:iOS Date Picker
- UserGuide:iOS Dialog Boxes
- UserGuide:iOS HTML Viewer
- UserGuide:iOS Image View
- UserGuide:iOS Label
- UserGuide:iOS Launch Screen
- UserGuide:iOS Line
- UserGuide:iOS Location
- UserGuide:iOS Message Box
- UserGuide:iOS Oval
- UserGuide:iOS Picture Picker
- UserGuide:iOS Progress Bar
- UserGuide:iOS Progress Wheel
- UserGuide:iOS Rectangle
- UserGuide:iOS Screens
- UserGuide:iOS Scrollable Area
- UserGuide:iOS Segmented Control
- UserGuide:iOS Separator
- UserGuide:iOS Sharing Panel
- UserGuide:iOS Slider
- UserGuide:iOS Split Screen
- UserGuide:iOS Switch
- UserGuide:iOS TabBars
- UserGuide:iOS Table
- UserGuide:iOS Text Area
- UserGuide:iOS Text Field
- UserGuide:iOS Tool Button
- UserGuide:iOS Toolbars
- UserGuide:iOS Views