During the majority of the time for the first few months on
this project, our team was stuck on attempting to get ReactNative to work on
all of our machines. Following the readme from the previous team did not help,
as it led to a link to the ReactNative Get Started page, which gave very few
instructions and no help with troubleshooting problems. Attempts at getting the
latest version of the code to work proved futile, and eventually, we were just
at a standstill. The only thing we were able to do at that time was look for other solutions, and to read through the code and figure out what is going on inside of it all. Most of my time was spent working on ReactNative with an Android emulator on Android Studio, however it never ended up working. Later on, Brady found out a workaround by using the Lite
version of the code, which did not have the latest updates, but it allowed us
to work with the project. Another change that had to be made to accommodate us
was that we were using an older version of ReactNative.
The previous code we were given, while it worked, did not contain much, if any, comments or documentation. Looking through the code was often very confusing and I could not understand much besides finding key words within the code. Guides on ReactNative were very uninformative, and was usually not applicable to anything that I wanted to change. Eventually after looking through the code for a good amount of time, I came to kind of understand the gist of what the code did, and the general area of where I should look to find something.
I ended up mostly in charge of the UI changes, where I would
make my changes on the Android version, and then would let Chase look through
them to see if anything would need to be fixed on iOS devices. The reasoning
behind this was that ReactNative would not run its iOS version on a Windows
device, as you could not run an iPhone emulator without an iOS device. Chase was the only member of the group
which had a Mac/iPhone, which allowed him to see what it would look like on the
Apple phones. It definitely also could have been made easier had ReactNative
been up to date with its iOS updates, but a large portion of the features would
not be available to iOS users.
Changing the UI was not entirely difficult in itself,
however there were a few minor things that I ran into when attempting to match
the UI to the desired UI.
- There was no way to implement a 3D button in ReactNative, however I managed to simulate the effect with colored borders.
- The desired UI contained a title bar with text on it in front of a picture, however it was impossible to dynamically change the text without creating an image with text of every scenario. It would make sense for the text to show up on top of the image, but ReactNative did not support it.
- While some of the things used a style sheet to set the display, a large portion of objects in the code did not, and were using hard coded styles in CSS. While I fixed a majority of the objects to pertain to the style sheet, there are still a few things which I did not add, however they are mostly one of's anyways.
- Using the correct font given to us was not an option, as while the font was supported on Android devices, it was a paid feature on iOS devices.
- Since we were not using the latest version of ReactNative, along with ReactNative's poor documentation, it was very difficult finding code that I could use with our app. Many times, something I would want to use was either not in the current version and would be added in a later version, or the correct command I wanted to use would not end up in any search results.
Around October, my computer started to act up, and would crash at random times. I eventually figured out it was a hardware problem related to a faulty connection to the disk. This however made it so that the slightest nudge on my computer would blue screen it, resulting in a crash. While I could still use my computer most of the time, moving it to a different place was usually out of the option.
In November about a week before Thanksgiving time, our client asked us to be ready to finalize our changes for the app store around Thanksgiving. While at the time it seemed like it was something that could be easily accomplished, as the deadline drew nearer, more and more complications arose. While most of our individual sections were on their way, putting the entire project together was a mess. Our team had not really contacted the other teams at all, which led to problems placing everything together. Everything worked individually, but the trouble came to finding where to change code that did not match well. We ended up delaying the updated release by a few weeks, not meeting the original deadline.
While working on this project, I learned many things. One of the biggest things was definitely learning how to deal with foreign code. While at first it seemed to be all gibberish when looking through someone else's code, eventually, my code basics pulled through and I was able to decipher what most of it did. While it definitely would have been much nicer to be given code in a template I was familiar with, it was still a good learning experience. Another thing that I feel I learned was to coordinate with your group members as often as possible. While I worked with Chase and Brady often enough, our group as a whole neglected to talk to the two other groups working on the same project more than maybe two or three times the whole semester.
Kevin Zhang
Fall 2018 CS-499
Delta V Industries
Comments
Post a Comment