That's right — we're on an ambitious plan to build an open smartphone that puts Progressive Web Apps (PWAs) at the core of our ecosystem. Check out our video for an in-depth review of our project so far:
How are you making this?
Currently, the Prism is based on the PinePhone, with a few modifications to the hardware (the back shell is one of the main customisations to the phone, allowing you to see inside), in addition to the software (using our own Linux-based mobile operating system).
We 3D-printed the back case, which admittedly took quite a few attempts; but the end result is awesome!
The main interface uses our own user environment, called gShell. It uses Adapt UI (web demo), which is the user interface design language and framework which we developed in-house over the course of a few months.
gShell itself is essentially just a really complex single-page website, all running locally inside an Electron process. This not only simplifies development and allows us to quickly prototype designs, but it also provides good support for animations and all of the polish that you'd expect on the modern smartphones of today.
I took a few photos and posted them on Twitter to show you what gShell looks like in real life:
Of course, being Electron, it is possible to run gShell in its simulator mode on a desktop. This makes prototyping iterations of gShell and its associated apps much easier, and as a result, much faster; simply because it's more convenient to launch gShell on a development machine than it is to update the actual Prism itself to perform a very short test.
Accessibility
As with the physical world, accessibility is also extremely important in the digital world, too. Ensuring that both software and hardware is usable by everyone is a key aspect of developing successful products, and failing to do so can cause users to be excluded from being able to effectively operate your platform.
It's no wonder that we have baked accessibility support right into the Prism from the very start of our project: we've been ensuring that our product will be accessible for future assistive technologies that we will later build into gShell. However, it's not just ensuring compatibility that's important: we've also added some accessibility features into the phone from early on in order to ensure that the whole user interface is usable in its current state.
We've built in an often-overlooked assistive technology that often gets neglected in upcoming operating systems: Switch Navigation. It essentially allows the user to control their whole device using just at least one button, known as a switch. A demonstration of it is available at 15:09 in our video.
Here's a photo of what one of the features of Switch Navigation looks like:
The implementation of Switch Navigation in gShell has been inspired by quadriplegic YouTuber Christopher Hills, who makes extensive use of iOS's Switch Control feature daily. Switch Control in iOS provides very similar functionality to our Switch Navigation. Christopher's videos have been monumental at raising awareness of this versatile assistive technology, which has enabled him to pilot drones, edit and produce production-quality videos, and more. His videos have given us a great insight into the daily uses of Switch Control, which we hope to integrate into Switch Navigation.
Localisation
Localisation is also an important part of platform development, since it allows users who speak languages other than English to use our products, and truly make our products globally usable. Our main methods of localisation are through the Adapt UI framework, which provides the localisation infrastructure needed to translate our apps and make them available in different locales.
Adapt UI also ensures that apps and systems are laid out according to the rules of selected languages — in Arabic, for example, text is written from right to left, and so we need to factor this into our layout when Arabic is selected:
Feel free to play around with our localisation demo and see how the layout changes depending on the language chosen!
Conclusion
This is a brief overview of Project Prism so far. I go much more in-depth in the video at the start of this post, so be sure to check it out!
If you'd like, come and visit our GitHub organisation to see our various ongoing projects with regards to the Prism. Why not star a few of our repos you find interesting — or, if you're keen — contribute to our projects? Your contributions are welcome; even if they are simple bug reports or documentation enhancements!
That's about it — thanks for reading about LiveG Project Prism!
Top comments (18)
This is insane! Can't wait to see the next posts.
Thank you! It's certainly an ambitious project of ours, but hopefully, we'll be able to provide updates with regards to the development of our project soon!
That's looking bloody amazing James !!!
Q: So using PWA technology, that still means all the apps running on your Prism need to be developed using your tools. Not possible to install/run existing apps, like Twitter that you are mentioning...
Keep up the AMAZING work James
I wonder if you could post builds for the PinePhone (Pro) occasionally, so we can play with it and possibly help debug, or do/can we build and load on phone.
Just super interested in what you're doing James !!
Hey Gert, thanks for your support! With regards to PWAs, any website can theoretically become an app for the Prism (it'll be added to the home screen and will act like an app). Websites with a Web App Manifest will also have extra features, such as being able to work offline, too — since Twitter has a manifest, it will essentially act like a native app!
Build-wise, it's certainly something we're looking forward to release — a few features (such as some kind of update mechanism!) would probably be needed to be added, but I'm sure we can release an early Alpha build fairly soon!
Of course, the PinePhone I have is non-Pro, but I should imagine that there's some sort of build compatibility with Pros I hope... Something I'll have to check!
Great, can't wait
Yes a build for the Pro would be amazing please
Cheers
Gert
Best of luck with your project!
Thanks! From where we are at so far, it seems to be going really well, and development has come a long way in such a short space of time! Fingers crossed we'll be able to share some more dev updates here sometime soon...
Whoa!
Thanks for checking my post out, Ben! This isn't your typical software-development-oriented type of post on dev.to, but I'm sure many people will appreciate both the software and hardware side in developing a smartphone platform...
Can't wait to listen more from you guys!
Hopefully more should be on the way soon! There's already a few bug fixes and features that have been added since the video, so hopefully we should be able to provide an update at some point!
Thanks Leonid!
This project is so cool.
But I have a couple of questions.
2 Does Prism Project is able to run the web automation framework to test itself?
Such as Cypress or Robot framework
Hi James, i was reading about your project and i think it's great! But i see that's two years old, are you still working on it?
Awesome work! I can't wait to have one in my hands and test it
Thanks! We've been working really hard on this first version, an alpha should be ready soon!
Thanks for sharing