About Icon


Collect your GIFs. Share them. Love them! If you're a GIF connoisseur, then you need an app that's as serious about them as you are. That's where GIFwrapped comes in.

• Use iCloud or Dropbox to add new GIFs and sync your collection. Keep your GIFs on multiple devices and have a backup in the cloud. The digital cloud. No one keeps GIFs in real clouds anymore, everything gets too wet.
• Use the bundled Messages app to share GIFs from your Library with your friends in seconds. No muss, no fuss.
• Drag and drop GIFs en mass to and from GIFwrapped. Drag them all! Drag them good!
• Find new GIFs using Giphy powered search! Just bang in a phrase like "cat" or "lumpy space princess" and be prepared for pure awesome to rain down on you from the heavens.
• Import GIFs, Bursts, and Live Photos from your Photo Library. Save them back to Photos, too, if that's your jam.
• Use an extension to quickly save images to your library! It's not sexy or anything, but it is super easy and probably fun by someone's standards!
• Preview GIFs in standard or retina quality. It all depends on whether you like pixels or not.

Upgrade your GIF game even further by subscribing to GIFwrapped Premium for US$3.49 per year (may vary from country to country), which unlocks awesome features, removes ads, and supports an independent creator.

• Turn off ads. I hate 'em as much as your do, but a guy's gotta eat.
• Bookmark searches for easy access the next time you want them. These things are important for those GIF standoffs your's somehow always getting into.
• Reuse, and recycle, your search history as a list of bookmarks, so revisiting the past doesn't need to involve time travel… or memory.
• Additional information about images within the Into panel, including number of frames, duration, and more. That way you can know your GIFs inside and out.
• Turn off the embedded watermark in Bursts and Live Photos. I mean, liking GIFwrapped is one thing, but to plaster the logo over GIFs of your pets? Probably a bit much.

If you choose to subscribe to GIFwrapped Premium, payment will be charged to your iTunes account, and the subscription will automatically renew within 24 hours of the end of the current period. You can manage this in Account Settings. Cancel your subscription at least 24 hours before the end of the current period to let it lapse.

Privacy Policy: https://gifwrapped.co/privacy
Terms of Service: https://gifwrapped.co/terms

iOS Store Category:

Primary: Entertainment

Secondary: Utilities

App Store

Privacy Policy

Total Ratings



GIFwrapped screenshot 1GIFwrapped screenshot 2GIFwrapped screenshot 3GIFwrapped screenshot 4GIFwrapped screenshot 5GIFwrapped screenshot 6GIFwrapped screenshot 7GIFwrapped screenshot 8

Version History

Launched Feb 04, 2014 (over 6 years ago).

Releasing new versions every about 1 month, on average.

Sep 23
Version 2020.12

The time has finally come to deal with iOS 14, so I've done the work to make sure that GIFwrapped properly supports it. Don't get too excited: for now, it's literally a matter of "was it showing an error? GUESS I HAVE TO SUPPORT THAT", so if you were hoping with all your heart for some kind of widget or something: prepare to be very disappointed.

While we’re on the topic of disappointment, let me unload a little more bad news on y’all: support for iOS 11 and 12 is going away in the very near future. In fact, I fully expect this to be the last release to support them, unless something major breaks.

Now… as far as this release is concerned:

- I added support for iOS 14’s limited Photos permission, so if you choose it, it should correctly show results based on what you specifically select, because that’s how the limited permission works.

- The method for pulling frames from video while converting to GIF stopped working as of iOS 14; not because it's deprecated or anything, just because that sort of nonsense happens (what is life without DRAMA). Good news is that I've had a secondary option waiting in the wings, which might even be slightly faster (but is less… battle-tested), and I've activated it so that things can keep on trucking.

- I was still seeing some crashes when image metadata was being updated, so I reworked some things to reduce the possibility for errors to occur, which should make the whole thing more stable… again. I call this method the stab-about-in-the-dark-until-you-hit-something form of debugging.

- I’ve noticed for a while—particularly after an iOS update—that downloads from iCloud could sometimes just get stuck, and no amount of resetting or force quitting would sort things out. So I did what any sane person would, and created a custom console app to run on my iPad so that I could get some insight into what was happening, and finally managed to sort it out.

- The paging feature available to Premium subscribers had a small flaw: as you paged through, GIFs wouldn't always stop animating as they went off screen, which means higher-than-expected CPU and memory use. I adjusted the way pages are loaded, only ever allowing GIFs to play when they're actually on screen, because otherwise, what's even the point?

- There I was doing some spring refactoring (as you do), when I discovered that the save/sort button wasn't being updated as one might expect, meaning that the button for saving a search (a Premium feature) likely wouldn't show up when a search went through, and if it did somehow appear, it likely wouldn't leave. I hooked it up correctly, and now it should do the thing you'd actually expect it to do.

- The fact that GIFs have a configurable number of loops (i.e. that it's not always infinite) is easy to miss, and as such, it's a bit of information that has been missing from the info screen for far too long. Since I need to pull that information out anyway (for the new and hopefully improved GIF playback), I figured it was high time I actually made it visible. No need to thank me or anything.

- I've not run into a lot of cases where images could be discovered but not downloaded… however, in cases where the server was producing HTTP errors for an image download, the response would often be entirely misinterpreted. So I wrote an error message for every HTTP status code that exists. Easy peasy lemon squeezy.

- When updating my remote configuration setup a release or two back, I managed to accidentally hardcode the wrong file as the source, which isn't exactly ideal. Wired in the right variable, and now it's like I actually know what I'm doing. WHODATHUNKIT

As always, you can send an email to support@gifwrapped.co or a tweet to @gifwrapped if you’re runing into problems, or if you’d just like to share your thoughts. My ears and heart and DMs are open to hear from you.

Until next time, remember: this too shall pass.

Aug 23
Version 2020.11

A few people noticed that the sharing menu wasn't actually doing much of anything, which is all kinds of not good. It'd show up, let you tap an option, and then pretty much disappear without so much of a "nice to see you". We had a little chat, I made some changes to the order of operations once you tap an option, and it should be much better behaved from now on.

Thank you so much for using GIFwrapped! If you encounter any issues, please reach out by emailing support@gifwrapped.co, or tweet @gifwrapped.

Until next time, stay frosty!

Aug 22
Version 2020.10

A developer’s job is never done, and I’ve been working hard to tackle as many of the issues I come across as I can, so I hope this release helps ease any problems you might be running into!

- I gave the App Icon screen in GIFwrapped’s settings a little overhaul, and made some of the less exciting icons free for everyone to use. What can I say? I’m a giver.

- I discovered that one of my recent bug fixes introduced a small issue that caused some values to be ignored when comparing entries before updating the library's metadata store. This is mostly fine, as any of these values would, in practice, be accompanied by others that would've been caught, but a bug is a bug is a bug, so I fixed it.

- While reworking the sharing menu in the last release, I messed up some logic causing the menu's actions to be loaded up _after_ checking to see which ones had been loaded. This had the side-effect of making the share button in the preview screen fail to show the shortcut list first—which isn't how I intended it—so I fixed that.

- I also did some additional refactoring of the way that share sheets (the standard iOS ones) are presented in order to enable a future feature which hasn't been switched on yet (because it isn't ready). When sharing via the standard means, you shouldn't really notice much of anything, but trust me… it’s different.

- The preview image couldn't initiate a drag on the iPhone. It's absolute nonsense, I know (where are you going to drag it to?!), but that future feature might make use of it somehow, so I enabled it anyway.

