Cova - A fresh look at mobile.

Hi!

Welcome and thank you for taking the time to check out Cova. I know you're busy and with all the massing amount of stuff out there on the net I do appreciate you taking the time to be here. If mobile is important to you then this might be of particular interest to you. Read on to find out more.

Why Cova?

I'm sure you're probably wondering what Cova is and why would anyone need yet another tool to build stuff. Quite frankly because we all love mobile apps but they're pretty complicated to build.

Cova is a tool designed to simplify the mobile app creation process.

The whole process is pretty complex. You first have to come up with an idea, then brainstorm a lot, designing a great user experience, then comes the actual coding of the whole thing, you of course have to test it, and eventually you'll end up publishing and keeping your app up to date and relevant.

Requirements

To try Cova you have to have the following minimum requirements:

  1. Mac OS X Lion or Later
  2. Ruby 1.8.7 (comes with OS X Lion)
  3. Xcode's Command Line Tools (Install via Xcode → Preferences → Downloads)

Quick Start

Hello World in under 30 seconds

If you're anything like me, you probably want to see Cova in action right about now. Alright, you got it. Here goes:

> [sudo] gem install cova
> cova install
> cova create -b helloworld

That's it. You're now the proud owner of a brand new shiny app. Feel free to keep reading for more detailed user guide but if you stop now and start hacking your new app, who am I to stop you. Go on, have fun!

User Guide

Installation Instructions

If your machine meets the requirements then all you need is to grab the Cova gem, like so:

> [sudo] gem install cova

And then you can install Cova with the following simple command:

> cova install

Cova will setup its own environment and you should see something like this:


=== Initializing Cova ===

Preparing to install Cova in /Users/dcalinescu/.cova  ...  [ OK ]
git clone git://github.com/facebook/xctool.git
Cloning into 'xctool'...
remote: Counting objects: 2220, done.
remote: Compressing objects: 100% (991/991), done.
remote: Total 2220 (delta 1263), reused 2106 (delta 1165)
Receiving objects: 100% (2220/2220), 1003.65 KiB | 392 KiB/s, done.
Resolving deltas: 100% (1263/1263), done.
git clone git://github.com/dancali/cova.git
Cloning into 'cova'...
remote: Counting objects: 103, done.
remote: Compressing objects: 100% (71/71), done.
remote: Total 103 (delta 20), reused 99 (delta 16)
Receiving objects: 100% (103/103), 55.71 KiB, done.
Resolving deltas: 100% (20/20), done.
pod repo add cova git://github.com/dancali/cova-mods.git
Cloning spec repo `cova` from `git://github.com/dancali/cova-mods.git`
Found Cova in /Users/dcalinescu/.cova  ...  [ OK ]
Found Cova Mods in /Users/dcalinescu/.cocoapods/cova  ...  [ OK ]

========= SUCCESS =========


Congrats! Cove is now installed. Enjoy Cova and build the next great app sensation!

For more info visit the homepage: http://cova.io

That's it! Congrats! You've just installed Cova and you're ready to build apps.

Sanity Check

To check the status of your installation (sanity check) type this:

> cova status

And you should see this:


=== Checking if Cova is installed ===

Found Cova in /Users/dcalinescu/.cova  ...  [ OK ]
Found Cova Mods in /Users/dcalinescu/.cocoapods/cova  ...  [ OK ]

========= SUCCESS =========

Creating an app

If you followed the Quick Guide above you already know how this works but here it is again:

> cova create -b helloworld

Notice the -b flag to force a build right after creation. If you skip the -b flag your app will be created but a build will not kick in until you invoke the build command yourself. Read on to find out how to do that.

So that's all it takes to create a new app. Here's what you should see:

=== Creating app helloworld ===

Found Cova in /Users/dcalinescu/.cova  ...  [ OK ]
Found Cova Mods in /Users/dcalinescu/.cocoapods/cova  ...  [ OK ]
Creating app home in /Users/dcalinescu/cova/helloworld  ...  [ OK ]
Adding Xcode project  ...  [ OK ]

=== Building with dependencies ===

Looking for Podfile  ...  [ OK ]
pod install
Analyzing dependencies

[!] [!] The Podfile does not contain any dependency.

CocoaPods 0.20.1 is available.

Downloading dependencies
Generating Pods project
Integrating client project

[!] From now on use `cova.xcworkspace`.

=== Building ===

/Users/dcalinescu/.cova/xctool/xctool.sh -workspace cova.xcworkspace -scheme cova -configuration Debug -sdk iphonesimulator
=== BUILDING XCTOOL ===

  /Users/dcalinescu/.cova/xctool/build.sh
      

Help

To get a list of available commands simply type

> cova

And you should see a list of all the built in commands with associated descriptions

Commands:
  cova build           # Builds an existing Cova app
  cova create NAME     # Creates a new Cova app
  cova help [COMMAND]  # Describe available commands or one specific command
  cova install         # Installs Cova from scratch
  cova status          # Checks the status of a Cova installation
  cova uninstall       # Completely uninstalls Cova

Contributions

All feedback is welcome, good or bad. Let me know what you think and please do feel free to jump in and submit Pull Requests if you think you can add improvements, fixes or enhancements.

Acknowledgements

Cova makes use of the following great open source projects:

  1. xctool - a cool tool from Facebook offered as replacement of Apple's xcodebuild
  2. CocoaPods - the much needed Objective-C library manager from the CocoaPods Community
  3. Thor - a powerful command line building tool from Yehuda Katz

License

The MIT License (MIT)

Copyright (c) 2013 Dan Calinescu (http://cova.io)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.