Make Apps for Linux

  • I think the premise is wrong when there still doesn’t exist a core set of frameworks that are abi stable on Linux. On competing platforms there are way more frameworks out of the box (CoreImage, CoreAudio, CodeML, SceneKit, AppKit, etc) and they don’t break as often.

    I know in Linux they have fun things like snap and flatpak but it is really solving the problem using a bit of infrastructure and package management instead of doing it in the frameworks and programming languages themselves (which are what you are asking people to write apps in).

  • Maybe I'm just too ignorant to know the pattern that determines whether I need to specify 'dev' and 'version' on a package or some random trailing '1' or '0', but the first linux distro with a sensible and consistent naming scheme for packages is the one that wins my heart.

    `libgnutls-dev` `libgtk-3-0` `libwayland-server0` `libxcb1` `libx11-6` `libffi-dev` `libncurses5-dev`

  • This is one of the biggest issues holding the Linux platform as a whole. It's often cited as a strength, but I don't see it as such. Many times, the plethora of choice is pushed forward by devs as an advantage of Linux ("you have so many choices to pick from!") but for many users this presents the paradox of choice - and pushes many people back to the platform they came from.

    You get less choice on macOS and Windows, but the choices available are much more polished and less fragmented.

    i.e. How many different tiling window managers do we need? Can't we take the best tiling wm's and start developing better docks and applets for them? How about apps and launchers that integrate with the tiling WM paradigm? Instead we end up with 10 different varieties of tiling wms and half-baked half-assed workarounds and programs for them.

  • More software? Wonderful! I'm all for it, but before starting something from scratch why not contribute to something that already exists, or possibly pick some project that was abandoned or simply needs to be worked on for example to be built with newer compilers, run on newer hardware, etc. Which makes me wonder if there is somewhere a database of dormant/dead projects that would deserve to be resurrected.

  • There's a lot of complaints that there isn't much in the way of tooling to create cross-OS compatible apps but I disagree. Just looking at solutions which aren't Electron:

    - Telegram uses Qt and ships a performant native app across all three OSes

    - Flutter compiles down to native code across all three (and mobile)

    - Kirigami is a QtQuick framework that will give you an executable app across all mobile and desktop targets

    Go and build your app. There's no reason this needs to an excuse to flame on Linux.

  • The problem is OSS software not even trying to compete with the market. People using OSS software taking it for granted that the UX is going to be subpar, and it really is. Regular propriety software faces the risk of their users not paying, therefore adapting to make end user experience great. OSS usually doesn't have that risk. Open source needs to be exposed to risk from end users.

    I tried to change that with Notes[1] but I find it hard to live on solely on ads. I tried to incorporate paying for some premium features (like Kanban) but the app is still fully FOSS therefore everyone can compile it from source easily.

    I think I'll close-source my next app[2] before it launches. I just can't risk not being paid for my hard work. I also believe the Linux community will benefit from that, since getting paid will allow me to invest more in making UX-focused apps on Linux. I might open source some parts of it tho (or maybe all of it in the far future).

    [1] https://github.com/nuttyartist/notes

    [2] https://www.get-plume.com

  • The article could do with a few examples.

    I'm not aware of anyone who is making a distro who should instead be making an application. Maybe LinuxCNC if you squint?? But that has very specific kernel requirements which are arguably best served by a custom distro.

  • > Stop making Linux distributions, make applications instead.

    Stop listening to people trying to tell you what you should do or not.

  • I recently switched from Mac to Linux so that I can use beefy refurbished machines as my daily driver. I've installed Linux on lots of different machines previously, but this time it's not just a hobby.

    Ubuntu has great support for my hardware and peripherals, but the app store feels unfinished and forced. Pretty much everything works as expected.

    I'm interested in checking out Mint (also Debian) and Arch, but it feels like there's a lot of software written with Ubuntu in mind, so I'm wary.

  • Why would anyone do this given a) it's harder and b) linux users don't pay for stuff not worth paying for?

  • > Too often they fall into the trap of creating more Linux distributions. We don’t need more Linux distributions. Stop making Linux distributions, make applications instead.

    Right on the spot.

  • It's not an attractive scene for GUI developers on Linux. Gnome, Qt, and Electron all have some unappealing aspects. Many people who get the itch to make a Linux GUI app will immediately be discouraged by having to choose between them.

  • I'm definitely for more guided resources on making Linux apps from idea -> release, which I wish TFA was more of.

    I think there's a common misconception that if the developers of ten similar apps would just pool their resources, then one great app would result. Fragmentation certainly can be a problem but I feel like this is some kind of corollary to the mythical man-month.

  • Segmentation has been tough for a Linux newbie like myself. I hope there can be greater unification some day so that applications have one install type, and come with greater predictability.

  • Is anyone working on solving the problem of building it once and distributing to all Linux package managers?

  • I think Electron has done more for making desktop Linux viable than anything else in recent memory.

  • This has always been an issue for Linux adoption.

    Somebody I know (not in tech) wanted to switch from Windows to Linux and I said:

    "Which one?"

    It's the same as Mastodon.

    "Which instance?"

    The answer is usually the biggest / most popular instance or distro, but not many applications the masses use are on Linux, the same as there is not many interesting people on Mastodon for people to switch over to it.

    Applications are the barrier to mass adoption here for Linux unfortunately, and the paralysis of choice is the double edged sword for the massive amount of Linux distros.

    Thousands of years of effort spread across many distributions that not many people would use.

  • undefined

  • There's also wails.io that is a much better alternative to Electron, imo, and uses native APIs for OS functionality. Added benefit: Wails is also cross platform.

  • And make an effort to support multiple different package managers? No thanks!

    If I’m gonna make an app today and I have the choice, it’s with browser technology.

  • This does ignore the fact that there's not one UI toolkit that you can target and that will work on all distros, and you certainly can't target Qt, GTK, ETK, etc. all at the same time. I've been making a cross platform GUI library and it's been a pain point on Linux (even though I use Linux!)

  • I've got an Electron app in the works which I'm planning to sell to Windows and Mac users (probably through the platform's app stores, using in-app purchases).

    Is such a thing possible with the Linux market? Can I sell my software through stores? Is IAP a thing?

  • Looks nice but in my experience, developing apps only for Linux is not cost-effective.

    I would choose WxWidgets or Qt and add some extension points where needed via interfaces to keep the codebase portable.

    Sticking to just native APIs is just locking yourself down into Linux.

  • Saying that you should target all Linux distros while showing a picture with 30 different Linux distributions, most of them used by at most few hundreds of people, is so ironic

  • The year of the linux desktop is upon us.

  • I recently tried to create an executable from a Python script, Mac and Windows worked wonderfully, on Linux I had massive problems when I tried to run it in a different system then it was packaged. Linux caused the most problems, in the end I decided it was not worth it, 99% use Windows or Mac anyway.

  • What software is used to make the graph on the main page under the Target heading?

  • Is this a parody site?

  • I like it, but I don’t think it speaks to the audience it wants.

    Why not show a 12-15 line python app using customtkinter, wxwindows, qt, etc? It currently says something like:

    —

    To target all platforms, here is the first step! Choose gnome or KDE!

    You can write apps for all distributions as a beginner if you choose the right cup!

    Step 2: ???

    Step 3: target all platforms by targeting elementary OS or touch!

    —

    Alternatively, a true and recent experience I had:

    —

    The other night, I thought, “I wonder if I could get a fonzie-like cartoon to popup as a taskbar-buddy, like adware in 2001.”

    I looked up some examples, then had copilot do a sketch of the relevant pyqt5 api calls.

    Ayyy… about 30 minutes later I had a PyQT5 app running in XFCE, and had extra time to make `fonz-ai` play “Aiiii.ogg”, and play the jump the shark music, when dismissed.

    Testimonial: I didn’t think it would be that easy, esp without VB6/warez ;)

    ^This is the kind of app we need to believe in again^ :P

    (PS: it worked in plasma and gnome too, because standards. Also archlinux/arcolinux.)

  • > Target All The Linux Distributions

    If you are going through the trouble of targeting all Linux distributions, why not just target all platforms by using a framework like Flutter or React?

  • Does anybody have much experience with the difference between Electron and NW.js.

    Electron seems to get all the limelight, but from reading the two websites, nw.js sounds like a better solution to me.

  • instead of getting more people to make new apps, gnome and kde should be trying to coral developers to improve the existing ones

  • Make Web Apps

    - Work on every operating system.

    - Easier to monetize, easy to charge a recurrent fee, no worries about piracy.

    - Easy to distribute.

    - Great dev tools and frameworks.

  • undefined

  • > Target All The Linux Distributions

    > Unlike other platforms, Linux is a very diverse target. There are hundreds of Linux distributions, some more popular than others. Once published though, applications can generally work everywhere.

    > There are well documented software packaging and distribution systems which enable developers to get their applications into the hands of users.

    > Each developer framework and Linux distribution will have their own recommended route to users. When you’re ready to share your creation, the development documentation will signpost their suggested packaging guides.

    “Your apps will generally work everywhere” and “there are hundreds of distros and you have to do work to support each one individually” are essentially contradictory, no?

  • undefined

  • [flagged]