- I noticed that there was a fun, new crash related to the new way image metadata is updated, caused by the old copy not being removed from the store correctly before inserting the new copy. I added a fallback solution for this case (which is slower, but won't fail), and now it shouldn't be causing any more trouble.

- The remote configuration setup I use to manage the minutia of certain features (like how GIFs are shared to different apps) wasn't reloading correctly when I updated the server-side file. It's not really a big deal, as the file gets bundled when shipping updates, but it's always nice when things, you know... actually work.

- I was seeing an occasional crash caused by the presentation of a new-ish error alert in the Messages app. Basically it was because it being presented from a background thread, and dammit past-Jelly, you know you're not supposed to pull that nonsense.

- I continue to get a lot of reports of Twitter-related issues—particularly ones where the content is considered sensitive, but the user doesn't realise it—so in an effort to reduce the number of false negatives (I'm only one guy, and not at all responsible for Twitter's life choices), I've added the ability to preview the Tweet in a browser right from the error message.

- Dug into the Twitter parsing once again (groan), only to discover that a super weird bug in the library I use to pull apart HTML was bugging out on me. I'm not sure _why_, and I'm terrified to pull apart Twitter's HTML by hand to figure it out (please no), but I did manage to figure out a working solution, so now we're just gonna back up slowly. Real slowly.

- I also discovered a bug that was causing some tweets to be wrongfully ignored due to a casing issue: basically, it was comparing @GIFwrapped vs. @gifwrapped and deciding that they weren't the same. That's clearly not the case, so I tweaked things to do a better job, and the results should be much improved.

Thanks for using GIFwrapped: you’re a champion, probably! If you’re running into any problems with the app, please reach out by emailing support@gifwrapped.co, or tweet @gifwrapped.

Until next time!

Aug 06
Version 2020.9

Over the past few weeks, I’ve been laying out plans for GIFwrapped’s future, so a lot of this release is in anticipation of that: rebuilding parts of the code to improve them, and to allow me to bring exciting new features to GIFwrapped down the road. Lest you get the idea that I’m a big ol’ tease, however, this release also adds something exciting and new.

- Thanks to some recent refactoring of the way the main app’s universal search layer works, I was able to bundle it up and bring the feature over to the Messages app, allowing for parity between the way search works in both the main app and the Messages app. This means you can now search anywhere for a GIF to send, right from a conversation in Messages, just like you would within GIFwrapped itself. Hooray!

- The code managing GIFwrapped's rather complicated share functionality—including the menus and actions that accompany it—has existed in the same form since almost the beginning (except for when I wholesale ported it to Swift), and it was getting a bit… crusty. I buckled down, tore it to pieces, and built a new version out of the rubble… which should hopefully work about the same as before. It’s really more of a self-care thing from my perspective, but at least it should be less prone to problems as I expand its feature set going forward.

- Dragging GIFs from the main app’s grid view has been a thing for a while now, but I never did get around to implementing the functionality for the preview screen… until now. Just another thing to cross off my bucket list.

- Thanks to a handy watch dog (woof!) that I’ve been using with my beta testers (its bark is honestly worse than its bite), I was able to surface a potential cause for the lock ups people have been experiencing: resolving bookmarks used to track iCloud files from the main thread. The moral of the story here is: don’t do that.

- Tweets could occasionally be dropped from search results, particularly if they were a reply to another tweet. Fortunately, I was able to improve the quality of the results returned by tweaking how I parse replies, but I swear I will never be done fixing bugs that have cropped up thanks to Twitter's site overhaul from several weeks ago. SIGH.

- I was occasionally seeing images getting stuck in an update loop, constantly attempting to merge non-existent changes back to the metadata store. Turns out the fix was two-fold: first I fixed a bug that was causing the metadata to appear to have changed even when it hadn't (oops), and the second was a little refactor to avoid modifying the store unless it's _actually_ necessary.

- The preview screen wasn't handling errors particularly well, with one (rather useless) error that was used across the board. This is a regression that happened a while back, caused by past-Jelly ditching the old method of downloading and displaying images… and thus the lovely, custom errors that came with it. It's still not perfect (is anything?), but it's a damn sight better than what past-Jelly left us with. JERK.

- The way I was retrieving Animated Images from Photos seems to have been broken for a while now, stopping new images from showing up in the results, but it was a fairly easy thing to resolve. I just wish I’d known sooner.

- It only took me… uh… 3 years to support the fancy authentication stuff that Apple introduced back in iOS 11, but here we are. I've added it to the flow for connecting to Dropbox. That's about all I have to say about it.

Thanks for using GIFwrapped, and doubly so for reading these release notes! If you’re having any trouble, please reach out by emailing support@gifwrapped.co, or tweet @gifwrapped, and I’ll do what I can to help. If you’re feeling particularly generous, a review on the App Store is always welcome, too (but fair warning: I don’t provide support through reviews).

Until next time, remember: you are a large, majestic mountain trout.

Jul 01
Version 2020.8

Despite the (somewhat hasty) fixes for Twitter importing that went out in my last release, GIFwrapped was still having issues importing GIFs from Twitter in certain cases, so I had to go back and do some additional work on it.

- The Save to GIFwrapped extension was crashing before it could parse links (like, say… Twitter links), due to the web content being loaded off of the main thread (bad developer, BAD!). I made a few changes to make sure the important calls are handled correctly, and it should be more stable now.

- I was also finding that the results being returned could be… variable, based on the position of the moon, the speed of XHR requests, and which leg I was standing on at the time. I went back and tweaked the way GIFwrapped handles knowing when a page has finished loading (it'll load initial results, but then continue to update as the various XHR requests complete). It's not perfect (the in-app experience is superior because it's not under time pressure), but this has helped ensure that as many results as possible are produced.

- Tweets marked as sensitive (typically because they're… naughty) used to work in GIFwrapped, but the link for the GIF got properly hidden in the recent Twitter website update, which made it not so worky. I made (significant) changes to how Twitter's site is parsed in an attempt to make a best effort to retrieve GIFs from any tweets, but if all else fails, the error should at least be more accurate as to what caused it to fail.

- I still get emails from users experiencing lock-ups that I cannot detect or replicate for the life of me. Each time I do, I go into the code base and look for any possible reasons that the app could get into such a state, and then do what I can to relieve it. It hasn't worked so far, but maybe the changes I made in this release will have an effect?

- Thumbnails are another source of support grief, and in this release I discovered a couple of points where the code could just… not download thumbnails. Add to that some improvements to how it handles the sheer number of downloads that can be spun up during first load, and hopefully it should be improvements all around.

If you find any issues with the app, or want to send me a much-needed morale boost, tweet @gifwrapped, or email support@gifwrapped.co, and I'll get back to you as soon as I can.

Jun 06
Version 2020.7

There’s nothing like a string of unrelated events that take what was intended to be a smallish release focused on resolving a handful of bugs, and just blowing it out into a huge release with a bunch of additional features and enhancements.

Now if you’ll excuse me, I need to collapse.

- Some of you may have heard about a ginormous data-sucking monster buying Giphy, a.k.a. the search engine that powers GIFwrapped's search. In response, I feel a significant need to drop them like a hot coal, so I started by adding Gfycat and Tenor as alternatives, and then straight-up switched the default to Tenor (which is owned by Google… so only slightly better). For what it’s worth, you can still access the others: just include the bang !gfycat or !giphy with your search, and GIFwrapped'll use the respective engine for your search.

- Ad networks suck for various reasons, but ads have always been a part of GIFwrapped's strategy, so I decided to swap out the big, skeezy ad network for some home-rolled code. There’s still a lot of work that’ll happen with these behind the scenes, but my aim is to have a variety of ads that honor your privacy and supports independent creators.

- As if I needed more to do, Twitter went and updated their website in such a way that it broke my ability to parse tweets in search of their sweet GIFs. Anyway, solving this was two-fold: websites are now loaded using a hidden WKWebView so that any javascript can run as desired, and then my tweet parser should now also handle the updated markup.

- I've had a decent number of emails and tweets telling me that the app would lock up during saving, deleting, or practically any situation where the library contents are being modified. This is a really tricky issue to solve, especially when I can't replicate it on my end, but I took a dive into my threading and locking code to try and alleviate any potential pain points I could find. Fingers crossed, I guess?

- When using Dropbox, library changes weren't properly getting pushed to the server unless an image was accessed or modified, which is sorta weird, and not entirely desirable. It should now make an attempt when sync is first started up, just in case.

- In other Dropbox news, the library wouldn't get cleared out properly when disconnecting, likely due to some incredibly minor change that happened months ago and flew under the radar. Love it or hate it, this is the intended behaviour, so I went in and fixed it up. Please throw your tomatoes one at a time.

- Fun fact: the main UI actually has two separate search bars that are kept in sync. One lives in the "drawer", and the other is popped into and out of the navigation bar as needed on iPad. Problem is, they could get into scraps over whose job it was to perform a search, causing a crash. Here's hoping they play nice going forward.

- Malformed paths were still a thing that I was seeing errors for, and it turns out that, while implementing my "fix", I fell for the same ambiguity that caused the issue in the first place. Good news is that I was able to fix it properly this time, and I also took a moment to clear up the ambiguous code, to avoid this sort of nonsense happening again.

- The preview transition where the image grows out of the grid view was a little… wobbly, and showing a few cracks here and there. So I took a closer look, and fixed a few small details that add up to a much smoother transition that uses significantly less memory. You're welcome.

- Thumbnails got a a little lovin' as I delved in and refactored the system that manages their creation and storage to make it easier for me to follow, and thus work better. I also made it a nice coffee, so it should hopefully be less likely to jam up or drop images now.

If you come across any issues with the app, I’m here to help… or at least listen, and then disappear while I head off to try and resolve them. Tweet @gifwrapped, or email support@gifwrapped.co, and I'll get back to you as soon as I can.

Apr 27
Version 2020.6

I’m back yet again, and attempting to resolve a number of problems that have been bothering people… and also some that weren’t.

- I doubled the number of alternative app icons available to Premium subscribers, mostly by adding a bunch of colour variations. There’s also a new screen that shows up in the Settings screen (again… for Premium subscribers), making the option a little easier to find.

- I (finally) added a full Search History list to Settings for Premium subscribers, with all the sweet functionality you'd expect. That should make it a little easier to manage.

- Keyboard shortcuts for the preview screen stopped working at some point, so I jumped in and wired them up again, adding some new ones to support the new paging feature while I was at it. What can I say? I'm a giver.

- Normally my philosophy is "I don't support iOS betas", but I was seeing a truckload of pointer-related crashes from people continuing to use early iOS 13.4 betas, even after it was officially released… and couldn't escape the emails/tweets. So I fixed it. Please update your dang phones.

- A previously-resolved bug seemed to have let some "malformed" names through when renaming entries, and despite resolving the issue itself, there were a handful of sync issues that resulted from these bad paths. I added some workarounds to help resolve these, so hopefully it should all balance out now.

- I've had one user in particular who has been struggling with a crash on launch that has been real hard to nail down. I went through my crash list, identifying and resolving a bunch of crashes… but knowing my luck, they’ll still have problems. I'm doing my best, promise!

If you spot any problems with the app, please be sure to let me know. Tweet @gifwrapped, or email support@gifwrapped.co, and I’ll be sure to take note.

Don’t forget to wash your hands!

Mar 25
Version 2020.5

Back again! Had a couple of tricky bugs to figure out this time around, and took the opportunity to add some of that sweet, sweet pointer action that you can do on iPad now.

- Took a pass at the low-hanging fruit around hover gestures on iPad, mostly hitting the spots that already had arrow key support (plus a couple of extra spots where it made sense). I'm sure there's more that can be done, but it's a great start.

- A few people (more and more) have been seeing a crash on launch which I just couldn't get enough information on to properly fix. Managed to sort the information part out in the last release, which allowed me to nail down a potential cause and resolve it. I'm basically a detective now.

- Chonky GIFs are and always will be problematic for me (due to their extra-cuddly size), and most recently they were blocking the UI for a moment when loading, which became real apparent when swiping through previews. One of the heaviest parts of loading a GIF is decoding the data, which the library I use does on the main thread (where UI stuff is done), so I moved that to a background thread and it feels muuuuuuch smoother now.

Until next time. Stay safe out there!

Mar 13
Version 2020.4

Small update this time around, to attempt a quick turnaround on a couple of bugs that were causing people headaches. Sorry about that, y'all!

- To get the preview transition animation right, the two screens involved compare notes on where the image comes from. If paging is disabled (like because it's a premium feature, and not everyone has Premium?), the two views can have _very_ different ideas, and this caused significant problems. I helped the two calm down and talk to each other, so it should be ok… for now.

- I'd made some last minute changes to the diffing used for the bookmarks view (it was custom, and I wanted to rip it out in favour of DifferenceKit, yes I know iOS 13 has it built in, get off my back MUM), and it made it so that clearing the clipboard would mess up the updates and crash. Anyway, it's fixed now, go team!

Hope you've been washing your hands. Until next time!

Mar 09
Version 2020.3

Continued tracking down and tackling bugs over the last few weeks, and finally figured out the solution to some stuff that was stopping me from shipping a great new feature… so if you thought I'd gone quiet, you couldn't be more wrong!

- Finally got around to putting the finishing touches on a new premium feature that has long been requested: the ability to page through images on the preview screen. Needs an active GIFwrapped Premium subscription to use, but it's pretty great for throwing caution (and data limits) to the wind, and flipping through a bunch of search results.

- Migrated my analytics stuff from Fabric to Firebase, as the former is going away soon, and I'd been putting off doing the transfer. The privacy policy got an update to match the changes, but in reality nothing has _really_ changed: Google owns both and/or our very souls.

- The logs captured while running GIFwrapped really only get captured when the app crashes, which makes them vaguely useless for like 90% of issues that people run into. For ages, I put off switching to using a third-party logging framework (CocoaLumberjack, for those who care), and then it ended up taking like an hour to implement, so it seems that all that fear was for nothing.

- Something changed with Dropbox downloads recently, and it caused PNGs and JPEGs to go all screwy. The issue appears to have been a mix-up in how the download's file type is determined, so I made some tweaks to resolve things, and it should work properly again. Phew!

- In order to reduce the duplication of cached images for iCloud, it has its own special caching layer that utilises iCloud’s storage directly. This is awesome, but had the side-effect that the Storage screen wouldn't report the amount of space used by on-disk files, which is less awesome. I adjusted the behaviour for how this works, so now the numbers should be accurate across the board.

- The ordering of results from Photos didn't really make much sense, which I've somehow been noticing more and more. Turns out it was due to some oversights in the order I specified when fetching photos, so after a quick tweak to sort by the date an image was "created" (and not just "modified"), things are looking much more logical.

- If I'm honest, the text field used for renaming GIFs needed a clearer way to finish editing than just hitting the return key, so I added a "Done" button that lets you cancel without having to resort to tossing the device out a window and buying a new one.

- The logic around detecting (and avoiding) duplicate file names while renaming was just straight up broken, which could allow for duplicates to be introduced into one's library. One does not want this, so one fixed it.

- When using iCloud, the info screen often wouldn't display the full spread of details about a GIF. Obviously, this isn't cool—especially since many are considered a premium feature—so I introduced fallback sources for 'em, ensuring that fields have multiple chances of loading up their particular piece of information.

- Apparently when switching over to context menus, past-Jelly didn't bother to make the subsequent share sheets show up from the right location, which is fine on iPhone, but it looks a little weird on iPad. I jumped in and did past-Jelly's job for him (again), so they should be presenting from the right location now.

Thanks to everyone who has been letting me know about bugs and problems, sometimes I fail as far as replying to the email/tweet/what-have-you, but I'm always listening. If you'd like to reach out (I'll help where I can), you can tweet @gifwrapped or email support@gifwrapped.co, and you'll have my ear.

Until next time, remember to wash your hands regularly!

Jan 12
Version 2020.2

Guess who's back, back again? It's GIFwrapped, with some more bug fixes (tell a friend).

- A change to how windows are handled in iOS13 seemed to make it so that they aren't automatically held onto when presenting alerts in them, which made the image deletion prompt relieve itself of duty prematurely. I made a quick tweak to ensure that the window is kept around, and things are once again working much more like one would expect.

- When renaming GIFs, the sync engine could get stuck in a loop of attempting to update the server; it would actually work the first time, but the local metadata wasn't being updated with the change afterwards, so it'd just keep trying over and over. I added an extra line to force the metadata update for that particular piece of information, and now it's working as expected again.

- The status bar was going dark when opening the in-app settings screen, which is one of those very minor visual bugs that I just can't abide. After taking a look, I realised that I no longer need the hands-on approach to status bar management I'd previously had, so I got to delete some code to fix the issue. DANG THAT FEELS GOOD

- Speaking of incredibly minor visual things, the user guide's search bar was bothering me, in that it was showing as a _very_ faded looking version of the colour it was intended to be. I tweaked the appearance to try and make it a little better, and now I'm… well, not happy, but definitely a little less irked.

Remember: always wash behind your ears… and that if you want to let me know about any issue you're having, you can always tweet @gifwrapped or email support@gifwrapped.co with the issue. It helps make things better for everyone!

Jan 08
Version 2020.1

It's a new year, a new decade, and a new GIFwrapped version! It comes complete with a new versioning system that puts less pressure on me to produce big feature releases, and should go along nicely with the subscription-based pricing that GIFwrapped has been using for a while now.

There's no better way to kick all of this off than to improve things with a number of hefty bug fixes, so without further ado, here's the list of changes in the first build for 2020!

- The copyright notice on the launch screen got a tweak. Happy new decade, everyone!

- I heard you like dark mode, so I put dark mode in your dark app, which makes those previously white alerts and share menus lovely and dark (like my soul).

- Given the switch-over to context menus in iOS 13, it seemed only fitting that GIFwrapped replace it's custom long press menu with a fancy context menu, now available both from the grid view and the preview screen. They do have some weirdness with animating the image preview, but that's a problem for future-Jelly to figure out.

- There seemed to be a number of iCloud connection issues somehow related to phone changes/upgrades, and upon further investigation I discovered that the warning wasn't being triggered to allow for automatic re-connection, so I adjusted the logic so it's displayed properly, and hopefully I won't need to stand in for it it on Twitter any more.

- Some wiggly ghosts were occasionally accusing other wiggly ghosts of disconnecting Dropbox, when it was just that iCloud had been enabled instead. Lotsa finger pointing, mostly about nothing. I added some logic to make sure things get cleaned up properly, and you shouldn't see this warning any more… unless it's actually legit.

- Somehow I hadn't activated a "read-only" mode for iCloud sync that kicks in under very specific circumstances (extensions in particular, where memory is very limited). This would cause issues with the sync potentially happening while trying to perform other tasks, so I fixed it up, and it shouldn't happen again.

- Under certain circumstances, an item in the grid view would start it's loading animation but never stop it, causing it to spin forever. This was due to the expectation that the cached file would change, which didn't always happen, so I added some backup logic, and it shouldn't get stuck in a loop stuck in a loop stuck in a loop stuck in a loop stuck in a loop any more.

- GIF conversion was occasionally bumping into memory limits when using Save to GIFwrapped, which could cause the whole thing to crash without finishing its job. I dug into the logic for how the various frames are handled after capturing them from the video, and it seems to have done the trick, reducing the load and allowing a little more headroom for super frame-heavy GIFs.

- Apparently Twitter started including text when sharing tweets from its app, which would sneak through and then fail to be handled as a URL, causing an error that wasn't necessarily valid. I added a little extra code to handle these strings separately, so the error shouldn't be popping up any more.

- In certain cases, when an image was opened, it triggered a change that caused it to be hidden from view until the next time the app is launched. Obviously errors aren't great, but neither is this behaviour, so I fixed the issue causing it, and now images with errors won't go missing. Yay?

Thanks for continuing to use GIFwrapped! If you like using it consider leaving a review on iTunes, and subscribing to GIFwrapped Premium wouldn't go astray either. You can also reach out to me on Twitter @gifwrapped, or via email at support@gifwrapped.co… I'm always working hard to improve the app, and I'd love to hear your thoughts.

Until next time!

Sep 11
Version 2.0.5

Here come another set of bug fixes and… uh… performance improvements, ready to make life a little easier when wielding your favourite GIFs.

- For the last few releases, some users have been seeing a crash on launch that I just couldn't figure out. It turns out the cause was that some libraries contained images with duplicate identifiers (something that GIFwrapped uses to manage an image on-device). This isn't supposed to happen, but apparently it had, so I put some measures in place to allow the duplicates to be gracefully ignored, and no more crashes!

- A seemingly minor (but ham-fisted) change in a recent release meant that a number of users were seeing a problem where their Library would seem empty, but really it was just taking its sweet time to load things up. I reverted the change and made a different attempt at fixing the issue that I'd originally been trying to resolve, and the behaviour should once again be back to normal.

- I had also heard rumours about libraries appearing empty for an entirely different reason, and it turns out that on rare occasions, GIFwrapped would identify the type of a GIF to be some private Apple nonsense instead of the standard affair. Because GIFwrapped doesn't declare support for the former (I didn't know it existed), it "helpfully" filtered those items out of the Library, so I made a change to link the two types, and that should resolve this episode of the case of the missing GIFs!

- When an error was being displayed, the preview screen could act a little funky: if you opened the info panel, the message wouldn't get out of the way like it should. It looked weird, so I fixed it.

- When launching in split view on iPad—if using a version of iOS that we're not going to mention—there was a crash that would occur due to a method call that happens much earlier than it's supposed to. I added some checks for when things haven't finished loading up, and we can forget about this one for now.

- I had to pull out Sentry, an alternative crash-reporting system I'd been trialing in the last few releases (since the launch of 2.0), due to its cost being untenable. This doesn't mark the end of my attempts to move away from Crashlytics in the long term, but it's the best solution for the moment.

Thanks for using GIFwrapped, and taking the time to check the release notes! Please don't hesitate to throw an email towards support@gifwrapped.co with comments and problems, or hit up @gifwrapped on Twitter.

Aug 21
Version 2.0.4

Many, many users have been letting me know about issues with saving and deleting over the past few weeks, and while I've been quiet, I haven't been idle. I've spent the last few weeks pulling apart the problematic code and rewriting parts to try and ensure that the bugs were fixed: hard work when you're unable to reproduce the problem!

With that in mind, this update brings a series of fixes that should ensure that GIFs are correctly saved and deleted as appropriate. My understanding of the situation is that for many users, changes made to the Library weren't being properly saved, which meant that they would revert after a relaunch, and changes made in an extension would never make it back to the main app (and vice versa).

If you're still having troubles after this update, please don't hesitate to throw an email towards support@gifwrapped.co, or hit up @gifwrapped on Twitter. I do my best to stay on top of everything, and I'll be glad to do what I can to help you out.

Jul 12
Version 2.0.3

Hello again! I know I've been quiet for a few weeks, but I'm back again with an update to fix some issues that many of you have graciously let me know about. Thanks for being patient while I worked on them, some of them required extra digging!

- Getting iCloud sync to work with the existing Library has been a challenge, and I've been finding that occasionally it'll throw up on itself and then roll around on all the good furniture. I took a pass at improving my handling of various edge-cases, which should hopefully reduce the issues and make the whole experience much more stable all around.

- In semi-related news, when turning iCloud on and/or off, the stored preference was being changed but the rest of the code wasn't getting the message (literally). The problem was that I had inadvertently caused the piece of code that notifies everyone of the change to be skipped entirely (you might think it's simple, being just a toggle switch, but it actually hides many layers of complexity… like an onion?). In any case, I've reworked that code so things are working as expected again.

- Save to GIFwrapped was having issues when trying to save items, often getting stuck and requiring the host app to be relaunched, other times not actually saving anything at all, and sometimes both! The culprit seems to have been a threading issue (because they all are at the moment, FML), but after one little tweak to the code, it's all patched up and ready to save again.

- The storage used for keeping Library-related values wasn't being accessed in a way that was entirely legit (which happens when you're working against the clock), and thus was causing more crashes than I would like. After re-thinking some of my formerly hasty decisions, I've managed to make things a lot less problematic, and thus more stable.

- Using the Retina option for Pixel Density was a little wiggy due to the image size not respecting the zoom scale when first loading up. A quick change to adjust the size has got that sorted out, and now you can look at your tiny, tiny GIFs at their beautiful tiny, tiny size.

- The API used to render user guide articles was deprecated a while ago, and I hadn't even noticed. I moved things over to the newer APIs, which is less of an improvement for all of you, and more of a quality of life thing for future-me.

- The grid view wasn't grabbing image metadata from the source of truth, and instead would end up using its own copy and thus doing some really weird stuff. I think I'd originally done this because doing lookups would be slow… so I changed it back, but also added some indexing to make sure it's still nice and quick.

- One user was experiencing crashes over and over again due to an item somehow being stored without a modification date. When GIFwrapped would try to read the item from disk again, it'd freak out… but I've calmed it down, given it some camomile tea, and it shouldn't have problems anymore.

I'm here to help if you find yourself running into problems while using GIFwrapped, so just toss an email at support@gifwrapped.co, or hit me up @gifwrapped on Twitter.

Have a great day!

Jun 01
Version 2.0.2

The quest to stabilise v2 continues with a bunch of additional tweaks and changes to alleviate various crashes, failures to launch, and straight up freezing. I know these problems have continued to affect many of you, even after I patched a number of problems, so thank you all for being patient while I worked on sorting these new ones out.

- The iCloud on-boarding was being unnecessarily displayed if the Library's metadata hadn't been loaded in time to determine if it was necessary. To resolve this, I've forced it to wait for the metadata to be ready, and otherwise added a flag so if you see it once, you'll never see it again.

- Opening images from Files.app was a little weird under certain circumstances. I made a small change that should ensure we correctly handle any downloading that needs to happen in the background, so the app doesn't get stage fright and freeze up before displaying the image.

- When searching (by actually hitting the Search key), the queries were often being run twice: once to grab the result prior to displaying them, and then again, upon actually displaying them. This was caused by the status of the first query being cleared out when dropping the items into the UI, so stopping that from happening quickly sorted things out.

- Search wasn't always showing useful errors… like if GIFwrapped doesn't have permission to access Photos, or if there's no internet. This didn't make sense to me, so I tracked down the underlying problems and fixed them, resulting in an overall much improved search experience for all!

- The Library's messages about having no results were at best unnecessary, and at worst confusing as all get out. I've stopped it from displaying when there's more important content (like actual results), and tweaked the copy to better indicate how one uses the new universal search bar.

- While working on other issues, I stumbled upon a small piece of code that could potentially cause big lockups, due to reading files from the main thread (definitely a no-no). Under the best possible circumstances, it should only ever have caused a little stuttering when scrolling, but that sort of thing has a tendency to balloon out… so I fixed it.

As always, I do try to be available if you run into problems while using GIFwrapped, so just toss an email at support@gifwrapped.co, or hit me up @gifwrapped on Twitter. I'm here to help!

May 29
Version 2.0.1

…and we're back! Overall, I'm putting last week's launch of GIFwrapped 2 down as a great success. There was an overall positive reaction, and I'm really thankful that you all like it.

Of course, that doesn't mean there hasn't been troubles, and with the help of a number of amazing users, I've spent the last week working hard to get things into an acceptable state so y'all can stop dealing with crashes and get back to the GIFs.

So without further ado:

- Mass-uploading GIFs to iCloud—something that was happening a lot, given that it's a new feature—was resource intensive in the most ridiculous way, because I made the mistake of not corralling it, result in GIFwrapped trying to upload everything… all at once. After putting some limits in place, it's now slower, but at least it's not going to go hard and die trying.

- If iCloud didn't manage to get all the way through uploading the Library contents (you know, because of crashes?), it'd end up starting over again, and thus any items that had managed to get uploaded would get duplicated… sometimes a lot. Dealing with the original file properly, and updating GIFwrapped's internal metadata, should ensure that this doesn't happen any more, which is honestly a relief for everyone involved.

- The iCloud on-boarding screen wasn't checking whether it was already connected if you went back and tried to continue through that screen again. That's obviously not ideal, so I added the check, and now you can zoom around the on-boarding screens with no regrets.

- It turns out that MoPub's privacy policy screen is disabled when Limit Ad Tracking is turned on (totally worth doing FWIW). I wasn't aware of this, which resulted in _my_ screen still being shown during on-boarding, and thus blocking people from getting into the app. One quick check later, and y'all should be able to get right on in now.

- After saving a GIF to the Library, the UI could find itself frozen in place, unwilling to move in fear of the monster returning. Also partly because there was a threading issue causing a deadlock, so I had a go at making a few more things asynchronous, and hopefully it should be running much smoother now.

- The Info screen's name field wasn't being updated appropriately after renaming an image, which is just straight up unsettling (and a little awkward). Turns out I hadn't updated the relevant code when introducing the new screen for renaming and moving, so I did that and BAM! Solved.

- Importing from the Inbox was being run unnecessarily. This is an old method for importing to the Library with the share extension, and it's not really used anymore, so it's somewhat pointless to run it every time. I sat Turbo on it, and now it can't get up. Cat gravity!

- When using iCloud, the Sharing Links option in Advanced settings would incorrectly reference Dropbox. This was just an oversight, but I was able to fix it up thanks to some eagle-eyed users with a thirst for adventure!

- If the drawer was open all the way, and the bookmarks view wasn't all the way at the top, trying to drag on the little handle to close the drawer just wouldn't work. A very minor tweak to the drawer's expectations of when it should stick to the top, and it's now working as expected!

- With a long enough list of folders, the name field of the "Move to Folder" screen could get in the way of the last couple items, which can be a giant pain. The list just needed a gentle nudge so it could scroll clear of the field, and now all your ZZ Top GIFs can be moved to their appropriate home.

Thanks to all of you for using GIFwrapped! As always, I'm here if you're running into problems, so just toss an email at support@gifwrapped.co, or hit me up @gifwrapped on Twitter. I'm here to help!

May 22
Version 2.0

If you've been paying attention, you'll know that I've been working on a huge update for a long time now. For the past few years (yep… YEARS), I've been working away at taking GIFwrapped towards a brand new version, and finally… IT'S HERE.

You have no idea how amazing it feels to say that!

- Say goodbye to tabs, and hello to a sweet universal search that makes finding the right GIF that much easier. Bookmarks and categories now apply across the board, and make it that much easier to find the GIF you want. It might not change your life or anything, but it's still a massive improvement.

- The preview screen also got some much needed love. It might not look like much right now, but it has a few goodies hidden away (and some that I'm still working on). Be sure to check out its much improved ability to rename images in your Library… and organise them into folders!

- It's been a long time coming, but it's finally here: the Library can now sync with iCloud. If you've been using Dropbox, you'll need to switch over manually (you'll also need to move your files over manually, as GIFwrapped won't do it for you). If you've never used sync before, you should find it to be a huge improvement.

- In the post-iTunes age, it's more and more painful to try to access recovered files from iTunes (though still totally possible, just saying). As such, I've gone ahead and enabled access via the "On My Device" section of Files.app, which provides yet another avenue for accessing the "iTunes File Sharing" folder… and thus importing to your Library.

- If you've ever felt a bit naked with the clipboard contents hanging out in the Search tab for all to see, you can now clear it out with a quick swipe. If only things were always that easy to get rid of.

- The caching layer has gotten more and more complex over the last year or so, as I attempted to improve its overall speed. As part of doing so, I managed to introduce a pretty significant race condition that was causing a crash on launch. Spent some time rebuilding the problematic parts, so it should be pretty solid now… and just as quick.

- I spent a little time improving the code that parses Twitter URLs for their juicy GIF content, which has made the results produced by it so much more useful. Instead of just sharing the original post's details, things like the file name and sharing URL are actually representative of the tweet they're actually part of. Should it always have been this way? Probably yes.

- Using Save to GIFwrapped on tweets was fraught with issues: the list of GIFs returned wasn't as good as it could be, and then sometimes it'd save a GIF reply to the video you'd attempted to save (which isn't supported). Some adjustments to how URLs are handled means that you shouldn't end up inadvertently saving the wrong GIF any more.

- Sorting your Library by name occasionally differed from what you might expect, because it didn't use natural number sorting, so it'd end up with 1, 10, 11, 2, etc. A quick change to use the same sorting you'd get in Finder made short work of that. I like it when a bug fix takes one line of code.

- The icon selector for Premium subscribers was causing some issues, so I embarked on a whirlwind attempt at rebuilding it from scratch, simplifying a few elements as I went. Because that makes sense.

- In an effort to feel less gross when collecting data about crashes and general issues throughout GIFwrapped, I'm trying out a different crash reporting service called Sentry. Right now it's running side-by-side with Fabric/Crashlytics, but if everything goes well, I'll look at ditching that altogether, which would be amazing.

As always, if you have any problems, want to suggest an idea, or are just keen to let me know how much you enjoy GIFwrapped, you can reach out to me by emailing support@gifwrapped.co, or hit up @gifwrapped on Twitter. In the meantime, I hope you enjoy this new version of GIFwrapped, I think it's truly my best release yet.

Feb 25
Version 1.7.9

I know it's been a while… at least a couple of the bugs this release hopes to address have been causing people grief for a few weeks while I did my best to get to them, so maybe now is a good time to mention that the GIFwrapped Premium subscription is what helps me be able to dedicate time to fixing bugs and building features.

Without my subscribers, I am but a code monkey out of time. This release can happen thanks to YOU.

- An oversight in the sync code was causing images to be deleted when the Library's contents was plastered over the top, causing a handful of people to lose their hard-earned collections (I'm really sorry for this, please get in touch if you haven't already). Some changes to the sync logic should ensure that this doesn't happen again, but if it does, I've put other measures in place to allow the lost items to be recovered via iTunes File Sharing.

- Under certain conditions, renaming files could cause duplicates to appear in the library unwittingly. As it turns out, it's because after the change was pushed to the server, the local copy wasn't updated, and things would go downhill from there so very quickly. A quick tweak to ensure the change was properly saved, and things should be much better now.

- When renaming an image, Dropbox would unnecessarily clear it from the cache and download it all over again… not an ideal scenario. I fixed a couple of places where the current revision wasn't being updated, which had it sorted it out pretty quickly. Maybe… too quickly?

- There was a crash in the Search tab that was slowly getting worse with each new release, and it had me entirely stumped. When it finally happened to me while I was working on a separate bug, I was able to properly investigate. This allowed me to find a potential cause, and hopefully sort it out once and for all.

- There was a minor issue blocking file recovery from happening when it was manually triggered. I resolved the issue, and made it so that opening the iTunes File Sharing option in the import menu causes recovery to be run automatically, which is actually kinda handy.

If you're having issues, want to share an idea, or just want to gush about how GIFwrapped sparks joy for you, don't hesitate to reach out! You can catch me by emailing support@gifwrapped.co, or over on Twitter: @gifwrapped. I'm here to help where I can!

Jan 11
Version 1.7.8

This update is small, but powerful… it's been a busy week as I've powered through all the bugs I could get my hands on, and bringing everything back up to snuff. Thanks for being patient while I sorted it all out, you're the best!

- A small bug in the updated Dropbox engine caused sync to happen in app extensions (like the Messages app) instead of in the app itself, resulting in many users experiencing a "Waiting for Dropbox" issue. I've fixed the bad code, so it should be all good now… we can all get back to waiting for Godot instead.

- A bug report about duplication of images added to the library took me down a the rabbit hole of how downloads are handled in certain cases, and eventually lead to improving the performance of downloads overall, while also fixing the reported bug. NICE!

- Saving GIFs from the share extension could some times result in no file extension being added (the .gif part), which has all kinds of implications. Fortunately, I was alerted to this travesty… and thus the issue is hereby resolved. Thank you, and good night.

- Did a bit of a minor overhaul of how updates for the grid view are prepared, which should hopefully improve their reliability a bit. I was seeing some super rare (but annoying) crashers pop up, and honestly I just wanted to play something other than whack-a-mole for a while.

Remember, I'm here to help! Comments, complaints and support requests can be sent via email to support@gifwrapped.co, or you can hit me up @gifwrapped on Twitter.

Jan 03
Version 1.7.7

Nothing like starting off a new year with a new update. There's more coming incredibly soon, but this prepares the way for things by resolving some bugs, and making some under-the-hood changes that are needed for upcoming features.

- I went through and made a significant number of changes to the structure of the Library sync engine to prepare for… clients other than Dropbox. This probably isn't 100% yet, but then… when is anything? Throwing incomplete stuff out there is what I'm best at!

- I've expanded the usage of the dialog prompting you to manually reconnect to Dropbox so that it handles more cases, including some where reconnection used to happen automatically. You can blame the wiggly ghosts for this minor inconvenience (their specialty).

- If downloaded configuration files were newer than the ones bundled into the release, they'd be skipped, causing features to potentially break. Not ideal, but a quick modification date comparison sure sorted that out. TAKE THAT SUCKA

- The new pre-show stuff that runs on launch was causing issues with URL schemes, because the app needed a moment to be ready to handle the URL, and iOS is super impatient. A quick addition to the code, and URLs will now be handled regardless of how long it takes to GIFwrapped to get ready. Progress!

- I wanted to remove the old upgrades from sale, but turning 'em off caused people restoring their purchases to experience crashes. Not ideal, so I dove into the code around in-app purchases and made it possible for me to properly remove 'em from sale at some super-distant point in the future.

- The mysterious custom URL option was a little too eager, allowing invalid configuration to lead to confusion, so I took a look at things, and tweaked 'em so that there'd be even more confusion. I mean, it IS in the advanced section of the settings, what the heck are people expecting here?

- As it turns out, when using a team account for Dropbox sync, the team name was getting duplicated… but I had no idea. Who knows how long this has been a thing. Maybe since the very beginning?!?!!? GOOD WORK JELLY

- An issue with the library's contents taking just slightly too long to be loaded was causing the preferred sort order to be ignored, which isn't ideal. A couple of tweaks here and there mean the app's load time might be a tiny bit longer for larger libraries, but the tradeoff is very worth it.

- Somehow, past-Jelly didn't stop to think that, if the thumbnail has failed for a particular GIF… maybe it's a good idea to try loading it again after downloading the GIF itself? Anyway, it does that now, so you can look forward to less cells displaying errors in the grid view. Hooray!

- When getting to the end of a paged set of search results, the indicator wasn't being properly removed. This was due to the conditions only taking the final page into account when comparing the number of results against the total available, but now it's taking into account the offset, so we're all good here; just bread for the table THANKS.

- Downloads started by one sync client weren't being properly cleared out, so when connecting another, you could find yourself in a limbo where there's a bunch of downloads waiting to finish that can't. One little chat with the dead later, and we should all be able to move on to a better place.

As always, comments, complaints and support requests can be sent via email to support@gifwrapped.co, or you can drop a line to @gifwrapped on Twitter. I'm here to help!

Have a great 2019!

Sep 07
Version 1.7.6

If anyone ever wondered whether people actually use Messages apps, the answer is a resounding HECK YES, as demonstrated by the sheer number of emails, tweets, and carrier pigeons dispatched to let me know that it wasn't working.

- The order of operations somehow got mixed up when loading the Messages app, which… well… broke the Messages app, and stopped it from loading entirely. Not an ideal situation, but totally resolved now, so you can get back to sending those GIFs you had all pent up.

- The import menu found in the upper left corner of the Library was crashing on iOS 10. Turns out disabling the iCloud entitlements entirely was a bad move, so I've gone for a middle-ground solution, and voilà! It works again!

As always, comments, complaints and support requests can be sent via email to support@gifwrapped.co, or you can drop a line to @gifwrapped on Twitter. I'm here to help!

Sep 03
Version 1.7.5

I know it's been a little while since the last update, and while things are pretty stable (as far as I'm aware, anyway), I wanted to drop a sweet bug-fix update on y'all. Because why not, really. It has a couple of bonus bits that I figure you might appreciate as well. Enjoy!

- If you've ever wanted to grab your entire library and send it off somewhere, you're in luck. I've added an option in the Storage settings to export all cached images from the Library as a zip file, which pops up a little share sheet to do whatever you want. Couldn't be simpler.

- In an effort to improve its overall consistency, I've moved stuff to do with migration and cleaning up so it happens prior to loading up the UI. All going well, you won't see much of it right now, but I'm gonna be making use of this when the next major version drops, so… stay tuned?

- I tweaked the the Search tab's clipboard button so spaces are trimmed and multi-line items are ignored. You can still paste the old way if you care a whole lot, but this should make the button a whole lot more useful overall.

- There was a race condition in play where multiple updates to the grid view happening at once could cause a crash, because the underlying information would end up out of sync with the UI for a brief moment. I made some minor changes to how this mechanism works, so there shouldn't be any more of that going on.

- If you tried opening the alternate icon selector on iPad when GIFwrapped was in a tiny column, it'd get a bit confused and end up missing a couple of icons (or worse, laying them out all broken-like). After digging into how the layout is computed and updating it in a few places, it should be all good going forward.

- People flipping the "Keep images on device" switch on may have been vaguely confused by the fact that it would download a batch of images, but then just kinda give up. This was due to a really stupid logic bug which stopped things from being notified when a prior download had finished, which I sorted out the instant I stopped face-palming.

- Screens on iOS 10 and lower were missing the insets needed to align content with the bottom of the navigation bar, which made it impossible to properly access things that got stuck underneath. Thanks to a user's email and some code to properly calculate the insets, things are finally working properly again.

- As it turns out, migration just straight up wasn't happening from a couple of different old versions, so I went in and fixed things so it'd work properly. Not because anyone is even going to be upgrading from those versions at this point, but just because I like to have my bases covered.

- Editing a GIF from the Library remotely wasn't causing the cached copy to be discarded and re-downloaded, which meant it'd end up out of date. There was actually a couple of things that were causing this behaviour, so I sorted 'em both out, and now everything should work as expected.

- At some point, I managed to disable the preview screen's rotation functionality… and had no idea because apparently I don't use the feature that much. Either way, it's all sorted now. Rotate away!

- An oversight in the code for detecting downloads in the Save to GIFwrapped extension could result in being able to download images multiple times, which isn't super ideal. A couple of tweaks here and there, and it should be pretty solid now. If only things were always that easy, amirite?

- At some point, the way the Photos tab updates its content got messed up, causing crazy looping refresh cycles, duplication within the UI, and making a right mess of things. It happens sometimes… but not any more! As a certain demi-god would say… YOU'RE WELCOME.

If you're having trouble, or would like to make a suggestion, you can reach out to me via support@gifwrapped.co, or hit up @gifwrapped on Twitter. I'm here to help… or possibly asleep… but mostly the help thing, I swear!

Jun 01
Version 1.7.4

The most recent update included a couple of nasty bugs that caused a few failures here and there, so I've done what I can to patch 'em up and make things nice and reliable again. Thanks to everyone who reached out, and sorry this took so long to resolve (it was a tough one)!

- In fixing the upgrade unlocking problem in the last release, I ended up specifying the wrong upgrade to initially unlock Premium/All the Things upgrades. This would've been fine, except that it meant GIFwrapped would think the icons feature wasn't unlocked for a brief moment and would reset. PROGRAMMING IS FUN YOU GUYS

- An issue with recognising the "t.co" URLs used by Twitter was causing GIFs embedded in tweets to not be handled correctly, partly because I told it not to handle results from domains it didn't recognise. I fixed it on two fronts: by unwrapping the URL properly, and also by building a time machine, going back in time, and smacking myself in the head very hard.

- When the Library entries were being updated—usually from sync, or potentially the adding of a new one—the updated list wasn't being filtered, which becomes a problem if you're in the middle of searching when new stuff gets dropped in. By adding a step to filter the incoming entries before updating things, the filter is once shown a little R E S P E C T (just a little bit).

- The recent addition of new icons managed to surface the fact that these controls were being loaded at launch, and in the case of the icon selector, were taking a tonne of time to do it. I did two things to fix this: reduced the load time for the alternate icons, and made it so they load only as required. SO MUCH BETTER

- In an ideal world, Apple would provide a way to determine the security requirements for things on the clipboard. Until that happens, I've gone ahead and added a preference (in Settings > Advanced for the time being) that allows you to disable the display of the clipboard contents in the Search tab bookmarks, if that's a thing you want to do.

- By doing a little digging around, patching some stuff up, and tossing out anything that was totally extravagant, I've managed to improve performance by a small percentage. I'd give you a fancy number and a line graph of some kind, but my printer's on the fritz, so you're just gonna have to take my word for it.

If you're having issues, want to chat, or have a brilliant idea, you can call me call me anytime. Well, maybe not call, but if you send an email to support@gifwrapped.co, or tweet @gifwrapped, I'll be around to help as soon as I can!

May 24
Version 1.7.3

Part bug fix release, and part attempt at being GDPR compliant (new European privacy laws, for those not in the know)… this release has a bunch of fixes and additions that I jumped on while avoiding the pile of other work I have to get done for the upcoming version 2.0.

And yes, there's a LOT of work to be done. So you can probably expect a few more "procrastination updates", I guess.

- The advertising provider I use (MoPub) have launched the ability to disable personalisation of ads, a.k.a. added features to conform to GDPR requirements. If you don't have Limit Ad Tracking turned on (and let's be real: you should), and you're not a Premium Member (again: you should be), you'll see a dialog to allow you to change your preferences after the next couple launches. Bonus: I've disabled ads until you see said dialog.

- An error in calculating the number of results to request for searches was causing iPads to display zero results. Combined with some additional issues causing subsequent pages to not be loaded meant search was really heckin' broken on iPad. Thankfully, I managed to sort out the underlying problems without too much trouble, and things are once again back on track.

- The share extension was crashing anytime it needed to present a selection of results, because it was trying to do so in a way that it wasn't actually supposed to. After some rearranging of the code, and a handful of delicious pretzels, things are back to how they were intended to be. GOOD AS NEW

- The underlying code for downloading GIFs from Tweets was going a little crazy when using the share extension in Safari, trying to handle pages it wasn't supposed to. I managed to get it to step things down a notch, and now it should only handle the stuff it's meant to.

- Premium subscribers just got a whole bunch of new alternatives for the app icon, and while I was dropping those in, I made it so selecting an icon will now give you a nice little bit of haptic feedback to say, "Hey, you there, I think you're kinda excellent and I believe in you." Also, to let you know that it's registered the selection (as if the terrible dialog wasn't enough).

