Learn Courses My Dashboard

NBA Stats Community App Challenge!

Hey CodeCrew,

We’ve got a new community app challenge!

Here’s a preview video of our solution: https://youtu.be/lt_gBCXiooA
(App and video made by Jesse on our team)

What are the app requirements?

For this challenge, you will be building an NBA Scores app that displays games and scores. You can use any Sports API you find, but we recommend using SportsData.io.

NOTE: SportsData.io offers an unlimited free trial, however, the data obtained from the API is scrambled , meaning data (such as scores) are purposely modified to be slightly inaccurate for the sake of the trial. This inaccuracy is not a concern for this challenge. However, if you wish to display exact scores, you will need to contact the sales department or look elsewhere.

Basic Requirements:

Your NBA Scores app should…

  • Connect to the API to retrieve team and games data
  • Display the games with the scores from yesterday (or however many days in the past as you wish), as well as team logos for the pair of teams in every game
  • Display future games scheduled for today and tomorrow (or however many days in the future as you wish), as well as team logos for the pair of teams in every game

Bonus specifications:

As a bonus, your app can…

  • Display up-to-date standings in a separate view for both Eastern and Western Conference

Further challenges:

To really spice things up, we challenge your app to…

  • Have a ‘favourite’ teams functionality
    • The user can select a team to be their favourite team
    • If the team played or are playing on a given day, that team’s game should be highlighted and displayed first

A preview of our solution:

  • Video (App and video made by Jesse on our team)
  • We’ll post the code to own solution on Aug 1!

What is this?

Given the set of requirements below, challenge yourself to build the app!

The exercise of thinking for yourself and coming up with your own solution is a valuable learning opportunity.

How do I participate?

Simply create your own topic in the Journal section of our forum and update it with your progress as you build your app. If you already have your own Journal thread, you can continue using that.

When your app is completed, record a video to show it in action. You can record a video directly from your iOS simulator by pressing CMD+R.

We’ll combine the videos together to make a showcase reel. Upload your video here:

What are the dates?

The challenge will run from July 1 to July 31.

What do I win?

Just by participating, you’ll learn a lot and earn a nifty new forum badge:

NBA Stats App Badge v3

At the end of the challenge, we’ll make our code available (in case you want to compare solutions) and I also want to make a video reel of all your creations!

What if I’m a beginner?

This challenge is meant for students who have already learned the basics since it’s going to require you to draw on prior experience.

If you’re just starting out, I recommend that you check out these resources instead to get up to speed and then you can participate in next month’s app challenge.

Can I do the challenge after the deadline?

Yes! It’ll always be available for you to attempt and earn the badge in the future.

However, if you’re ready to participate now, you’ll get to experience it with a whole group of people also attempting it at the same time!


Please don’t forget to post the solution :wink: I want to compare your solution against my solution to see where I can reduce my code.


Hey CodeCrew!

Thank you to everyone who participated last month in our Sports Stats App Challenge :slight_smile:

To redeem your badge, please fill out this form:

(Remember, you can participate any time and still claim the badge)

I hope that it proved to be an interesting app to construct. To take a look at our solution, check out the project here:

We’re currently compiling your videos for the showcase reel and we’re preparing the next community app challenge for mid August.

Thank you!


Hello Chris, I hope you are doing well! I am writing here because for 4 days now I posted a problem I am facing on the Challenge lesson 15 Module 4, but since no help from any assistant while I see other problems posted by other learners of this platform are taken into consideration by many assistants, I don’t know what’s wrong, am I the one who doesn’t know how or where to post concerns? how can i continue if i don’t have a solid foundation and a better understanding of some issues? Thank you for answering me .


Something to keep in mind is that the majority of the Moderators and helpers on this community have regular 9 to 5 jobs so for the most part answering posts and providing assistance is something we do in our spare time.

If your post is not answered it may be for a number of reasons and that can include:

  • our own understanding of the question or lack thereof,
  • we are busy doing our own thing,
  • we are doing some research in order to answer the question

So be patient, we are all volunteers and will help where we can.

Thank you and congratulations to everyone who participated!

Check out all the apps in the showcase reel below:

For people who have recently joined us: you can still participate in this challenge and claim the forum badge! If you submit a video of your challenge app, we’ll still include it in the next showcase reel.



Awesome! Really interesting of the different designs, though the principal structure is the same.

Looking forward to the next challenge :slight_smile:

Wow this was my first challenge that i took serious and really learned alot.

I really got stuck on the segmented picker part and couldnt figure out how to display a custom View for each date. The solutions app was really helpful in helping me figure it out.

By the way, if someone downloads the app and wants to use dummy dates
i practiced some of what i learned and created a magical date 6 mo ago

 let sixMonthsAgo = DateComponents(timeZone: TimeZone(identifier: "America/New_York"), year: 2021, month: 2, day: 9)
  let userDesiredDate6MoAgo = Calendar(identifier: .gregorian).date(from: sixMonthsAgo)

then set the date value to

date = userDesiredDate6MoAgo!

will be easier to play around once basketball season starts

One other thing…i noticed in the sample app the dataModels (Game, Schedule) were conforming to “ObservableObject”
What is the benefit of that?

looking forward to the next challenge!

Go Clippers!

Very happy to be one of the featured apps in the video but still didn’t get my nba app badge. Any helpers?
I’m sure I put the right e-mail when I sent the video. But if not, I can try to send it again.

1 Like

Ciao, Carlos! Congrats for completing the challenge. Keep on going! And yup, I just awarded your badge. Grazie!

1 Like