
AtomStudies: FBLA NJSLC Mobile App Development 2025 Podium
How I won 4th place in the FBLA NJSLC Mobile App Development 2025 competition.
3/16/2025
From 10 to 12 March 2025, New Jersey's FBLA organisation held the State Leadership Conference. During this period, I participated and placed in the top 4 in the Mobile App Development competition, qualifying for nationals. For this competition, I created an app called "AtomStudies", a chemistry study app that helps students with their chemistry studies.
What was the inspiration behind this app?
My online username is "atomtables", and I have a tendency to overuse my name when it comes to products. When originally planning this app, I named the app "AtomStudies" as I normally would (the atom blog comes to mind). Then it hit me: I'm taking AP Chemistry right now, and it would make a ton of sense, given the name of the app, to make AtomStudies an app that assists with studying for Chemistry.When originally looking at the rubric for the app, I almost panicked, because I thought the rubric wanted an app that taught its users MANY things, like a general learning app. When going to my maths teacher for advice, she pointed out that I could focus the app on a specific topic, which would help make the content, the curriculum, and the structure more specific and more tailored.
How did I build the app?
Since the category I was competing in was called "Mobile App Development", it was obvious my app had to be tailored towards a phone. Surprisingly, the rubric included the option for making a Windows Phone app, which I was actually thinking about doing. In the end, I settled for making a SwiftUI app. I already have experience with the iPhone-based platform.For database storage, I only saw one really good option: Firebase. Firebase already has good integration with iOS+ apps, and taking advantage of the authentication and database features Firebase has would provide enough backend for my app to need. Firebase wouldn't really make that much of a difference anyway, mainly because of the next part.
The disaster that was development
I originally started working on AtomStudies around January, although not making strides of progress until February. This was due to horrible circumstances, as well as horrible planning on my part. It's hard to admit, but I definitely did not plan out a good development schedule. Between schoolwork, grades, and the ending of the marking period nearing late January and early February, I lost a lot of development time studying for tests and finishing up homework. Near mid-February, I wanted to ask my AP Chem teacher for some help on creating the curriculum for this app, but due to extenuating circumstances, he had to take leave from school and was not very available for that week.The date was now around 20 February. The competition was on 10 March. I had around 3 weeks to not only finish the entire app, which was currently incomplete besides the preliminary sketches in my journal, but also to finish the presentation, prepare the app for testing by judges, practice the presentation, and make sure that Firebase works with limited internet.
Friends know how dedicated I was to the FBLA grind. The weeks leading up to FBLA, I would be on Xcode, coding during lunch, coding in the library, coding while recovering from a fractured wrist, coding while eating, and coding in between the 4 minutes we get for passing. I started seeing Xcode in my dreams, almost like a pseudo-Vision-Pro that would only ever produce compile errors. The days before FBLA was our rookie team's first FRC competition at Mount Olive, and while we spectated on the stands, I was still grinding for FBLA. For those 20 days, I breathed code.
Due to the horrible time constraints I had, I couldn't develop the most sophisticated curriculum. The solution I ended up taking was a friend's solution, who suggested I use online resources to create a "curriculum", or something that would serve to act as placeholder content. The app's content didn't need to be the most descriptive, because, in his words, "you're just a high schooler / you don't need the best content or whatever just show the app / it's mobile app development not curriculum development".
The curriculum ended up being completely hardcoded into the app's code. This was for two reasons. The internet at the hotel was unreliable, and it wouldn't be known whether I would be able to load Firestore content at the presentation room. It would also be time consuming to get arrays and arrays of data into Firebase. Even for just one unit, there was a lot of content, and Firebase was not the most reliable way of storing all of that content.
Also due to the horrible time constraints I had, a lot of the app's UI code, especially anything that shows lessons, is hardcoded to assume only one unit will ever exist. In fact, a lot of the UI's presentation variables are compiled into the app and reset on every launch. Due to a prioritisation mismatch, I spent too much time on certain aspects of the app that wouldn't matter to a panel of judges and didn't spend enough time on the actual presentational aspects.
The slideshow, however, was a significant step up. The content included a lot of my original work on the app, such as the original design sketches, planning for the app's data storage, and detailed explanations on the function of the app and how it (theoretically) can serve as a great resource.
So obviously, there was a lot to learn
If you think I'm being tough, I'm not. There really was a lot left to learn.- Keep your priorities straight. This app taught me that when you're on a time crunch, you have to spend your limited time on the tasks that actually make a difference. A nice subclass for initialising Firebase might be cool, but a functioning app is cooler.
- Get a headstart. Time is always limited, and you never know when you'll either be busy or when you'll be unable to get tasks done. The more you can get done while you have time, the less you'll have to do when the going gets tough.
- Maintain higher quality code. Looking at the codebase, the quality of code I have written makes me ashamed to even have it posted on Github. It made it harder to work on the code as well, and in some cases, I wrote some nonsense code that doesn't use the app's data properly.
I mean, there were results though
Even though the app might have sucked on the backend (or the end that only I would see), the app's interface and user-friendliness was pretty good. After all, the FBLA competition judged my app on its presentation, not the horribly-written backend. My presentation was high quality, and I was able to present with very little hiccups. The judges interacted with my app throughout the presentation, going through submenus and finding the important screens.The quality of my presentation helped me in 4th place, placing in the "podium" for the event and helping me qualify for nationals. While I am unable to go to nationals due to scheduling conflicts, I am very excited to go on next year. hopefully with a higher quality app and better planning beforehand.
