Let me introduce my hobby project Snag. Check out the GitHub page for a list of features and install instructions.

I have created this to learn Flutter. Flutter allows us to have an app for multiple platforms running the same code.

The old android app was a big inspiration, was using it for years, but it started having issues before I started writing this app. Some of these issues have been fixed since.

This app needs Android 10 and above. On older systems I recommend you to use the other app sg

If you have a github account please report any issues, bugs and suggestions here. If you don't have a github account you can share your feedback in this thread too. Suggestions and ideas are very welcome, regarding the UI(especially), functionality, new features. I already have a few ideas, they will be ready in the near future.

About the iPhone version. I don't own an Apple computer, which is needed for releasing to the app store. You also need to buy a developer license, which was $100 USD, last time I checked. I'm looking into releasing the app for iPhone in spite of these hurdles, I think I found a way to do it, but it's going to take some work.

Contributions are welcome. Hit me up on steam if you have questions about the app or even about flutter.

PS: If you like the project, give it a star ⭐️ on the github page.

View attached image.
1 month ago*

Comment has been collapsed.

Reserved

1 month ago*
Permalink

Comment has been collapsed.

Changelog

  • v0.0.5 - smaller background task download, fixed not started giveaway opening.
  • v0.0.6 - bug fixes: hiding giveaways now works, there was an issue with bookmarking, better error explanation, other minor stuff
  • v0.0.7 - added the bookmark fix to every type of bookmark
  • v0.0.8 - fixed group and game giveaway lists when not opened from a giveaway
  • v0.0.9 - bunch of list loading fixes, green active filter icon
  • v0.0.10 - added a slider for the notification frequency, added button to remove all bookmarks except favourite
  • v0.0.11 - added setting to change font size in the app
  • V0.0.12 - changed some sizes
1 month ago*
Permalink

Comment has been collapsed.

I have started building pre-releases, to release updates that need some testing.

To start getting pre-release updates with Obtainium, enable Include prereleases in the package's settings. See image.

View attached image.
1 month ago
Permalink

Comment has been collapsed.

Do group giveaways display which groups are included?

1 month ago
Permalink

Comment has been collapsed.

Yes, once you open the giveaway you can tap on the green group icon or in the menu.

1 month ago
Permalink

Comment has been collapsed.

Thanks a lot, from a group admin :D

1 month ago
Permalink

Comment has been collapsed.

I'm planning to add the group members list too.

1 month ago
Permalink

Comment has been collapsed.

putting an app on the apple store was a hassle and a half. the 100$ isnt a one time thing. need to pay yearly to upkeep dev account and you cant keep your app up on the store unless you update the app every X amount of time or they remove it. cant update app unless you keep paying apple for access to a dev account.
only had one app and the only money i made off outside of like 37$ was in class action lawsuit vs them cause the shady illegal stuff they did.

1 month ago
Permalink

Comment has been collapsed.

I read about it. I am not planning on doing that, especially with a target audience this small. There are ways to do it without the app store. I just want to get the iPhone version done, just as a personal accomplishment.

Btw you're welcome to help since you already have experience with Apple development. Add me on steam of you want to chat.

1 month ago
Permalink

Comment has been collapsed.

i know nothing about that
paid my bother to make it
100% my ideas
https://shedspread.vercel.app/
i could ask him about smaller things. he is really busy with kids and work now tho.

1 month ago*
Permalink

Comment has been collapsed.

I thought you made the app. I'm not going to pay. I just thought you might be able to help with apple development in general.

1 month ago
Permalink

Comment has been collapsed.

just saying i could pass along questions and im sure he could point you to a website or tutorial that he used cause it was also his 1st ios app.
never said anything about payment outside of i paid my brother

1 month ago
Permalink

Comment has been collapsed.

Great work. I'll give it a star and be on the lookout for bugs/issues and stuff - I'd love to get involved if you're looking for help. I work with Flutter currently but there's no such thing as too much learning :)

1 month ago
Permalink

Comment has been collapsed.

Of course, you are welcome to make a pull request. Add me on steam if you have questions.

1 month ago
Permalink

Comment has been collapsed.

Good job, having more supported apps, meaning more choices, is always better.
Just one question is it support font size, or are you planning to add it?
And maybe you can add it to f-droid for auto update.
Once again good job.:)

