XDC 2019 Session List

The session list for the 2019 Xojo Developers Conference (XDC) was released today at https://www.xojo.com/xdc/sessions/.  Take a look at this interesting list.

I’ve been attending Xojo developer conferences for twelve plus years (don’t remember what my first XDC was – maybe 2004?).  Each one is unique and the topics are usually interesting but do tend to be repetitive from year to year at times.  The session topics for XDC 2019 seem to be more unique than past years.

Obviously Geoff will do his keynote address and talk about what they’ve done in the past year, what they’re currently working, and what’s coming up (sometime) in the future.  There is a session each for Android, Web 2.0, API 2.0, beyond Linux, everything MS Windows, and more by the Xojo staff.

What’s left is an intriguing list of sessions that will be tough to figure out what I want to attend and which ones I can wait to see recorded (assuming they’re recorded again).  I can’t remember an XDC I’ve looked forward to more.

Carol is doing a session on Database Topics for Programmers and I’m doing one called “Xojo Mistakes We All Regret Later”.  My alternative title is “Thankfully time travel doesn’t exist otherwise my future self will no doubt come back to murder me for these stupid programming mistakes I’ve done.”

If you’ve never been to an XDC I highly recommend it.  You will get to meet some of the best Xojo developers on the planet, talk Xojo non-stop for 3 (or more) days on end, talk to Xojo staff, and have fun.  Of course that last point is mostly because of the first three.  You won’t find a bigger concentration of Xojo developers on the planet!

I hope to see you all in Miami in the first week of May.  What sessions are you excited about?

The Award Winning BKeeney Shorts

Last week at the Xojo Developers Conference in Denver, BKeeney Shorts was awarded the Best Developer Tool as part of the Xojo Design Awards ceremony.  Being recognized as a great reporting tool for Xojo makes all the hard work worth it.  Often times it’s a labor of love for developer products and it’s nice to be recognized for designing something that many Xojo developers require in their products.

BKeeney Shorts is a set of classes and controls that allow developers to create complex dynamic reports.  Xojo desktop application developers can embed the Reporter Designer in their applications using a simple drop-in container.  Reports can be displayed in Xojo desktop and web apps using a drop-in viewer container.  Reports can be exported to HTML, CSV, or PDF (using the DynaPDF plugin from Monkeybread Software).  If you’d like to know more about Shorts please visit https://www.bkeeney.com/allproducts/bkeeney-shorts/

To celebrate this achievement we’re giving everyone a 20% discount for Shorts!  Use http://sites.fastspring.com/bkeeney/product/shorts20&coupon=XDC2018 to redeem this coupon.  Hurry, this offer expires on May 31st.

XDC 2018: Web 2.0 Notes

Greg O’Lone at XDC gave a talk on the progress for Xojo Web 2.0.

Web 2.0 represents two years of work.  Coding started a year ago.

Goals of Web 2.0

  • HTTP/1.1 compliant server
  • Improve responsiveness
  • Modernize framework
  • New and updated controls
  • DOM processing is now done in the browser
  • Building on Top of JQuery which is a feature rich JavaScript library
  • Controls are now used with Bootstrap and FuelUX 

Adding new technologies:

Server connection monitor in the framework.  If the connection drops for a moment the browser can tell the user that comms is lost momentarily or gone forever.

Visual Session Controls:  Want to make controls available to all sessions.  Example:  Chat control and notifications that all sessions can access at the same time.

Browser History Triggers:  because users hit the back button the framework will store some session data and will allow the developer to restore states if user comes back.

Styles:  Global bootstrap theme.

Drop-in theme replacement.

Selective control level customization.

Layout Modes: Three modes are available:

  • Fixed like it is today
  • Auto layout (similar to what is in iOS apps)
  • Fluid:  the controls flow based on the size of the container

View-Based which means that all three types can be used in nested controls.

Control Goals:

  • Updated/Unified appearance
  • Keyboard accessibility
  • Theme-complaint third-party controls

