Open signalpoint opened 7 years ago
This is a good indication of the status too: https://www.drupal.org/project/usage/drupalgap
As you can see DG7 has peaked, and a DG8 launch should hopefully send the chart the other direction..
Oh, one huge thing I forgot to mention:
There aren't any docs on this yet (contact me or submit an issue if anyone is curious), but with the help of a mini DG8 module, we can communicate to a Drupal 7 website, and utilize all the benefits of the DrupalGap 8 SDK. This essentially means, the DG7 version of the SDK will get a huge performance/feature boost for those sites/companies (myself included time and time again), that aren't ready to make the jump to Drupal 8.
Thank you so much for this detailed answer. This is exactly what I needed.
I have decided that I would be exploring, learning and experimenting DrupalGap, Angular and Ionic, all three. And when I understand better what they can do and what their advantages are, I’ll choose my dream team! I wanted to choose the framework before I start my app, but I will actually use my app as a testing tool to try them all out.
Funny thing is Angular’s documentation is also not quite up-to-date of version 5 (very fresh, few errors) so I am helping them on it as well. And it’s quite motivating to know that while I learn both GrupalGap and Angular, I can help making the doc better.
I don’t want to make false promises, especially since I don’t know if I’ll find the time to do so, but I’ve never really contributed back to the Drupal community so far, years pass and I never really find the time to do it and I just want to say that DrupalGap is the kind of project that I would be glad to help grow faster. So we’ll see if I can make it…
Updates/suggestions?
Thank you to @Nicolas-Bouteille for raising these questions, here are answers from @signalpoint below:
The number one reason that DrupalGap 8 hasn't been released yet is that the documentation is incomplete and still has references to DG7 and jQuery Mobile in spots. I'd want folks to easily be able to get started before making a push to the masses here. I think it's getting extremely close (thank you for your efforts here).
The DrupalGap 8 SDK is well into beta IMO (I just haven't been strict about tagging, and communication). I don't anticipate any drastic changes to the developer's experience, but I personally want to take more advantage of prototypes within the DG8 Forms API to make it more powerful. But the DG8 SDK theme,region,block,widget,router,etc are very stable.
The DrupalGap 8 Drupal module has a set of features (DrupalGap Display Mode) that I would like to take out and stick into a contrib module, e.g.
drupalgap_entity
. Once that is out of there, and hopefully clean automated update hook(s) for easy Drupal 8 module upgrades, otherwise simply uninstalling the DrupalGap 8 Drupal module and installing the future 8.x-1.0 module will be the way to go. This feature also is smushed into the DG8 SDK Core, and I'd like to take it out of there too, and make a DG8 contrib module to handle this (this feature set is the bread and butter of DrupalGap 7, and I learned a lot along the way start this fresh and make it even better in DG8).So even though things are tagged in alpha, things feel quite stable and in beta to me without any key features missing, I just need to be (and welcome the help) more strict with release cycles and communication.
I also plan to make this all
npm
based so it's much easier to get started and add modules.I sure hope DG8 won't be a waste of time for you, please continue to point out any deficiencies and we can look to fix it up.
Some back story... I originally built DG8 (a very old version) on top of Angular. After using it a bit, I felt like DG8 was going to follow the fate of DG7 vs. jQueryMobile, and that was "to be stuck dependent on something else" and get trapped in a small niche, which really limited the true scope of what DG8 can and hopes to accomplish, i.e. DG8 can be used alongside any framework(s), or stand alone with plain old HTML/CSS/JS.
In theory one could use DG8 to inject Angular components into a DG8 front end, or on the flip side one could use an Angular front end to inject DG8 Widgets. (If Angular was handling the routing, we'd need to pull out
dg.router.inc
into a dg8 core module that could be disabled).I think learning Angular (and/or any other popular framework) is a wise maneuver, each have huge communities and contributions going into them, so they must be doing something right ;)
Thank you. This whole idea stemmed from an old blog post of mine from 2011, and it has changed my life dramatically. DG7 did (and continues to do) quite well for many organizations in production and I am very thankful to all the people who have tried it, contributed through bug reports, discussions and code contributions. DG8 will provide so much more and has fixed so many of DG7's short comings (by starting over completely with Vanilla JS). DrupalGap and jDrupal have always been a tiny niche in the Drupal ecosystem, and hope to share more with the community.
The code for jDrupal originally was stuffed into DG7 and was the REST layer that was easily convertible into Vanilla JS. When trying to build an app for Ripple watches some odd years ago, they had a JS kit, and I thought about integrating with Drupal, and then thought about ripping the REST layer out of DG7, and that was the birth of jDrupal. DG7 continued onward with jQueryMobile as a strict dependency, and still does to this day.
Then here comes hype for Drupal 8 (this was now 3-4 years ago), and its REST in core, and headless/decoupled chat all over the place, big frameworks like Angular, React, Ember, etc are coming into play. jDrupal has always been there and useful for any of these frameworks, so I wondered where best to take DrupalGap 8 into the future. I'm not sure how I arrived at choosing Angular to be the original dependency (attending DrupalCons, BOFS, Camps, Meetups) it seemed to ring the loudest with the most potential. So with minimal experience, I took the dive with Angular (right around the time I think Angular 2 was on the horizon, and lots of people were freaking out about the tough API changes, so I think all of my code for DG8+Angular was on Angular 1.)
After a while, I felt the what I had put together with DG8 on top of Angular was just spaghetti sloppy, and just kind of said to myself, we need a simple router, an html layer, a forms api and a rest layer, so I'll just go lean and mean, and make a new mini DG8 SDK out of plain old javascript. jDrupal 8 has evolved along side of it, and DG8 will always have jDrupal 8 as a dependency. Now folks can easily toss on a CSS framework into the mix (i.e. bootstrap/foundation) and be on their way to building a headless/decoupled web application and/or mobile applications for Drupal 8 based websites.
The angular-drupal project is now simply a very tiny wrapper around the jDrupal 8 library, so that Angular projects can utilize jDrupal (thanks to @kentr for this one).
I think you should learn both. I didn't make it much farther than the Hello World in Angular, and I was off trying to smash DG7 into it and call it DG8, so I set myself up for failure there (hindsight is great). Angular is probably a more employable skill set, and if you're vested in Drupal as the backend/cloud to your Angular app, I'd ask folks to consider trying out DG8 to see if it's coding experience is more inline with their Drupal needs. My answer is of course very bias, I love Drupal (have for 10+ years), and I sure love DrupalGap.
That's a valid concern indeed, and I don't want to give you any false assurances. My experience has been this, DrupalGap/jDrupal has done well for small business, start up apps, hobbyists, since it's meant to bridge the "gap" between someone's Drupal site, and the applications they want to run off of it. That was all DG7, DG8 under the hood is much better under the hood (leaner/cleaner/financially-sponsored).
DrupalGap/jDrupal will indeed never compete with the big frameworks, and it is there to fill a focused niche of application developers powered by Drupal.
I'd say to use your gut instinct here. I don't know enough about Angular to give a technical opinion, and I suspect some form of Angular is used to power all of Google's wonderful applications, so it is surely a force to be reckoned with.
I will also say that DrupalGap 8 is awesome, and hope it will be of use to many. Thank you, and happy coding.