1 month ago
Permalink

Comment has been collapsed.

Thanks. Yes you can increase font size. But after a while it starts to look weird. Probably I have to redo how the widgets are laid out, to adapt to every screen.

For now you can use Obtainiun for updates, it works well enough. F-droid will come later, it's a bit slow to deliver new updates.

1 month ago
Permalink

Comment has been collapsed.

Nice, I give it a try them, because I need glasses you know old and all that.:)

1 month ago
Permalink

Comment has been collapsed.

It should respect your system font size settings. Let me know how it goes and how could it be improved for you.

1 month ago
Permalink

Comment has been collapsed.

So no independent change, it using what a chose in the android setting?

1 month ago
Permalink

Comment has been collapsed.

Yes. I didn't think too much about different font sizes. Shouldn't be too hard to have an independent font size setting, I can whip up something in the coming days.

1 month ago
Permalink

Comment has been collapsed.

It is a niche problem so I get it not priority. I really like RedReader it have great option for the font.
I install the app and follows the development. :)

1 month ago
Permalink

Comment has been collapsed.

No, it's important and until now no one else asked for anything.

1 month ago
Permalink

Comment has been collapsed.

:)

1 month ago
Permalink

Comment has been collapsed.

Hey, with version 0.0.12 I have finally added a slider in the settings to change font sizes for the app. Let me know if you see something that doesn't look right or not big enough.

1 day ago
Permalink

Comment has been collapsed.

Hey GoatPimp, I just updated and amazing job on +3 I can see without problem. Very happy and thank you.:)

7 hours ago
Permalink

Comment has been collapsed.

Nice job! I had experience with React Native some years ago, and would like to try Flutter one day. Did you try React Native before? How do these two frameworks compare with each other?

1 month ago
Permalink

Comment has been collapsed.

Thank you. I have tried RN sometime in 2018, even getting a small timer app on web and android to run was a hassle, didn't feel like a multi platform solution. I don't know how it is nowadays, hopefully better 😅

After a while I gave up. Then a few years later I have tried Flutter, it was like witnessing magic. The same code running without any platform specific logic, just some minimal configs, on desktop, web, mobile. It's a great tool for solo devs. You can make an app with minimal platform specific knowledge.

Of course RN is more popular, since it's older. Also it's probably easier to find solutions for your problems, especially if you are a beginner.

If you have questions about flutter or the app, hit me up on steam.

1 month ago
Permalink

Comment has been collapsed.

Old time user here! I was the "alpha-beta" tester of the app! I can say that it improved a lot over the months!

1 month ago
Permalink

Comment has been collapsed.

Thanks for the feedback 👍 There's still room for improvement.

1 month ago
Permalink

Comment has been collapsed.

I have used the old SG mobile app every now and then. If this is going to take it's place, I am all for it. I'll get it and report in if I find issues. Thank you for your hard work!

1 month ago
Permalink

Comment has been collapsed.

I used sg a lot. This app wouldn't be the same without it. There were some missing features. At some point after a certain android version I stopped getting notifications and there were some other issues too. Some of them were fixed by the new maintainer. I still don't get notifications though.

It's still a great app, probably works better on older devices. I just didn't have the knowledge to fix it up, so I decided to start from scratch and finally learn flutter during the work.

Every kind of feedback is welcome.

1 month ago
Permalink

Comment has been collapsed.

I don't know if there's an implementation, but is it possible to hide giveaways already entered?

1 month ago
Permalink

Comment has been collapsed.

I have never thought about it, because I often leave giveaways if I don't have enough points.

1 month ago
Permalink

Comment has been collapsed.

+1 for that option. Without it giveaways page is really cluttered.

1 month ago
Permalink

Comment has been collapsed.

I will think about it. What does cluttered mean here? The font color is already different on entered giveaway. What if you could make the list elements bigger? Like 2x 3x size?

1 month ago
Permalink

Comment has been collapsed.

It is different but it it occupies the space for no reason. It is the same for me like if it would be showing giveaways for levels 8+ which I couldn't enter for example.

The rest of the app is excellent, very well designed. Although I would like if I could get to giveways and discussions (All) with one click only, and use the arrows to see specific categories only when necessary.

1 month ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 1 month ago.

