GithubHelp home page GithubHelp logo

mwaylabs / generator-m-ionic Goto Github PK

View Code? Open in Web Editor NEW
672.0 51.0 134.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 Introduction

We moved on! This project is not longer maintained from our side.

It is still here for sake of completness.

Generator-M-Ionic

NPM version Coverage Status Build Status Dependency Status Download Month

Development:

Dev Coverage Status Dev Build Status Dev Dependency Status Greenkeeper badge

Why you need it

Note on Angular 2 & Ionic 2:

This Generator delivers highly advanced workflows for Angular 1 & Ionic 1 with the latest Cordova. If you are looking for a version for Angular 2 & Ionic 2, we're working on one but progress is slow for various reasons. Meanwhile, we are still solidly committed to maintaining and rolling updates for the Angular 1 & Ionic 1 stack. Everybody looking to get involved in either topic is very welcome!

Advanced workflows for building rock-solid Ionic apps: develop, prototype, test, build and deliver high quality apps with Yeoman, Gulp, Bower, Angular, Cordova and of course Ionic. All in one sexy generator.

Read more ...

What's in the box







Read more ...

Latest releases

What's new

Ionic Blog Series - Great ride through everything Generator-M-Ionic has to offer:

Advanced workflows for building rock-solid Ionic Apps

Guides

Quick Start
  • Quick Start for the experienced developer.
  • Try the demo. Get a quick impression by cloning the sample project generated with the latest version of Generator-M-Ionic.
Setup
Basics
Quality
  • ESLint code style checks and setting up your IDE/Editor.
  • Testing with our testing setup.
  • Husky hooks, automatically run linting and tests before you commit.
Advanced
Building & Continuous Integration
Ecosystems
  • Greenhouse & Relution - build and distribute your apps using these powerful cloud services
  • Ionic Cloud (beta) - a powerful suite of hybrid-focused mobile backend services and tools

Generator Insights

We've published 3 blog articles on our company blog delivering deep insights into the why and how of the generator:

Questions, issues? Talk to us!

Do the following:

  1. check out our Issue Guidelines and issues to see if there already is a solution or answer.
  2. Join the chat at https://gitter.im/mwaylabs/generator-m-ionic - Get in touch with other developers and our core team.
  3. If all fails, make sure you have read the Issue Guidelines first and then open a new issue.

Want to contribute ideas, code?

Start by reading our:

  1. Mission Statement
  2. Contribution Guide

License

Code licensed under MIT. Docs under Apache 2. PhoneGap is a trademark of Adobe.

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

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...

Coding styles

doc license

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

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?

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, ...?)

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

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!

jsdocs

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

Generate better samples

Based on selection create samples for:

  • cordova plugins
  • angular modules
    ** translation / locale setup 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

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

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...

gulp: environments with ng-constants

endpoint configuration for

  • watch
  • build

todo:

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

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

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)

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.