ionic-cordova-gulp-seed
v2.6.1
Published
Ionic & Cordova & Gulp seed with organized code, tests, bower support and some other stuff. Originated from ionic-angular-cordova-seed.
Downloads
127
Readme
Features
- Application can be run in a local http server, or emulated/released to Android/iOS
- A lot of useful gulp tasks, like:
gulp
- watch for changes + browser-sync (http server with livereload) + weinre debuggergulp cordova:emulate:ios
- run application in iOS emulatorgulp cordova:run:android
- run application on Android's devise- Run
gulp help
or seegulp/tasks.coffee
for more information about all tasks
- Useful hooks and tweaks, which allow you to deploy your cordova app out-of-the-box
- SASS + CoffeeScript + Jade combo
- Support for multiple environments, like development, staging, production (configuration available in
gulpfile.coffee
) - Tests configured and working: unit (karma + mocha) and end to end (protractor)
- Rollbar support (configured, working in angular functions and support for uploading the sourcemaps to Rollbar server)
Requirements
- NodeJS
- Cordova 4.2+
- Android or iOS SDK installed and configured (required only if you want to deploy the app to native mobile platforms - you can run
gulp
server without that)
How to install
git clone jtomaszewski/ionicstarter-mobile
cd ionicstarter-mobile
git submodule update --init --recursive
# install dependencies
npm install
npm install -g gulp
bower install
brew install imagemagick # or `apt-get install imagemagick`, if you're on linux
gulp # build www/ directory and run http server on 4440 port
If you get "too many files" error, try: ulimit -n 10000
. You may want to add this line to your .bashrc / .zshrc / config.fish.
What does the gulp build
do?
More or less:
- All .scss, .coffee, .jade files from
app/
will be compiled and copied towww/
- All
.ejs
files fromassets/
will be compiled towww/
. - All other files from
assets/
will be copied towww/
.
For detailed description, see gulpfile.coffee
.
P.S. www/
is like dist/
directory for Cordova. That's why it's not included in this repository, as it's fully generated with gulp
.
Testing
Requirements: installed PhantomJS and configured selenium standalone webdriver.
Unit tests (karma & PhantomJS/Chrome)
gulp test:unit # using PhantomJS
gulp test:unit --browsers Chrome # or using Google Chrome
e2e tests (protractor & selenium)
gulp # your www/ directory should be built and served at :4400 port
node_modules/.bin/webdriver-manager start & # run selenium server in the background
gulp test:e2e # finally, run e2e tests
How to run on mobile?
I recommend tmux for handling multiple terminal tabs/windows ;)
- Copy
.envrc.android-sample
or.envrc.ios-sample
to.envrc
and configure it.
Ofcourse, if you're a Mac user and you can compile both Android and iOS on the same machine, you can include all the variables from both of these files in only one
.envrc
.Also, make sure you have all the keys and certificates needed stored in
keys/android/
andkeys/ios/
:keys/android/ionicstarter.keystore
keys/ios/ionicstarter_staging.mobileprovision
keys/ios/ionicstarter_production.mobileprovision
Ensure, you have configured ios/android platform with Cordova, f.e. by running
gulp cordova:platform-add:[ios|android]
.Run
gulp cordova:emulate:[ios|android]
orgulp cordova:run:[ios|android]
.
Releasing to appstores
First, generate the certificate keys:
Android
- Generate .keystore file:
keytool -genkey -v -keystore keys/android/$ANDROID_KEYSTORE_NAME.keystore -alias $ANDROID_ALIAS_NAME -keyalg RSA -keysize 2048 -validity 10000
iPhone
Create a certificate and a provisioning profile, as it's described here.
Download the provisioning profile and copy it into
keys/ios/
, so it will match theIOS_PROVISIONING_PROFILE
file set up in thegulpfile.coffee
.
Then, generate the application and deploy it to the webserver with:
gulp release:[ios|android] --env=[staging|production]