Posts tagged #swift
uniffi-swift-async-example: How to use uniffi-swift with async/await
Quick example project to show how to use Rust uniffi-swift with async/await to share code between cross platform apps.
Why I don't like Xcode
I realized I have to re-iterate my position on Xcode. So here's a brief note about why I don't like it.
Sharing Code across platforms with Rust
A note on my experience of sharing code across platforms with Rust and Swift
Belum: Dependency Injection for Swift
A lightweight, experimental, type-safe dependency injection container (cough) for Swift
New Contravariance Episode: Index out of Bounds
(For now) the latest episode, reminiscing the times of the podcast, and index woes.
New Contravariance Episode: Because 404 Not Found
In which we talk about build systems, dependency graphs, conferences (who would've guessed), and XCTest.
SwfitUI and Catalyst
After using both technologies for a while, here's my current opinion on them.
New Contravariance Episode: A Surprise Guest
In this episode, we meet a 'surprise' guest and talk about the last couple of months and what it is like to work at a big company (... called Apple).
New Contravariance Episode: Platform Teams
In this episode we discuss platform teams. What are they, when do you need them, how do they work. With Special Guest Patrick Balestra from Spotify.
New Contravariance Episode: Hello Management, Goodbye Coding
In this episode we discuss the pros and cons of switching to a management position. What is it like, can you still code, and how should you go about it. We discuss this topic with Cate Huston and Tammo Freese. Also: Great recommendations and raccoons in the show notes!
New Contravariance Episode: A Jolly SwiftUI Christmas Special
In this episode, we initially discuss SwitUI and Apple documentation, but then dive off into a random discussion about pets, time travel, fireworks, and much more
New Contravariance Episode: A Special Episode Looking Forward
In which Bas announces leaving the podcast (for now), and Bene upgrades his setup. We also take a look back at all the episodes we've recorded in the last three years.
New Contravariance Episode: iPhone 12 & Apple Silicon
Where we talk about Apple's October event, and the announced iPhone 12 and HomePod mini, as well as Apple Silicon.
New Contravariance Episode: Bas leaves XING
Where we talk about Swift for Windows, GUI development, ARM Macs, side projects and the recent Apple Event
New Contravariance Episode: Windows, Apple Event and ARM Macs
Where we talk about Swift for Windows, GUI development, ARM Macs, side projects and the recent Apple Event
New Contravariance Episode: The History of NSSpain
Where we talk about the history of NSSpain, looking for new jobs, and Bas makes an announcement.
New Contravariance Episode: iOS is Hard
Where we talk about iOS development being not so easy, blogging, and in-app purchases.
New Contravariance Episode: CodeConf
Where Pawel introduces his app CodeConf and we talk about how he managed to work on this side project.
New Contravariance Episode: WWDC 2020
Where Bas has moved to Spain and Benedikt has been spending time at his mom's... and discussing WWDC.
A touch of Combine
A simple way of introducing Combine into your codebase
The Hyperdeck Tech Stack
A brief overview of the hyperdeck tech stack, including SwiftUI & Rust
Hyperdeck Beta 2
Beta 2 of hyperdeck just launched. Including a first step towards interactive presentations.
New Contravariance Episode: Revealing Benedikt's Side Project
Where Benedikt finally reveals the application he's been working on in the last months.
New Contravariance Episode: The Star Wars Babka Computer Delivery
Where Benedikt is anticipating a new computer, and Bas is anticipating remote conferences. And Star Wars is anticipating Bas... and chocolate chip babka!
New Contravariance Episode: Clearly my home screen is better than yours
In which we talk about all things remote, like organizing a meetup, conference, or work. We also take a look at our perfectly normal homescreens. Bene is considering building a silent computer. All this with Pedro Carrasco!
New Contravariance Episode: What is a CNAME Again?
We talk about open source projects and contributing to them. Where Bas forgets what a CNAME is, and Benedikt has to look it up for him.
New Contravariance Episode: Chocolate, Time, and Swift Scripts. Your Move, Elon.
Benedikt asks himself 'what door?' watching Westworld, and Bas has a surprise!
New Contravariance Episode: Ink, Plot, Publish and More - With Special Guest John 'Paul Hudson' Sundell
Where Bas remembers his open source projects and previous talks, Benedikt finally shares more on his secret project... and sets someone up for an interesting challenge, our dear guest, John 'Paul Hudson' Sundell.
New Contravariance Episode: Live from CocoaHeads Hamburg
Where Bas still has no reason to buy new hardware, and Benedikt learned more about unicode than he wanted to. And both have an exciting year coming up. Live from CocoaHeads Hamburg on January 9, 2020.
New Contravariance Episode: Donny Wals' Advent of Swift, Disney+ and other things - A special Christmas Episode
We talk with Donny Wals on his Advent of Swift project, Disney+, working on an SDK and more.
New Contravariance Episode: MacBooks, AirPods Pro, GitHub Mobile & SwiftUI
We're talking about the new 16' MacBook, the new AirPods Pro, GitHub's new Mobile app, SwiftUI learnings and more.
New Contravariance Episode: SwiftConf, NSSpain, mobiconf, and FrenchKit - With Special Guest Antoine van der Lee
We're giving an overview over some of Europe's awesome iOS conferences in the last months.
New Contravariance Episode: Our thoughts on Xcode 11
We're talking about our initial Xcode 11 thoughts as well as the joy of just using Apple's latest tech in a brand new project.
New Contravariance Episode: Implementing SwiftUI on top of UIKit in iOS 12
We're talking about AwfulUI, a project which aims to re-implement the syntax of SwiftUI on top of UIKit in order to support iOS 12 or lower
New Contravariance Episode: Hackintoshes, new Apple Hardware, and an explanation of why VIM is cool
In which Benedikt explains Vim to Bas, new Apple hardware apparently is(n't) interesting, and interesting projects.
New Contravariance Episode: The Static Catalyst iPad Window Refactoring Project Conference
We talk about the Swift Island and Swift Aveiro conferences, static site generators and puzzles in our personal projects, iPadOS windowing support, Catalyst woes, refactoring tools and Swift UI guides
New Contravariance Episode: WWDC: Better Late Than Never
We start talking about WWDC announcements, notably SwiftUI and iPadOS
New Contravariance Episode: Not Work
We talk about our interests outside of work, like watchmaking, electronic music, coffee and chocolate.
New Contravariance Episode: WWDC Tips and Rumors
Benedikt and Bas talk about the upcoming WWDC, how to make the most out of the conference, and what to expect. Also, career changes!
New Contravariance Episode: let substring = string[string.index(string.startIndex, offsetBy: 5) ..< string.index(string.startIndex, offsetBy: 15)]
try! Swift Tokyo, Swift 5, Strings in Swift, Apple Subscriptions, and picks of the week
New Contravariance Episode: Technical Writing
On technical writing and editing, finding unused code, and more.
Using protocol composition to untangle your codebase
A simple way to untangle your codebase via protocols. Particularly useful for project configurations.
New Contravariance Episode: Putting Pieces in Place
Solving puzzles, algorithms, macros, and Swift 5.
Cleaner Classes with Structs and Tuples
An easy way to add more structure to your classes by leveraging structs and enums
New Contravariance Episode: application(_:willContinueUserActivityWithType:)
Talking about more conferences (because of course), iPad, and cool projects we've seen on the web.
Mobile Language Benchmarks
I wrote this benchmark for a talk at Mobilization Conf 2018. It tries to compare modern languages aspiring to become go-to solutions for sharing code between iOS, Android and possibly other targets. The benchmark implements several short problems in Swift, Rust and Kotlin Native, C++ and C.
New Contravariance Episode: Xcode 10.2 beta 1 and the Swift Community Podcast
Starting fresh into the new year with a discussion on Xcode 10.2 beta 1, the Swift Community Podcast, and more
New Contravariance Episode: Refactoring Across a Large Code Base
A discussion on how we recently refactored our networking stack at XING, from planning to implementation. And emoji.
New Contravariance Episode: Paul 'John Sundell' Hudson
An interview with Paul Hudson about his career, talking about journalism, books, Venn diagrams, conference speaking and diversity.
New Contravariance Episode: Conferences
A general discussion around iOS conferences: Why you should go there, what you should do there, and what to do if you want to give a talk. Also a short report on two conferences we just attended: NSSpain and Try Swift.
New Contravariance Episode: A Philosophical Treatise on the Definition of Pro
Bas and Benedikt discuss what a 'Pro' device represents at Apple, what a Mac Mini Pro could be, and why the Touchbar should not be in a Pro device.
New Contravariance Episode: The Most Awful Static Site Engine
Where Bas and Benedikt discuss iPad, our awful static site engine, Swift scripting, Strings in Swift and Zelda.
New Contravariance Episode: applicationDidFinishLaunching:
Where Bas and Benedikt discuss MacBook Keyboards, Swift's eighth birthday, Swift conferences, Mac Development, and Peanut-Butter Pizza.
Expanding Swift's Reach
How can we as a community help expanding the reach of Swift
Taming SourceKitService for Less Xcode Memory Consumption
Taming SourceKitService for less Xcode memory consumption
Value Types for Simple Difference Detection
Utilize value types to quickly determine a differences between two sets of data
Data in Swift 3 parsing a Doom WAD File
Swift 3 replaces NSData with the Data value type. Implement a Doom Wad file parser with the new Data type to understand the differences.
SwiftWatch
Introducing SwiftWatch, a place to share links to interesting Swift resources like tutorials, blog posts, GitHub projects or more.
Raw value initializers for enums with associated types
Once you add associated types to an enum the task of creating instances quickly becomes very repetitive. See how a simple trick can greatly simplify this
Force optionals in multi-unwrapped 'guard let' or 'if let'
Mixing optional and non-optional functions in a guard is impossible and requires breaking up the lines. Here's a neat solution on how to circumvent this.
Three tips for concise Swift using the Guard statement
Three quick examples for how you can use guard to write shorter and simpler code
Hirundo: Comfortably follow Swift Mailing Lists on OSX
Hirundo is a Mac App for reading the Swift mailing lists like Swift-Evolution or Swift-Dev. You can even bookmark messages of threads because they contain important information
Swift Package Manager: Create and Use a X11 package on Linux
A tutorial on how to create a Swift Package for X11 on Linux and use it to write a simple X11 app
Getting your iPhone 6s Chip Foundry from Swift
This quickly explains how you use private apis from Swift in order to figure out the manufacturer of your fancy new iPhone 6S CPU
Optional throw via try? in Swift 2
Swift 2.0 includes a new way of handling exceptions via the try? keyword. This is a quick post to explain the basics, and why this is cool.
CoreValue: Lightweight Framework for using Core Data with Value Types
CoreValue is a lightweight wrapper framework around Core Data. It takes care of boxing value types into Core Data objects and unboxing Core Data objects into value types. It also contains simple abstractions for easy querying, updating, saving, and deleting.
Using try / catch in Swift with asynchronous closures
Swift's `try` / `catch` error handling is great. However, you can't use it in an async context. This article briefly explains which options you have if you intend to use Error Handling asynchronously
Generic method overloading by protocol in Swift
See how you can even overload methods in a generic manner by using protocols
Understanding the powerful Switch statement in Swift
Swift optionals made simple
With Swift, Apple introduced several new programming languages features to iOS and Mac developers. One of them are Optionals. This is a simple introduction into Optionals that glosses over details to make it more approachable.
Using @autoclosure to write a Swift syntax extension
Swift's @autoclosure allows to extend the Swift syntax in fantastic ways. Observe how we re-implement the `cond` function from Lisp