This project is a starting point in your Android interview journey with DoorDash. At the first Phone screen stage you will start off by adding the initial functionality here and continue adding to it throughout the entire interview process. So keep the progress saved as you move forward.
Here are a few key points to pay attention to in the project:
- UI implementation
- A starting Activity is added and it displays a
StoreFeedFragment
StoreFeedAdapter
is wired up with aitem_store.xml
layout file and just needs some final touches to be made to complete its implementation (see TODOs)
- A starting Activity is added and it displays a
- Dagger
- We use Dagger for dependency injection (DI) within the app
- You are free to modify the DI approach to the one you are most comfortable with
- Network
- Network stack is covered by Retrofit2
TPSService
located in thenetwork
package outlines the backend API we will be hitting during our interview- An instance of
TPSService
is provided by Dagger viaNetworkModule
and can be injected anywhere
ViewModelFactory
(in case if you will go MVVM route)ViewModelFactory
implementation is provided to save time dealing with DI andViewModelProvider.Factory
implementation- Usage code snippet is provided in the Javadoc of the
ViewModelFactory.kt
file
This skeleton project is provided for your convenience and you are free to modify it as you see fit as you complete the task during the interview, as long as it does not impact the end goal of the interview - a well architected, clean and working solution.
Just a friendly advise is that if you are comfortable with the generic implementation of this project - then just stick to it, as we will need to move fast in order to complete the task in less then 60 minutes.
This project runs with Android Studio Flamingo and above
We are looking for the Architectural consistency, conciseness and cleanliness of the code. Make sure that the code you produce is testable and be ready to write Unit Tests for your code if you will be asked to do so.
As mentioned above, you will be making additions to this project throughout the interview process going further so make sure you save the progress and have something you can work well with during the follow up stages.
Good luck and we are looking forward to meet you!
Azul Zulu ARM64 JDK 11 download for M1 macs.
Azul Zulu JDK 17 download for M1 macs.
We highly recommend using jenv to manage your different JDKs.
Follow the instructions below to set up jenv after you’ve installed java above.
- Install jenv
Linux / OS X
$ git clone https://github.com/jenv/jenv.git ~/.jenv
Mac OS X via Homebrew
$ brew install jenv
- Add to path
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zsh_profile
$ echo 'eval "$(jenv init -)"' >> ~/.zsh_profile
$ source ~/.zsh_profile
- Run plugin to set your
JAVA_HOME
environment variable automatically
$ jenv enable-plugin export
$ source ~/.zsh_profile
- Add jdk to jenv
# M1 Mac
jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
# Intel Mac
jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
Note for M1 Macs: if you don’t have zulu-17.jdk
, download it from the link below and add it to /Library/Java/JavaVirtualMachines
Azul Downloads
- Set your global version
# M1 Mac
$ jenv global 17.0
# Intel Mac
$ jenv global 11.0
jenv reads the .java-version
file for each repo automatically