The Everyday Notes

A collection of thoughts on tech, fitness, hobbies, and the inspirations that shape my day.

100 Days of SwiftUI - Day 4

Hello! And here we are at day 4 of the hackingwithswift.com 100 Days of SwiftUI course. As always, if you need to catch up with the rest of the posts, you can do so over here: https://blog.grayw.co.uk/tag/100daysofswiftui/ - If you're enjoying this series of posts, don't forget to follow the RSS feed.

Workspace

The workspace for today will be the iPad with Swift Playgrounds 4. I'm practically fully charged, so we'll see how this goes.

How to use type annotations

For day 4, we're going to be looking at the last part of complex data types. This will be type annotations.

When should type annotations be used:

  1. When Swift can't figure out what type should be used
  2. You want Swift to use a different type from the default
  3. You don't want to assign a value yet

Why use type inference:

  1. Can make code shorter and easier to read
  2. Change the type quickly, and easily by changing the initial value

Type Inference - infers that type is string/int/double/bool because that's what the initial value is

Summary: Complex Data

// Swift must always know what data type your constants and variables contain (type safe language)

// Variables & Constants
let surname: String = "Lasso"
let score: Double = 0 // If this used type inference, it would have been an Int
var isAuthenticated: Bool = false

let userName: String
userName = "@gray"

// Arrays
var albums: [String] = ["Red", "Fearless"]
var teams: [String] = [String]()
var cities: [String] = []
var clues = [String]()

// Dictionaries
var fosstodonUser: [String: String] = ["id": "@gray"]
var hrData: [Int: String] = [123456: "employeeName"]

// Sets
var fruits: Set<String> = Set([
    "Banana",
    "Apple",
    "Peach",
    "Orange"
])

// enums 
enum UiStyle {
    case light, dark, system
}

var style = UiStyle.dark
style = .system

Checkpoint 2

For the second checkpoint, the task was to create an array, and then print the number of items in that array. You also then need to print the number of unique items for that array.

My solution:

let displayNames = ["Batman", "TheRealJoker", "TheRealJoker", "Joker", "Penguin" ]
let numberOfUsers = displayNames.count
print(numberOfUsers)

let uniqueUsers = Set(displayNames)
print(uniqueUsers)

The first part to create the array and the count was fine. However, the unique part I couldn't think how to do straight away. So, I did a little search and got this:

Of course, Sets can't contain duplicate values. I didn't need to create it as a new array, so I left that part off.

Summary

Well, that's the end of day 4. I feel like I should have been able to get the unique items count thing without having to search, but there you go.

I seem to struggle with this single topic being split across multiple days. By the time I've got here, I'm forgetting what was said on day 1.

⬅ Previous post
100 Days of SwiftUI - Day 3

Next post ➡
100 Days of SwiftUI - Day 5