Author's Posts

Yoink Mac App Icon

I’m happy to tell you that today, Yoink 3.3 is available for download from the Mac App Store. It’s a free upgrade for everyone who’s purchased it before. You can download a 15-day trial for the app here.

What Is Yoink?

Yoink simplifies and improves drag and drop on your Mac.

Simplify.

It simplifies drag and drop by providing a temporary place for files you drag, so you can navigate more easily to the destination of the files.
It’s especially useful when trying to move or copy files between different windows, Spaces or (fullscreen) applications.

Moving a file with Yoink

When you start moving a file in Finder, or app-content like an image from a website, Yoink appears at the edge of your screen, offering a temporary place for you to drag the files to. Without having to keep the mouse button pressed, you can now get to the destination of your file quicker and easier.

Improve.

Drag and drop is improved in several ways, including:

  • Collect multiple files from different locations you’d like to move to one destination without having to go back and forth
  • Split up a multiple-files-drag so you can move files to different places without having to go back and forth
  • Copy files to multiple locations more efficiently

Customize.

You can customize Yoink’s behavior so it fits in perfectly with your workflow. Aside from having to option to show it at either edge of your screen (at the top, center or bottom), you can set it up to only appear when you drag files to the edge of your screen or to appear directly at your mouse cursor when you start dragging, making drag and drop even faster.

Yoink appearing at the mouse cursor

For applications where you don’t need Yoink, add them to a “blacklist”, so Yoink doesn’t interfere with your work. A keyboard shortcut (by default, F5) lets you manually show or hide it, should you need it anyways.

What’s New in Yoink 3.3?

Version 3.3 lets you bring back files to the app that you’ve previously removed, in case you find you need to move or copy the file(s) somewhere else.
Just keep its keyboard shortcut pressed (by default, F5)

Press and Hold Shortcut Key in Yoink

or right-click onto Yoink to bring back previously removed files:

Right-click onto Yoink

Webloc files can now optionally show favicons for quicker identification:

Yoink loading favicons for webloc files

Further Improvements

  • Yoink now includes macOS’ “Share” menu to more easily share files to different services
  • More easily add links from your browser to Yoink by right-clicking onto it in your browser and selecting Share -> Yoink
  • A new Alfred File Action to make sending files from Alfred to Yoink possible (activate it in Yoink’s “Advanced” preferences)
  • Many improvements, refinements and bug fixes

Pricing and Availability

Yoink 3.3 is available for purchase on the Mac App Store for the price of $6.99 / £6.99 / €7,99. It is a free update for existing customers of the app.
You can download a free, 15-day demo version here, even if you’ve tried Yoink before. Yoink runs on Macs with OS X Lion 10.7.3 or newer. OS X Yosemite or newer is recommended.

If you’re interested in writing about Yoink, you can download the press kit here, which contains screenshots, links to a short video and further information.
Promo codes are available to members of the press at press (at) eternalstorms (dot) at.

Yoink Usage Tips

To get the most out of Yoink, I’m collecting useful tips and tricks for you on this website.

I’m looking forward to hearing from you and to see what you think about Yoink v3.3. If you like the app, please consider leaving a little review on the Mac App Store, it would help me out a lot!
Should you have trouble with it or have any feedback or questions, please be sure to get in touch, I’d love to hear from you! Thank you.

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –
Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most). Thank you 🙂

Read more

“What I…” is a monthly column where I write about what’s been going on in my life as an independent Mac and iOS developer over the last month.

… Did

Contract Work

Probably the main reason why I do these blog posts less often lately is because I’m busy with contract work I can’t talk about. I’m involved with two very interesting and challenging iOS projects right now. One is in the realm of audio, the other has to do with video.

It’s interesting work, and both are challenging in different ways. Regarding the audio project, there was an existing code base which I had nothing to do with, so getting into that code, understanding and ultimately working with it was very challenging (it wasn’t documented at all, some things were implemented multiple times, in different places, there were bugs). But with anything you do, if you stick with it, you’ll figure it out. I’m still having trouble here and there (the app itself is quite complex in the first place) but as The Beatles say, “It’s getting better all the time”. We’re now at a point where we’re mostly done with bug-fixing and are now fine-tuning the app for a slightly broader roll-out.

The video app, on the other hand, I have total control over. We did a fairly quick prototype last year, sort of a proof-of-concept, and are now in the process of producing version 1.0. Naturally, I feel far more comfortable working on a code-base I started and thus am completely familiar with. I’m making a point of properly documenting what I’m doing in the app, so that if someone else were to work on it, they wouldn’t have too hard a time to do so.

