explaingit

futurice/ios-good-practices

10,977Audience · developerComplexity · 1/5Setup · easy

TLDR

A practical written guide to iOS app development best practices covering architecture, tooling, Swift style, security, and deployment, aimed at developers new to the Apple ecosystem.

Mindmap

mindmap
  root((iOS Practices))
    Getting started
      UI in code vs IB
      Version control
      Dependency tools
    Architecture
      Code structure
      Data storage
      Asset handling
    Coding style
      Swift conventions
      Objective-C style
      Security tips
    Shipping
      App Store deploy
      Analytics
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Read an opinionated but balanced guide before starting a new iOS project to avoid common architecture and tooling mistakes.

USE CASE 2

Use the dependency management section to decide between CocoaPods and Carthage for a specific project setup.

USE CASE 3

Reference the Swift coding style and security sections during code review to align a team on conventions.

Tech stack

SwiftObjective-CXcodeCocoaPodsCarthage

Getting it running

Difficulty · easy Time to first run · 5min
Openly licensed, free to read, use, and share, community contributions welcome.

In plain English

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.

Copy-paste prompts

Prompt 1
Based on the Futurice iOS good practices guide, should I build my app's UI in Storyboards or in code? Walk me through the trade-offs.
Prompt 2
Using ios-good-practices as a reference, set up a new Xcode project with recommended folder structure, version control settings, and dependency management.
Prompt 3
What does the Futurice iOS guide recommend for local data storage, when should I use Core Data versus simple file storage?
Prompt 4
Review my iOS app's architecture against the recommendations in ios-good-practices and flag anything that should change.
Open on GitHub → Explain another repo

← futurice on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.