I understand how to code… To an extent. I know syntax and can solve problems given a set of tools (such as source code, functions, etc). I’ve made mods and basic programs (literally and figuratively), but I’ve never messed with internet stuff other than networking and mostly on the hardware side.
I don’t expect to make anything that will catch on, but maybe I can make a perfectly adapted thing for my own personal use. Would it be a good learning experience, or would jumping from modding and making, like, a DnD character sheet generator into making a front end for a website/service be a bit of an undertaking?
It’ll be a lot more involved than you think it will be. You’ll need to pick and learn the language of the device you want to create the app for and then learn the API of making calls to Lemmy instances. You then also need to have a idea of intuitive app design.
Not impossible and if you want to learn, I suggest you dive in with a simple goal. Get a post to load. Then get several. Then get them from different communities and build from there.
You will definitely learn some things if you keep at it. Good luck, friend!
Making an Android or iPhone app can be a huge can of worms, all thanks to Google and Apple. However, with some basic knowledge of networking, you can easily go through the API documentation of LemmyNet and make some TUI based app for desktop. Python modules can simplify the process. If you will be using Python, there is a wrapper for this API too. See this list for wrappers for other languages. You can do all sorts of things with these wrappers.
Writing an app as a proof of concept just for fun may be doable, depending on what you already know, how good you are at learning, and how much time you want to invest.
Writing an app that’s better than the several existing apps? Definitely not.
Edit: looking at the text - go for it (if you want it primarily as a learning experience). The network stuff certainly will have some new concepts (especially around logging in) but it’s not super complicated. You’ll basically end up having a function “getComments” that sends a HTTP request (calling a library) and converts the JSON response into your internal data structures.
I’d consider it a large project, especially when you factor in the maintenance for site changes. But I don’t know how difficult it would be for you. You can browse the source code of apps like jerboa or liftoff on GitHub and see if that looks manageable to you.
Another option is to join as a contributor to one (or many) of the great apps already being worked on. This gives you a great way to learn how they work and to help the community with a much lower risk of failure since PRs are generally reviewed prior to inclusion and pushing new versions out.
I wouldn’t want to put anyone off doing this, but my experience is that joining an existing large project as a contributor is harder than writing something yourself from scratch. Your code will be held to a high standard which, if you’re learning, can feel like a lot of criticism. I’m a fairly experienced developer but get nervous submitting PRs to projects I wasn’t involved in from the start.