XDC 2020 Keynote Discussion

Finally managed to get some time to watch the keynote. I have to say, I’m pleased.

Plugins for iOS

I can almost hear Christian Schmitz squealing with delight. Finally plugin support is coming to iOS. This is great. Many people really on plugins (overwhelmingly the ones from Monkeybread) and they can really add functionality to you apps that Xojo is unwilling or unable to add. I know from conversations with Christian that he is very keen to write plugins for iOS so I’m sure we’ll see them appear swiftly once plugin support is released.

Hello String and Variant

This makes me very happy. I’ve blogged and whinged before about how difficult it has become to write libraries that manipulate text and support both desktop and iOS platforms because you’re forced to use the lowest common denominator (Text). Not any longer - String is coming to iOS. Hurrah! That finally means I can use the faster String version of MarkdownKit on iOS.

I know that in principle the Auto data type has many advantages over Variant as it makes it much harder to shoot yourself in the foot but there’s always been something very un-Xojo-like about Auto. I hate the excessive use of introspection when dealing with Auto. I’m glad it’s not long for this world on iOS.

RegEX is coming to iOS

It’s only taken 5 (6?) years but finally first party RegEx support is coming to iOS without having to rely on importing all of the cruft within iOSKit to get it working.


This is huge. I am so thrilled about this. I have for years been using custom ConsoleApplications to bodge multicore support but it has always felt like a hack. I’m really pleased to see that Xojo are implementing a first-party solution for processing large amounts of data in a multicore environment. I’ve always disliked IPC sockets as I have had many issues in getting them to work correctly (almost certainly my fault). I’m pleased that Xojo can abstract that away for me now.

As an aside, did anyone think it was mildly humourous that Geoff calls App.DoEvents in his code demonstrating the workers? Tut tut.

XojoScript graphics

Any addition to XojoScript is welcome. One thing I wasn’t clear about is that Geoff mentioned something about being able to do design-time rendering using XojoScript in the layout editor for custom controls. What do people think he meant by this?

Overall I’m pretty happy :slight_smile:

1 Like


Using 12 cores and just a 4fold increase?

Could use some optimization.

Note a lot of things had no time frames
just “its coming”

String and variant for iOS will be an interesting change

Workers, at least according to Kem who is one of the MVPs using the current release, are not in R1 :frowning:

XojoScript graphics - well … I’ll be curious to see how/what they did with this but this has always been possible with some work.

Colour me … well from Missouri
Until I see it my hands its just slideware

1 Like

Yes :roll_eyes:

Yeah I thought that. Ah well, it’s early days and beggars can’t be choosers.

That’s a bummer. Knowing my luck String, Variant and Worker classes won’t come until the end of the year :man_shrugging:

One thing that was conspicuously absent were interops. They featured prominently last year at XDC. I hope that’s not been shelved. Whilst plugin support for iOS is great, interops offered the possibility for Xojo coders to dig deeper, not just those with a C/C++ background.

1 Like

Yeah not sure how plugins for iOS is going to pan out or when
But apple has made some changes that make it possble to do some things that werent way back when
Basically when iOS shipped dylib loading had no system API (ie dlopen didnt work)
If this has changed then plugins are possible (or they use some other system provide api to load a dylib but dlopen was the hang up before)

Looks like they’ve updated the roadmap to reflect the newly announced changes. Interops is still on there, just after Android so there is still hope.

Interops is basically “auto generated declares” -
Parsing the header files and generating declares from those
And there is a limit to what can be done since there are unsafe bits that would have to just be skipped

Re Workers:

As I said in teh other thread
For cases where a lot of info is being returned to teh main app, IMO what is needed for high performance is a way to use shared memory…

But with it being sent through an IPC socket the data is essentially being copied… Unnecessary CPU and memory use that can matter in some situations.

Better than no support, but not ideal. Let’s see what the details will be.

  • Karen

I agree
Until we see this we have no idea what we can use it for

True but a memory copy may well be many times faster than a complex maths operation/transformation, etc. Perhaps that explains why the demo showed a 4x speed increase using 12 cores.

I would suspect it is because the test included parts that were not delegated to the workers and therefore did not benefit from the speedup (eg removing listbox rows).

But without more precise tests you can’t say how much of a speedup to expect.

I will say that for a lot of folks this will probably be “good enough”

1 Like

It would be nice if for once they strived for excellence in SOMETHING! And i think in the long run this is VERY important for the product if they want it used more professionally.


1 Like

they’ve never stated that is a specific goal they have

As I saw some asking for downloadable videos, ClipGrab is a nice downloader … and free:


1 Like

If I understand things (and I may not), using an IPCSocket to transfer data is a lot more overhead than just a memory copy…

BTW I was planning on trying to create a generic data transfer method (I like doing things once! :wink: )between master and helpers using shared memory, not using plugins , for Mac and Windows (the platforms I care about) …

I had looked up a bunch of stuff on the declares for both platforms a few months ago before I got sidetracked on non coding stuff outside of work …

Not sure how hard it was going to be … but at first blush is looked like it might be doable, though FAR from easy.

But as it is not an immediate need for me, maybe I should just wait and see what they come out with, as trying to write that would require pushing my knowledge limits a good bit and take a lot of time.


Hal also pointed out another

I know, but they seem happy when Xojo is used for a commercial app.


1 Like

Oh no doubt they are