I’ve finally been able to compile an APK for Android, which is downloadable from https://codeberg.org/freamon/pferd/src/branch/develop/releases/pferd.apk

In addition to the APK, the repo provides the opportunity to build a version of the app to run natively in Windows, MacOS or Linux, or to run in an emulated Android environment. If you want to build your own APK, I’ll try to help with all the magic incantations that are seemingly required for Google’s ecosystem.

I don’t have the means to provide anything for iPhones.

Things to note:
The app is intended for use with https://preferred.social/. Other PieFed sites don’t have the API enabled, so won’t work. It can’t be used for Lemmy sites, and - likewise - Lemmy apps won’t work with the site.
If you have the app, and want to do things for which you need an account, you can create one at the site using the code ZeXJkmS46l2h0SiE.
The API has a rudimentary rate-limiter, initially restricting post and comment creation to need a 10 minute gap. There’s 2 communities for which it doesn’t apply though (a local one at ‘local_testing’, and a remote one at ‘[email protected]’) because they both don’t federate any further than themselves.
Like a dickhead, I created a site in the UK, so it doesn’t federate with lemmy.zip. If more sites follow their lead, it’ll just be me and feddit.uk in our own private Fediverse.
I’ve already discovered some issues with the app, but I doubt they’ll be the only ones.
If other people are able to help out with testing, and it goes well, then we can start taking steps towards enabling the API at other PieFed sites, and distributing the app via recognised channels.
Moreover, if the testing goes well, then the API can be properly documented, and a JS client created, so others can develop their own apps (an ‘official’ PieFed app would ideally be fully FOSS, which this app isn’t, 'cos it was made with Flutter).

Thanks.

(edited to cross out some bad info)
(edit 2: lemmy.zip’s Admin made some changes and got in touch, and I can now federate with lemmy.zip!)

  • jwr1@kbin.earth
    link
    fedilink
    arrow-up
    5
    ·
    2 days ago

    This looks great! I can’t wait to add PieFed support to my app once the API is made official.

    an ‘official’ PieFed app would ideally be fully FOSS, which this app isn’t, 'cos it was made with Flutter

    To what are you referring to? Flutter’s source code is fully available on GitHub. Where did you get the idea that building something with Flutter makes it non-FOSS?

    • Andrew@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      Maybe I’ve the wrong idea. This app is a fork of Thunder (for Lemmy), and Thunder is only available on f-droid via the IzzyOnDroid repo, so I was thinking that it contained some binary blobs from Google.

      • jwr1@kbin.earth
        link
        fedilink
        arrow-up
        2
        ·
        2 days ago

        There could be any number of reasons you might prefer IzzyOnDroid over the official repo (see articles here and here for in-depth explanations), IzzyOnDroid also uses a few additional security checks that official F-Droid does not. Localsend is an app built with Flutter, and it is available in the official F-Droid repo.

        All that to say, I believe Thunder is in the IzzyOnDroid repo (not F-Droid) due to a matter of preferences, not because it might contain proprietary blobs (which it probably doesn’t).

        • Andrew@piefed.socialOP
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 days ago

          Oh, right. Thanks. Sorry, I’m realising now that what I said was a bit of lazy assumption. I’ve just looked, and saw that Interstellar is also Flutter, so you’re a lot more likely to know than me (I’ve very new to all this). I’ll edit my post.

      • Andrew@piefed.socialOP
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 days ago

        Yeah, the API is very similar in lots of ways. Some fields have different names (e.g. post.title instead of post.name), the ‘site’ response is a lot smaller, and there’s things like ‘activity_alert’ for subscribing to other people’s posts/comments and unsubscribing to your own (aka turning off inbox replies). Some routes aren’t covered, either because the app didn’t call them, or because there’s no back-end support (e.g. viewing Modlogs), or because I de-prioritized them for now (e.g. viewing Reports).

        I’ve started doing an OpenAPI spec thing, which I’m finding tedious to create, but it should make everything clearer when it’s published.

  • flamingos-cant@feddit.uk
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Like a dickhead, I created a site in the UK, so it doesn’t federate with lemmy.zip. If more sites follow their lead, it’ll just be me and feddit.uk in our own private Fediverse.

    We’re not that bad are we :p

  • mesamunefire@piefed.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Got it work, awesome job.

    I would love to use it with piefed.social (or any other piefed instances honstly, but I like the flagship instance).

    • Andrew@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      2 days ago

      Neat. I saw your name in the ‘Users’ list (Search -> Explore Instance -> Users).

      The API needs a DB upgrade, and so right now I’m in a queue behind ‘Feeds’, which is a feature that will add some new tables. I don’t yet know what kind of upgrade it needs to be, i.e. how much things can be fudged vs. implemented properly.

  • squirrel@discuss.tchncs.de
    link
    fedilink
    arrow-up
    6
    ·
    3 days ago

    Like a dickhead, I created a site in the UK, so it doesn’t federate with lemmy.zip.

    According to their admin the geoblocking doesn’t affect federation:

    Will this affect federation? No - even sites in the UK will still be able to federate with Lemmy.zip both ways. This just affects users trying to access the lemmy.zip website

    • freamon@preferred.social
      link
      fedilink
      English
      arrow-up
      4
      ·
      2 days ago

      I assumed the same, when I read their announcement. But requests from my site, for their users or their communities, do not work. A ‘text/html’ request gets the UK-specific rejection in HTML, but so does a ‘activity+json’ request. Based on this, sites in the UK that are already aware of existing lemmy.zip actors will be okay, but they won’t be able to initiate profile updates, or fetch the details for any new lemmy.zip actors. Because my site was created after the geo-block came in place, I’m essentially deferated from them (for now, hopefully).

      • DemigodrickA
        link
        fedilink
        arrow-up
        2
        ·
        1 day ago

        I’d be interested in debugging this with you - in theory all the api/activity pub endpoints should be accessible as they’re bypassed, but not the ability to access the ui directly on a UK ip address.

        It’s really hard to test this as there aren’t really any servers in the uk where they’re active/federation is working, so it would great to refine this.

        • freamon@preferred.social
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day ago

          Thanks again. I wasn’t sure about contacting you before, because the UK’s problems shouldn’t be your problems, but I’ve now updated the post with news of the fix.

          • DemigodrickA
            link
            fedilink
            arrow-up
            2
            ·
            1 day ago

            Well the stupid act makes it everyones problem 😅 Glad its solved (and was relatively easy too!)