Giter Site home page Giter Site logo

Comments (20)

mikehaas763 avatar mikehaas763 commented on June 11, 2024

Hi @diegonetto !

I absolutely would like to collaborate. That's what OSS is about! Why don't we use this issue for a while to talk about any type of collaboration you may want to do?

from generator-ionic.

diegonetto avatar diegonetto commented on June 11, 2024

Looping in @wiherek5 since he has shown interest in developing a fully featured Yeoman generator for Ionic as well.

We're modeling the structure of the generator after https://github.com/yeoman/generator-angular, and we're considering including it as a sub generator as well.

I think the most helpful part the generator would be the sample application, so let's brainstorm a few options and come up with a list of components that we would like to showcase?

I also agree with your roadmap that we should support the functionality provided by https://github.com/driftyco/ionic-cli as well.

from generator-ionic.

mikehaas763 avatar mikehaas763 commented on June 11, 2024

Do you mean you're structuring the generator itself after generator-angular or the structure it scaffolds after being run?

I was looking to a few places for a good all-around angular (ionic agnostic) app. Some of those places are: http://joshdmiller.github.io/ng-boilerplate/#/home, the styles guidelines linked to in http://blog.angularjs.org/2014/02/an-angularjs-style-guide-and-best.html and https://github.com/mgechev/angularjs-style-guide

Now I'm not sure if it makes sense to just pull in one of those dynamically, or to create our own based off of those. I'm open for suggestions here.

from generator-ionic.

michalmikolajczyk avatar michalmikolajczyk commented on June 11, 2024

Hi,

thanks for pulling me in :)
I was thinking about the generator, and I agree with both of you:

  1. we should import ionic-cli functionality
  2. we should structure the app correctly, as the seed is not applicable for non-trivial apps

I also think we should focus on two additional points:

  1. automated tests through grunt
  2. optimising the production (dist) app - minification, concat, uglyfication etc.

I was putting more thoughts into point 2, structure. I am only starting with ionic, but I used ng-boilerplate for another project and it worked fine. The boilerplate does not work with yeoman though, and it doesn't support the regular 'yo angular:controller mycontroller' cli syntax of generator-angular.

We probably should reach out and see how developers prefer to structure their ionic apps - same way as angular, or different? I don't have experience in that matter yet. Anyway, there is no reason why we shouldn't provide generator-angular-like cli, even if we provide different structure.

from generator-ionic.

mikehaas763 avatar mikehaas763 commented on June 11, 2024

Hi @wiherek5

I'm glad we have your interest!

In your second point 2 are you referring to testing the generator or having testing capabilities for the scaffolded/generated app? In either case, tests for both are a must IMO.

I don't have any experience testing a generator itself yet but I will start writing tests there. I'm a fan of mocha+chai(with expect syntax). What about you? I suppose it may be a good idea to adopt whatever frameworks the yeoman team uses for testing their generators.

As for testing the generated app itself, it makes sense to use karma+jasmine+protractor as that's the go to for angular apps.

You mentioned grunt, so that brings up another topic: task runners for the generated app. I have a long-term goal of supporting both grunt and gulp as task runners in the generated app. My initial thoughts were having an option in the generator that asks the developer which one they would want to use. With that being said, I see myself working with gulp at first. Obviously any PRs with grunt are welcome.

from generator-ionic.

diegonetto avatar diegonetto commented on June 11, 2024

https://github.com/yeoman/generator-angular is one of the most advanced Yeoman generators out there. We should structure our generator in a similar fashion.

Tests are an absolute must, agreed. That is one of my priorities over the next week. Gulp support would be really cool!! Grunt is also a must imo. One of the biggest things Yeoman preaches is sensible defaults for intelligent workflow. A task runner (Grunt/Gulp) is the backbone for a productive workflow.

I agree we should use Mocha for testing our generator (most popular library used by others in the Yeoman community) and Karma for the angular apps (like you said its the way to go).

As per app architecture, it depends on the scope of your application. Here is a theoretical article written by Brian T Ford (Angular.js developer @ Google) - http://briantford.com/blog/huuuuuge-angular-apps.html

Here is a more real world implementation with a different perspective using RequireJS - http://www.startersquad.com/blog/angularjs-requirejs/

As far as my experience using Angular at www.fossil.com and in production for www.taleris.com (my current project), my preference is to break apart the controllers / directives / filters / services into modular units based on application logic instead of bundling them all under one controllers (etc) directory.

We're using Grunt for the ionicjs generator right now. I suggest we consider pulling together our repos sooner rather then later, as there has already been confusion between the two - diegonetto/generator-ionic#7

It would be nice if we could continue working out of the codebase @wiherek5 and I have built up. What are your thoughts?

from generator-ionic.

0xhamsters avatar 0xhamsters commented on June 11, 2024

I used generator-angular for another project with the cordova, but today I feel need to use the ionic.
I think a good option as has been said, ionicjs join with the base of the generator angular to become a generator-ionicjs best.
Not sure if this already exists but this is a good idea.

from generator-ionic.

mikehaas763 avatar mikehaas763 commented on June 11, 2024

We can definitely take queues from generator-angular. I've used it for a couple medium-sized projects but usually change the structure a fair amount after running it.

(UPDATE: made some incorrect assumptions about sub-generators) I was actually thinking about including it as a sub-generator at one point as well. We can revisit that later on.

With the structure of the generated app, we should assume that it may be a very large application and structure appropriately. I like to structure my projects similar to what they've done at https://github.com/angular-app/angular-app. I don't have a golden standard yet though. Similar to you @diegonetto I typically structure by first logical high-level parts of the application, then by "component" and then if necessary -- depending on the component -- by layer (controllers, services, directives).

After looking at your code-base more I'll post back here again with a plan of action.

from generator-ionic.

mikehaas763 avatar mikehaas763 commented on June 11, 2024

@diegonetto If you have the time I think you should fork my repo, merge your functionality/features and send back a PR. Feel free to merge it in any way you see fit. However, according to http://yeoman.io/blog/cleanup.html you should use yeoman.generators.Base.extend() to inherit from the base generator so I would make sure you keep that functionality around.

from generator-ionic.

mikehaas763 avatar mikehaas763 commented on June 11, 2024

On another note, are you familiar with any github integrated collab/planning tools? I know planbox.com integrates with github and have also seen some kanban style boards that integrate with github. I think if we are going to collaborate effectively we need a form of communication other than GH issues. Could just move to email I guess.

from generator-ionic.

diegonetto avatar diegonetto commented on June 11, 2024

Thanks for pointing out the cleanup page. I will say its a pretty trivial piece to touch on and I'm not sure what you mean by "keep that functionality around" since it works fine as is (not many generators I've seen have updated to the new syntax - but regardless its good to know). Took a look around and they're just using https://github.com/SBoudrias/class-extend here https://github.com/yeoman/generator/blob/master/lib/base.js#L629 to provide a short hand way to extend the Base generator.

I would recommend https://trello.com/ and / or https://www.atlassian.com/software/jira. I've seen / used both in the industry and have no serious complaints.

from generator-ionic.

diegonetto avatar diegonetto commented on June 11, 2024

Based on your development schedule and current functionality I will say I'm a bit disappointed to have found out you already published this on the NPM registry. I avoided doing just that when I set up a skeleton repo a few months ago (like you have).

It's not in the spirit of NPM to squat on package names.

Happy coding!

from generator-ionic.

mikehaas763 avatar mikehaas763 commented on June 11, 2024

Hmm, I started this project less than a month ago out of a need to solve a real problem. That problem was that there was no yeoman generator yet and the scaffolded project from ionic start was not very good imo. That's not name squatting.

If my dev schedule isn't fast enough for you, then in the spirit of github and OSS please do send PRs. They're obviously welcome. Rather then duplicating existing efforts that this lib already has (for example diegonetto/generator-ionic@e5659a2), focusing on adding new functionality/etc and sending PRs may be more effective.

from generator-ionic.

diegonetto avatar diegonetto commented on June 11, 2024

Would you be willing to npm-unpublish this library until its more than a skeleton?

from generator-ionic.

michalmikolajczyk avatar michalmikolajczyk commented on June 11, 2024

Are we competing now? :) We probably should go one way or the other and not reproduce existing functionality. What do you think guys?

from generator-ionic.

mikehaas763 avatar mikehaas763 commented on June 11, 2024

A little competition is always good. Though, I would love to collaborate on the project I started.

Just go ahead and send some PRs :) If you want to make sure that something you want to do aligns with this project before coding then start an issue and I will respond.

from generator-ionic.

diegonetto avatar diegonetto commented on June 11, 2024

Starting and publishing a project are two different things. You plan to build this as a Yeoman generator for the Ionic Framework, but you published it to the NPM registry without a Grunt build system and with no components from the Ionic Framework (a faux pas imo).

That left a bad taste in my mouth, so I will be continuing separately on generator-ionicjs.

The community can benefit from having more than one Ionic Framework generator, so all the best.

from generator-ionic.

0xhamsters avatar 0xhamsters commented on June 11, 2024

I started a project using base yeoman, angularjs and ionicjs but is not in accordance with the generator yeoman, but this is in agreement with your structure ... did it for not having time to develop something more calmly. https://github.com/thwess/yo-angular-ionic if you want to take as a basis for future generator of you ...

from generator-ionic.

diegonetto avatar diegonetto commented on June 11, 2024

Prazer @thwess - muito legal. A estrutura do seu projeto é quase o mesmo que o meu. Se você quiser colloborate em um projeto no futuro, envie-me um e-mail! Boa sorte ~

from generator-ionic.

0xhamsters avatar 0xhamsters commented on June 11, 2024

legal, vamos trabalhar nisso sim, usar seu generator acho que é o melhor caminho.
Esse meu eu criei pra atender a um projeto novo, como não consegui usar o seu, não pude perder mt tempo analisando o problema. Até agora não consegui compreender pq o yo ionic ñ rulou :/ instalei o cordova e o generator ionic -g e num funfo. Vou ralar dessa issue gringa, agente continua essa discussão em outro lugar :)

from generator-ionic.

Related Issues (4)

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.