Comments (20)
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.
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.
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.
Hi,
thanks for pulling me in :)
I was thinking about the generator, and I agree with both of you:
- we should import ionic-cli functionality
- 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:
- automated tests through grunt
- 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.
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.
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.
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.
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.
@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.
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.
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.
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.
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.
Would you be willing to npm-unpublish
this library until its more than a skeleton?
from generator-ionic.
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.
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.
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.
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.
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.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from generator-ionic.