Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. Natalie

Natalie

MITSwift0.7.0

A Swift command-line tool that generates type-safe code from storyboard files to eliminate string identifiers for segues and reusable views.

Visit WebsiteGitHubGitHub
1.2k stars68 forks0 contributors

What is Natalie?

Natalie is a Swift command‑line application that generates type‑safe Swift code from storyboard files. It creates enums and extensions that replace string‑based identifiers for segues, storyboards, and reusable views with compile‑time‑checked types, reducing errors and improving developer experience in UIKit/AppKit projects.

Target Audience

iOS and macOS developers who use Storyboards in their Swift projects and want to eliminate fragile string identifiers for segues, storyboard instantiation, and reusable view cells.

Value Proposition

Developers choose Natalie because it provides compile‑time safety for Storyboard operations without requiring a rewrite of their UI layer. It integrates seamlessly into Xcode builds, automatically keeping generated code in sync, and reduces boilerplate while preventing common runtime crashes from typos in string identifiers.

Overview

Natalie - Storyboard Code Generator (for Swift)

Use Cases

Best For

  • Eliminating string literals for segue identifiers in prepareForSegue
  • Safely instantiating view controllers from storyboards using type‑safe enums
  • Dequeuing table view and collection view cells without hard‑coded reuse identifiers
  • Automatically generating Swift code from storyboards on every Xcode build
  • Reducing runtime crashes due to typos in storyboard‑related strings
  • Adding compile‑time checks to Storyboard‑based iOS/macOS projects

Not Ideal For

  • SwiftUI-based projects where Storyboards are not used
  • Teams that prefer fully programmatic UI without any Interface Builder dependencies
  • Projects requiring support for XIB files or other UI formats beyond Storyboards
  • Environments with strict security policies that restrict running external command-line tools during builds

Pros & Cons

Pros

Type-Safe Storyboard Access

Generates an enum `Storyboards` with methods like `instantiateInitialViewController()` to replace `UIStoryboard(name:, bundle:)` calls, eliminating error-prone string literals for storyboard names.

Segue Enumeration

Extends each view controller with a `Segue` enum providing strongly-typed identifiers, kind, and destination types, usable in `prepareForSegue` and `performSegue` for compile-time safety.

Reusable View Identifiers

Creates `Reusable` enums for table/collection view cells, enabling `dequeueReusableCell` calls without string literals and `registerReusableCell` with type-safe identifiers, as shown in the UITableView examples.

Color Asset Support

Generates static `UIColor`/`NSColor` properties for named colors used in storyboards, available for iOS 11+ and macOS 10.13+, reducing hard-coded color strings.

Xcode Integration

Can be added as a Run Script Phase to automatically regenerate code when storyboards change, keeping the generated file up-to-date with every build, as detailed in the installation instructions.

Cons

Proof-of-Concept Limitations

The README describes it as a 'proof-of-concept implementation,' which may imply incomplete features, less active maintenance, or instability compared to production-ready tools.

Swift Version Fragmentation

Separate branches for Swift 3.x, 2.x, and 1.x indicate compatibility issues and potential breaking changes with Swift updates, requiring manual branch management and increasing setup complexity.

Manual Setup Complexity

Integrating with Xcode requires adding a custom Run Script Phase and configuring paths to the natalie binary, which can be error-prone and difficult for teams unfamiliar with build processes.

Limited to Storyboards

Only supports .storyboard files; it does not generate code for XIB files or other UI components, limiting its utility in projects with mixed UI formats or programmatic views.

Frequently Asked Questions

Quick Stats

Stars1,160
Forks68
Contributors0
Open Issues10
Last commit7 years ago
CreatedSince 2015

Tags

#type-safety#command-line-tool#ui-development#ios-development#swift#xcode#code-generation#storyboard

Built With

S
Swift

Links & Resources

Website

Included in

iOS51.7k
Auto-fetched 9 hours ago

Related Projects

inferinfer

A static analyzer for Java, C, C++, and Objective-C

Stars15,706
Forks2,100
Last commit5 days ago
R.swiftR.swift

Strong typed, autocompleted resources like images, fonts and segues in Swift projects

Stars9,560
Forks776
Last commit1 year ago
SwiftGenSwiftGen

The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!

Stars9,546
Forks766
Last commit4 months ago
XcodeGenXcodeGen

A Swift command line tool for generating your Xcode project

Stars8,761
Forks904
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub