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.

XDC News:  2017 Roadmap

img_4508In todays keynote address, Geoff Perlmann, CEO of Xojo announced the major features coming to Xojo in the 1st, 2nd, and 3rd quarters of 2017.

First quarter:

64-Bit builds will be out of beta.  This means that XojoScript will be 64-bit capable as well.  This also means that 64 bit builds for Windows will include application icons and version info.

Remote Debugging will be available for the Raspberry Pi.  This should make using and developing on the Raspberry Pi that much better.

Remote debugging will also be available for 64 bit!  This should make the transition to 64-bit much faster at this point.  I know that we are holding off moving to 64-bit builds because of the lack of remote debugging.

String and Join functions that are pretty slow in 64 bit builds will now be considerably faster.  Again, really good news for some developers that have experienced this.

Second and Third Quarters:

New projects will be 64-bit by default.  32-bit builds are NOT going away.  What is going away is 32-bit versions of the IDE and while nearly all Mac OS X and Linux OS’s are already 64-bit this might cause some pain for Windows users that will have to update to 64-bit.

The new Xojo framework will come to Console, Web, Desktop and Mobile.  (Technically speaking mobile is already using the new framework.)

New plugin format:  Currently plugins in Xojo are written in C/C++ and are only supported for console, desktop and web application.  Developers will be now be able to create plugins in Xojo that will include resources, windows, etc. that are not possible in the current format.  The advantage of this is that it will allow anyone with a Xojo Pro license to create plugins and could (potentially) dramatically increase the availability of 3rd party controls.

These plugins are compiled into an intermediate format that is not human readable.  Presumably this format is something that can’t be reversed by the average developer.

This new plugin format will become the preferred format but the old style format will be supported for the foreseeable future.  It will be supported for Mac OS X, Windows, Linux, Linux ARM, and for iOS.  This last item is a high want by many Xojo developers.

Fourth Quarter:

Interops is a new feature to take the place of Declares in Xojo.  Declares are great but there’s no autocomplete and there’s absolutely no data type checking.  Interops should make this much easier.

More news coming up!

XDC News: Xojo 2016 Release 4

img_4508In today’s keynote address, Geoff Perlmann, CEO of Xojo announced the major features of Xojo 2016 Release 4.  Release 4 is scheduled to go beta in November and go public in December.

The existing Windows framework drawing is currently done via GDI or GDI+.  Xojo recently dropped Windows XP support and this allowing them to update how Windows apps work.  In the upcoming release Xojo will switch to Direct2D and DirectWrite.

These two technologies will allow better picture scaling and better alpha channel support.  And while GDI+ does have some hardware acceleration these new libraries have full support for hardware acceleration.  In testing, Xojo says that intensive drawing routines should be roughly 280% faster than R3.  End users should only have to recompile their apps to take advantage of this new feature.

Geoff did not talk about flickering but I will attempt to find out more this week.

Among the other changes:

Windows HiDPI will now officially be out of beta.  In addition the Windows Xojo IDE will be released as HiDPI capable.

Xojo Cloud users should see exceptionally better upload speeds.  Starting in R4 the libraries used in the upload are cached so they are not uploaded every single deployment.  This should speed up deployment and testing quite a bit.

More news to follow.

Xojo Musings

iOS 64 bit builds was introduced in Xojo 2015 R1.  Raspberry Pi support and 64 bit builds for Xojo desktop, web, and console apps was released in Xojo R3 in October 2015.  iOS, Raspberry Pi, and the 64 bit builds are all using the LLVM compiler.  The lack of a 64 bit debugger really holds back adoption of these new platforms in Xojo, in my opinion.

I’ve spent the last month working on a couple of different Raspberry Pi projects.  One was for a client and one was for fun.  In both cases the projects weren’t exceptionally tricky or complex but they took way longer than necessary since you can’t ’see’ anything while it’s running so I was is forced to use ‘old-school’ debugging methods with log files, message boxes, console messages, and whatnot.  Regardless, it’s not fun using the Raspberry Pi with Xojo.

It’s obvious that the move to 64 bit is much harder than they anticipated.  If it was easy the Xojo IDE would already be 64 bit by now – a year after 64 bit was released.

