Categories
Uncategorized

Week 9: Constant Improvements

In the hustle and bustle of the past two weeks, I realized that I inadvertently missed sharing a blog post last week. Nevertheless, I am here now, eager to delve into the myriad of experiences and learnings that have transpired.

Last week was marked by collaborative efforts with my team as we endeavored to complete the remaining features on the search page. My primary task involved integrating my recent search file system utility into the recent search list. During this process, I discovered that my utility was lacking a “delete term at index” method. Once this functionality was added, we successfully connected it to the RecyclerView, which is responsible for displaying recent searches. This marked the completion of the search feature, rendering it fully functional and operational.

Aside from this accomplishment, the remainder of the week was relatively quiet, with no new tickets coming in. I seized this opportunity to further hone my skills in Android development. I challenged myself by rewriting the search page using various design patterns. The initial version of the search page adopted a procedural and imperative approach, resulting in a tightly coupled UI. This complexity in the flow of execution made debugging a challenging task. I dedicated the majority of the week to rewriting the page using ViewModel, MutableLiveData, and RxJava. This approach allowed me to decouple the UI components, leading to significant improvements in both performance and code complexity. Additionally, it shed light on the issues we were experiencing with Jetpack Compose.

In a previous post, I mentioned rewriting the search page with Jetpack Compose, only to encounter performance issues. Upon revisiting this task, I realized that the excessive recompositions on the main thread were the culprit. I reworked the Compose version using ViewModel and Kotlin Flow, resulting in a substantial performance boost. I am now eagerly awaiting feedback from my team on this revised version.

This week brought a new challenge in the form of a Spotify API bug ticket, which I eagerly claimed. I was initially cautioned, as students typically do not handle Spotify bug tickets due to the API’s complexity and its critical role in production builds. Nevertheless, I was granted the opportunity to tackle it. The task proved to be intricate, as Spotify had recently updated their Oauth2 process. This required me to update my Chromium via adb to accommodate the new JavaScript functions used by Spotify. Despite these hurdles, I was able to identify and resolve the issue within a few hours. While I do not have access to the physical device for testing, I am confident in the robustness of my code and look forward to the code review.

As I reflect on the past two weeks, I am filled with a sense of accomplishment and gratitude. I have grown more adept at navigating and understanding extensive codebases, a skill that will undoubtedly serve me well in the future. With graduation on the horizon, I am filled with excitement and anticipation for the next chapter of my journey. I remain committed to continuous learning and am grateful for every opportunity to expand my knowledge and skills.

By Robert Sale

I am a father as well as a software developer. I love my family and love my work. I like to think that my work will some day benefit society.

Leave a Reply

Your email address will not be published. Required fields are marked *