Of course, there are things I worry about: source-control commits, for example. For my own projects, I can basically do whatever I want – write descriptive commit messages (which is what I usually do) or very short ones, when I’m pressed for time or just “not in the mood”. For someone else’s project, that’s clearly not an option. And that’s where the worrying comes to play – is the commit message descriptive enough, did I take everything into account, did I mention all issue-tracking-ticket-numbers, and so on. Then again, perhaps the bar is not that high – I saw one project, where the commit message was just “commit”. Welp.

Another example: Unit Tests. I have no idea what to do with them or about them. I’ve never written a single unit test for my own apps (I don’t say that proudly). Guess I should start at some point.

The pre-dominant thing I worry about working on other people’s projects is: less time for my own. I’ve been working on Transloader 3 in February, but March gave me little time to do so, and the trend seems to be continuing into April. Yoink could do with an update as well, not to mention ScreenFloat. It’s very stressful, really.

Found a Copy-Cat of Yoink. Ugh.

By members of the press and multiple customers of Yoink, I was made aware of a possible copy-cat of the app. I’m not going to name or link to it here. From what I could see, they copied the look-and-feel of the app, down to the marketing material. It’s a shame they didn’t use the time copying my app to create something unique of their own… I contacted Apple about it (if this should happen to you, you can contact them here) and started a dialog with the developer through that channel. Of course, they denied everything and started bringing up lawyers, and that’s where we stand now. I doubt I’ll proceed, it’s not worth the money, the nerves and seeing as customers recognize it as a rip-off of Yoink anyway, I can leave it at that and be somewhat happy about it. Still, personally, I think Apple should recognize the rip-off nature of the app and remove it from the Mac App Store, but that’s their decision, not mine.

Some comments from customers:

  • via mail: “it looks like they just duplicated your efforts under their name”
  • via mail: “Please check the Apple Store for a tool named “…” it is a rip off of Yoink.”
  • on a software-review site: “Appears to be a blatant rip-off of Yoink!!!”
  • via twitter: “that’s not the only app they have ripped off either”
  • on that note about another app of ‘theirs’ on a software-review site: “Okay this looks total rip off of Disk Diet.”
  • another: “I’ve read some comments in the App Store calling (…) a rip-off of Coconut Battery, and I can definitely see where the comparisons are coming from, the two are extremely similar”

It’s not just me. Phew.

… Didn’t Do That I Had Planned

Work on Transloader

I had quietly hoped to be able to finish Transloader 3 by the end of March and release it some time in April. That doesn’t look likely now. With all that contract work keeping me busy, I had to postpone my plans and am now working on-and-off on the app, whenever there’s a little time left over. But this situation is not going to last forever, perhaps another week or two, then it’s the backend-guy’s turn again, leaving me to my own apps for a while 🙂

… Downloaded

Underpass Mac App IconUnderpass (mac app storewebsite)

By developer Jeff Johnson (here on twitter), this is an end-to-end encrypted chat app, with encryption implemented from the ground up – it doesn’t use a third-party service, like other apps. “It’s just you, your chat partner, and a password. Peer-to-peer. There’s no signup. No account. No phone number, email, contacts, or any personal information requested, not even your real name.”

Thimbleweed Park App IconThimbleweed Park (mac app storesteam, gogwebsite)

Released today (March 30th, 2017), I can’t wait to play this game. I backed it on Kickstarter as soon as I heard about it and I’m happy they were so successful with that campaign. Their development blogis worth reading!

… Read

70 Cents Put Me on the Mac App Store Charts (lapcatsoftware)

“The charts do not accurately reflect how (un)healthy the store is and how widely (un)profitable it is to third-party developers.”

I Worked for Steve Jobs, and This Was the Best Lesson He Taught Me (huffingtonpost)

“Telling the truth is a test of your character and intelligence. You need strength to tell the truth, and intelligence to recognize what is true.”

First Dinosaur Tail Found Preserved in Amber (nationalgeographic)

“ “Maybe we can find a complete dinosaur,” he speculates, rather confidently. “

… Listened To

Erich von Däniken Lecture (website)

My girlfriend and I had the pleasure to attend a lecture given by author Erich von Däniken in Vienna. His theories are interesting and thought-provoking. Some of it is fantastic, of course, but he’s very good at making you see things from a different point of view.

… Watched

