Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Layout debugger proposal #52

Merged
merged 3 commits into from
Apr 22, 2017

Conversation

nguyenhuy
Copy link
Member

@nguyenhuy nguyenhuy commented Apr 21, 2017

Author: Thanh Huy Nguyen

@nguyenhuy nguyenhuy added the rfc label Apr 21, 2017
@nguyenhuy nguyenhuy changed the title [RFC] Layout debugger Layout debugger proposal Apr 21, 2017
Copy link
Member

@garrettmoon garrettmoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks awesome Huy! I'm excited to play around with it!


Once we have a functional debugger with a solid foundation, we can start exploring below ideas:

- Remote debugging: Since the client app is a mDNS broadcaster, I *think* it's possible to support remote debugging as well as pair programming: "I have a layout issue" "Let me connect to your runtime and inspect it". Crazy I know! Inspired by this [Chrome extension](https://github.com/auchenberg/devtools-remote).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would be pretty damn cool.


## Naming

I'm planning to call this project "Texture Debugger". It'll be a suite of debugging tools tailored mainly for Textture framework.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creative :P

Eventually, we'll possibly move away from PonyDebugger and implement our own framework due to a few reasons:

1. PonyDebugger is not actively maintained. That might be because it's considered a "done" project, although the amount of open issues may suggest otherwise.
2. It's not easy to setup the environment, especially because of the [ponyd gateway server](https://github.com/square/PonyDebugger/tree/master/ponyd). Ponyd is essentially a middleman that sits between the client code and Chrome DevTools. It is implemented in Python and hosts its own version of DevTools. Its bootstrap script is more or less broken. It's not trivial (at least for me) to setup a working environment. Instead, my limitted research showed that we can do better by letting the client app be a mDNS broadcaster and allowing Chrome DevTools to connect to it. The workflow will be very straight-forward for developers, similar to [Stetho](https://facebook.github.io/stetho/)'s. In addition, the whole project will be simpler because we don't need to maintain ponyd.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you be willing to write up a Getting Started document as part of this until it's dead simple? So that others don't run into this difficulty?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I'll put up a document once I have a clear idea of what I did to make it work. I tried different suggestions from Google, some might be unnecessary, until I hit no error LOL


## Naming

I'm planning to call this project "Texture Debugger". It'll be a suite of debugging tools tailored mainly for Textture framework.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huy, this looks awesome!!!!

Copy link
Member

@Adlai-Holler Adlai-Holler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is incredibly cool Huy! It's great to leverage Chrome and PonyDebugger to do a lot of the heavy lifting.

You may want to look at this home-rolled solution when you have some spare time. It was never 100% completed but the basic mechanism works and I think the approach I took to getting/modifying the layout spec tree is novel even if it's a little intrusive 202c947...AHNodeTester

@nguyenhuy
Copy link
Member Author

@Adlai-Holler Thanks. I'll read it up sooner or later!

@nguyenhuy
Copy link
Member Author

Thanks for all the support guys. I'm merging this 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants