XDC 2019: Android Walkthrough

During the Android Walkthrough session at XDC Travis Hill and Paul Lefebvre showed us the current status of making Android apps via Xojo.  As Geoff said in his keynote there is considerable amount of work left to be done.

Last XDC had some compiled code running in the emulator and one control.  That was it.  

Today they have compiled code running in emulator and devices for both 32-bit and 64-bit.  APK creation.  Emulator installation and execution.  Control positioning and locking.  Now has 25 controls which is a bulk of the controls for version 1.

Buttons:  Regular, Segments, and Toolbar

Pickers:  DateChooser, Slider, Switch

Inputs:  TextField and TextArea

Decorations:  Label, canvas, oval, rectangle, and separator

Organizers:  TabPanel

Indicators:  ProgressBar, ProgressWheel

Viewers:  HTMLViewer, ImageViewer, ScrollableArea, Table, VideoViewer

NonVisual:  ImageChooser, Location, MessageBox, Timer

Tech Details:

Android is unique.  Code that executes via Java Virtual Machine and Native.  They communicate via the Java Native Interface.  The Xojo framework is built with Xojo and Kotlin.  Kotlin is recommend by Google.  But essentially we don’t have to worry about.

Application execution works with both 32-bit and 64-bit.  32-bit OS is still popular on devices.  Support ARM (devices) and x86 (emulator).  Xojo figures it out for you automatically.

Typical data types:  Integer, Double, String, Variants.

Layout editor is what we’re familiar with.  An Android ‘view’ is really just a Window.  

Uses API 2.0.   Which means Standardized naming.  Errors are exceptions.  Zero based offsets.

Requirements:  Mac/Windows 64-bit for the first version.  Linux has some unique issues.  Android Studio required to provide the emulator and debugging tools.  Android 9.0 (Pie) SDK.  Target Android 4.4 and better.  Will run on a vast majority of devices in the world.  SDK version can change.

What’s Left?  Largest piece left is Framework completion.  The other big piece is the Debugger – there are some technical challenges in debugging with the native and JVN code.  

So, no answer to when it will be available.

The Future:  After initial release Auto Layout (used control locking to begin with).  Will eventually support plugins (those built in Xojo) and those can call OS API’s (JVM) and/or include native libraries.  Most of the focus on phones and should work on tablets.

Travis showed us a demo of Android:

Layout Editor looks very much like iOS – except it looks like Android.  Drag and Drop and resizing the Layout Editor looks pretty smooth but nothing that iOS doesn’t already do.

Hitting Run for a simple app didn’t take too long and it opened it in the emulator.

Travis mentioned that even with debugging you have to do Code Signing.

In 2nd example he showed an Android table with some initial values.  Table scrolled properly.    He flipped the phone in the emulator and showed that the control didn’t adjust.  Went back and used the Lock control properties in the inspector and then took it back into emulator to see it in action.

Q & A:  

No container container in list.  Yes, there will be.

Can you write an iOS and Android from same project?  No.  Not today.

Currently it builds 32-bit and 64-bit builds automatically.

Why do plugins need to be in new format?  The plugin format allows you to call the JVM and native libraries.

API 2.0 is changing the offset of strings?  Some confusion on what that will mean.

Using constants in the app, can it be decompiled and be seen?  Important strings should be obfuscated.

XDC 2019 Keynote

The annual Xojo Developer Conference (XDC) kicked off in Miami, Florida.  Geoff Perlman, CEO and founder of Xojo  took to the stage to welcome conference attendees and give us an update on Xojo.

Attendees:  

15% new to the conference.  40% outside of the United States.  11 different country.

Community:

New users up over 200% (this is web site and  account creation).

Special recognition for Hal Gumbert and Tim Dietrich for evangelizing Xojo on Twitter and social media.

Thomas Tempelmann was also recognized for his efforts to get Xojo recognized on Slant

Demographics:

2017:  half of all users under 35.  20% were women

2019:  60% of all user under 25.  40% are women

Forum:  over 19,000 members,  Over 47,000 conversations.  Over 400,000 posts.  Currently use EsoTalk and they are working to move to Flarum (flarum.org).  All of the content will be converted over so nothing will be lost.

Xojo Design Awards:

Consumer:  Goldfish for designing we applications.

iOS:  snow Maps by Jérémie Leroy.

Education:  AcaStat – AcaStat Software

Vertical Market:  Script Studio – Nuvotech Limited

Cross-Platform:  Studiometry – Orange Software

Developer Tool:  Graffiti Suite – Graffitti Suite

Honorable Mention:  Mike Cotrone, developing app and was asking how to structure the database to track chicken and egg tracking application.

Last 12 Months:

48 features

75 changes

465 bug fixes

New stuff:

Dark mode caused issues with schedule.  Turned out to be non-trivial.  Took an entire release cycle.  

iOS Table

Native labels in Windows

Better text rendering in Windows

API 2.0 – URLConnection

Incremental compilation for 64-bit and ARM

IDE faster Layout Editor

The Path Forward

Xojo Cloud:  

64-Bit

Named Hosts

Stand Alone Apps

Load Balancing

Interops:

Less complicated way to call into the OS.  No conversion of data between OS and Xojo data types.  The XDC iOS app is using Interops.  Geoff showed an example of old declares and the same thing with new Interops.  Interops AutoComplete and are available in the Inspector.  Using it to build the Android framework.

Plugins:

Development is paused for now to get Android out.

IDE Update:

Idea is to improve the user experience.  2019 R1 had improvements to the Layout Editor.  Navigator is going to change.  It can work with or without tabs but essentially the Navigator is becoming the Home listing and once you double click it dives into that object.

Coming soon.

API 2.0

URLConnection is out and improved.  Bezier Curves is coming.  FolderItem for MacOS is getting revamped and the API’s from Apple are deprecated.  Better speed.  New Date class is getting many of the features that Xojo framework Date class has.

Most API’s not changing.  That that are replaced will remain for many years.  You don’t have to rewrite code right away.  Analyze Project will tell you what you’re using that is deprecated.  Replaced API’s will no longer auto-complete.  Documentation pages will no longer list the replaced API’s.

Rolling it out in one release.  

Web Framework 2.0:

Current web framework was released in 2009.  A lot has changed in web technologies.  With Web 2.0 it was a ground up rewrite.  Significant optimizations.  Far great speed between client and server.  Overhauling 6 controls.  13 new controls.  Greatly improved style management.  Improved the look and feel.

To test they ported Feedback to Web 2.0.  Greg will be showing it in his session.  Long term goal is to replace the desktop version of Feedback with a web version.

Android:

Last year they showed a simple Hello World application.  Very cobbled together.  Now they’ve got IDE integration, running in the Android simulator.  Run on actual hardware.  Building is now working.

XDC app is now available for Android.  It’s available in the Google Play store.  The caveat is that it’s really just an HTML viewer so obviously there’s a lot of work left.

Hard parts are done.  What’s left is implementing the Xojo framework.  Porting the Debugger is also another big step.

One Last Thing….

Geoff promotes the MBS European Conference in Cologne, Germany.

That it!

XDC 2019 Is Almost Here!

The Xojo Developers Conference (XDC) is just around the corner.  In less than two weeks Xojo developers from around the world will gather in Miami to talk Xojo for three full days.  The speakers have sent in their slides and gotten feedback from Xojo and flight and hotel reservations made.

This is my favorite part of the year!  Really.  BKeeney Software has been around for nearly 18 years and in that time I’ve gone to many Xojo Developers Conferences including those sponsored by Xojo, sponsored by Monkeybread Software, and even held a few I helped host with the defunct Xojo developers user group.  

Many of the developers that attend are my friends.  Many more are colleagues, and competitors.  Some are current and old clients.  Some of those clients I met at XDC looking for developers for their project since there will be no greater concentration of Xojo developers on the planet!

