Link Search Menu Expand Document

Project 2: Pokédex

Table of contents

  1. Introduction
  2. Spec
    1. Requirements
    2. Displaying the Pokemon
    3. Pokemon Details
    4. Search and Filtering
  3. Submission

Due: Thursday 10/20/2022 at 11:59 PM


Six years ago, Niantic Labs took the world by storm when it released the high-tech, bug-free, not-at-all-laggy app Pokemon Go! Unfortunately, some people weren’t able to share in the excitement because they didn’t follow Pokemon as children and have no idea which one is which.

Let’s help those people out! This week we’ll be building a simple Pokedex app for people to look up statistics and information for over 800 Pokemon.

As always, you will pull your starter code from Github from the starter remote.

git pull starter fa22/student/main



Your app should be easily navigable – for example, use navigation controllers to allow people to go to previous screens freely.

You are allowed to use storyboards.

Code quality is just as important as functionality! You should be consistent with the style guidelines for Swift. Make your variable/function names clear and comment code when things are potentially confusing. Learn the content in this guide!

Note that the design of this application is entirely up to you, but make it look as clean as possible.

Displaying the Pokemon

  • When the user opens the app, they should see a list of all 800 Pokemon. You should display the following characteristics of each Pokemon
    • Name
    • Image
    • ID Number
  • The user should be able to toggle between seeing the Pokemon in rows and seeing the Pokemon in a grid layout (n x 2 is fine)
    • HINT: Use collection view with flow layout, and override methods in UICollectionViewDelegateFlowLayout to control the size of each cell.

Pokemon Details

  • When the user taps on a Pokemon, the app should bring them to a screen showing them the following characteristics of the Pokemon
    • Image
    • Name
    • ID
    • All of its statistics

Search and Filtering

  • Users should be able to search and filter pokemon to easily find what they want to see (because looking at 800+ Pokemon is a lot)
  • On the main screen, include a search bar to search the Pokemon by name. As the user types in the search bar, the list of Pokemon should automatically update.
  • If the user wants to filter on more criteria, they should be taken to a screen where they can filter on type.
    • Pokemon returned by the filter should satisfy ALL filter criteria (all the selected types + search string)


Save all of the files in your project, commit, and push to Github.

Finally, submit your project to Gradescope