The purpose of this test is to give you an opportunity to showcase your coding skills.
To doing so, you will build a small Aircall iOS app from scratch.
-
You are free to use the architecture you prefer
-
You are free to use the libraries you want
-
You are free to use UIKit or SwiftUI
-
The app must compatible with iOS 13+
-
Display a list of calls page
-
Click on call from the list will redirect to call details page
-
You should be able to archive a call from List and Details page
=> Archived calls will no longer be visible from list of calls
-
We will pay attention on the architecture of your app
-
The quality of your tests
-
The clarity and documentation of your code
-
Don't pay too much attention on design stuff, it's not a criteria for us. After all, you are a developer not a designer !
List of calls | Call details
:-------------------------:|:-------------------------:
Don't hesitate to ask any question regarding the test at ios@aircall.io
Here is the API address: https://aircall-job.herokuapp.com.
As you can see, it's hosted on a free Heroku server, which means that the first time you will fetch the API, it will take few seconds to answer.
-
GET - https://aircall-job.herokuapp.com/activities: get calls to display in the Activity Feed
-
GET - https://aircall-job.herokuapp.com/activities/:id: retrieve a specific call details
-
POST - https://aircall-job.herokuapp.com/activities/:id: update a call. The only field updatable is
is_archived (bool)
. You'll need to send a JSON in the request body:
{
is_archived: true
}
- GET - https://aircall-job.herokuapp.com/reset: Reset all calls to initial state (usefull if you archived all calls).
-
id - unique ID of call
-
created_at - creation date
-
direction -
inbound
oroutbound
call -
from - caller's number
-
to - callee's number
-
via - Aircall number used for the call
-
duration - duration of a call (in seconds)
-
is_archived - call is archived or not
-
call_type - can be a
missed
,answered
orvoicemail
call.
You are ready, submit a pull request on this repository and ping your point of contact at Aircall.
Don't forget to include a README file with the following:
- Write a brief outline of the architecture of your app.
- Explain why you decided to use each third party libraries.
- What was the most difficult part of the challenge ?
- Estimate your percentage of completion and how much time you would need to finish