“I don’t know where I’m going, but I’m on my way.”
― Carl Sandburg
No matter how sluggish your progress might appear, the incremental daily progress you make could actually be bringing you much closer to your goal.
Productivity and efficiency are far too overrated, I believe. Regardless of how quickly progress is being made, the significance of your accomplishments is derived from the daily rituals you follow. Transform activities aligned with your goals into your daily habits.
Intro:
Alright, let’s dive into the main point. Welcome to my new series: Android Programming. In this series, my focus is not only on Android programming but also on how each of us can reach our lifelong goals. Plus, I’ll emphasize the significance of consistently learning what truly matters to us.
Throughout our lives, we all grapple with numerous factors—bills to pay, bothersome colleagues, time-consuming jobs, and the list seems endless—all of which lead us to frequently complain about our circumstances. I understand this is the reality we face. But, what if I were to tell you that we might be just one decision away from an entirely different life?
A touch of imagination—just a small spark igniting in your mind—can dispel the darkness and reveal the complete picture. It shows you where you currently stand and the destination you’re aiming for. This sliver of imagination, something you never realized could profoundly alter your life, holds the potential to do just that.
It’s the unforeseeable path your destiny is taking.
Therefore, this series will predominantly revolve around Android programming. My intention is to utilize this platform as a personal diary, chronicling my daily advancements in app development and the various tasks I aim to complete. Yet, it also delves into the significance of pursuing our passions.
Android and Kotlin:
Over the past year, my focus was on creating an Android app for budget tracking using Java. However, I find myself reflecting on numerous aspects that I feel regretful about. Here are a few of the regrets that come to mind as I look back on the project:
- In hindsight, opting for Kotlin would have been a wiser choice, considering it’s the endorsed Android development language by Google. My primary goal was to create a portfolio that I could present to potential future employers.
- I realize now that adopting a single-activity architecture for the app would have been a better decision. This approach has been the prevailing standard in Android app development, particularly since the inception of Android Jetpack in 2018.
Taking into account the aforementioned regrets, I’m presently constructing the app using Kotlin and XML, adhering to a single-activity architecture. Although it’s worth noting that the login/sign-up pages are exceptions and are constructed using Activities.
Android and Java:
Conversely, the entirety of my experience with the previous budget tracking app, developed using Java, provided me with immensely rewarding insights. It served not only as a platform to grasp various Android app development architectures but also as a means to sharpen my Java programming skills. Here are some of the advantages I gained from this endeavor:
- With just a few years of experience as a Java developer, it was vital for me to engage in coding outside of my regular work. Through coding in Java and utilizing the MVVM architecture, the entire development process bore a striking resemblance to working with Spring Boot. Consequently, this experience turned out to be highly applicable and transferable to other development platforms.
- As previously stated, the entire journey proved to be a gratifying learning experience, particularly in mastering the fundamental aspects of Android app development, including XML architectures. As I’ve already highlighted, this endeavor also spurred numerous reflections on how I could improve in my upcoming challenges.
- Through sharing the app’s GitHub page on my LinkedIn profile, I garnered significant attention from tech professionals seeking to hire experienced developers. Despite the reflections I’ve had, the entirety of my app development experience has brought me multiple advantages.
Linux and PHP:
Throughout the journey of constructing the new app, I established the complete backend LAMP system on Ubuntu Server 22.04. Given my overall familiarity with Linux, the entire process was exhilarating. Moreover, the experience of creating the backend server bolstered my proficiency in Linux, further validating my skills alongside my Android coding abilities.
Furthermore, there’s a scarcity of developers who possess expertise in both coding and server-side operations.
The server API is exclusively developed using PHP, offering me the opportunity to engage in coding across diverse languages. Looking ahead, I might even delve into writing shell scripts to streamline certain aspects of database management, further broadening my skill set.
C/C++ and Arduino:
Although I currently lack the time, I’m eager to dive into learning the foundational aspects of both Linux and Android. As you’re likely aware, Android is essentially underpinned by the Linux kernel. Given my limited professional experience as an Android developer, acquiring additional skills could make me an attractive candidate. To achieve this, it’s crucial to become proficient in a language that many young developers might not be familiar with—a language with significant low-level and legacy power. It seems that delving into C/C++ (and perhaps even Rust) could be the key to unlocking a world of vast possibilities.
Mastering C/C++ and gaining practical experience can be effectively accomplished by delving into robotics architecture, such as Arduino programming. Additionally, engaging with Linux kernel APIs using the libraries provided by C further enriches my overall skillset. Android, Arduino, and Linux—these components are intricately interconnected, forming a captivating tech ecosystem that consistently draws me in and consumes my time.
Algebra:
While this might not directly relate to coding, I believe that merely grasping coding fundamentals won’t suffice to accomplish my aspirations. I aim to delve into the core logic underpinning coding and computing technologies. As you’re aware, computers essentially communicate in the language of numbers. Imagining the potential possibilities that unfold when one becomes fluent in this numerical language is truly captivating.
Keep this in mind: the more effortlessly something can be employed, the more swiftly it can fade into insignificance. This principle resonates across various facets of life. Anticipate no swift outcomes; life resembles a lengthy marathon. Regardless of how gradual your progress may seem, you remain far ahead of those who remain idle on the sidelines.
Algebra and mathematics in general might appear disconnected from our everyday lives. However, is that perception accurate? Once you immerse yourself in the realm of algebra, you could find yourself astounded by its efficient logic and intriguing parallels with coding.
Afterthoughts:
In conclusion, the core of this series, “Android Programming,” is twofold: delving into Android coding while exploring the journey toward life goals. It underscores the importance of perpetual learning in areas of true importance. Life’s challenges often cloud our perspective, but a single decision can transform everything. Embracing imagination can illuminate your path, guiding you from where you are to where you aspire to be. This series not only documents my app development journey but also emphasizes the pursuit of passion, bridging the connection between Android programming and life fulfillment.
See you soon and stay tuned!