Xojo license

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

1 Like

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 :wink:

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.

1 Like

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.

5 Likes

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.

1 Like

What are you expecting? They have their own thinking of right or false.

1 Like

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…

2 Likes

Naw

Even the anti-Christ wouldn’t touch the mess its become

:stuck_out_tongue:

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).

2 Likes

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 :slight_smile:

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

1 Like

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

  1. you dont or
  2. you use variant
  3. 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

1 Like