Back

SortLoop

Event WWDC Swift Student Challenge
Platform iOS, SwiftUI
Tools Xcode, Swift Playgrounds, Sketch, Pixelmator Pro, Apple Intelligence
Timeline 1 month
Year 2025

SortLoop empowers users to scan everyday items, instantly learn recyclability, and seamlessly schedule pickups, making eco-friendly choices effortless.

Swift Student Challenge Winner & Project

List of recyclable materials by category
Camera view detecting a plastic bottle as recyclable
Recycling schedules sorted by pickup date
SortLoop was created to make sustainable living easier by helping users quickly identify and understand materials around them. I built this app during my time at university as part of the Swift Student Challenge, to encourage everyday sustainable choices.

Problems

The main problem I aimed to address was the widespread confusion and inconsistency surrounding recycling information, which creates significant barriers to effective waste management. After observing many students at my university facing confusion about which trash bin to use for their items, I decided to develop a solution to inspire positive change and make recycling more accessible.

Recycling is further complicated by the complexity of material types and packaging combinations, as well as limited public understanding of recycling symbols and procedures. Many people want to recycle correctly but lack convenient and understandable resources that provide clear, actionable information at the moment of decision making, which contributes to reduced recycling rates and increased environmental impact. Existing solutions also require internet connectivity, making them unusable in areas with poor signal or for users wanting offline access.

Ideation

After identifying recycling confusion as a persistent issue in my university community, I began exploring how a Swift Playground could make the process less confusing and more engaging.

The key question that shaped the project was: “What if an iPhone camera could instantly tell me how to recycle this?” This led me to focus on an image classification approach, using a machine learning model with SwiftUI to create a playful, approachable learning experience.

Because the Swift Student Challenge requires projects to run entirely on-device, I decided to create a lightweight ML model, using Create ML, and a local material dataset to show further detail about detected objects.

Goals

The main goal of the app is to simplify recycling and help users confidently understand how to dispose of everyday materials, with a focus on making a positive impact on recycling behavior and environmental awareness.

  • Encourage long term sustainable habits through education and reminders
  • Empower users with clear recycling information
  • Ensure users never forget their recycling schedules
  • Demonstrate advanced iOS development through custom ML integration
  • Make recycling guidance available even when packaging lacks clear information

Constraints

SortLoop was developed alongside full-time university study, which influenced design and technical trade-offs, prioritising a compact, on-device solution, that delivered reliable user feedback within minimal resources.

  • Limited development timeline of 1 month
  • Creating an ML model that performed well, with a low memory requirement
  • Capturing hundreds of images for a variety of different products
After I had begun my thought process of building the app, I decided to identify some of the existing issues with recycling schemes and systems, which provided valuable insights into how to improve them through technology.

Pain Points

I identified four key pain points that users have when dealing with recyclability and waste management.

  • Lack of Clear Guidance
    • Many everyday items have packaging that is either poorly labeled or overly complex. Users are often left unsure about whether something is recyclable or how to prepare it for disposal.
  • Poor Discoverability of Information
    • When users want to learn more about sustainability or materials, they often have to search across multiple sources, such as articles and websites, making it difficult to stay informed.
  • Low Engagement With Sustainable Habits
    • Recycling often feels like a chore or an afterthought, rather than a habit people actively enjoy or engage with.
  • Overwhelming Terminology
    • Consumers frequently encounter a range of recycling symbols, acronyms (like PET, LDPE), and vague language such as "widely recycled". These terms are often poorly understood and lack actionable context.

Persona

To better understand the needs and behaviors of users interacting with SortLoop, I developed a primary persona based on key motivations and real world recycling challenges. This persona reflects the common traits and pain points of the app’s target audience, which will help me for design and feature decisions.

Persona illustration of Sophie

Age

22

Location

London, UK

Occupation

Business Management Student

Tech Level

Proficient

Values

Sustainability, Accessibility, Accurate Information

Personality

Eco-Conscious, Time Aware, Socially Responsible

Background

Sophie is a business student who cares about environmental responsibility and wants to make sustainable choices in her daily life. She grew up in a household that recycled, but moving to university revealed how much products are disposed of and how confusing packaging can be. She's motivated to do the right thing but often feels frustrated by unclear information and inconsistent guidance across different sources.

Goals

  • Understand how to recycle or dispose of materials properly and locally
  • Discover eco-friendly alternatives to everyday items
  • Learn interesting facts to share with friends and promote sustainability
  • Stay organised with her personal recycling and trash days

Pain Points

  • Finds packaging labels vague or inconsistent
  • Gets frustrated with conflicting information online
  • Can’t easily sort materials by category or learn what alternatives exists
  • Often forgets her recycling schedule, leading to a pileup

App Needs

  • Clear, friendly explanations of materials and symbols
  • A schedule to track trash days or personal goals
  • Fun facts and learning moments to stay engaged
  • Save materials she wants to revisit or share

While Sophie represents the primary environmentally conscious user, informal conversations during development revealed two additional user types that influenced design decisions.

  • The 'Overwhelmed Beginner' wants to recycle correctly but feels intimidated by complex environmental terminology and conflicting advice, these users need confidence building through clear and simple guidance.
  • The 'Efficiency-Focused Organiser’ already understands recycling basics but struggles with time management and staying organised with multiple waste streams and collection schedules.

Sophie's profile encompasses core needs from all of these types, such as the beginner's need for clarity, the organisers need for scheduling tools, and the environmentally conscious user's desire for detailed information.

User Journey

I developed a user journey based on the singular persona, to imagine how SortLoop could create an impact on both the user, and then subsequently on the environment, helping people to improve their sustainability and knowledge.

1

Discovery

First Encounter

Sophie downloads the app after struggling to understand if her plastic bottle is recyclable, since it doesn't show recycling information

Actions

  • Downloads app from recommendation
  • Scans first item, a plastic bottle
  • Once recognised, she learns about details and recyclability
  • Explores basic navigation
Emotion

"Finally! Something that might actually help me understand all these symbols."

2

Exploration

Exploring Further

Sophie experiments with different features, scans various items around her flat, and starts learning about proper disposal methods.

Actions

  • Scans multiple items
  • Uses scan outside and inside
  • Reads recycling procedures and material impacts
  • Discovers different materials
Emotion

"This is actually useful! I had no idea I was recycling some things incorrectly."

Engagement

Building Habits

Sophie integrates the app into her daily routine, sets up trash day reminders and starts saving interesting facts to share with friends.

Actions

  • Creates a recycling schedule
  • Sets up trash day notifications to never forget
  • Bookmarks materials for reference
  • Shares her recycling schedules with flatmates
Emotion

"I'm becoming the go to person for sustainability advice in my friend group!"

4

Future

Confident User

Sophie has developed strong sustainable habits and uses the app as a trusted reference tool. She now advocates for sustainability in her community.

Actions

  • Uses the app as a recycling companion everyday
  • Maintains consistent sustainable routines
  • Recommends app to friends and family
  • Shares sustainability tips online
Emotion

"I feel confident about my environmental impact and love making better choices!"

Based on my research and findings, I began to design my app using my ideas, following an iterative process, starting with wireframes and then refining those ideas through mid and high fidelity prototypes, before exploring development.

Low Fidelity Prototype

I started with some low fidelity designs within Sketch, for both navigation and user flows, to explore how the apps structure would appear using grayscale components and basic UI elements. This helped me focus on layout and hierarchy and allowed me to progress faster through the iteration process.

Low fidelity wireframe layouts of app screens

Mid Fidelity Prototype

With a clearer idea of the app’s structure, I created a mid fidelity prototype with additional layout improvements and colour. This version helped test navigation and functionality, and gave me a better sense of how users would move through the app.

Mid fidelity prototypes with added structure and colour

High Fidelity Prototype

I then developed a high fidelity prototype, applying further colours, typography, icons and interactive elements to simulate the final look and feel of the app. This stage allowed me to further refine the interface and ensure visual consistency.

High fidelity mockups showing final app design

Development

Once the final design was in place, I transitioned to development using Swift and SwiftUI. I initially built core features in Swift Playgrounds, which gave me a space to experiment with views and interactions. After validating key components, I moved into Xcode to build the full playground experience, specifically for the machine learning model.

Developing the machine learning model was one of the most technically challenging aspects, as items vary greatly in form, so I curated a dataset that represented common household packaging, including plastic bottles, drinks cans, and cartons.

Using Create ML, I trained an .mlmodel image classifier with various different types of packaging to increase accuracy. The trained model was integrated through the Vision framework (VNCoreMLRequest, VNImageRequestHandler), with a 90% confidence threshold to ensure that detected objects weren't mistaken for others.

Xcode with ML model code and UI preview

Alongside the ML model, I created a structured local dataset of recycling guidance, with information gathered from Wikipedia, then encoded as Swift structs, which allowed the Playground to provide offline educational content and map scan results to clear, user-friendly explanations.

Xcode with dataset structures and materials list

Submission

