How to extend the system UI and UX?
-
@Keneda said in How to extend the system UI and UX?:
My two cents : as i understood, his proposal is to use the sensor output in a binary way (touched = 1, not touched =0) to make it act like a button...
But this is not how fingerprint sensors work. Yes, on some devices it is also combined with a button, but not on all. Also, not all devices that UT supports have a fingerprint sensor, nor any such button at all.
If Volla want to fork lomiri and build their own custom OS instead, that's fine, but we're talking about Ubuntu Touch here, and we need to keep in mind the goals of Ubuntu Touch and UBports when discussing development of Lomiri, and not only the goals of Volla or another third party that might want to use UT as merely a base to provide a different UX.
-
@dobey said in How to extend the system UI and UX?:
[...] use UT as merely a base to provide a different UX.
I think this is an interesting point - is the idea to offer the springboard as an alternative UI altogether (similar to what Volla is doing with Android), or rather to provide it as an add-on/app that works on top of an otherwise normal Lomiri session?
As for the greater concern:
I think it could be fruitful to think about how extensions could allow users to change their UX without forking the entire project. A springboard could be more similar to adding a dock or Gnome Do to Gnome 2 than to change DE entirely. Of course this shouldn't distract from the aim and vision of UT/UBports, but some users will always want things differently. Allowing them to achieve this by installing or creating an extension would be great.That being said, I'm ignorant to the technical details. If allowing for UX extensions would make developing UT significantly more difficult, of course it shouldn't be prioritized. And I doubt anyone would consider forking right now to be a good idea.
That being said, it Ubuntu Touch ends up being a popular daily driver in the Linux community, people will modify their user experience. I do believe there would be some benefit to allowing them to do so while remaining within the framework provided by UBports, rather than forking the system and coming up with creative hacks. Thinking about what this should look like sooner rather than later might be a good idea, and the possibility of a springboard is a good example.
-
Thanks for your comments, concerns and recommendations.
I think about UT as a platform, because we think about further Volla devices including wearables like a UT watch of glasses. A similar approach has Sailfish OS with a proof of concept for a smart watch and feature phone by modifying Lipstick.
Back to the mid term plans:
@potet We want to introduce the Springboard to Volla devices and can confirm, that thy have a fingerprint sensor. I community members would install the Volla app on their they could open and use it the conventional way.
The idea came from someone at our Volla Community Days last week. I sounds very convenient and would avoid conflicts with system updates form UBports. We could focus on the development and maintenance of the Volla UX. So my question is: How could an app receive a fingerprint event? Is someone interested to work on a proof of concept? If you know someone, who could be interested, give me a note?
@AppLee How can a custom app become a default app in the sidebar if it is not running? I think, this was your recommendation, wasn't it?
Modifying Lomiri could be another option for sure, but I want to avoid conflicts with the default UT releases. I would prefer a kind of modularization for customization or plugin logic as a standard. Something like Super Apps and Partner Space (Sailfish OS) or Launcher or Kiosk Mode (Android). This could help to make UT attractive for OEMs and startups to make UT popular.
If someone is interested in a proof of concept. Let me know.
-
@marc_aurel
Any app can be launched with the app drawer.
Once running, the app appears in the launcher (left bar).
Now a long press on the app icon opens a contextual menu allowing the user to "pin" the app to the launcher.This way any user can customize the launcher and set its favorite/most used apps ready to start.
I guess reading your message that it's the easiest way. Springboard can be an app available in the open store and might probably be unconfined to have the necessary rights.
-
@AppLee Ok. Thanks. Is it possible to do this programmatically?
The app wouldn't be available in the app store but exclusively available on our devices. Is it possible to add further repositories to the Store like F-Droid?
To implement a convenient UX we would need a one touch call of the springboard. Therefore I like the fingerprint idea.
Otherwise we would need to modify Lomiri but I would prefer standard customization optons.
-
@marc_aurel said in How to extend the system UI and UX?:
How could an app receive a fingerprint event? Is someone interested to work on a proof of concept?
Apps cannot use biometrics themselves, as Qt currently doesn't provide a Biometrics API in QML (even on Android).
@marc_aurel said in How to extend the system UI and UX?:
This could help to make UT attractive for OEMs and startups to make UT popular.
UT is not Android, and isn't trying to be like Android in this respect. Custom shell (ie, launchers as they are called on Android) is not doable without significant and very complex changes to the system. UT is about providing a whole OS with a specific design for convergence, not about providing a base platform for phone vendors to modify to their will like they might currently do with Android.
@marc_aurel said in How to extend the system UI and UX?:
Is it possible to add further repositories to the Store like F-Droid?
It is not.
-
@marc_aurel a think a good way to do it may be working on lomiri idle background and transform it to display a 'launcher' app content instead of a simple image.
As it's not a priority of ubports team, you should do the work and make a pull request. I already made some test and it's look like to be the more convenient way to extend the launcher. -
@dobey The app wouldn't need the biometrics information itself, just an event, that the sensor was touched. So the critical information would be protected.
For other use cases biometric confirmation, encapsuled in the middleware, could be an interesting feature, for example to unlock a protected data source or to confirm any transaction.
Where is the component to get this event? The middleware needs this event either?
@kazord Last year a developer has shown in our hackathon, that is s quite simple to exchange the system UI by modifying some QML files. He presented the nice grid style ofr open apps like Nemo Mobile and Sailfish OS instead of the current fan style in Ubuntu Touch.
My hope was, just to modify a QML for the sidebar with a Loader, that loads the launcher app instead of the current sidebar logic. To avoid conflicts with the default system this part could be dynamically controlled as a standard - with any setting or an installed app with specific privileges.
My idea in general is to provide customization of the system in a standard way. Sailfish OS could be a good example for this approach. OEMs like Intex and Jala have used the Standard Sailfish OS with some customization for their market. The idea of a Super App is quite smart. It is a app, that can be called with one swipe gesture. It can be controlled by a setting.
Anyway. If someone is interested to help us with a proof of concept. Let me know.
-
@marc_aurel
That's a big topic because in people's mind (and mine first) it seems easy to just replace a GUI for another.But Ubuntu Touch is build for both privacy and convergence.
For privacy reasons apps are confined and for convergence, all the system UI has to be thought for phones, tablets and desktop size screen.In addition to that, Ubuntu Touch is made as a daily driver and is updated via an image.
The locked rootfs is there to warn people that updates will wipe out any modification made on the rootfs.Hacking the system to replace a QML is easy, but providing updates and keeping this hack is a security breach.
About the fingerprint sensor, if I understood correctly what @dobey explained, I guess that depending on how the sensor is "seen" by the OS you might not be able to access the data coming from it.
If seen as a physical button maybe it could work, but seen as what is really is (a biometric sensor) it won't be usable. -
@AppLee Exactly. Modifying QMLs is fine for a proof of concept of the UX and to show it to a focus group, but not for a product release.
Therefore my question for a modularization of the system UI to allow customization as a standard.
-
@marc_aurel I suggest you try to experiment with a spare device with a RW rootfs. Then use SSH to modify QML files directly and restart unity8 to try your changes. I think this is a quick way of experimenting with stuffs.
-
@marc_aurel said in How to extend the system UI and UX?:
The app wouldn't need the biometrics information itself, just an event, that the sensor was touched. So the critical information would be protected.
It's not about exposing biometric data to apps. It's about the fact that biometric sensors do not work in the way you imagine them to.
-
@dobey It works on Android devices. The idea doesn't come from myself but from the community. I like the convenience.
See the Android documentation and some articles like this
-
@kugiigi Thanks. Community developers are invited to help us.
-
@marc_aurel Ubuntu Touch is not Android. It isn't about the devices. It's about the operating system. They have very different goals and designs which are meant for those goals.
And no, it doesn't work like that on all Android devices. And again, not all devices have fingerprint sensors, regardless of the OS.
-
@dobey Sure, not all devices has a fingerprint sensor. But using a fingerprint sensor in an app would be a benefit for the devices, that have this hardware feature. NFC and Dual SIM are also features, that not all devices have. But the operating system should support it. Anyway, the feature was only requested for Volla devices, which will have a finger print sensor.
Ubuntu Touch is not Android, but it should support requirements of a platform for mobile devices not limited by Smartphones. This includes customization if OEMs. Ubuntu Touch could alternatively use the approach of Jolla for Sailfish OS.
Anyway, this is out of scope of this thread. If someone know, how we could access the fingerprint event, let me know. Because the system needs this event, there must be somewhere on some level an API.