Disclaimer: All quoted paragraphs are reproduced in their entire form from the awesome Koding University that you can find here.

Because you're an awesome reader, that already follows my awesomely written articles, you already know what Koding is, so I will not explain it again ... ok, ok, I'll tell you, just stop showing me pictures of naked rat moles. What exactly is Koding? Well it can be summarized in the following short sentence.

Koding is an online development environment with the goal of simplifying worldwide development and providing free computation and development to everyone.

Ok, let's get back to our sheep.(What?!) Now that I've captured you're attention and you know about Koding, what in the hell is a Koding app and why am I shoving it down your news feed?

When the good people (Devrim and Sinan) over at Koding invented ... Koding, they also came up with an awesome idea of having some sort of "desktop applications" made by the community. But wait, Koding apps are more than what I just said a few seconds ago, they

are basically clientside Apps that use the Koding Framework to communicate with your VM. This means that potentially any web-based and modular html/js/css app can be turned into a Koding App with some love! You can see this in the Koding Text editor. It's basically just the Ace Editor wrapped in the Koding Framework.

So you can basically have a simple app that loads Google (If it allowed being loaded in an iFrame!) and even a complicated one that makes diagrams or even one that can edit photos.

But what happens if an app you want to use isn't featured in the app catalog? (Yes, I forgot to mention, Koding has an ever-growing app catalog, that features all the apps made by the community.) You build it yourself (Or commission someone to build one for you because you have the brains but not the coding know-how!), of course, because you're a developer that likes to challenge himself/herself and you're one that can overcome any task, regardless the fact that it's like hacking NASA with a toaster.

First thing to remember when trying to build a Koding app is that the apps are usually coded using CoffeeScript, so if you're not that fluent in CoffeScript, I suggest you take a quick crash course before you start app building.

Another important thing to remember is that there are apps that help you build an app (app-ception!). Kodepad and Appmaker are there to help you in your endeavor to achieve Koding app building awesomeness.

Use them, they were built by awesome people and they should be recognized for this achievement. Ok, all that talk and still no code example of an app. Hold your "lederhosen", it's coming!

    class HelloApp extends KDView

            {nickname} = KD.whoami().profile

            button = new KDButtonView
                title      : "Hello"
                callback   : ->
                    new KDNotificationView
                        title : "Hello #{nickname}!"
            @addSubView button

        do ->
            appInstance = new HelloApp
            appView.addSubView appInstance

Boom! There you go! Simple as that. This short app generates a simple "Hello" button, that on callback shows a notification with your username, because you can get that info in an app.

Go ahead, try it and let me know in the comments if it worked. You saw an example but now after I have convinced you with my awesome convincing skills you want to start building and app of your own, what about some Docs? Well ... docs ... are in making.

Because it's a big framework it takes some time before their done and in a good, developer friendly way. In the meantime you can use the apps I mentioned to get some reference or download source code from others apps and start experimenting with that.

After you finish building your awesome app, that has a tone of features and can shoot unicorn dust out of its objects, you can submit it to the apps catalog, in order for all the world to see and lough at it (Joking! Or am I?). You can achieve that by following this great tutorial.

If you built an app, let me know in the comments, I would love to take it for a spin. But why should you build one? The shortest answer would be, because it's easy and you're also helping a community of hard-working developers that wants to make the world an easier place for other developers!

The long answer would be something like this: because developing one would help you learn (And who doesn't love learning new stuff? awkward silence) a new framework that is fresh, well-built, has a lot of potential (Koding has 400k+ users in case you were wondering, so it's a pretty big deal).

You, as a developer, would get a lot of recognition from all your developer friends (We all know you don't have any but it's nice to fantasize from time to time!) for your awesome coding skills and last but not least, you would contribute to the development of tomorrows technologies that will help future generations.

Did I mention it's also open source? Yes, you publish all your code to Github. Who knows maybe in 10/20 years everyone will code only in the cloud and hard disk drives will be a thing of the past, a thing that you'll frame and sell to a pawn shop. If I haven't convinced you yet, then you have some serious convincing issues to address. I guess that's all for now. When the Koding app Docs are finished I'll write some more adventure articles on how to build an app from start to finish, but until that happens, code long and prosper!


Koding Apps. Build one!