Topic: e305 - Yet Another (Unofficial) e621 Mobile App. [Android]

Posted under e621 Tools and Applications

Last Updated: 8/20/2020 6:00AM
(Remade topic after hiding original by accident)

Why and What

So let's get a few things out of the way. I'm not a UI designer, I'm not an app designer, But I am an ML Engineer (and I guess recent App Dev hobbyist :P ). I decided to make this thing because I'm interested in e621's API and I think that it could be used to make a dangerously cool recommendation system.

Oh, and it's named e305 because of e(926 - 621).

(Build: Release: 2.6.6 -- Open Sourced)

You can download the app here through firebase (Auto-Update): https://appdistribution.firebase.dev/i/bcf712ac91eb5067
Or here (Just the APK, no Auto-Update): https://github.com/Archid-Arcadia/e305/releases

(This App is designed with Flutter, so there is an iOS app and I've tested it and know it works... just not sure how to distribute that as it can't be uploaded to the App Store... I tried)
There was a public Play Store release, but it was removed, apparently, this site is against Googles TOS oh well maybe they'll be an AppStore one in the future... but not yet.

I'll keep an eye here for any improvement suggestions and any odd behavior anyone finds. ๐Ÿ˜Š

(I'll update this post with new information... and to make this post fancier)

Features/Bugs/and Crystal Balls

Current Features

  • Post Search (duh).
  • Languages: EN, ES, DE
  • Pool Search.
  • Favorites.
  • Follows.
  • Trending.
  • Blacklist.
  • Voting.
  • Commenting.
  • Comic Reader, long-pressing on a photo (or clicking the book icon in pools) activates comic slider mode for easy reading.
  • Beta Channel: Login Blacklist (read-only, [Note: not after API swap]) & Fav (read/write) Sync
  • Night Mode.
  • Basic Comment parsing.
  • Responsive UI for orientation.
  • Pinterest rip-off post-Page.
  • Caching.
  • Wiki for tags.
  • Rating filters.
  • Rudimentary Recommendation System.

Current Focus:

  • Recommendation system. The algorithm is fairly simple right now and doesn't tap into the ML core used for preloading content yet; but it really should. Primary focus.

Experimental Features:

  • Recommendation system.
  • Comic mode directly from pool search.

Fixed:

  • Long-pressing a tag to block actually works now instead of quietly deleting your blacklist for the remainder of your current session.

Known Issues:

  • Tell me if you find one ๐Ÿ‘

Coming Soon:

  • Tutorial Introduction.
Changelog

June 9, 2020:

  • Oh boi, I keep forgetting to update things here.
  • So so much has changed. There's a Changelog built into the app to log all of these.
  • The highlights though, Comment system received some polish it's now blisteringly fast.
  • Pool browsing got tuned up so it doesn't have phantom glitches that prevent it from loading posts anymore.
  • The Post Get system has been hyper-tuned, it can get ~1000 posts a second now. Most network requests even complex ones are under a second now.
  • Things are faster UI is cleaner, check it out and leave a comment if you find something unsavory.

March 16, 2020:

  • Commenting has been added.
  • Voting has been added.

March 7, 2020:

  • Login is available, on the beta channel. Blacklist sync is disabled, as its new endpoint is still a mystery.

March 6, 2020 (Later that day):

  • Comments restored with some Voodoo hack and slash nonsense.
  • Forced Blacklist managed.

March 6, 2020:

  • Survived the great API apocalypse of 2020.
  • Comments are unavailable as the endpoint to reach them is MIA.
  • Login is disabled as its currently undocumented. For what we use it for (blacklist, favorites, and comments)

March 4, 2020:

  • Login Support!
  • Allows syncing for favorites and blacklist; though the old e621 API (new one might fix this) doesn't seem to have a way to update the blacklist, just read from it, so blacklist is one way, we can get your blacklist and you can add more in the app, but anything added in the app won't make its way to your account.
  • Comic mode! Its fancy, long-press on nearly any image (not icon images) and you'll be put in the new comic reader mode, it allows you to quickly swipe through full-sized images. It's designed mainly for pools, so there's an icon to launch it directly inside pools, but it can be initiated in most places. Easter Egg: Including the posts children's slider

February 15, 2020:

  • Recommendation scores default to off now.
  • UI improvements
  • Yet more speed enhancements.

January 31, 2020:

  • Oh where to begin...
  • Bug fixes.
  • Recommendation scores added to posts.
  • Performance improvements to post get systems.
  • Trending page (home) updated to not rebuild every single time you jump back to it.
  • Trending page default carousel updated to less computationally expensive version.
  • Restored, loading preview image (somewhere along the line it was disabled).
  • A slew of new settings.

January 7, 2020:

  • Bug fixes.

January 5, 2020:

  • Bug fixes.
  • Language support experiment. (German & Spanish)

January 3, 2020:

  • UI tweaks for viewing a post. Dropdown menus are added for a cleaner UI.
  • A deluge of new setting options for performance/style/ and experiments.
  • Speed enhancements.
  • No more "No trending" lie, if nothing is trending for today, we'll get yesterdays, or last week, or last month or last, etc.
  • Visual indicator for whether you liked a post already. Used to be available in older versions, but was removed until it could be improved to handle 1000+ favorites, ladies and gentlemen we did it... probably, you tell me.

December 16:

  • UI tweaks, navbar now no longer takes system default color (dark mode / light mode) but instead takes it from the app's settings like everything else. (Changing navbar will require a restart though)
  • Optimized greatly search speeds, and pulling posts from memory. (We now load posts so quickly that slow UI updates are not going to stand in the way of you getting yourself throttled from constant requests :P )
  • Temporarily shuttered search suggester (the one in fav stats) for public release, It'll be back and better than ever thought! Just you wait.
  • And of course PUBLIC RELEASE, we're public now!

December 14:

  • UI tweaks, cleaned up spacing and fixed Pool screen extending under the visible view.
  • Performance Tweaks, less frequent utility function checks, like updating the search bars suggestions.
  • Testing Ad deployment, with the goal being for them to be easily ignorable and fairly unobtrusive.

December 8:

  • e621 Icon on posts to route you to the e621 link of the post.
  • Fancy Trending Cards experiment.
  • Smoother scrolling.
  • Fixed Video removal issue.
  • Disabled ArtistPreview (added extra step to search artist).
  • Tapping the icon of the page your on takes you back to that page's "home".
  • And tons of bug fixes.

December 2:

  • UI tweaks.
  • Bug smashing.

December 1:

  • Polish.
  • A lot of under the hood tweaks have resulted in a smooth glide, it's faster than its predecessors by nearly 200% (no joke, we measured it) A lot of these changes are upstream from the libraries we use and some from local changes but a win is a win!
  • Tiny itty bitty tweaks here and there to the UI so that its not quite so annoying... or just odd.

November 29:

  • Down with the drawers and up with the navigation bar! A major shift in UI theme has been pushed to cert hopefully making the app more user-friendly.
  • New Navbar
  • Removed Drawer
  • Better Theme management
  • Exit paths on all pages.
  • Less reloading == better data rates and a faster app.

November 26:

The Water rises, Pool Search has been added. No running!

  • Long Pressing on images in their search pane and certain other areas <.< will allow you to scroll left to right to other posts. Added mainly because scrolling through comics the old way is jarring.

November 25:

(affects carnival barker voice) ~Ahem~

  • We've got Trending cards.
  • We've got recent Activity Sliders.
  • We've got a smarter filter.
  • We've got speed enhancements.
  • (Work has begun on Pool searching)

November 23:

  • Children & Parent Post parsing.

November 18:

  • Suggestions? A mysterious suggestion bar will show up on the post search page sometimes suggesting tags to add to your search. Not much of a mystery, it generates suggestions based on your searches during your current session, future iterations will take into account your favorites as well.

November 16:

  • Better back logic, to solve memory clogging issues.
  • Added fav-count to search page.
  • Added setting to toggle off the above new feature.

-- Open Beta Begins --

November 15:

    • Added tag recommender (It's in Favorites > Stats)

November 13:

    • Added Artist Spotlight test UI.

November 12:

    • QoL improvements.

November 11:

    • Orientation Support, landscape should take advantage of the new screen position... right?

November 10:

    • Favorites are now preserved locally.

November 6:

    • Massive UI overhaul and reinforcing backend logic.

October 28:

    • Changed timestamp to the difference from now.

October 27:

    • Date Timestamps on search page

October 25:

    • Block SWF content.

October 21:

    • Cache all the things.

October 20:

    • Improved request logic to adhere to best practices for e621 API

October 18:

    • Icon

Updated

Alright! Phew, version 357 (A.K.A. Autophobia) has been sent to Cert for the Play Store ๐Ÿ˜„. I'm being warned that with the current health crisis, it might take up to 7 days to get through though. This update adds commenting, comment voting and post voting to the main release channel. If you like living on the wild side and don't want to wait potentially 7 days, you can always join the Beta channel for some immediate gratification though :P . In the meantime, I'll be slowing down my rapid release schedule to really stop and look at what new options the API is bringing down the pipeline, expect a major UI overhaul in the immediate future. ๐Ÿ”ฎ

Version 436, is out of the forge. And its the best one yet ๐Ÿ˜‰
Check it out and tell me if anythings off there's a lot of experimental modules in this cookie trying to "tailor" (release codename) the app to your device. If you run into performance issues, leave a comment I'd love to tweak those modules to fix your issue.

Bad news, the app got removed from the Play Store for being too lewd. It has NSFW filters and all that, but it wasn't good enough for the reporter I guess. Oh well, the app is now distributed through Firebase directly. Firebase does install its own program (It's used for auto-updating the app) before allowing the download though, if you don't want auto-updates (I get it) or don't want 2 apps for the price of one (I crack myself up) then you can use this Google Drive link for access to the APK directly ๐Ÿ˜ƒ: https://drive.google.com/drive/folders/12Z65-BSSjZO40w_yBtywm1spU3gkP5un?usp=sharing

archid said:
Bad news, the app got removed from the Play Store for being too lewd. It has NSFW filters and all that, but it wasn't good enough for the reporter I guess. Oh well, the app is now distributed through Firebase directly. Firebase does install its own program (It's used for auto-updating the app) before allowing the download though, if you don't want auto-updates (I get it) or don't want 2 apps for the price of one (I crack myself up) then you can use this Google Drive link for access to the APK directly ๐Ÿ˜ƒ: https://drive.google.com/drive/folders/12Z65-BSSjZO40w_yBtywm1spU3gkP5un?usp=sharing

