Welcome to Appmaker (beta).
Appmaker is a tool that helps anyone, not just developers, create mobile applications.
Appmaker apps are composed of web components, custom/resusable HTML tags, connected with events and listeners.
To learn more about web components, check out the Polymer Project.
- The Appmaker website.
#appmakerchannel on irc.mozilla.org.
- A youtube video (that's already dated, but better than nothing).
- Appmaker -- why, what how provides additional context about the motivation and use cases for the project, written before any code was forged.
- The ROADMAP.md and CONTRIBUTING.md documents in this directory.
This section covers how to get Appmaker running locally. The workflow is optimized for contributors.
Make sure you have
grunt is required to run the test suite. To install grunt on unix and OS X,
sudo npm install -g grunt-cli.
We manage client-side dependencies using bower. In order to add/remove these dependencies, you need to have
bower installed globally on your machine, which can be done on unix and OS X via
sudo npm install bower -g.
Create a root
mkdir mozilla-appmaker cd mozilla-appmaker
Fork this repository, and
then clone your fork into the
git clone firstname.lastname@example.org:<your GitHub username>/appmaker.git appmaker
Your directory structure should look like this:
mozilla-appmaker/ ├── appmaker/
cd appmaker git remote add upstream email@example.com:mozilla-appmaker/appmaker.git git fetch upstream
Install Node packages:
Configure your env:
cp sample.env .env
A short explanation of a complete
MONGO_URL: REQUIRED - the URI for your mongod instance and database, for example mongodb://localhost/appmakerdev (or whatever your database is named) COOKIE_SECRET: A long, complex string for cookie encryption (NOTE: You define this for your local use, the string can be anything). STORE: Storage approach for publishing apps. `local` is the default, `s3` requires additional environment variables (prefixed by S3_) S3_BUCKET: S3 bucket name. e.g. "my.coolappmaker.com" S3_KEY: An access key for the S3 bucket listed above. S3_SECRET: The secret corresponding to the specified S3 access key. S3_OBJECT_PREFIX: String to prepend S3 objects. Useful for storing objects in folders. E.g. "level1/level2" => <bucket>/level1/level2/<filename>. PUBLISH_URL_PREFIX: String to prepend to filenames that are saved when publishing. Try use the URL that matches the protocol from which assets are hosted to avoid mixed content blockage. PERSONA_AUDIENCE: The hostname and port of Appmaker used by Persona for authentication PORT: The port that the web process listens on for incomming connections GITHUB_TOKEN: A personal Github token used for loading lists of components from the mozilla-appmaker org during development (https://github.com/blog/1509-personal-api-tokens) EXCLUDED_COMPONENTS: A comma-delimited list of component repositories to exclude from the mozilla-appmaker org. The name is the repo name rather than the component name, though this is usually the same. BUNDLE: Any non-null value will cause the application to bundle as many resources as possible LOAD_FROM_GITHUB: if omitted, or "false", instructs appmaker to load components from repositories hosted on github.com
- Install from MongoDB installation packages, brew, apt-get, etc
- Either configure MongoDB to run on startup or manually start the mongod daemon. You can also run mongod from foreman by adding it to your Procfile
foreman start -p <PORT>
If you need foreman:
sudo gem install foreman
NOTE: foreman's configuration file is Procfile in the root of the appmaker directory Foreman explanation: http://blog.daviddollar.org/2011/05/06/introducing-foreman.html
- Fix issues by submitting Pull Requests
- Submit new components (See Component Docs)
- Add issues
- Build apps
- Run workshops
- Join our weekly call
Ceci is a set of foundational elements used in a AppMaker app, implemented as a set of Polymer components. If you create a new component, it's really an HTML tag that Polymer processes and then injects a variety of capabilities into that tag / JS object
TODO link to the Counter example, provide explanation
Switch to develop branch:
cd mozilla-appmaker/appmaker git checkout develop
Pull the latest version:
Create a new branch (for example a feature branch):
git checkout -b your-feature-branch-name
Make changes to the local copy, commit your changes, and then make sure your patch still works with latest version of develop branch:
git checkout develop git pull git checkout your-feature-branch-name git rebase develop
git push origin your-feature-branch-name
Appmaker uses the Webmaker-i18n module for localization of both the designer and (ceci) components.
If you have created your own component, see: https://github.com/mozilla-appmaker/appmaker/wiki/How-components-are-built#localization
Spotted any typo or want to help translate appmaker into your own language?