As a software developer, your first day in a new development environment is like the first day in school in a foreign country. You know more or less how things should work and what they mean. At the same time, you don't understand every concept, and sometimes you don't grasp everything when people talk to you.

Why me

Let's make a step back, and let me give you a little bit of my background. My name is Massimo, and I'm an average software engineer with—let's say—some attitude for entrepreneurship. I created a couple of companies in Italy and San Francisco, California. Working on new ventures is always amazing, but I still love coding. Recently, I worked on web applications using React, JavaScript, and MongoDB. I didn't work on any mobile application in my entire career, however.

Like everyone else, I bought a bunch of books when the first iPhone came out, but I never passed the first 50-pages test. The main feeling I remember about mobile applications is, "So cool..., but definitely, there's lots of complexity in here." and I gave up pretty quickly. In my career, I used many other languages other than Javascript — C/C++, Java, Ruby, and Visual Basic too. I worked in the technology consulting area for most of my professional life, analyzing, and developing software projects for clients, both small and big.

Eureka moments

Programmers tend to follow work habits that make their life easier. They typically love technologies that work for them, and not against them. When they find such a library, framework, or environment, they reach a status of pure happiness.
When more than 10 years ago I discovered Ruby on Rails, I got one of those eureka moments you rarely have in your entire career. "Finally, a technology which makes web programming clear and fun," I kept saying myself.  Many years later, the same happened with Meteor Js—but that didn't last that much, and the technology didn't take off.
My third "technical epiphany" happened when I discovered Creo. With Creo, I thought I could finally create apps without investing two years of my life in learning Apple APIs and frameworks.

Creating my first iOS app with Creo

That's why starting from today I'm going to start to learn Creo and Gravity, its programming language. I'm going to do that very publicly sharing on this blog my progress and discoveries. My goal here is to share the learning experience with all of you and start a conversation. If you want to learn to create iOS apps with Creo, this is the time and place for you. Read my posts, leave comments and questions, and I'll answer you as soon as possible.

Before start coding, you need to:

  1. Download Creo from this link (30-days free trial)
  2. Spend an hour or two to read Creo documentation here.

You need to get familiar with Creo development environment and its core concepts. Start from the Getting started section, and follow the table of contents on the left of the page.
A second document I suggest you read is the one about the Gravity language. Gravity is one of the cool features that make Creo so great. It's an elegant and modern programming language specifically designed for mobile apps. Gravity is a kind of Swift script, and even its syntax is "surprisingly similar" to the Swift one. Born before Swift even existed—yes, you heard it—, Gravity is dynamically typed, robust, and lightweight. The language design provides an easy way to create portable code between iOS and Android. If you understand the C language and you want to see how Gravity works, you can do it. Gravity is open source and available here on Github.

It's all for today. I leave you with those 3 simple tasks:

  1. Download Creo
  2. Read about Creo development environment
  3. Read about the Gravity language

I'll do the same. Next time we'll be creating our first Creo app in less than 60 seconds and 3 lines of code.


Ready to move your next step? Read the next article of this series here.