OH Almost forgot, now that it's not shackled at the wrist to the Google Play Stores whims, I'm working on opening up the Github Repo to share some of my workarounds for working with the API and maybe get some tips on how to improve this beast further. ๐Ÿ˜… Still scrubbing it of private Play Store identifier stuff though.

Still working on it. Kinda shelved this honestly, but if theres enough interest in seeing the guts of this beast I'll focus more on it. Currently the slowing factor is FireBase, this app has VERY deep firebase integration, which is of course bound to my account. The modules and functions that use firebase need to be rewritten (somehow) to use a local alternative. I could also just release the current version with credentials scrubbed, but then the app just wouldn't work unless someone set up their build environment just like mine.

But don't mind me, its certainly coming. (I'm definetely bored enough in quarantine to get it done)

It does not, only because I didnโ€™t think about it. Iโ€™d have to think up how someone would interact with the feature. When the user searches for something they get the ability to download all results? Downloading all favorites from a particular artist?

Howโ€™d you imagine using the feature?

One of the features is "follows". Does this mean following specific tags and getting notifications for new posts with the tag(s)? If so, where is that in the app, and if not, what does it mean?

Thanks <3

Always nice to see people revive projects. Two things:

- Firebase is preventing new users from downloading the app (error: This app is at the tester limit; Ask the developer to free up slots by removing testers)

