Your AFK Arena redemption codes simplified
more screenshots at afkredeem.com
The rationale behind sharing the sources is mainly transparency.
Getting notifications for new redemption codes is relatively easy and was done long before this app.
There are other fan-apps notifying about redemption codes, some fan sites facilitate web notifications or email subscription,
there's even an instagram account publishing new codes.
The difference with this app, however, on top of the notification capabilities,
is the usage of Lilith Game's API for redeeming the codes (which honestly makes it A WHOLE LOT EASIER).
The API is not officially supported by Lilith Games but several other community members
have detected it and put it to good use.
In the end the notion of a 3rd party app redeeming codes is somewhat alarming for some users, and perhaps rightfully so.
So the best move for mitigating those concerns was to publish the source code,
and disclose how the app operates for any member of the community to review and confirm there's no monkey business 🙉🙈🙊.
That being said, in order to protect the app, the license for the sources provided in this repo is non-commercial Share-Alike.
The app doesn't store any information outside the phone.
Moreover, the app also does not require local storage permissions.
Everything the app saves locally boils down to simple key value stores provided by either Android / iOS platforms (aka shared_preferences)
The only user-generated data saved on the phone is the user ID
entered by the user on first startup.
Other than that the app saves its internal configuration (redeem api supported versions, codes list, etc.) and trivial UI flags (e.g. disclosure consent, hypogean/celestial mode or whether specific brutus messages were already shown).
The app uses 2.5 network interfaces.
- Downloading the current list of codes from afkredeem.com upon startup / refresh
Receiving also in the same GET: general configuration such as redeemer api version support, brutus messages, etc.
+ a few server-side dialogs UI (plain html), e.g.about
and redeem api versioning support updates. - Redeeming the codes using Lilith Games redemption codes REST API.
The app sends the user ID and verifies the verification code, fetches user identity, and consumes any gift codes selected. The app uses in-memory cookies to maintain the session with Lilith Games API, however none of the cookies are stored. All of the above is sent directly and only to Lilith Games, while none of the byproducts are stored anywhere. - The app issues push notifications utilizing the Firebase Cloud Messaging solution (see below). This messaging framework uses platform-specific transport service (Android / iOS), facilitating notifications while saving the app the hassle of running any battery guzzling background workers.
The app uses Firebase Analytics and Firebase Crashlytics services.
As far as analytics go, only redeem & ad events are (anonymously) logged on top of the most basic default analytics firebase has to offer.
With regards to crashlytics, any error / crash the app experiences is anonymously reported via firebase.
Nevertheless, the app presents a disclosure dialog on first startup summarizing the above information with a link to this repo.
The app uses Firebase Cloud Messaging solution to receive push notifications sent from the AFK Redeem account. The app maintainers will issue notifications (currently manually) only in the event of a new redemption codes. Since both Android & iOS provide means to silence / mute any app's notifications, such configuration setting is not implemented in the app.
Well, there aren't any really 😅 but you can buy me a ☕
Any imaginable expense (from the afkredeem.com domain, through app stores costs, to development time & effort), was personally paid for.
Which brings us to the next point.
An ad banner is displayed while the app is redeeming codes. Ads are configured to be non personalized and use a static keywords list (see consts.dart). The humble ads income helps covering the initial expenses mentioned above, maintenance of the app's services, as well as ongoing expenses (WTF apple). Moreover, if future funds will allow it perhaps an automated notification server can be implemented & deployed in aws or smth.
The more the merrier
Yes, please!
Feel free to send pull requests with features & fixes for the repo. Every once in a while a new release will be issued and uploaded to the stores.
Please refer to the issues section to review or submit any feature request or report any bug detected.
AFK Redeem is a fan-app and is not affiliated with Lilith Games in any way.