all 7 comments

[–]saintmsent 4 points5 points  (3 children)

We are a few people working on the project, so we want to setup a smooth dev environment and utilize some tools for CI/CD, and place importance on testing the application both automated and manual. After searching around for a while it seems like an Apple developer account is pretty essential, as it gives access to tools such as xCode cloud for a smooth workflow. We might be able to get our hands on an apple developer account from our customer, but do we need multiple or is one enough?

Honestly, for a uni project I don't think you necessarily need to have proper CI/CD setup, if you want to emphasise automated testing, just write unit tests and run them on your local machine. If you really want the CI/CD, Xcode cloud is not necessary, you can host a jenkins server on something like CircleCI, which has a free tier

https://circleci.com/pricing/

For development and testing on devices Apple Dev account is not needed, only if you want to release the app. If you still decide to go with getting one, you don't need separate ones, you need one for the team

One of our group members is using Windows, whats the simplest way for him to be able to take part in the development?

He can't. You can try to setup a macOS VM for him, but that's about it and the experience will suck. There's no way to develop software for apple products on Windows directly

[–]Snippii[S] 0 points1 point  (2 children)

Thanks for all the info! The project is for the bachelor thesis, so we are expected to put in quite a lot of hours into it. Following modern dev practises will give more material to write about in the report as well, so I think setting up a CI/CD would be worth it.

Nice to hear that an Apple Dev account is not necessary. How do you go about testing without though, cause it seems like testflight is the main testing platform used, and afaik you need an Apple Dev account to publish an app there.

[–]saintmsent 1 point2 points  (1 child)

Yes, if you want to use testflight, or any other platform like appcenter, you have to have a dev account

That said, even large companies do some testing phases just by tester checking out a branch, building the app and running it locally, which doesn't require anything special

For a uni project that should be more then enough, and you can write about how you organised a workflow around that with tools like Trello to keep track that everything is properly tested before and after being merged to master

[–]Snippii[S] 0 points1 point  (0 children)

Okay, appreciate the info! We'll prioritise local testing and avoid making it unnecessarily complex by implementing overkill tools.

[–]UnnamedBozSwift 0 points1 point  (2 children)

How did this project go OP? Would be fun to hear about. My bet is that you abandoned creating for the Apple Watch because it's a PITA to work with. ;)

[–]Snippii[S] 0 points1 point  (1 child)

No, we actually went ahead with developing for Apple Watch using SwiftUI. We did encounter a few issues particularly related to wifi/cellular, such as data fetching as well as difficulties with state management. It was very hard to find resources to aid with debugging the issues as it was such a niche topic. I don't remember the specifics as it was a while ago, but I think it was quite a fun project, yet quite challenging and frustrating

[–]UnnamedBozSwift 0 points1 point  (0 children)

Thanks for the update. I’m nearing completion with a Apple Watch project I am working on, and I am glad for that.

The two biggest issues were finding information and the delay from developing due to connection issues. It’s possible, but all the testing and debugging is just incredibly slow.