The Curious Engineer

All blogs / Mobile / iOS / Android

Roadfire Software

roadfiresoftware.com

Mobile / iOS / AndroidTesting / QAAI / ML

Posts
225 from 12 Jan 2009 to 16 Dec 2025
Posting
now and then (4 in the last year)
Kind
personal blog
Feed
https://roadfiresoftware.com/feed/

2025 7

  1. How to Create a 30-Day Personal Action Plan for AI Safety
  2. Your open-source project is losing contributors before they even start. Here’s why – and how to fix it.
  3. How a Closed GitHub Issue Led to My First Contribution to Inspect AI
  4. A path into AI safety for software engineers
  5. 44 Attorneys General Stand Up to AI Companies. Is it enough?
  6. The Future of AI from BlueDot Impact
  7. The Search for More Meaningful Work

2024 1

  1. Books With Yellow Covers That Changed My Life

2020 1

  1. Unit Testing Pro Tip: Verify that your tests make assertions about the method under test and nothing else

2019 1

  1. Detect Displays on macOS

2018 21

  1. Running unit tests from the command line with xcodebuild
  2. Xcode 9.4.1 cannot run unit tests for Frameworks on macOS Mojave
  3. WWDC 2018 What’s New in Testing Recap
  4. WWDC 2018 What’s New in Swift Recap
  5. WWDC 2018 What’s new in Cocoa Touch Recap
  6. WWDC 2018 Platforms State of the Union Recap
  7. WWDC 2018 Keynote Recap
  8. When to unit test private methods
  9. Can I unit test private methods?
  10. Roadfire Software
  11. How to unit test button taps on a view controller with XCTest
  12. What’s the difference between a mock and a stub, and how do you use them in Swift?
  13. How to write unit tests in Swift 4 with XCTest
  14. What are the benefits of unit testing?
  15. Not Using Automated Tests: Still a Systemic Problem for iOS Developers
  16. Why iOS developers don’t write unit tests
  17. What framework should I use to start unit testing on iOS?
  18. What’s the biggest mistake new iOS developers make when coding?
  19. How to parse JSON with Swift 4
  20. What’s the best way to learn iOS development with Swift?
  21. How to write a singleton in Swift

2017 6

  1. inessential: On Fixing that NSNull Crasher in Overcast
  2. How to install multiple versions of Xcode at the same time
  3. How to review a pull request for an iOS app
  4. When do you use optional chaining vs. if let or guard?
  5. Notifications and Alerts are Disruptive
  6. Improving Swift Compile Times

2016 13

  1. How to parse JSON with Swift 3
  2. Cut your Swift build times in half with this one weird trick
  3. Testing asynchronous code in Swift with XCTest expectations
  4. WWDC 2016 podcast episodes for iOS developers
  5. Key takeaways for iOS developers from the WWDC 2016 Platforms State of the Union
  6. Key takeaways for iOS developers from the WWDC 2016 Keynote
  7. Navigating Apple’s WWDC from home
  8. How do you unit test REST calls in Swift?
  9. Recipe: Using Anchors to Place Views in iOS
  10. Avoid using class names in Swift’s #selector
  11. Tiny Swift Tip: Initializing Empty Arrays
  12. How to handle null JSON values in Swift
  13. Debunking the myths about parsing JSON in Swift

2015 38

  1. Year in Review 2015: The Year of Parsing JSON in Swift
  2. Reducing clutter in your JSON parser through proper typing
  3. How to test your JSON parser
  4. Why test your JSON parser?
  5. APOD App Rejection: Postmortem
  6. How to parse JSON with Swift 2
  7. Notes from WWDC 2015: Building Watch Apps
  8. Which books should I get to learn iOS?
  9. How to enable and view test coverage reports in Xcode 7
  10. How can you do TDD with Swift?
  11. How to refactor your Swift code using TDD
  12. Automatically resolving git merge conflicts in Xcode’s project.pbxproj file
  13. How to get components from a date in Swift
  14. Save your future self from broken apps by asking these questions BEFORE adding a third-party framework to your app
  15. Why not make the ViewModel the table view’s data source?
  16. Notes from WWDC 2015: Cocoa Touch Best Practices
  17. How to use typealias to make JSON parsing more readable in Swift
  18. How to get Xcode to stop generating copyright headers on your Swift files
  19. The Best Resources for Getting Things Done with iOS Development
  20. Top 10 things you need to know from WWDC 2015 as an iOS developer
  21. How generics in Swift can lead to safer, cleaner code
  22. How to Make Your Users Awesome: What I Learned from Reading BADASS
  23. 11 Xcode Keyboard Shortcuts to Make You More Productive
  24. How to size a table header view using Auto Layout in Interface Builder
  25. Will an iOS app run on a device the same way it does on the iOS simulator?
  26. How to scale an image view based on device size with Auto Layout in Interface Builder
  27. How to Change the Font for a Size Class in Interface Builder
  28. When you’re programming, how do you decide which approach to take to solve a problem?
  29. How to get an image to fill an image view – without any clipping
  30. Why you should sketch out your app before you ever open Xcode
  31. Should you use Storyboards on more complex apps?
  32. “Can I instantiate multiple instances of the same view controller from a Storyboard?”
  33. Top 10 tools I use to build iOS apps
  34. Land an iOS job by focusing on relationships
  35. The easy way to dismiss the keyboard in iOS
  36. What skills would I need for a job as an iOS developer?
  37. iOS Essentials: UITableView
  38. iOS Essentials: The UIViewController Lifecycle

2014 28

  1. Year in Review 2014: What I learned about building an audience, selling products, and productized consulting
  2. Wrap your head around optionals in Swift
  3. How do you distribute beta iOS apps to your team?
  4. What third-party libraries do you use for iOS development?
  5. Will Apple reject your app if it’s not unique?
  6. iOS UI: Choosing between Pickers and Table Views
  7. How to use git for iOS projects
  8. A safer approach to JSON parsing in Swift
  9. Swift’s var is not Objective-C’s id
  10. Swift: Strings aren’t objects
  11. Working with Generics in Swift
  12. How to write unit tests in Swift 1.x with XCTest
  13. From Banker to Freelance iOS Developer
  14. How to send messages (aka call methods) in Objective-C
  15. How to implement methods in Objective-C
  16. How to read (and write!) method declarations in Objective-C
  17. The problem with learning via gamification
  18. How to build a hybrid iOS app
  19. Everything you need to know about Xcode, Objective-C, and iOS to build iOS apps
  20. Five Great Reasons to Learn iOS and Objective-C
  21. When to use PhoneGap versus developing a native iOS app
  22. How to become a professional iOS developer
  23. Can I learn Objective-C without knowing C?
  24. How I Reduced a View Controller by ~100 Lines (from 400 to 300)
  25. Learn to build any iOS app you want with the Big Nerd Ranch Beginning iOS Bootcamp
  26. What’s your favorite service for tracking usage statistics in an iOS app?
  27. How to add Facebook and Twitter sharing to an iOS app
  28. The right way to check the iOS version in an app

2013 14

  1. Year in Review 2013: What I learned from launching one failed and one successful product (and a bit about coauthoring a book and consulting)
  2. Screencast: Testing Objective-C with the XCTest Framework
  3. Logging class and method names in Objective-C
  4. Using Regular Expressions to replace text in Xcode
  5. Developing for iOS 7 (and supporting iOS 6)
  6. Fonts in iOS 7
  7. Zero Inbox is available on the App Store!
  8. Increasing Your Productivity with Zero Inbox
  9. The Problem with Using LGPL v2.1 Code in an iOS App
  10. A case for switching to CocoaPods from Git Submodules
  11. Roadfire has a new address!
  12. Setting up Continuous Integration for iOS projects with Jenkins, CocoaPods, and Kiwi
  13. Switching from Git Submodules to CocoaPods
  14. How To Be a Better Freelancer: Listen to Your Clients

