Mobile development has been a long time passion of mine. Primarily because it is a quick way to materialise an idea, have it in your hand, and bring it with you. Through the past 5 years or so, mobile development has really grown me in ways I never expected. I'll be talking about what they are and what fun I've really had in this process :)
How it all started
My app development journey started here:
The ugliest app of all time, but my very first. Despite the obvious flaws of this app, I am proud of this one because it was an achievement. And frankly, developing apps hasn't been easy. But what always kept me going were the little achievements and check points I could reach, and this was the very first. Deceptively, app development always turns out to be more work than it looks. I always have an idea that's relatively simple, then realise along the way that so much more needs to be done. Guitar scales was the goal for this very simple app, but I soon realised that I needed to have different settings so people could use it for different instruments, string tunings, or different keys. If there's on thing I took out from the experience of developing this app, it is this: If you want to learn/grow, set a goal, jump right in and do whatever it takes to accomplish it. This soon became the lesson that pushed me through every single app that followed.
Today, these apps are some my latest releases:
And with each app that I release, my only requirements are that:
1. I've pushed myself to learn something new
2. I've produced higher quality code, with better structure and architecture
3. I'm excited about the release
Challenges
In the process, challenges are inevitable, and here are some of my biggest struggles:
1. Effort
Effort is basically as limited a resource as is with time. My biggest struggle is realising that this project took more effort than I anticipated. An example of such is when I was working on Setlist - Prep and Play, my latest upload. All I wanted was a place to key in chords for songs, FAST. I needed an app that easily transposes and lets me perform with. Sounded like a 1 week job, 2 weeks at most. Turns out it took me close to 2 full months to flesh out the idea, and it was really discouraging. Anyways, I'll talk about this more in a future post so tune it :)
(and shameless plug, check the app out if you haven't 😄)
2. Time
We all struggle with this, for sure. Carving out time to plan, design, and execute really isn't easy. Especially with other commitments and demands. But when I have an idea, it's really hard to let it go, especially when I know it is within my means to bring it into reality. At the end of the day, I'm left with no choice but to set a side solid time to get it done ASAP. I guess it also demands of me to be sure of and my intentions and if the idea will work out.
3. Criticism
After investing all that effort and time, I find myself satisfied, and extremely proud of the feat I have just accomplished. I've poured out my heart into each project, and am finally ready to announce it to people around me. The hardest part comes when you realise that nobody is as excited about your app as you are! And it gets worse when the only things they have to say about it is how it could be better. Personally, this challenge is a tough one. I find myself trying to justify how the app is good and maybe they just don't understand its value. But through the multiple applications I've developed, I've come to realise one thing: There is always better. After every application I launch, I look back and find that my previous application I loved so much at one point in time, just simply was not as good anymore. Indeed, there were ways in which it could have been improved but I just wasn't willing to let my ego be hurt (especially after so much heart has gone into developing it). And so I've come to learn (and am still learning) that criticisms are essential, because people/users see what you may not. And that brings me to the next challenge I face
4. Knowing what is considered good
The word "good" is really subjective sometimes. Which colour is nicer? Which layout is better? I struggled to discern what I should be working towards. It becomes hard to really know what is considered good when the rules are not so clearly defined to someone trying to learn development on their own. And this applies as much to system architecture as it does to frontend design. Some times I decide on a colour scheme I am really proud of, only to find out I'm the only person who finds it aesthetic. And so I've learnt that along with criticism comes a greater clarity of what is accepted. The opinions of others are important, and it is then important for me to be open to the feedback of others. It's a tough thing to do, and I still struggle with it sometimes. But I'm still learning 😂 Aside from criticisms, mimicking others is a great way to figure out what is good. I find myself finding greater clarity when I look at design guidelines online that are defined by other more established teams, or simply by looking at apps that are already in my hands. And then sieving out components that I find to be aesthetic. Or in terms of system architecture, it has been really valuable speaking to working professionals in the field, learning how abstraction really helps in the long run, and how clarity in code is really essential when working in a team. If theres one thing I've learnt from this challenge, it's that "good" is often more of a consensus, and so it is crucial that I speak to others to find out more!
Conclusion
Challenges aren't easy, but they are rewarding. With every challenge comes a learning opportunity, but you must find a reason that sustains you enough to push through these challenges. The one thing that propels me is how much I enjoy what I do, and I firmly believe that when you find something you love, it becomes much easier to excel in that area. Not that my applications are of the best standards, but I know that I'm on my way :)
Thanks for reading and I hope you enjoyed this little post! Till next time 😊
Comments