Mobile Challenge - v0.5
Mobile Challenge - v0.5
This is a single challenge that may be resolved in Kotlin for Android, or Swift for iOS.
Goal
The goal of this assignment is to evaluate the problem solving skills, UX judgement and
code quality. Consider how you would approach it on a production level when building it.
Requirements
We have a list of cities containing around 200k entries in JSON format. Each entry
contains the following information:
{
"country":"UA",
"name":"Hurzuf",
"_id":707860,
"coord":{
"lon":34.283333,
"lat":44.549999
}
}
www.uala.com.ar
○ Contain a button that, when tapped, opens an information screen about
the selected city.
● Create a dynamic UI that follows the wireframes.
○ Hence, when in portrait different screens should be used for the list and
map but when in landscape, a single screen should be used.
● Allow users to select favourite cities.
○ Favourite cities should be remembered between app launches.
● Provide unit tests showing that your search algorithm is displaying the correct
results giving different inputs, including invalid inputs.
● Provide UI/unit tests for the information screen code we provided you. You are
allowed to refactor if needed.
Evaluation Criteria
● Provide a README.md explaining your approach to solve the search problem and
any other important decision you took or assumptions you made during the
implementation.
● You can preprocess the list into any other representation that you consider more
efficient for searches and display. Provide information of why that representation
is more efficient in the comments of the code.
● Pre-release (e.g. beta) versions of IDEs, SDKs, etc. are forbidden.
● On Android the solution must:
○ Be compatible with the latest Android API.
○ Build Views built with Jetpack Compose.
● On iOS the solution must:
○ Compatible with latest Swift version.
○ Compatible with the latest iOS version.
○ 3rd party libraries are forbidden.
○ Build views using SwiftUI
Clarifications
● We define a prefix string as: a substring that matches the initial characters of the
target string. For instance, assume the following entries:
○ Alabama, US
○ Albuquerque, US
○ Anaheim, US
○ Arizona, US
○ Sydney, AU
● If the given prefix is "A", all cities but Sydney should appear. Contrariwise, if the given
prefix is "s", the only result should be "Sydney, AU".
● If the given prefix is "Al", "Alabama, US" and "Albuquerque, US" are the only results.
● If the prefix given is "Alb" then the only result is "Albuquerque, US"
www.uala.com.ar
Submission requirements
● Use a hosted service to share the git repository of your solution (GitHub, Gitlab)
and allow public access during the revision.
● We want to see the versioning history as well.
● Please remove public access once we have informed you of the review result.
● Include this document as part of your submission.
Wireframes
www.uala.com.ar