New Controls:

  • Accordion
  • Audio player
  • Breadcrumb
  • Charts
  • Combobox
  • Date Picker
  • PagePanel
  • Popover
  • Splitter
  • TabPanel
  • TreeView

Existing controls getting some new features too.

File Uploader split into two parts:

  • User Interface
  • File Management & Uploader

Listbox

  • Optional Pagination
  • Dynamic datasources
  • Sortable columns
  • Built-in search of listbox data
  • Custom Column Types

Canvas:

  • JCanvas underneath
  • Layers, Events, Drag & Drop

Toolbar:

  • Bootstrap Navbar

TextField:

  • Text formatting and validation on the CLIENT side

MenuItem:

  • Theme compliant
  • Can be disabled
  • Icons
  • Separators
  • Headers
  • Hierarchical

Demo:

Data on demand Listbox.  Loading from the server depends on the latency of the connection.

Browser consistency:  Looks the same between all browsers.  Everything just kind of works.  No more differences between browsers/platforms.

Moving from old style to new Framework is a one-way operation. All controls will use the new control API’s.  Layouts will be fixed by default. 

Warning:  JavaScript and DOM hacks used in the existing web framework WILL result in errors in Web 2.0.

All WebSDK controls will need to be updated.

WebSDK 2.0:

JQuery, Bootstrap, and FuelUX on every browser.

No more User Agent parser any more.  Modernizr is being used to query for capabilities.

Encouraging the use of TypeScript Definition Files.

TypeScript is superset of JavaScript.  Compiles to ES5 JavaScript.  ECMAScript 2015 will come when IE 11 drops out of support and it will get an immediate 11% decrease in size.  Has Mac, Windows, and Linux IDE’s and maintained by Microsoft.

Clearly a lot of thought and effort has gone into Xojo Web 2.0.  Many of the deficiencies that were built in to the product from the very beginning are being addressed in Web 2.0.  Of course we don’t know when Web 2.0 will be released, but the demo’s looked fairly well developed.  I know I’m looking forward to it.

XDC 2018: Android, Xojo Framework, and API 2.0 Notes

Travis Hill from Xojo talked about the progress on Android, Interops, and the Xojo Framework and API 2.0.

Interops is being used to build the Android framework.

Interops:

  • Need something from the OS
  • Use instead of declares
  • Ready to use with Xojo types.  No need to worry about type conversion.
  • Android will be the first platform primarily built with Interops.
  • Not a separate project in another language.  Built with Xojo.
  • Anything Xojo is doing, we’ll be able to do as well.

Mapping the Android SDK into Interops.  In 2016  they had completed less than 25% of the Android SDK.  In 2017, it was about 65% and in 2018 they have considerably more than 75% but certainly not complete.

Using Interops is totally optional – like declares.  Good way to think of them is that they’re pre-existing declares.

Android is being developed using Strings and Variants and using the global framework.

Major Project Milestones:

  • 32-bit and 64-bit ARM – done
  • Linker – done
  • Position Independent Executables (PIE) is still a work in progress.
    • Can execute from any address
    • Required for Android
    • Supported on other platforms
    • Will be moving this feature to other platforms
  • Compiler
    • Native code
    • Virtual code
    • Bytecode
    • Android built with virtual code in mind
    • Building a two-way bridge between Native and Virtual
    • Mirror classes with native and virtual will be transparent to developers
  • IDE Integration:  Typically one of the last steps
    • Graphics
    • Layout editors
    • platform particulars
    • baseline project
    • Autocomplete
    • Build Settings

Requirements:

  • Mac/Windows 64-bit
  • Linux has issues so it remains to be seen if Linux will be able to do it.
  • Android Studio provides the emulator and debug tools
  • Apps use Android 8.1 (Oreo) SDK
  • Targets Android 4.4+.  Trying to hit the 80% mark

Travis showed a demo with three controls:  TextField, Button, and HTMLViewer.  Doesn’t seem like much, but is a huge amount of progress.

New Xojo Framework

The Xojo framework is dead.  Ends the split personality.  No more Xojo namespaces and no more ‘wall of code’.  Unified Language Reference (brought applause from the crowd).

