We'll be using a sample project already available from Kodeco and making some changes to it. The tasks are a mixture of technical tasks as well as product features, similar to how you would be working at Stan.
In doing the tasks, we ask that you keep a diary where you document issues you faced, how you overcame them and approaches to solutions. We are looking for how you are able to describe the problems you face and provide rationale for decisions made. Observations along the way are also encouraged - imagine you were explaining your process during a pair programming session.
Please send us your code when you're done. We prefer if it is publicly available on some service like Github or Bitbucket.
This challenge is expected to take 2-4 hours, however you can spend as much time as you'd like.
- Start with the Kodeco sample for swiftui-example-app-koober. We want to use a specific commit (before there was some duplication made)
git clone git@github.com:kodecocodes/swiftui-example-app-koober.git
git checkout e199f98
- This is the starting point of the task. To make life a little easier, delete the
.git
directory withrm -fr .git
and then rungit init
to start a new repo. - Commit all the current files as your first commit.
- Create a file
diary.md
where you can journal each task. - Choose at least 2 of the tasks that you'd like to complete. Feel free to do them all.
Launching the app on an iPhone, you are presented with a Welcome screen that has two buttons. However if you launch the app on an iPad, the screen is all white and you have to open a Sidebar in order to get to the Welcome screen.
The task is to fix up the iPad experience to be the same as the iPhone experience. I would like that when I open the app, I am shown the app logo along with two buttons: one to sign in and one to sign up.
We are looking for how you handle designs for varying devices, as well as catering for portrait and landscape usage of the app.
The project is currently lacking in some unit tests, lets add some! For this task, please add some unit tests for the SignInUseCase
. Add some tests that you think are appropriate and any other app changes that may be needed to help write the tests you're after.
We are looking for the choice of things to test, as well as some explanations on what some of the options available are and why you may prefer one over another.
Launch the app and go to Sign in
> click Sign In
> click Where to?
. This button doesn't do anything, though it should navigate to the SelectDropoffLocationView
.
The task is to be able to navigate to this View on both an iPhone and iPad. You are welcome to introduce an approach or pattern you think is a good fit. Most important of all is to document your thinking and also other ideas that come to mind.
Please send through any other code or projects that you're proud of and would like to share with us.
Any feedback on the coding challenge once you're done is also appreciated!