As many of you, I’ve always loved —with a few exceptions in the Apple dark era—products designed by the Cupertino company. When I was a 20 something, I couldn’t afford to buy a Macintosh Classic, so 20 years later I started collecting vintage Apple hardware. I loved the idea to own a piece of computer history design. Thanks to eBay and some friends I got a couple of Macintosh—Classic II and SE—, 3 Powerbooks—165, Wallstreet and Pismo—, a Newton, one colorful iMac, an Apple Writer printer and an Apple IIe. When the first iPhone was released back in June 2007, I bought one as soon as I could find a friend of mine coming back from the USA.
That iPhone is still one of the favorite pieces in my small collection: it is beautiful, and it was clear it had the potential to change the mobile world forever.
The iPhone was cool, but the coolest part has been the birth of an entire new ecosystem when Apple opened the App Store one year later. Soon after the iOS SDK was open to developers, thousand of them began to learn how to code these new “apps”” and hundreds of thousands apps showed up in the App Store almost overnight.
Creating an iPhone app has never been an easy task though. You need to learn a lot of things before you can start creating even a simple app. You need to master the process of creation, the iOS APIs and Xcode of course—the IDE provided by Cupertino.
Xcode is a powerful development environment that runs on MacOS. It comes with an iOS simulator to let you test your app while coding, and it is not the smartest software component ever created by Apple. The main problem complained by a good part of the developers community is that the development process centered around “Xcode + iOS simulator” is pretty slow. Part of the reason for its slowness is that the iOS simulator has been built on top of the Apple UIKit. Try it by yourself: searching on the Internet you can find tons of programmers that complains about both simulator and UIKit performances. Apple did a lot during the years to improve the development process, but there’s still lot to be done in this area.
A fast and seamless app development cycle is the first thing that every developer wants at the end of the day, because the most boring task you can experiment as a programmer is writing a hundred lines of code to create your “Hello word” app or waiting until you app wakes up after you pushed the Run button. I had the same feeling in 1992, when I was teaching myself coding Windows applications using C/C++ 7.0.
In 2013 Marco Bambini — the creator of Creo — and a small team of pioniers decided that is was time to change the way things used to work and Creolabs was born.
A bit of history
Marco’s goal —as a developer—was to make programmer’s life a lot easier —not just a little bit better—and because he has been a Mac developer since System 7, he tackled the most pressing issue for every software developer in the app era: making iOS development simple and fun—maybe for the first time in history.
In an article Marco published in 2016, he defined his team mission as follows:
We felt the need to unify Design and Development in a new powerful tool that gives real time access to data and code execution preview traditionally available only at runtime.
He wanted to create a developer tool that could hide all the unnecessary complexity of iOS development, something that could be used both by designers and programmers. He believed an IDE should make things easier, avoiding people to spend months on learning all the basic concepts-thousands of pages and a couple of languages-just to create their first professional app. He wanted to leave developers focused on the most interesting job ever:
Developers should be enabled to express their creativity.
What Marco had in his mind is a revolution in the iOS app world, and he understood pretty soon that this project would have required years before they could release something valuable on the market. So he gathered some family members and some friends and asked them to invest in his idea. He got funded and the Creolabs got started.
The team worked hard for 2 years just to prove themselves they could build what Marco envisioned. The first task was to create a new IDE using Objective-C—Swift wasn’t born yet. Pretty soon they understood that to get Creo the kind of user experience they desired, they had to rewrite one of the core modules of Apple developer stack: the UIKit.
Read it again: entirely rewrite a core component created by some of the smartest programmers in the world, with no access to their source code. That’s huge and ambitious! On the other hand, they knew it was the only way to provide a real-time execution experience to developers. Technically Marco wanted Creo could execute iOS code in real time within the same OS process of Creo IDE. It’s hard to catch the beauty of all this if you are not a programmer. It means executing and rendering a Button when the user drags a Button widget from the toolbar on a Window View. You create real production ready code while you design your app. That would seem an easy thing to do, but it’s not. All the IDE on the market simulates this step, so what you are designing with their tools is not the real app, but a simulated design that gets translated in the real app at compile time. That approach is a lot easier, but it comes with some drawbacks: there’s no way you can push the Run button and get your app executing on the screen in less than a second. Creo wanted to be the first tool unleashing that power to developers and designers.
That’s why Creo had to be blazing fast.
Everytime I think about this, it blows my mind: until today:
Creolabs is the only company in the world that can execute iOS code on a Mac—except Apple.
Because the Apple UIKit doesn’t allow the programmer to run iOS code in an existing MacOS process, that was a major limitation for their vision and writing a better and smarter UIKit—CreoKit—from scratch was the only solution.
CreoKit has been a massive implementation effort, but thanks to that module the team could truly innovate the developer experience.
Thousands of developers around the world followed what Marco was doing with Creo, and all of them have been involved in the beta testing at different levels. By the way, some of them work for amazing realities:
We think Creolabs is on something here.
Creolabs Inc & LombardStreet.io Ventures
I knew Marco since 2014 and back then Creo was something promising, but still too far to become a real product. When we talked again in 2017, we suddenly understood that he made what he promised and was pretty close to Release 1.0.
We have been impressed by Marco’s vision and persistence—a quality we love more than everything else. His technical knowledge and his expertise in the software developer tools space is astonishing. We loved it and in October 2017 Marco became our second investment and the first company we moved to Silicon Valley.
Creolabs Inc. released his Creo 1.0 at the end June 2018 and it suddenly became Product of the Day on Product Hunt with almost 1,000 upvotes.
I talk to Marco Bambini today, and he told me an incredible news that I want to share with you: very soon Creo will offer the ability to export a ready to run Xcode project. Keep an eye on their blog site if you are curious!
If you have any questions for Marco, just ask here.