TrueCallerAssignment

Project Specifications The app should define and run 3 requests SIMULTANEOUSLY, each request is defined below:

  1. Truecaller10thCharacterRequest: I. Grab https://blog.truecaller.com/2018/01/22/life-as-an-android-engineer/ content from the web II. Find the 10th character and display it on the screen

  2. TruecallerEvery10thCharacterRequest: I. Grab https://blog.truecaller.com/2018/01/22/life-as-an-android-engineer/ content from the web II. Find every 10th character (i.e. 10th, 20th, 30th, etc.) and display the array on the screen

  3. TruecallerWordCounterRequest: I. Grab https://blog.truecaller.com/2018/01/22/life-as-an-android-engineer/ content from the web II. Split the text into words using whitespace characters (i.e. space, tab, line break, etc.), count the occurrence of every unique word (case insensitive) and display the count for each word on the screen

Disregard any HTML/JavaScript. Consider the content as plain text and treat anything separated by whitespace characters as a single word. Example: "

Truecaller Hello World

" should produce +1 for each of these: "

", "Truecaller", "Hello", "World", and "

". The application should show:

  1. A single Button to run the three requests SIMULTANEOUSLY
  2. A single TextView for each request to be updated as soon as the processing of the corresponding request finishes

Judging Criteria

Focus on clean, understandable and robust code, optimal data structures and low computational complexity. Use your best judgment and previous experience to utilize the right amount of design patterns and best practices in your code. Pay attention to reusability, extensibility, correctness, state and error handling. The solution should be well structured, but also not over-engineered.

Submission

Before submitting, please ensure you have correctly covered every requirement defined in the project specification.

• Submit your solution as a single .zip archive file • The archive should contain only one root folder named • The folder should contain the necessary files to successfully run the project • The folder should contain README.md file with a VERY BRIEF explanation about the solution. Here you can explain any assumptions or shortcuts that you have chosen to make. • Exclude any files and folders you would usually put in the .gitignore file Please be pragmatic and thank you in advance for your interest in Truecaller and for the time you have spent for us.

We sincerely hope to see you as part of our team.

Petter Wiberg, Director of Engineering Mobile & the Android team