The final Playground version of SortLoop focused on the core elements of sustainability by identifying objects and their recyclability, creating a space to learn more about materials, and staying organised with local recycling schedules.

  • Fully implemented three key experiences: Materials, Scan, and Schedules.
  • Integrated a custom-trained Create ML model that accurately recognised common household packaging in real time.
  • Designed a minimal, friendly SwiftUI interface.
  • Ensured offline availability of core recycling guidance for moments when packaging lacked clear information.
  • Completed testing to refine navigation and scanning accuracy before submission.
Screens showing material categories and object detection
After fully developing SortLoop, I submitted it for entry in the 2025 Swift Student Challenge

Results

I was incredibly honored to be selected as one of this year’s Swift Student Challenge winners. Being recognised by Apple for something I dedicated so much time and care to has been an unforgettable experience. I’m grateful for the opportunity to share my work alongside such inspiring developers from around the world.

Swift Student Challenge winner badge with confetti

Outcomes

Key outcomes from this project:

  • Improved time management skills through working with external deadlines
  • CoreML model training and optimisation techniques
  • Real-time camera processing in SwiftUI
  • Learned to validate technical decisions without team feedback
After my first year university semester and studies had ended, I decided to further work on the app, improving it's ML model, design and creating a new name.

Redesign

With the new redesign, I decided to primarily focus on forefronting the scan capability, and make it easy to access other key features, like product search and waste scheduling. I also aimed to implement some new features that make SortLoop have better personalisation.

  • Region based information
  • Informative articles
  • Improved navigation structure and new design
  • Improvements to accessibility

My initial ideas focused on improving the navigation structure by removing tabs and replacing them with a simplified page design, or placing greater emphasis on material categories by providing detailed information about specific types such as Plastics or Metals. I ultimately chose a single-sheet design for its simplicity and its focus on scanning as the app’s main feature, while still allowing key features like Schedules, Materials, and Articles to remain easily accessible.

Low fidelity wireframes of the app, with different initial designs and ideas

My mid fidelity designs focus on the sheet style further, maintaining it's position at the bottom of the screen and encapsulating the scanned items recyclability status within a new floating bar. The Explore sheet encompasses the same features as before, including Bookmarks, Schedules and a list of Materials, whilst also including Articles, with a compact navigation style.

Mid fidelity prototypes, with a specific focus on one design system and additional detail

Building on the mid fidelity designs, the high fidelity prototype brought the app's visual identity to life. I refined the bottom sheet UI with clear visual hierarchy and system consistent design patterns to align with iOS standards. The recyclability status bar was styled to be more visually distinct and easily scannable, using colour and iconography to quickly convey information.

I used a consistent colour palette, rounded components, and typographic hierarchy to improve readability and maintain a friendly, accessible tone across the app. This stage helped validate how the app would feel in real use, and feedback from peers and testing with different devices helped refine layout spacing and button sizes to improve usability across contexts.

High fidelity prototypes, with added colour, textual information and improved layout

The redesign addressed three key issues identified during initial testing:

  • Tab navigation created cognitive load when users wanted to quickly scan items.
  • Scattered information architecture made learning about materials feel disconnected from scanning.
  • Users expressed wanting 'everything in one place' during informal feedback sessions.

The single-sheet design solved these by making scanning the primary action while keeping supporting features contextually accessible.

Prototyping

Exploring animation and motion was central to the redesign, as I aimed to make SortLoop feel more intuitive and natural to use.

For instance, the Recyclability Status Bar started as a more compact iteration of my original concept, designed to move fluidly and respond organically to scanned items. The status bar briefly pauses to highlight the recyclability, then gently expands to reveal the suggested item before shrinking back once the item moves out of view.

Simple elements like collapsible lists and informational panels use a subtle scale effect combined with a gentle bounce to introduce a playful, engaging tone, to make recycling information feel more approachable.

Photography

For the article sections, I decided to use my photographic skills to create imagery for the articles within the app. All photography was shot on iPhone, using natural lighting and simple setups to achieve a clean, minimalist aesthetic, so the images remained both functional and visually cohesive with SortLoop’s overall design language.

Four images within a grid; leaf foliage, plastic bottle, corrugated plastic and clouds in blue sky

Accessibility

Supporting user choice and comfort was a core part of the new design, ensuring the app could be enjoyed by as many people as possible.

The font customisation feature allows users to switch to OpenDyslexic, a typeface designed to improve readability for those with dyslexia, especially when the app specifically focuses on textual information.

Sound and haptic feedback controls were added for similar reasons, users can independently toggle both features to suit their preferences or environment, such as within a quiet library or sensitivity to haptic feedback.

