Developer Docs

Creating and distributing apps for elementary OS

What is (and Isn't) Covered

No experience in writing apps for elementary OS is assumed, but basic programming knowledge is. A little experience with Vala (or at least similarly syntaxed languages) will be valuable. If you're not familiar with Vala, there are great resources (text and video) available for learning Vala on
Design is covered in the Human Interface Guidelines (HIG). We reference the HIG throughout this guide and it's important you grasp the concepts proposed there, but this guide is focused primarily on code.

Writing Apps

This guide details:
  • Building apps using GTK, Granite, and other technology available in elementary OS
  • Setting up a build system
  • Hosting your code for collaborative development
  • Working with translations
  • Packaging and distributing your new app on AppCenter
  • Working with Platform APIs
You may feel confident enough to jump straight into writing your first app:
However, we strongly recommend to at least skim "The Basic Setup" first. Having the right setup is going to help you reach your goals faster, and a solid foundation is going to help you throughout the rest of this book.

AppCenter Publishing Requirements

There are also a number of technical, metadata, legal, and other requirements for publishing your app to users via AppCenter.