I’ve non-googled this, but everything in the results is so ‘slop’ that it hurts to read. The only halfway helpful result was apple’s page for developers, but I was curious if one has to use their xcode/swift environments.

  • CaptDust@sh.itjust.works
    link
    fedilink
    arrow-up
    10
    ·
    edit-2
    6 days ago

    If you’re building for apple, yes you have to use xcode. You don’t need to use swift but that’s Apple’s first class supported language, it’ll probably be the easiest to get up and running. React Native or Dart also work. Regardless of language, you’ll still need xcode to package the app. Android Studio is similar on the Google side, they use Kotlin as their primary language.

    • imadethis@fedinsfw.appOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 days ago

      Got it, thanks. I guess I’m off to install swift and get an xcode ‘replacement’ (looks like xtool is the top result when I looked?) to start playing with. AND the language is installed by installing an installer manager first ? Grumble, grumble I already have a package manager, harrumph.

      I shouldn’t be surprised that apple would nearly require a person to be using a mac, but somehow it still is frustrating that being on linux will make this harder.

      You have any advice on the swift/xcode thing with linux (arch variants, specifically, if that helps narrow it down)?

      • CaptDust@sh.itjust.works
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        5 days ago

        Heh… yaah welcome to apple. Uh, to be honest you probably want a mac. Back when I was playing in that sandbox I invested in a second hand mac mini… it was less than ideal but not unbearable. At the time developing off a Mac meant no access to apple SDK and the iOS simulator, the SDK has all the good device integrations and the simulator is very useful for testing before waiting for a full build on testflight. The path you’re treading, based on my experiences, strikes me as a difficult one but maybe someone can chime if the outside-mac environment has improved.

        Given your constraint I suggest leaning more towards react native, you can debug/run that locally in linux, and check out subscribing to something like expo / esd to package, sign and send the app to testflight. Could be cheaper short term than buying a mac.

        I haven’t used this approach myself, but that is the angle I’d consider without the hardware. Orr like others have suggested start with building a PWA and access as a website.

        Edit - to be clear I’m not trying to entirely discourage the approach you found. Give it a solid 4 hour attempt and see how it works out then keep going if you get a useful result, that’s basically app development.

  • Jerkface (any/all)@lemmy.ca
    link
    fedilink
    English
    arrow-up
    5
    ·
    5 days ago

    Godot offers a cross platform environment for applications that is as beginner friendly as a professional solution can be. Probably not most people’s first choice but a solid option, and your app will run in a browser or desktop as well.

  • AllNewTypeFace@leminal.space
    link
    fedilink
    arrow-up
    5
    ·
    6 days ago

    For iOS, you need to use the Xcode toolchain, which builds the app and cryptographically signs it to run on a device (Apple control provisioning for iPhones in general, but you can set up your own devices to run apps you’ve signed yourself). You can use Swift or Objective C, for which the APIs are available, though can also link in code in other languages (C/C++, Rust, Go, Kotlin and so on).

    Google used to have a cross-platform system named Flutter, which let you write apps in a language named Dart and compile them for iOS or Android, though you still need to use the Xcode toolchain for iOS; not sure if that’s still maintained.

    You can also use things like React Native (i.e. your logic is in JavaScript, but is deployed in an app that builds the UI from native components and connects it to your code), but the apps produced this way tend to feel a bit off (laggy/unresponsive, and sometimes with the UI behaving weirdly). Or you could make a PWA (Portable Web Application), which is essentially a web page with a file that tells mobile browsers that it can be saved as an app to the desktop, though those, naturally, feel like a web page rather than a native app and are more limited.

    • imadethis@fedinsfw.appOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 days ago

      I think having a PWA is going to be a harder task for the idea I have in mind.

      This is also going to be baby’s first real program, so following along with the ‘native’ language for the phone will hopefully make things easier on me.

    • Em Adespoton@lemmy.ca
      link
      fedilink
      arrow-up
      2
      ·
      6 days ago

      I’d like to highlight your comment at the end: if you make a Portable Web App (PWA), it’ll run on iOS and Android and doesn’t require a developer subscription, an App Store or anything else. Just knowledge of the APIs and an idea.

      Once you’ve proven the concept as a PWA, you may want to convert it to an app to get access to more protected APIs and get it onto the official App Stores though.

      But with WebASM as a target, anything that doesn’t require a specific OS API runs just as well through a PWA as using an official dev environment.

        • Em Adespoton@lemmy.ca
          link
          fedilink
          arrow-up
          2
          ·
          5 days ago

          PWAs have worked on all Android and iOS phones since the OG iPhone that didn’t have an App Store and expected ALL apps to be PWAs.

          Google and Apple just don’t advertise the fact anymore and removed PWAs from their official development target list.

  • cheese_greater@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    6 days ago

    For Apple platforms, you have to use XCode. Check out HackingWithSwiftUI’s 100 Day program, its free and you can do it at your own pace. Its an excellent resource, especially just beginning

  • Canaconda@lemmy.ca
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 days ago

    Look up Web Progressive Apps. Basically websites that function like apps and have limited interactivity with phone hardware (more restricted on apple). Very very common these days.