Forests Forever, a local non-profit organization focused on ecology and forestry education, came to Parthenon with a need for a mobile application that would serve as a guide to their outdoor demonstration forest, located just outside Oregon City, Oregon. They wanted students to be able to use the mobile app to support individual learning as they navigated the 140-acre Hopkins Demonstration Forest.
Forests Forever had two main goals. One was a catalog of the plants and animals that existed within the demonstration forest, that visitors might encounter. For this, they had supplemental materials to put in the catalog that included scientific names, descriptions, images and characteristics for each item, and these needed to be made available for users of the app to look up as they toured the forest. The lookups had to be fairly quick – no spinning bars while a bird or animal disappeared into the bushes.
The most important goal, though, was an interactive map to allow visitors to see their current location and the landmarks around the forest. Hopkins Forest has a number of trails and interactive exhibits, including a fire watch tower and a working sawmill – and none of those locations would be seen on a public map tool. Needless to say, an interactive map was going to be very useful here.
We proposed a mobile app written in Kotlin, which would allow us to code for both iOS and Android platforms and keep the look and feel of each platform’s widgets without needing to build two separate projects; this was a time and cost saving approach that we have found works well. As some past hunting and dirt biking experience in the Northwest had initially caused us to envision the forest as a dead zone for cell coverage, we were pleasantly surprised to find that we could expect cell data coverage across the entire forest’s area; this greatly simplified our solution. Because of this, we decided to use the Google Maps API and add overlays of the trails and locations to the app’s view of it. It did mean that we would need to use the native libraries for both Android and iOS, but we considered the strong support from Google to be worth it.
The other question was when we should pull the data down. Because the client needed to periodically update app data such as calendar events and new plant/animal info without needing to publish a new version of the app to the Play and App Stores, the app needed to pull the data down from a back end server; but it also needed to have the data quickly. Our solution was to pull the app metadata down whenever the app started up, cut down only to items that had changed since the last update, and to pull down compressed thumbnails of the species shown in the app since they were fairly small; but full-size photos were to be fetched lazily as needed.
The creation of the mobile application(s) was truly a collaborative effort. Parthenon supplied the technology, the product owner provided UI direction and overall vision, and some of the educators from the non-profit provided the huge supply of content for the application – producing an educational application rich in both detail but also use for the visitors to the demonstration forest.
An unexpected difficulty was found in the behavior of the Google Maps SDK used for iOS. While the Android version was built along lines similar to the web version, the iOS version was completely different, and what looked originally like a simple porting job started to take us in the direction of completely separate code again. This is where our use of Kotlin really helped out. The data model and layer configuration was able to be shared in Kotlin, while we confined platform-specific calls to the vastly different SDKs to thin adapters between the two. The adapters could therefore render in their native code, but interoperate seamlessly between the shared Kotlin code.
For the back end we wrote a Django app that mostly consisted of the built-in admin. This allowed us to provide staff login and content management at a much lower cost than other back ends could. The front end of the app consisted of API endpoints from which the mobile app could pull content.
The client was extremely pleased with the final outcome. Visitors to the forest regularly use the application, and on launch the app even got a writeup in the local newspaper. Some choice quotes:
Whether you’re a student on a field trip or a return visitor, the app helps you explore the forest safely while learning about the wildlife specifies that live there, including the grey fox, mountain beaver, bobcat, northern pygmy owl, and lamprey eel. The app also helps visitors identify the ferns, herbs, shrubs, broadleaf trees, conifers, and fungus in the area.
Projects like the Forest App helps us support environmental education, enhance visitor experiences, and ensure that more people can connect with nature close to home.
Accomplish your software projects fast with our experience.
Get A Free Estimate