johnfactotum / foliate

Read e-books in style
https://johnfactotum.github.io/foliate/
GNU General Public License v3.0
6.35k stars 289 forks source link

Agnostic development for desktop and mobile usage #201

Closed digitalethics closed 4 years ago

digitalethics commented 4 years ago

Is there a possibility to make foliate agnostic in terms of its use on a desktop or as part of a phone/tablet environment? While I support efforts of projects such as Purism, not all GNU/Linux desktop projects share an equal commitment to the idea of convergence of desktop and mobile/tablet interfaces for reasons of what they consider good software engineering.

I am not sure if this is technically feasible but can libhandy (if I understand it correctly, the rewrite will include libhandy?) be made an "optional dependency" if foliate were to be added to the repositories of purely desktop-focused GNU/Linux distributions whose engineering decisions do not permit the inclusion of mobile-focused interface libraries such as libhandy?

To be sure, I would be happy to use Foliate on both a phone or tablet as well as on my GNU/Linux desktop. Is there any way out of this dilemma? I'm aware that there's always the possibility to use the flatpak version but a good engineering solution is preferred.

176

johnfactotum commented 4 years ago

Foliate doesn't depend on libhandy. In general, I've avoided extra libraries such as libdazzle or libhandy. Although many of their features seem nice, so far I haven't found any compelling reason to include them.

The rewrite is functionally not very different from the old version. Mostly it's refactoring the code to use GtkBuilder UI definitions, utilizing GObject's features to make things cleaner, and other improvements reflecting my improved knowledge of Epub.js and GTK. In fact, the rewrite is less dependent on any UI design or library because the code for the UI is now much less coupled with other parts of the program.

digitalethics commented 4 years ago

the rewrite is less dependent on any UI design or library because the code for the UI is now much less coupled with other parts of the program.

Thank you for clarifying this issue. This is great news!

bertob commented 4 years ago

FYI libhandy has some mobile-focused stuff in it, but many of its widgets are are just making it easier to build nice GNOME apps (e.g. HdyColumn, HdyPreferencesWindow).

purely desktop-focused GNU/Linux distributions whose engineering decisions do not permit the inclusion of mobile-focused interface libraries

That sounds very weird, why would someone do that? :joy:

johnfactotum commented 4 years ago

I've seen some people complain about the inclusion of libhandy in other applications. Perhaps because it's relatively new and not available in some distros? It would be awesome if some of its features can be incorporated into future versions of GTK.

Closing as I believe the question has been answered.

digitalethics commented 4 years ago

@bertob Some recent examples can be found in the cases of Geary, Gnome Fractal, Gnome Contacts, and a lengthy discussion on this topic regarding Gnome Podcasts.

bertob commented 4 years ago

That's an... interesting take. None of these apps have changed at desktop sizes since they gained mobile support, they just scale to smaller sizes now. I don't think these guys have actually tried the apps they're talking about.

digitalethics commented 4 years ago

Yeah, indeed! I haven't quite made up my mind on this issue either but it's good to be aware of potential conflicts in software engineering and repository management. Thank you both @bertob and @johnfactotum for tuning in and keeping an eye on this issue.