Happy (almost) summer! It’s been a while since our last Android update, so we thought you might want to see and learn a bit more about its progress.
Here’s a quick 6.5 minute video that shows off a few new Android features with an extra surprise at the end.
If you’ve missed our earlier videos about Android, here are some links:
Adding Android support has been a long, multi-year process touching many different parts of Xojo. Any new project type needs to be integrated into the IDE itself, the compiler toolchain needs updating to output the appropriate apps and new frameworks are needed.
As of right now, each of these things are nearing completion.
The new Android project type is integrated into the Xojo IDE. You can select Android in the Project Chooser to get a Workspace window with a default Android screen. You can add screens and other project items and add controls to them from the Library.
There are many controls and UI available, which mostly match what is available on iOS, including:
MobileApplication, MobileButton, MobileCanvas, MobileContainer, MobileDateTimePicker, MobileHTMLViewer, MobileImagePicker, MobileImageViewer, MobileLabel, MobileLocation, MobileMessageBox, MobileMotion, MobileMoviePlayer, MobileOval, MobilePopupMessage, MobileProgressBar, MobileProgressWheel, MobileRectangle, MobileScreen, MobileScrollableArea, MobileSegmentedButton, MobileSeparator, MobileSharingPanel, MobileSlider, MobileSwitch, MobileTabPanel, MobileTextArea, MobileTextField, MobileToolbar, MobileToolbarItem and AndroidMobileTable.
For coding, these standard classes are included:
BinaryStream, Bitwise, Crypto, DatabaseColumn, DatabaseRow, DateInterval, DateTime, Dictionary, Encodings, EndOfLine, FolderItem, Font, Graphics, GraphicsPath, JSONItem, Locale, MemoryBlock, Picture, Point, PointerEvent, Random, Rect, RowSet, RuntimeException (and subclasses), Semaphore, Size, Sound, SpecialFolder, SQLiteDatabase, StackFrame, System, TextEncoding, TextInputStream, TextOutputStream, Thread, Timer, TimeZone, URLConnection, WeakRef.
Here you can see some database code:
And there is of course support for standard types such as Integer, Double, Currency, String, Boolean, Color and Variant.
You’ll even be able to use Declare statements to access other things in the native Android framework.
Although there are undoubtedly bugs remaining, the above controls and classes are considered complete.
Regarding the compiler toolchain, currently we can compile and run a wide variety of Xojo projects and have created over 50 example projects, including a unit test project with over 200 separate framework tests. Apps are built using a combination of the Xojo compiler and the Android Kotlin compiler toolchain to generate a native apk (Android package) that can be deployed to any Android device running Android 5.0 Lollipop (SDK 21) or later. You can also submit apps to the Google Play Store.
Debugging is not yet finished, although as you saw in the video, parts of it are working now.
We know you all want to know when Android will be shipping, but you all also know that we can’t tell you that. Keep in mind, it’s not like we are withholding this information from you — it’s just that we do not yet know. As described above, we are getting closer, much closer to having a feature set that we feel comfortable making available for pre-release testing. And when that happens, you can be sure we will be making a lot of noise about it!
In the meantime, all we can say is that Android pre-release testing will begin when we feel it is ready. Do we want that to be this year? Yes. Will it be this year? Stay tuned.
As usual, all Xojo Pro licenses are automatically included in pre-release testing, but we will likely add others as well. If you are interested in helping test Android when it is available, please let us know: firstname.lastname@example.org.