STEMpump for iOS

STEMpump for iOS

An app designed to help students learn what they want, how they want

App Development
Education
Social Impact
Download on the App Store

STEMpump for iOS, or the STEMpump App is an app to provide STEMpump content in a new experience. I built the first version in April 2020, and now we're on Version 4.

Version 4 brings a whole rebuild and redesign to the app, with improvements in content, overall quality, and massive feature additions and updates. I developed the app primarily with SwiftUI, using other technologies for features to bring parity with STEMpump.org, its web counterpart.


Goals


  • Bring platform parity

    The app till this point was always behind the website in terms of content and features, so a big goal was to make sure there was 1:1 parity between both, so there's no difference in content — just experience.

  • Design for iOS

    Being on iOS means that there are new boundaries and rules as indicated by Apple's Human Interface Guidelines — so how do we design an app that feels "STEMpump" but still acts/reacts like other apps?

    Human Interface Guidelines
  • Elevate the experience

    The prior version of the app had many features students wanted that we couldn't deliver. With the new app, can we implement all of these and then some more? To what extent can we add functionality without negatively impacting the learning process?

Redesigned Navigation

Redesigned Navigation

In prior versions, navigation was linear and in one direction. With the amount of functionality and potential paths a user could go in the new version, I redesigned how navigation worked from the ground up.

A new tab bar has main views for the user to access anytime. A new navigation bar system provides the user with meaningful context and available actions.

Content Traversal

Content Traversal

One of our bigger new features is Content Traversal. Users can now go to the next lesson directly in the lesson view itself. In the past, users would have to close out of the lesson and open the next one. With this new update, there's no break in the learning.

Even more, users have access to the entire chapter and can even jump to the surrounding chapters.

Big Question

How do we design an experience that supports students in learning STEAM?

Quizzes and Projects

Quizzes and Projects

To reinforce the content available in lessons, we added Quizzes and Projects. Students can take quizzes that involve multiple choice and text-based questions to test their knowledge. They can also build projects for hands-on learning based on what they previously learned.

Hints and a "quick glance" of the solution are available to see if you're on the right track. (Similar to flipping the page really quickly.)

Using FigJam

With FigJam, I could plan navigational paths and broader data flows. It helped me stay on track and ensure that I didn't forget any significant user action pathways.

Using FigJam
Widgets

Widgets

With the all-new Continue Learning widgets, students can see their most recent content and jump back into it. They work in real-time, so as you learn naturally, they'll update alongside you.

Universal Search

Universal Search

Like STEMpump.org, a brand-new Search tab allows students to search across STEMpump from anywhere. Built with Algolia, our Universal Search system uses ML and NLP to search courses, camps, and subjects.

Don't worry about misspelling or using similar phrases — AI Dynamic Synonym Suggestions help everyone find exactly what they're looking for.

STEMpump Camps

STEMpump Camps

New with this update is the inclusion of STEMpump Camps. Users can register for camps and watch previous camps.

It's the same great experience but designed for iOS. You can use Resources from the camp, and even jump between sections in the camp itself. Registration is done natively, using APIs developed for STEMpump.org.

Continuity

  • Continue Learning

    With Continue Learning, jump back into your most recent lessons, quizzes, and projects. On the Discover tab, you'll see all of your recently viewed items. And if you're in a course, your current lesson is bookmarked, so you can jump directly into it. Widgets contain shortcuts back here.

  • Favorites

    Use the all-new Favorites to save specific courses, lessons, and camps! They all appear in the Favorites view, ready for you to get back into it!

    Even better, the system automatically detects old CoreData Favorites from prior versions and lets you add them to the new Favorites.

  • Camp Registration

    When you register for a camp, your registration is saved on your device, and the app shows you when your camp is starting. After camp, you'll be able to see your registrations on the Discover and Camps tabs.

Technologies used


  • SwiftUI

    SwiftUI is a declarative UI framework from Apple. While it's still a bit in infancy, we can speed up development time and iterate quickly. This combined with a few UI Kit fixes allowed me to create a well-polished app and to follow view/component design from our website.

    SwiftUI Website
  • Realm

    Realm is an open-source mobile database and powers some of the best features in the app. Its main purpose is Favorites, but it also sends data to Widgets and the Continuity feature. It's great, since we can build off of it over time.

    Realm Website
  • Sanity.io

    Sanity.io is a unified content platform that enables us to manage and organize all content available on STEMpump. By using Sanity.io as our CMS, students benefit from our global CDN and data pipeline. Since Sanity.io isn't specifically designed for SwiftUI, I developed a custom networking function to work with our database.

    Sanity.io Website

Other STEMpump Platforms

  • STEMpump

    An edtech nonprofit working to create a student-driven learning platform.

    Learn more
  • STEMpump Camps

    Learn live with STEMpump Camps. Join free STEAM-based video bootcamps, ask questions, and discover something new.

    Learn more

More work