You’d think that with as many developers conferences under my belt there would be nothing new to learn.  I disagree since Xojo is always morphing into the next phase of its existence.  When I started, 68k Mac apps were transitioning to PowerPC.  They added Windows and Linux targets.  They added Cocoa for MacOS, 64-bit builds for Mac, Windows, and Linux, the ability to create web applications, Raspberry Pi apps, and mobile applications for iOS.  

I expect this year we’ll learn a lot more about Xojo for Android which will be a significant new target and make iOS that much more relevant with Xojo.  We’ll learn about InterOps that aims to make adding libraries much easier for iOS, MacOS, and Android.  And I’m sure we’ll see a lot about Web 2.0 that will make Xojo web applications more powerful and more robust.

At the end of the week, it’s always sad to go home.  The bonds you make while sitting across the table from someone at a meal, or over drinks at the end of the day, is something that you can’t get in the forums, email, or via videos from the conference.  Don’t get me wrong, the Xojo forum is one of the friendliest developers places I’ve ever experienced, but there is something truly powerful about chatting with people and being able to read their body language and talk about their developer experiences that far outweighs the convenience of the electronic venues.

If you have the means I highly recommend making it to XDC.  It’s well worth it.  You’ll get to meet some awesome people, learn a bunch of new things, probably see some alpha or beta of new features, and overall have a good time with your extended Xojo family.

If you’re going and we haven’t formally met, please feel free to stop me and introduce yourself.  Remind me how you came to find me and what products, if any, you use.  Tell me what features you like, or don’t like.  Just say hi and then go talk to the many other Xojo developers there – you might just find friends for life.

Of course I’ll blog about the keynote and the cool new things that I see at the conference.  See you in Miami!

XDC Video Sale

The Xojo Developer Conference (XDC) is a fantastic event.  I highly recommend going to one.  The 2019 XDC event this year is May 1st through the 3rd in Miami, Florida.  I look forward to XDC as you will not find a greater density of Xojo developers on the planet!  Everyone there is all-in on Xojo and you can easily talk Xojo non-stop for three full days (or longer).  More details on XDC at https://www.xojo.com/xdc/

At XDC 2015 they started recording the sessions and attendees get these recordings as part of their conference admission.  This was a great addition because it made choosing between sessions a lot easier because you know you could watch it later.  Plus you could rewatch sessions whenever you wanted.

The XDC videos are also for sale after the conference.  They were not inexpensive but certainly cheaper than going to the event.  Xojo recently announced that the XDC videos from 2018 are now available for $99.  The 2016 videos are available for $75.  These are great prices for 64 videos that cover everything from the Keynote by Geoff Perlman, to database topics, to Windows and Linux and iOS and everything in between.  I haven’t totaled up the exact hours but if my rough calculations are correct the two years of videos adds up to over 1900 minutes of video.  I guarantee there’s a topic you’re interested in that is in this list.

I’m so looking forward to XDC 2019.  Not only to escape a fairly brutal winter in the midwest but to reconnect with my friends and talk Xojo non-stop for days on end.  But also to go to sessions that haven’t been done before.  Many of the speakers had done their favorite topics several times and chose different topics (I did this intentionally to get outside my box).  You can find the season list at https://www.xojo.com/xdc/sessions/

As I usually do I’ll do blog posts on the more interesting topics.  I expect to hear more about Web 2.0, Interops, Android, Xojo Plugins and much more.

Hope to you see you at XDC.  If we’ve never met please stop me and introduce yourself and tell me how you ‘know’ me.  Some read the blog and some have bought our Xojo developer products.  I love to hear about your experiences and how I can serve you better.

2018 Was a Weird Year

I hope everyone’s holiday season was good.  We’re approaching the end of 2018 and I find it nice to reflect on what’s happened and what we’ve accomplished this year.

Looking Back

Let’s start off with the blog posts.  I did 41 (well now 42) blog posts in 2018.  Five were about Xojo releases.  Four were BKeeney Software product releases.  Four posts were about the Xojo Developers Conference.  The rest were a variety of Xojo related topics.

