S Link
iOS Development with Swift Training
Join us for our intense one-week training classes with real professionals and college professors. This is an exclusive opportunity to be trained in-person by professional developers with current experience working on new iOS apps for Disney, McDonald's, Zumba, and more! Upcoming classes in Denver, CO and Daytona Beach, FL. Only 6 spots left for our next class. Reserve your spot now!
try! Swift NYC
There are still a few more tickets left! Sign up for an invite to join the Swift Community Celebration in New York City π½π₯π on September 1st and 2nd. Spectacular speakers, amazing community, delicious food!
Swift Around the Web
Implicitly vs Force Unwrapping Swift Optionals
Good distinction between Implicitly Unwrapped Optionals (IUO) and Force Unwrapped ones. I use the two terms interchangeably as well! The only part I don't agree on is that IUOs are always bad - I prefer to use them for IBOutlets. Here is a good guide to follow.
Swift Protocols and the Law of Unintended Consequences
Good catch on protocols and unintended naming collisions. Definitely something to consider π¬
Coding
Enum-based Queue Factory with GCD
Love the simple end-result! Another great example of how to improve on the legacy frameworks we have to work with in Swift:
Queue.database.async {
// Do my thread-based work
}
Queue.transform.async {
// Do my thread-based work
}
Queue.network.async {
// Do my thread-based work
}
iOS Security 101
I tried out Keepsafe once, and thought it was hilarious that they had a decoy passcode feature. So your supposedly jealous significant other can enter an easy passcode (like year of birth) and get into the app. They'll think they cracked it, see your innocent pictures, and don't try any more. Pretty clever!
But seriously, great tips for at least starting to make sure your user's sensitive data is secure. If you'd like to learn more about security, I absolutely love @vixentael's super fun and accessible presentations. She'll be giving one at try! Swift NYC :)
Apple News
Xcode 8 beta 5
Progress π
"Interface Builder is much less likely to modify documents on open, prior to any user events or manually saving."
Other Cool Stuff
Videos
Managing Consistency of Immutable Models
We all know that in Swift, Immutability is key. But since we are writing real-world application, we often need consistency across our immutable models that we are used to having with reference types. Fascinating talk on how to combine the perks of immutability with consistency across data - all while avoiding the issues of Core Data.
Swift Evolution
Dear Erica: Taking the NS off
Great explanation of why Foundation classes are losing the NS prefix, including the full list of effected classes here.
"Swift has a compelling interest in creating a core library suite to support common Swift design patterns... To provide this universal support, the Swift Programming Language requires the creation of a family of libraries that will ship with the compiler. This core functionality extends beyond the existing Swift Standard Library and is tentatively called the Swift Core Libraries."
Swift Code
- Date+Utilities.swift - Practical real-world dates. Blog post here
- PixPic - PixPic, a Photo Editing App
- MYTableViewIndex - A pixel perfect replacement for UITableView section index, written in Swift
- PrismaSimpleImagePicker - This is a copy of the Prisma APP. Reproduce Prisma custom camera, image picker and picture editor
- KZFileWatchers - A micro-framework for observing file changes, both local and remote. Helpful in building developer tools.
- JSONCast - Easily create classes from parsed JSON and conform to NSCopying and NSEncoding. Blog post here
Business
All the Leaves are Brown and the Sky is Gray
It's easy to get into fights about the details on how to implement code today, but it's just as important to step back and realize that the code we're zealously fighting for today will likely not even be there a few months from now. Even if the project doesn't fail out right, the code will eventually be refactored and rewritten. What will remain is your relationships with the people you wrote the code with:
"We build with bits not bricks. Architects and civil engineers leave their legacy on the skyline. In software ours is mainly in the things we learned, and our relationships with each other. Are you better, smarter, kinder, because of the people you worked with? Can any of them say that about you? From every failed project I worked on there is someone, often more than one, but at least one, who my life has been dramatically richer for having known and worked with. Maybe that is as much as I can hope for. Maybe that is a good run."
On Open Source
moment().endOf(βtermβ)
A good reminder to be extra nice in open source and point out positive things in addition to the negative...
"Seeing bugs and issues continue to roll in and being mentally unable to address them has led to feelings of failure and depression. When looking at the moment project, I could only see the negatives. The bugs and misnomers and mistakes I had made. It let to a cycle of being too depressed to contribute, which led to being depressed because I wasnβt contributing."
SPM
Swift Thoughts
Last week, I finally got around to experimenting with iCloud. And it wasn't that bad... although I have a small project that doesn't require using the private databases. The nice part is that it's easy to subscribe to granular data change notifications. Still looking forward to experimenting with it more to see where it can fit into my bigger projects.