Hey, Codeforces! Since the last November, we've been off, but now we are back with a lot of cool stuff, so here is the update on what's new in Codeforces WatchR apps in App Store and Google Play.
Business-logic is moving to backend
We introduced the backend two milestones ago, but only the "Newsfeed" feature was implemented before now. Other features were still handled directly by mobile apps using Codeforces API, which made them complicated and unstable in some cases.
In particular, fetching followed users rating updates required many requests (one per user) whenever the user tried to refresh the list. It wasn't really scalable and stable enough, so the user experience was rather daunting.
Now, the refresh is done by a single request provided by our backend and happens almost instantly for mobile users. We are constantly querying Codeforces API to get the latest updates on the backend side with much fewer total requests overall.
Authentication flow
But to provide a great user experience, we decided to go even further by implementing authentication in Codeforces WathcR apps. It allows us to persist followed users between different devices and personalize the user experience in the long term.
At the moment, you can sign up (or sign in) with email/password only, but later we will add 3rd party login options as well (Google, Facebook, Apple, etc.). Please, note that it's not your Codeforces account, and we don't get access to your data or actions on Codeforces. We only use publicly available information for the in-app experience.
Account verification
But if you want the app to know who you are, we've got you covered by introducing the "Verify Codeforces account" feature. Again, it doesn't require access to your data or actions but based on public data, which you need to tweak a single time, so we know it's your account.
Account verification allows further personalization of your in-app experience and will serve as a basis for many awesome features coming in the following months. Here are just some of them:
- push notifications you care about (i.e., editorials for tasks you didn't solve during the last round)
- recommendations of problems to solve in topics you need to improve
- recommendations of educational content
- and much, much more
Do you have a feature request? Or maybe even a few of them? Don't hesitate to comment on this post with your suggestions ;)
Bug fixes
We've fixed a web experience in the Android app, so now you can upvote (and downvote) posts and comments, expand spoilers, see editorials, and even submit your solutions.
Overall we closed 26 issues in our public open-source GitHub repository for the Doyle milestone. BOGDAN_, denmen0207, Karavaiev and alla_dubovska will be super happy to receive some stars :)
Dedication
And finally, this milestone is dedicated to the great master of detective stories — Sir Arthur Conan Doyle. He created one of the most known fictional characters of all time — Sherlock Holmes. If you never had a chance to read them, please, do that right now, and your life won't ever be the same. Sometimes I want to reset my memory to read all that books again.
We are now searching for the author to feature in the next milestone, whose surname should start with "E". Please, comment with your suggestions.
I suggest David Eagleman for the next milestone name, American neuroscientist, author, and science communicator.
Wow, I didn't know him, but his bio is truly impressive.
I suggest Albert Einstein who wrote many scientific and popular-scientific books on different subjects including the famous "Relativity" book ;)