1 month ago
Permalink

Comment has been collapsed.

Hiding them isn't difficult. I will add this to the fiter or maybe the settings. I will do a settings rework, I will add it after.

I can add a button for direct access. I was planning to add a default giveaway page anyway, because I only open wishlist most of the time.

1 month ago
Permalink

Comment has been collapsed.

I see. I have reached a point where I barely enter giveaways because I only enter with the intention that I'll play them if I win them.

1 month ago
Permalink

Comment has been collapsed.

Thanks a lot for this, I love it! Exactly what I needed since I had some problems with the old sg app. <3

1 month ago
Permalink

Comment has been collapsed.

You are welcome. Let me know if you experience problems with this one or have some ideas for new features.

1 month ago
Permalink

Comment has been collapsed.

Thank you, this is awesome!

1 month ago
Permalink

Comment has been collapsed.

Great job on the app! I'm sure it will be even greater in upcoming releases.
I wonder, though, why many people had to go through the effort of rebuilding the platform, if the maintainers of SG could instead make the website responsive and therefore give a great experience on mobile.
Is there no motivation for them to do that?

1 month ago
Permalink

Comment has been collapsed.

I think there's only one maintainer. I don't think the site makes enough profit to have it as an only income, so probably it's being maintained outside of job and personal hours.

There are only 40 patrons right now on Patreon and whatever the ad income is. Not a lot, since I'm sure it's not cheap to host the site. I would encourage everyone who cares about the site and it's future to become a patron. Especially if you want to see it getting developed. Most people get more out of it than any of the game bundles.

Doing UI that's great on every kind of screen is still not a solved issue. It would require a lot of rework all across the stack. It would require learning new tech before even knowing that it would work out. There's no need to break stuff if it works.

A website with this amount of traffic with basically no downtime is not an easy thing to achieve. It's a big enough job for one person.

I would prefer an API over a new UI.

1 month ago*
Permalink

Comment has been collapsed.

That makes total sense. I agree that an API would be great. I'm assuming you're just reusing the API calls made from the website but attaching some auth token to them in the app?

1 month ago
Permalink

Comment has been collapsed.

There is no API. I'm just scraping the html, sending some ajax calls I saw in the developer console and saved some cookies for authentication. Good old web scraping.

Well you could call the ajax endpoint an API, but it's absolutely minimal, it returns entry count after entering giveaways, a few other minor things or nothing in certain cases. Most of the data comes from the html.

1 month ago*
Permalink

Comment has been collapsed.

Hey GoatPimp, just a heads up, there are some pages that support JSON, which will be faster, easier, and more reliable to parse than the HTML.

https://www.steamgifts.com/discussion/XFaPQ/json-support

1 month ago
Permalink

Comment has been collapsed.

Hey, I had no idea about this. But after looking at it, I don't think I can use it.

It doesn't return if the user entered the giveaway. Also when I download the giveaway list I check the notifications too(messages, won and created). Profile details are not enough either, because I want to return the information from the banner too. Groups is missing a summary too.

The giveaway list needs a boolean for entered and there should be an endpoint for notifications.

Right now the background task for notifications and logged in check downloads the brand assets page, because that was the smallest I could find.

1 month ago
Permalink

Comment has been collapsed.

The giveaway list needs a boolean for entered and there should be an endpoint for notifications.

Sure, it's been added. You can make requests to the below for account information. If the user is not logged in, it'll return an empty user array.

https://www.steamgifts.com/account/settings/profile?format=json

If you want to include notifications (only include them if you need them), you can use...

https://www.steamgifts.com/account/settings/profile?format=json&include_notifications=1

Messages has a maximum value of 100. Unviewed keys is a boolean (which users currently see as a flashing icon in the notification bar).

Then for seeing if a user has entered a giveaway, you can use include_user, which will add a user array to each giveaway in existing JSON requests. This array includes a boolean value for whether or not it has been entered by the user making the request.

https://www.steamgifts.com/?format=json&include_user=1

Let me know if that does what you need, and if so, I'll update the official JSON discussion with the new information.

1 month ago
Permalink

Comment has been collapsed.

Hey, I have checked it out.

The notifications endpoint looks good. It should reduce the processing needed for the background task too. I also plan to include a time interval setting for the background task, so it will only check between the hours specified by the user, this should reduce the battery usage and the downloads too.

