The Making of Geogsmart

January 26, 2020

Ajay

Written by Ajay Gandecha

According to the United States Government Accountability Office, only 27% of 8th graders were proficient in geography in 2014, and 73% of students were below proficient. Part of the reason that the majority of 8th graders are below proficient in geography skills is because it is not a major part of the social studies curriculum, and it seems boring to many people. I concluded that people did not want to learn about geography because there was no fun and engaging way to do it. This simple idea pushed me to create my first iOS app, GeogSMART, in 8th grade. The app, while extremely basic and limited, got in the Top 5 for the Congressional App Challenge in 2017.

In sophomore year of high school, I took AP Human Geography. Taking this class reignited my interest in this specific point, and sent me on a journey to completely rebuild my app, with the new knowledge I had gained, to create an aesthetically beautiful, fun way for students to practice and quiz themselves on their geography skills, as well as for AP Human Geography topics. This is my journey to create Geogsmart, my iOS app now available on the iOS App Store that aims to make learning and practicing geography more fun, engaging, and rewarding for children, students, and adults alike.

Making the Questions

In order to make Geogsmart fun, interesting, and engaging, I wanted to create a vast question set for the app. Over the course of two months, I was able to create over 850 questions for all six populated continents as well as around 200 for AP Human Geography. These questions would be randomly chosen, by difficulty, within the app for users so that they could be able to access new questions as they leveled up. Even when the user levels up and unlocks new questions, old questions will be mixed in with the new ones. This functionality supports the the practice of spaced repetition.

Spaced repetition is one of the most effective ways for people to learn and remember new things, supported by many scientific studies into the matter. Geogsmart allows for this repetition while also preventing the experience from becoming boring, which allows users to both learn and have fun quizzing themselves as well.

Questions

Creating the questions themselves were not difficult, but it took an extremely long time simply due to the quantity. I used a Google Sheets spreadsheet, shown above, to create the questions, separated by sheets for each continent and AP Human Geography. The fields for the spreadsheet included information about the subtopic, question, correct answer, incorrect choices, the difficulty on a scale of 1 to 3, and the name of the associated image.

Overall, creating so many questions, while monotonous at times, actually let me learn a lot about the world, all different continents, and even to help me review for the AP Human Geography exam! With over a thousand questions created, I could now begin on planning out my app’s design.

Wireframe

I wanted to put a large emphasis on the design of Geogsmart. People would rather use an app that is visually appealing rather than not. I wanted to incorporate the Earth’s colors of blue and green throughout my app. I used the iOS app Notability to design a prototype of my pages. Above is an example of a few pages from the final prototype. The app had gone through extensive prototyping; from having a spinning globe in the center to click on the region of the world, to having clean card tiles with a beautiful image of the continent map. I chose a special font to use for the app that would match its theme and purpose. The design of the app utilized clean design choices and focused on user experience and ease of use.

Badge Wireframes

I also designed the many badges that users could earn for various tasks in Notability. This would be the basis for the final result. Some of these badges haven’t been released yet, so you get a special sneak-peek here!

Coding Geogsmart - iOS Development

After the designing of the interface on Notability came the hardest part of them all: coding the app. Programming, especially for such a large scale project, can become very complicated. First, programming the user interface took some time. Many would think, that doesn’t seem too bad, you just have to design it once, correct? Wrong. When you create an app for iOS, you have to adapt and optimize your app for all screen sizes, from the smallest iPhone SE to the iPad Pro 13-inch. I had to include code to edit the base interface depending on the screen size of the user’s size. In addition, I had to make sure to lock the user’s device in portrait orientation to uphold the integrity of the design. I also had to move certain things around so that the user interface would be easy to navigate. To put things into perspective, it took about six hours just to get the bottom tab, shown here, to work properly. 

Tab

This is for a few reasons. First, I used an external package that someone else wrote to add the special colors, animation, and center globe to the bottom tab. It took an hour to learn how to use the package due to unclear documentation. Then, I had to work on getting the globe and icons to show up properly, as the size were always either too big or too small. Then, I had to essentially modify a color overlay to make the globe not change color when clicked on and to only show the animation. Lastly, I had to connect the bottom tab bar to all of the other views in the app and use code to connect the tab buttons to different pages. After many weeks of optimizing and designing, as well as tweaking the designs to make the UI easier to understand, this is the result of the same three pages shown above in the previous prototype:

Geogsmart UI

Creating the questions page, the third page in the picture above, was one of the most difficult pages to create. Each question had to be randomly chosen, with no duplicates, from the topic chosen from first menu. Then, the answer choices had to be randomized. The correct answer choice would trigger a different action than the incorrect answer choices, by showing a different banner, highlighting the correct answer, and adding the appropriate XP and globes, the in-game currency, for the questions answered. Also, the ending summary screen had to show all of the incorrect answers again, number of questions correct, and the breakdown for XP earnings. In addition, over 200 images were retrieved from Wikimedia Commons to be used to display country maps. The images would also have to be able to be zoomed in for easy viewing of tiny countries such as Qatar or Lithuania.

Badges

In addition to the questions page, getting the badges configured also took a lot of coding. Making the badges show up when certain achievements are unlocked and not repeat after, as well as configuring special edition badges for specific days, also took a lot of coding and logistical problem solving. 

In total, the Geogsmart project included over two-thousand lines of code, over a hundred images, over a thousand questions, and full integration with Apple’s GameCenter.

Submitting Geogsmart to the App Store

On August 11th 2019, Geogsmart was publicly released on the iOS App Store. In order to release an app on the App Store, a $100 per year developer account is needed. Submitting an app is actually quite painless and simple, but it takes a lot of work to get to this point.

Final Thoughts

Creating my own iOS app took many months of planning, designing, coding, and writing content for the app. The resulting product is a clean, beautiful app with a good functionality which I will be proud of as a showcase of my work. Creating an app is challenging, and takes a lot of patience. Any app, even a geography quiz app like Geogsmart is, takes a lot of time and resources to develop. I developed Geogsmart on the weekends and after my school day and completing homework from my high school classes, as well as during breaks and vacations.

I hope that my journey of creating my own app from a basic idea to a product available to millions of people on the App Store inspires you to create your own app, or maybe work on something you believe can make an impact in your school or community.