Day 69
Day 69 ๊ด๋ จ
Project 19, part three
Youโve modified Safari! Appleโs web browser has been there since the very first iPhone, and now youโve hooked your own code directly into it. Youโll be taking on a few challenges today to encourage you to think of ways to use your new-found power, but I hope you can immediately realize the potential here โ even a small improvement can make a difference to millions of people.
I know this project was hard, but I have some bad news for you: tomorrowโs game is also hard. But as Kimberly Guilfoyle said, โthrough determination and self-focus and discipline, you can accomplish anything.โ
Stick with it! Things get easier after the next game, but your skillset continues to expand rapidly.
Today you should work through the wrap up chapter for project 19, complete its review, then work through all three of its challenges.
Wrap up
I'll tell you what: I'm feeling tired and I didn't even have to learn anything to write this project โ I can't imagine how tired you are! But please don't be too disheartened: this project builds the the bridge between JavaScript and Swift, and now that bridge is built you can add your own Swift functionality on top.
Some of the code isn't pleasant to work with, and certainly I wish iOS would just figure out text view insets automatically for keyboards, but you're through it now so your project is done. Even though this was a hard project, I did cut quite a few corners to make the code as easy as possible, so again I want to encourage you to try creating another extension and see how Apple's example code is different from mine.
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 19.
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:
- Add a bar button item that lets users select from a handful of prewritten example scripts, shown using a
UIAlertController
โ at the very least your list should include the example we used in this project. - You're already receiving the URL of the site the user is on, so use
UserDefaults
to save the user's JavaScript for each site. You should convert the URL to aURL
object in order to use itshost
property. - For something bigger, let users name their scripts, then select one to load using a
UITableView
.
Wrap up - Additional
Thatโs another project finished, and one that gives you the foundations for some major new projects of your own โ share your progress with the world!