Auto license renewal. I have never set Xojo license to renew, but for some reason yesterday Xojo debited my account to the tune of over 600GBP, I had to cancel my credit card to block it, has anyone else noticed auto renewal has been set on, or was i just unlucky in a glitch?
I seem to recall at one point it was defaulted to On, so maybe you got caught out by that.
Looks like it, now I have to wait for a new credit card to arrive…….Joy
Just a suggestion, but did you ask about a refund?
My employer once purchased a Xojo Mobile license, but after a couple of months asked about the 90-day money back guarantee and was refunded without issue. The mobile platform back then just wasn’t ready for primetime, not like now ![]()
My guess is that your last license bought was new, auto-renew defaults to On, it was not changed to Off.
You can ask for a refund but I guess you get less money back because the currency exchange rate.
…such behaviour would be indisputable here in Europe. Long-term or recurring contracts even may be cancelled after 12 months on a monthly basis with complete refund for the remaining period.
I absolutely hate it when companies (not just Xojo) do that. You buy something and they automatically sign you up for auto-renewal. That should be illegal.
Did you at least get an email saying that you’d be charged on such and such date? That would be the honorable thing to do. But, I’m guessing not.
What are you expecting? They have their own thinking of right or false.
I doubt that. He probably had auto renewal on and did not notice that. Cancelling your credit card to block a payment is also evidence of that same stupid behavior. I also doubt cancelling a credit card when there’s still a payment due will get you off the hook: the credit card company will still be coming after you.
And do you really believe Xojo would order a payment if they did NOT have grounds to do that on? Man, you guys really hate that company when you think they would actually do that. I guess within a couple of months there will be forum topics here about Xojo being run by the anti-Christ…
Naw
Even the anti-Christ wouldn’t touch the mess its become
![]()
It tooks me a week (or so) in France (in feb 2025) to get a new one…
Same experience here, a week for MasterCard.
I still can’t understand what the advantage is of cancelling your creditcard? If the payment was due, you’re still obliged to pay that bill, you have a contract with a company that you can’t escape. I think it would be better to just contact Xojo and explain the issue so they can cancel your subscription (that you likely subscripted to YOURSELF). It would be the responsible way to go.
Your opinion and on some level I respect that. For me Xojo still perfectly suits my needs (but I don’t need all that iOS and Android crap).
I would have asked for refund while they have a policy which allows that without any question. But hey, new Card is new Card. But…I just got: I still have to pay for iot ![]()
Desktop is about the best Xojo has ever been
But taken as a total tool chain for multi platform - as they say it - its a mess
The ability to reuse code across all targets is quite low even with API 2 supposedly “simplifying things”
With the introduction of all the prefixed names (desktopbutton, mobilebutton, webbutton for instance) the ability to even copy & paste controls across UI’s is severely reduced
The IDE wont even let you do that now because “a button isnt a button” - they are all specific distinct framework items that HAPPEN to have the same API - they have no common abstract super
Personally I came to realize, too late, that the root problem was in how “new” targets were added
If a single project could hold desktop, web, iOS, android items and generate different outputs based on that then the ability to reuse code would be increased without all kinds of gyrations like svn externals & git sub projects or even more contorted ones like putting several projects in one repo and being super careful to not mess this naming up (ick !) and having to manually add / edit things across several disparate projects
This setup is possible - but I never managed to do enough work to show it off
And I was let go before I could educate anyone there about HOW to do it
note this would NOT reduce the need for libraries to be able to reuse code across multiple projects
but libraries seem .. hacky ? .. at this point in time and there are numerous bug reports about them
The rest is literally history
They’re so far down the road with this naming split that undoing it would be even more painful to existing customers
So much so they would never do it
They will never do it. So you may sit on the knowledge how but you can’t realize that cause you don’t be able to compile it new: yu don’t have the sourcecodes. So: life is a BITCH
I think Xojo does a good job if you want to write an app for Windows and Mac. I have done so multiple times and after some tweaking it works very good. On Linux a bit less, but I concentrate on Windows and Mac anyway.
Trying to cross code for Mac and Windows and portable systems is a tough job any way you try that. Screen sizes are completely different, it’s touch screen versus mouse operated, so any change of developing an app for desktop and tablet is stupid any way you look at it.
Yes there are differences
Screen sizes are NOT that big an issue if done using a flexible layout manager like iOS uses
Things can readjust to larger or smaller sizes readily
And even change sizes or positions based on landscape / portrait
Not easy to do with the way Desktop in Xojo is done since it is fixed sizes so you either write code yourself to adjust it or dont bother at all. And iOS vs Android in Xojo has the same issue - one has dynamic layout capabilities the other doesnt (blech)
And you cant move code between their 2 mobile implementations easily
Touch vs mouse isnt that hard for most things - there are some places where it forces different handling but for this use case a touch & a mouse were 100% equivalent
No pinch gestures
Swipes only worked on mobile but desktop had an equivalent mechanism in each layout
Very little code between desktop apps (which they had) and the iOS and Android app could be shared because of the
And I rewrote this particular app in C# - twice
Once using MAUI for one so I got a desktop app for Mac & Windows & 2 mobile apps ; one for iOS & another for Android
Another using a different toolkit - Avalonia - but results were similar
And all fro a single code base
yes littered with # if Target type directives but thats already a thing in Xojo so its a wash to me
But this misses much of the point
Suppose in Xojo you want to have some “common code” across all project types that handles some specific action in a button baed on its label (yes this will be slightly contrived but it illustrates the issue)
So you write
Sub DoSomethingWithButton( ….. )
What parameter type can you use thats agnostic across ALL projects ?
You cant use “Button”, or DesktopUI Control or … as that would limit it to Desktop
The answer is
- you dont or
- you use variant
- a really elaborate setup that really shouldnt be necessary *(I’ll explain below)
And neither is good
Why ?
In the first case it makes the idea of “shared code” useless
In the second its even more subtle because VARIANT make the compiler not give a damn about what you pass in
So if you pass a dictionary instead of a button the compiler is fine with that
Or pass a listbox
Again the compiler is OK with that
And you dont find out about the screw up of passing it the wrong thing until RUNTIME
And THAT’s bad because its hard to do anything about it by then
But with the way Xojo has made the framework its the only real choice you have
And THATS the problem they’ve cerated
* now the really elaborate set up
You write one method per platform
 Sub DoSomethingWithButton( b as DesktopButton)
 Sub DoSomethingWithButton( b as WebButton)
 Sub DoSomethingWithButton( b as MobileButton)
You MUST mark each of these with attributes compatibility flags so that each is ONLY going to be used on the correct target platform
Then you write one, that is private to the module these live in, that they call into passing in a variant
You still have some issues in that code since you have to guard every access to properties or you end up with cast exceptions etc
BUT you do get the compiler at least able to warn you when you pass something incorrect
And this only gets you so far and can be a lot of work since EVERY extension etc you do this with requires this kind of set up