At the start of the course my groupmates and I were working under the assumption that we’d be starting our project from scratch and would get to choose our own framework to work with. Our plan was to work on our mobile app using React Native, as it was multiplatform and something we all had at least a little bit of experience with. To our surprise, the project we were assigned to was an ongoing one that was written in Kotlin using Compose! This was a bit of a wake up call, as Kotlin is very similar to Java, which I have no experience with. We inherited our codebase, it had been iterated on by a few project teams at this point and seemed pretty mature. I have had no experience with Java, so Kotlin looked really foreign to me!
This is where the fun begins. Our team found a really good online course that covered pretty much everything you’d need to know to work on the kind of app we were continuing to build (https://developer.android.com/courses/android-basics-compose/course). I rushed through the first few pathways and then it finally dawned on me! Compose is just a way of working with the state of your app, just like the Dash package for building data analytics web apps in Python! I’ve got a lot of experience building web apps with Dash, using callbacks to keep track of the state of components in the app. My breakthrough was realizing that I was doing that in Compose so I wasn’t as inexperienced as I thought. This caused me to gain a lot more confidence and I was able to draw on some of my past experiences with Dash and callback functions. It helped me realize that a lot of things carry over from language to language, regardless of how intimidating things may look at the time. There are still nuances that need to be learned, but if you’re working on 2 languages that fall within the same paradigm then a lot of the principles of writing good code will be the same regardless.
I continued with the course and learned a lot of new things, leading myself to feel a little more competent in my mobile development capabilities. I became proficient in building UI components, using the navigation component, and using modifiers to style the app so that it looks professional. I typically prefer lower level languages, but getting to work and learn on Android was more fun than I was expecting it to be. Our app deals with some geolocation data, so I eventually had to go through the Maps SDK for Android tutorial (https://developers.google.com/maps/documentation/android-sdk/overview). From there I learned how to use the Google Maps component and style it nicely while working with latitude and longitude data. Working with the state of an application can be confusing, but it is rewarding to understand how it all works and see your app come together. My one complaint is the code can get long winded, as you work with a lot of long method calls.
From this experience I learned how versatile I can be in terms of the languages I work with and how quickly I’m able to pick things up. I recently took our Programming Language Fundamentals course and I can attribute some of this ability to having completed it. It really drives home the fact that all of the skills we learn in Computer Science are tied together with common threads.
Thanks for reading my last post and following me through my capstone project journey!
Chris
Leave a Reply