SortLoop settings screen showing accessibility toggle for dyslexia-friendly font

Additionally, I enhanced VoiceOver support with clear, concise labels and hints for interactive elements like buttons, collapsible lists, and status indicators, so users can easily understand app functionality without seeing the screen. Dynamic content updates, such as recyclability results after scanning, are announced in real time to keep users informed without needing to guess or explore manually.

Screen showing explore sheet, with VoiceOver box highlighted on article
The new iteration of SortLoop brings the app into a streamlined, single-sheet design, making key features like scanning, schedules, materials, and articles easily accessible

Design

The redesign of SortLoop focused on unifying previously separate views into a singular sheet-based layout, improving navigation efficiency and information hierarchy. Additionally, the visual language evolved to make recycling guidance more approachable and engaging, with the use of colour and symbols to quickly communicate status and categories without relying solely on text.

Grid of redesigned UI components for SortLoop

Scan

Object scanning underwent extensive refinement, focusing on the underlying machine learning model and the user-facing recognition process. The redesigned model maintains efficient performance with 8.99ms average prediction time and a compact 7.7MB size, with an expanded dataset of 8,000+ training images. The scanning interface was also redesigned to present recyclability feedback with clear, adaptive visual cues.

  • Enlarged training dataset for broader object coverage and improved classification accuracy.
  • Maintained minimal model size to preserve on-device performance and offline capability.
  • Redesigned recyclability status bar for fluid state transitions between object types.
Camera detecting a plastic bottle as recyclable
Camera detecting a metal can as recyclable

Materials

Materials was restructured to improve discoverability and depth of information, and search capabilities were expanded to recognise more object and recycling symbols, while material detail pages adopted a modular layout for clearer presentation of guidance and alternatives.

  • Streamlined categorisation to reduce navigation friction.
  • Extended search to recognise object names, related terms, and recycling symbols.
  • Redesigned detail view to present recycling guidance, examples, and alternatives in a structured format.
List of recyclable materials grouped by type
Yard waste material with recyclability details

Schedules

Schedules was redesigned to make tracking and managing recycling routines more customisable, with a range of symbols, colours, repeat intervals, and reminders for fully customisable recycling routines.

  • Expanded visual system with additional icons, colours, and accessibility-friendly components.
  • Added advanced recurrence and reminder configurations for varied recycling patterns.
List of recycling schedules with dates
Creating a new recycling schedule with options

Articles

Articles was introduced to provide accessible and concise information on recycling practices and sustainability tips, making SortLoop feel more like a resource that encourages better environmental habits.

  • Curated short form articles covering guides, recycling, and tips.
  • Integrated custom minimal photography to match the article theme.
  • Designed articles to be accessible through screen readers and other assistive technologies.
List of sustainability and recycling articles
Article detail view about greener alternatives

Additional Elements

  • Improved accessibility with the integrated OpenDyslexic font, control over sound effects and haptics, and support for VoiceOver and reduced motion.
  • Adjustable region settings for better suggestions and important details, like information about plastic bottle deposits.
Article displayed with OpenDyslexic font

Reflection

SortLoop was an ambitious project that pushed my skills in SwiftUI, machine learning, and product design further than any project I had created before. Balancing complex technical requirements with my university commitments meant working within tight timeframes, which taught me how to prioritise features and iterate quickly without losing sight of the core vision.

Throughout the project, I also encountered some challenges that shaped my decision making:

  • ML Scope and Accuracy
    • Designing a compact, on-device classifier involved trade-offs between the number of supported object types, model size, and inference speed.
    • External APIs could have expanded detection capabilities but this would require internet connectivity and introduce latency.
  • Data Maintenance
    • Keeping a dataset current with new packaging and region-specific changes would require ongoing collection and validation.

These decisions made me ultimately decide against a public launch at this stage, however the process of creating the app was one of the most valuable experiences as a developer. I learned how to optimise and refine a machine learning model with thousands of training images whilst improving its accuracy compared to the original version, in addition to a redesign for efficiency, whilst making recycling information more interactive and encouraging.

I explored the role of motion and animation in creating a smooth and engaging experience, which helped my ability to present complex information in a clear approachable way. The project also deepened my understanding of accessibility, especially with implementing VoiceOver-friendly layouts and customisation options like dyslexia friendly font.

The journey of creating SortLoop made me improve my design and development skills, but also helped me earn recognition as a Swift Student Challenge winner, which is an experience that inspires me to take on even more ambitious challenges ahead.

This project was created for the Swift Student Challenge and is not publicly distributed. Please contact me if you’d like to learn more or see a private demo.