yevhenii_kanivets's blog

By yevhenii_kanivets, history, 2 weeks ago, In English,

Last 2 weeks we were busy migrating our database management from Room to SQLDelight. It's the first step of the migration to Kotlin Multiplatform, which will allow us to deliver more consistent features on iOS / Android and deliver them faster.

Version 1.4.6 has been published today's morning, but it contained a tricky bug related to wrong column names. Unfortunately, preliminary testing didn't revealed it, so we've seen it only when started to see some new crashes coming into Firebase Crashlytics.

Version 1.4.7 with a hotfix has been published just a few minutes ago. Everything should now work smoothy for all users who experienced crashes after updating to 1.4.6 and for all users who will update to 1.4.7 directly.

In contrast, all first-time users who installed 1.4.6 without having previous version will have crashes after updating to 1.4.7. This is caused by a wrong database scheme used in 1.4.6, which can't be fixed. So, please, delete your current app version (1.4.6) and reinstall the app from Google Play.

We are really sorry about these crashes. We will implement processes to prevent them from happening in the future.

As usually thanks BOGDAN_ for development efforts and helping to quickly resolve the issue.

Read more »

 
 
 
 
  • Vote: I like it
  • +14
  • Vote: I do not like it

By yevhenii_kanivets, history, 4 weeks ago, In English,

From now you can see avatars of all watched users right in Users tab. This is the result of one of the first PRs we got from the community — https://github.com/xorum-io/codeforces_watcher/pull/91.

You can download a new version from Google Play. iOS version is available on App Store.

There are no other UI/UX changes in this version, but we've fixed a few bugs and crashes. So app is even more stable from this moment. BTW, if you ever experience any issues in iOS / Android apps, don't hesitate to write in comments or create issues directly in our GitHub page.

Kotlin Multiplatform

You've probably noted that Android app is quite different from iOS one. This is a one of the biggest pains of all mobile developers: writing apps twice. We've decided to conquer this problem with a radical solution: KMP.

This solution allows to share business-logic, network and database layers and pretty much everything besides UI in a form of Kotlin library, compiled to aar for Android and to framework for iOS. You can see our progress in this branch.

Read more »

 
 
 
 
  • Vote: I like it
  • +21
  • Vote: I do not like it

By yevhenii_kanivets, history, 2 months ago, In English,

Have you ever felt like there are not enough contests on Codeforces? Nothing to do this weekend? Well, then go to App Store and download Codeforces WatchR.

There you will find upcoming contests for all major competitive programming platforms:

  • Codeforces
  • TopCoder
  • AtCoder
  • CS Academy
  • CodeChef
  • HackerRank
  • HackerEarth
  • Kick Start
  • LeetCode

This wouldn't be possible without great open-source projectKONTESTS, which gave us super-easy access to compiled list of all those contests. Big thanks to all of you guys: Ali H. Fadel, Ridah O. Labbar, Ibraheem Z. Tuffaha. Give them some love by starring official GitHub repo ;)

This feature is currently available in iOS app only, but will be ported to Android app in the nearest future. Thanks to denmen0207 and his efforts in research and development.

Read more »

 
 
 
 
  • Vote: I like it
  • +16
  • Vote: I do not like it

By yevhenii_kanivets, history, 2 months ago, In English,

After almost 5 weeks of studying and working hard, 3 App Store rejects and a few sleepless nights, we've succeeded to bring Codeforces WatchR application to iOS.

Download it right now using this link. Don't have an iPhone? Not a problem, it's also available in Google Play.

It doesn't have all Android features just yet, but we've decided to ship early and often to get the feedback from the community ASAP. The current version has next features: - browsing and sharing Recent Actions - watching for Codeforces contests and adding them to the device's calendar - browsing and searching for Problems (marking the as a favourite is coming)

This is the first-ever iOS application for Codeforces on the App Store (at least, for my knowledge) and one of a few dedicated to Competitive Programming. I'm super excited and you?

This wouldn't be possible without our new crew member — denmen0207, which joined us as an iOS Developer and actually implemented an app from the ground up.

Read more »

 
 
 
 
  • Vote: I like it
  • +61
  • Vote: I do not like it

By yevhenii_kanivets, history, 4 months ago, In English,

For almost a week already, Codeforces WatchR offers to its users brand-new feature called "Problems".

This is the last (but not the least) of tabs, which allows anybody to:

  • browse all Codeforces problems without any limits
  • search problems you are interested in by its name or contest id, where it appeared for the first time
  • mark chosen problems as "Favourite" to upsolve it later or just share with friends
  • view any problem's condition, of course

Hindi translation

Thanks to NiKS001 and HackedAlways, Codeforces WatchR is now translated to Hindi (even though it's not so popular as I initially assumed). Here is the PR.

Google Play Statistics

My latest post has made its way to the Top, which gave us unprecedented attention from Codeforces community. We truly appreciate all feedback we got and looking forward to make Codeforces WatchR even better in future.

To sum up "the hype" of the last month, here are some stats:

  • 1K+ new users acquired (from which 300+ lost)
  • 900+ active users at this moment
  • 50+ new notes with 4.7+ average
  • 24 stars on GitHub
  • just 8 crashes (all fixed in latest version)

Further development

Of course, we won't stop on what's implemented right now. Just to give you idea on what's coming, here is the list of issues on GitHub.

Traditionally, thanks to BOGDAN_ for development efforts and ideas!

Read more »

 
 
 
 
  • Vote: I like it
  • +59
  • Vote: I do not like it

By yevhenii_kanivets, history, 4 months ago, In English,

Starting from the version 1.3.1 of Codeforces Watcher, users can see latest Blog Posts in Recent Actions tab. It's already downloadable in Google Play.

Last few weeks BOGDAN_ spent by educating himself about multithreading and coroutines, which aren't easiest things in the universe ;) Thanks to his learnings, we've migrated Codeforces Watcher to Coroutines and it looks just great. You can see one of examples of confluence between Redux and Couroutines in AppMiddleware.kt.

By the way, Codeforces Watcher in an open-source project, so you are always welcome to check it out and learn new things or make suggestion on improvements. Stars won't hurt too, of course ;)

Read more »

 
 
 
 
  • Vote: I like it
  • +354
  • Vote: I do not like it

By yevhenii_kanivets, history, 5 months ago, In English,

Last month we were working really hard to bring brand-new features to Codeforces Watcher. And finally, you can browse Recent Actions just from your mobile device. Isn't that cool?

It's time to stop scrolling through boring Facebook / Instagram feeds! Go to Codeforces Watcher and find out about new cool ideas of solution for that D problem from the last contest, or maybe just engage yourself in the holy war about which language is better... There are so many interesting stuff on Codeforces, which is waiting for you.

And even more... Now you can share any Recent Action with your friend through any messenger you use. And don't forget to share Codeforces Watcher with your friends. We are working to make Codeforces experience even better and need your help to make it!

This is the first iteration of Recent Actions feature, so we will be really glad to hear your constructive feedback and ideas for improvements. This is what's we currently have in our minds:

  • filter Recent Actions by watched users
  • add Blog Posts into the feed
  • display full text right in the feed

Traditionally, thanks to BOGDAN_ for development efforts and bug fixes!

Read more »

 
 
 
 
  • Vote: I like it
  • +39
  • Vote: I do not like it

By yevhenii_kanivets, history, 6 months ago, In English,

After trying Redux pattern in Codeforces Watcher with Contests feature, we couldn't stop and, as a result, migrated all the application to this next-gen pattern. Update is already available in Google Play. We've already noticed decreased number of NPEs, better app stability and better app UX. Don't believe us? Just try it by yourself!

For those who are interested, here is a full series of articles:

As always thanks to BOGDAN_ for implementing the migration and to alla_dubovska for writing these articles.

Read more »

 
 
 
 
  • Vote: I like it
  • +22
  • Vote: I do not like it

By yevhenii_kanivets, history, 7 months ago, In English,

Latest version of Codeforces Watcher brings few crash fixes, so the app is even more stable now.

Also we've changed the format of upcoming contests' date, so now you can always know which day of week to free up.

Traditionally, thanks to BOGDAN_ for development efforts and bug fixes!

Read more »

 
 
 
 
  • Vote: I like it
  • +7
  • Vote: I do not like it

By yevhenii_kanivets, history, 7 months ago, In English,

In the newest version of Codeforces Watcher you will find a new cool feature, which allows you to add contests directly from the app to your Google Calendar.

Traditionally, thanks to BOGDAN_ for development efforts and bug fixes!

BTW, we are considering to develop iOS version of Codeforces Watcher. If that sounds interesting to you, write about it in comment under this post.

Read more »

 
 
 
 
  • Vote: I like it
  • +7
  • Vote: I do not like it

By yevhenii_kanivets, history, 8 months ago, In English,

In newest version of Codeforces Watcher you will find many new cool features.

Hottest ones:

  • sorting of users by last contest participation, so it becomes obvious who is really active on Codeforces right now
  • listing of upcoming contests, so you don't need to visit Codeforces for matching your schedule
  • like the app? Now you can easily rate it by responding to embedded rating dialog

Thanks to BOGDAN_ for development efforts and bug fixes!

Read more »

 
 
 
 
  • Vote: I like it
  • +5
  • Vote: I do not like it

By yevhenii_kanivets, history, 21 month(s) ago, In English,

Today is the special day — 1 year passed since first "Hello, World!" C++ application of my padawan BOGDAN_. This year he accomplished a lot and I'm really happy to present you his first Android application — Codeforces Watcher.

Of course, this is just a simple study project, but I really think it can be useful for somebody from Codeforces comunity (at least for me).

So this is a simple application to easily track latest activity and rating changes of Codeforces users from your Android device.

Thanks to Codeforces API you can: 1. Add any Codeforces user by its handle. 2. Get general information about user. 3. Get rating changes of user since its registration. 4. Use batch requests to effectively update information about thousands of users.

Codeforces Watcher can be useful to coaches, tutors and teachers to keep track on how often and how successfully their students participate in Codeforces Rounds. Also it can be used by usual Codeforces users just for fun

This is an open-source project hosted on GitHub — http://bit.ly/gh_cw, so you can fork it or contribute to it directly. Here is Google Play link — https://play.google.com/store/apps/details?id=com.bogdan.codeforceswatcher.

Some features that are going to be implemented in closest future: 1. Periodical updates in background with notifications when someones rating has changed. 2. Display of all rating changes in profile page. 3. Sorts user list by rating, last rating update, etc.

Any feedback and feature requests are welcome

Read more »

 
 
 
 
  • Vote: I like it
  • +33
  • Vote: I do not like it