To use this repository you will first need to create a PhoneGap application. You can do so by manually running the commands below in your terminal window, or run the shell script in ./build/scripts/install.sh which contains the same content.
You can install the Mobile App Template via the command line with either curl or wget which will run this Shell Script.
cd /path/to/project/folder
curl -o install.sh https://raw.githubusercontent.com/manifestinteractive/mobile-app-template/stable/build/scripts/install.sh
chmod 755 install.sh && ./install.shcd /path/to/project/folder
wget -O install.sh https://raw.githubusercontent.com/manifestinteractive/mobile-app-template/stable/build/scripts/install.sh
chmod 755 install.sh && ./install.shYou will need to modify ./src/js/settings.js to your projects specifications. Also, you will still need to make the changes listed below in the iOS Build Settings.
If you would like to manually install this application, please follow the instructions in the Installation Script.
To work on mobile-app-template locally for development:
cd /path/to/project/folder/mobile-app-template/www
npm installTo view mobile-app-template in the browser:
cd /path/to/project/folder/mobile-app-template/www
npm startThe mobile-app-template app will open in your default browser at http://127.0.0.1:8080
The following is a description of the folders in this project, and how they are used. Our Application Stack is Bootstrap (HTML), Sass (CSS) & AngularJS (Javascript)
Application Source HTML, CSS (Sass) & Javascript Files:
assets: Application Assetscss: Compile Project CSS Files ( !.gitignored )img: Folder for Images used in appjs: Compile Project JS Files ( !.gitignored )
src: Application Source Codeimg: Image Assets ( Photoshop & Illustrator )js: Main AngularJS project filescontrollers: AngularJS Controllersdirectives: AngularJS Directivesfilters: AngularJS Filterslibs: Third Party Libraries needed for appservices: AngularJS Servicesapp.js: AngularJS Bootstrap Fileconfig.js: AngularJS Configconfig.routes.js: AngularJS Routes ( maps URL parameters to specific templates & controllers )main.js: Main AngularJS App Controllerphonegap.js: Library to connect AngularJS to PhoneGap specific commands
scss: This folder contains Sass files used to manage the style of the application
templates: AngularJS Template files and partials as configured byconfig.routes.jsindex.html: Development HTML file
Development Content used to automate development & testing:
grunt: A directory containing individual Grunt taskshooks: A directory containing PhoneGap Build Instructionsbowser.json: Package file for Bower that gets used duringnpm installgruntfile.js: Main Grunt configuration filepackage.json: Package file for Node that gets used duringnpm installREADME.md: Developer InstructionsCHANGELOG.md: Do not edit manually, generated automatically by runninggrunt changelog:release. Looks for commit messages with the keywordsfeature,fix&fixes.
Third Party Content ( !.gitignored ):
bower_components: Third Party Libraries installed viabower.jsonduringnpm installnode_modules: Third Party Libraries installed viapackage.jsonduringnpm installsrc/vendor: Third Party files copied over for Application Use
You can use the following build commands via terminal ( make sure you are in /path/to/project/folder/mobile-app-template/www ):
The following command will compile Sass Styles into a CSS and Concat JS files for Distribution.
This is the most common command you will want to use and is required to view any changed you made in a browser or simulator.
grunt build:distThe following commands will build either iOS or Android versions of the app to their respective ./platorms folder.
grunt build:app_iosgrunt build:app_androidThe following commands will first Build for Distribution and run iOS Simulation for the respective device.
grunt emulate:iphone_4sgrunt emulate:iphone_5grunt emulate:iphone_5sgrunt emulate:iphone_6grunt emulate:iphone_6_plusgrunt emulate:iphone_resizablegrunt emulate:ipad_2grunt emulate:ipad_retinagrunt emulate:ipad_airgrunt emulate:ipad_resizableThis will compile all the files in src/scss and generate the assets/css/app.css file
grunt sass:appgrunt releaseThe following will:
- Increase the build's major number ( e.g. v 0.5.1 => v 1.0.0 )
- Build & Package Distribution Files
- Perform a git commit
grunt release-majorThe following will:
- Increase the build's minor number ( e.g. v 0.5.1 => v 0.6.0 )
- Build & Package Distribution Files
- Perform a git commit
grunt release-minorThe following will:
- Increase the build's patch number ( e.g. v 0.5.1 => v 0.5.2 )
- Build & Package Distribution Files
- Perform a git commit
grunt release-patchThe following will:
- Build & Package Distribution Files
- Perform a git commit
grunt prereleaseThere are currently no known issues for iOS.
If you are using Cordova 5.0 you may get an error when building for Android that looks like this:
LocalNotification.java:561: error: cannot find symbol webView.post(new Runnable(){If this happens to you, see this posted solution.
if you get the error Duplicate files copied in APK META-INF/LICENSE.txt add the following to ./platforms/android/build.gradle directly after the root android {
packagingOptions {
pickFirst 'META-INF/DEPENDENCIES'
pickFirst 'META-INF/DEPENDENCIES.txt'
pickFirst 'META-INF/LICENSE'
pickFirst 'META-INF/LICENSE.txt'
pickFirst 'META-INF/NOTICE'
pickFirst 'META-INF/NOTICE.txt'
}
If you are unable to automatically sign the Android version, you may need to do it manually.
cd /path/to/project/folder/mobile-app-template
grunt build:dist
cordova build android --release
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /path/to/myapp.keystore platforms/android/build/outputs/apk/android-release-unsigned.apk AppName
/path/to/android/sdk/build-tools/22.0.1/zipalign -v 4 platforms/android/build/outputs/apk/android-release-unsigned.apk platforms/android/build/outputs/apk/app-name-v0.1.0.apk