Codeforces WatchR 1.9.0 (Doyle): Authentication flowАутентификация
Difference between en1 and ru1, changed 3,976 character(s)
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Начиная с прошлого ноября мы работали над множеством нового функционала для нашего приложения Codeforces WatchR, обновление которого наконец-то доступно [App Store](https://apps.apple.com/us/app/codeforces-watchr-contests/id1495591299) andи [Google Play](https://play.google.com/store/apps/details?id=com.bogdan.codeforceswatcher).↵

![ ](/predownloaded/77/80/77803e14639f3d3035be0c2e82cfdadf85c91cea.png)↵

Business-logic in 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](https://codeforces.me/apiHelp), 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](https://codeforces.me/apiHelp) 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](https://github.com/xorum-io/codeforces_watcher/milestone/11?closed=1). [user:BOGDAN_,2021-04-08], [user:denmen0207,2021-04-08], [user:Karavaiev,2021-04-08] and [user:alla_dubovska,2021-04-08] 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](https://en.wikipedia.org/wiki/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](https://sherlock-holm.es/stories/pdf/a4/1-sided/redh.pdf), 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
Мы добавили серверную логику еще несколько майлстоунов назад, но использовалась она только для функционала "Новостей". Другие части приложения работали с [Codeforces API](https://codeforces.me/apiHelp) напрямую из мобильных приложений, что доставляло немало хлопот и негативно влияло на стабильность работы приложения.↵

В частности, подтягивание обновлений рейтинга требовало множества запросов (один на пользователя) каждый раз когда вы пытались обновить список. Такой подход плохо масштабировался и был нестабилен, что негативно влияло на опыт использования приложения.↵

Теперь же обновление выполняется с помощью одного единственного запроса предоставленного нашим сервером. Он отрабатывает мгновенно для мобильных пользователей. Мы же в свою очередь постоянно запрашиваем обновления через [Codeforces API](https://codeforces.me/apiHelp), чтобы получить последние обновления на сервере, в результате используя намного меньшее количество запросов.↵

Аутентификация↵
-------------------↵

Но для того чтобы сделать наших пользователей еще счастливее, мы решили добавить аутентификацию в приложения Codeforces WathcR. Это позволяет нам сохранять подписки пользователей между разными устройствами и персонализировать приложения в будущем.↵

На текущий момент вы можете зарегистрироваться (или войти) только с помощью почты/пароля, но позже мы добавим другие варианты (Google, Facebook, Apple и т.п.). Хотелось бы отметить, что мы не получаем доступа к вашему профилю Codeforces, а используем исключительно публичную информацию.↵

Проверка профиля↵
--------------------↵

Но если вы хотите, чтобы мы знали кто вы, такой функционал тоже имеется. Вы можете подтвердить свой профиль Codeforces с помощью единоразового изменения публичной информации (фамилии), после чего все можно вернуть как было. Так мы будем уверены что это именно ваш профиль.↵

Проверенный профиль позволит нам еще больше персонализировать приложения под ваши нужды, например:↵
- важные для вас уведомления (разборы нерешенных задач, например)↵
- рекомендации задач в темах, которые вам нужно подтянуть↵
- рекомендации образовательного контента↵
- и многое другое↵

Если вам нужен какой-то конкретный функционал, то не стесняйтесь комментировать этот пост ;)↵

Исправление багов↵
---------↵

Мы исправили доступ к веб-страницам в Android приложении, так что теперь вы можете плюсовать (и минусовать) посты и комментарии, открывать спойлеры, читать разборы, и даже отправлять решения.↵

В общей сложности мы закрыли [26 тасков в нашем публичном репозитории на GitHub для этого майстоуна](https://github.com/xorum-io/codeforces_watcher/milestone/11?closed=1). [user:BOGDAN_,2021-04-08], [user:denmen0207,2021-04-08], [user:Karavaiev,2021-04-08] и [user:alla_dubovska,2021-04-08] будут очень рады получить звездочки :)↵

Посвящение↵
----------↵

Этот майлстоун посвящается великому мастеру детективных историй — [Сэру Артуру Конан Дойлю](https://en.wikipedia.org/wiki/Arthur_Conan_Doyle). Он создал одного из самых известных персонажей своего жанра — Шерлока Холмса. Если вы еще не читали его историй, [прочитайте сейчас же](https://sherlock-holm.es/stories/pdf/a4/1-sided/redh.pdf), и ваша жизнь никогда не станет прежней. Иногда я хочу обнулить мою память, чтобы прочитать их все еще раз.↵

Теперь мы ищем автора для следующего майлстоуна, чья фамилия должна начинаться с буквы "Е". Пожалуйста, пишите ваши варианты в комментариях
.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en4 English yevhenii_kanivets 2021-04-08 17:46:55 2 Reverted to en2
en3 English yevhenii_kanivets 2021-04-08 17:46:04 2 Tiny change: 'ggestions.' -> 'ggestions.\n'
ru3 Russian yevhenii_kanivets 2021-04-08 17:35:28 1 Мелкая правка: 'forces WathchR. Это п' -> 'forces WatchR. Это п'
en2 English yevhenii_kanivets 2021-04-08 17:14:17 2 Tiny change: 'ss-logic in moving to' -> 'ss-logic is moving to'
ru2 Russian yevhenii_kanivets 2021-04-08 17:13:40 1 Мелкая правка: 'rces WathcR. Это поз' -> 'rces WathchR. Это поз'
ru1 Russian yevhenii_kanivets 2021-04-08 11:02:37 3976 Первая редакция перевода на Русский
en1 English yevhenii_kanivets 2021-04-08 10:12:01 4065 Initial revision (published)