Author's Posts

Yoink

The Feature Request

One of the most requested features for Yoink is being able to drag files from a Stack in the Dock to Yoink’s window. It sounds very simple and were I not the developer of this app, I myself would ask why Yoink hasn’t been able to do that from version 1.0.

Sadly, it’s not that simple.

Β 

stacks in dock

The Problem

For a reason unknown to me and maybe even a few people at Apple, the Dock does not use the general NSPasteboard used for dragging (NSPasteboard is responsible for being able to copy, cut and paste content from one document to another, but it also handles file drags, most generally with the NSDragPboard type).

No, the Dock uses a custom NSPasteboard for dragging (probably using NSPasteboard’s -pasteboardWithUniqueName method). The thing is, NSPasteboard doesn’t keep a public list around (and I don’t know of a private one, either)Β of the names of these unique pasteboards, which makes it impossible to check if a drag occurs on those uniquely named pasteboards.

This is not only the problem with the Dock, but also with iTunes – it also uses a unique pasteboard for its drags.

The Solution(s)

The thing is, even though the Dock uses a private pasteboard for its dragging handling purposes, if the Yoink window is visible, it still recognizes those drags. Which is a good thing, because knowing that, I can look for a solution.

As I see it, there are two possible solutions to this problem:

Possible solution #1: Have a hotkey to force Yoink’s window to show.

Although I like it, it does have its drawbacks. For starters, while you’re dragging with one hand, you don’t want to have to press a complex keyboard shortcut with the other. Many people I know use two hands to press shortcuts, so it would have to be an F-key, maybe. But pretty much all F keys are taken by default, and if not, other applications use them.
It’s more obvious than the second solution, but also harder to do while dragging.

Possible solution #2: Have hot corners or hot areas to drag to to force Yoink’s window to show

This one brings up several questions:
Should all corners be hot?
Should the user be able to define them?
Should it be corners only or should it be the entire edge of the screen?
And once the user drags an item to the hot corner to show Yoink’s window, they still would have to drag it from the corner to the window. So it’s a longer way for the mouse.
And of course, in those corners, files can’t be dropped. They corners would be small areas, yes, and even if it’s a rare case that you’d want to drop in a corner (I don’t think I’ve ever done it), it’s still a possible case.

The Decision

I’m leaning towards using hot corners, it kind of feels more natural to me for Yoink.

I’d like to implement hot corners in all four corners of all of your screens. And whichever hot corner you use, on that corner’s screen’s edge the Yoink window will show for you to drag to.

What do you think? Does that make sense? Please leave a note in the comments below, it means a lot to me πŸ™‚

Addendum: General state of Yoink

Aside from the issue above, the next update for Yoink is coming along nicely.

x) Yoink will allow the creation of clippings (when you drag a selection of text out of an application), accept items from your Browser (images, text, links) or drag out pages of a pdf file in, say, Preview – Clipping Creation Video
x) You’ll have the option to collect several files dragged at once into one item in Yoink (here a video which explains it far better). This way you can more easily drag out several files at once. And yes, there’ll be a button to split those “file clusters” up again πŸ™‚
x) I’ve also added new position options for Yoink’s window – not only can you put it on the center right or left edge of your screen, but also the top or bottom right and left. I didn’t implement the top center or bottom center (where the Dock is by default), because Yoink uses a tableview to display its items, and tables are based on rows, one below each other. That doesn’t work if the window is not vertical but horizontal.

The Decision – [UPDATEd]

Even though I stated above that I’m leaning towards hot corners, after a good night’s rest, I’m now more and more for a hotkey instead of hot corners.
First off, it is far more obvious for users since there’s a preference for the hotkey. The hot corners would be just there, whether people knew it or not. Β Also I believe the principle of hotkeys is better known than hot corners, but don’t quote me on that.
Additionally, a hotkey would give the user the benefit to be able to hide Yoink’s window even if it’s got files in it, which has been another requested feature.

The more I think about it, a hotkey does make more sense. Wouldn’t you agree?

Thank you and take care,
Matthias

Read more

NewImage

Today I released my first open source framework for OS X Lion – ESSVideoShare.

What is ESSVideoShare

It’s a framework for OS X Lion that makes it very easy to implement video publishing to these services:

YouTube, Vimeo, Facebook and Flickr

What you need

Import ESSVideoShare into your project, make sure ti’s being copied to your app’s bundle in a build copy phase.
And of course, for each service, you need an API key.

I explain the process of implementing ESSVideoShare step by step on its github page.

In-Depth

If you’re interested in how it all works, please head on over to the public github repository.

Support

If you have any questions or suggestions for improvement, be sure to let me know either through the comments below or by mail πŸ™‚

Take care,
Matthias

[twitter-follow screen_name=’eternalstorms’ show_count=’yes’]

[twitter-follow screen_name=’flickeryapp’ show_count=’yes’]

[twitter-follow screen_name=’screenfloatapp’ show_count=’yes’]

[twitter-follow screen_name=’gimmesometune’ show_count=’yes’]

Read more

YoinkIcon

Presenting: Yoink – taking the drag out of drag and drop

Functionality

Have you ever tried dragging something from, say, Finder, to a fullscreen app in Lion? It’s a pain. This is where Yoink comes in. Every time you start dragging a file, Yoink shows a window you can drag those files to. Then you just switch to the space or fullscreen app you’d like to drop the files to and drag them out of Yoink to the app. Very simple. There’s a video on the website which does a pretty good job at explaining what Yoink does, exactly.

The idea behind Yoink

The idea came to me while trying to drag a file from Finder to a new message in fullscreen Mail.app. I just couldn’t do it. Then I tried to drag images from Finder to Xcode in fullscreen. Not very easy either. Thus, Yoink was born.

The name

The original app for this little app was DragHelper. Yes, I know – why did I ever change it?
Well, I was watching the Simpsons, in the episode where Bart takes the last Doughnut or bearclaw or whatever it was from Kent Brockman’s plate by exclaiming “Yoink!” (to which Brockman asks himself: Yoink?!?) and I thought – that’d be a great name for an app that “yoinks” the dragged files.

Why Lion only?

The main reason is because I didn’t see the problem on Snow Leopard. The other reason is that I really wanted to try out the new NSTableView view-based APIs πŸ™‚ They’re very nice and shiny.

The menu bar icon controversy

The number one request I get from customers is to put in an option to remove the menu bar icon (the black down arrow). Well, I didn’t want it in there in the first place.
The first time I submitted Yoink to the Mac App Store, it got rejected because it didn’t have a way to quit the app if Yoink’s window wasn’t visible (the rejection note stated (somewhat paraphrased) “The app can’t be quit if the window is not visible”).

So I thought to myself: what’s the least obtrusive way to make it quittable at any given time _without_ putting an icon in the menu bar. Because why for the sweet love of God would Yoink need a menu bar icon? It’s a background app, for crying out loud.
So I put in a global hotkey for quitting Yoink and made it clear in the splash screen. Submitted it again.

Another rejection followed. This time, the rejection note stated “There needs to be a menu bar or an application menu or a status menu to include a quit item” (why this wasn’t stated in the first rejection is beyond me, but to err is human, and I’ve erred quite a couple of times, so I’m not complaining). Since it’s a background app, the first two were not possible, since background apps do not have their own menu bars – the only thing that was left was the menu bar icon. So I put it in there, and that was that.

Since I was pressed for time, I didn’t implement an option to hide the menu bar icon, but believe me, the upcoming update will include such an option. As I said, I don’t want that menu bar icon either. I just don’t see it make any sense.

The no launch on login controversy

The second most requested feature was to add a “Add to login items” button in Yoink’s preferences.
I tried to implement it, but in the sandbox environment of Lion, in which Yoink is running, it is currently not possible to do. I’ll have to wait until Apple fixes this until I can implement it.

Pricing and availability

Yoink is available exclusively through the Mac App Store for $2.99/€2.39. A free 15-day trial is available at the website (direct download link)

As always, I very much appreciate your feedback, bug reports and feature requests, so please keep them coming πŸ™‚

Thank you and enjoy,
Matthias

Read more