best libraries for a journalling app (windows only)
hey guys.
so i wanted to make a journalling app myself that'll keep me more accountable in the future. sure, i could use a markdown editor like obsidian or vscode's built-in markdown viewer, but i'm a developer and the best part about being a developer is remaking stuff that already exists just because you can
aside from the backstory, what would be good libraries for this sort of thing? looking for a relatively gentle learning curve where i can get a grasp of the basics and get started easily.
open to all suggestions and i need something to do over these coming weeks. this will probably be only a windows project, as my friend group only uses windows which is who i'll probably distribute this to. lemme know what you think 👍🏽
40 Replies
depends what you need to get done
any given thing will have multiple popular libraries to get it done
e.g. for storing the journal entries you'll need a database, which you could be accessing using EF Core, Dapper, linq2db, etc
if you want a gui and it's windows only you can use WPF
how easy is it to get started with it?
Hello World app with WPF in C# - Visual Studio (Windows)
Create a simple Windows Desktop .NET application in C# with Visual Studio by using the Windows Presentation Foundation (WPF) UI framework.
for the database, this sounds stupid, but could i not just use a JSON/SQL file? or maybe something more adapted to storing and compressing raw text?
json can work. if you're just storing plaintext it'll be feasible for a while
json wll require loading everything into memory at startup and rewriting everything at once
if you're just using one file
you could also just use the filesystem and not use a database at all
an "SQL file" isn't a thing. sqlite contains its databases in a single file, but that's the exception
databases are their own applications that you have to communicate with
that said, in this case, sqlite would be the best choice
also it mentions here to use VS but my laptop doesn't exactly work the best with VS and operates much better with VSCode, but of course, there's no XML viewer in vscode (i think), so what do you suggest i do about that?
not sure if there's much you can do
that's what i meant: a sqlite connection
ah yes, that's another good idea
maybe just write the xaml -> run -> edit -> rerun
i've never used WPF
hmm, options, options
what have you used then?
all i do are web apps
you could also look into avalonia, which i also haven't used
hm, ok. i'll take a look
iz there anyone here who has used avalonia or wpf?
lots probably
#gui would be where they're active
also do you know about flutter?
i've heard of it
hm ok
I've used both. Started as a WPF developer. Fell in love with Avalonia and ultimately joined the Avalonia team.
what about avalonia makes you like it so much, versus WPF?
Cross-platform was the initial reason I tried it. I had a compled WPF application that I wanted to run in an embedded scenario. I couldn't understand the embedded Windows licensing situation, so decided to try some other options.
Started rewriting in Qt, but found it hard (I hadn't used Qt since QWidgets and it had changed to QML).
I then found Avalonia and spent a few hours porting the most complex custom controls. It all worked! The most I played with it, the more I enjoyed the experience. My app could be run on macOS and Linux while reusing a huge amount of code.
ah i see. is avalonia easy to start with? and can it be developed in only VSCode? regular VS doesn't work well with my laptop, so things with XAML don't really work well, if that makes sense
you'll have the best experience with an actual IDE, you can use VSC, but that wont make it easier for you
^ this goes for more than just using a UI framework. it's worth investigating why your computer is having issues with VS
avalonia works best for ppl with experience with WPF
because thats where avalonia took a lot of inspiration from
it just runs like shit. always lagging, taking forever to do simple stuff - it makes no sense
to be fair, i AM using a fairly old and simplistic laptop, but still, i dont see why the software doesn't work
the software relies on the hardware
i have an i5-4210U and 8GB of RAM
and what kind of storage?
old laptops usually run on HDDs, which makes them stupidly slow
i think my dad swapped it out for an SSD, but i'm not sure how you would check this
because not only did the manufacturer did include HDDs, they did include slow HDDs. aka 5400 RPM ones
what's RPM and why's it relevant to HDDs?
rounds per minute
HDDs have spinning discs inside
slow spin == slow reads and writes
SSD have no moving parts
ohhhh
ah i see
makes sense
you could check the (windows) device manager, its possible that the devices are properly labeled there and then its obvious
or you could open the laptop and visually inspect the parts
another common laptop problem is their low weight, which means low thermal mass resulting in low cooling performance and overheating parts
tldr: your laptop could be getting too hot, so it will slow down as much as possible, in order to not kill itself
so i'm guessing the solution is to use a proper PC
¯\_(ツ)_/¯
OR get a laptop that isn't reminiscent of cold war times
it depends on your specific situation
many things can slow you down
maybe your laptop collected too much dust and overheats because of that
idk
maybe you are placing it on a blanket and block the exhausts that way
maybe the thermal paste and thermal strips are completely dried out and dont transfer a lot of heat anymore
i could go on, but you probably get the idea
in regards to your original question: $desktopappdev
https://github.com/Insire/diagrams/blob/main/drawio-assets/.net-gui-overview.png?raw=true
Open image in new tab or follow this to view it on github
maybe that helps
an IDE is recommended (and for some even required) for all of them
but as i said, if you are patient enough, you can make do with notepad
notepad++ and VSC are easy upgrades over just notepad
alright, thank you. i'll be building a new PC with my dad over christmas which will be a good segway into all the things i couldnt do with my currnet laptop
this was a gift from him, and intended to only be for not much more than schoolwork and editing files. programming can get quite heavy on your hardware when you want to push the limits