A contact-tracing strategy has been deemed necessary to contain the spread of COVID-19 following the relaxation of lockdown measures. Using an agent-based model, we explore one of the technology-based strategies proposed, a contact-tracing smartphone app. The model simulates the spread of COVID-19 in a population of agents on an urban scale. Agents are heterogeneous in their characteristics and are linked in a multi-layered network representing the social structure - including households, friendships, employment and schools. We explore the interplay of various adoption rates of the contact-tracing app, different levels of testing capacity, and behavioural factors to assess the impact on the epidemic. Results suggest that a contact tracing app can contribute substantially to reducing infection rates in the population when accompanied by a sufficient testing capacity or when the testing policy prioritises symptomatic cases. As user rate increases, prevalence of infection decreases. With that, when symptomatic cases are not prioritised for testing, a high rate of app users can generate an extensive increase in the demand for testing, which, if not met with adequate supply, may render the app counterproductive. This points to the crucial role of an efficient testing policy and the necessity to upscale testing capacity.