• squaresinger@lemmy.world
    link
    fedilink
    arrow-up
    26
    arrow-down
    1
    ·
    20 hours ago

    Add to the list: doing native development most often means doing it twice. Native apps are better in pretty much every metric, but rarely are they so much better that management decides it’s worth doing the same work multiple times.

    If you do native, you usually need a web version, Android, iOS, and if you are lucky you can develop Windows/Linux/Mac only once and only have to take the variation between them into account.

    Do the same in Electon and a single reactive web version works for everything. It’s hard to justify multiple app development teams if a single one suffices too.

    • ChickenLadyLovesLife@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      12 hours ago

      iOS

      At my last job we had a stretch where we were maintaining four different iOS versions of our software: different versions for iPhones and iPads, and for each of those one version in Objective-C and one in Swift. If anyone thinks “wow, that was totally unnecessary”, that should have been the name of my company.

    • boonhet@sopuli.xyz
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      17 hours ago

      At this rate I suspect the best solution is to cram everything but the UI into a cross-platform library (written in, say, Rust) and have the UI code platform-specific, use your cross-platform library using FFI. If you’re big enough to do that, at least.

      • footfaults@lemmygrad.ml
        link
        fedilink
        English
        arrow-up
        7
        ·
        17 hours ago

        but the UI into a cross-platform library (written in, say, Rust)

        Many have tried, none have succeeded. You can go allllll the way back to Java’s SWING, as well as Qt. This isn’t something that “just do it in Rust” is going to succeed at.

        • boonhet@sopuli.xyz
          link
          fedilink
          arrow-up
          3
          ·
          15 hours ago

          Are we gui yet?

          I haven’t really kept up with Rust UI frameworks (or Rust at all lately, nearly nobody wants to pay me to write Rust, they keep paying me to write everything else). Iced was the most well-known framework last I tried any UI work, with Tauri being a promising alternative (that still requires web tech unfortunately). This was just me playing around on the desktop.

          Is Dioxus easy to get started with? I have like no mobile UI experience, and pretty much no UI experience in general. I prefer doing backend development. Buuuut there’s an app I want to build and I really want it to be available for both iOS and Android… And while iOS development doesn’t seem too horrible for me, Android has always been weird to me

          • SorteKanin@feddit.dk
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            7 hours ago

            Is Dioxus easy to get started with?

            I haven’t tried it myself but I’ve read the tutorials and it looks very React-inspired. It looks quite easy to pick up. It is still based on HTML and CSS but you can use one code base for all platforms.

    • who@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      19 hours ago

      This equation might change a bit as more software users learn how bloated apps affect their hardware upgrade frequency & costs over time. The RAM drought brings new incentive to teach and act on that knowledge.

      Management might be a bit easier to convince when made to realize that efficiency translates to more customers, while bloat translates to fewer. In some cases, developing a native app might even mean gaining traction in a new market.

      • squaresinger@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        17 hours ago

        I’m not too optimistic on that one. Bloated software has been an issue for the last 20 or so years at least.

        At the same time upgrade cycles have become much slower. In the 90s you’d upgrade your PC every two years and each upgrade would bring whole entire use cases that just weren’t possible before. Similar story with smartphones until the mid-2010s.

        Nowadays people use their PCs for upwards of 10 years and their smartphones until they drop them and crack the screen.

        Devices have so much performance nowadays that you can really just run some electron apps and not worry about it. It might lag a little at times, but nobody buys a new device just because the loyalty app of your local supermarket is laggy.

        I don’t like Electron either, but tbh, most apps running on Electon are so light-weight that it doesn’t matter much that they waste 10x the performance. If your device can handle a browser with 100 tabs, there’s no issue running an Electron app either.

        Lastly, most Electron/Webview apps aren’t really a matter of choice. If your company uses Teams you will use teams, no matter how shit it runs on your device. If you need to use your public transport, you will use their app, no matter if it’s Electron or not. Same with your bank, your mobile phone carrier or any other service.

      • hornywarthogfart@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        14 hours ago

        We have an enormous problem with software optimization both in cycles and memory costs. I would love for that to change but the vast majority of customers don’t care. It’s painful to think about but most don’t care as long as it works “good enough” which is a nebulous measure that management can use to lie to shareholders.

        Even mentioning that we’ve wiped out roughly a decade in hardware gains with how bloated and slow our software is doesn’t move the needle. All of the younger devs in our teams truly see no issue. They consider nextjs apps to be instant. Their term, not me putting words in their mouths. VSCode is blazingly fast in their eyes.

        We’ve let the problem slide so long that we have a whole generation of upcoming devs that don’t even see a problem let alone care about it. Anyone who mentors devs should really hammer this home and maybe together we can all start shifting that apathy.