Day 89
Day 89 ๊ด๋ จ
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
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.
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:
- 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.
- Use a combination of
move(to:)
andaddLine(to:)
to create and stroke a path that spells โTWINโ on the canvas. - 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.
Wrap up - Additional
Thatโs another fun game complete, and one with lots of expansion possibilities โ make sure you share your progress online!