I REALLY hope Geoff or someone from Xojo reads this
But I’m not holding my breath
Over the past year and a bit I have been trying to create a Xojo Android app for my client that mimics one they use on iOS
Every time I have it fails in one way or another
I tried to, once again, give Xojo a shot and make my clients Android project in the latest versions of Xojo (2024r4.2 and 2025r1)
Things sort of worked - slowly (oh my is it slow to do a debug run)
I got my screens as designed and kept saving & moving on
Then got a weird compile error
Fixed the compile error
Now the project runs but nothing ever shows up
I saved, cleaned caches, quit Xojo, restarted my machine
Nope. Nothing.
Sent project to client (who happened to be online)
Same result there so its not just my machine Something in the project but I have no idea what
There no compile error. No warning. Nothing.
It just quit behaving as it had been
Reported privately to Xojo with the project attached
So far no reply
So I’m stuck - again
Literally every version I have tried I’ve run into one or more roadblocks despite my best efforts (I’ve learned how to write this app in C# in the intervening months because of this)
I try
I really do try
But its just not happening and client sees it
I’m sure some of you wonder Why does he keep trying if it keeps failing?
Client asks me to because they really the IDEA of Xojo
Then reality sets in and we go back to something else
TBH I also wish that wasnt the case
There are some things I prefer in Xojo to other tools
The drag & drop designer is kind of nice
And the language is pretty simple to use unlike some others
Codenameone, one App for both: iOS and Android. With Buildserver for both, for free till 8MB jar size. Simply one Code and one UI for both. Full css support. For iOS it is compiled with X-Code. Also local builds are possible for 0,- Bucks. Codenameone is open source. Plain Java code or Kotlin if preferred. Solutions with Sockets (tcp and web), Bluetooth LE Supported and much more. Simply the best way for both platforms.
Oh no !
Its pretty readable
I’ve seen some that just leave me guessing what the heck is going on and would make anyone that hates { } and ; go completely batty !
Mish mashes of javscript interspersed with html and css all in one file
ick !
I thought of that BUT this has to end up possibly going behind JUST iOS & Android
Maybe down to desktops
What I’ve got works pretty well and its something I’m comfortable teaching client about as well
THAT is one reason Xojo was attractive to them - its approachable without having to be a Comp Sci major
This is darned close (at least what I’ve shared with them so far)
Very straight forward code
Biggest down side is XAML for layouts although we could code them all by hand but I’m not sure that any easier or better
Cn1 has a GUI designer and you can generate Javase Desktop from same Code at no cost. With j deploy you can deploy for Mac, win and Linux. No problem. Especially therefore you don’t need to bea scientist
Why not using SpiderBasic which is based on the PureBasic syntax. It compiles to optimized JavaScript code.
I do not know Spiderbasic’s speed, which, according to the website, is blazing fast. What I do know is that I created a planetarium of our solar system in PureBasic, and despite the complex calculations, it has been working continuously for more than a week while I have been using this computer.
I know but spiderbasic is not generating native aps but webapps. And even progressive webaops are extremely restricted. Spider basic is only a web tool but not an app tool for mobile apps. You can use cordova. But you still have no real threading and many other things also not. That makes the performance poor. So why should you do that when there is no problem generating native apps for Android and iOS?
I got tired of Xojo just over 3 years ago, and switched to Vala for desktop apps and for web services (frondend web in HTML, CSS and JavaScript). I’m looking at React Native for mobile for the iOS and Android companion apps to one of the projects I’m working on.
Like so many Xojo users I waited for Android which was coming soon for so long but gave up waiting, ans gave up on Xojo. I can see how it’s tempting for people that have heavily invested in Xojo in the past to try it again but I’m loving Vala and not hitting the constant bugs like I was with Xojo.
It’s not a Progressive Web App, Cordova is a runtime that exposes native functionality to JavaScript.
The JS for a Cordova plug-in runs in a different thread to the WebView so they don’t block the UI and JS is async too.
NOKIA’s Symbian phones had a web runtime, WRT, which could run “widgets” ( i.e. zip files containing HTML/JS plus a manifest ) no problem on devices a lot more modest than we have today.
I liked that concept so much I’ve replicated it for desktop, I have created my own JS Runtime ( coded in PureBasic ) that runs widgets. Again, it exposes native functionality to JS.
Okay again: ja has no real threading and Cordova is a collection of native implementations but not a runtime for ja to make it magic. Thereis at the end no threading like it is with other languages. But if it’s enough for you: go for it.
It really, really is. It almost doesn’t matter which mainstream, widely used language and framework you use. Any of them are are light years better than using Xojo. And being able to leverage AI (which you can do if you’re using a mainstream, widely used language) makes development so much faster and nicer. (Personally, I switched to Flutter and Dart, and while no language is perfect, it kills me that I didn’t make the switch many years ago. So much time wasted, waiting and hoping Xojo would magically become something it was never going to be.)
How should they become something? Looking on Flutter/Dart, Java, C# and all the others comparing to XoJo? Hmm, a hand full of developers at XoJo site versus thousands of developers for the language and compiler and also hundreds of thousand developers for the ecosystem around. Find the difference. They can’t compete with this. And they will never be able to. Not on Desktop, not on Web and also not on mobile. Kotlin Multiplatform mobile, Flutter/Dart, Java…there are so many possible solutions to program for Android and iOS. JavaFX with the GluonMobile Solution or Java with Codenameone are my favorites, Kotlin is following directly. And if it shall be really native: why not using Swift/Swift UI for iOS and Kotlin / Java for Android with Android Studio. Both coming for free. And with Xojo you have also no chance to write one application for both.
That’s not a JS specific thing, it depends on the implementation - for example Web Workers could be either a thread or a process, the spec states:
Create a separate parallel execution environment (i.e. a separate thread or process or equivalent construct), and run the rest of these steps in that context.
Here’s a comparison of an http server implemented with the Bun JS runtime vs one implemented in Java.
Personally, unless the app needs some on device capabilities that aren’t available to the browser, I would actually go with a Progressive Web App. If it can be done in a browser it should be.
Bootstrap Studio is a bargain at $59 for a lifetime license and enables you to design the UI using drag and drop. In my usage scenario the only thing I’ve really had to type in is a css grid, then I drag in a control and type in the row / col / span for it and you get a live preview in your browser as you’re making changes. I use a div as a placeholder for controls that aren’t already on Studio’s palette ( e.g. Tabulator ) as that’s invariably what they attach to anyway.
You can get a VPS from Ionos at a very reasonable price ( includes an SSL certificate ) and then set up Apache as a reverse proxy to a Bun app as the back end.
I have some aide-mémoire notes on getting this arrangement set up if it’s of interest.
Makes again the point: on topic is a native app and not a web app. Like Xojo claims. And native compiled apps are native ones and not progressive ones. From so many reasosns I would never prefere a progressive web app. Never mind. Choosing that is a way. But not native at all.
You can do that. But if you want native apps for iOS and Android you may have to choose one of the available languages with native compilation.
Threading in webworkers has many restrictions and is by the way really slow. Having threads with high performance needs disqualifies webworkers. At the end also a need for native apps. High latency of 1.5ms and 80kb per ms is not comparable with native threading. You should test this. If it fits for your application needs that is nice. But it is a webapp. Not an app. The difference is especially the XoJo problem with generating native Android apps. Progressive apps are not a way to replace them. Exactly that is my point. Should be another thread.
Actually it’s a different point because I’m now advocating a web app as opposed to a runtime that exposes native functionality to JS.
You seem to have got it in your head anything that utilizes HTML/JS automatically becomes a “web” app. NASA developed the CMOS sensors that gave us cameras in our smartphones but using one doesn’t make you an astronaut.
So…
Unless Norm’s client requires some specific on device functionality that’s not available via the browser a progressive web app is worth considering.