API 2.0 is NOT a new framework – it’s adding to the existing one that’s been around since the beginning.  Can be added to over time with little disruption.  No requirements for everything to be present.  De-empasize/Deprecate old ones over time.

Naming Example:

Add(“Hello”)

AddAt(5, “Hello”)

Count

Remove(“Hello”)

RemoveAt(5)

New names allow for behavior updates.

Exceptions on Errors

Always 0-based offset

Easy transition

Namespaced types (Text and Auto) will be deprecated.

Classic types will get some enhancements from the Xojo framework.

String going forward.  Text will be de-emphasized and then deprecated. 

Coming to String:  ToString/FromString.

Optional Locale support.

Better default encodings from outside sources (web, databases).

Variant going forward.  Auto to be deprecated.

Implementation may change.

Date going forward.

Timezone handling and math.

Android will ship with String/Variant types.  Ship with API 2.0.

iOS adding string and variant and API 2.0 naming.

Desktop adding API 2.0.  Deprecating Xojo framework.

Web adding hybrid approach.  Will use existing web framework but API 2.0 as well.

Overall Goals of API 2.0

  • No namespaces (though we can still use namespaces)
  • All platforms consistent
  • Learn one, learn all
  • Clear naming
  • Clear documentation

I will give Xojo some credit for admitting that the Xojo framework did not accomplish what they had hoped for.  It’s clear that Text and Auto were not well received by the community despite the things they solved.  In talking with one of the engineers at lunch they will be bringing some of the good ideas from Text into String and Auto in Variant.

The downside to this change is that those developers that have spent considerable time and effort learning and implementing the Xojo framework have to convert it to API 2.0.  The plus side is that the new approach is less intrusive and more likely to be adopted by the community.

XDC 2018 Keynote Notes

Notes from Geoff Perlman’s keynote address at XDC 2018 being held in Denver Colorado.

XDC sold out a full two and half months ahead of the conference.  24% are first time attendees.  34% are from outside of the United States representing 12 different countries.

There are over 18,000 users in the forums.  That’s a 20% increase over the last XDC.  Over 43,000 conversations and 370,000 posts.

Geoff talked about the forum and the conversion to esoTalk from the old phpBB forum software.  The original developer is doing a new forum software called Flarum and the plan is to start using it in the future.

Xojo cloud continuing to grow.  Zero configuration.  Zero maintenance.  Industrial strength security.  Recently introduced new server specs (twice the server for the same price).  Now in 8 data centers.   Now has  in-IDE server monitoring.

Xojo Design Awards:

Best Developer Tool – BKeeney Shorts by BKeeney Software Inc.

Best Specialty App – Curve4 

Best Consumer App – Alinof ToDo LIst by Alain Clausen

Best Mobile App – Packr by Jérémie Leroy

Best Utility App – Server Ranger, by Gavin Smith – Liberty App

Best Cross Platform App – LehrerOffice, Jürg Otter – Roft Soft AG

Platform Landscape:

In 2016, mobile became the most used platform.  In 2017, desktop increased a bit and now the two are running in parallel.

Windows:  Now using Direct2D for drawing and printing.  With 2018 R1 is now flicker free in Windows.

Xojo Cloud:  Faster uploads.  Caches the frameworks and only uploads what’s changed.

Linux:  Gtk3 now lets us create HiDPI applications.

64-bit builds.  One of the benefits of 64-bit: They now have an optimizing compiler and apps that use a lot of mathematical operations this can make a huge difference.  One user, a professor at Cal Poly Pomona, has spent 10 years writing an app and when compiling for 64-bit he found a 7 times improvement in performance.  This is all because Xojo is now using LLVM, an open-source compiler.

The IDE is now 64-bit.  It now allows large projects to address more RAM.

A few misses since last XDC:  Interops, plugins made in Xojo.

Communication with end users:  Xojo plans 18 months in advance.  Going to stop talking ship dates.  No longer saying when a particular feature is going to ship.  Instead going to talk about what’s ‘important’.  ‘Priority’ means that are things that are in development.  Bottom line:  no more ship dates.  No change in regular releases.

