iOS Weekly Minute - March 30, 2018

Back on track this week with some small refinements. Enjoy!

Big Announcements

Apple Education Event

Apple' Spring Event was held in a Chicago school this week, with a focus on all things education. Nothing much groundbreaking, really. A new, cheaper, and upgraded 9.7" iPad with support for the Apple Pencil, a new and cheaper Crayon pencil from Logitech, some software updates to the iWork suite, and the Schoolwork app for teachers. Sadly, the Crayon appears to only be available to the education market, and will not be available for general retail.

Apple also announced ClassKit, which will be released in Xcode 9.4 supporting iOS 11.4. From the small amount of information available about ClassKit, it appears to allow app integration with the newly announced Schoolwork app.

Articles I'm Reading

Google v. Oracle Ruling

In somewhat related but rather depressing news is that Oracle has won its appeal over Google in the landmark case concerning Oracle's rights over the Java API. Google's push for Kotlin is perhaps more important than ever now, and Microsoft's strategy to abandon Java for C# long ago has paid off quite nicely. The crux of the case revolves around copyrights on interfaces (or APIs), and whether or not an implementation of an interface constitutes "fair use" or not.

Show and Tell

After the perceived letdown of the Apple education event this week, Dim Sum Thinking writes a quite elegant and persuasive essay titled Show and Tell. The essay's about the power of shipping software, and the power that is releasing a personal creation into the real world, no matter how trivial or how mundane it is.

Swift Tip: Generic Typealiases and Using Tuples as Lightweight Types

I don't know how John Sundell produces so much quality output, but I hope he keeps doing it! This week's tip is a powerful little trick that uses tuples as lightweight types along with a generic typealias.

typealias Pair<T> = (T, T)

func unionize(workers: Pair<Workers>) -> Union { ... }
func pair(programmers: Pair<Programmer>) { ... }

John's post goes into much more detail around tuples, and it gets pretty mind-bending, but in general it's nice to be reminded of a very useful language feature.

Videos I'm Watching

Kotlin For Swift Developers

Continuing on the try! Swift bandwagon this week is Ellen Shapiro's talk on Kotlin For Swift Developers. Kotlin is becoming more front and center in the Android world (see the above Oracle case for possible reasons), just like Swift has become for Apple software. This video is a great overview of Kotlin from a Swift perspective, compares and contrasts the languages, and in general helps Swift developers get more familiar with Kotlin so we can have better discourse with our Android counterparts. I rather like Kotlin, and there's certainly some things Swift could learn from it.

And that's all folks! Thanks for making it this far, and stay tuned for next week! I appreciate feedback, so if ya'll got some thoughts, get @me or let me know in the comments.

Ben Snider

Benjamin Snider

Hi! 👋 I'm Ben and I like to write about technical and nerdy things. Historically about Swift and iOS. But, I've recently started a masters program in computer science (Georgia Tech's OMSCS), so the content here may pivot as such.  Get @me!