Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite in C #339

Open
27 of 43 tasks
mrvladus opened this issue Sep 25, 2024 · 12 comments
Open
27 of 43 tasks

Rewrite in C #339

mrvladus opened this issue Sep 25, 2024 · 12 comments
Assignees

Comments

@mrvladus
Copy link
Owner

mrvladus commented Sep 25, 2024

I've decided to rewrite Errands in C. Why? Performance. While writing python code I found myself optimizing things that shouldn't be optimized due to python's pretty slow nature. It's a good language for small or not complicated GTK apps, but for Errands it became a bottleneck. Especially when implementing search functionality. Memory usage and micro-freezes with large amounts of tasks played a big role too. C is much simpler language that has unmatched performance. All of the libraries is written in it. So it's going to be much better choice for this project.

All progress will be on rewrite-in-c branch.

Feel free to ask questions.

With my initial version in C it's showing very promising results:

  • Loading time is cut in half
  • Memory usage is cut by 60%
  • Overall performance improvements and snappiness
  • No micro-freezes

Main tasks:

Optional tasks:

Progress reports and benchmarks will be here too.

@mrvladus mrvladus self-assigned this Sep 25, 2024
@mrvladus mrvladus pinned this issue Sep 25, 2024
@mrvladus
Copy link
Owner Author

New add list dialog using AdwAlertDialog:
Снимок экрана от 2024-09-25 11-02-31

And new priority selection dialog that will replace popover:
Снимок экрана от 2024-09-25 11-02-59

@mrvladus
Copy link
Owner Author

mrvladus commented Oct 1, 2024

Added search by text, notes and tags

2024-10-01.10-03-34.webm

@Sesivany
Copy link

Sesivany commented Oct 9, 2024

Looking forward to the rewrite, hope it's gonna help with the memory consumption.

@mrvladus
Copy link
Owner Author

New tags window that replaces menu button. Tags can be created right there instead of separate tags page.
Снимок экрана от 2024-10-11 18-21-49
Снимок экрана от 2024-10-11 18-22-34

@mrvladus
Copy link
Owner Author

Added attachments window
Снимок экрана от 2024-10-12 14-28-37
Снимок экрана от 2024-10-12 14-29-22

@mrvladus
Copy link
Owner Author

Task list colors is working now
Снимок экрана от 2024-10-14 19-56-06

@mrvladus
Copy link
Owner Author

Added task accent color selector
Снимок экрана от 2024-10-15 17-16-59

@mrvladus
Copy link
Owner Author

Added task tags and progress bar
Снимок экрана от 2024-10-16 20-16-37

@mrvladus
Copy link
Owner Author

mrvladus commented Nov 3, 2024

Implemented date and time window. Now it's finally possible to make recurrent tasks #90.

2024-11-03.17-49-17.webm

@mrvladus
Copy link
Owner Author

mrvladus commented Nov 4, 2024

Implemented task list drag and drop reorder #177

2024-11-04.13-07-14.webm

@antrmn
Copy link

antrmn commented Nov 4, 2024

Awesome! If the Android backend for GTK is ever going to land, it'll be awesome to have Errands use it for having a consistent task management across mobile and desktop!

@mrvladus
Copy link
Owner Author

mrvladus commented Nov 4, 2024

@antrmn I'm looking forward for this too :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants