NEW: Learn SwiftData for free with my all-new book! >>

DAY 82

Project 16, part 4

It’s time to start putting your new techniques into action, and this project is so big it takes three implementation days to complete. But this is day 82, so you’ve shown you have the willpower to make amazing things – as the aviation pioneer Amelia Earhart once said, “the most difficult thing is the decision to act, the rest is merely tenacity.”

There are lots of interesting techniques covered today, but I’ll also briefly be introducing you to the filter() method of sequences. We looked at map() previously, which is used to transform objects in a sequence from one thing into another, and filter works in a similar way: it’s a method on sequences, it accepts a closure that gets run on each element individually, and it returns a new array.

The difference is that the closure we pass filter() is used as a predicate – a test that is used to determine whether each element should be included in the returned array. If the test returns true for an element then it gets included, otherwise it will be skipped over.

Both filter() and map() belong to a category called functional programming. This is covered in great detail in my book Pro Swift, but the abridged definition is that our code tells the computer what to do not how to do it. In the case of map() we’re saying “go over every item in this array, transform it using this closure, and put the results back into a new array”, but it’s down to Swift to figure out how to make that happen. For filter() we’re doing much the same: “go over every item in this array, run this test on each one, and put any that pass the test into a new array.”

Anyway, enough chat – you have lots to get through today, so let’s get on to the code!

Today you have three topics to work through, in which you’ll learn about tab views, environment objects, filter(), and more.

Share your progress!

If you use Twitter, the button below will prepare a tweet saying you completed today, along with a celebratory graphic, the URL to this page, and the challenge hashtag. Don't worry – it won't be sent until you confirm on Twitter!

Need help? Tweet me @twostraws!


Hacking with Swift is sponsored by Swiftable

SPONSORED An iOS conference hosted in Buenos Aires, Argentina – join us for the third edition from November 29th to December 1st!

Get your ticket

Sponsor Hacking with Swift and reach the world's largest Swift community!

100 Days of SwiftUI

The 100 Days of SwiftUI is a free collection of videos, tutorials, tests, and more to help you learn SwiftUI faster. Click here to learn more, or watch the video below.

Back to 100 Days of SwiftUI

Unknown user

You are not logged in

Log in or create account

Link copied to your pasteboard.