What is URFeed?
URFeed is a cross-platform social network that offers a new way to connect, bridge cultures, find new communities and belong. Communities talk face to face about shared interests by uploading video messages. URFeed has just come out of beta!
URFeed had outsourced the development of their app to an offshore company. Unfortunately they came across a few issues that their team couldn't fix and wanted to implemented features that were beyond the scope of their developers. They reached out to me via the recommendation of Anthony Rose, the guy who built the BBC iPlayer.
After reviewing their code, I found a lot of problems that are typical of work produced by outsourcing companies including: lots of duplicate code, massive view controllers, poor documentation and readability. It was clear that I needed to bring structure to their project to fix the bugs and then implement the new features they required. I split this up into two deliverables:
Re-architecture the iOS app to improve structure, readability and ease of testing but also to fix bugs.
Recreate the main video feed view for both horizontal and vertical scrolling between posts created by users.
Data must be asynchronously reloaded and scrolling must be buttery smooth.
The URFeed team had looked into a video editing SDK online but they were charging £70k for a years license. This was too expensive for their budget so instead they asked me to build one natively for them. I had to do the following:
Implement a video recorder that can record video clips with photos and GIFs optionally overlaid on top of the videos.
Implement the ability to upload clips from the video library.
Implement a video editor that can: trim clips; rearrange video clips; add links; delete clips; compose all clips into one video.
For the first deliverable, I fixed some of their technical debt and worked with the existing developers to understand their API. I then used the Texture framework by Facebook to implement a video feed for the app. I hadn't been familiar with the framework before starting the project but learnt and implemented a solid solution. I also gave feedback and tips on how to maintain and manage their codebase.
For the second deliverable, I used the native AVFoundation framework to successfully implement all the features in the brief and used Giphy's SDK for GIF overlays. I hadn't implemented a video editor before so this was an enjoyable task!
Swift, GitHub, Texture, Giphy
The video feed and video editing capabilities are now being enjoyed by all users within the app and the team have seen fewer bug reports.