Botspot / pi-apps

Raspberry Pi App Store for Open Source Projects
GNU General Public License v3.0
2.03k stars 206 forks source link

Now.gg webapp #2633

Open Combustion-is-fun opened 3 months ago

Combustion-is-fun commented 3 months ago

What is the name of the app?

Now.gg

Where is the app hosted?

It's a web app. Now.gg

About the app

Best solution until the Great Waydroid Crisis has been solved

(still doesn't work on RPI 5)

TLDR its a cloud-based mobile gaming platform.

I know that you will not like this that much because it is a web app. It allows "access" to android apps without having to install them. I am curious about whether a bash script can be made to install it. (Context, I code python/kivy/kivymd, bash is weird.)

From the website

About Us

now.gg provides an infinite gaming device in the cloud to its users. The specs of this device can expand dynamically based on the game the user is playing. The device is ad supported so there is no cost of playing the game in the cloud.

now.gg is a member of the Open Gaming Store Alliance (OGSA) and the Open Gaming Store is natively integrated into the experience. The user in addition is able to upload games they would like to play if they are not available via the Open Gaming Store.

Unlike traditional services, the now.gg portal and website is completely built by UGC and AI. The game recommendation system, like the home page, automatically selects games which users are playing on the platform.

The system automatically creates community pages for gamers on the platform around the game they are playing. The ability to see each other's gameplay by default is coming soon to these community pages.

now.gg, Inc. is headquartered in the Silicon Valley and its 500+ employees are distributed over 20 countries. It is backed by leading venture capital firms in the US, Japan, Korea and India.

Confirmations

theofficialgman commented 3 months ago

We are not interested in additional webapps at this time. See https://github.com/Botspot/pi-apps/issues/1791 , links from there, and search the repo for "webapps" for more information.

Users can add their own webapps using the existing "Web Apps" application in pi-apps

Combustion-is-fun commented 3 months ago

Just a thought.

If it is possible to install web apps through PI Apps directly wouldn't that allow the list of apps to expand by 100 fold? 90% of the Apps I use on my RPI are web apps. Web Apps have the advantage of automatic updates and do not take up huge amounts of space. I know this is already possible by the "Web Apps" App and almost all the browsers but my thinking is to streamline the set-up for new users as much as possible as well as improve the app store to more than a couple hundred apps.

You beat me to it, but thanks.

Botspot commented 3 months ago

If it is possible to install web apps through PI Apps directly wouldn't that allow the list of apps to expand by 100 fold? 90% of the Apps I use on my RPI are web apps. Web Apps have the advantage of automatic updates and do not take up huge amounts of space. I know this is already possible by the "Web Apps" App and almost all the browsers but my thinking is to streamline the set-up for new users as much as possible as well as improve the app store to more than a couple hundred apps.

Fair point. But is more better? Or is it a dilution of what Pi-Apps is known for - the only place to get things that are hard to install?

Combustion-is-fun commented 3 months ago

An exploration of this idea.

Ignore any spelling and grammar mistakes. These are my random thoughts typed on a page for the purpose of exploring the idea of many web apps on Pi Apps further.

What is the vision for Pi Apps?

The first thing to note is that this is your project and you get the biggest say in the future of this project. I can only give my opinion as a user. How far you take Pi Apps depends on your ambition for it. I am not proposing to get rid of "Web Apps" app but instead adding safe, popular and useful web apps as a means of saving the developers at Pi Apps time.

Pi Apps isn't just "the only place to get things that are hard to install".

I see Pi Apps as a medium for maximising the user experience on the Raspberry Pi. This is why I would like to be able to install web apps via PI Apps. I believe that its potential has not been pursued far enough.

Is more better? More Choice is better.

Competition leads to innovation out of necessity to improve. I want 10 different drawing apps (for example), constantly competing, improving and adding features to become better. Choice is essential to improvement. Adding web apps increases the speed of use, number and visibility of software available on the Raspberry Pi. I think that this is a good thing.

Raspberry Pi as the desktop computer.

The usability of the Pi is detrimental to its future. PI Apps improves the smoothness of the transition between nicer Operating Systems and Linux. The idea of a Raspberry Pi as a desktop computer is impossible without Pi Apps for 99% of users because we do not have your technical knowledge. That is the effect of only 200 apps.

Native Apps are not the future.

The future of the app is uncertain. Apps when developed are hardware-specific, this is bad because when you change XYZ in hardware you have to update your app, and sometimes rewrite it. It also means you can't run the same software on different hardware without an emulator or docker both of which are difficult. This means that it is easier to build a web app and maintain it because it will run on all devices that can run a browser. So in the coming years and decades, the number of new native apps will decline and the number of web apps will increase. Why maintain an app for Windows, IOS, Android, Linux amd64, and Linux Arm64 when you could have 1 web app? Allowing web apps to PI Apps future proofs it. Chrome OS can run native apps, however most of the apps installed are web apps.

Professional Developers

Just relying on open-source GitHub projects for your apps limits Pi Apps. I love open-source GitHub projects. However, such projects depend on the owners to maintain them and development is slow. I can make a kivy app which displays Wikipedia articles but it'll never compare to a Wikipedia web app because Wikipedia has more time, money, resources and knowledge to satisfy that particular need. The same can be said about everything from 3D art software to advanced physics calculators. By adding web apps you can use popular professionally developed stable web software.

The power of Javascript.

I have played around with the language, it's difficult compared to Python but powerful. Many simple open-source web apps are hosted on Git Hub, which can speed up the development of simple but needed tools. With JS web apps updates happen automatically rather than lengthy updates, further increasing UX.

Security

Pi Apps would not have web apps with any malware or anything. Everything on here is checked to be secure. That is the trust that people put into it. People would not need to check the source code of every app before installing them because Pi Apps is trusted to have done that. Therefore installing web apps through Pi Apps is faster and safer than installing through the "Web Apps" app or normally through your browser for the average user. Remembering people of all ages use the Pi.

My quick list of pros and cons.

Pro's

In the end, it's down to you, Botspot and theofficialgman, do you want Pi Apps to be a small project which fixes a limited set of problems on the RPi or a massive community-driven user-friendly platform and app store? The Google Play Store is The App Store for Android but it had to start somewhere. Pi Apps has the potential to be The App Store for the Raspberry Pi but not with just a couple hundred apps. But web apps could make it happen. I want to see Pi Apps do well.

Combustion-is-fun commented 3 months ago

I feel sorry for @Botspot having to read all that. But that was my best attempt to sell the idea.

Botspot commented 2 months ago

I finally read it! Sorry for the delay - I have been moving back to college and had a lot of things to work on in the real world. (homemade electric vehicles, setting up a workshop in my dorm room, expanding a small business, etc)

Early on, I actually was interested in some form of app store for Pi to contain user-generated stuff like reviews and screenshots. That did not end up happening, but it is interesting that you mentioned it @Combustion-is-fun.

I think our visions are aligned more than you think. But my main reason to say 'no' to most ideas is one simple fact: I don't have the time or willpower to do everything people want. I sincerely wish Pi-Apps could be like Wikipedia or other lively open-source projects, where hundreds of people are working in unison with leadership. But maybe pi-apps is too niche.

And it's not for a lack of trying. I have tried my best to keep at least the app-scripts super easy to read, and have spent extensive time on documentation, all in an effort to encourage interested users into turning into contributors. And that happened! A little bit, for a little while, but only for as long as COVID lockdowns were in effect. If you look at the contributors graphs for pi-apps, it has really been only me and gman since 2021.

We need help. Not suggestions and ideas, help.

The majority of these ideas sound awesome and I would be eager to assist in the efforts. But what all of these people have in common is a "seagull parenting" mentality: fly in, make a mess telling everyone how things ought to be done, and then leave. Usually they say "the team should get it done". There is no team. It's me and one other guy, and much of the time nowadays it's just him. And he has better repos to work on.

So with this web apps suggestion, I propose to you this: if you demonstrate that you can spend some time on this, then I will too.

Here's my proposal:

@Combustion-is-fun You find 100+ high quality web apps and put them into a spreadsheet. Have columns for the name, menu category, URL, a description, and maybe one more for source code or docs. Also make a folder with crisp 64x64 icons for each webapp. If you can do this to reasonable satisfaction, I will then do one of two things:

How does that sound?

theofficialgman commented 2 months ago

Just wanted to add some brief commentary as the "other guy".

I sincerely wish Pi-Apps could be like Wikipedia or other lively open-source projects, where hundreds of people are working in unison with leadership. But maybe pi-apps is too niche.

Wikipedia just has a much much lower bar to entry by its nature. Know something about something? You can edit or write a Wikipedia article. The same is not true for pi-apps and never will be (and thats OK, I think we have done our reasonable best to lower the bar to entry).

We need help. Not suggestions and ideas, help.

I can confirm this sentiment. For anyone that happens to read this, a good place to start learning how to help is by reading our documentation https://pi-apps.io/wiki/development/

... The majority of these ideas sound awesome and I would be eager to assist in the efforts. But what all of these people have in common is a "seagull parenting" mentality: fly in, make a mess telling everyone how things ought to be done, and then leave. Usually they say "the team should get it done". There is no team. It's me and one other guy, and much of the time nowadays it's just him. And he has better repos to work on.

Same as Botspot mentioned for him, I have irl responsibilities to take care of. Over the past few years, I have tried my best to contribute in multiplicative ways to any project (ie: add automation for detection of issues, automation for updating, automated notifications, and writing documentation). IMHO, if you want anything to last beyond you (or just make your life easier in the future) all of those things help over and over again (multiplicative). For example, our bot is more active than Botspot or I could ever be https://github.com/Botspot/pi-apps/commits?author=github-actions%5Bbot%5D and these updates used to be an entirely manual process where we often were slow to update or missed updates entirely.

So with this web apps suggestion, I propose to you this: if you demonstrate that you can spend some time on this, then I will too.

Here's my proposal:

... How does that sound?

I'd just like to add that I approve of that proposal as well.

Combustion-is-fun commented 2 months ago

Challenge Accepted

Thank you @Botspot and @theofficialgman.

The Method itself.

  1. Finding 100 high-quality, web apps. Difficulty: Easy.
  2. Getting the icons. Difficulty: Medium. (If anyone is interested) I will loop through a list of URLs and use the web scraping Python library, beautifulsoup4 to download the icons whilst implementing try/except error handling to keep the script smooth.
  3. Making a table. Difficulty: easy.

Understanding your situation.

I understand your educational situation because I am now in your position educationally.

What I have been working on.

It's funny really, since I did not think you would reply or be accepting of this idea I have already started research for the Python version of pi apps which is backwards compatible with previous installation scripts. I began researching the ".desktop" files for web apps and then engineered the web app install via a Python script. This is similar to how the "Web Apps" app works but installing it as a desktop app rather mobile/tablet app for a better UI feel.

The installation method is really easy. Far easier than native apps. For example the Youtube web app. install.py

def INSTALL_WEB_APP(APP_NAME, APP_URL, APP_ICON):
    DESKTOP_FILE_CONTENT = f'''#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name={APP_NAME}
Icon=../project_name/icons/{APP_ICON}
Exec=/usr/bin/chromium-browser --app={APP_URL} --start-maximized'''
    DESKTOP = open(f"../Desktop/{APP_NAME}.desktop", "w")
    DESKTOP.write(DESKTOP_FILE_CONTENT)
    DESKTOP.close()

APP_NAME = "YouTube"
APP_URL = "https://www.youtube.com/"
APP_ICON = "youtube.png"
INSTALL_WEB_APP(APP_NAME, APP_URL, APP_ICON )

I think the bash equivalent uses echo "some text" | sudo tee -a <file name>.

Lightening the load.

Serious consideration of funding.

You need to start community financial support and use that money for rewards for solving problems. There are GitHub repos with a crypto wallet to donate to and other methods of funding such as buymeacoffee. This isn't me saying you should become the next evil Google or whatever just that money gives you choices. It alleviates pressure on you to maintain a difficult project.

Bash isn't where the coders are.

Sorry, this hurts but it had to be said. People learn (and should learn) the programming languages Python and Javascript (Django and React frameworks respectively) because that is where the money is (those bills won't pay themselves). The only reason they know a little bash is because they have to work with the terminal. Whilst this project is fantastic, long-term Pi Apps needs a Python-based "superset" in a stable GUI library such as PyQT (not Kivy unfortunately).

Questions

Do icons have to be png?

This is important because some sites use favicons or jpegs, SVG's. If so, Is that a pi-apps limitation?

How strict is your definition of "web app"?

Any site can be packaged to look like a desktop app. There is a whole range of virtual infrastructure that makes up the web from pure html/css sites to static javascript sites to full-blown framework sites with database connectivity.

What I will do in the meantime.

I will create a document of 100 full-blown web apps and add any useful site which might not be considered a web app as well.

theofficialgman commented 2 months ago

It's funny really, since I did not think you would reply or be accepting of this idea I have already started research for the Python version of pi apps which is backwards compatible with previous installation scripts.

Botspot never said that and I also do not agree with that statement. python would be useful for a UI rewrite (eg: PyQt) not for installation/uninstallation scripts. Using python (or any language) only increases the barrier to entry (every project on the internet has documentation for how to install, compile, package, etc their project using bash scripting, anything else needlessly complicates things).

Serious consideration of funding.

You need to start community financial support and use that money for rewards for solving problems. There are GitHub repos with a crypto wallet to donate to and other methods of funding such as buymeacoffee. This isn't me saying you should become the next evil Google or whatever just that money gives you choices. It alleviates pressure on you to maintain a difficult project.

Funding simply doesn't work in small open source projects. I have had a GitHub sponsors profile since April and nobody has funded me there. Even if we were funded it would not resolve anything. We need people, not money. We could never make enough money through donations to afford to setup rewards.

Bash isn't where the coders are.

Unless we want to rewrite underlying pi-apps GUI (which we don't need to do for the long term health of the project), we don't need coders. We just need people willing to read some documentation and write install/uninstall scripts and package them up the pi-apps way and commit to maintaining them for the projects they are interested in.

Combustion-is-fun commented 2 months ago

Update: I am still working on this, I have over 300 web apps because I found a web resource with loads. Based on the requirements for Pi apps, I am currently sorting through them. In conjunction with web apps provided by large companies, (like Google and Microsoft) I have found other great projects which will be great editions to Pi Apps. Such as SketchPad. Do you have any other recommendations?

Botspot commented 2 months ago

I do have a number of simpler websites bookmarked for doing simple tasks. Here are a few examples:

Bear in mind not all of these may fit well with the other web apps that you have in mind, or they may be too niche, or they may require an account. Just because I listed these does not mean you should feel pressured to add them.

Combustion-is-fun commented 2 months ago

If I get time, I will add them too. I am still going through all of the others that I web-scraped from a site and removing unsafe ones (HTTP://, dubious advertising, or strange downloads). A good lot of them are niche but useful. I am trying to get multiple web apps for each service. The criteria also include being either free or free tier but I am not excluding web apps which require an account. I think I am going to break the process up a bit. 20 web apps at a time because the Python script I wrote provided a ".ods" file with hundreds of lines. Is this ok with you?

Botspot commented 2 months ago

I think I am going to break the process up a bit. 20 web apps at a time because the Python script I wrote provided a ".ods" file with hundreds of lines. Is this ok with you?

My reason for asking for there to be at least 100 is to force us to do either nothing at all, or launch in a big and meaningful way.

Combustion-is-fun commented 2 months ago

Fair enough. It won't be just 100 unfortunately, that's too small. I am still working on this but I do have academic obligations now.

theofficialgman commented 1 month ago

I feel like pi-apps could not possibly bring any new functionality to the web apps space. chromium (and most chromium based browsers) already have builtin functionality ("Install page as app") for creating webapps for any arbitrary website. firefox used to have it and is evaluating adding it back https://connect.mozilla.org/t5/ideas/bring-back-pwa-progressive-web-apps/idi-p/35 . If that happens I don't see how this would be beneficial.

Botspot commented 1 month ago

I think the only value to offering webapps would be the curation and catalog. The point is less about a user's ability to create their webapp, and more about making good webapps easier to find and compare in one place.

theofficialgman commented 1 month ago

What is the vision for Pi Apps?

The first thing to note is that this is your project and you get the biggest say in the future of this project. I can only give my opinion as a user. How far you take Pi Apps depends on your ambition for it. I am not proposing to get rid of "Web Apps" app but instead adding safe, popular and useful web apps as a means of saving the developers at Pi Apps time.

Pi Apps isn't just "the only place to get things that are hard to install".

I see Pi Apps as a medium for maximising the user experience on the Raspberry Pi. This is why I would like to be able to install web apps via PI Apps. I believe that its potential has not been pursued far enough.

This isn't an accurate description of pi-apps. As Botspot has previously said, in an ideal world pi-apps wouldn't be necessary, all apps would already exist in the default repositories with their most updated version. The reality is that the default repos do have many many applications but they can be somewhat out of date and not all applications are distributed through them.

I actually WANT pi-apps to only be a place for applications that do not have existing apt/flatpak installation mechanisms. I can't speak for @Botspot but my goal has always been to AGGRESSIVELY pursue the upstream integration of any changes necessary to get software distributable for the ARM Linux community. If you go here (as well as my gitlab and other software places) you will see that many of my PRs (that aren't at pi-apps) are at other projects assisting in the porting, bugfixing, building, packaging, and distribution of ARM linux software. My very long term goal is to shrink pi-apps to the point of being entirely redundant not grow it. That doesn't mean it can't grow though in the inbetween. I am well aware that there is still a lot of desktop software out there that is difficult or inconvenient to install and those can certainly be a part of pi-apps.

To me the addition of a dedicated web apps system within pi-apps seems narrow minded. It only affects the small subset of people that are using our store. Additionally, as I have already said, there are existing mechanisms that are good in chromium based browsers. Maybe your time would be better spent contributing to firefox's implementation.

My ultimate goals are to assist with growing the Linux ecosystem on the hardware that people have available to them (and for many people that means hardware like the raspberry pi and nintendo switch which is the first introduction to linux). Pi-Apps reduces friction points and makes transitioning easier but since there are other (often better and more broadly reaching) systems out there for doing the same thing (adding webapps) I think it would be best to use those than provide our own competing system.