Skip to content

Instantly share code, notes, and snippets.

@nikolaykasyanov
Last active May 4, 2016 16:18
Show Gist options
  • Save nikolaykasyanov/2d17ab047cebf6770a3eeb8a8330fba1 to your computer and use it in GitHub Desktop.
Save nikolaykasyanov/2d17ab047cebf6770a3eeb8a8330fba1 to your computer and use it in GitHub Desktop.
FlixBus iOS coding challenge assessment criteria

FlixBus iOS coding challenge assessment

Primary criteria

ABSOLUTE MUST

  • Project builds & runs on required iOS versions
  • Date/times are displayed in correct timezone

Consistent code style

Sound architecture

  • Separation of concerns (separation of view, business logic & service levels, for example).
  • Dependency inversion and injection
  • No abuse of singletons, class methods & global variables
  • No abuse of subclassing
  • No overengineering for "religious" reasons (like "using canonical VIPER/MVVM/whatever" or similar)

Test coverage

  • Unit and/or integration tests which:
    • don't rely on global state (this also means "don't call real API endpoits")
    • don't rely on specific simulator or device state
    • are isolated & runnable in parallel
  • UI tests which
    • aren't locale-dependent

UX

  • App looks good
  • Errors are handled & requests can be retried
  • UI never blocks itself

Secondary criteria

Use of dependency managers

  • Dependency manager is being used for 3rd party libraries (Carhage, CocoaPods)

Use of third party libraries

  • 3rd party libraries are being used for repetitive stuff like JSON parsing
  • No 3rd party libraries which reimplement standard library features

Use of VCS

  • Atomic commits with messages that make sense

UX (optional)

  • Data can be refreshed on demand
  • Date/times are displayed in localized format
@gelosi
Copy link

gelosi commented Apr 25, 2016

  • having autolayout is a must (in case of using storyboards / xib )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment