-
Notifications
You must be signed in to change notification settings - Fork 121
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
Rearchitect TiShadow #340
Comments
I would say this sounds like a good idea... I would would think ideally the system would be built as a sort of Ti VM that can be accessed via a socket connection... then all other "modules" built on top? If so, I would love the idea of merging efforts for ti-shadow and RapidDev. Both projects are large and take a lot of support. Teaming up would do us both good I think. |
Good idea... crowd funding? |
Great idea! +1 for crowd funding |
+1 |
Great! I'll contribute. :) I love TiShadow ❤️ |
Thanks all for the encouragement so far. @FokkeZB, crowd funding is a good idea. I just want to get a sense of interest first (rather than bombing out). @mattapperson, always happy for your contributions. I mentioned that to you before you started rapiddev. I am a little hesitant on being overly dependent on native modules. It can slow x-platform progress and might even limit plugin contributions. Also hacking the Ti VM with swizzles is also dangerous and things can break with Ti upgrades and changes in architecture (especially as they move to hyperloop). Ideally I'd like that sort of activity to involve to Appcelerator but I understand they have a different focus. |
You have my support on any tishadow needs |
@dbankier Based on my issues with android support... I am more inclined to go with a JS based approach. I don't love the idea... but I think it might be the only sane option :/ |
Sorry for the long silence. I'm going to let the idea cook a bit longer. |
+1 |
+1 for the crowdfunding approach. There are probably many developers and also companies that benefit from this great project and would contribute some money. Personally I'm still extremely new to Titanium and only after seeing TiShadow (and its test-framework support) did I feel confident that the framework could be used for sustainable development. |
+1 for crowdfunding. TiShadow has saved me so many hours developing in Titantium, I wouldn't mind paying for it. |
+1 at crowdfunding. One of the best and most useful Titanium tools right now. |
+1 for crowdfunding. |
+1 crowdfunding/patreon (monthly support system) |
I love TiShadow sooooooooooooo much. Also I really want to make Tishadow more easy to use. (like React native..) |
+1....how is it going? |
+1 Any progress on this? And I'm even up for crowd funding |
Motivation
TiShadow started out as web-based x-platform repl for Titanium. Over the last 2.5 years it has grown and evolved into a tool, not just for live reloading apps, but live interaction with apps in a whole bunch of ways. The code has be restructured a few times, but it still is a really very large and has a lot of unnecessary extra weight. E.g. it has 4 different test framework built in, there are 14 different cli command with heaps of flags, etc, etc. It is time to rethink the architecture and the following is a proposal. (Also I would need to have a serious look at the impacts of hyperloop/Ti.Next.)
Concept (WIP)
TL;DR a lean core with a pluggable API at the cli, app and server side. Both the core and plugins will be managed as (npm) dev-dependancies rather than a monolithic global install.
TiShadow Core
tishadow-core / tishadow
This will consist of the core essentials.
tishadow-cli
tishadow-
prefixed modules) together at all levelsTiShadow Plugins
Migrated plugins
Existing tishadow features can be pulled out to separate plugins. The APIs themselves needs some thought and proper design. These however will act as a good based to ensure that the plugin API is flexible enough at all levels.
tishadow-app
- moving forward I think the basic interaction should be the current appify/express way. (Personally, I still use the container app method, but this is simpler for the average user and fits the architecture better.) That said, the container app should still be supported via this plugin.tishadow-spec
- since there are number of framework built-in they can be split out to or interact with:tishadow-spec-jasmine
tishadow-spec-jasmine-2
tishadow-spec-mocha-should
tishadow-spec-mocha-chai
tishadow-alloy
- alloy support is built-in, would be nice to pull it out as plugin. Better for modularity.tishadow-repl
tishadow-pipe
- this would be the existing pipe2repl commandtishadow-web
- for the current web-based repltishadow-screenshot
tishadow-close
- this and the next are currently cli commands. They can be pulled out as modules as examples of simple cli-app interaction. They will likely be automatically added anyway as part of the bootstrapped dependencies.tishadow-clear
tishadow-modules
- a recent PR was merged supporting tishadow for native/commonJS modules projects. Stuff like this is make the core code a little spaghetti like and could be pulled out as plug-in.What next? Timeline?
This is a bit of dream at the moment. I've spent a lot of time supporting and building tishadow over the last few years and the project doesn't really have a financial sponsor. (I have only got one really short-term contract (20hr) as a result of the project.) If there is a lot of interest/support/good-feedback I would like to start working on it, but realistically my efforts would need best effort.
Would really like constructive/critical feedback.
Thanks.
The text was updated successfully, but these errors were encountered: