Xojo is an extremely useful, fast and fun development environment for building your first (or next) iOS app. In this article, I offer a series of practical steps to guide you from idea to app.
1. Define Your Idea
Start by summarizing your app’s purpose in a single, clear sentence. The more concise it is, the better defined your objective will be. This clarity will help guide your screen designs, navigation structure and code architecture.
This sentence can also double as your app’s short description in App Store Connect.
Focus on the essential features that form your app’s Minimum Viable Product (MVP). It’s easy to get sidetracked by new ideas during development. Resist the urge! Instead, keep a list of potential features for future updates and base priorities on user feedback.
2. Choose The Platform(s)
Xojo supports both iPhone and iPad, but your app doesn’t have to. Choose the device type that best fits your app’s use case.
- iPhone apps often support quick, task-based interactions.
- iPad apps are better suited to immersive, content-rich experiences.
To target a specific device only, set the unused layout (iPhone or iPad) to “None” in the App item’s Inspector Panel.
You’ll also need to decide the minimum iOS version to support. Xojo currently defaults to iOS 14.0, but as of writing, over 60% of users are on iOS 18 or later.
3. Prototyping
Xojo’s visual layout editor makes it easy to dive in designing your app. But take time to prototype your app first, especially if it has more than basic functionality.
Use tools like Figma or MockUp, or simply sketch your ideas with pencil and paper. Choose whatever helps you plan best and clearly.
Also, review Apple’s Human Interface Guidelines to align your app with native iOS expectations.
When designing in Xojo, you can fine-tune layout behavior using the iOSLayoutConstraint class to adapt to orientation and screen size changes at runtime.
4. Database Design
Most apps use a database. For local storage on iOS, use SQLiteDatabase, and save your database file in SpecialFolder.Documents.
Two key best practices:
- Add a Metadata table to track the database schema version.
- Create a custom SQLiteDatabase subclass to manage all read/write operations in one place.
This setup allows you to always know which version is installed on the user’s device and to react accordingly as your app evolves.
5. Graphic Resources
For icons, buttons and tab bar images, use Picture.SystemImage with symbols from Apple’s SF Symbols app. These scale beautifully across devices and adapt to light/dark mode. Just ensure compatibility with your minimum iOS version.
When using custom images, add them at multiple resolutions for optimal display across all screen sizes.
Typography also matters. Use system fonts thoughtfully, ideally no more than two font families. Vary sizes and weights to establish content hierarchy. Keep text readable with a minimum font size of 11pt.
Tip: When testing in the Simulator, set the window to physical size (Simulator > Window > Physical Size) to preview real-world readability.
6. Localization and Accessibility
Nothing prevents you from publishing an app in a single language, whether it’s your native language or English; but supporting multiple languages can increase downloads by over 100x.
Start localizing early to avoid design issues later. Add a module to your Xojo project with localized String constants for all app text, and enable the “Localized” option for each one.
Suggested languages (in order of impact):
Core: English
High-impact additions: Chinese, Spanish, German, French, Japanese, Italian, Portuguese, Russian, Korean
Also, localize accessibility labels and App Store listings, including screenshots and descriptions, for each supported language.
7. Testing the App
Xojo provides multiple ways to test your app, both from a design and user experience perspective, as well as from a functionality perspective:
- Simulators: Ideal for design, layout and localization testing. You can also use them to take App Store screenshots.
- On-device Debugging: Offers realistic input experience and access to hardware-only features.
- Build to Device: Lets you run the app outside the debugger, simulating real-world use.
Once you’ve finished fixing bugs in your code and app design, move on to testing in the real world by compiling your app and using Xcode to copy that bundle to a physical device. Testing like this, you’ll likely find some optimizations, especially around design and usability.
TestFlight is your gateway to external beta testers. After uploading a build to App Store Connect, create a public link to invite testers. Remember to increment the version number with each new build.
Tip: Add
ITSAppUsesNonExemptEncryption = False
in your Property List to streamline build approvals.
8. Publish it!
Publishing with Xojo is straightforward. The most time-consuming step is preparing your App Store Connect listing including text, artwork, screenshots, keywords and possibly localized pages. Read more about this in my earlier post How to Publish macOS and iOS Apps to the App Store Directly from Xojo.
Make sure you select the correct build when submitting your app for review.
9. Marketing
Something you should be doing simultaneously is preparing the related materials to introduce your app to the world. Start your marketing efforts early. A simple website can significantly boost discoverability. Use it to:
- Provide tutorials and FAQs
- Link to App Store and social media
- Highlight features and updates
Consider creating a YouTube channel for app demos and support videos, and maintain active social media profiles to stay visible.
Don’t forget to take advantage of the Marketing tools provided by Apple to help you create badges, assets, links and even QR codes to promote your app.
10. The Next Steps …
After launch, gather user feedback and track any bugs that slipped through. At this stage, it’s common to manage:
- A public release (on the App Store)
- A development version (next major update)
Save your Xojo iOS project in text format and use a version control system. This helps you manage multiple branches and collaborate efficiently.
To Summarize
Even the simplest iOS apps require a fair amount of time and effort, but thanks to Xojo, both aspects are significantly reduced.
What iOS apps have you created with Xojo? What’s your methodology or any tips you’d like to share? Feel free to comment on the Xojo forum!
Javier Menendez is an engineer at Xojo and has been using Xojo since 1998. He lives in Castellón, Spain and hosts regular Xojo hangouts en español. Ask Javier questions on Twitter at @XojoES or on the Xojo Forum.