The Journey

November 23rd, 2020 – The “aha!” Moments

I love those “aha” moments when programming – the moment when the error is solved. I had one of these when debugging my app recently. I had been getting the dreaded NullReferenceException for weeks, and finally I realized that I had two lines of code that were messing up the code, and I had to add a .ToLower(). After merely commenting out those two lines and adding the necessary code, it was done. Debugging was like solving a puzzle, trying to make small changes, rework things entirely, and then going back to previous versions. It could be frustrating at times, but when that final piece clicked into place and the code ran as expected, it was very satisfying to see it work 🙂

June 30th, 2021Light Mode versus Dark Mode Issues

I had finally finished the review process for Apple and Google, and decided to download my application on the different devices in my house. My simulator did not have dark mode turned on, and I never used dark mode on any of my devices, and thus, I hadn’t really considered making my app look good for both dark and light mode. Most elements of the app already change dynamically with the device mode, but I had changed some of the colors for the text, and now most of the text was unreadable and the buttons were the same color as the background. This was an unexpected issue that I ran in to, but I was able to fix it by adding borders on the buttons and fixing the colors.

June 31st, 2021 – My Experience with the App Review process for Apple vs Google

I recently deployed an app (Sayffer) to the Apple App Store and the Google Play Store, and thought I would share my experience with the app review here.

Google Play Store

For the Google Play Store, my app review took five days. This process was significantly longer than the Apple review process, but I had less trouble with publishing the app and updates were published quickly for some small changes that I had to add.

Apple App Store

Personally, I didn’t have that much of a great experience with Apple. The app review process was quick, but I had to make changes several times and constantly resubmit. This was because of two issues: one, I had done a screen recording of a simulator on my computer for the app preview, and Apple didn’t allow the device frame to be in the video, and two, Apple did not allow the references to “viruses”, thinking that it was a “COVID app”. When I fixed both of these things, my app got through the review process, but it was very frustrating and not very developer friendly at first. Even after I had removed the device frame from the app preview, I added a colored background. Immediately, I got another Metadata Rejection for this. I was very confused by this, as I had seen other app previews with these backgrounds in the past. However, I made sure to change this, and it finally got through and onto the app store.

July 20th, 2021 – Selling

This was it. I had finished my app, published it, and was now ready to start getting customers to use the app to collect feedback.

But it was now that I realized how difficult this stage – trying to get my first sale – is. I started reaching out to potential design customers to test my app out with, and was having trouble getting anyone to respond. This is the hard part, but I know that after this one sale is made, making the second one will be a bit easier, and making the next few will be even easier, and so on.

December 20th, 2021 – The importance of source control…

In order to create a secure app, I decided to make use of the Firebase security rules for my app. I wrote a long set of intricate rules with specific guidelines to fit in perfectly with my database structure…

And then, one day, they just weren’t there. I am not sure why. Maybe I had edited the rules by accident, thinking I was doing it in a different project. Maybe it was a glitch. In any case, I had made one very bad mistake… I hadn’t saved the rules anywhere.

It was this incredibly frustrating incident that taught me the importance of source control and keeping all the code I write safely in case of a crash.