The giveaway lists are good too, they return the entered boolean in dlc, wishlist etc. But the pinned giveaways are missing, it would be great if the pinned giveaways are returned at least in the All list.

About the Profiles and the Groups, I want to display the information that's available in the banners(featured__container), including the picture from steamstatic, because I don't know how to resolve that without loading the steam profile or group in the background. Also it should include for Profiles if the user is whitelisted and/or blacklisted.

Basically I aim to return all the information that's available for the user on the webpage.

So, the giveaway list is almost good, but it needs to return the pinned giveaways too. Groups and Profiles need the banner information and if the user is whitelisted or blacklisted.

Also I was planning to include the ads at some point, I want to help you out. But they need a bunch of extra code to get them parsed and for opening them. So I decided to include them later. If there was an endpoint for ads it would make my job easier. It should return 4 ads with link, picture and title at least. But this is a topic for later.

1 month ago
Permalink

Comment has been collapsed.

I prefer native apps over multi-platform framework apps. I'll keep using the Prof-KK fork of the original app, but it is good to have alternatives. iOS user could benefit from this app, try to compile an ipa of the app, users in EU or with jailbroken devices could use it.

1 month ago
Permalink

Comment has been collapsed.

True true, there are many users in EU that would be glad to sideload that kind of an app. Since Epic can bring his own shop/app It's an easy process I guess.

1 month ago
Permalink

Comment has been collapsed.

Hello, thank you very much for the app. One thing I noticed is that if I try to hide a game (by opening a giveaway for it and pressing the eye icon so it's red), it doesn't work. Giveaways for the hidden game are still displayed in the All giveaways list. Haven't noticed any bugs apart from that, though.

1 month ago
Permalink

Comment has been collapsed.

Hey, thanks for the report! I did a bit of code refactor before the initial release and left in one character while I was copying things. I have pushed a new release, it should work now. Refresh the giveaway list and the game should be hidden in the new list. This release also includes a few minor bug fixes.

1 month ago*
Permalink

Comment has been collapsed.

Had to push another version 0.0.7, forgot to include the bookmark fix for every kind of bookmark

1 month ago*
Permalink

Comment has been collapsed.

Thanks again, can confirm it works now 😁

1 month ago
Permalink

Comment has been collapsed.

Nice, good luck! 💙

1 month ago
Permalink

Comment has been collapsed.

Thanks!

1 month ago
Permalink

Comment has been collapsed.

Such a great idea, I used to use sg alot back when it was supported so I'm sure lots of users will find this helpful
Good luck with the development!

1 month ago
Permalink

Comment has been collapsed.

Thanks, I have a lot of ideas for new features. Download Obtainium to keep the app up to date.

1 month ago
Permalink

Comment has been collapsed.

Hey, nice app!
I was just trying it out and I noticed that the 'All giveaways' page has them unordered. I can't seem to find an ordering option.

EDIT: I just noticed that it's just the first few that are out of order. They are the 'featured' ones at the beginning of the list on the web interface.
This behavior is only present on the 'All' page. I would find it useful to make the list actually ordered, especially cause the 'featured' ones aren't visually distinguishable from the rest, unlike the web UI. Maybe a toggle for this behavior in the settings, although I can understand not wanting to have too many options for all very specific use cases.

1 month ago*
Permalink

Comment has been collapsed.

What do you mean by unordered? It just shows the few pinned giveaways first. Can you upload a screenshot?

1 month ago
Permalink

Comment has been collapsed.

Sorry, I just edited the comment. If u still need the screenshot I can provide it, but yes, I was talking about the pinned GAs.

1 month ago
Permalink

Comment has been collapsed.

I was planning to do something to emphasize the pinned ones. Btw they're also visible in the Multiple menu. The app downloads the giveaway list from the website as it is on the website. There isn't much ordering I can do, but you can apply filters.

1 month ago
Permalink

Comment has been collapsed.

Apart from the pinned ones the ordering is fine. And I can probably get used to mentally filtering them out. But it would nice to have an option to remove them from the list, that's all.
Thanks for all the work you are putting into this!

1 month ago
Permalink

Comment has been collapsed.

Sign in through Steam to add a comment.