Skip to content

StreamCo/ios-coding-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Stan iOS Coding Challenge

Overview

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.

The Challenge

  1. 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
  1. This is the starting point of the task. To make life a little easier, delete the .git directory with rm -fr .git and then run git init to start a new repo.
  2. Commit all the current files as your first commit.
  3. Create a file diary.md where you can journal each task.
  4. Choose at least 2 of the tasks that you'd like to complete. Feel free to do them all.

Task 1 - iPad support

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.

Task 2 - Unit tests

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.

Task 3 - Implement some TODOs

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.

Other Notes

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!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published