For my independent study in the Fall 2018 semester, I decided to study Android Development with Android Studio. My goal was to familiarize myself with Android Studio and its tools, and gain knowledge of android app components and how they are made. I planned to make an app (Random Reminder) that I would submit to Google Play and other apps based on some of the computer programs I have created. The main tools I used for learning the material for this course was the Udemy Android Oreo Course and online Android documentation.
I first learned how to install and configure some settings and functions in Android Studio, the IntelliJ-based IDE I used for this course. After setting up my work environment, I started learning and practicing the concepts taught from the Udemy course. The course went over concepts that included android layouts, text, buttons and other UI elements, images, videos, sounds and animations. I stuck with the course to learn the basics, then started to move away from the course material to try my own examples and ideas for apps. I was able to run these apps on my mobile phone, which was a lot more effective than testing them on an emulator on my PC. Some screenshots for the apps I created during this course can be seen in the progress log. Every week I met with Professor Carl to show him the apps I had created and discuss any issues I was having with him Around the end of this course I realized I would not have the chance to create the Random Reminder app due to certain errors (explained below), and so I decided to carry out a more feasible project, the Memory Card App game.
The main issue I dealt with during the entire course was optimization of the apps. Since smartphones are not as powerful as computers, the code had to be highly optimized to reduce the amounts of processing and memory that the apps needed to run. I used Java in Android Studio, so a lot of problems were easy to recognize and remedy, however there were a lot of errors and issues I would run into specifically because of the android system that I needed to engage in a lot of research to fix. The main error that occurred was a memory leak caused by using multiple photos in a customized listview. I fixed this by transforming the images into scalable bitmaps using a handy piece of code I found on the Android documentation page. However, this problem took a while to fix, and I ended up not being able to spend time learning other concepts I would have liked to learn. I was still very satisfied with the final app I made for this course, as it made me use almost all the knowledge I gained from this course.