Giter Site home page Giter Site logo

fractastical / synthesizer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 17thdimension/synthesizer

0.0 3.0 0.0 8.54 MB

prototype 17

Home Page: http://synth.17thdimension.com

License: Other

CSS 2.04% HTML 8.74% CoffeeScript 71.29% JavaScript 0.55% Shell 17.38%

synthesizer's Introduction

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 debugger
    • gulp cordova:emulate:ios - run application in iOS emulator
    • gulp cordova:run:android - run application on Android's devise
    • Run gulp help or see gulp/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/synthesizer-mobile
cd synthesizer-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 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.

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 ;)

  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/synthesizer.keystore
    • keys/ios/synthesizer_staging.mobileprovision
    • keys/ios/synthesizer_production.mobileprovision
  1. Ensure, you have configured ios/android platform with Cordova, f.e. by running gulp cordova:platform-add:[ios|android].

  2. 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: keytool -genkey -v -keystore keys/android/$ANDROID_KEYSTORE_NAME.keystore -alias $ANDROID_ALIAS_NAME -keyalg RSA -keysize 2048 -validity 10000

iPhone

  1. Create a certificate and a provisioning profile, as it's described here.

  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:[ios|android] --env=[staging|production]

synthesizer

synthesizer's People

Watchers

Joel Dietz avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.