Beauty and the Beast 2017 Movie PosterBeauty and the Beast (itunes)

Not as good as the original. I don’t see why it had to be done with real-life actors in the first place, but ok. Instead of creating something new, it seems Disney’s more fond of re-visiting old material and re-doing it, like The Jungle Book. It wasn’t that bad, though. It had its moments.

… Ate

Saffron RiceVegetable-Pistachios-Rice with a Saffron Crust

… Went to See

Venice, San BarnabaAh, Venice.

Venice, drying clothes

Venice, San Marco in the distanceAt the end of February, my girlfriend and I went for a one-day-trip to Venice (by bus, we started Friday night from Vienna, were in Venice on Saturday, 7AM, and returned to Vienna 8PM that same day). We had great weather and great fun, but were quite groggy afterwards – after a walking distance of over 18 km and very little sleep. We had a constantly quarrelling older couple sitting right behind us, and they would. not. shut. up. But that’s beside the fact. Venice is great. And they filmed Indiana Jones there!

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – – Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most). Thank you 🙂

Read more

Working on Transloader 3, I wanted to re-implement the Finder’s Open With… contextual menu:

The Finder's Open With contextual menu

Getting the apps in there turned out to be the easy part. What took some effort was the “App Store…” menu item, as I wanted to precisely replicate its functionality.

Transloader 3's Open With contextual menu

Right-click a file in Finder, select Open With -> App Store…, and it will launch the Mac App Store with a UTI search, for example: uti:public.zip-archive.
This will give you a list of all apps available in the Mac App Store that can handle that file type. Neat!

The ‘macappstores’ URL scheme

The Mac App Store app luckily offers a URL scheme:

  • macappstores://
    Launches the Mac App Store
  • macappstores://showUpdatesPage
    Launches the Mac App Store and takes you directly to your Updates page
  • macappstores://showPurchasesPage
    Launches the Mac App Store and takes you directly to your Purchased page
  • macappstores://itunes.apple.com/app/idYOURAPPID
    Launches the Mac App Store and takes you directly to the product page, identified by the product ID

That’s very practical, but not what I was looking for. I was in need of a way to start a search the way Finder does.

In order to find out the URL Finder uses, I wrote a quick throwaway-app that would overtake the Mac App Store’s URL schemes (using LSSetDefaultHandlerForURLScheme) and print out the URL that was opened.
Alas – no dice. Apparently, Finder uses Apple Events or some other magic that “can not be used in a third-party sandboxed app anyway”™ to do its bidding.

After googling the issue, I found a URL that supposedly worked: macappstores://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?q=searchterm, but just to pour more salt into an already wide-open wound, it only worked on pre-10.9 systems:

The search URL in 10.9-and-beyond systems

Another dead end. Or was it?
I guess I should have experimented with that URL a little, because Jan Vitturi (@jan4843 on twitter) had the answer: just remove “ax.” from the URL, and it works (on both pre-10.9 and post-10.9 systems)!

Using this URL:
macappstores://search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?q=searchterm
I was able to get a search going on the Mac App Store, right from within my app.

Sadly, there’s a caveat.
I can’t do a UTI search this way. When I pass (even a percent-escaped) search term along the lines of ‘uti:public.zip-archive’, the Mac App Store tells me there are no results. Reloading that very same page then does show the results – weird and annoying, but nothing I was able to work around.
Using extension:zip seemed to work a little better, but still didn’t return all results a reload would.

Jan Vitturi to the rescue again – the URL’s a little different for UTI or extension searches:
macappstores://search.itunes.apple.com/WebObjects/MZSearch.woa/wa/docTypeLookup?uti=youruti

Alternatively, instead of uti=…, you can use extension=… to search by file path extensions.

My sincere thanks go to Jan Vitturi!

 

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –
Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most).
Thank you 🙂

Read more

You’re working on your Share extension with support for MacBook Pro’s Touch Bar, but it’s empty and doesn’t appear when your extension is loaded?

NSTouchBar Empty

The solution is simple:

Solution for showing NSTouchBar from within a Share extension

Call [self.view.window makeFirstResponder:self.view]; and it will push your glorious NSTouchBar onto the stack:

NSTouchBar working in a Share extension

Hope it helps – it would have saved me 20 minutes if I’d known 😉

Eternal Storms Software Logo

– – – Do you enjoy my blog and/or my software? – – –
Stay up-to-date on all things Eternal Storms Software and join my low-frequency newsletter (one mail a month at most).
Thank you 🙂

Read more