Xojo.Connect Virtual Keynote

Xojo released a video today of Geoff Perlman talking about Xojo.  This is mostly information that would have been given at the Xojo.Connect keynote address but, well, we all know that it isn’t normal times.  I urge you to watch the video and come back.  I won’t bore you with repeating what Geoff said but I’ll give some thoughts on each section.

Last 12 Months:  Pretty typical recap of the last year.

In The Works – Big New Features:

Xojo Cloud:  Makes sense to go to all 64-bit and to make them stand-alone apps.  Having the built-in load balancer is really nice for those that don’t want to mess with it themselves.

Feedback:  Web based.  Yay!  It’s about freaking time to get away from the stupid desktop app.  I guess my question is will it improve the responsiveness of Xojo actually fixing bugs that are reported?

Web 2.0:  Telling me you have great looking controls and not showing me anything to prove that makes me doubt the claim.  Session restoring should be a nice feature assuming it works as required.  

Really, you want to add 10,000 rows to a ListBox?  I’d say that’s a bad example as that much data should be ‘paged’ but whatever. Users will do stupid stuff like that all the time.

What they didn’t say was that the conversion to Web 2.0 is a one-way trip.  Make sure you backup your project before you do that.

iOS:  Notifications, SearchField, Application Shortcut Items, Custom URL Schemas are all basic features and should have been in the product long ago.

iOS plugins will be good news for MonkeyBread and maybe one or two others.  No idea if this means the plugins are still C++?  I’d assume so but no details given.

Having String and Variant instead of Text and Auto is a good change.  Mobile classes to replace iOS makes sense with Android sometime in the future. No timeframe makes it hard to guesstimate how excited anyone should be.

API 2.0:  While it’s cool that a desktop, web, iOS, and Android projects can now use the exact same code it’s a shame that we can’t have all of those projects from a single project with different targets.  I know I’m being petty but that seems like the next logical step.

Desktop Controls will be replaced to use the API 2.0 events.  This is the way it should have been done from the beginning.  It completely eliminates the train wreck that we all experienced with the now non-existent Xojo 2019 R3 release.

Android:  The fact there’s an Android version of the Conference app in Google Play Store is a good sign that it’s coming along and fairly well advanced.  Hard to say exactly how far along but is but still.  The Android video should be interesting.

Graphics:  Having XojoScript be able to do graphics is a really nice feature.  I’d love to know what the refresh rate can be.  I don’t have any idea on what I’d use it for, but I could see that being used to create control plugins made in Xojo.

PDFDocument:  It’s a great beginning.  I suspect that most people will be disappointed because it looks like it’s graphics only.  Meaning that the PDF can’t be searched.  I might be wrong but that will be the first thing that I’ll check.  Without that it’s pretty minimal feature set and not what many people want.

Worker Class:  A good discussion on why threads are hard and why using console helper apps makes use of multiple cores whereas a normal thread only uses one.  Geoff might be using App.DoEvents in the only permissible place to use it but even then, I wouldn’t use it since too many people use it as a crutch and abuse it.

The Worker class looks really cool and is probably the best thing that Geoff discussed.  I have many questions on how the class and its events work.  For example the JobRequested and JobRun events only uses string.  Is that the only datatype we can use with that?  I suspect it is because it’s creating a console app in the background.  Regardless, it really takes the work out of working with console helper apps.

Also no talk about what’s the preparation time. Would it be easier, in the long run to simply create your own helper console apps? My guess is probably but the details are important here.

Overall:  It’s nice to see progress on things in the Xojo universe and a few surprising additions (Worker class).  What we don’t know is when these things are going to ship (and be useable).  The thing I could use today is the Worker class and I suspect that it will be the last thing introduced (sorry for being pessimistic).  This has always been the most frustrating thing about going to XDC and being told about something really cool and then having to wait a year (or more) before we see it.

13 thoughts on “Xojo.Connect Virtual Keynote

  1. I have similar impressions as you Bob and wonder about the period. If you follow Feedback properly, you can see that Web 2.0 is supposed to come in Release 1, but there seems to be some work to be done.

    Why I need Graphics object in Xojo Script, I do not know, so this is an information for me, which I can not classify at the moment.

    PDFDocument is also coming in Release 1 according to the wiki, but it seems to be just a very simple PDF export (see screenshot – https://i.imgur.com/rrnWUSg.png).

    The Worker class is the highlight of his keynote and I wonder why it doesn’t come first in Xojo’s roadmap (see wiki – https://docs.xojo.com/Roadmap). To me the presentation seemed quite mature.

    Geoff didn’t say anything about interops, plugins and other “priority” plans compared to the XDC events of previous years.

    Let’s see how everything develops.

  2. “Meaning that the PDF can’t be searched”

    As they are including the ability add fonts to a PDFDocument, the resulting PDFs are likely NOT just going to be pre-drawn graphics pages encapsulated in the PDF, so I expect they will be searchable.

    Teh question is will they support a TOC with links… the kind of things one can do with the Einhugur PDF plugin.

    – Karen

    • > As they are including the ability add fonts to a PDFDocument

      Unknown at this time

      • Martins screen capture showed a method to add fonts. So I’m guessing that they can do more than just direct drawing into a graphics context. But without more details it’s merely a guess.

  3. > Feedback
    responsiveness on cases has nothing to do with the submission being from a desktop or web app so I dont expect this will make any change in that regard

    > API 2.0 …we can’t have all of those projects from a single project with different targets. I know I’m being petty but that seems like the next logical step.

    It is – this started out as the Project Project – see my blog post about the Universal project https://www.great-white-software.com/blog/2019/08/15/the-universal-project/

    > PDFDocument
    curious as to which sdk they used and if that will mean they can only ever support basic stuff (kind of like RTF support) Nice to see “soemthing” as its been a long standing request

    > Worker
    this is probably the one thing I am looking forward to but a comment from Kem suggests its not in 2020r1 🙁

    Proof will be in the beta testing

  4. Thanks Bob for writing this. It’s always good to point to the missing details or what is not said. I am missing compiler improvements.

    The PDF stuff will probably hurt others more than me as the built-in thing will handle all the simple PDF requirements for people. So if you need more, you may go with our DynaPDF plugin. We may point out that we have the graphics Class integration already for a year now.

    Plugins for iOS may be interesting, but I have to wait and see how we can build a test plugin and see how this can be integrated here.

    The new control classes are disappointed. I would love to see we get Button as control name everywhere. Not a new set of names like MobileButton or DesktopButton (whatever it will be named).

    Workers look great. They may just run the main app as command line tool with some parameters and pass the text with job via IPC Socket. I wonder if they got IPC Socket fixed for Windows to not use TCP (and go through Firewall) or pass it via Shell class. I would expect some Job object which encapsulates work including ID and data properties. But otherwise we just pass JSON as job text.

    • > The new control classes are disappointed. I would love to see we get Button as control name everywhere.

  5. About Xojoscript:
    “ I don’t have any idea on what I’d use it for, but I could see that being used to create control plugins made in Xojo.”

    Geoff mentioned this in the keynote. I’m really interested in this but I’m not sure how it would work. How can you create a custom control and give it a custom look in the IDE? How would that work? I assume we’re talking about something like a custom canvas subclass that doesn’t look like an empty rectangle when you drag it into a window from the navigator?

    • As far as I know you have a property on the custom control where you store the code for painting. The IDE will then take the code and run it with XojoScript with a maximum of a few milliseconds. They provide context methods for you to draw into a picture with same methods as in normal graphics class. Looks like they have a wrapper for the graphics class in XojoScript to direct all calls to one for a picture, so they can later show the picture.

    • I would guess that you’d be able to provide a script in a constant or something that the IDE can then call this script and your subclass can then draw itself to a graphics object that the layout editor can show

      we’ll have to see but thats my expectation and it will be interesting to see how much this slows the layout editor if you have a lot of them

  6. The PDFDocument class deals with real PDF Text objects, so that means that you can search (or even edit/change) the text of the generated PDF document using any tool that includes that kind of tools.

Comments are closed.