Maji Mobile is a mobile platform development solution, that allows you to quickly create mobile applications for any platform, using web technologies. It allows any (Web-)developer to quickly start developing mobile applications for any mobile platform.
Maji Mobile is not a framework on itself; it generates a ready-to-go project that integrates several frameworks and custom scripts to allow building and running on mobile platforms. You can build Maji Mobile Apps for all mobile platforms and you can submit the apps to their respective Stores.
Whether you want to develop for iOS or Android, mobile or tablet, or any of the other mobile platforms, you can use Maji Mobile to develop applications for it.
Your Idea. Our Technology. For Everyone.
Before you can use Maji, make sure you have the following:
- Ruby, for the Cucumber specs
- NodeJS, for the build system (
bin/setup
will install this if you've got Homebrew) - Homebrew (
bin/setup
will use this to hook you up with all of the dependencies, except Ruby)
- Homebrew a Mac OS X package manager
- Nodejs allows JavaScript to be run Server-side
- Apache Ant is used for building Java Applications
- PhantomJS is a headless WebKit Browser, scriptable with a JavaScript API
To create a new app execute the following commands in your shell:
$ npm install kabisa/maji
$ ./node_modules/.bin/maji new org.example.my-app /desired/path/to/your/project/
$ cd /desired/path/to/your/project/
$ bin/setup
Your new Maji app will now be generated at the supplied path.
Usage: bin/maji [options] [command]
Commands:
run [options] <platform> build and run a native app for the specified platform
build [options] <platform> build a native app for the specified platform
new <package_name> <path> create a new Maji app
Options:
-h, --help output usage information
-V, --version output the version number
To start your app, cd
into its directory, execute make watch
and navigate to http://localhost:9090/ with your browser.
To run test, you have several options:
- To run JavaScript tests run
bin/karma start
. This will start a Karma server with Phantomjs and will continuously watch your Javascript files and run tests on changes. - To run JavaScript tests once, run
bin/karma start --single-run
. - To run features specs once, run
bundle exec rspec
. - To run all tests once, run
bin/ci
.
To build a static HTML5 app, run make dist
.
To build a native app, run bin/maji build <platform>
.
For CI docker files are included, which can be used incombination with the kabisa jenkins-docker tooling. dockerfiles
includes files for tests only or build android packages.
You can find the sources in the src/
folder.
Compiled javascript is stored in lib/
. It is included in this repository so this module can be used straight from Github. Now an application using Maji doesn't have to compile its sources to javascript first.
A Maji Mobile App comes with several frameworks built-in and configured to work together. It's these combinations of frameworks that makes a Maji Mobile App so easy to develop!
- Apache Cordova facilitates the translation from web technologies to mobile platforms.
- BackboneJS our JavaScript MV* framework
- MarionetteJS Marionette simplifies Backbone Views
- FastClick disable the delay between click and the action on iOS
- jQuery JavaScript library for working with the DOM
- Browserify is a JavaScript module system that supports CommonJS syntax
- BugSnagJS JavaScript client for BugSnag exception tracker
- Karma is a JavaScript test runner
- MochaJS a JavaScript testing framework that supports a BDD style of writing tests
- Chai is an assertion library that enables a BDD style of developing
For our Frequently Asked Questions, see here.
Here are some links to documentation you might need:
Maji Mobile is released under the MIT License.