New Post: Making a Platform Adaptive for Everyone

[Note: This thread is intended to be a discussion thread for the topics in this post. Please keep your replies on topic. Some examples of off-topic replies include:

“When is my order shipping?” (We contact people to arrange shipping and update shipping addresses over email, not in a forum thread.)
“I have a support request.” (These are better handled with the Purism support team.)
“I want to air a personal grievance.” (You can do that in your own topic.)
]

A Mobile Platform

When we announced the Librem 5, we knew we would have to invest in and build a mobile operating system and applications to run on it — by “mobile” understand “for smartphones”. To avoid reinventing the wheel, we decided to base that system on an existing environment. Librem laptops ship with our operating system PureOS, which provides GNOME as its graphical user environment as it is a modern environment and a very active project with which we share many goals, design principles and values.

Touchscreens bring a new set of possibilities and constraints to user interface designs. For many years, GNOME’s main target is laptops, and it acknowledges in its design that they can have touchscreens. All of these factors made GNOME a serious candidate for Purism to turn into a mobile platform, and using it on both the Librem laptops and the Librem 5 brings some very valuable consistency to our broader software ecosystem and user experience.

To feed that system we need mobile applications, but rather than creating mobile duplicates of existing GNOME applications, we decided to take an approach the web has been doing for years: making existing GNOME applications adaptive. Making an application adaptive not only makes it work on smartphones just as well as on laptops, but it allows it to work well on anything in between, e.g. when its window is small or tiled. Adaptive applications also means same app code for multiple device sizes.

Read the rest of the post here:

10 Likes

I’m sorry you don’t have your phone yet, but please stop trolling each of my threads.

5 Likes

Post withdrawn

Speak for yourself. Purism can’t do anything about the covid situation; they would be glad to get the phones out and receive even more orders. Please stop spamming all topics.

Thank you Purism for another nice article.

5 Likes

Post withdrawn

Last warning. If you want to air a personal grievance you can do it in your own thread (as I mention in the disclaimer at the top of this thread). If you continue down this path we’ll have to resort to moderation. I’d like this thread to stay on topic so people can discuss the post.

6 Likes

Post withdrawn

Cool article! I really like the idea of taking something that works on laptops and make it work on phones, as opposed to creating a new independent system just for phones.

The whole ecosystem gets better, and other people can build on top of it and so on.

1 Like

Kudos to Adrien for getting adaptive widgets to become a fundamental part of GNOME. It is really encouraging to see the GNOME ecosystem becoming adaptive for mobile devices. This is why I think it is so important to back companies that pay for software development.

I take it from this post that libhandy isn’t going to become part of GTK 4, as originally planned. That kind of makes me sad. Are there any reasons why it was decided to not make libhandy part of GTK 4?

I have a few nitpicks. In the article, change the text from:

With Libadwaita now hosting the Adwaita stylesheet and thanks to Alexander simplifying it,

to:

With Libadwaita now hosting the Adwaita stylesheet and thanks to Alexander for simplifying it,

I also can’t see any changes in the last video showing a “neat stylesheet transition animation”. Does the video show the animation or is it really subtle and I am just missing it?

1 Like

I am so excited to try out all these features once I received my Librem 14!
By the way: Which IDE did you guys use?

1 Like

I must admit that I have been interested in checking out GNOME again. Haven’t really touched it since v3. Lol. The L5 USA will be my GTK-only machine! :partying_face:

1 Like

Not quite. LibHandy is for GTK-3 and LibAdwaita is for GTK-4 (and LibAdwaita is based off LibHandy, see below)

LibHandy grew into a semi official widget library to implement GNOME HIG, there are some MR on Gnome Gitlab to illustrate that, for instance: https://gitlab.gnome.org/GNOME/gnome-music/-/merge_requests/803 (in there, GNOME devs says this app, music, should use some Hdy widgets for GNOME 40 UI patterns).

Now with GTK-4 and LibAdwaita, it is official: LibAdwaita is the library to use to implement GNOME HIG a top GTK-4. And GNOME HIG are now considering mobile/tablet screen sizes as well.
IMHO, we could not hope for a better turn here, it means all GNOME softwares will progressively align with the HIG (since HIG compliance is a requirement for being an official GNOME project) so it looks like this is really going in the right direction.

Focusing on LibAdwaita, if you look at the commit history and scroll back tlll october last year, you’ll see some Hdy commits so clearly LibAdwaita is based off LibHandy:
Example: https://gitlab.gnome.org/GNOME/libadwaita/-/commit/2dbe33c0a40deb12a912d7bdfb09f67227e8338f
But also, even more relevant: https://gitlab.gnome.org/GNOME/libadwaita/-/commit/f94c05c01afd113061bfe3cdc8643193c2045dcc

Edits: typos and clarifications

7 Likes

As long as you stick to making it “Adaptive for” and not “Pleasing”. Because we all know what happens with the philosophical proverb of trying to “please everyone”. (You’ll become another M$oft or Apfel.)

@henry-nicolas,
I don’t think I made my question clear so let rephrase it:
Why was it decided that the adaptive capabilities of libhandy are going to become part of GNOME, rather than becoming part of GTK? Isn’t it better to have adaptive widgets built into the toolkit, rather than making them part of GNOME’s style library?

It seems to me that libhandy’s adaptive widgets should be available to anyone using the GTK, rather than the smaller subset of programs that use the GNOME libraries.

3 Likes

Can someone explain me why Libadwaita and not Libhandy 2.0 to GTK4? @dos @dcz @adrien.plazas

The original text is correct and your suggestion changes its meaning to something completely different. It’s “new features are possible thanks to Alexander simplifying the stylesheet”, not “thank you Alexander for simplifying the stylesheet” :wink:

Actually, it should be "thanks to Alexander’s simplifying the stylesheet” for the proper grammatical construction. :slightly_smiling_face:

1 Like

Reading this blog post from Adrien would provide answers to that question:


But also, on the HIG:
https://blogs.gnome.org/aday/2021/05/20/new-human-interface-guidelines/

In a nutshell, my understanding is that the tradeoff that has been made is that LibAdwaita does not only care about adaptiveness through dedicated widgets but it is also the official mean to implement GNOME HIG.

Why not make it part of GTK? GTK development cycle is independant from GNOME releases, still the HIG evolves alongside GNOME releases so a library which helps implementing the HIG needs to be close to GNOME development/release cycles.

In Adrien blog post, it is also mentionned that having a HIG that is well alive and GTK releases not necessarly following those of GNOME led to code deduplication since developpers had to support the HIG without relying on standardized components offered by an official library such as LibAdwaita.
Quoting Adrien :

Implementing the HIG is a lot of manual work for application developers. This led to lots of verbose copypasted UI code, full of slight interpretation variations and errors, making applications hard to maintain and full of visual and behaviorial inconsistencies. The fact these guidelines are not set in stone and evolve every so often made these inconsistencies explode.

Edit: typos