We want you to build an iOS app showing traffic lights according to a specific dataset. The app should show the traffic lights on a map according to their latitude and longitude. In addition, it should provide a list view of the lights. Finally, both screens should provide the option to filter the items according to some fields (be free to choose some of them) and to see the traffic lights within a specified area on the map. For example, a valid way to provide the area would be asking name of a street and the radius in meters.
- You are free to choose the specific map library to work on.
- You have to develop an universal app for iOS 12, by using Swift.
- The dataset is accessible through a GET over
https://javieraragon.carto.com/api/v2/sql?q=SELECT id, direction, href, region, title, view, ST_X(the_geom) as longitude, ST_Y(the_geom) as latitude FROM ios_test
. The query paramq
is used to pass a SQL query to extract the data from the dataset. Under the hood, it will query a Postgres + PostGIS which allows you multiple ways to get info using SQL and special spatial functions. - The dataset includes a image of the traffic that is refreshed every 5~10 seconds.
- Take in mind the caching.
- Take into account that the app should work with any other dataset with millions of rows and be able work in any kind of screen size.
- The traffic light list should be split into multiple columns when the screen is in the landscape mode depending on the available space and device.
- For the vertical screen layout, both screens must be presented as two pages accessible by swiping horizontally, but for the case of a horizontal screen layout, they must show side by side sharing the available screen space.
- Clean Code and scalable architecture
- Creativity of the solution
- Performance is important!
- We'd love to see any extra details in terms of functionality, UI/UX or performance that you are able to build. Basically, this task should help you showcase all of your technical skills.
- We think this test should take you around 6~7 hours, but don't worry if you need more time or you're faster than us. We'd like you to send us your app in the next 7 days.
- Any consideration about technical decisions or improvements about your app, please don't hesitate to write them in the README and of course, contact us ([email protected]) to ask any doubt.
Invite @padawannn to the repo of your app and we'll evaluate your code. In addition, add a link of the APK in the README to help us with the installation.