I’ve been trying to recreate a typical nested scrolling content list UI. I want to build a vertical scrolling list of horizontally scrolling lists, similar to the App Store (seen below).

Image for post
Image for post

When nesting ScrollViews you will see strange errors like “Reparenting nested renderer host — preferences may be missing.” that I discussed more here. You need to constrain the ScrollView to a specific frame or layout dimension to avoid the old “Scroll View has ambiguous scrollable content height/width” error from UIScrollView.

Below, you can see that I constrain the inner horizontal ScrollView to a width (300) larger than its’ parent vertical ScrollView (200). This ensures that it will scroll horizontally.

Image for post
Image for post

I have not yet figured how to constrain a ScrollView using the .relativeSize options found here:

Image for post
Image for post

If anyone can find a better way to build something similar to a UICollectionViewFlowLayout using SwiftUI let me know on twitter!

While playing around with the new SwiftUI framework introduced at WWDC 2019 recently, I’ve found myself running into this error over and over :

Reparenting nested renderer host — preferences may be missing. at /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-5.104/Core/ViewGraph.swift:685

While building more complex layouts in SwiftUI, I’m seeing this error repeated over and over in the console:

Image for post
Image for post

I’ve been able to reliably produce this error message and break the SwiftUI rendering in a Playground when nesting a ScrollView inside another ScrollView like this:

I don’t fully understand the error, but I’m starting to. …

iPhone X: The first true @3x device

One of the most interesting things to note though is the new 5.8 inch “Super-Retina” display. It has a screen resolution of 1125px × 2436px.

Image for post
Image for post

Design for iPhone X

Designing for this beautiful machine will bring some new challenges, but also some new design opportunities.

Image for post
Image for post

iPhone X: Dealing with Home Indicator

  • Try to avoid interactive controls near the home indicator, especially those driven via gesture recognizers.
Image for post
Image for post

What other questions do you have about the new features of the iPhone X? Our Medium collection is looking for authors and editors to contribute! Hit me up at Christopher Truman and on Twitter @iAmChrisTruman

To help myself and our community establish good design patterns, I am trying to share my thought process every time I build something in Swift for the first time. In my current project, we need to build something similar to a UIPageControl, but with icons. It will control a UIScrollView and advance to a certain ‘page’ in the scroll view. My design goal is to use Enums to represent the different icons AND to hide the ObjC #selector() implementation details.

Here is my first take on this:

PageControl is a Class that basically wraps a UIStackView full of UIButtons. It inherits from NSObject because it acts as a target for the UIButtons. …

I have recently started development on a completely new project and am trying to establish some new design patterns as I jump into Swift 3. One pattern that I am starting to use is Request & Response Models. That is the fancy name I came up with for Structs that document the backend API. Lets look at an example:

We have a protocol Request that specifies basically everything you want to know about making a request to an API.

  • The path to append to the base URL (“auth” in this case)
  • The HTTP Method (GET, POST, PUT, DELETE, etc.)
  • The parameters the endpoint…

Now, this is a story all about how. My life got flipped-turned upside down. A crazy journey from $8/hour to $100k+/yr.

Image for post
Image for post

I am far from a genius and I am not necessarily a “go-getter” who is “crushing it” everyday. I spent high school doing musical theater and spending time with friends, and spent college trying to figure out what I wanted to do in my career. I found myself barely making it through my second year of college with a ton of debt and no foreseeable career.

I must preface this with the fact that I had always been interested in technology and had a little experience previously. I loved video games and had spent much of my middle school years unsuccessfully trying to write code for my GameBoy Advance and Nintendo DS. I learned HTML through a community college class and began building websites for friends and family. I was able to make a bit of side money making websites during high school. I was always curious about learning more web technologies, but never really spent time researching or learning that much. I spent a lot of time messing around in Photoshop and Illustrator, but never got proficient. When I went to college, I got the MacBook Pro with the free iPod Touch deal. This was the first generation iPod touch and I immediately attempted to jailbreak it. Long story short, I began writing little bits of code for iOS and when the SDK came out, I dove in. I had a lot of free time at college and learned a lot about the iOS ecosystem. I found a few freelance jobs doing small apps and had a ton of fun building them. …

Image for post
Image for post

iOS 8 provides some incredible new features that apps can take advantage of. However, due to the sheer amount of new features and frameworks Apple released this year, there was bound to be bugs and issues. The Today view extensions are no exception. I was inspired by the Tumblr team’s post on issues with Share extensions to share the bugs and pitfalls you will face when building a Today Extension Widget.

Image for post
Image for post

Today widgets are meant to provide quick glanceable information. At WWDC we saw the example of ESPN’s sport scores. It has no buttons or settings. You configure favorite teams to track in the app, and the Today Widget is a simple summary view. Social networks may show recent communication, financial apps may show a summary of your accounts, and productivity apps may show recent to-do items. …

A tutorial on authenticating a user with their fingerprint in iOS 8

Welcome to the future!

We can now sign in to our banks, social networks, and other apps with our fingers. This is the stuff of science fiction!

Image for post
Image for post
Oooooh…

Touch ID was built into the iPhone 5S that was released in September 2013. At the Apple WWDC (World Wide Developer Conference) they announced that developers could now use Touch ID in their apps.

As you may remember, some developers looked into the private frameworks in iOS 7 and found a framework called BiometricsKit. …

Whose responsibility is your software product?

Ideally, no one would write code that didn’t make the app/site/product better. Time spent writing code that isn’t creating a better user experience or bringing in more revenue is a loss. Useless code creates technical debt and wastes everyone’s time.

Obviously, engineers and product managers can’t see the future. They can’t plan the exact right features to avoid wasted engineer time. Despite this, it is essential to focus on defining a strong product roadmap. A poorly thought out roadmap will cause engineers to work on features that don’t improve anything. The lack of increased money/metrics will cause management to panic. They push the product team and engineers to work harder on product features that don’t matter. The company will continue to spin its wheels like this until everyone is out of energy and money.

Don’t fall in love with your OS, instead, make it your audio assistant

I have been told we are on the cusp of entirely new ways to interface with technology. I have been promised that an up and coming technology will be the next multi-touch. Some say the Myo armband, Google Glass, Leap Motion, Oculus Rift, or wearables like Nymi and a possible iWatch will save us from the barbaric practice of clicking mouses and tapping our screens (ew, fingerprints).

I propose that that there is an interface method that provides a way to access our technology, without fingers. It’s a technology that is already (mostly) socially acceptable, unlike Google Glass, Oculus VR, or waving your hands in front of a screen. …

About

Christopher Truman

iOS Developer in LA

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store