Monday, September 19, 2016

GWSFluidArch and book progress

So I evolved GWSFluidx to GWSFluidArch, which is at:

https://github.com/shareme/GWSFluidArch

The app patterns enabled by the Library are MVC, MVP, MVMM, Flux, and Redux.Soon, you will find app demos using a todo apptemplate demo-ing the app patterns.This way everyone can see the pros and cons of each pattern.

Turns out that I am developing a preference towards Redux or Flux. They seem
easier in the sense that once I fully develop the middleware one will be
able to see replays of action and state as a debugging tool. And, the
amount of boilerplate seems to be less.

How did I handle device orientation changes with Redux or Flux? Rather than try to project some View-Model implementation since I do not want to violate the One State class rule of Redux or Flux I instead use the project icepick to allow me to just simply include the state and save it without very much boilerplate. Some time later I will figure outhow to group the view-state in the one global class so that I can flow the icepick stuff through a middleware hook and than all the state stuff will be together in one state class.

The book series is being re-organized at:

https://github.com/shareme/GWSWayOfAndroid

Turns out that to have the book popular enough, both of them need to be about 24-25 chapters.That is not counting the 7 extra chapters per book. The first one is an introduction to android application programming with the second book covering AndroidAuto, AndroidTV, AndroidWatch, and some advance android application development subjects such as functional-reactive programming, app arch patterns, etc.

The chapters have been decided, now the cranking out the outlines and code demos and the chapter content begins. At times I will re-purpose the content as medium articles as I progress in the book writing. The books and code examples in raw form will be downloadable from github and as soon as I find a publisher that accepts pdfs to print the hard-copy books I will note it in the project readme and project website.