Get Better Software Estimates by Combining Different Perspectives

By Diliff (Own work) CC BY-SA 4.0, via Wikimedia Commons

Estimating a custom software project is a difficult necessity that usually occurs before the project kickoff (what we like to call the “point of maximum ignorance”). And getting estimates right can have a significant impact on the overall success of a product. Read more on Get Better Software Estimates by Combining Different Perspectives…

UIStackView Tricks: Proportional Custom UIViews with ‘Fill Proportionally’

In iOS 9, Apple introduced a very handy new UI concept: the UIStackView. Stack views help us quickly compose sequential “stacks” of views without Auto Layout. UIStackView offers a number of distribution and spacing options in Interface Builder. If you’re unfamiliar with UIStackView, I recommend reading “Exploring UIStackView Distribution Types” first.

In this post, I’ll describe how to use the Fill Proportionally option with any custom view while enjoying fine-grained control over the proportions themselves. Read more on UIStackView Tricks: Proportional Custom UIViews with ‘Fill Proportionally’…

Accept It: Software is Wabi-sabi

Last week, after dealing with a frustrating build and deployment issue, I reflected on what makes software development frustrating at times–specifically, the well-known feeling that code “rots” over time. I happened to glance at a small Zen rock garden my wife had given me long ago and was reminded of wabi-sabi.
Read more on Accept It: Software is Wabi-sabi…

Handling Bad Feelings at Work

Atomic Object employs a group of smart, high-performing, passionate, diverse, and flawed human beings. It’s inevitable that each of us will occasionally experience “bad feelings” at work. As a company, we’ve put a lot thought into how to handle the bad feelings that occasionally arise during our time at work. One of the steps we’ve taken is extending the acronym FUD to “FUDA” as a shorthand for bad feelings and a prescription for how to handle them. Read more on Handling Bad Feelings at Work…

Sharing Web Data with iOS Using WKWebView

I recently helped develop a native iOS app for a client that sells software to many different educational organizations. We wrote the app in Swift, and it interacts with our client’s pre-existing web API.

One challenge we faced was that many of our client’s customers require single-account, multiple-login (SAML) support through their own web portals. To support SAML, we needed an easy way to pass a user’s API credentials from a web page to our iOS application. In this post, I’ll show how this can be accomplished using WKWebView.
Read more on Sharing Web Data with iOS Using WKWebView…

Using CircleCI to Test and Deploy an iOS App

When starting a new greenfield project at Atomic, we always ask ourselves about tooling surrounding testing and deployment. We have had a lot of luck with CircleCI for both mobile and web applications, so when I found out CircleCI had a solution for iOS, I was excited to take advantage of it. In this post, I’ll review how to use CircleCI with your iOS application and explain how I handled some bumps in the road on the path to CI and easy deployments.
Read more on Using CircleCI to Test and Deploy an iOS App…

Successful Sprint Retrospectives: Tips and Tools

A sprint retrospective is a brief collaborative exercise that teams can do at the end of each sprint—typically as part of the sprint review meeting. Its purpose is to reflect on what happened during the sprint with the goal of improving the team, but there are other benefits, like building team chemistry, sharing knowledge, promoting a sense of team ownership, and having fun.

This post covers what’s involved in a sprint retrospective, touching on some “dos and don’ts” and sharing a few software tools that can make them easier—especially for remote teams.
Read more on Successful Sprint Retrospectives: Tips and Tools…

Creating Graphics Code in iOS & OS X with PaintCode

Source: Wikimedia commons – click image for more.

Two years ago, I worked on a large iOS project with a very complex, dynamic shape that needed to be rendered on its main screen. The shape had to be drawn using hundreds of Bézier curves in a closed path, generated from real-world data.

Despite my background in computational geometry and OpenGL, I wasn’t sure how to best accomplish the shape in iOS using the drawing primitives and their rendering contexts. Fortunately, I found a helpful tool called PaintCode which cut the time to prototype the drawing code by an order of magnitude. In this post, I’ll describe how I used PaintCode and cover some of its more interesting features. Read more on Creating Graphics Code in iOS & OS X with PaintCode…