Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nedomas/bro_app
Just an app to register the weights of my gym sessions
https://github.com/nedomas/bro_app
Last synced: 19 days ago
JSON representation
Just an app to register the weights of my gym sessions
- Host: GitHub
- URL: https://github.com/nedomas/bro_app
- Owner: Nedomas
- License: other
- Created: 2014-10-27T10:52:25.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2014-10-27T12:45:24.000Z (about 10 years ago)
- Last Synced: 2024-10-22T07:42:39.762Z (2 months ago)
- Language: CoffeeScript
- Size: 3.54 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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 + livereload + http server + weinre debugger
* `gulp cordova:emulate:ios` - run application in iOS emulator
* `gulp cordova:run:android` - run application on Android's devise
* 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)# Requirements
* NodeJS
* Cordova 3.5+
* Android or iOS SDK installed and [configured](http://docs.phonegap.com/en/3.3.0/guide_platforms_index.md.html#Platform%20Guides) (required only if you want to deploy the app to native mobile platforms - you can run `gulp` server without that)# How to install
```
g clone jtomaszewski/ionicstarter-mobile
cd ionicstarter-mobile# install dependencies
npm install
npm install -g gulp
bower install
brew install imagemagick # or `apt-get install imagemagick`, if you're on linuxgulp # 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 to `www/`
* All `.ejs` files from `assets/` will be compiled to `www/`.
* All other files from `assets/` will be copied to `www/`.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](https://github.com/angular/protractor/blob/master/docs/getting-started.md#setup-and-config).
#### 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 backgroundgulp test:e2e # finally, run e2e tests
```# How to run on mobile?
I recommend [tmux](http://tmux.sourceforge.net/) for handling multiple terminal tabs/windows ;)
1. 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/` and `keys/ios/`:
* `keys/android/ionicstarter.keystore`
* `keys/ios/ionicstarter_staging.mobileprovision`
* `keys/ios/ionicstarter_production.mobileprovision`2. Ensure, you have [configured ios/android platform with Cordova](http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html), f.e. by running `gulp cordova:platform-add:[ios|android]`.
3. Run `gulp cordova:emulate:[ios|android]` or `gulp cordova:run:[ios|android]`.
# Releasing to appstores
First, generate the certificate keys:
#### Android
1. [Generate .keystore file](http://developer.android.com/tools/publishing/app-signing.html):
`keytool -genkey -v -keystore keys/android/$ANDROID_KEYSTORE_NAME.keystore -alias $ANDROID_ALIAS_NAME -keyalg RSA -keysize 2048 -validity 10000`2. Add proper key hash to [Facebook application](https://developers.facebook.com/x/apps/) in android's settings.
You can generate Key Hash using [this method](https://developers.facebook.com/docs/android/getting-started/):
`keytool -exportcert -alias $ANDROID_ALIAS_NAME -keystore keys/android/$ANDROID_KEYSTORE_NAME.keystore | openssl sha1 -binary | openssl base64`To generate debug's Key Hash (using in `cordova run`), use:
`keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android | openssl sha1 -binary | openssl base64`#### iPhone
1. Create a certificate and a provisioning profile, as it's described [here](http://docs.build.phonegap.com/en_US/3.3.0/signing_signing-ios.md.html#iOS%20Signing).
2. Download the provisioning profile and copy it into `keys/ios/`, so it will match the `IOS_PROVISIONING_PROFILE` file set up in the `gulpfile.coffee`.
Then, generate the application and deploy it to the webserver with:
```
gulp release --env=[staging|production]
```