# App Framework
> Most work is done in the background - but for sure, there is [Demo App](https://app-framework.scriptpilot.de/) available!

> Please keep in mind that *App Framework* is still under initial development, [open features and bugs could be seen here](https://github.com/scriptPilot/app-framework/issues).

#### What is App Framework?
*App Framework* is a [JavaScript package](https://docs.npmjs.com/getting-started/what-is-npm), which does all the recurring stuff for you, which is needed to develop, test, build and deploy a web application. Using *App Framework*, you could start to realize your next amazing application immediately.

#### Why is it beautiful?
Based on [Framework7](http://framework7.io/), with *App Framework* you have all the well known [iOS](http://framework7.io/kitchen-sink-ios/) and [Material](http://framework7.io/kitchen-sink-material/) components and stunning transitions available to build gorgeous user interfaces. Some improvements have been applied to fit the native behaviour as much as possible. Out of the box you can use several icon fonts, like [FontAwesome](http://fontawesome.io/), [Framework7](http://framework7.io/icons/), [Ion](http://ionicons.com/) or [Material Icons](https://material.io/icons/).

#### Why is it powerful?
Because any tricky aspect of application development works well out of the box. The runtime environment of your application is kept after reload - including pages, tabs, side panels, popups, scroll positions and all the data of your page components and inputs. [Firebase](https://firebase.google.com/) is integrated well with user registration and authentication processes as well as realtime database, file storage and application hosting services. Based on [Vue](https://vuejs.org/), building reactive and state-based user intefaces is a waltz. Offline capability, the use of multiple languages, a favicon generator and a flexible routing are parts of *App Framework* as well.

#### Why will I code with joy?
*App Framework* does all the common tasks and manages all external libraries for you. Your working directory is lightweight and well-arranged. Your application is splitted up in easy to maintain [single file components](https://vuejs.org/v2/guide/single-file-components.html). You are supported by a development server with live reload and checks for [code correctness](http://eslint.org/) and [standard conformity](http://standardjs.com/). *App Framework* bumps your version automatically before any build process and optimizes all your code and image files with merging and compression. At the end you could deploy your new build without any downtime and have a fast rollback solution readily available.

#### How do I start?
1. Install [Node.js with npm](https://docs.npmjs.com/getting-started/what-is-npm) and learn the basics
2. Save [package.json](https://raw.githubusercontent.com/scriptPilot/app-framework/master/demo-app/package.json) to an empty folder on your computer
3. Run `npm install` to setup the project folder
4. Run `npm run dev` to start the development server
5. Read the [Documentation](DOCUMENTATION.md)
