Read an opinionated but balanced guide before starting a new iOS project to avoid common architecture and tooling mistakes.
Use the dependency management section to decide between CocoaPods and Carthage for a specific project setup.
Reference the Swift coding style and security sections during code review to align a team on conventions.
This repository is a written guide to good practices in iOS app development, maintained by developers at Futurice, a software consultancy. It is not a code library or tool but a living document meant to help developers, especially those new to iOS, make good decisions throughout a project. The guide covers a wide range of topics organized into sections. Early sections address getting started: choosing between writing user interfaces in code versus using Apple's visual Interface Builder tool, setting up version control correctly, and managing third-party libraries through tools like CocoaPods or Carthage. Later sections address architecture decisions (how to structure the code of an app), data storage, image and asset handling, coding style conventions in Swift and Objective-C, security considerations, analytics, building, and deploying to the App Store. Each section explains the trade-offs involved in common decisions rather than mandating a single approach. For example, the guide walks through the pros and cons of using Storyboards versus writing UI in code, and suggests a hybrid approach as a reasonable middle ground. The tone is practical and conversational, framing everything as suggestions rather than strict rules. The document was written with the recognition that iOS can feel unfamiliar to developers coming from other platforms, since it uses its own terminology, its own programming languages (Swift and Objective-C), and a specific toolchain centered on Xcode. The guide aims to flatten that learning curve by collecting institutional knowledge in one place. Contributions from the broader community are welcome, and the guide is openly licensed. The full README is longer than what was shown.
← futurice on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.