2012 8

  1. Year in Review: What did you ship in 2012?
  2. How to Increase Profits in Your Freelancing Business
  3. iFonts is now 50% off!
  4. Go Learn Git at try.github.com
  5. Git Pro Tip: How to List Tags that Contain a Commit with Git
  6. New Fonts in iOS 5.1
  7. No Comments
  8. Creating Good Slides

2011 27

  1. iFonts 1.5 released with VoiceOver support
  2. Learn Thai Squiggles 1.1 released!
  3. New fonts in iOS 5
  4. The Solio Bolt
  5. Thanks, Steve
  6. Mac App Store & Xcode
  7. iPhone 4S
  8. Core Data – Getting more from your errors
  9. Your branch is ahead of ‘origin/master’ by 1 commit
  10. iFonts 1.4 has fonts in the email
  11. 7 Mac Apps I Love
  12. Why Kiwi for iOS testing
  13. Two Keyboard Shortcuts for 1Password in Safari
  14. Learn Thai Squiggles released!
  15. Learn Thai iPhone app submitted
  16. Backups
  17. Learning Thai on your iPhone
  18. Xcode 4 – Running a nib file in the iOS Simulator
  19. Xcode 4 issue with git
  20. Resident Dirty Memory in iOS
  21. Downgrading iPad from 4.2 to 3.2.2 on OS X
  22. iFonts 1.3
  23. Removing NSLogs on Release Builds
  24. How to Win Friends and Influence People
  25. GitHub fork of ShareKit
  26. Finding crash logs from your iPhone, iPad, or iPod touch
  27. MacBook + Samsung P2370HD

2010 43

  1. What did you ship in 2010?
  2. ClipMenu
  3. blockBUZZter 1.1!
  4. The story behind iFonts
  5. iFonts Price Change
  6. iFonts 1.1
  7. Git Delete Last Commit
  8. Blog Action Day 2010
  9. Fonts for iPad & iPhone
  10. iFonts 1.0 released!
  11. Downgrading iPad from 4.2 to 3.2.2 on OS X
  12. Undoing the last git commit
  13. NSZombieEnabled
  14. Shopify
  15. Google Apps is awesome!
  16. Sliding UITextFields around to avoid the keyboard
  17. iPhone – Flipping a view
  18. Why is my list black?
  19. Android XML include
  20. [UILabel sizeToFit]
  21. Essential Keyboard Shortcut for Numbers
  22. Build script for iPhone ad-hoc distribution
  23. Android – ignoring files from version control
  24. Tutorial: Turn Your Mac Into an AirPort Base Station
  25. The commuting paradox
  26. Quote: A very good senior programmer…
  27. Resolution for “fatal: unable to run ‘git-svn'”
  28. git gc: cleaning up after yourself
  29. Rework Trailer: Staying Late
  30. Review: Microsoft Office 2008 (Mac)
  31. Quote: OS X is the most productive development environment that I’ve ever used
  32. Git Aliases
  33. A case for git-svn (Git + Subversion)
  34. Subversion global-ignores
  35. Rework
  36. Martin Fowler: VcsSurvey
  37. Irrational
  38. Running an effective meeting
  39. Mac OS X tip: open current Terminal path in Finder
  40. A case for automated tests
  41. Cisco VPN on Snow Leopard
  42. Keyboard Shortcut for Maximizing a Window in XP
  43. SnakeYAML and Groovy

2009 17

  1. Running Linux commands from history
  2. We can be lifelong learners
  3. Making decisions
  4. Twitter is a waste of time
  5. Determining which versions of the iPhone SDK are installed
  6. The Duct Tape Programmer
  7. Who needs a mock framework?
  8. Brain Rules – Exercise boosts brain power
  9. Automation
  10. Leadership
  11. Decisions
  12. Failure
  13. Purple Cow: Transform Your Business by Being Remarkable
  14. Why TDD?
  15. Never Eat Alone
  16. Story time with easyb
  17. CodeMash 2009 Recap