Coder Social home page Coder Social logo

mwaylabs / generator-m-ionic Goto Github PK

View Code? Open in Web Editor NEW
671.0 51.0 135.0 4.47 MB

Advanced workflows and setup for building rock-solid Ionic apps

License: MIT License

JavaScript 92.73% Shell 1.87% CSS 0.59% HTML 4.81%
angular cordova ionic yeoman-generator browsersync sass karma protractor

generator-m-ionic's People

Contributors

datnordstrom avatar drmabuse23 avatar erictonussi avatar gableroux avatar gmarziou avatar greenkeeper[bot] avatar gruppjo avatar jdiver avatar lordgreg avatar mathiastim avatar morellan avatar rodrigograca31 avatar stefanbuck avatar volkrass avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

generator-m-ionic's Issues

Define project structure & modularization of generated project

sources:

discuss:

  • file and component naming conventions - controller, service, filter, dir, const, ...
  • what is likely to be adopted by most people/projects? - e.g. generator-angular etc...
  • what to do with:
    *translation files, scss/css, images, ...
    • constants
    • shared directives

gulp tasks:

  • reload when assets are changing
  • copy assets on build

gulp: environments with ng-constants

endpoint configuration for

  • watch
  • build

todo:

gulp-ruby-sass plugin throws errors

[16:54:47] [gulp-ruby-sass]
NoMethodError: undefined method `specificity' for [:not(.bar-subheader)]:Array

[16:54:47] Plumber found unhandled error:
Error in plugin 'gulp-ruby-sass'

NoMethodError: undefined method `specificity' for [:not(.bar-subheader)]:Array

Using Sass 3.4.6 (Selective Steve)

Add more sub-generators

Project structure and modularization needs to be defined first: #31

improvements:

  • named functions for sub-generators
  • multi-module project structure/settings/generators (ask for module?)

more generators:

out of scope:

  • create routes

gulp

  • adjust paths in generator gulpfile
  • adjust generated gulpfiles (necessary?)

readme

  • update!

Coding styles

Test: improve tests

Add tests

functionality

all flags

cordova integration

Is it possible to run generator without skip-sdk option so integrations test for cordova are possible?

check platforms, plugins, etc...
Right now travis does not support multiple languages
http://stackoverflow.com/questions/18456611/is-it-possible-to-set-up-travis-to-run-tests-for-several-languages

Only run integration tests when in local environment !process.env.CI? similar to gulpfile

subgenerators

https://github.com/mwaylabs/generator-mcap/tree/master/test

generator update / non-empty dir

https://github.com/yeoman/generator/blob/master/lib/test/run-context.js#L56

after generation

jshint/jscs

Test the jscs/jshint compatibility of the generated files

gulp file

especially important to quickly update dependencies without risks of breaking anything

generator m doctor

test components after generation

  • bower.json based on answers etc...

Improve integration with Jenkins / Relution

  • standardised jenkins configuration (analogous to travis.yml)
  • app icons badges
  • ios url schemes / android intents include build & version number for relution to show either install, update, open
    • defined in plist (ios), manifest (android)
  • android
    • generate gradle
      • remove version and bundle identifier and inject with gulp
    • keystore
  • ios
    • remove version and bundle identifier
sh /Users/jenkins/Documents/testtoolsios/add_rla_rlv.sh ${WORKSPACE}/GonalF/GonalF-Info.plist ${BUILD_NUMBER} 1.5.1 de.merck.gonalf.enterprise
#!/bin/bash
# © M-Way Solutions GmbH 2013, Martin Wieland
# Add bundleId and bundleversion specific url schemes

PLISTBUDDY="/usr/libexec/PlistBuddy"
INFO_PLIST="$1"
BUILD_NUMBER="$2"
VERSION="$3"
BUNDLEID="$4"

echo $INFO_PLIST

#BUNDLEID=$($PLISTBUDDY -c "Print :CFBundleIdentifier" "$INFO_PLIST" )
#VERSION=$($PLISTBUDDY -c  "Print :CFBundleVersion"    "$INFO_PLIST" )

echo $VERSION

if [[ $VERSION == *BUILD* ]]; then
    VERSION=1.0.$BUILD_NUMBER
else
    VERSION=$VERSION.$BUILD_NUMBER
fi

echo $BUNDLEID
echo $VERSION

$PLISTBUDDY -c "Delete :CFBundleVersion" "$INFO_PLIST"
$PLISTBUDDY -c "Add :CFBundleVersion string '$VERSION'" "$INFO_PLIST"

#if [[ $CONFIGURATION != *Enterprise* || $BUNDLEID != *enterprise* ]]; then
#   if [ "$ADD_RLA_RLV" == "" ]; then
#       echo "Ignore adding rla/rlv to plist"
#       exit 0
#   fi
#fi


BUNDLEID_SCHEME="rla"$(echo "${BUNDLEID}"          | cksum -o3 | awk '{print $1}')
 VERSION_SCHEME="rlv"$(echo "${BUNDLEID}_$VERSION" | cksum -o3 | awk '{print $1}')

echo "Add URLTypes for '$BUNDLEID': $BUNDLEID_SCHEME + $VERSION_SCHEME"

URLTYPES=$($PLISTBUDDY -c "Print :CFBundleURLTypes" "$INFO_PLIST" 2>/dev/null)
if [ "$URLTYPES" == "" ]; then
    $PLISTBUDDY -c "Add :CFBundleURLTypes array" "$INFO_PLIST"
fi

INDEX=0;

while :
do
    BUNDLEURLNAME=$($PLISTBUDDY -c "Print :CFBundleURLTypes:$INDEX:CFBundleURLName" "$INFO_PLIST" 2>/dev/null)

    if [ "$BUNDLEURLNAME" == "" ]; then
        #echo "End found: $INDEX
        break;
    fi

    if [ "$BUNDLEURLNAME" == "RelutionUrlName" ]; then
        $PLISTBUDDY -c "Delete :CFBundleURLTypes:$INDEX" "$INFO_PLIST"
        #echo "Delete :CFBundleURLTypes:$INDEX"
    else
        let 'INDEX=INDEX+1'
    fi
done

$PLISTBUDDY \
    -c "Add :CFBundleURLTypes:0 dict" \
    -c "Add :CFBundleURLTypes:0:CFBundleURLName string 'RelutionUrlName'" \
    -c "Add :CFBundleURLTypes:0:CFBundleURLSchemes array" \
    -c "Add :CFBundleURLTypes:0:CFBundleURLSchemes:0 string '$BUNDLEID_SCHEME'" \
    -c "Add :CFBundleURLTypes:0:CFBundleURLSchemes:1 string '$VERSION_SCHEME'" \
    "$INFO_PLIST"

# "$PLISTBUDDY" -c Print "$INFO_PLIST"
[23/10/14 12:28:13] Jonas Kaufmann: com.mwaysolutions.enterprise.onventis.tradecore
[23/10/14 12:28:17] Jonas Kaufmann: enterprise
[23/10/14 12:29:09] Jonas Kaufmann: Appstore: com.onventis.TradeCoreSmartConnect
[23/10/14 12:29:36] Jonas Kaufmann: v.100.1.0.5.990
[23/10/14 12:30:17] Jonas Kaufmann: 2.0.0.0

Prompt for appModule

  • Prompt for appIdentifier (used for angular module). As apposed to appName (displayname below the appicon).
  • Validate input (can use any string for angular module name?)
  • Suggest dirname

Replace gulp --cordova with something more useful

The option syntax seems a little confusing. It seem more readable and easier to write gulp cordova 'plugins ls' rather than gulp -- cordova 'plugins ls'. Unfortunately this is not possible. How should we do it?
Additionally right now when running just gulp it throws an because the default task is cordova. What should the default task be?

Generate better samples

Based on selection create samples for:

  • cordova plugins
  • angular modules
    ** translation / locale setup etc...

Assemble utils module

Collect best-practices in util module that can be reused in other projects.
Ideas:

  • delimiter filter
    • dash
    • pipe
  • localForage/localStorage sevice with encryption for userData etc...
  • error logging (api/http/crittercism)
  • metering (how many requests per day, payload, using which functions, ...?)

doc license

The license should probably also be included in the code base, right?

jsdocs

  • command to generate jscdocs
  • generators should provide stubs for jsdocs
  • jsdoc coverage?
  • enforce jsdoc?

Separate folder for all cordova files

  • is this functionality provided by cordova?
  • is there a stable way to do this? (without affecting the cli commands like cordova plugin update etc...

no clean/clear of the folder before new build

  • when I read gulp tasks correctly, there is no clean/clear of the folder (www) before building.
  • this is a problem when old images or other stuff is not erased

e.g. im having problems with the fonts task right now on the jenkins, but didnt realize on my machine because the fonts folder is not erased every time

copy issues (fonts/images)

  • my fonts directory is not copied to the build folder
  • I read a fixme in the code, but there was no issue on github
  • also right now only .svg images are copied somehow, my png files are missing in the build folder

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.