Maji is a framework to build great hybrid mobile apps.
Clone or download
Latest commit 3c45abf Oct 10, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Use Lerna to manage dependencies between Maji packages Feb 3, 2018
cordova/hooks Fix before_platform_add hook to be compatible with Cordova 7 Sep 22, 2017
css Refactor page transitions Aug 16, 2017
dockerfiles/ci Fix min required node version to 8 Feb 21, 2018
docs Unify developer.md and CONTRIBUTING.md Feb 3, 2018
hooks Add prettier May 26, 2017
img Update maji-mobile logo to remove top and bottom whitespace Mar 30, 2015
packages/create-maji-app v3.4.0 Jun 22, 2018
project_template Don't clear app mount point Oct 10, 2018
script Instruct script/init.sh users to use the create-maji-app module Feb 3, 2018
spec Let karma know about sinon Jan 27, 2018
src Added --open flag to maji cli Sep 18, 2018
.gitignore Add new setup with rollup + buble May 26, 2017
.npmignore Fix lib/ missing from built package Jan 9, 2018
.prettierignore Exclude project_template from Prettier check Sep 14, 2018
CHANGELOG.md Don't use cross-spawn in `bin/setup` Apr 6, 2018
CONTRIBUTING.md Unify developer.md and CONTRIBUTING.md Feb 3, 2018
LICENSE Add LICENSE Apr 30, 2015
README.md Fix min required node version to 8 Feb 21, 2018
karma.conf.js Fix Karma trying to compile files that should not be compiled Feb 3, 2018
lerna.json v3.4.0 Jun 22, 2018
package.json Added --open flag to maji cli Sep 18, 2018
rollup.config.js Move environment config from template to maji source (#212) Feb 2, 2018
yarn.lock Added --open flag to maji cli Sep 18, 2018

README.md

Maji Mobile

Build Status

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.

Prerequisites

Before you can use Maji, make sure you have the following:

  • Node.js >= 8
  • NPM
  • Yarn >= 1.0
  • Bash

Note that MacOS and Linux are best supported as development platform. Windows is supported in principle, but currently Maji has a hard dependency on Bash which is not ideal for Windows.

Getting started

To create a new app, execute the following command in your shell:

yarn create maji-app com.example.myapp ~/Code/myapp

Your new Maji app will now be generated at the supplied path.

Using Maji apps

Starting in the browser

To start your app, cd into its directory, execute bin/maji start and navigate to http://localhost:9090/ with your browser.

Running tests

To run test, you have several options:

  • To run JavaScript tests, run bin/maji test --watch. This will start a Karma server with headless Chrome and will continuously watch your Javascript files and run tests on changes.
  • To run JavaScript tests once, run bin/maji test --unit.
  • To run features specs once, run bin/maji test --integration.
  • To run all tests once, run bin/maji test.

Creating builds

To build a static HTML5 app, run bin/maji build.

To build a native app, run bin/maji build <platform>.

Frameworks and libraries

A Maji Mobile app comes with several frameworks and libraries built-in and configured to work together. It's this combination of frameworks that makes a Maji Mobile app so easy to develop.

  • Apache Cordova facilitates the translation from web technologies to mobile platforms.
  • Preact.js is our JavaScript view framework
  • FastClick disables the delay between a click and the corresponding action on older mobile devices
  • Sentry is used for exception tracking
  • Webpack is a JavaScript module bundler
  • Karma is a JavaScript test runner
  • MochaJS is a JavaScript testing framework that supports a BDD style of writing tests
  • Chai is an assertion library that enables a BDD style of developing
  • I18n-js is a library for internationalisation

Browser support

Maji will work in evergreen browsers, IE10+, Android 4.4+ and iOS 8+. Maji's additional documentation offers more details about browser support.

FAQ

Maji's frequently asked questions are answered in the additional documentation.

Documentation

Links to the documentation of Maji's components are available in the section about frameworks and libraries above.

More details are available in Maji's additional documentation.

Developer docs

See the CONTRIBUTING for documentation on developing Maji itself.

License

Maji Mobile is released under the MIT License.