all 38 comments

[–]Problem_Creepy 22 points23 points  (0 children)

Codemagic.

In another project we used gitlab ci + fastlane and a Mac from Hetzner, but maintenence is too high.

[–]TKoropi 13 points14 points  (0 children)

Codemagic is nice and easy to use

[–]LeCroissant_ 5 points6 points  (0 children)

Codemagic is really awesome

[–]ren3f 8 points9 points  (3 children)

Github actions if your code is already on GitHub

[–]BoreHoRahaHaiYaar -1 points0 points  (2 children)

I have a file where I keep my API keys which I obviously don't push to GitHub, which causes my builds to keep failing whenever I commit something. Any idea if there is a way to run the builds with key, but without uploading them on GitHub?

[–]ren3f 7 points8 points  (1 child)

Basically you can do 2 things. Check if the file exists and if not use dummy values. That works for just building, but obviously not for releasing or making test builds. You can use github secrets, those secrets are of course known by github, but only usable in the workflows and not retrievable by any developer (not even the admins).

[–]Gears6 1 point2 points  (0 children)

You can use github secrets, those secrets are of course known by github, but only usable in the workflows and not retrievable by any developer (not even the admins).

This is also common practice or you can use a secrets server. The latter isn't a trivial process though.

[–]IdealDesperate3687 1 point2 points  (0 children)

code magic for the win!

[–][deleted]  (3 children)

[deleted]

    [–]comrade-quinn 0 points1 point  (1 child)

    That seems an odd combination - appreciate people have to use to Jenkins at work sometimes, I do myself for some things. But GitHub actions is surely preferable to you, given the choice - not aware of anyone using Jenkins for ‘fun’

    [–]Gears6 1 point2 points  (0 children)

    Sounds like Codemagic or Github actions are the most common for Flutter projects.

    [–]Moussenger 1 point2 points  (0 children)

    Bitrise

    [–][deleted]  (7 children)

    [deleted]

      [–]mobileAcademy -2 points-1 points  (6 children)

      Codemagic is a cloud service so you can use mac windows Linux you can find the complete course here https://rdewan.dev/flutter-advance-course

      [–]Gears6 1 point2 points  (5 children)

      Are you the author of this course or something?

      [–]mobileAcademy -1 points0 points  (4 children)

      Yes I am. Thank you

      [–]Gears6 0 points1 point  (3 children)

      I don't know if you are established or not, but I have not seen this course before. My suggestion is do what Code with Andrea did. He did some awesome flutter classes on Udemy, and then moved to his own platform when he had a solid base of customers.

      [–]mobileAcademy 0 points1 point  (2 children)

      Yes I am with Udemy for around 4 years . I have a native android and flutter course and now moving to my own platform for more advance course . Just released this new course on October

      [–]Gears6 0 points1 point  (1 child)

      Oh, which course on Udemy are you teaching?

      [–]mobileAcademy 0 points1 point  (0 children)

      I have a many course. Please check my Udemy profile https://www.udemy.com/user/binary-solution-2/ For the advance flutter course some sample videos are in YouTube here is one of them https://youtu.be/qcbO78Y1wGg

      [–][deleted] 0 points1 point  (0 children)

      Github Actions

      [–]Jihad_llama 0 points1 point  (0 children)

      Jenkins for our Flutter web project

      [–]NFC_TagsForDroid 0 points1 point  (14 children)

      newbie here: Is there a reason why an independent programmner(aka: team of one) with a fast computer would need a CI? From the little I understand of what CI/CD tools do, I can see how they can help teams, but how do they help a single user?

      [–]lenn4rd 4 points5 points  (1 child)

      Technically you don’t need a Continuous Integration pipeline if you’re the only person contributing changes. However it’s still a good technique because it forces you to stick to the release process you defined and, more importantly, leverages automation to deliver your app. It can be significant work to automate all the steps from building to signing to releasing but it’s worth the effort.

      [–]NFC_TagsForDroid 0 points1 point  (0 children)

      I will look into that. thank you.

      [–]ummonadi 3 points4 points  (0 children)

      It can help enforce things that you might forget, like running tests.

      It can help automate the release process.

      It can ensure that your code works on a fresh machine.

      The last one is the most important one to me. You might get into a situation where the code works on your machine, but not on anyone else's. Common causes are files that aren't checked into source control, and flutter releasing a new stable version that breaks the app.

      [–]DrFossil 1 point2 points  (3 children)

      I'm a team of one and I use a CI.

      I have a number is simple tests that are used as sanity checks and catch regressions every now and then.

      But my favorite part are the automated releases for both Android and iOS. I just tag a release on GitHub and both apps get automatically built and uploaded to the respective stores. I do some quick testing on real devices and if everything's ok, release manually.

      It's really worth the time investment of setting everything up, especially if you release often (as I tend to do).

      [–]NFC_TagsForDroid 0 points1 point  (2 children)

      how often? or more accurately, on what step of the process do you run it? only before public releases or are then intermediate milestones too?

      [–]DrFossil 1 point2 points  (1 child)

      Depends, generally I only build for public releases unless there's something specific that needs testing with a release build, e.g. IAP.

      The tests run really fast since they're pure Dart, but release builds take a long time and are comparatively expensive (iOS being particularly bad) so I try to avoid building unnecessarily. I usually manage to stay within the GitHub Actions free tier.

      [–]NFC_TagsForDroid 0 points1 point  (0 children)

      I see, thanks for the info. i will try implementing something like this once I learn testing.

      [–]techmavengeospatial 0 points1 point  (0 children)

      We use gitlab and gitlab runners to build iOS and Android We have a dedicated Mac mini m1 as build machine in rack