An Interview with the Developer of PubCoder

Italy-based Xojo Developer Angelo Scicolone joined us at the 2014 Xojo Developer’s Conference to talk about his application PubCoder, an interactive publishing tool, and left us all impressed and wanting to learn more. In fact, Apple now recommends working with Pubcoder for creating interactive ebooks. Below is our interview with Angelo Scicolone:


How did you get into developing software?

Software development has always been my passion. When I was 5 years old my parents bought me a Commodore 64 and at that moment I totally fell in love with computers. Of course I was a child back then, and it all started by playing games, but I remember my early “experiments” duplicating the programs on those cassettes: how did those “sounds” became letters, numbers and colors on the screen? How did it work?

When I was 9, I had a chance to attend a BASIC programming course and it all started to become more evident. Programming rapidly became my number one hobby and I started to write code all the time. It was a game for me at the beginning, but when I was 16 it started to become a job.

I built a website and started to distribute my software on the web, as freeware software at the beginning, but a few months after I realized that I could have made some money with my passion. Then I discovered a thing called Xojo and I started to sell shareware software for Macintosh. Things developed really fast and I soon started to find my software reviewed on worldwide magazines like MacWorld, MacUser, MacAddict, MacLIFE, and so on. They were also including the programs on their bundled CD-ROMs: needless to say this was the final boost that made me realize that I was going to do this for a living.

When the time arrived for choosing a University, I went to Turin to study Computer Science. While I was studying, I co-founded a company that developed publishing systems for Mac and Windows PCs, later I focused on cross-platform custom software development, as a freelance. Even though I was learning other languages at university, like Java and C, everything I was doing for myself I did in Xojo. In fact, one of those custom development projects became my Master’s Degree thesis (a distributed publishing system written in Xojo), and another one lead me to co-found PubCoder.

How did you discover Xojo?

When I was 16, I had almost done everything I could with HyperCard and was starting to see its limits. At that time, I was reading a lot of Macintosh magazines and stumbled upon a review Xojo and there was a demo CD included!

It only took a month from the first double-click on the icon to the first Xojo-made application of mine, publicly released to the world through my website.

What was your first commercial Xojo app?

The name of my first Xojo application was PrefsOverload. It was a preferences management utility for finding and deleting orphaned or damaged preference files. That was a problem at the time for two reasons: hard disks weren’t very big, and the Preferences folder was total anarchy, since there was not a systematic way of understanding which preference files belonged to the various applications on your machine. So that folder grew over time while the user was installing and uninstalling programs, leaving orphaned preference files that occupied a considerable amount of space on disk and were totally useless.

PrefsOverload had a discrete success for the time: I was a boy back then but I made enough money to pay for an English-study trip to London and my first portable computer, a PowerBook G4 "Titanium". The best part came when Xojo, Inc. awarded me with a "Cubie Award" in 2002, naming PrefsOverload "Best Utility Application."

You’ve seen a lot of success with PubCoder. Can you tell us about it in detail?

I have written a lot of applications in Xojo during my career, either marketed by myself or developed for third-party clients, ranging from small utilities to rich photo-editing tools and distributed publishing systems (you can see some here, all of my desktop apps are made with Xojo), but for the last two years I have been focused on PubCoder.

PubCoder is a desktop application that allows you to create highly interactive ebooks for any platform, in every language. Ebooks started as a simple “translation” of paper books, so you could put an entire library on a tablet device and read them at any time. This is all good, but when a new medium comes out, a number of new possibilities come with it. Simply putting the very same thing on a LED-backlit display as what you can read on a paper book not only isn’t enough, but it simply isn’t the point.

Then someone started to add some multimedia content like audio and video, but even this isn’t enough. We had a chance to invent an all-new kind of medium, where pictures, video, audio and the interactivity with the user are not simply add-ons to the words, but where interactivity and layout is at least as important as the words in the book.

