Mark Struzinski
Thoughts on software development and technology
Using Coordinator With Scene Delegates
Sun Aug 25 2019 | Mark StruzinskiI have switched to using the coordinator pattern with any new work I do. I was resistant to break away from Storyboards using segues at first. But over the years I’ve learned any app of medium to large complexity breaks down under the weight of segues after a certain point.
I’ve been playing around with the new iOS 13 APIs a bit, and I was trying to create a new UIKit app using the coordinator pattern. The new UIKit template assumes the use of scenes instead of a single window. The single view app template breaks away from the standard app delegate and uses the new scene APIs. File ➤ New Project now creates a UISceneDelegate and wires everything up for you.
iOS Universal Links Tips
Thu Aug 16 2018 | Mark StruzinskiWe have been expanding our use of universal links lately. While links are complicated and difficult to set up, once they are configured properly, making incremental updates to them is pretty trivial, and they are a great feature. We have implemented a few deep links so far. We also use the site association file to validate site ownership for password autofill. We will soon be using the site association file for implementing the Shared Web Credentials feature as well.
Here are a few lessons learned along the way:
- Always plan on testing against a domain hosted over SSL with an official signed certificate (self-signed will not work)
- Typing a URL directly into Mobile Safari will not trigger the universal link. You’ll need to get it into an external source and select it from there.
Alfred Diffs With Kaleidoscope
Tue Jul 31 2018 | Mark StruzinskiI’ve recently started trying to identify bottlenecks in my workflow and take a little bit of time to see if I can make things a little easier with automation. It’s always a tradeoff between the time spent automating something and actually getting work done. In this case, I can say the balance tipped way over to the side of saving me a great amount of time.
Expanding on Generic Json Parsing
Thu Apr 12 2018 | Mark StruzinskiExpanded JSON Parsing with Generics
In the last post, I went over a very simple way to use generics when parsing a small object that had a value type determined at runtime. Today, I’d like to expand on that concept a bit and show how I implemented that concept into a parent struct that contained arrays of this object.
Generic JSON Parsing
Mon Mar 26 2018 | Mark StruzinskiI have been working a lot in model layers lately. One benefit of this has been converting our older JSON parsing code over to using Swift 4’s enhanced JSON parsing capabilities. Using the Codable
protocol has allowed me to delete hundreds of lines of boilerplate and streamline a lot of repetitive and error-prone code.
A lot of this work is pretty straightforward, where we are mapping properties to types, and sometimes including a CodingKey
protocol object to ensure property names are mapped to JSON keys correctly. However, I ran across one interesting scenario and I wanted to share my solution to it.
I’ll present a simple generic object and its associated json in this post, and then show how that expanded out to a pretty nice solution once that smaller object became part of the full service in a future post.