This semester, I’m taking CSCI 310 Software Engineering. It’s supposed to give the best attempt a school has a replicating the real life of a software engineer in the industry by working with tools such as Git versions control, creating test suites for our code, and writing documentation about our project before we even started coding. From my experience at Microsoft, a lot of the principles are spot on. We had to write a specification about how users would interact with the app, which classes and data structures to use, and back up our choices with logic about what would be best for the user.
How’s Working with Android?
As far as the coding of the project is concerned I haven’t done any type of Android development before, and neither has a majority of students in the class so it was an even playing field. Typically I’ve done web development and some iOS app development in my spare time, but the differences in the “tech stack” (aka what you write the app in) are like this:
Front End (for UI): Websites use HTML and CSS, Android uses XML style sheets
Back End: This is the one area they were similar in. We used a Google database that’s cross-platform (Called Firebase) so it was pretty similar to what I’ve done in the past.
Takeaways from the Project
Our project is semester-long and we’re in the middle of the testing phase, but here are some takeaways I have thus far:
- Planning is ESSENTIAL – Most people jump right into coding but planning what you’re gonna do and having good reason saves time in the long run.
- It’s OK to change the plan – Sometimes there are some things you don’t know when you go into the development and that’s ok. We had to write a whole document about what we changed and why so it’s more common.
- Sometimes you have to cut features – A big part of software engineering is knowing when to focus on getting a good project out that does most things instead of an ok project that does everything and when to do vice versa. It’s a tough decision but it’s part of the process.
Overall it’s been a super informational semester learning how to build Android apps. Now I feel pretty confident adding Android app development to my resume and putting our app in my portfolio.