An open API service indexing awesome lists of open source software.

https://github.com/streamlabs/mobile-assignment


https://github.com/streamlabs/mobile-assignment

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          

# Streamlabs Mobile App Assignment

## Introduction
Hi there! We are happy you are interested in joining the mobile engineering team here at Streamlabs. We are on a mission of building tools to help content creators around the world grow, and we are excited to have you on board.

We believe it is important that our assessment of your skills matches the technical challenges you will face as an engineer at the company. Please carve out approximately 2-3 hours for this assignment.

## Objective
The main goal of this assignment is to build a simple demo application that contains two screens: video feed and user profile.

Video feed shows a full screen video that is loaded from a url.

* Users can swipe up and down to navigate through the feed vertically.
* Implementing a video cache is not required.
* You should parse `videos.json` that has a list of the videos that the user can scroll through.

User profile shows basic information about the user: profile picture, user name etc.

* Please find an example user profile UI in `user_photo.png`.
* You should parse `user.json` to retrieve mock data for the user profile.

## Recommendations

* Preferred language for iOS: Swift
* Preferred language for Android: Kotlin
* Preferred architecture: Anything except MVC
* Please architecture as you would a production app
* Using third-party libraries is allowed

## Result
* Demo app
* Readme file with key decisions that were made during the creation of the demo app
* System design choices
* Anything else you find important

## What we are looking for
While the hard requirements of this assignment are somewhat basic, we are looking for assignments that display a deep understanding of programming language and an ability to write clean and scalable code. The infrastructure should be easily able to potentially handle future feature requirements such as the following:

* Video caching
* Uploading new videos
* Editing user profile
* Interacting with videos: like, share, comment etc.
* Drag-to-refresh

The 2-3 hours time requirement is not a hard stop, and was determined with an assumption of previous basic knowledge of core concepts utilized.

## Documentation & Thought Process

Please take some time to briefly answer the following questions at the end of your submission

- How long did it take you to complete this assignment?
- What about this assignment did you find most challenging?
- What about this assignment did you find unclear?
- What challenges did you face that you did not expect?
- Do you feel like this assignment has an appropriate level of difficulty?

## Questions
Please email us if you have any questions along the way. We will try our best to help guide you through any confusions. Feel free to make assumptions and document them as you go as well.

## Submission
Please submit your completed assignment via email to the recruiter who sent it to you. You can submit your assignment as a zip file attachment, or you can push it to a GitHub repository and include a link to the respository. We want to thank you again for your time and for your interest in joing the engineering team at Streamlabs!