So, in PubCoder every object on a page can respond to events like touch, pinch, swipe, device tilting or shake, and interact with other objects, moving, rotating or scaling them but also playing videos, sprite animations and sounds.

Of course not every kind of book will be a highly interactive book, and probably novels (to name one) will continue to stick with same format as they have today, but think about how this approach could revolutionize children’s books, educational books, or even manuals, just to name a few.

We’re focusing on the new EPUB 3 Fixed Layout standard, that allows you to create an interactive book using web standards like XML, XHTML5, CSS3 and JavaScript. EPUB 3 is quickly becoming the standard to read ebooks on all kind of devices, but it is actually a relatively new standard and while there is software that supports the standard very well on some platforms (e.g. iBooks on iOS and OS X Mavericks, or Readium plugin for Google Chrome browser on desktop computers) there are not reader applications that perform really well on some other platforms, and even devices that use proprietary formats, like Amazon Kindle does. This is the reason why PubCoder also allows you to export your book as a native Android application and as a KF8 file for Kindle Fire devices. This way, the author is free to focus on the content and experience of his book, and at the end of the process, he will be able to output in different formats, and publish his book in the best format for every platform he wants to distribute it on.

Who is the primary audience for PubCoder?

PubCoder allows you to create a highly interactive book without even writing a single line of code, so our users do not need to know how to program. But, if they know how to write XHTML, CSS, or Javascript code, PubCoder allows them to use their skills to enrich their books even more. So everyone who wants to create and self-publish a book can do it with PubCoder: authors, illustrators, graphics, developers, but also parents who want to quickly create a story or a photo-album for their children.

On the other side, we have partnered with top Italian publishers like DeAgostini and RCS/Rizzoli, and this allowed us to tune the software for the needs of big publishers as well as self-publishing authors.

What makes PubCoder so unique?

There are many solutions to create ebooks today, but each solution has its limitations: word-processing software like Apple Pages or Microsoft Word allow you to create “flowing” books with almost no interactivity, there are good solutions that are bound to proprietary formats, like iBooks Author or Inkling, others are tied to other software, like Aquafadas does with InDesign, and so feel like a plugin.

PubCoder was born as a digital-first solution to easily allow authors to create books for any platform, without having knowledge of programming languages and without the need to buy and learn to use other layout software.

Also, since PubCoder was born with the aim to achieve the best on any platform, it was built with the ability to adapt the content for different formats and screen sizes. In PubCoder the user starts to layout the book by selecting a default “Workspace”, which is the combination of an output format and screen size, a device orientation, and a localization; when the book is completed (actually also while he is still developing it) the user is able to add more workspaces, switch between them by using a simple popup, and adapt the contents for each one: e.g. one that does not support a specific kind of interaction (e.g. no “pinch” or “tilting” on a desktop computer), one with a different screen ratio (e.g. iPad uses 4:3 while Android devices typically use 16:10), and so on.

Actually PubCoder automatically re-layouts your book for different screen sizes and aspect ratios, and warns if something isn’t supported on a specific format (e.g. interactivity on Amazon KF8), but the user can make manual modifications at any time, and those will be retained by the software and will be specific to the workspace they are working on in that moment. And the very same concept is used to allow to add different localizations to a book. All of this using a single project file that contains all your various contents, assets, layouts and variations.

Can you tell us some specifics about PubCoder?

The latest version of PubCoder weighs almost 120MB uncompressed, and is made up of more than 40,000 lines of Xojo code, of course excluding comments, blank lines and UI code. But that’s not the only code in the software: there are also several thousands lines of XHTML/CSS/Javascript code inside the application (to create EPUB books) and in web-services and APIs for account and license management, and also the source code of the Android Reader runtime, which is written in Java.

How many users do you have?

We have more than 1500 users that are using our Mac beta version, which was launched in October 2013 at the Frankfurt Book Fair. There are authors, illustrators, agencies and people working for big publishers.