-
Notifications
You must be signed in to change notification settings - Fork 1
Leg 7: Reflections
There were several technical things that I learned during the process of this course. To begin, I had no experience with any sort of mobile development (and little experience with Java), so developing in android studio gave me a new insight into the world of android. In addition, I hadn’t had too much experience with databases, so using firebase was a good introduction into how to connect an application with some sort of data store. Finally, due to the nature of how mobile apps (often) must be build, I learned about multi-threaded applications and how to properly think about separating different processes.
Professionally, I learned that proper planning is very important. It’s imperative to plan such that you have the correct blend between what you may be able to take slight shortcuts with to get a MVP ASAP, and what you should robustly implement from the beginning. For example, our group used a webcrawler to pull the urls of several different albums to use as images for our application. We ended up switching to using the Spotify api, but we should have thought far enough ahead to just begin by integrating the api.
Following my previous response, I wish we had planned a little more thoroughly. It’s not necessarily that we didn’t plan enough, it’s that we didn’t plan intelligently. We were way too broad in our initial planning and included a ton of different features that we never even ended up completing. It would have been much more efficient if we had focused on the most vital aspects of our application first, then move on to planning/developing more features after the vital ones were completed.
If I were to do it all over again, I would focus more on building the functionality of the app slowly, but really nail down what is implemented at first. This would including building the features one by one, starting with the most important things first (e.g search feature, rating feature, comments, login).
It have been nice if there were more workshopping sessions with some of the key aspects of building an application. For example, with someone with no background in databases/servers, it was difficult to be thrown into a project like this and just get going. Although it is a good learning experience to learn how to build these functions without guidance, it can be frustrating at times. Some of the most helpful classes were those in which someone demo’d some sort of framework/webservice/api that could be helpful to building a mobile application.
From this one-semester project, I gained a lot of experience in developing Android app, deploying simple web server on heroku, using Firebase for Database management and interaction with the android app, and using some fantastic libraries like retrofit, picasso, firebase-ui, etc to help Android App Developing.
I learned that:
-
Focus on some simple feature at the beginning is much better than starting with a complicated design. An app with a simple but beautiful and useful feature is much better than a complicated app with a lot of functions but implemented in a terrible way.
-
Considering about the back-end carefully and in detail before starting coding. For example, if the data structure in the database is not so good, sometimes it is necessary to cause a lot of additional work for improving the app in the future.
I wished to prepare a much simpler design as the beginning and prepare the database on the web server as earlier as possible. After completing that implementation, add and polish the feature in the app generally.
At the beginning of the project, we spent a lot of time on some unnecessary work like building database by web crawler, implementing an ugly ui which we discard totally later, preparing two different types of back-end design (Firebase and Web-server based on Flask on Heroku). If we designed the app more in detail at the beginning, I think it is possible to be avoided. Thus, I think I will spend much more time on the design at the beginning including some implementation detail if I will do it all over again.
I