Program Guide
Introduction
I was the lead developer in creating and implementing an Electronic Program Guide (EPG) for the Fire TV & Google TV news app while working for Cox Media Group. This news app contains 8 different build variants to account for the 8 different news channels. The EPG is scalable and is built to adjust based on the Json configuration file for the given build variant. Pictures below will capture exhibit each build variant displaying different content within the EPG.
The EPG code is written in Kotlin, while the API calls are written in Java.
Project duration: 2 months.
Planning
The project was split into two phases, then split further into smaller tasks. Doing this allowed for us to meet deadlines properly and for our team to stay on the same page throughout the entire process.
Phase I:
- Create API calls to the endpoints for each Json file (schedule URL)
- Schedule URL's contain [YYYY-DD-MM] placeholder, which need to be replaced by current date in same format in order to access the Json data
- Write the current day schedule data to internal storage and save the current plus next days schedule to a model list
- Find an Android TV EPG open-source library and do reasearch to see if there are components that can be used
Phase II:
- Implement the EPG library into the codebase in full to test, and see which components will work
- Remove the unnecessary components, add components that are needed, and test
- Change the library schedule data source to implement the model list saved from Phase I and test
- Once the data is inputting correctly, customize the UI components to accurately resemble the design mock up
Result:
Reflection
I'm very grateful to have had as much support as possible from our Sr Developers, QA Team, Product Manager, Designer, and everyone else who helped along the way in building this EPG. I'm fortunate to have had the opportunity to lead in the development of this project because my growth as a developer and team member has grown a ton from this work.
If you had told me the month I started working at Cox Media Group (May 2022) that one of my projects would be to create an Electronic Program Guide that needs to be scalable for 9 different build variants within a 2 month window, I would say that's nuts! Since beginning the EPG work, other developers on the team have stated this is the biggest feature added to this app in more than 2 years. I'm very proud to have been able to contribute to this app, this team, and this company in such a beneficial way.
I now have a better understanding of many essential common practices using both java and Kotlin, which include:
- Making API calls in Java
- Writing Json data to internal storage and parsing when needed
- Saving Json data to a model using nested lists and accessing this data using nested loops
- Researching open-source libraries in an intentional manner and implementing them into a codebase properly
I also grew as a person in a variety of ways:
- I have a better grasp as to when to ask for help if I'm shouldered with too much work
- Working side by side with a Sr Developer allowed me to grow in terms of communication
- I feel my abilities to communicate progress or concerns on a project to not only other developers, but more importantly other team members without technical knowledge has grown.