GIFwrapped Cheats

GIFwrapped Hack 2023.2 + Redeem Codes

Manage your own GIF collection

Developer: Daniel Farrelly
Category: Entertainment
Price: Free
Version: 2023.2
ID: com.jellystyle.GIFwrapped

Screenshots

Game screenshot GIFwrapped mod apkGame screenshot GIFwrapped apkGame screenshot GIFwrapped hack

Description

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$4.99 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

Version history

2023.2
2023-05-18
Yeah, hey, I'm back. I think I left some stuff here… do you mind checking around? Thanks. Also, while I'm here, I might as well let you know that I've fixed a little issue with the last release.

- Twitter's calls to it's own API are breaking (occasionally? it's hard to tell TBH), and it surfaced an issue within GIFwrapped's parsing. The good news is that I was able to pin it down and make the new infrastructure even better as a result.

That's it! Thanks for using GIFwrapped, and remember, if you need to reach out… you can toss an email at [email protected] which will put it directly in front of my eyes.

Until next time, remember: you have the power to make someone's day!
2023.1
2023-05-04
I know! Just when you were thinking "Geez, that guy who makes GIFwrapped must be taking one hell of a nap," I appear out of nowhere and bring you an update. It's just what I do.

- The big news with this update is that I finally got fed up with my insanely fragile Twitter integration, so instead of doing the normal thing and fixing it, I tore the entire Search infrastructure that I built and re-did the whole thing from scratch… and this time I didn't just use a paperclip and a wad of gum. Much better. YOU'RE WELCOME.

- I was also scrolling through the simulator the other day, with a bunch of thumbnails downloading from my Dropbox library… when I stumbled headlong into a UI lockup. I took a beat, dug into it a bit, and discovered that past-Jelly chose to make every access of the connected sync client one where it has to iterate through a list and verify that the client is connected, which is… bad. Good news: it's not that way any more.

- At some point, the About screen's illustration started getting weirdly inset from the screen edges, so in a fit of mild annoyance, I ripped out the SwiftUI-powered List in favour of a proper compositional layout in UIKit. Future-Jelly will probably regret this move, but he can go jump in a lake… at least this one looks and works as intended.

Thanks for using GIFwrapped! If you'd like to reach out and tell me secrets (only good ones please), you can do so by emailing [email protected].

Until next time… eat your vegetables. Unless you're a carnivore.
2022.5
2022-10-20
It's been a couple of months since my last GIFwrapped release, so I dare say we're well due for an… oh look here! It's an update! What luck!

- I finally (finally!) got around to tying up some loose ends in the preview screen rewrite I _mostly_ released back at the beginning of June. This improves the behaviour of the transition from the image to info, makes the scroll gesture a little more forgiving, and has the scrollbar appearing ON TOP of the image. SORCERY!

- I've been meaning to give the ol' GIFwrapped icon a bit of a refresh for a while now, so I spent a couple days in Sketch getting things nice and tight. It's pretty minor, but if it helps any… there's also six entirely new alternate icons to choose from on iOS, including a pretty spiffy rainbow one. YOU'RE WELCOME.

- While testing something entirely different, I stumbled on the fact that the Dropbox sync status wasn't being updated properly, and causing it to get stuck. Long story short, past-Jelly had wired things up with a didSet and then wrapped things with a lock for thread safety, but those two things weren't living well together, so one had to go. Don't worry, though… it wasn't the thread safety part, I swear.

- Shortly after launching the last update, I noticed that there were situations where a download could be enqueued multiple times. Not really a big deal, except for the fact that it also meant that the app would crash. I tweaked the code to only allow it to enqueue the download one time, so that should be the end of THAT.

- There were a couple of instances where, upon following a series of steps, one could cause the search drawer to appear while looking at a GIF preview, and that's not how it's supposed to work. I threw in some breakpoints, ran through a few scenarios where I knew it was getting triggered, and it should behave a little better now.

Thanks for using GIFwrapped! If you'd like to reach out and tell me secrets (only good ones please), you can do so either by emailing [email protected] or by hitting up @gifwrapped on Twitter.
2022.4
2022-08-03
There's no shortage of things to improve within GIFwrapped, and so I've been hard at work improving things (as I'm sure you know). This release in particular has some real doozies.

- A mate of mine has been gently nudging me for months about an issue with downloading and displaying the preview for GIFs stored in iCloud, and because I'm a good friend… the problem has sat in my backlog waiting for me to spend time on it for months. The good news is that I finally did, so downloads from iCloud are now less likely to fail immediately after a cold launch, or when using the Messages app. Aren't I _such_ a good friend? DON'T ANSWER THAT

- iCloud downloads have historically also been a source of UI lockups, particularly when a bunch are happening all at once. With this in mind, since I was in there already, I decided to refactor things to be a little less of that. Feels much better… to me at least.

- Scrolling the main grid was real janky on macOS, and I never really dug into exactly why. At some point I did make some minor improvements, but nothing particularly noticeable… until I recently looked into why the memory usage was so high. Turns out both issues had the same cause: the thumbnails were e-flippin-normous. After a little tweaking of the grid scaling to reduce the overall scale, the memory usage plummeted and the grid now scrolls very nicely. You're welcome.

- I've not exactly been thrilled with the Settings screens that I built out in SwiftUI, in part because of simple stuff, like the fact that the Search History screen in Settings lost its search controller because of the way that SwiftUI embeds UIViewControllers. So when a mate of mine (not the same mate for those keeping score) showed me how to have my cake and eat it too, I was so thrilled that I just had to get it in ASAP.

- I've been noticing a regular issue where results from search engines fail to be decoded for one reason or another, which isn't ideal. I adjusted the parts that were failing to make 'em a little more robust (stupid APIs returning empty strings instead of nil), and they should be OK from here on out.

If you have a particular bug you'd like to see fixed, you'll be super pleased to know that you can tell me all about it. Either send an email to [email protected] or tweet @gifwrapped… or even jump on r/gifwrapped and let me know what you're thinking. In the meantime, I'll just be over here continuing to make things a little better for y'all.

Until next time!
2022.3
2022-07-10
Time for another GIFwrapped release, with fixes for bugs and some minor improvements. Very, very minor.

- Pretty quickly after WWDC, I started to receive messages to let me know that the app was crashing on launch for a specific subset of very eager updaters. I don't officially support future OS versions (and I'm certainly not allowed to talk about them), but what can I say? I'm a softy.

- Ever since iPadOS introduced native keyboard navigation, it's been at odds with the version I built a year or five back. This is good and bad, because while I'm definitely keen to delete code, I'm not in a position to do so juuuust yet. In the meantime, I've done what I can to improve things a touch, just to make it usable again.

- The "Get Info" option in the context menu isn't really used that often, so it should be no surprise that it got broken on iPadOS and macOS somewhere along the way to updating the preview screen. A little rearranging of the logic to have the UI state updated at the right moment, and the option works once again.

- The advanced command words (which start with a bang and allow you to use an alternate search engine for a query) weren't working correctly because, for whatever reason, they were getting left in the query being sent to the server, and it'd totally bone the results you got back. I reworked the way it's handled, and now they work again. Clockwork.

- I wanted a better solution for my logging and analytics infrastructure that would let me share most of it between a bunch of my various apps with minimal effort. To do so, I ripped most of the good stuff out of GIFwrapped and into a format I could share, then reintegrated the whole thing back in. Not a big deal for you, but a decent quality of life improvement for me.

Thanks so much for using GIFwrapped! I really hope you enjoy it, and if you don't… I guess you could probably reach out to me and let me know why? Emailing [email protected] or tweeting @gifwrapped should get your words in front of my face, and from there I will do what I can to help.
2022.2
2022-06-12
I'm back, and it's been a hectic week… at least in part because I've been cobbling together fixes for the highest priority issues to come out of the latest release. In all honesty, this is why big releases that take a long time are dangerous: stuff slips through the cracks. If you got caught up in the nonsense, then please know: I'm truly sorry.

- In moving the library state over to using Codable structures, I forgot to account for dates as being a type of thing that needed to be decoded. I know, right? This obviously came back to bite me when a bunch of people who use Dropbox or iCloud sync updated to find their local library empty, which was simply because the data couldn't be read from disk correctly. Not… ideal.

- Dropbox's short-lived tokens are the gift that keeps on giving. The token update did help to ease a lot of issues—because the token could actually refresh—but there were still some calls that would occur after expiration, so they'd error out until the refresh occurred. I've now made it so that the token is pre-emptively refreshed for all Dropbox API calls, so there'll be significantly less of that nonsense.

- A small difference in padding between vertically and horizontally stacked labels in the GIF Info panel was causing constant layout updates and—in some cases—causing the app to completely lock up when opening a GIF's preview. Once I tracked it down, it wasn't hard to resolve: just make certain calculations use the intended value rather than the current one. Very obvious… in retrospect.

- I'm never against introducing a small engine to GIFwrapped, especially when a website's creator uses and enjoys the app. So this release adds a bonus: rudimentary support for parsing the pages of @cackhanded's prolific GIF website, https://gif.cackhanded.net. Plug in a URL (or use the share extension) and you're off. Thank me later (or more aptly, thank Mark Norman Francis, whose collection is… extensive).

Thanks for using GIFwrapped! If you need assistance, are still hitting bugs, or just want to share the love, please feel free to reach out to me via @gifwrapped on Twitter, or [email protected] if you prefer all things email. I'm here to help where I can, or at least take notes so I can make my updates better.

Until next time, remember: a GIF is worth a thousand JPEGs.
2022.1
2022-06-03
Well, hello there. It's been a while! I, uh… *checks notes* …have a release for you? It's a good one, I promise.

- The preview screen has seen a number of improvements and rewrites in this release, like the introduction of a new inspector for the info view on iPadOS, subtle accessibility tweaks, and the death of a solid number of very minor bugs. It's been a big task, pulling apart the absolute nonsense that existed before and weaving it back into something infinitely more stable and maintainable, but if you're keen to know what I've been doing for six months… it's avoiding this.

- It's no secret that I've been wanting to find a solid alternative to Firebase, and while it's not easy to find something that is financially feasible, the upcoming GIFwrapped for macOS release forced my hand, because Firebase Analytics doesn't work on Mac Catalyst. As such, this update replaces Firebase with Bugsnag for capturing crashes, and TelemetryDeck for analytics.

- GIFwrapped has had a custom search bar implementation for the search card (on iPhone and split screen iPad) for a long while, but I needed to replace it with the system version for… REASONS. Which I did. It's also not eye-burning white any more, so there's that.

- For a long while, the main grid view of GIFs has been missing the tiny, single pixel high separator between each of its rows. This always bothered me, but clearly not enough to be able to add it as an issue in my bug tracker. UNTIL NOW MUAHAHAHAHA

- I'm attempting to right some wrongs that I made years ago with GIFwrapped's library storage by actually using a database (don't @ me)… but it's a big, long process. Step one: improve the data structures so they can be properly replicated in a database, which I've started to do by using Codable structures instead of the serialised, wild-west dictionaries of the past. Yee haw!

- On occasion, the library could get stuck in a loop where reading from the on-disk store would cause it to write to disk, which would trigger a read from disk, and so forth. This could also very occasionally mean that actual changes got lost in the process, so I found a really rudimentary way to stop reads from directly triggering writes that I'm pretty sure future-Jelly will truly hate. At least it works. Bad for him, good for you!

- It was recently brought to my attention that Dropbox wasn't staying connected between launches, and to my dismay, I discovered the reason was because Dropbox switched to short-lived tokens back in… September 2021. Oops. I dug in and rewrote my authentication layer to deal with that, then updated GIFwrapped to be able to refresh the token as needed. That should be enough to allow me to forget all about this for another couple of years.

- The search card was behaving a little oddly after holding a GIF for a preview when the search bar was focused. If you then cancelled out of the preview, it'd reset the keyboard, but the drawer would end up with an extra offset. It's because there's multiple notifications being fired, so I throttled that business to just react to the important one (the most recent).

Thanks for using GIFwrapped! If you need to reach out, you can pop an email off to [email protected] or hit me up via @gifwrapped on Twitter. I'm here to help, or at least to listen to what you have to say.

Until next time, remember to be kind to yourself (and to those around you).
2021.5
2021-12-06
Here comes a new update to take care of some pernicious little bugs that cropped up in the last release. Nothing huge, but important nevertheless.

- The recent update had a minor code change that made it so that sharing GIFs, even successfully, always resulted in a non-specific error message being displayed. Innocuous as that is, I couldn't let it stand, so I reversed the change that caused it. Did I cause another bug to spawn in the depths of GIFwrapped? Maybe. Probably. We may never know.

- It turns out that when I rewrote the Settings screens, I overlooked the Premium option for disabling the watermark added to Live and Burst photos when converting them to GIFs. I connected one up to the other, so it should respect what it’s set to once again.

- Like all social networks, Twitter often make changes to their website to introduce features, fix bugs… or just tweak stuff to "improve engagement". It doesn't always affect GIFwrapped's ability to download GIFs from Twitter, but sometimes they change just the right thing, and I end up with hundreds of emails telling me how bad GIFwrapped is and "how dare you censor me" which is just so much fun. Anyway, here's an update that restores parsing tweets for GIFs.

Thanks again for using GIFwrapped… especially if you're a Premium subscriber! I’m hard at work getting a macOS release ready to go, but if you need to reach out, toss an email to [email protected], or lob a tweet to @gifwrapped on Twitter. I’ll do what I can to help.

Until next time… happy holidays!
2021.4
2021-09-02
Over the past few months, I’ve been zoning in on GIFwrapped for macOS; slowly getting it ready for release, and making it as good as it possibly can be. Because it shares a large portion of its codebase with the iOS version, however, there’s a whole pile of small improvements to the iOS app that I’ve made over the past few months.

Like seriously, this release of GIFwrapped almost feels like a whole new app. Almost.

- GIFwrapped’s in-app settings have been getting a bit crusty of late, as apart from the occasional addition or removal, they haven’t had any love… and it was quite honestly a big ol’ mess. I’ve attempted to rectify this by taking everything and shuffling it around into more appropriate spaces, rebuilding the whole mess from the ground up, and basically just treating it like it’s important. Funny how that makes things a lot better.

- A few of the list style screens got a small overhaul; like the GIF info panel and the list of files in the File Sharing folder. This effort seems to have made it all feel a little nicer, but that could just be my confirmation bias talking. Either way, it finally allowed me to rip out one of the oldest pieces of code in GIFwrapped: so long StaticTables, and thanks for all the fish.

- It’s only been 18 months or so since that game about relocating to an island and paying into an untrustworthy raccoon’s pyramid scheme came out, so what better time to introduce an icon inspired by the most obvious counterpart from the game? In true fashion, you’ll have to spend a few bells on getting Premium to enjoy this icon.

- The interactive swipe gesture for dismissing the preview screen could cause the screen to snap to the first GIF in its collection anytime one got cold feet and tried to cancel out; a particularly annoying bug for those Premium subscribers who have paging enabled. It’s fixed now, so let’s just chalk this up to more of those classic past-Jelly misadventures.

- The GIF renaming screen’s bottom bar didn’t connect to the bottom of the screen, which looked a little weird on iPhones with safe area insets. This was due to a straight-up amateur move involving an unruly layout constraint, and has now been taken care of.

- Despite my best efforts, issues causing GIFwrapped to freeze up can be incredibly tricky to track down; partly because GIFwrapped is so complex, and partly because I’m barely competent at the best of times. Nevertheless, I spent a bunch of time deciphering a handful of potential causes, tracking them down, and finally making good on clearing out what I could find and understand.

- Every now and then I discover that all the objects that make up the preview screen aren’t being released properly when you exit, which causes them to stockpile in the background. This can get costly pretty quickly, and it’s not generally something you want. Anyway, it happened again, so I figured it out and resolved it… for now.

- I went digging into the code for the cells within the main grid view and discovered a treasure trove of little bugs and behavioural oddities. After spending some time looking through it and tweaking things, I think I got it working just a little bit more nicely. MINOR IMPROVEMENTS FTW

Thanks again for using GIFwrapped. I’m hard at work making things better and getting a macOS release ready to go, but if you need to get in touch, toss an email to [email protected], or reach out to @gifwrapped on Twitter. I’ll do what I can to help.

Until next time, kids.
2021.3
2021-05-19
I don't know about you, but from where I'm standing, 2021 feels a bit like life is pressing the pedal to the floor. As such, it's time to make good on the, uh… threat …I made back in January: this is the last GIFwrapped release to support iOS 13. On the up side, I've spent a little time duct taping a few sore points to try and improve things before I drop it like a hot coal.

- I ran across a few ways that the iCloud sync engine was causing duplicates to be created within the library. One was caused by moved or renamed files being synced from iCloud and GIFwrapped being unable to find the file locally (meaning that GIFwrapped treated it like a new file), the other being that when moving a file the update to the data store could end up happening twice. I tightened things up, found a way to better connect local copies to their iCloud counterparts, and GIFwrapped's iCloud sync should officially be the best it ever has been.

- I took a dive into the screen for renaming and moving files in an attempt to make it a little smarter, a little easier to understand, and a little harder to get into a situation where one could actually break stuff in one's Library. This is predominantly just a UI refresh, and it's not perfect, but I'm hoping it'll help make moving and renaming stuff clearer.

- The link on the Premium screen for managing subscriptions got broken when Apple changed it a while back, and it took me way to long to notice, and way too long for me to fix once I did (and I only did because a few nice people pointed it out to me several times, while I clearly just ignored them like a jerk? I'M SORRY, NICE PEOPLE. YOU DESERVE BETTER).

- In an effort to curb the usage of App Store reviews as support requests, I've removed the link to write a review from GIFwrapped's Settings screen. You're still free to write a review—especially if you have nice things to say—but you'll have to do it the old fashioned way. Sorry!

Thanks for using GIFwrapped! I'm still over here continuing to work on improving things, so if you need to get in touch, just send an email to [email protected], or hit up @gifwrapped on Twitter. I'll do my best to help you out.

Until next time, remember: BLACK LIVES STILL MATTER.
2021.2
2021-03-10
Oh, hi there! You got here just in time for me to tell you about the improvements in this release. Nothing big, mind you; just a little touch up here and there to help GIFwrapped be the best it can be.

- When I made changes to the various sharing activities in the last release, I messed up the monitoring of the underlying progress, causing it to occasionally crash on iOS 13. In my defence, KVO is finicky… but it does help to actually handle the observation stuff in the right place, which I'm definitely doing now. Promise!

- In an attempt to improve GIFwrapped's handling of Twitter GIFs, I jumped in and made some small modifications to help it avoid failing before the underlying page finishes loading. This means you shouldn't be seeing errors that pop up briefly, only to be replaced with content a few moments later. It also means that the "Save to GIFwrapped" extension should finally work for Twitter GIFs again. Here's hoping it sticks for a while.

- While I was poking around in the Twitter-handling code, I was able to identify a couple more potential sources of tweet content, thus improving the chances that opening a tweet URL will have a happy ending, particularly on occasions when parsing the HTML itself falls over.

- On occasion, when switching from an app where the keyboard is being displayed, GIFwrapped would open up thinking that the keyboard was visible, causing it to look weird. I got a couple of bug reports about it, so I jumped in to try and stop it from happening. Fingers crossed!

- The custom preview transition was a little janky for anyone using retina pixel density, so I jumped in and fixed it up real nice. While I was at it, I took a pass at making the in-app explanation of this option a little more clear, because I've gotten confused emails more than once, which is way too many.

- I've had the option to disable URL sharing as a hidden debug option for a while, and in my desire to work towards a cleaner settings screen, I figured I could toss it in as an actual option. WHAT COULD GO WRONG

- The settings button felt wrong being above the grid view instead of being above the sidebar on iPad, so I moved it. Yeah, you heard me. I know I promised no big changes, but I really couldn't help myself.

That's it! Just a short on this time. I'm still over here continuing to work on improving things, so if you need to get in touch, just send an email to [email protected], or hit up @gifwrapped on Twitter. I'll do my best to help you out.

Until next time!
2021.1
2021-01-22
Oh, hi there! It feels like it’s been a while. Has it been a while? I may have gotten a little caught up with all the wild new things I’m able to do by dropping support for iOS 11 and 12, but I think we’ve all made it through in one piece. Except that one person over there who appears to be… uh, three pieces? Awkward.

- As of this release, support for iOS 11 and 12 has been dropped, and the plan is to move to iOS 14 only in a few months time. This is a necessary move for GIFwrapped to keep improving and expanding into the future, as it means that I can utilise more system features and… don't have to keep old, busted code around. Who's ready for some new hotness?

- I wanted to try out a new bookmarks sidebar for the (eventually) upcoming macOS app, and found myself liking the concept enough that I figured I'd leave it in for iPads running iOS 14 as well. It also gave me the opportunity to upgrade the bookmarks system under-the-hood, so it means improvements for everyone (even on iOS 13)! You get improvements, and YOU get improvements! Hooray!

- The GIF preview screen also got an overhaul, with everything from improvements to the (Premium) paging feature, to GIF display itself. As a bonus, Premium subscribers now get a scrub bar that allows direct manipulation of the GIF playback… it’s almost like being able to control TIME ITSELF! Almost.

- iOS 14 brought with it warnings letting you know when the clipboard is accessed. In GIFwrapped, they were constantly being triggered by the presence of a couple of buttons used to make pasting from the clipboard a bunch easier, but I was able to refactor them to allow them to detect when they were necessary without actually touching the clipboard contents, so no more warnings… unless you enable the clipboard preview in settings.

- If one wanted to get GIFs from a Tumblr blog, one totally could… but it wasn't exactly the best experience. You'd be limited to posts on the first page, and you'd often end up with duplicates caused by different sizes of images being embedded in the page. So I wrote a proper engine to handle Tumblr blogs. Just pop in the URL, and off you go.

- I swapped out the underlying library used to create zip files within GIFwrapped (for a handful of uninteresting reasons). It’s not a perfect improvement, as the new code is slower than the old code, but everything is working smoothly, and the plans I have for this stuff can now be implemented, so I'm calling it a win.

- Downloading GIFs from Twitter was sometimes blocked by an error indicating that the image was empty, i.e. no pixels. Under the hood, variable frame rates were causing the actual number of frames to be different to what I was calculating, and iOS didn't like that. By going through the frames ahead of time, I'm now able to both get the correct number of frames and also calculate the correct duration for each, so the video converts as expected.

- As it turns out, if a search engine somehow returned duplicate results (i.e. the same GIF, but more than once), GIFwrapped would break down sobbing and crying on the floor, not knowing what to do. I let it know that it's OK to just ditch any duplicates, so this shouldn't happen any more.

- Ever since I introduced forever-dark-like-my-soul mode to make popups and modals fit better with GIFwrapped's colour scheme, the little text field for naming new folders had black text on a very dark grey background. I fixed it, but let's all just pretend it was like that for, uh… stealth reasons, OK?

Thanks for using GIFwrapped! If you discover any bugs (the software kind), and would like to see them sorted (again, the software kind… I’m not killing spiders for you), toss an email to [email protected], or tweet @gifwrapped. I’m listening, and I’ll do my best to help where I can.

Until next time, remember: you are valid, and you are loved.
2020.12
2020-09-23
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 [email protected] 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.
2020.11
2020-08-23
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 [email protected], or tweet @gifwrapped.

Until next time, stay frosty!
2020.10
2020-08-22
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 [email protected], or tweet @gifwrapped.

Until next time!
2020.9
2020-08-06
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 [email protected], 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.
2020.8
2020-07-01
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 [email protected], and I'll get back to you as soon as I can.
2020.7
2020-06-06
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 [email protected], and I'll get back to you as soon as I can.
2020.6
2020-04-27
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 [email protected], and I’ll be sure to take note.

Don’t forget to wash your hands!
2020.5
2020-03-25
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!
2020.4
2020-03-13
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!
2020.3
2020-03-09
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 [email protected], and you'll have my ear.

Until next time, remember to wash your hands regularly!
2020.2
2020-01-12
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 [email protected] with the issue. It helps make things better for everyone!
2020.1
2020-01-08
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 [email protected]… I'm always working hard to improve the app, and I'd love to hear your thoughts.

Until next time!
2.0.5
2019-09-11
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 [email protected] with comments and problems, or hit up @gifwrapped on Twitter.

Cheat Codes for In-App Purchases

Item Price iPhone/iPad Android
GIFwrapped Premium
(Remove ads and unlock additional features.)
$9.99
Free
II751582113✱✱✱✱✱ 66E21DC✱✱✱✱✱
GIFwrapped Premium
(Remove ads and unlock additional features.)
$0.99
Free
II751582113✱✱✱✱✱ 66E21DC✱✱✱✱✱

Ways to hack GIFwrapped

Download hacked APK

Download GIFwrapped MOD APK
Request a Hack

Ratings

3.4 out of 5
348 Ratings

Reviews

ApOfBeAnEx,
Recent update a disaster!
Original at bottom. The latest update brought back all my GIFs, thank goodness, most of them 4 times. So I did have to spend a significant amount of time deleting the duplicates. However, its functionality seems to have been restored and the developer had been pretty responsive. I'll add more stars after future updates go smoothly.

Original 1-star:
I used to love this app but the recent update had failed on every level. The first time I opened it I elected to turn on iCloud synch and ALL MY GIFS were gone. I closed all my apps, turned my phone off and on and now I can't get passed the "Synch to iCloud" screen. Very, very worried that I have lost everything.
ChazwickB,
Great idea and execution; Responsive and kind developer
This app such a fun, wonderful idea that I didn’t know I needed. GIFs remain one of the most enjoyable forms of digital self-expression, and GIFwrapped makes it easier than ever. The few bugs I experienced at the recent new version’s launch were quickly addressed. It’s important to understand that software development isn’t necessarily easy, and changing one thing can easily introduce bugs that would have been impossible to anticipate sometimes. If you haven’t done your part as a user of the app and contacted the developer for support and to report the issues you experienced, then it is unfair to leave a negative review based on those bugs. Give them a chance. And I can tell from my experience so far with this app, that they will do their best to resolve the issue and probably kindly inform you what went wrong too. I’m impressed with the support and service. That is to say nothing of the excellent panel design that is becoming an important player on iPhone apps, and the ability to access your library from the Files app. Yeah there are some bugs but if you reach out to the developer or even just read the release notes, it will be apparent that they are working hard to make this product the best it can be. Thanks for making this! 🙏
gpd21,
Unreliable
UPDATE - after I’ve lost my entire gif library twice, I can no longer say this is an app I’d recommend. The first time was due to a confirmed bug in the app. The second time was because the app added a toggle for iCloud access a number of versions before it could actually back up to iCloud. I enabled access and thought it was backing up there, but it was not. When I asked the developer why they’d request access to a person’s iCloud and not use it for backups or anything else clearly stated, I got no response. So that’s both sketchy AND the app has failed me twice at the one thing it’s supposed to do: store a collection of gifs.

Original review
Great app - there was a real need for this sort of thing when it first came out and this filled the void. Not over cluttered with unneeded functionality but has all the basics you'd want (store gifs, share sheets, import/sync functionality).
Zepfhyr,
Use iCloud not Dropbox
This had consistently been a 5-start review for years, but around a year or so ago, syncing with Dropbox became unreliable. It was possible to sometimes get all your GIFs back in the app from Dropbox, but it wouldn't "stick". After fighting it for months and months, I finally used a computer (can't use your iPhone due to some restrictions with copying or moving files into the GIFwrapped folder in iCloud Drive) to copy all my GIFs into the iCloud Drive folder and they synced perfectly.

So, if you're having a similar issue and it has caused you to stop using this app, this is my recommended fix for now. Hopefully, Dropbox integration will be fixed soon (or additional sync options will be added).
L'Varr Wyatt,
Great app, but lacking in some areas
Let me start by saying I really love this app, however, there are some issues.
1. The feature that lets me save gifs from twitter by sharing them directly to GIFwrapped only works about half the time. I usually have to end up manually doing it by copying the share link and opening the GIFwrapped app itself.
2. After the recent update this month, I can no longer send gifs in iMessage via the iMessage app. It simply refuses to load any gifs. While I can still share them from the app, this is inconvenient.

Other than these two issues the app is great and enjoyable. Hopefully they will be fixed soon so I can rate this app higher.
Anthony V. Ardizzone,
I paid full price for crashes.
When this app works, it’s great. Easy access to all of my gifs for sharing on social media. But when the app crashes, only a reboot of my phone will fix it and this is unacceptable.

Also (and this is a personal opinion), Dropbox sync is garbage. I have never had a good experience with Dropbox sync. iCloud sync has always worked better for me. I bought this app as it was highly recommended for this sort of thing and it is great when it works. But when it crashes (which happens every couple of days or so), having to reboot my phone every time to fix it is unacceptable.
RedRyder1977,
The (Unnecessary?) Update
This app has worked great for me for the past 4-6 months I’ve had it. Then all of the sudden it didn’t work for 4-5 days this past week, and when it finally did start working, I have 12 copies of every gif I had in my library. Then today, I saved a .gif from Twitter and then looked in my library, and there’s 12-15 copies of the .gif! Why is it continuing to automatically make multiple copies of the .gifs in the library??? 🤨
I’m guessing updates are a necessary evil to keep things functioning, but that’s just a guess on my part! (But I generally have found the app useful, so thank you for that).
Coopsyd1,
Best App For Extracting and Saving GIF’s
If you use Twitter, you’ve undoubtedly have come across a GIF that you just have to have for future use in your posts or texts. Problem is Twitter does everything in its power not to let you save it. Enter GIFwrapped. Just copy the Twitter link, paste it into the app search, and save it to your library. BAMM! Then easily access it when texting by using the app in the iMessage tray. Sweet and simple solution. I don’t write app reviews often, but when I do it’s because it’s well deserved.
graemeearly,
You had one job
Occasionally it will successfully download a gif. It’s very frustrating to have an app you can’t expect on to do its job reliably. There are major issues with duplicates in the cloud, for years now. They make saving to your local photo roll (the only reliable way to access the image) a few extra taps. It’s just a bad experience. If they focused on the one thing it is supposed to do perhaps it could be better. It’s really a one star app and a pity star. Like i said it occasionally works.
~(0_0~) ZombieGhost,
I like it
I really like using this app as a dedicated gif library/search tool rather than trying to use a keyboard gif. I am having a strange problem where search results do not load any gifs when I am connected to my WiFi network. I think this issue definitely has something to do with my network, as I had just set up a new system and had not had a problem with gifwrapped on WiFi before. (It is a Linksys Velop setup.)