What are the Priorities?

Interops:  like declares on steroids.  Android is first.  iOS next, and MacOS eventually.  Windows is tricky and it might not make sense for that platform.  Linux is even more of a wildcard with so many distributions.

Android:  working super hard on it.  They hit some milestones recently that Travis will talk about more.

Plugins made by the IDE:  Still ‘important’.

The IDE Interface:  Since last XDC been a lot of work done.  Geoff showed a demo.  Home screen is overall project overview.  The Navigator is no longer there.  Double clicking on an object takes you into the object.  Where the Navigator was is the Toolbar.  Each tab can use the Home Screen.  Geoff didn’t show the Code Editor or anything other than the Form Editor.

Web Framework:  Web 1.0 was designed in 2009 so that’s like last century.  Windows XP and 7 were the dominant Windows OS.  Mac OS X 10.5/10.6.  JQuery was immature.  Browsers not very feature rich.  And the goal at the time was to make web apps look like desktop apps.

Web 2.0:  ground up rewrite with significant modernazations and optimizations.  This will result in far greater speed between the client and server.  Overhauling 5 controls.  10 new controls.  Improved look and feel.  99% compatible with existing projects.  One of the new controls is a charting control.  Feels more web-ish and less like a desktop app.

Xojo API’s:  The original API’s designed in 1997.  Much of the current framework is the same.  Originally started with one platform.  Accumulated a lot of cruft over the years which resulted in behavioral inconsistencies.  Making changes would break existing projects.

This all resulted in the new Xojo framework to help keep Xojo modern and keep it moving forward.  Namespaces were used to avoid conflicts with the existing API.  Behavior was consistent.  Tradeoff was complexity and also created some inconsistencies.

Guidelines:

  • When to use which case
  • Intuitive identification over accuracy
  • Avoiding abbreviations and truncations
  • Enumerations should always be plural
  • Method names who’ll be verb-noun
  • Event that fire after the vent has occurred should be past tense
  • Conventions for classes that deal with list data

Found that the new API’s don’t conflict with the old ones.

Keep the current API’s for compatibility

Add new API’s for better consistency

Replaced API’s will be deprecated.

Migrate to the new API’s at your own pace

Can mix the old and new API’s

NO NAMESPACES!  The Xojo Framework namespace is gone!  Not 100% true but for the most part it is.  To clarify developers can still use and create their own namespaces but no more ‘wall of code’.

Easier transition for Xojo and for developers.

Called API 2.0

Easy to learn.  Easier for them.  Easier for developers.  All possible via API Naming Guidelines.

They’ll release this document later on so the community can use the guidelines.

Last but not least:  XDC 2019 will be in Miami, FL.  May 1st through May 3rd.  $149/night and the rate is available 3 days before and 3 days after the conference.

More info as it becomes available.

Musings on the Xojo Framework

The Xojo framework was first introduced with Xojo 2014 Release 3 (December of 2014).  That’s when iOS was added as a target to Xojo.  Since it’s initial release it’s received plenty of bug fixes and some libraries have been added to the desktop, web, and console targets that use the new framework.  But it sure seems like there hasn’t been much news about the new framework.

If I go back into my archives and what I’ve reported from past XDC’s we were told in March 2014 the new Xojo framework would come first to iOS with it’s own version and then to console, web, and finally to desktop apps.  At the time I took that to mean that they’d be a replacement to the old global framework but, in retrospect, it’s obvious that they meant what they had done for iOS would get introduced to those targets.  That meant that the core data types, Auto and Text and the core classes, MemoryBlock, Date, DateInterval, Dictionary, FolderItem, Crypto, and so on, were available for use.

Some things like the Xojo.Net.HTTPSocket are now the ONLY way to communicate with some servers because it can handle HTTP 1.1 and supports proxies which the old global HTTPSocket can’t do.  So for some things we are forced to use the new version.  For some it’s quite a change because the old global version could do things synchronously but the new version can ONLY do things asynchronously.  Using sockets from the new framework is not a simple proposition.