- Some screenshots would be appreciated for new people

That's all! Not sure if you're still working on this, it'll be the github's anniversary in 2 days.

Hello everyone,

I am unsure whether the original creator, archid, is still working on this project,
however it does not seem so.

Because I was intersted in the recommendation algorithm mentioned in the features
I took a look at the source code that was posted.

From what I've seen, so far it seems to pick random tags from the last 100 or so favorited posts.
I was personally not entirely satisfied with this implementation, so I wanted to give it a shot myself.

rewrite

I decided to completely rewrite the entire app from scratch.
The source code of this app wasn't compatible with the kind of flutter development I do.

I tried to retain a design that is similar to the original.
The theme is a bit different and certain elements have been shuffled around.

The recommendation system works differently now.

When logging in, the app will create a database of your latest ~1200 favorites (you must have at least 200 favorites)
and then use those favorites to score the tags on posts. This is then used to give a post a score overall.
Higher scores should correlate with the post being more interesting to you.

features

- recommendations (as mentioned)
- search posts and pools
- see descriptions, tags and file info
- see comments (no writing comments yet)
- download images
- parent, child and pool links
- pool reader mode
- blacklist support (except ~)
- dark and light theme (dont try it)

Screenshots of what the app looks like can be found HERE
(yes, the app also runs on windows, but I only do that for debugging, there isnt any support.)

support

I will work on this project when I feel like it, but I do intend on further improving the recommendation system.
This is therefore a somehwat "maintained" version of e305, in case you were looking for such a thing.
There's a discord server you can find me in case you find bugs or have suggestions or things like that.

You can find all that on the github. The entire source code is and will remain open source at all times.
The app is automatically built with Github Continous Integration and a fresh APK and IPA will be available to you.
This means, the app supports iOS and Android, however, there is are no store entries.

I must also mentioned that normally I work on another e6 mobile app, e1547, and it will have priority of my time.

download

You can download the app on the Github

There is no auto-update, but I might post here again if I do something more.

This version will not be compatible with the old version that you have already installed.
I have changed the package name and it is signed with a new key.
You will have to reinstall the app.

Love it โค๏ธ, I fully support this rewrite.
Your right I haven't been updating it since I couldn't really think of any new features that had me excited enough to push out a new build.

Then time got away from me. In truth I couldn't get the recommendation model small enough or light enough to run on most devices (according to FireBase). The few test devices I have made that very apparent as well. In truth the neural recommendation engine was my main pursuit and once it became clear that I'd have to give in on speed or on-device processing to reach my goal I quickly lost interest.

BUT, I'm liking what I see here! Quality work. ๐Ÿ˜‰

You have the floor

archid said:
Love it โค๏ธ, I fully support this rewrite.
Your right I haven't been updating it since I couldn't really think of any new features that had me excited enough to push out a new build.

Then time got away from me. In truth I couldn't get the recommendation model small enough or light enough to run on most devices (according to FireBase). The few test devices I have made that very apparent as well. In truth the neural recommendation engine was my main pursuit and once it became clear that I'd have to give in on speed or on-device processing to reach my goal I quickly lost interest.

BUT, I'm liking what I see here! Quality work. ๐Ÿ˜‰

You have the floor

In that case, if you are interested, I would love to invite you to the discord server!

Having an algorithm that makes post recommendations for users is a great idea
and so far my efforts havent returned the greatest results.

The few users I have on my server also seemed very interested in the idea.

Maybe we could work on this together.
I am not as cool as an ML Engineer, just a regular programmer,
but two heads are better than one, and I feel like your contribution to this could be very valuable.

I have written the code for the algorithm outside of the app and then integrated it,
so a more data-sciency setting is available for development too.

Let me know if this is something you would feel up for.

binaryfloof said:
In that case, if you are interested, I would love to invite you to the discord server!

Having an algorithm that makes post recommendations for users is a great idea
and so far my efforts havent returned the greatest results.

The few users I have on my server also seemed very interested in the idea.

Maybe we could work on this together.
I am not as cool as an ML Engineer, just a regular programmer,
but two heads are better than one, and I feel like your contribution to this could be very valuable.

I have written the code for the algorithm outside of the app and then integrated it,
so a more data-sciency setting is available for development too.

Let me know if this is something you would feel up for.

Sure Iโ€™d love to, doing the UI and errโ€” everything else was kind of a โ€œletโ€™s see if I canโ€ exercise.

Also, your plenty cool ๐Ÿ˜Ž. ML engineers arenโ€™t special, we just have a great PR team ๐Ÿ˜.

Yes, we are now concentrating on working on e1547.
The recommendations might be integrated there at some point. Its still in development.

  • 1