Skip to main content

Day 89

About 3 minSwiftcrashcoursepaul-hudsonswifthacking-with-swiftxcodeappstore

Day 89 ๊ด€๋ จ


100 Days of Swift - Day 89

Project 27, part two

Project 27, part two

Swift was first introduced way back in 2014, at Appleโ€™s annual Worldwide Developer Conference (WWDC). When showing off the new language, Chris Lattner (the creator of Swift) took to the stage and immediately did something that was revolutionary for us โ€“ at least back then: he created a Swift playground in Xcode.

You see, before then we were using Objective-C, which was a language that had no concept of interactive code playback, which meant we didnโ€™t have the ability to tinker quickly with our code to try out experiments.

In fact, for some years all Swift playgrounds came with a quote at the top that set the tone perfectly: โ€œPlayground โ€“ noun: a place where people can play.โ€ That didnโ€™t mean the code we write in playgrounds isnโ€™t important or serious, just that itโ€™s built in an environment where tinkering is actively encouraged โ€“ we can make one small change and see it take effect immediately.

While learning Core Graphics and Core Animation, we built a sandbox where thereโ€™s no clutter and no complexity โ€“ itโ€™s just a simple UI that lets us try things out freely, and without worry of breaking any important code. So, I hope todayโ€™s challenges will encourage you to try something new with what youโ€™ve learned. Try various approaches to the same problem, try using code completion to explore, and just feel free to make mistakes โ€“ because each mistake will teach you something new, and help take you closer to your goal.

Today you should work through the wrap up chapter for project 27, complete its review, then work through all three of its challenges.

Wrap up

Wrap up
100 Days of Swift - Day 89 - Wrap up

Wrap up

I could easily have written twice as much about Core Graphics, because it's capable of some extraordinary effects. Clipping paths, gradients, blend modes and more are just a few lines of code away, so there really is no excuse not to give them a try! And if you don't give it a try yourself, don't worry: we'll be drawing with Core Graphics in project 29, so you can't avoid it.

This project has given you a sandbox where you can play around with various Core Graphics techniques easily, so I would highly encourage you to spend more time tinkering with the code in your project. There are some suggested challenges below, but you can also use code completion to try new functions, change my values to others to see what happens, and so on. Playing with code like this can help you to discover new functionality, and will also help you remember more later. Have fun!

Review what you learned

Anyone can sit through a tutorial, but it takes actual work to remember what was taught. Itโ€™s my job to make sure you take as much from these tutorials as possible, so Iโ€™ve prepared a short review to help you check your learning.

Click here to review what you learned in project 27.open in new window

Challenge

One of the best ways to learn is to write your own code as often as possible, so here are three ways you should try your new knowledge to make sure you fully understand whatโ€™s going on:

  1. Pick any emoji and try creating it using Core Graphics. You should find some easy enough, but for a harder challenge you could also try something like the star emoji.
  2. Use a combination of move(to:) and addLine(to:) to create and stroke a path that spells โ€œTWINโ€ on the canvas.
  3. Go back to project 3 and change the way the selected image is shared so that it has some rendered text on top saying โ€œFrom Storm Viewerโ€. This means reading the size property of the original image, creating a new canvas at that size, drawing the image in, then adding your text on top.

Thatโ€™s another fun game complete, and one with lots of expansion possibilities โ€“ make sure you share your progress online!


์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.