There are still huge swaths of functionality that is not available in the new framework and if you need it you’re forced to either develop it yourself, or to use one of the open source projects the Xojo community has released.  While the community has been generous this goes against the modus operandi of Xojo where they’ve provided all of the basic functionality.  This is particularly vexing for newbies that know there’s a new framework but need functionality not provided yet.  And as someone who has tried having global and Xojo frameworks working together it’s not very fun.

Because it appears we’re not seeing much progress, Xojo developers are starting to get nervous and asking questions.  Is the Xojo framework a bust and will Xojo be going in a different direction?  I’m hoping that both of these questions get answered in a couple of weeks in Denver at the annual Xojo Developers Conference (XDC).

We already know that Xojo Web 2.0 will be introduced at XDC 2018.  If it’s still using the old global framework I think it will call into serious question on whether or not the Xojo framework is viable.  I mean, if you’re going to the trouble of rewriting the web framework, why not make it use, exclusively, of the Xojo framework?  If it’s not, why not?  

Well also know that we’re getting some major news for Android for Xojo at XDC 2018.  Will it use the new Xojo framework?  If not it’s a clear sign that the Xojo framework is dead on arrival.  If it is but Web 2.0 is not again I have to ask why not?  Xojo then is sending out mixed messages as far as what the Xojo framework means to their future.

XDC 2018 is going to be an important one.  We’re going to learn about the progress on Web 2.0 and Android.  Hopefully we’ll have reasonably firm targets for releases.  As part of that I really want to know what the status of the Xojo framework is what the future brings for it.

Other topics that I hope to hear about:  plugins made in Xojo, and Interops

What are your thoughts about the Xojo framework?

Updates

One of my goals for 2018 is to write more.  So here’s an update on stuff.

We hired a new developer who comes on board in a few weeks.  I’m really excited about his Xojo experience and what he brings to the company.

The planets and stars aligned and I will be going to XDC in Denver next month.  This makes me very happy as XDC is one of my favorite events!  I get to immerse myself in Xojo for a week and see all my friends and meet new ones.  I’m not presenting so that makes life a little easier too.

The week of XDC is going to be hectic as the weekend before as the FRC robotics team my son is on will be attending the World Championships in Houston.  Last weekend they won the Heartland Regional Tournament in Kansas City.  After a pretty disastrous first day where a lot of mechanical issues arose they had a solid last day, got picked by the 3rd seeded alliance, and eventually won the tournament (an alliance is composed of three teams) and advanced, automatically, to the championship tournament in Houston.

If you are geeky and interested in what these kids build, here is the final match where they won the tournament.  https://www.thebluealliance.com/match/2018mokc2_f1m2

XDC News:  IDE Redesign Coming

I’ve made no secret that I despise really dislike the Navigator in the Xojo IDE.  It is often in the way and it paradoxically either shows not enough detail or way too much.  Working in a large project is an exercise in frustration due to the Navigator.  Thankfully, the most serious bugs have been worked out but there are still issues where the Navigator may or may not have the control focus when invoking a keyboard shortcut.  This can sometimes produce ‘interesting’ results

img_4509

During the XDC 2016 keynote last week Geoff Perlmann, CEO of Xojo announced that an IDE redesign happening.  This scheduled change should appear towards the end of 2017.  They acknowledged at XDC 2015 that the Xojo IDE needed some redesign but it is obvious that they’ve given it some serious thought with actual design documents that spell out exactly how it should work.

During the keynote Geoff showed us several screenshots of ‘Photoshopped’ versions of the new IDE with the caveat that everything could change between now and release.  The biggest change is that this new IDE is a mixture of the best of Real Studio and Xojo.

Gone is the Navigator (as we know it) with all of its faults.  In its place, Geoff said that we’ll start with a something akin to the Project Tab from Real Studio.  In the screenshot it looks like it’s a list of the project with a Type (e.g. Window, Class1, Class2, etc), and another column to describe what it is.  In Real Studio this was a combination of base class and whatever interfaces it might be using.  To figure out the base class and interfaces of an object in the Xojo IDE you have to hover your mouse over the item.  Every new tab will start with this project list.img_4510