The most highly commented blog post was from June called Chasing Xojo where I lamented that Xojo, at least until that point, seemed to be a less stable when it came to Windows and Linux due to major revamping of the drawing systems on both platforms.  In Windows, Xojo doesn’t flicker as much but the struggle to get speed was a concern for all of 2018.  In Linux, the switch to GTK 3 wasn’t as smooth as we could have hoped.

The most viewed blog post was from August called Xojo 2018 Release 2 where I did my usual review of the most recent release of Xojo.  I heavily criticized Xojo for their poor documentation in that release.  I received plenty of blowback on that one.  But I think the end result is that R3 and R4 documentation was much better.

We released two new products with BKS Report Studio and BKS Tab Control.  Report Studio is our reporting utility meant for end-users for macOS and Windows and it was built using the award winning Shorts reporting classes (also a blog post).  The Tab Control is a canvas subclass that replaces, and extends, the built-in Xojo tab control in many ways and was our attempt at replaced the old CustomTabControl that many use but is unusable for HiDPI apps.

The other major release of the year was ARGen 3.0.  ARGen is our utility to create Xojo projects that creates ActiveRecord objects.  Among the many changes was the ability to generate ActiveRecord objects for iOS projects, supporting GUID primary keys, and the ability to include Audit Trail, Localization, and Database Update modules that help in many products.  We use ActiveRecord in practically every project and having the ability to generate some basic desktop and web UI is a huge time saver.

2018 sure seemed like a mixed bag for Xojo.  The Windows drawing issues took up a good chunk of the year and I think R4 was the first solid Windows release (although I still have 2 client apps that won’t remote debug in R4).  I can’t imagine the amount of effort that Xojo and the community put into getting Windows drawing fixed.

64-bit remote debugging became a reality for all targets this year.  64-bit compiling isn’t the huge gain that many in the community hoped for but then we always want more.  We just have to remember that 64-bit doesn’t necessarily mean ‘faster’.  At least the debugger works and that’s not nothing.

Dark Mode came soon after the release of Mojave.  The IDE works in Dark Mode and we were given many of the tools to implement it in our own projects.  Dark Mode only works in MacOS but some are already clamoring for it in Windows too.  It’s still to early to tell if Dark Mode is a hit on Mojave much less in xojo.

Looking Forward

What is 2019 going to bring us?  For one, we’re almost finished with a fairly significant update to Formatted Text Control and after that’s released we’ll start with an even bigger version 4 update to the venerable word processing control to bring it up to date and extend its capabilities to make it even more powerful.

We have a number of large consulting projects that have been in gestation for many months and years.  It will be nice to have a big project or two to keep us busy.

With the release of Web 2.0 I will redo all of our Xojo training videos related to web.  They’ve been outdated for a while but it’s not worth redoing the videos until Xojo releases Web 2.0.  If they release Android I’ll start on at least some intro videos for that too.  This might finally be the year that I redo the remaining Real Studio videos.  No doubt I’ll redo them just before a major IDE change.  🙂

What do I expect from Xojo?  That’s a tough question to answer since they’re so damn secretive now.  I expect Web 2.0 to show up in time for XDC (so maybe release 2?).  I think it will be pretty solid in the first release but it wouldn’t expect it to be good until the following release.

I also think that at XDC we’ll get an alpha of InterOps but not anything other than another dog and pony show for Android.  Targeting another platform is long and tedious process and involves some serious IDE work.  How much of the iOS editors can they use?  I can only guess but at first blush I say not much.

Some of Android’s success may hinge on getting iOS to use the global framework and away from the Xojo Framework.  Nothing like rewriting an entire framework while keeping backwards compatibility.  The more I think about it the more I think the iOS rework is put on hold until Android is released.  

Which leads to API 2.0 in general.  We’ve already seen some of the first new controls to use API 2.0.  URLConnection was introduced in 2018 R4 with mixed success.  I would expect more API 2.0 controls to show up.

So what do you think?  Was 2018 a successful year for Xojo?  What do you see happening in 2019?

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.