As a company we’ve officially held off on supporting 64 bit builds of our products.  Both Shorts and Formatted Text Control use XojoScript which isn’t 64 bit compatible yet.  XojoScript can be stripped from both products but it’s not an ideal situation and one that seems pointless since 64 bit is coming – eventually.

Xojo 2016 R3 was released a few weeks ago so the chances of R4 coming out in October is pretty slim.  The Xojo Developers Conference (XDC) is coming up in two weeks so I’m sure everyone at Xojo is gearing up for it.  And since they are all at the conference there is not much chance of real work getting done that week.  Good for those attending but bad for those anxiously awaiting new features and bug fixes.

In the past two and half years Xojo has added two new platforms (iOS and Raspberry Pi not to mention 64 bit builds) and not added any permanent staff (that I’m aware of).  Xojo does amazing stuff with the limited staff it has.  While they swear it doesn’t take away from their work I have to call them on it.  Two new platforms with initial development cost, debugging time, and the subsequent bug reports from users HAS to slow them down on other things.  It simply does.

I’m not doing their level of work but we manage five employees each with their own set of projects.  To put one person on ‘project x’ when they’re already working on ‘project y’ means that ‘project y’ gets delayed.  Since 2016 R2 was a big iOS release one has to wonder what was delayed to get those features added (and some would argue they were a year late anyway but that’s a different post).

I’m hoping to see a 64 bit debugger at XDC but I’d bet on a 64 bit IDE first.  This makes sense because they need time to work with it internally before we see it.  This will mean that XojoScript and whatever else was holding 64 bit back has been figure out.

Other things I predict for XDC:

Android.  Don’t get me wrong, I want Android because I feel it’s the only way for Xojo to grow into the mobile space, but if it means that the same staff are now adding yet one more platform it’s not worth it.  I’d rather have the big ticket items they’ve already said are coming than yet another platform that takes precious time away from what they already have. Likelihood:  sadly, pretty good given a recent Xojo blog post

Windows framework changes.  It’s been a while since Windows has received significant love.  We know they’ve been talking about using part of the .NET framework in Windows and now that Windows XP support was dropped this might become a reality.  The only question is what does it give us and when do we get it?  Likelihood:  Good

New framework additions.  The Xojo framework has been slow to gain momentum in the community.  Part of it is bugs those brave enough to use it have discovered and part of it is that it’s incomplete.  I’m not sure how much of the new framework is used in new parts of the IDE but it seems like this would become a bigger part of their mission as time goes on.    Likelihood:  Good

New database frameworks.  In iOS we’re already seeing the potential changes coming where a database error throws an exception.  This is a good change but will require a lot of patience on our part to get used to.  Many XDC’s ago Xojo showed off ORM classes (a lot like ActiveRecord but built into the IDE) for SQLite that looked interesting so it will be nice to see if that’s gone anywhere.  Prepared Statements are now built into the SQLExecute and SQLSelect commands but they’ve also screwed up (read removed) dynamic queries with the lack of BindType and BindValues so I’m looking for a new solution in this front.  Likelihood:  Maybe

Libraries with Xojo.  This was brought up last year at XDC so I don’t expect to see a lot of news about it but I do expect an update.  It would be really nice to create libraries using Xojo instead of using plugins or encrypting source code.  Likelihood:  Mention only

Plugin Management.  The simple fact of the matter is that many Xojo developers (myself included) use plugins.  For many it’s the simplest way of doing things and between Monkeybread Software and Einhugur they offer a ton of functionality that is not built into Xojo.  It would be nice to have the IDE manage them so you can have multiple versions of a plugin installed and only some of them activated on a per project basis.    Likelihood:  Wishful thinking

I’m sure there will be a surprise or two but honestly I expect methodical, evolutionary changes.  What news do you expect to see from the Xojo Developer Conference?  What would surprise you?

The Power of Meeting Face to Face

In Kansas City this past weekend I attended MidAmerican 2, or WorldCon.  WorldCon is a Science Fiction and Fantasy fans dream come true.  Thousands of people from around the world attended hundreds of sessions covering television shows, movies, author readings and signings, many sessions on how to write, and much more.   It is a long convention at five days that culminates with the Hugo Awards ceremony (think the Academy Awards for science fiction and fantasy).

