As many of you know, I was a Xojo engineer for eleven years until early 2022 when I decided to take my career in a new direction. My time at Xojo was exciting and innovative, it gave me a chance to exercise my creativity and love for creating new things and an opportunity to work with some of the most talented people I had ever known.
My new path has taken me deep into the world of iOS and macOS and I thought I would create some projects & products which would benefit Xojo apps on those platforms by creating some products which expose some of the larger frameworks which are not already available but also cannot be accessed by declares alone…
About the time that Apple ended support for the Dark Sky API, forcing users to transition to their WeatherKit Rest API, I was thinking about an iOS project which would benefit from having access to the phases of the moon and barometric pressure on a historical basis. After a bit of research, I found that Apple’s WeatherKit framework was well-suited for the purpose, but found that it was a Swift-only framework and accessing it from Xojo was going to be challenging. I proceeded to create an obj-c bridge framework and a set of Xojo classes to make it available to everyone.
What resulted is a framework which currently provides developers access to the WeatherKit framework as well as some helper tools for:
- Location Geocoding, because WeatherKit requires Latitude/Longitude and humans don’t remember locations that way.
- Unit Conversion, for the units that are used in WeatherKit.
- Multicolor Symbols, for a quick and easy way to access the multicolor SFSymbols which are provided by Apple for weather.
Another framework which caught my eye was MultipeerConnectivity. This framework allows you to make connections with up to 8 macOS and/or iOS devices simultaneously for use in games or business applications with multiple communicating workstations. It offers both automatic user-driven and manual programmatic device discovery as well as a few data transfer mechanisms. macOS devices use Wi-Fi and/or Ethernet and iOS devices use Wi-Fi and/or Bluetooth. Network selection is completely automatic so once the connection has been established, all your app needs to do is send data back and forth and disconnect when it’s done.
My port of the framework gives you access to nearly the whole framework, short of creating a direct socket connection between two devices, but text and file transfers are both implemented and working just fine. I was even able to transfer a 130MB file from a Mac to an iPhone in about 16 seconds.
I also have several Github repos and a number of free xojo-related items available, including my Profile Triage tool for helping developers figure out why they get errors when trying to sign or notarize their apps. You can see that list on my site here.
More on the horizon…
There’s more to come. I have some other products which I think will benefit Xojo iOS and macOS projects in the future, so watch for posts on the Xojo forum!
Greg O’Lone spent eleven years as a member of the Xojo engineering team from 2011 through 2022. During his time at Xojo he worked on many of the parts of the product that make Xojo what it is today – from the IDE and iOS Framework to Xojo Cloud and both of the Web Frameworks. You can learn more about Greg and what he’s creating now at his website.