2024.2
August 19, 2024
I'm trying to get more, smaller releases out the door… so I'm back, and I bring with me a tiny collection of fixes and tweaks that I've put together since the last release. - After 2024.1 got out the door, I immediately noticed that I'd get a crash on a couple devices when doing a search because a change to how I was treating search queries was causing an Equatable and Hashable mismatch. This is why you don't write custom conformances to those protocols, kids! - When cancelling a search, one expects that one can just go on living life. However, a bug was causing GIFwrapped to crash if the results hadn't come back yet, and that just wouldn't do. I fixed the issue where the section was being released unexpectedly, made sure things got cancelled appropriately, and now one can expect life to return to normal. - It seems like there was some issues with the way the IAP validation was being done on macOS… it's just slightly different enough of a process that I had to rewrite some bits to get everything working as expected. That said, it should work properly now, just in time for me to rip it all out and replace it with some sweet, sweet StoreKit 2 code. - A change I made to the 'Save to GIFwrapped' extension accidentally broke importing GIFs where the source application provides a file URL, like the Photos app. Thankfully, I got a lovely email from someone who set me straight, and now it's working as it should once more. That's it for this one! Small but meaningful. If you want to reach out, chuck an email towards support@gifwrapped.co, or hit me up at jellystyle.social/@gifwrapped if that's more your jam. Until next time, remember: don't be a turnip.
More2024.1
August 5, 2024
This update has been a long time coming. Aside from general life things, I've been hard at work improving many of the underpinnings of the app, some of which might be noticeable now, some not so much. Suffice to say that this work will continue, but hopefully a little more iteratively from here on out. - The time has come to disable Twitter support. It's not something I do lightly, but it has been a long time coming. As of this release, Twitter/X URLs will throw up a special error and won't even attempt to fetch or parse the relevant tweet… or whatever it's called now. If you're curious, there's more detail on my reasoning available in the User Guide. - Someone pointed out that the selected search engine isn't respected in the Messages app, so I spent a little too long rewriting a little too much code to solve that problem. Now the vast majority of preferences are stored in a way that will enable future use within extensions, and I can cross a small bug off the todo list. Definitely worth months of delay. - As it turns out, each time a new window was opened on macOS and iPadOS (yes… you can have multiple windows!), GIFwrapped would re-run a bunch of operations that only really need to be run at first launch. This is problematic in a couple of ways, so I rearranged a few things to make things only run as many times as actually needed… which is to say "once". - Swiping between pages and even sometimes opening a GIF was resulting in some crazy behaviour, and it would transition to the wrong image, sometimes even showing the right one and then replacing that with the wrong one. Turns out it was a system I use to pull updates to the image metadata to views which was crossing the streams and showing whatever came most recently. Not anymore though. Just one GIF at a time, thank you very much. - There was also some strange behaviour with resizing the preview screen, both on macOS and iPadOS. It's a numbers thing, with the complicated scrolling and scaling logic all playing a little wiggly when not exactly right. I've made some adjustments, and it seems to work much better now, which is a relief. This also helped solve some issues with tall portrait images not playing well with the scrolling behaviour of the info panel on iPhones. - I wanted to show the current state of the info screen in the navigation button, which turned out to be a deeper hole than I intended. Nevertheless, I succeeded in my mission, and you may all behold the fruits of my labour! First it's filled… then it's not… then it is again. MAGIC! - While I was doing some concurrency work in the Save to GIFwrapped extension, I stumbled across the fact that the individual GIF pages on gifs.cackhanded.net weren't saving properly, which is the fault of the underlying parser not supporting it. I dived in, made a super minor addition, and now it works exactly as expected. There's so much more going on under the hood of this release, but some of that is for another time. In the meantime, please enjoy this release, and as always… thank you for using GIFwrapped. If you need to get in touch, you can find me by emailing support@gifwrapped.co, or you can reach out to jellystyle.social/@gifwrapped. Until next time, remember to tell someone you care about how much they mean to you.
More2023.2
May 18, 2023
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 support@gifwrapped.co which will put it directly in front of my eyes. Until next time, remember: you have the power to make someone's day!
More2023.1
May 4, 2023
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 support@gifwrapped.co. Until next time… eat your vegetables. Unless you're a carnivore.
More2022.5
October 20, 2022
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 support@gifwrapped.co or by hitting up @gifwrapped on Twitter.
More2022.4
August 3, 2022
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 support@gifwrapped.co 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!
More2022.3
July 10, 2022
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 support@gifwrapped.co or tweeting @gifwrapped should get your words in front of my face, and from there I will do what I can to help.
More2022.2
June 12, 2022
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 support@gifwrapped.co 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.
More2022.1
June 3, 2022
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 support@gifwrapped.co 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).
More2021.5
December 6, 2021
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 support@gifwrapped.co, or lob a tweet to @gifwrapped on Twitter. I’ll do what I can to help. Until next time… happy holidays!
MoreRemove ads and unlock additional features.
Remove ads and unlock additional features.
Yes, GIFwrapped works on iPad devices.
Daniel Farrelly is the developer of the app.
GIFwrapped currently supports iOS 15.0 or later.
The average rating for the GIFwrapped app is 4.
The Primary Genre Of The Gifwrapped App Is Entertainment.
The current version of the GIFwrapped app is 2024.2.
The latest GIFwrapped update was rolled out on November 30, 2024.
The GIFwrapped app launched on February 5, 2023.
Parental supervision strongly recommended, may contain adult themes or graphic violence.
You can use the GIFwrapped app in English.
No, GIFwrapped is not on Apple Arcade.
Yes, GIFwrapped seamlessly integrates in-app purchases for users.
No, GIFwrapped does not support compatibility with Apple Vision Pro.
Yes, users are exposed to ads in GIFwrapped.