I was inspired to create an app that would motivate people to engage with nature! An interactive scavenger hunt is a fun way to do that, and it also provides an easy way to learn about your local wildlife. I decided to code it in an app because you can take it with you on the go. I wanted to try out mobile development, too!
What it does
WildEye is an interactive scavenger hunt app that creates a list of items for you to find outside based on your location. When you first open the app, you allow it to access your location, and then it generates a list of wild plants that are native to your area. The app chooses a few of them to list in your personalized scavenger hunt. You can check off items on the list as you find them on hikes—or maybe even your own backyard!
How I built it
I coded the iPhone app in Swift using XCode; it consists of a navigation view and a table view, which holds the scavenger hunt list items. The program mainly handles taps on list items to mark them as “found” with a checkmark. I was also able to implement local persistence in Swift, so if you close the app and reopen it, the app remembers which items are checked off already.
I also used Python to call an API for the USDA PLANTS Database and scrape about 2000 plants native to the US. I cleaned the data by removing listings that had missing information (or weren’t linked to a photo) and reformatted the locations to be organized solely by state, also in Python. I wrote a function in Swift to read the JSON data from the file, but unfortunately wasn’t able to get it running by the deadline (the list pictured has sample data taken from the Database for Maryland, my home state).
Challenges I ran into
Challenges I ran into
Unfortunately, I ran out of time! Although I did successfully generate a huge JSON file of data to go into the app, I wasn’t able to read it in using Swift before the deadline. That’s why I only have a sample scavenger hunt from Maryland available currently.
I had never tried mobile development before, and had never worked with XCode or Swift before this hackathon, so it took me a long time to accomplish my initial tasks.
Accomplishments that I'm proud of
Everything about this app! I am so proud that I finally dipped into mobile development and tried learning a little Swift for this hackathon. I was unsure about picking an area I had no experience in, but it was a great opportunity to learn.
What I learned
I learned a ton about Swift and storyboards in XCode, as well as mobile development in general. I also brushed up on API calls and working with JSON in Python along the way!
What's next for WildEye
There are so many awesome ways WildEye could be expanded in the future! Of course, the first task is to get the data transfer completely ironed out, but after that I would love to keep working. It would be great if the app could include countries outside of the US and languages other than English, for example, and Android support would also increase the number of users. I would most like to implement a “share” or “community” feature where users can post photos of the items they found and see what local wildlife in different places looks like.