The Journey of Coding: My First Android App Experience
Written on
Chapter 1: The Beginning of My Android Adventure
My foray into Android development began in 2015 during a vacation after my first university semester. I envisioned a straightforward application that could automatically respond to messages, adapting to the moods of the recipients to provide authentic replies in real-time.
At that time, keeping track of numerous conversations was quite challenging, making the idea of such a tool immensely appealing.
"This idea was a genuine necessity for me back then."
Section 1.1: The Concept of a Personal Assistant
Android offers a feature known as a Broadcast Receiver, which functions as an event listener. Through extensive online research, I discovered how to capture incoming messages using these receivers and programmatically send replies via intents. Below is a glimpse of the code contained in the MainActivity.java file.
The logic behind my application was relatively simple, and the thrill of the challenge was exhilarating. Within a month, I had a functioning prototype that operated in the background, executing commands as intended. However, a minor bug caused the user session to revert to the MainActivity screen upon receiving a message, which took me nine months to resolve due to my return to university.
Subsection 1.1.1: Challenges Faced
Several obstacles arose during this project:
- Rapid Code Changes: Many Android methods become obsolete quickly, necessitating knowledge of frameworks like Flutter, React Native, or Kotlin for native app development.
- Privacy Issues: There was an insurmountable challenge in programmatically accessing WhatsApp messages. I envisioned expanding the app's capabilities to intercept WhatsApp messages, but the platform's restrictive policies on third-party bots made this impossible. The only workaround was to root my device, a solution fraught with risks and not suitable for scalability.
- Database Management: While creating programmatic solutions was straightforward with the right logic, I recognized significant gaps in my SQLite knowledge when it came to storing intercepted messages to facilitate conversational flow.
Section 1.2: Database Solutions
I contemplated storing messages externally instead of relying on local storage, which would have posed challenges related to accessing previous messages and permissions.
At one stage, I considered using IBM Watson's dialogue builder as a no-code solution for managing these saved messages. With the emergence of transformers and large language models like ChatGPT, many of the conversational features I initially envisioned are now viable.
Chapter 2: Lessons Learned
Ultimately, I decided not to move forward with the app's only production-ready version, as it faced issues with compliance to Google Console's publishing policies regarding required permissions.
Reflecting on this experience, I learned that perseverance is crucial, especially when pursuing endeavors that can genuinely impact lives, including your own.
Never give up on your dreams; always strive to see them through.
What True A.I. Research is Missing
A discussion on the methodologies in current AI research and the essential advancements needed to achieve generalizable intelligence.
In Software Development - Knowing is Blessing & Ignorance is Bliss
This video explores the complexities and benefits of understanding software development processes, emphasizing the balance between knowledge and simplicity.
From Manual to Automated Testing, Coding Bliss and More
This video delves into the transition from manual testing to automated testing, illustrating the efficiencies and improvements in coding practices.