I want this. Make it happen.
This is a design doc for a plugin I was planning to build, until I learned that it ins't possible with Sketch's current plugin architecture.
Until it's technically possible, I thought I'd share the concept to see if anyone else might find this useful.
Can you elaborate on why you think it's impossible to develop?
Someone from Bohemian told us so: http://mail.sketchplugins.com/pipermail/dev_sketchplugins.com/2014-August/000547.html
Basically there is no method for inserting custom icons into the toolbar (minor issue) and no way to run active/repeated events (bigger issue).
Looks like they are working on it though!
"As for events, it is something we’d like to do, moving forward, but we’re still in the design/discussion phase"
Couldn't you simply start with tracking mouse movement? If there is mouse movement, then there is activity and that time can be added to the log. Each file would then contain one number, resembling the total time spent within the doc.
I don't think a plugin can "track" anything, is the problem. Plugins in Sketch currently have to be explicitly ran (usually with a hotkey), they can't just hang out in the background listening for triggers.
So this doesn't exactly help, but LayerVault could do this on a generalized level for any filetype.
Since we track every save, someone could potentially map saves to spurts of working on a file. If anyone's interested in doing that, it would be pretty trivial to implement using the API. It would just be a matter of what formula you use to define continuous work.
I think basing it on saves alone would be insanely tricky, as there be no way to detect inactivity. Lots of times I leave a file open for random amounts of time, jumping back in and saving like no big deal.
I guess it would be a start, but I'd rather use save data to show "lifespan" of a file, maybe in a Github-style activity graph. It would be neat to see start date, end date, save velocity, etc— but I don't think I'd trust it for total hours spent active in the file.
Yeah, you'd have to make a few executive decisions around what defines "thinking" vs. "I'm no longer working on this file." I think that threshold would probably be somewhere around 10 minutes. That is, if you haven't made a new save to a file in 10 minutes, you are no longer working on that file.
Well since LayerVault has an app open all the time on the Mac, the tracking of other activity could be built into there too, such as which app is open (
-[NSWorkspace frontmostApplication]) and mouse movement, combine this with the save detection and you could get some pretty good results there.
Damn, I was excited by this until I realized it is just a concept :(
Wow - would absolutely love to have. Great idea.
Often wondered if something like this would be possible with the Layervault API...
Is this a real thing or just a proof of concept? Please say real :)
Concept. We tried to build it and found out it was impossible with the current way that Sketch plugins work.
Exploring other options, just thought I should try to gauge interest before I waste too much time on it, haha.
Love the idea. Would love to see this a reality for sure.
Love this concept. In my ideal world, it could link up to my Harvest account, and let me assign a project to each folder in my Projects directory. If I'm working on a file somewhere in one of those directories, track time against the connected project.
Oh, and since I'm being ideal, it would work with Photoshop too. :)
This needs to be implemented in all the pro apps I use. Then maybe I can get a better idea on how to estimate my time.
You beautiful monster. Why limit it to just Sketch though. Take it WORLDWIDE.
The funny thing is that this plugin would likely be in Photoshop, but I only use Sketch now for production work so I've got no drive to take it there.
Please make this happen.
Love this concept. Would love it more if you could integrate with Harvest. That way I could track my time right from Sketch.