I am an aspiring science fiction writer (nothing published yet but I’m working on it!).  This convention was an excellent way to immerse myself with professional and amateur writers and learn.  There is something powerful about hearing people that have already “made it”.  Many of them still fight “Imposter Syndrome” and many have issues with the business of writing.  Writing is a solitary business and many are introverts and selling themselves is often nerve wracking.

Do these issues sound familiar?  They should.  In many ways, Xojo developers are much like writers in that they work in a vacuum with little feedback from others.  I know I personally struggle with Imposter Syndrome despite having done this gig for fifteen years and being ‘successful’ (whatever that means).  And much like writing, the only way to get better at Xojo programming is to do Xojo programming.

It seems a bit anachronistic to fly somewhere to meet with people.  After all, the internet makes this easier, right?  There is something powerful about being face-to-face with another person and being able to provide instant feedback.  We also tend to be much more polite in person than online and that’s a huge plus in my opinion.  I’ve met some wonderful people, in person, that online seem rude at best and sometimes simply belligerent.  The internet might make people more accessible but it seems to removal societal filters too, sadly.

In a month and a half Xojo is holding its annual Xojo Developers Conference (XDC) in Houston, Texas.  At XDC, Xojo developers from around the world will join together for three days of sessions covering practically every development topic you can think of.  And if you have a question that’s not covered you’ll be able to find someone to help you.  Besides the many amateurs and professionals attending you’ll have ample opportunities to talk to the Xojo engineers.

It’s not uncommon for businesses looking for a developer to attend XDC.  It gives them the unique opportunity to talk to many Xojo developers in a short amount of time.  We (BKeeney Software) typically speak to one or two prospective clients at XDC each year.  If you’re a consultant this conference should be on your ‘must attend’ list as it can pay for itself many times over if you land just one project.

Today is the last day to save $100 off the conference registration.  Sign up to learn and be inspired and to make some new friends.  See you in Houston!  http://www.xojo.com/store/#conference

 

XDC 2016 Sessions Announced

Xojo announced an initial session list for XDC 2016.  The full list at http://xojo.com/xdc/HTML/sessions.html.  I’ve been told there are yet more sessions to be announced.

I’m doing a session on Reporting in Xojo and Carol is doing a session on eliminating common database mistakes.  Since we do a lot of database applications with reporting I think you’ll like our insights, processes and solutions.

I am impressed with the number of new speakers and the topics that have never been done before at XDC.  Want to learn more about developing iOS or Raspberry Pi applications with Xojo?  There are sessions on that.  Want to learn about REST web services or how to creating web API’s with Xojo?  There are sessions for those as well.

XDC is where you go to immerse yourself in Xojo for three days.  Since we are a smallish community we don’t often talk to other Xojo developers face-to-face.  XDC is where you will meet not only those that inhabit the forums but also the engineers behind Xojo.  This is the only place where you will find out about upcoming changes and additions to Xojo.

Last year Xojo recorded all of the sessions and those are available in the web store ($499).  I’ve not heard if they will record this years events but I found the recordings to be very useful because you can’t make every session.

They made this promotional video last year.  I think it’s pretty good so I’ll just let it speak for itself. I have a cameo at 1:47 or so.

Today is the first registration deadline and they are already sold half of the available spots.  More info at http://xojo.com/xdc/HTML/index.html.  Hope to see you there!

Upcoming Xojo Events

Next Wednesday, February 24th, I will be meeting with Xojo developers in the Palm Coast, Florida area. The location isn’t set yet, so check in the forums at https://forum.xojo.com/28686-central-florida-xojo-user-group and let us know if you can make it. We’re getting together at 7 PM and I hope to see you there!

March 11th, 2016 Christian Schmitz of Monkeybread Software fame is getting tougher with other Xojo folks in Chicago, Illinois near O’Hare Airport. More information at https://forum.xojo.com/28759-xojo-meeting-for-chicago-illinois. I had originally hoped to make this meeting and offer some training but I already had a commitment.

March 15th, 2016, Christian Schmitz is in Cleveland, Ohio. More information at https://forum.xojo.com/28758-xojo-meeting-for-cleveland-ohio

Monkeybread Software is hosting an event in Koblenz, Germany on May 19 and 20, 2016. Two Xojo representatives will be there for this two day event. I went to one of these events a couple of years ago and had a really good time. The Xojo conference was fun and the day after the event a number of us went on a tour along the Rhine River Valley. Fun had by all! More information at http://www.monkeybreadsoftware.de/xojo/events/koblenz-2016-event.shtml

The big Xojo event of the year is October 5-7, 2016 in Houston, Texas. The Xojo Developers Conference (XDC) will have twenty-eight speakers, thirty-five sessions, and attendees from around fifteen countries. The entire Xojo development team will be there and what’s discussed at meals and events is just as important as the sessions. It’s not an inexpensive event, but if you want to learn more about Xojo and pick the brains of Xojo experts, XDC is THE event to go to. More info at http://xojo.com/xdc/HTML/index.html.

Getting together with other Xojo developers is a lot of fun.  I highly encourage you to find other developers in your area and start sharing the knowledge!

XDC Notes:  Compiler Notes AND Exception Line Numbers

So far I’ve written a couple of posts about information gleaned from the XDC keynote address last week.  One session that revealed some additional information was Joe Ranieri’s Compiler session.

Joe started off by talking about what’s happened to the compiler in the past year.  The list is pretty impressive since that includes iOS (32 bit AND 64 bit), 64 bit for Mac, Windows, and Linux, as well as adding the new framework, and adding better compiler error messages.

He spent some time explaining why the Using and Global keywords came about and how they are used.  It’s interesting that you can mix and match the two frameworks and how that might be desirable.

Iterators were next up in the presentation.  Iterators allow our classes to be used with For Each loops and Joe said that iterators are generally more efficient than alternate approaches.  Two interfaces are available Xojo.Core.Iterator and Xojo.Core.Iterable.  A good example of the new interfaces are in the Xojo.Core.Dictionary class.

The new Text datatype is the attempt to solve the String datatype deficiencies.  Strings could be text or a bucket of bytes which led to issues with encoding.  Text is always a valid textual representation and is a series of Unicode code points (a way to think of this is an array of characters that might be ASCII or a valid Unicode character- either way you, the developer, don’t need to care).  When converting to Text you always give it the Encoding you want so it’s never in question.  One nice feature of Text is that you can convert to and from a String with no penalty.

The New Auto datatype is the replacement for Variant.  Auto’s perform NO conversion of data which led to sometimes subtle issues with Variant as it would gladly convert from datatype to datatype regardless if it made sense or not.  Auto will only do conversions that the compiler would (such as doubles and integers) but raise exceptions when it comes across something it can’t do (like strings to integer and visa versa).  Auto preserves type information exactly so you can use Introspection to determine the type.

New for 2015 R3 is more 64 bit targets.  This includes GUI projects on Windows and Mac OS X, console and web projects on Linux, Windows, and Mac OS X.  Porting, for most of us, should be straightforward.  However, there are a number of problems we’ll face.  Among them are Declares, Integer size assumptions, and Plugins.

A new 64 bit aware plugin SDK is due out soon and Christian Schmitz from Monkeybread was showing off his plugins running in 64 bit apps with no issues (it’s my understanding it was NOT using the new SDK so I’m sure he’s got some work to).  The new SDK is entirely C based and the overloaded C++ functions are going away.  Most of the long deprecated functions are doing away too.

Declares will be a problem, though.  Of particular note is the Windows Functionality Suite.  It won’t work in 64 bit and you’ll have to find replacements for those things you use.  Mac OS Lib is in better shape but needs some updating too.

Structures need to be updated for 64 bit apps to.  The default structure alignment of 1 means it puts each field right after each other and this is wrong for 64 bit apps.  If you use the structure alignment of 0 it will align the structure ‘naturally’ which matches was C does.  I’ll be honest, this was interesting news but way above my pay grade in understanding.  Talk to Joe if you have questions on the implications of this change.

Also new in R3 is customizable array sorting.  Currently we can do this using SortWith but now we’ll be able to pass in a delegate.  Joe really seemed pleased about this addition but I think the implications won’t be immediately noticed by the community.  I for one don’t remember the last time I had to sort an array since we generally load arrays sorted in the order we want later.  You might find this useful.

Joe wrapped up his talk with some roadmap items.  For R3 the IDE debugger is still 32 bit.  Obviously it needs to be 64 bit and that will happen.  The better compiler error messages initiative will continue as well as Xojo-specific compiler optimizations.

Perhaps the biggest bombshell that came out of the roadmap portion was exception line number information!  This means that we should be able to get information on which line of code caused the exception.  I believe at this point several people clapped as determining which line of cause caused an exception can be difficult to determine.

I followed up with Joe after the session and while it’s not finalized, here are the plans.  The compiler will spit out two files on the build.  The first is the application and the second debug information.  When an exception is called there will be a binary blob that can be saved and sent to the developer.  There will be a tool included with the IDE that takes that blob and can show you the original line of code that caused the issue.  AND it will show you the stack like the debugger does now.  It will not have any variable or argument information.

Regardless, this is a feature that people have been requesting for years.  This should lead to better error reporting and hopefully better programs!

The compiler session was the only Xojo led session, that I attended, that had any sort of roadmap information presented (with the exception of the Keynote).  It was informative and was a wealth of information.  This session gets a five start review (except for the purple code against the black background – sorry Joe).

See anything that gives you hope?  Anything makes you want to mope?

XDC 2015 Recap

The Xojo Developers Conference is my favorite week of the year.  It’s where I go to renew friendships, make new ones, talk to potential clients, learn from other Xojo developers, and learn what Xojo is up to.  Along the way there’s usually a surprise or two and this year was no exception.

The first surprise from XDC was that all sessions were recorded.  All attendees will get access to the sessions.  Currently it’s unknown if they will be available to the general public for free, or for a fee.  During the wrap-up session several people gave an impassioned plea to make these available to everyone at no cost.  The argument is that their experience with other conferences showed attendance actually goes up after releasing session recordings.

Not really much of a surprise since they’ve been telling us this for over a year now, but 64 bit builds are coming in 2015 R3.  This is indeed welcome news in a  software world that’s quickly becoming 64 bit.  From what I gather from people way smarter than me (insert joke here) is that 64 bit won’t really change anything in our apps and won’t give us much, if any, enhancements, and will make some things slower.  As Geoff joked at the conference, let’s hope that 128 bit computing doesn’t come any time soon.

Drag and Drop for web applications is coming for R3 as well and I expect this to be a big deal.  There are just some times of applications that do well with a drag and drop environment.  Think graphical editors where you have an object that you select and move by dragging it.  The current web framework has drag events but they should absolutely not be used – ever – since they don’t really work like we expect.  Drag and Drop might very well be my favorite news from XDC.

Raspberry Pi apps built using Xojo.  I think this is a wonderful addition to the product.  Raspberry Pi is a hugely popular processor because of its price and it’s used in a lot of places.  Hobbyists and the DIY crowd really like it and I’ve seen more and more ‘professional’ level projects with them too.  Heck, my sons 3D printer is run by a Raspberry Pi.  The XDC crowd didn’t react much to it when they announced it but as the week went on it came up in conversation more and more.  What a great way to introduce Xojo to new developers!  Really, the only question that’s come up is how much will it cost?  We already know it will be part of the Pro license but what about those that don’t need all the other stuff?

One unexpected surprise was the mention of the long deprecated and removed SpriteSurface and SuperSpriteSurface.  It seems that more than a few people got their start in Xojo/REALbasic developing games using it.  SpriteSurface wasn’t a great class, in my opinion, but it was enough to get started and getting people exposed to the language.  Perhaps we’ll see a Son of SpriteSurface in the future?

One thing that I expected to hear more about but didn’t was Auto Layout.  Norman had a session on it but other than there wasn’t a mention of it anywhere.

This isn’t a surprise because I’ve been many XDC’s now, but the official evening events are usually a lot of fun.  This year there was a mystery dinner theater that most found entertaining but the river cruise to watch the bats come out at dusk was awesome.  What goes on after the official events is even better as clumps of developers go exploring and Austin is a great place for exploring.

I encourage you to go to an XDC.  It’s a very nice event where you’ll learn a lot not only from the sessions but from those attending as well.  No word on where next year’s XDC will be. The cities under consideration:  Seattle, San Antonio, Miami, New Orleans, and I believe San Diego.  If you have a preference, be sure to let Xojo know.

So that’s my recap of XDC 2015.  Did any of the news surprise you?  Anything you expected to hear more about but didn’t?