Double clicking on an object zooms in on that object in the same tab. It loads whatever editor it needs.  This should eliminate much of the focus stealing that happens with the Navigator and make individual editors more stable without constantly having to worry about the Navigator.

A side benefit (I think) of the Navigator being eliminated is that the Library of controls is now on the left side of the screen and will be visible, by default, in the Form Layout editor.  This fixes a complaint many people have in the current implementation where the Library and Inspector can’t both be open at the same time without making them windows.

With two screen shots it’s hard to glean much information but with a toolbar item for Build Settings it’s a sure bet that their is a new (old again?) dialog for the build settings that is currently in the Navigator.  This makes sense because after you’ve set up those things how often do you really change them?  Again, one more thing eliminated from the Navigator that annoyed me.

It appears that Location is again in the toolbar.  This should make it faster to change locations in the project instead of having to invoke a dialog.  Since this IDE should work a little like Real Studio let’s hope that the Back/Forward buttons work properly.

We did not get a look at the Code Editor so it’s hard to say if that’s morphing back to what Real Studio was as well.  I for one would like to see the method definition pane move back to the top of the screen rather than in the Inspector.  In the “Meet the Engineers” panel the compiler engineer, Joe Ranieri, said that there would be changes likely in the debugger panel but didn’t mention anything specific since the 64 bit debugger is a work in progress.

From two screenshots it’s obvious that Xojo is listening to our complaints.  It’s a shame, though, that it will take four years to address them.  I can only wonder how many developers do a bulk of their work, still, in Real Studio because they are more efficient with it, and only compile in Xojo.  The plus side, though, is they are doing it the right way with a design document and essentially writing the documentation, first, before implementing it.  It’s a big and important job so it’s nice to see changes coming.

What about you?  Are you excited about it or is this just one more thing to relearn?

2016 Xojo Design Award Winners

img_4508Xojo announced the winners of the 2016 Xojo Design Awards today in Houston, Texas during their annual Xojo Developers Conference (XDC). These are applications and tools made with Xojo that were considered the best in their respective categories.
Best Overall:  EverWeb http://www.everwebapp.com

Best Business App: Light Blue https://www.lightbluesoftware.com

Best Consumer App: Alinof Timer Pro https://www.alinofsoftware.ch/apps/products-timerpro/index.html

Best Cross-Platform App: PubCoder https://www.pubcoder.com

Best iOS App:  Studiometry Touch http://oranged.net/studiometrytouch/

Best Developer Tool:  Everweb http://www.everwebapp.com

These are great examples of what some awesome developers are doing with Xojo. Congratulations!

XDC News:  Android Support

iurThe 2016 Xojo Developer Conference kicked off in Houston, Texas today.  Geoff Perlmann, CEO of Xojo, Inc. took the stage this morning to deliver his keynote speech.  The biggest news of the day is that Android support is coming for Xojo.

Many Xojo developers (myself included) find that iOS support is great but without Android support it’s not complete.  Geoff announced that in the fourth quarter of 2017 Xojo will have the ability to compile Android mobile applications.

This is a big deal and a daunting challenge for this team.  It appears that they’ve done their homework to figure out what they want to do.  Details are scarce at this point but they already know they will compile down to native code and not Java.  They will also use native controls like Xojo does for iOS.

The target version of Android that they are aiming for is JellyBean (version 4.1) or better.  Roughly 97% of all Android users will be covered.  Sadly, version 4.1 was released in 2012 .  I would have thought that 4.4 (KitKat) or better would be a better choice.  Let’s hope that gets changed before release.

Geoff did not mention if Xojo is planning on adding additional staff.  The reason I bring this up is that I find a twelve month timeframe to implement a completely new platform.  A more realistic expectation is that it will be released in beta form and it will be 2018 before it’s ready for more usage.

More details as learn about them.