- In my continuing quest to make the Premium screen less problematic, I've added some code that should ensure the layout doesn't go entirely nuts… especially when switching between apps. The header also has a cool reflective effect now, which is less about solving problems and more about making cool stuff for the sake of making cool stuff.

- Premium features weren't being correctly enabled/disabled under a number of circumstances, usually when being done automatically on purchase or on launch. I jumped in and fixed an issue stopping the change of the relevant value from being announced, and things are working much better.

As always, I'm here to take questions, assist with problems, and receive your compliments. Hit me up anytime by emailing support@gifwrapped.co, or tweeting at @gifwrapped. I'm here to help!

May 11
Version 1.7.2

I know a few people have noticed some issues, particularly with Search, so I'm back with a small (but important) update to deal with them… and squash one or two other minuscule bugs/crashes that aren't really worth detailing.

- Performing searches got a bit broken by some logic that I'd changed at some point, but not properly carried through to other parts of the code. This resulted in subsequent pages of results not being loaded correctly. A couple of quick fixes, and all is right with the world once more.

- When renaming images from within GIFwrapped, the update wasn't being pushed to Dropbox, which isn't ideal. I've taken care of it on two fronts: by fixing the code causing the problem, and by making sure that any pending changes are sent through automatically.

- There were some occasions when restoring purchases would fail, but the error displayed wasn't actually that useful… so I updated things so that it'll point you in the right direction, rather than just tell you subscription has probably expired (which is pretty dumb in retrospect, but that's past-Jelly for you).

- The in-app User Guide got a little upgrade, with support for iOS's universal links and some general rendering improvements. I'll be improving support for the former in the future, but this was a nice, easy addition to sneak in.

Thanks to everyone who has sent emails, left reviews, and purchased the Premium subscription. You're all amazing! Remember, if you need help, want to suggest an idea, or need to chat, you can email support@gifwrapped.co, or tweet @gifwrapped to hit me up. I'm here to help!

Apr 25
Version 1.7.1

This latest GIFwrapped release has been met with amazing love from everyone. Even the new GIFwrapped Premium subscription, which was pretty unexpected (if I'm being honest). There have, of course, been some issues, and this update should hopefully resolve a couple of the worst ones.

- Attempting to load more results in situations where there wasn't results to be loaded (like in the Library) was causing crashes on iOS 9/10. This is mostly due to what was likely a bug that got fixed in iOS 11, so I added some extra checks to ensure I'm supposed to even be checking for content before relying on the iOS stuff, and boom! No more crashes.

- There are occasions when the collection view's internal data gets out of sync with the real world, and I'm still not entirely sure why (there are so many contingencies to avoid exactly this sort of thing). I moved some things around to simplify the logic and gather a bit more data as to why it's happening. Here's hoping we'll see some results from that.

- There were occasional issues with the Premium screen's layout, causing it to go all wiggy (I mean ALL WIGGY). Things would overlap, or simply not refresh properly, but I tracked down the underlying problem (conflicting constraints, for those in the know). It's still not perfect, but things have smoothed out considerably.

- The illustration for the Premium screen was using too much memory for my liking… something to do with loading the images… which I'll admit were kinda unnecessarily huge. I made some adjustments, broke the whole thing up into it's components, and dropped the total memory usage by like 75%. I'm calling it a win.

- Restoring purchases wouldn't warn you if it couldn't find any to restore. This might seem trivial, but there was the potential for confusion if someone disabled their subscription, and thought restoring would get it back. Stranger things have happened.

- If you're the sort of person who likes to add a little extra bling to their home screen, you're in luck. This version adds the option of a couple of alternate icons for GIFwrapped Premium subscribers, which should help show just how much better than other people you are. Pretty sure that'll put you in league with our cat, Turbo.

Thanks again for all the support! Remember, it goes both ways… so if you need assistance, please reach out to me, either by emailing support@gifwrapped.co, or by hitting up @gifwrapped on Twitter. I'm always here to help.

Apr 19
Version 1.7

There's a lot going on with GIFwrapped, and this release is no exception. I've started making big strides towards a new, hugely-improved UI, but while there's still a bit to go on that, I wanted to introduce a couple of new things for y'all to enjoy in the meantime!


The largest and most important change is the introduction of GIFwrapped Premium: an auto-renewing subscription that will remove the ads and unlock extra features. By subscribing, you're also supporting GIFwrapped's ongoing development.

- GIFwrapped Premium replaces the mess of upgrades that were previously available, but if you already purchased one of those, you will continue to get the features you unlocked, exactly the same as before.

- This subscription gets charged to your iTunes account, and costs USD $3.49 per year (at the exact moment this sentence was written). It's renewed automatically—because that is the nature of an auto-renewing subscription—but don't fret: you can turn off auto-renewal at any time, and I'll still like you for who you are on the inside, even if I'm not getting paid.

- More information about GIFwrapped Premium is available in the User Guide, which can be found in the Settings tab, or online from gifwrapped.co/faq/gifwrapped-premium


This update also introduces something that's been in pre-release for a while, but which is now available to everyone: support for Bursts and Live Photos from your photo library! Quickly grab a GIF version of photos you take, and send 'em to friends. Great for realising you accidentally left live photo mode on when taking a picture of that cabinet in IKEA.

- Different image sources are grouped together to make things a little easier to manage, separating regular old GIFs from your own photos.

- Premium subscribers can disable the embedded watermark for GIFs created from Bursts and Live Photos, which is extra nice if you like GIFwrapped, but don't, you know… like-like GIFwrapped. It's totally OK if we don't have that sort of relationship, I'm cool with it.


As always, I've been hard at work improving some of the minor stuff too. You know what they say: there's no such thing as a small feature, just small… uh… code? I really don't know where I was going with that.

- You won't really notice, but a bunch of UI stuff got a big refresh with this release. This includes things like the share sheet, the grid views, drag and drop, and more. It's honestly a huge thing, I just don't have a lot of room to detail it all!

- The awful dialog you would get when the Save to GIFwrapped extension found multiple GIFs for a tweet or URL has been replaced with a new UI for choosing the GIFs to save, just like in the Search tab. So much easier!

- Nothing says pro like keyboard shortcuts, which I can almost guarantee no one will ever actually use, but hey… they're there, and they're super great. Whack that keyboard on your iPad and go to town, you deserve it.

- I get a whole lot of emails about people wanting to delete stuff, so my response is to add a thousand (or maybe just a couple) new ways to delete items, in places people are more likely to find 'em. If this works the way I planned, I'll spend less time answering emails, and more time reminiscing about the days when I got emails.

- The outlined consume bug I tried fixing the last time around managed to avoid my manic flailing, but since then I actually managed to stumble across it in real life, so now I can say with absolute certainty that it's actually fixed. Probably.

If you're wondering about a bug that I haven't mentioned here, or if you're struggling to figure something out with GIFwrapped, please reach out! Send an email to support@gifwrapped.co or hit up @gifwrapped on Twitter, and I'll be available to help where I can!

Thanks for reading the release notes! You're a heckin' champion, and I believe in you. Fly strong, you beautiful eagle of light. Let nothing keep you from your dreams!

Feb 17
Version 1.6.5

Hi there, and welcome back to another episode of "GIFwrapped Bug Fixes and Performance Improvements: Have Things Been Fixed? Have They Fixed The Things I Specifically Have Issues With??? Let's Find Out!" with your host… me!

Last time, we fixed a bunch of issues and made performance improvements, but I know what you're wondering. You're thinking, "Have more things been fixed? Have they fixed the things I specifically have issues with?"

Well… let's find out!

- Fixing one issue in the preview screen uncovered a crasher (though not soon enough for me to ship), caused by an observer sticking around after the image metadata it was watching was gone. It might sound complicated, but it was just a matter of enforcing an order to events, so now the screen can be dismissed just fine.

- Added an extra layer to the Dropbox warning system to suppress the alert when the app isn't actually in the foreground. I think this might have finally stopped it from showing up unnecessarily, it's kinda hard to tell. Keep an eye on it, and if it even so much as twitches… beat the dang thing with a stick.

- Updated the text for an alert that I added several versions back, but had never actually wrote proper copy for. I'm not super sure it'll even get shown at any point (it's a pretty obscure problem), but the fact that I've finally fixed it should alleviate those stress dreams I know y'all were having.

- There was apparently some kind of outlined consume happening within the code, causing crashes left, right and centre. If you have no idea what an "outlined consume" is, that's OK. Neither do I! I really just kinda stabbed around in the dark until I felt like I hit something. Which means there's either no more bug, or a really angry, partially-stabbed bear hanging out in here. PLEASE LET IT BE THE FIRST ONE

- If the library had to remove all its items—which doesn't happen often—the instructions given to the UI could end up being wrong, causing it to get out of sync with the actual data and everything would go slowly downhill from there. I solved it though, so it's pretty much a non-issue now ¯\_(ツ)_/¯

- On occasion, an image might not have a thumbnail available, and if the planets align on the night of the solstice, when a full moon is visible from the well of Ashur… it could cause the thumbnail not to load at all. I've added a fallback so it goes for the actual download just in case, and the world is safe once more.

- If dimensions for an image weren't available (like if it hadn't been downloaded yet), the value it used to determine the size of the preview would be capital-B banana pants, and the app would crash as a result. This shouldn't be a problem anymore, as it now checks for invalid values/fruit-like pants and just sticks with the default when necessary.


- The clipboard bookmark in the Search tab could quite easily find itself with a value that didn't match the label if multiple attempts at using the clipboard occurred. Somehow, it took me a while for me to actually see this in action, but everything's been sorted out, and should work as expected now.

- When using the save options found in the info panel, the app could bypass any check to ensure that it as valid, and end up crashing because things were all weird. I tracked down the underlying error and sorted it out, so no more of that crazy behaviour.

If you're having problems with anything, I'm more than happy to take your emails and tweets and do things with them! Mostly this means replying with helpful guidance, but occasionally might involve eating said emails and tweets for nourishment. Either way, follow @GIFwrapped on Twitter, or send an email off to support@gifwrapped.co, and I'll be here… hungry and waiting.

Mostly hungry.

Feb 05
Version 1.6.4

Didn't take very long to sort out a new swath of problems, some of which might have been hiding out for a while now. What follows is literally a list of bug fixes and performance improvements, but… you know… a pretty detailed list.

- Made an adjustment to how the cache status is determined that should reduce the load it places on the CPU. It's actually a pretty small thing, but it can make a huge difference if there's a lot going on… and let's be honest, we don't need the added pressure.

- A couple of the icons in the app got a tweak here and there, most notably the Dropbox logo in settings. It's not a big thing, and you might not even care, but I'll bet some marketing executive just got a nice, happy feeling… and doesn't even know why. That's how marketing executives work, right?

- A parsing error was causing the thumbnails of Twitter GIFs to fail so completely that it made the whole feature seem broken. While this could be construed as a metaphor for the times we live in, the fix itself was very straightforward: just a matter of tweaking the code so that the generated URL was correct.

- Sharing images to Messenger broke at some point, likely due to how they expect GIFs to be shared (story of my life). I added the ability to wrap everything up just how they like it, and more importantly, the ability to adjust the next time they decide to change things on a whim.

- Despite each one being tracked centrally, the same download could end up being started multiple times, which is bad for so many reasons (like the progress bar in the preview screen being all whack-a-doodle-doo). A couple of quick additions to the relevant code should ensure that it doesn't happen anymore.

- The preview screen was getting stuck after it was supposed to be dismissed, which meant the contents (i.e. GIFs) were being kept around (thus eating all the memory like they were delicious snacks). Made some adjustments to ensure this isn't happening anymore, and now it's just like a bought one!

- The little spinner for each of the thumbnail cells in Search and Photos wasn't kicking in, which was slightly disconcerting if it took a second before downloads kicked in. We had a chat, and everyone's on the same page now; no more blank screen of vague uncertainty.

Thanks for using the app! If you want to get in touch, you can find me pretty easily. Shoot an email to support@gifwrapped.co, or look for @gifwrapped on Twitter, and I'll be here to help with problems, consider your suggestions, and sort out any bugs you happen to find! If you'd like to help support GIFwrapped, I'd be really honoured to read any reviews you leave on the App Store. In the meantime, stay cool and don't stop believin'!

Jan 24
Version 1.6.3

You may have thought I'd forgotten about you all, but never fear! I've been diligently working hard on under-the-hood improvements and fixes, bringing you easily the least worst version of GIFwrapped of all time!

I mean, I could be wrong, but I sincerely hope not!

- At some point, a combination of factors resulted in ridiculous levels of CPU and memory usage during the creation of thumbnails. After a month of confronting my past mistakes head on (and more than a little procrastination), things are looking much better.

- An innocuous change (aren't they all?) caused a small delay in retrieving metadata for images, both in the Library and in Search. A couple of quick adjustments restored the prior speed, which should help make a little bit of difference. Especially in larger libraries, where it mattered the most.

- The alert designed to warn of a failure to connect to Dropbox was way too eager, maybe even a little lonely and desperate? Adding a delay to the check should allow things to properly fail before everything starts freaking out… no one likes an alert that cries wolf, after all.

- The cache for Search and Photos images was storing files but then completely forgetting about them, which I can honestly relate to some of the time. Tweaking the names it used allowed everything to work as intended, mostly because it wouldn't put the files somewhere it wouldn't recognise later.

- The list of files in the iTunes File Sharing folder had a few niggly issues, mostly with the thumbnails and just how dang slow it was at filtering large lists. A few tweaks here and there has it running much, much better… maybe even too much better.

- While adjusting some stuff under the hood, I took the opportunity to add the modification date for images to the Info screen for people with the File Information upgrade. Nothing crazy, just a tiny little hint at some cool stuff that's coming.

- The initial presentation of the library when launching the app wasn't always consistent, which isn't really something that matters to anyone but me… but guess who's in charge of making this thing? Point is, I fixed it up, and one more of my little annoyances is dealt with.

- As it turns out, there were occasions when "rescue operations" run by GIFwrapped would block the UI, and everyone knows that's bad. A tweak here and a nudge there, and it should stay responsive for now.

- It doesn't happen often, but those same rescue operations weren't always reflected in the Library itself, which sometimes meant they might have missing thumbnails. Now they'll be refreshed automatically, and it'll be like nothing happened at all. Because it didn't? Or did it? I'm confused.

If you want to get in touch with me, I'm only an email or five away. Send one to support@gifwrapped.co, or even just hit me up on Twitter @gifwrapped, and I'll be happy to help you with any problems!

Nov 05
Version 1.6.2

It might have been a week or two since we saw each other last (OK, yeah… it's been longer… FINE), but I've been hard at work stomping on bugs and working on secret things that you'll get to see in the not-too-distant future. Stop trying to peek. STOP! You can see it when it's ready! GEEZ

Thanks to everyone who reached out and helped me solve some of the bigger issues on this list. Y'all are straight-up heroes; defenders of the night!

- I'd mostly already made the UI support iPhone X, but as it turns out I missed a couple of minor things. Damn those crazy safe areas! I've tweaked things where it matters (like pull-to-search in the Library), and now we're golden.

- For the longest time, switching phones has meant Dropbox getting disconnected silently, which isn't exactly what you want when upgrading devices. Now you'll be presented with an alert if this happens, allowing you to return to some semblance of normalcy in a few quick taps.

- Sharing GIFs would result in heartache for some, when the animation got lost somewhere between me handing the image off to iOS and the image actually being shared. Since this was affecting more and more people, I hunkered down and put some validation in place, managing to fix the issue as a result. Hooray!

- There were a few issues introduced recently with thumbnail loading that would cause scrolling to lock up pretty badly. I spent a few days amongst the code related to this, untangling threads and smoothing out the process to ensure it's as smooth as a freshly shaved cat.

- I did some tweaking to the code that checks the cache status of Library files, hopefully speeding up the initial checks so that first load isn't a mess of cloud icons disappearing as it figures out what files it already has.

- If a file in the Library had the wrong file extension (like .gif on a JPEG image), the stored file would end up being cached under the "wrong" name, and things would get very weird, very quickly. In the future, it should update the type (but not the name) based on the actual type of file, and… look. It's confusing, we're all confused, but it should be OK now, alright?

- The label colour on the swipe actions in the Search bookmarks view was completely wrong and awful (red background and green label… EWWWW). It's bothered me ever since it showed up, but I finally got around to sorting it out. THE NIGHTMARE IS OVER EVERYONE RELAX

If you're running into problems (or have some love to share), I'd love to hear from you, and I'm totally willing to help! Toss an email in the general direction of support@gifwrapped.co, or hit me up on Twitter @gifwrapped, and I'll get back to you as soon as humanly possible. Maybe even sooner?

Be excellent to each other!

Sep 26
Version 1.6.1

So here I thought that version 1.6 was my most stable release yet, buuuut I should've known that even just thinking that would jinx me. Either way… here's a sweet patch release to smash the worst of the bugs.

- If you're keen on the iOS 11 Smart Invert feature, you'll find that GIFwrapped now appears as it normally would, given that it's already a dark coloured app. It's not a perfect implementation, as some system UI is double-inverted (insert face palm here), but it's a start.

- iOS 11 added a new requirement for saving images to Photos which I missed when doing my update. I've added all the required bits and tweaked some other things, so now saving to Photos shouldn't cause crashes anymore.

- iPad users were having trouble searching due to an odd bug in the Search tab that would instantly deselect after it was tapped. A simple tweak to the underlying code, and everything is back to normal. WHAT A RELIEF

- Finally added a workaround for an issue where the Settings tab would load with the wrong colour scheme in certain places. Mostly, I just got over having to explain why it hadn't been fixed yet, and there's nothing like "not wanting to explain things" as a motivator apparently.

If you're still discovering problems, or just want to send me some comments, you can email support@gifwrapped.co or follow @gifwrapped on Twitter. I also love to read reviews on iTunes, so if you're feeling particularly generous, I'd love it if you'd take a moment to leave one.

Sep 16
Version 1.6

As you may or may not know, dependent solely upon how much attention you pay to these release notes, I've been hard at work on new features for GIFwrapped. There have been some VERY late nights involved.

Today, I'm really happy (almost relieved) to bring you one such feature. It doesn't seem like much on the surface—in fact, it's quite a small update in the scheme of things—but is actually quite a big deal.

- Drag and drop support comes to GIFwrapped with iOS 11, allowing you to drag GIFs from anywhere in GIFwrapped, and drop images into your Library. It's better on iPad, allowing you to even drag images to and from other apps... but it does (finally?) open up the ability to mass import to your Library, even on iPhone. IT'S SO GREAT YOU GUYS

- Added handling for promoted in-app purchases, just in case I decide to actually promote them on the App Store. That's a thing now, as it turns out, and I support it. I also support other excellent things: a healthy work/life balance, equality in all things, and breakfast food for dinner.

- Tweaking the downloads for the Library had the unintended consequence of the Messages app not actually working at all... completely destroying lives, homes and families in the process. Sorry about that!

Thank you to everyone who has been emailing, tweeting and reviewing the app! Your support, participation and patience has been really helpful, and I really appreciate it!

If you're having problems, or would just like to let me know what you think, you can email support@gifwrapped.co or follow @gifwrapped on Twitter. Reviews on iTunes are also a welcome source of public feedback, especially if you have nice things to say (I like it when people say nice things!).

Until next time!

Sep 04
Version 1.5.4

I have a doozy of an update for you, so you better hold on tight, kids! You've all been super helpful, sending in your reports of bugs; it's been an amazing help, and I'm incredibly grateful for the support.

- The toolbars containing the search field for both the Search and Library tabs got a bit of a rework―partially to resolve layout-related issues that popped up unexpectedly, but also to consolidate the logic for future secret stuff.

- Dropbox downloads have been updated to utilise some of the improved code that I set up for the recent Search improvements, mostly paving the way for future stuff, but also giving it a nice, consistent feel… and you can't even tell the difference, can you? Typical.

- The accidental inclusion of a duplicate function call during background refresh was causing crashes… a whole lot of crashes. Fortunately, it was mostly relegated to background, so maybe no one noticed but me? I DON'T WANT TO KNOW LA LA LA LA

- There was a an occasional loop when the Search tab tried to load up the clipboard button. Accessing the clipboard somehow caused the clipboard to "change", thereby causing the button to reload―accessing the clipboard again―and round and round we go. After adding a quick fix, it should hopefully not happen anymore, but who knows? Anything is possible.

- Errors in the messages app would get shown an unlimited number of times, causing all kinds of fun problems when trying to update the text in some way, or just removing them (making it seem like they weren't actually removed). A little tweak in a couple of places ensures that only one is ever created and we're all good now, nothing to see here.

- After downloading, saving or opening a GIF multiple times (or some combination of those things), past actions would be replayed like some sort of clip show. I tweaked the code and made sure the downloads are discarded when they're no longer needed because NOBODY LIKES CLIP SHOWS

- A glitch in the Dropbox API started causing a little havoc where it would detect changes that actually weren't there, placing the code into a crazy, desperate loop of despair. I've added some rolling delays to help alleviate this in the future, delaying repeated checks by ever-increasing amounts of time. Also duct tape. Lots and lots and lots of duct tape.

- If the Dropbox sync engine had paused in the background for any particular reason, pressing the "Sync Now" button would be delayed until the timer had expired, which was honestly a touch confusing. I tweaked how these delays are handled, and the "now" part of the button's label actually has meaning again.

- Sometimes the Dropbox row in Settings wouldn't correctly update to display the current status of the sync engine. It isn't really a huge problem… but the grey icon meant to indicate a lack of connection is kinda dreary, so I jumped in and fixed it up, good as new.


- It would seem that the copyright date on the launch screen was wrong, which mostly goes to show how much attention I pay to the only XIB in the entire project. Can I get a "what what" from all my developer pals? No? Why are you all looking at me like I stole your lunch?

- An error with how various preferences were configured meant that the desired selection wasn't being remembered between launches, which meant that it was basically reset back to the default time. A small fix soon took care of that, and you should be able to tweak to your hearts content once more.

If you find yourself needing some assistance with the app, or if you have something you wanna say… don't hesitate to email me at support@gifwrapped.co, or even hit me up via @gifwrapped on Twitter. That said, there's always room for you to leave a review on iTunes… they make a huge difference in helping people find the app.

See you in a few weeks!

Aug 18
Version 1.5.3

I've been continuing to receive reports of issues, especially since there were a couple of crazy nasty bugs in the latest update, so here we are again, with a new update, a new attitude, and a new dress. Isn't it spiffy? I LIKE TO THINK SO

Thanks to everyone who has been emailing me, and helping me solve problems. You're the best, and no one can ever take that away from you. Probably. Maybe if they tried really hard?

- An issue with the last update was causing entries with uppercase file extensions to get detached from their metadata, which could result in them being deleted when the "cache" got cleared. I applied a number of fixes to resolve this, relinking the metadata and just toning down the insanity that was the code for clearing the cache. The thing was all sparkles and rainbows and death metal? Honestly, it was a giant pile of overkill.

- When sharing images, the duplicated file that was cached for sharing would get in the way during subsequent attempts, and just make a general nuisance of itself. In the future, it'll just get deleted if it hasn't already been cleared, meaning that sharing is back… with a vengeance!

- A bug in the way the Dropbox sync engine was linked up meant that URL sharing options were being displayed regardless of the actual existence of a Dropbox account. Sorted it out, and the options should only appear when they're actually available again.

- Some of the error messages around the place were still being displayed very oddly. As it turns out, past-Jelly was an idiot and thought that he'd set up a thing to display them properly, but actually hadn't. What a loser.

- Renaming items could cause the underlying file to be deleted under certain circumstances, which… uh… yeah, that's not how it's supposed to work. All good now, though.

- The cloud icon for indicating the cache status in the library was occasionally not being updated correctly, which usually meant it was showing when it wasn't supposed to be. I added a couple more spots where the cache is actually checked for the appropriate file, and it's all blue skies ahead.

- Changes in iOS 11 meant that the Twitter sharing icon no longer worked as intended, so I had it removed to avoid future confusion when Twitter inevitably adds their own.

If you're having problems, or want to make a suggestion, you can hit me up directly by emailing support@gifwrapped.co or tweeting @gifwrapped. I'm here to help! Of course, if you've got the urge to shout your love for GIFwrapped from the rooftops, a review on iTunes goes a long way (towards getting new people on board, and ALSO my self-esteem, as it turns out).

Stay awesome, pals!

Aug 08
Version 1.5.2

I'm hard at work on some new stuff for the next big release, but I had a few people get in touch to let me know about bugs and problems they've been experiencing, so I'm coming at ya with another sweet update filled with bug fixes and improvements to brighten your day!

Thanks to everyone who got in touch. This release goes out to you!

- After a significant delay, the Photos tab has now been updated to use Apple's most recent APIs for retrieving GIFs from your Photo library. There's a lot more in store for this (some of which might just be available as a pre-release feature for those who have purchased the All the Things upgrade).

- Downloading data for search results got a bit of a refactor to allow for some secret future stuff. I wouldn't normally say this out loud, but IT'S SECRET I'M NOT TELLING YOU WHAT IT IS GEEZ

- A few problems had creeped into the Photos tab that affected the results being returned, which in some cases meant duplicates, and others just meant missing items. I tweaked a few things here and there while doing my rewrite, and things should have improved significantly now.

- The Search tabs UI could occasionally act a little wiggy, with all manner of odd behaviour and even the occasional crash. The logic got a little tweaking and now everything should be running as expected again. Probably.

- When attempting to share GIFs via AirDrop, the actual image transfer would fail every time, due to iOS failing to provide AirDrop permission to access the file. To work around this, sharing will temporarily duplicate the file in an accessible place, and everything is hunky-dory once again!

- When empty, the library would appear to load FOREVER, only ever completing when a GIF was actually added. As it turns out, this is slightly confusing… and I've tweaked the code a bit so it, you know… actually works as intended. BRILLIANT!

- When disconnecting your Library from Dropbox, the actual Library tab wasn't being properly updated to reflect the changes. I changed the way the Library was being reset to remove the Dropbox credentials, and all is right once more.

- In changing how the Library was reset, I was also able to allow unsynced items to be retained. This means that any items that haven't been completely uploaded should be safe from the void of nonexistence (or the iTunes File Sharing Folder, which is where they used to end up).

- In cases where a search query contained an odd character or seven, the app would freak out and crash. I tracked down the problem, and added some rubber bumper thingies. No more crashes!

- When using the Copy URL option from the share extension, the calling app would appear to freeze up due the the extension not dismissing itself correctly. I mean, yes… it was my fault, but it was like the app had never talked to a GIF-saving extension before GEEZ

- GIF previews weren't being aligned properly due to a new addition to iOS 11. A minor edit or two—along with several hours worth of procrastination—and it's all sorted.

If you want to get in touch to report problems, ask questions, or share secrets, you can email support@gifwrapped.co, or tweet @gifwrapped, and help will be just around the corner. If you're in a particularly giving mood, leaving a review makes a huge difference to my self-esteem, and to people still trying to figure out if GIFwrapped is worth their time. Thanks in advance!

Jun 19
Version 1.5.1

Nothing brings the bugs out of the woodwork quite like a new *SQUISH* major version. Fortunately I have my handy-dandy can of bug spray at the ready, and have been pouncing on *SPLAT* issues left and right as they came in. Thanks to everyone who reported 'em to me, always a *CRUNCH* big help.

No real-world bugs were harmed during the making of this update, creepy as they are. Just the software kind.

- After discovering that there's a minor bug in iOS 10.3 when using a ProMotion display—causing the GIFs to play at half speed—I went whole hog and opted into the increased screen refresh rate as a workaround, allowing GIFs to play at regular speed again. HUZZAH

- Twitter GIFs wouldn't load correctly if the URL for the image itself had underscores (which didn't come up in my original testing, but is a thing apparently). This affected quite a few GIFs, but it should be golden now that I've tweaked the code doing the parsing.

- The GIF preview screen was showing weird gobble-de-g**k if image loading failed, instead of an actual sentence that had any meaning to people who aren't me. Rather than sticking a babel fish in everyones' ears (eyes?), I simply made sure it was displaying the right text and like magic, everyone can read 'em again.

- Because of the way Twitter displays threads of multiple tweets, the image loaded by GIFwrapped could be the wrong one when trying to save a Twitter GIF to your library. Rather than guessing, GIFwrapped will just show them all in the Search tab's results.

- The share extension wouldn't behave in a particularly useful way if there were multiple GIFs to load from a single URL (which isn't supported… yet). I've adjusted the text, and added a handy button to copy the relevant URL to the clipboard so you can drop it in the Search tab instead.

If you want to get in touch to report problems, ask questions, or share secrets, you can email support@gifwrapped.co, or tweet @gifwrapped, and help will be just around the corner. If you're in a particularly giving mood, leaving a review makes a huge difference to my self-esteem, and to people still trying to figure out if GIFwrapped is worth their time. Thanks in advance!

Jun 15
Version 1.5

Good morning/evening/mid-afternoon/pizza/Taco Tuesday/day to you, and welcome to the update of the day/minute/century/millennium/pizza! So very glad you can join me on this wild and dangerous ride through a dot point list of new features and bug fixes. Can’t wait to do it!

- The settings tab now contains an exciting breakdown of how much storage GIFwrapped uses, with additional information on what it all means. The storage data that is, not life—you’re gonna have to go elsewhere for life-related answers.

- Twitter GIF support has been jammed into the Search tab and the “Save to GIFwrapped” extension, allowing you to harvest GIFs from Twitter once more. These truly are exciting times!

- The “Sync Now” button that graces the Dropbox settings screen got some rejiggerations, allowing it to better resolve potential issues that may pop up. This comes along with numerous improvements to sync itself, but as the saying goes “if all else fails, press sync now.” …or something.

- Search bars got a little count of the applicable results, so now you can get an idea of just how many GIFs you can scroll through in your Library, or in the results of that search you’re about to do for “cat riding skateboard”.

- Loading, sorting and filtering large libraries is now lightning fast, as the result of some improvements made to how the animations and UI updates are calculated. As a bonus, you won’t get hit by lightning while using it, thanks to the power of metaphors (I mean, no guarantees… but odds are definitely on my side here).

- Grid thumbnails can now be preloaded by the system as appropriate, which should make things flow a little better, with slightly less loading indicators junking everything up.

- Progress bars for 3D touch previews could vary wildly in size (depending on the size of the image it was loading) causing all sorts of problems.

- The “Save to Photos” button in the info panel could cause the app to freeze up while the image was being saved, which isn’t exactly ideal.

- Changing certain preferences would cause the app to crash if they caused additional options to appear or disappear on the same screen.

- The number of ratings displayed in settings was only reflecting the US store, and it turns out there are other countries out there! WHO KNEW

If you want to get in touch to report problems, ask questions, or share secrets, you can email support@gifwrapped.co, or tweet @gifwrapped, and help will be just around the corner. You can also leave a review here on the App Store, and I’ll do what I can to help resolve your GIFwrapped-related woes.

Until next time, friends!

Nov 07
Version 1.4.2

This release is the perfect example of a “bugs and improvements” tagline, but those are super bogus. Personally, I like to pack release notes with information, a little entertainment, and a bunch of random facts about bananas.

Better strap in kids, because this release is PACKED WITH GOODNESS.

- Certain sequences of symbols (format tokens, for those in the know) were causing crashes when they got handled incorrectly, like when opening GIFwrapped via a URL. Couple of tweaks to the problem code, and hey presto! No more crashes.

- Scientists consider bananas to be a type of berry, based on the way the fruit grows. Grapes, tomatoes, cucumbers and eggplants are also considered berries for the same reason!

- Made subtle improvements to the way Dropbox is monitored for changes, allowing the app to better respond to strange occurrences, like g-g-g-g-ghosts… or when Dropbox tells it to reset… or ghosts.

- Attempted to mitigate a couple of issues where the collection view would try to process multiple updates at once, and they'd be applied out of order, causing crashes. FYI, collection views also don't like it when their food is touching.

- In Thailand, it’s believed that a spirit called Nang Tani lives inside banana trees (sounds comfortable!). Locals tie coloured satin around the trunk to indicate trees that are haunted by this spirit.

- The updates (in the last release) to the way downloads are handled fixed a lot of problems, but apparently it was also an invitation for them to have a big ol' party, and I got back to bottles and pieces of clothing littering the halls. Needless to say, I shut that business down in a hurry.

- Because of their potassium content, bananas are slightly radioactive. The amount is actually used as a measurement to compare different levels of radiation, known as the “banana equivalent dose” or BED.

- The Search tab’s handling of URLs got just a little bit better, thanks to a slightly improved method of detecting and filtering the results. Did you know the Search tab could even look at webpages to find GIFs? YOU DO NOW NO TAKE BACKS

- The loading of search categories has been tweaked so that they don't freak out when you buy or restore the search upgrade without even opening the search tab. I mean, it's exciting, but not THAT exciting.

* A warning should be displayed when disconnecting Dropbox if you have items that are still in the process of being synced (or are waiting for the privilege), and even if you do continue, they’re swept into the iTunes File Sharing folder for safe keeping. No more lost GIFs!

* While you might think of bananas as being a bright yellow colour, it’s actually caused by an artificial ripening process. Tree-ripened bananas are typically a greenish-yellow colour, which changes to a brownish-yellow as they continue to ripen.

* Resolved an issue that could cause Dropbox API requests to get lost, causing downloads and the like to just never complete, or even start, really. A good hard restart usually sorted it out, but you don’t even need to do that anymore. PROGESS!

If you’d like to report problems, ask questions, or declare your undying love for GIFs, feel free to email support@gifwrapped.co, or tweet @gifwrapped, and I’ll be there to help you out!

If you love the app, and want to show it, leaving a review on iTunes is a great way to do so. It helps others decide if they want to try the app, and I do like to read them (especially when they’re positive).

Until next time!

Nov 02
Version 1.4.1

Hey there! Sorry to interrupt, I know you're super busy with updating apps and reading "Bug fixes and improvements" over and over. Just thought I'd stop by to say that this update to GIFwrapped is pretty sweet, actually. I'll just give you the run down, and then leave you be.

- Dropbox URLs were failing pretty often, as it turns out. Long story short: pickles. I've sorted out the problems and added helpful messages for the ones that you need to sort out. All is good once more!

- The Library's import menu was ditching school, and hanging down by the train tracks like some sort of… rascal! It's been dragged back by its ear, kicking and screaming, and now it should be working again.

- Save Image has been returned to the image share sheet, allowing you to save GIFs to Photos if that's how you get your motor running.

- A new button allows you to quickly switch to the Search tab to continue a Library search online! Best of all, it works from the Messages app, making life just that little bit sweeter.

- Tweaked the code for serving up error messages in the GIF preview screen, which were a load of useless technical mumbo jumbo (not even the good kind, I mean REALLY). They should make actual sense now.

- Sorted out some issues with files that would cause the Search tab to freak the heck out. It was particularly problematic for names in encodings the system couldn't handle, but it should be much better now.

- There were also a bunch of crashes related to downloads that just took a left turn at normal and ended up over in crazy town. I rejigged the code so everything goes through one place again, rewrote a little, and things should theoretically be a lot less wackadoo now.

- The Photos tab got a little love this release, too. I fixed up some issues with the thumbnails, and re-introduced the long press gesture (to Search too, hooray!). It's not much, but it does make things a tiny bit nicer.

- Recent versions of iOS require privacy statements for anything that requests access to things like Photos, or Contacts. I had the former all sorted, but apparently people like to assign GIFs to contacts, and that was causing crashes. CRAZY. Also, FIXED.

- Tapping the Settings tab when Settings is open should take you back to the main Settings screen (on iPhone, at least). It wasn't, but now it is.

- The thumbnail cache needed a bit of a tune up. It'd lost an important self-cleaning feature, and there was all this business with searches clogging it up and making a mess. Much better now.

That's more or less everything I have. Please remember to eat your vegetables, and if you need help or would like to offer feedback, you can hit up support@gifwrapped.co, or Tweet @gifwrapped, and I'll be there for you.

If GIFwrapped is your jam, and you have a minute, it'd be great if you could leave a review in iTunes. Reviews make my day! I mean, the 1 star ones break me like a wishbone, but I'm still here.

Until next time!

Sep 13
Version 1.4

Hello, yes, good morning. Welcome to the GIFwrapped version 1.4 release orientation session. I will be your guide through this series of notes of what has changed with this update. Please pay attention to your surroundings, and mind your hands and feet as we disembark.

- I wouldn't generally think of myself as a mean person, but if you've not ventured out of the world of iOS 8 you may disagree. This update requires iOS 9 as a minimum. It's better this way, believe me.

- If you're a fan of GIFs in your Messages, you'll be stoked to discover that GIFwrapped now has a Messages app (for iOS 10 and up)! Tap to share GIFs from your Library with pals and the like, without ever leaving your chat. The future is now! Well, technically it's not, but it sure sounds cool!

- The "Save to GIFwrapped" extension has had an overhaul, and is more reliable than ever! If you want to add images to your Library, or if you need a friendly shoulder to cry on, the new extension totally has your back. It's a good listener!

- If you keep your library in Dropbox, you can now benefit from the addition of cache indicators! The Library displays download progress and cache status right in the grid, making it a lot easier to tell what's going on behind the scenes.

- Problematic Library GIFs will no longer block access to the preview with a generic alert about ghosts. If there's a problem with your image, you'll be able to see a far more useful message, and as a bonus, you won't have to be worried about your phone being haunted. Win win!

- iPad user can delight in knowing that, once again, they've gotten the tiniest amount of additional love, as the keyboard will no longer get in the way of the UI, especially in split screen mode. It's the little things.

- For a while now, using the "Open In" feature has resulted in getting stuck in previewing the opened GIF. The only recourse until now has been to force-quit, which isn't exactly amazing. This update re-introduces the revolutionary "Done" button, allowing you to… exit the preview! I know, amazing right?

Thanks for using GIFwrapped! Questions, comments and concerns can be raise via support@gifwrapped.com, or tweet @gifwrapped for help in 140 characters or less. If you'd like to share your enjoyment of the app, please consider leaving a review on iTunes.

Until next time! BOOM.

Jul 07
Version 1.3.3

This release is basically Time Lord technology, in that it's bigger on the inside. Lots of changes and fixes under the hood to make things flow just a touch better. Here's some of the stuff that you'll find in there:

- There were still one or two things that would try to happen before the Library content was loaded up, which would basically cause them to appear borked. Great example of this is Dropbox getting disconnected in some situations, which is now sorted.

- Clarified an error that would show up when opening GIFs whose files are missing, which used to refer to Dropbox, even if you didn't actually use Dropbox.

- Those missing files should now also get automatically found (if you've not tried to do so manually) and returned to their appropriate places. Anything that's still missing (because it can't correctly identify the missing file) will be found in the iTunes File Sharing folder.

- Files with names that include symbols no longer cause the app to crash (i.e. "$$$.gif"), and symbols that aren't supported by Dropbox sync can no longer be entered when renaming files (even if you don't use Dropbox).

- Hitting the done button in the top right when renaming a file will validate the name BEFORE closing the modal, thus allowing the error alert to actually stay on-screen for long enough to read it. Or ignore it, I guess.

- The automatic recovery code that caused me so many headaches with the last few releases can now be shut off remotely, which will allow me time to resolve the issues without more people having their lives decimated by a tiny app.

Thanks for everyone's patience and support while getting all these issues squared away. Remember, if you're still having issues you can email support@gifwrapped.co or tweet @gifwrapped to get a hand. You can also send a friendly hello, if you're so inclined, or leave a constructive review on iTunes for all the world to see.

Until next time!

Jun 02
Version 1.3.2

Hoo boy, what a week it's been, huh? It's always a pain when updates cause crazy new issues, so it means a lot that you're still here, reading these update notes. Oh right… you want update notes.

- Solved a more serious threading issue with the library metadata, which could cause the library to appear empty when the app was first loaded. It was not unlike a bad magic trick, like "making food disappear" by eating it. DO YOU EVEN KNOW WHAT MAGIC IS, DAD?

- Sorted out an issue where files could be stored in the wrong location if the library wasn't synced with Dropbox. In instances like this, "rescued" files will now be matched up to the relevant metadata, and moved to the correct location, and otherwise will get transferred to the iTunes File Sharing folder (available from the button in the top left corner of the library).

- Fixed a crash that could occur when the search bar was toggled by adding or removing items (it's a pretty specific case, but got exacerbated by that first issue. Made it quite a doosy, really. Quite a doosy. I don't really know what a doosy is. Someone got a dictionary handy?

- Oh! Another doosy: tab bar shortcut gestures would sometimes crash the app if the library's search bar wasn't available (usually when there's only one GIF in the library, or if it's empty). All sorted now though.

- Improved the mechanism for sharing GIFs using the "Share Image" option so that it wouldn't fail if the item had to be downloaded from Dropbox first (or if you were trying to share something from Photos).

- Sorted out a problem where the UI wouldn't be notified about an item's download if the item had started being downloaded via another means. Like 3D touching a GIF, then swiping up and sharing the image before the preview loaded. I just kinda loosened everything up in there and it should be good to go.

- Upgrades panel will no longer be hidden from view if you've bought all the upgrades. This was the case originally because I thought it made everything feel a bit nicer, but it meant you couldn't access the "Restore" button (which is actually useful, as it turns out… WHO'DATHUNKIT).

Thanks for the incredible support and for your patience! If you'd like to send me an angry email, you'll find me at support@gifwrapped.co, or you can tweet @gifwrapped. I also wouldn't mind the occasional nice email, or a constructive review on iTunes. Just helps to balance things out, you know?

Until next time.

May 31
Version 1.3.1

Why yes, hello there. Do you have a moment to talk about this GIFwrapped update?

- Sorted out a common issue where previewing a GIF would sometimes cause the app to crash, usually when using the new 3D touch features. The problem was that GIFwrapped would sometimes try to show a frame before it was loaded, and then get very, very confused when it couldn't find it. Wouldn't we all?

- Fixed an issue with adding GIFs to the library, where the GIF wouldn't actually be added unless there was an existing one with the same name. When that happened, it'd overwrite the existing GIF, and you'd end up with complete and utter chaos. I've cancelled the impending apocalypse and sent everyone home, so you should be ok. FOR NOW.

- Updated the User Guide to solve some navigation and search related issues, and to ensure that articles would have appropriate formatting in certain situations (like links, which now actually work).

- Library search got a stern talking to, and it should now be a little better at finding the GIFs you want. Words are now matched independently, and should be compared against the whole path, as opposed to just the file name.

- Sorted out a crash that would happen when using dictation to search the library.

- Improved the handling of the library's search bar during split view transition, which was fine unless you'd actually been using it. Don't you hate how people actually use things? SO ANNOYING.

- Sorted out some minor threading issues with the library's metadata storage. This wasn't really causing any major problems that I can tell, but in some instances the library UI would get out of sync with the actual content (most notably when disconnecting from Dropbox).

- Items added to the library using the "Save to GIFwrapped" extension should be actually added a little more frequently now, which is to say that if you use the extension from within GIFwrapped, you should actually see things appear.

- Preview orientation is now locked on iPhone unless an image is actually visible (and while "peeking"), which is a minor improvement over the previous implementation, which was honestly all over the shop.

- Made the library tab icon's reflection of the current sync status more reliable. Honestly, watching that thing sometimes was like trying to make sense of time travel. God only knows what was going on.

Thanks for using GIFwrapped! If you like the app, feel free to say so with an iTunes review, or by sending an email to support@gifwrapped.co. If you hate the app, please scream into a pillow until you feel a little better. I'd offer a hug, but it's a little hard with this just being text and all. Feel free to ask a friend for a hug though. Hugs are great.

Until next time!

May 25
Version 1.3

It's been a long time since the last update, and you'd be forgiven for thinking, "Oh dang, GIFwrapped sure seems like it's been abandoned on a street corner by that developer guy. What a jerk he is, probably." but GUESS WHAT! None of that is true. Probably. LOOK, AN UPDATE!

• Dropbox Sync has been rejiggerated (that is the technical term) so that it points to the latest API (this is another technical term, but it's totally real and not a made-up word like the other one).

• iPads got some sweet lovin', and GIFwrapped now has split screen support, as well as support for the enormous iPad Pro. There's a few other minor changes for iPads too, but I'll let you discover those on your own.

• If you have a device with that crazy 3D touch feature, you can now Peek and Pop GIFs. Press lightly (not too light, geez) and you can preview an image, swipe up to share, or press a little harder to open the full preview. Fun for the whole family!

• The Twitter share option is all fixed up now, so that it doesn't fail every dang time, spew that crazy URL biz, or post images that don't animate. I mean, who wants any of that nonsense? NOT ME.

• If you have questions about GIFwrapped, you can maybe find an answer in the handy new User Guide (found under the Settings tab), or at least send an email to get the answer. It's multifunctional, like a broom that is also a coffee cup.

• The GIF preview screen now shows the amount of data downloaded while downloading. Sometimes it's just nice to know.

• GIFs are handled a little better, and shouldn't swallow up more memory than you'd generally expect or cause the app to crash, especially when they're crazy big.

Thanks so much for using GIFwrapped! If you'd like to show your love, please consider leaving a review in iTunes, tweeting @gifwrapped, or even just sending an email to support@gifwrapped.co.

Until next time!

Aug 04
Version 1.2.2

Things get super crazy sometimes. Imagine you're a squirrel and you're abducted by aliens that look like hairbrushes. They take you back to their home world, where everyone lives in peace and harmony, but there's something sinister lurking beneath the surfa… wait, where was I going with this? Looking back over the last couple of sentences, maybe I should just move on and talk about things I've changed, yeah? All in favour? GOOD.

• A couple of messages in the Photos section had rogue buttons smelling up the joint. I humanely disposed of them, and while I was at it, cleared out some of additional cruft that was contributing to the smell.
• The Library sort order now gets properly saved and more importantly retrieved when you restart the app. So, you know, you can always sort the way you want. No one's gonna judge.
• Turns out there was still a way to end up with leftovers when you cleared a query in the Search tab. Occasionally the app would get duplicate results back from Giphy and that was sending things all screwy, and now it won't. Friggin' duplicates.
• There was a bunch of unused code hanging out in weird alleyways and shady bars, and I took a hose and cleaned up the streets. Really scrubbed em' until they were shiny. I'm not sure the analogy is really working anymore, but you get the drift.
• If you tried to sort a library that wasn't linked with Dropbox by "Last Modified", you might be surprised to find that it's exactly the same as sorting by name. Turns out that's not necessarily true, and now we can call this one solved, and get back to business.

Oh, right. I remember where that weird squirrel story was going before. Apparently the metadata wouldn't be saved after the app was initially migrated (yeah, more of those migration issues), and everything would fall to pieces when the app was closed. To solve this (and potentially the other issues), I've implemented what I dub PLAN SQUIRREL ALPHA:

• Save the metadata after migration is complete.

Yeah, it's good, right? I came up with it myself. Also PLAN SQUIRREL ALPHA is a two part plan, so it gets better:

• The app will now attempt to find any orphaned files (files that weirdly exist without the metadata that usually accompany them), and move them back to the Documents directory (which is accessible from iTunes File Sharing).

This should hopefully assist with restoring some users' libraries, and help restore my squirrel honour. I also plan on improving this with an additional feature, but for now it's a start. We can begin the healing process and get people back on the road to sharing GIFs.

Now, since there's little (nothing) that you could do to import GIFs from File Sharing after they're recovered, I also decided to release a new feature a little earlier than planned: In the top left corner of the library, you'll find an import button. This opens the iOS Document Picker, with a couple of sweet custom additions:

• If GIFwrapped detects a compatible image in the clipboard, the "Clipboard" option will import it directly to your library. I know, I know… FINALLY.
• The "iTunes File Sharing" options allows you to use the feature of the same name to drop GIFs into your library, and allows you to import multiple images at once. As a bonus, the images recovered by PLAN SQUIRREL ALPHA will end up here, so you can reimport them super quick.

Until we meet again.


Jul 22
Version 1.2.1

You know that feeling when the sweet new update you release has glaring issues you missed and even causes a handful of people to lose their libraries, causing you to slowly sink into a bucket of ice-cream and cry until you're dehydrated?


The good news is I'm back with some fixes! …and "ice-cream gut", but let's not dwell on that. Let's just quickly discuss the list of things and I'll go back to my corner.

• Some issues surrounding migration of the Library from the old version to the new has been solved. Sadly, it may come too late for some of you, something I feel really terrible about. I do everything I can to keep your data safe, but sometimes things go wrong. Let's use it as an opportunity to learn about backing things up, yeah? Turn on the Dropbox sync feature. No really.

• The button to allow you to grant access to Photos (if you hadn't already) is back from the void. It clicks, it asks for permission, it does all of the things a button should do and it looks good while doing it.

• The super special tab bar shortcuts (tapping multiple times on a tab bar icon) should now only run if you're in the grid view. It was getting awkward with keyboards showing up and animations going full crazy up in here.

• Occasionally when you cleared the search field, not all of the items would be cleared, and they'd get in the way, and you'd be thinking "Are they going to leave soon or what" and then they'd still be there and it would get real awkward, real fast. Yeah, I solved that problem and now they shouldn't stick around like that. YOU'RE WELCOME

• A couple of weird launch-related crashes have been solved. They'd only affected a couple of people, but a crash is a crash is a crash, you know?

Jul 15
Version 1.2

Come one, come all, to the unveiling of this illustrious new version of GIFwrapped! The app has all of your favourite features, and has even learned a few new tricks, so why listen to me talk about that fact when you could be reading other, more detailed information about the tricks and their specifics?

The library has been rebuilt from the ground up, and features a host of improvements that help it stay in sync with Dropbox faster and better than it ever could. Plus, with new features like background downloads and the ability to sync your GIFs on-demand, it would be forgivable to ask the question, "Why the math wasn't it always like this?".

Well, because… uh… HEY! Look over there!

The version also introduces the first GIFwrapped action extension! Save GIFs straight to your library with a touch of the screen in a specific area that has the appropriate button on it, which you'd have previously switched on in the "More" section of the bottom row of icons in an action sheet. Hey presto, isn't that grand?!

The search tab has also had a little makeover, and now has the addition of a dedicated button for using the contents of the clipboard to find GIFs! No more manual pasting into the search bar, you can simply tap a button and any text or URLs in your clipboard will be dropped in for you.

Settings has been moved out into the open from it's hiding place inside the library, allowing super quick access to all the settings you could need. Also it has a new icon… and yeah, look, there's not a lot to say about settings, but at least it's a lot easier to find now? WHAT DO YOU WANT FROM ME

There are a whole slew of other tiny fixes, from an improved feedback screen to more useful shortcuts when you tap the tab bar buttons multiple times. This version of GIFwrapped is one of the best I've had the pleasure of releasing, and there's even more to come.


May 09
Version 1.1.2

INTERNAL MEMO 840623.hg2g42
To: All Staff

Today we are releasing what Management has given the official description of "bug fix build". Its sole reason for existence is to fix issues that some of GIFwrapped's users have been experiencing, and very little else.

The details for this release are as follows:

Items from the Photos section can, once again, be shared without hesitation. Previously, the behaviour was such that an error was consistently thrown, causing a modicum of panic and mayhem, the cause of which has now been resolved. The damage caused by this issue is believed to be extensive; as such Management offer their sincere apologies for those who lost family and/or friends to this incident.

Several weeks ago, the search results provider momentarily ceased to transmit the number of results the query was returning, which was not something we were prepared to deal with. Although this was quickly resolved on their end (seemingly within a matter of hours), measures have been taken to ensure that the people of Earth are protected from future incidents like this.

In instances where a search query is empty, images will now be allocated the generic "image.gif" as their name for the purposes of display, and saving to the Library. Do not be alarmed at this seemingly inhumane treatment of search results; Management would like to reiterate that company policy states that search results are not self aware.

For maximum synergy with Dropbox and other computing systems, GIFwrapped should no longer allow you to add files with names that vary only in alphabetical case, i.e. if you have an image named "iMagE.Gif" in your library, you will not be able to add an item named the more sensible "image.gif". There may still be issues caused by the underlying problem, but please be aware that Management are synchronising their efforts to ensure this matter is dealt with swiftly.

The Settings screen was acting in a nefarious manner if you tried to open an Image from outside the app while it was open. Management do not take this sort of activity lightly, and the matter has been resolved privately. If future, should you wish to open an Image in GIFwrapped using a share sheet, you should be presented with a preview, rather than having the Settings screen block the preview from loading correctly.

It was discovered that the Search tab was errantly attempting to display the message intended for the empty screen over search results when tapping in the search bar at the top of the screen. After performing a round of rigorous behavioural realignment therapy, this issue should not present itself again at this time.

To ensure a continued state of cooperation, Management has authorised the two new additions to the GIFwrapped URL scheme. The details for these will be added to the FAQs page for the URL scheme, accessible from http://gifwrapped.co/faq.

Despite the continued compatibility of this release with iOS 7, the next major release will no longer support any version lower than iOS 8. Please ensure that, for continued compatibility, you are using the latest iOS version available from Apple.

Thank you for your continued service with GIFwrapped. Your support is valued and appreciated by Management. Should you desire to express your feelings for GIFwrapped, you may leave an honest review on iTunes, or get in touch via @gifwrapped on Twitter. Please note that Management does not endorse emotional responses and these will be dealt with according to the terms of your contract.


Daniel Farrelly
Compliance Developer

Apr 08
Version 1.1.1

Dear sir, madam, cat or other,

Please find enclosed an app update which contains several small bug fixes and subtle improvements. This update is a response to some crashes that occurred for some users, some of the feature requests that were submitted, as well as a response to the rising instances of floop shortage in eastern Mars.

Some details about some added features and fixes:

- The library has had several speed improvements, and shouldn't be jerky when scrolling any more. It's not that jerky is all bad (it's actually a delicious source of protein) but I'm told that scrolling should have more of a butter flavour. Like popcorn.

- For those who have the "Super Search" upgrade, you can now remove individual searches from your Saved and Recent sections. Swipe left on a search, and then tap the delete button. It does what it says on the tin.

- A URL scheme (gifwrapped://) has been added for automating access to certain features of the app. If you'd like more details about how this works, follow the white rabbit to Wonderland, or possibly read the FAQ about it which you'll find on the website.

- There were a few crash-causing bugs that have been eradicated for your convenience. For example: double-tapping the preview screen while a GIF was still loading would cause the preview try to zoom into nothing. This obviously defies several laws of physics, and we don't want the fuzz on our tail.

- The info view (the little (i) button in the GIF preview) now has a 'Save to Photos' action which will… save that GIF to your photos library? MAGIC. I've also taken the liberty of making the file size available for everyone and not just those who help ensure I eat more than a pack of 2 minute noodles by purchasing the upgrade for this screen.

This will likely be the final release that includes support for iOS7. Sorry kids, it's the way of the world. You'll learn that when you grow up and leave the farm.

Thanks for all of the support with these last couple of updates. The response has been amazing, and I'm excited for what's in store for the next few months! If you'd like to show your support, it'd be awesome if you'd take a moment and leave an honest review in iTunes, or shoot the app a tweet via @gifwrapped.


Jelly (a.k.a. The Developer).

Feb 28
Version 1.1


THE DEVELOPER sits at an oversized desk in an office at the top of the immense tower of evil, feet up and smoking a cigar. Cigars are evil, right? Work with me here. It's early evening, and the magic hour sunlight streams in through the office windows, so the whole thing looks kinda pretty really. PRETTY MENACING. Ha!

Mua ha ha ha ha *cough*

Suddenly, AWESOME GAL enters the office. Like the name suggests, she's awesome. Also a gal, which is a word for young ladies that originated in the 1950s or something. Did I mention that she's awesome? She is.

You'll never get away with this, The Developer!

Oh, but I already have, Awesome Gal! Nothing you do can stop the build from being released now! I've removed so many features, and rebuilt almost everything! It's barely even the same app anymore!

You monster! You removed features? Why would you do such a thing?

The Twitter timeline is no more! Twitter's native GIF support broke my detection of GIFs because almost all the GIFs people post these days are actually videos!

AWESOME GAL throws her hands in the air in shock.

The horror!

I know, right? And even though I know it's a super popular feature, it's just not possible at this time for me to support a feature like that, so instead of trying to get it working again, I spent a lot of time making sure that other parts of the app are significantly improved, and I even added some small, but useful, features.

Wait… what?

THE DEVELOPER gets up from his desk and throws his fake cigar in the trash. Oh, you didn't know? It's fake. Because real cigars are disgusting, and super bad for you.

Well, everything should be a lot more stable now, because I rebuilt a lot of things to be more stable and to handle problems better. So less crashes, you know?


Plus, the GIF preview is now super slick and has a cool landscape view that removes all the unnecessary bars and focuses on the sweet GIFs. Oh! Oh! And there's a really cool new info view that makes renaming and managing your collection super easy!

Wow… really?

Yeah, totally. Plus there are new upgrades that you can purchase which lets you see things like duration and the number of frames in your GIFs… Oh! And saved searches!

Saved searches?

Yeah, there's an upgrade for the search tab that shows you your recent searches, and you can even star searches so that they're always there. It's basically like being able to create your own categories!

Oh wow! But why'd you release such an awesome update if you're evil?

I'm not evil. You… you didn't think? HA! This isn't my office. I was just enjoying the view from these windows. Isn't the late evening light so beautiful?

So you're not evil?


But you are The Developer?

Well, yeah. But you could just call me Jelly. Or Daniel, I guess. People only call me "The Developer" because I make GIFwrapped.

And you DID remove the Twitter timeline…?

Yeah… and I'm sorry, but I didn't really have a choice. Twitter's video conversion thing kinda forced my hand on that one.

Oh. So why was I called here? I thought I was supposed to be fighting evil.

I dunno, but… while you're here, why don't we share some of our favourite GIFs with each other? Do you have a Twitter account?


You should send me some GIFs to @gifwrapped. Oh, and if you end up liking this update, maybe help me out by posting a review on the App Store?

Yeah, OK then.

AWESOME GAL joins THE DEVELOPER behind the desk and they look out the office windows at the beautiful view together, laughing and sharing GIFs as the sun slowly disappears behind the horizon.


Aug 08
Version 1.0.5

Thank you all for your support,
Your reviews and your bug reports.
It helps me make a better app,
For you to swipe, and pinch, and tap!

This update fixes little bugs,
And comes with much, much larger hugs.
Hugs are really great, you guys,
Oh God, I wasn't going to cry.

If you preview, then tap back,
And the top you double tapped,
The app would crash, but I wrote a fix,
So tap away, if that gives you kicks.

Sometimes your 'net drops out
(Which is really bad, I have no doubt),
But now the app recovers fine,
When this happens from time to time.

I've fixed a little problem where
The app would crash when you share.
This should cause you no more grief,
Which sure is a big relief.

A Dropbox change was coming soon,
Which would've caused you certain doom.
Your sharing links are now prepared,
So worry not, and don't be scared.

This update's small, but have no fear,
A big release is drawing near.
With new features and so much more,
You'll be stoked with what's in store.

Please feel free to get in touch,
Send GIFs of cats and dogs and such.
@gifwrapped on Twitter, send them there,
I really love it when you share!

I'd love a rating in iTunes too,
Give honest feedback in your review.
But only if you have the time,
Your enjoyment is just fine.

Thanks again to all of you,
This update rhyme is now through,
You enjoyed it, I hope, as much as I,
But for now I must say… good bye!

Apr 12
Version 1.0.4

Quick, everyone! To battle stations! This here is an emergency of epic proportions!

The service that powers the search tab, Giphy, made a small, but really significant change to their service, resulting in a major GIF crisis! If you rely on searching for GIFs, this problem hasn't just thrown a wrench in the works, but also several monkeys, a bowl of fruit, three packets of chewing gum and a partridge in a pear tree. Have no fear! This update will alleviate the issue, allowing you to once again find the perfect GIF response on-the-fly.

A larger update is in the works, with additional bug fixes and improvements, but this was a pretty significant issue. If you're having other problems, please bear with me, and feel free to get in touch.

And now, since Australia is heading towards winter AND it's almost Easter, here's a recipe for Easter Egg Hot Chocolate!

Take eight small, solid easter eggs, unwrap them, and drop them in a decent sized mug (remember: with hot chocolates, a bigger mug is always better). Add a small dash of milk, just enough that the eggs are kinda wading in the milk.

Fill a saucepan with a little water (maybe two or three cups) and suspend the mug over it using a steamer (the water should never touch the mug). Boil the water until the chocolate has melted from the heat of the steam. The end result should be a liquid only a little thicker than milk. If it's thicker than that, add a little more milk and stir it in.

Next, heat the rest of the milk, enough to fill your mug. I have an espresso machine, so I use a steam wand to do this, but if you don't, fill the mug and continue heating it until it's at the correct temperature: hot, but not so much that you burn yourself, GEEZ.

Add marshmallows if that's your thing, and drink. DRINK IT ALL. Mmmmm…

This recipe will be available at http://tumblr.gifwrapped.co (with GIFs!) if you want it again later. As always, if you'd like to get in touch, the app is @gifwrapped on Twitter, or you can email gifwrapped@jellystyle.com. You can also leave an honest review right here on iTunes, making a public statement of your feelings! You really shouldn't bottle up your feels. It's not healthy.


*drops the mic*

Mar 10
Version 1.0.3

Thank you to every single person who has been in touch to suggest ideas, to say hello, or to let me know about a bug. Your support has been outstanding and you all deserve some cake. Bring out the cake! Wait... what? What do you mean there's no cake? I specifically reque… GRRR… seriously?

Ugh. No cake. Sorry guys. I tried.

In this update:

• Sometimes slow-motion is good: it adds drama and suspense as the hero flies through the air, propelled by the dramatic force of the epic explosion of flames behind him. However, when your GIFs play slowly, all you want to do is stab somebody in the eyeball and hope that it helps you feel better. The good news is that eyeballs of your friends and loved ones are now 100% safer, as I've locked up all the pointy objects, and also fixed the bug that could cause GIFs to play using the wrong frame rate.
• Temporary images (like the search thumbnails) are automatically cleared more regularly, thanks to an increase in the app's fibre intake. Let's just say its footprint should be dramatically improved, as previously it was relying on the system to clear the cache, which didn't always happen.
• Buying the 'Remove Ads' upgrade in Settings wouldn't immediately take effect on an iPad: you get it to take you either had to close the app or open a GIF from the library before it would remove the ad. Now it should happen immediately, before your very eyes! IT'S MAGIC, I TELL YOU.
• I can't catch a break with the library grid. First the ghost cell which took some effort to take out (let's not go there again), and now there's this crazy issue where it gets this idea in it's head that it only needs to insert some of the images? Holy cheeseburgers, what a nightmare. Nevertheless, I've delved into this code, rewritten it, and now maybe the thing will behave like a gentleman. Just don't go feeding it after midnight, you hear?
• So theres this whole orientation thing that people like to do with their iPads, turning them this way and that and expecting everything to work out just fine. Well, it was a bit stuck before, but I got in there with a toothpick and now it's working great.

If you'd like to share a GIF with me, tell me about why you love (or possibly hate, who am I to judge?) the app, or if you want some assistance, please get in touch! You can talk to @gifwrapped on Twitter, or email myself at gifwrapped@jellystyle.com. And as always, if you'd like to leave a public statement of your feelings, leave an honest review right here on iTunes. No strings. You tell me what you think, and I'll listen. Or possibly just smile and nod.

It's been wild. See you guys in the next update, and remember: BACON IS THE GREATEST MEAT.

Feb 14
Version 1.0.2

Wow. Very support. Many love. So honour. Amaze. Such thanks.

Bug fixes, round two! My aim here is to get this thing so stable, it could carry you home after a big night out. I mean, it won't because, well… it doesn't have legs, but it's the thought that counts. Anyway, this is another attempt at righting some of the wrongs you may have experienced. In the app, of course, not life in general. That would be a whole lot of work.

• Ads are enabled. No really, this time I mean it. Thanks again to those who've bought the in-app purchase without even seeing ads. I know I probably shouldn't say this, but you're my favourites. Don't tell the others I said that though, it's just between us, ok? Cool.
• It turns out that at least one of the crashes I thought I took care of in v1.0.1 — the weird ghost cell thing — was still sneaking through. Well, I called my pal down at the local Ghostbusters, and he tells me there was a mixup. Paperwork wasn't filed, streams were crossed… UGH. What a flippin' mess! Anyway, I sat down, worked through the problem, and with the magic of duct tape and bubble gum, I think it might just be taken care of.
• Sometimes the app would crash when the Settings icon stopped rotating. I replaced it with a new one, so it shouldn't do that anymore. It's really difficult to get gears in the right colour and size. You don't even know.
• Sharing popovers opened in the GIF preview on iPad won't persist if you exit the preview while they're showing, causing havoc and making you question the very meaning of life. You also can't open infinite copies by tapping the action icon over and over. I know, I know. I ruin all your fun.
• Let's say you do a search for a gif in the Explore section, and you get back a whole bunch of results. You'd start scrolling through and it'd start fetching more GIFs from the server, and then BAM! Everything is flickering and going crazy! NOT ANY MORE.
• Fixed a couple of additional crashes in the Search tab. You can rest assured that searches are now 98% fat free. Also less crash prone, I guess.
• Added the ability to find GIFs by entering a URL into the Search field. It's a small but powerful addition that'll let you skip the Safari to Photos to GIFwrapped dance. I mean, unless you like dancing.

Remember, kids: stay in school. And if you have feedback, questions, or if you'd just like to send me a GIF, please email gifwrapped@jellystyle.com or follow @gifwrapped on Twitter. If you're really feeling generous, I'd also love it if you could leave an honest review of the app right here in iTunes. It helps with downloads of the app, but more importantly adds a little extra something to my day. And by extra something I mean hotdogs, which are so dang delicious. SO. DELICIOUS.

Feb 04
Version 1.0.1

Let's be clear: this update is strictly a stability release. It's the kind that you'd normally see the phrase "Bug Fixes" as the update notes, but I like writing these things, even if most people don't care enough to read them. You, dear reader, are my only real friend.

In this update:

• For some reason the version was showing as v1.0(null). THAT WAS STUPID. Now it should read v1.0.AWESOME. Or possibly just v1.0.1.
• Re-enabled ads. I know, I know. GROAN. Let's just pretend it was a special treat and continue on with our lives.
• Fixed the bug that was causing that crash you got when you paid for the in-app-purchase. You know, the one that removed the ads that weren't properly enabled in the first place? If you did experience this crash, my wallet and I thank you.
• Sometimes the app would try to add non-existent GIFs to the library grid, which would cause the whole thing to go down in flames (not real flames, metaphorical flames). APPARENTLY THIS APP IS HAUNTED. Don't worry though, I called the Ghostbusters!
• Added some additional measures to ensure that no crashes occur when you use the Photos tab in the Explore section. I mean, it might still crash, but now it's 37% less likely to do so. Well, it feels like it might be 37% less likely. All I can really guarantee is that it's more than 0%, which is still an improvement.
• Suddenly, a wild bug appears! YOU CRUSH IT! +400XP
• There are a few other tweaks and fixes that are so small it's not really worth talking about them individually. But they're all very important to the stability of the app as a whole, and so I'd like to take a moment to thank them for their contribution to the greater cause.

Feb 04
Version 1.0

Click to see more