# soapyigu/swift-30-projects

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/soapyigu-swift-30-projects).**

8,300 stars · 1,868 forks · Swift · Apache-2.0

## Links

- GitHub: https://github.com/soapyigu/Swift-30-Projects
- awesome-repositories: https://awesome-repositories.com/repository/soapyigu-swift-30-projects.md

## Topics

`cocoa-touch` `ios` `iphone-x` `mvc` `swift`

## Description

This repository is a collection of Swift programming examples and an iOS app architecture reference. It provides a set of small applications and refactored projects that demonstrate the practical application of the Swift language, system frameworks, and user interface components.

The project serves as a design pattern reference for implementing professional software architecture. It covers the application of Model-View-ViewModel, protocol-oriented programming, and dependency injection to decouple components and increase code reuse.

Additional resources focus on test-driven development, providing a series of practice projects where unit tests are written before feature implementation. The collection also includes examples of declarative UI development and modular code organization using the Swift Package Manager.

## Tags

### Mobile Development

- [iOS Application Architectures](https://awesome-repositories.com/f/mobile-development/ios-application-architectures.md) — Provides a reference for structural design patterns specifically tailored for Swift-based iOS applications.
- [iOS App Architecture References](https://awesome-repositories.com/f/mobile-development/ios-app-architecture-references.md) — Provides comprehensive examples of professional design patterns like MVVM for mobile apps.
- [SwiftUI](https://awesome-repositories.com/f/mobile-development/ios-apple-ecosystem/swiftui.md) — Uses the SwiftUI framework to build user interfaces via a declarative state-driven approach.

### Part of an Awesome List

- [Swift Language Guides](https://awesome-repositories.com/f/awesome-lists/learning/swift-language-guides.md) — Serves as a guide for learning Swift syntax and system frameworks through practical implementation examples.

### Education & Learning Resources

- [Application Examples](https://awesome-repositories.com/f/education-learning-resources/application-examples.md) — Provides a collection of mini-applications to demonstrate the practical application of Swift and iOS frameworks. ([source](https://github.com/soapyigu/swift-30-projects#readme))

### Programming Languages & Runtimes

- [Swift Resources](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/apple-platform-languages/swift-resources.md) — Provides a curated collection of small applications demonstrating Swift language features and UI components.
- [TDD Learning Resources](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/apple-platform-languages/swift-resources/tdd-learning-resources.md) — Provides a series of practice projects designed to teach test-driven development by writing unit tests before feature implementation.
- [Protocol Oriented Programming](https://awesome-repositories.com/f/programming-languages-runtimes/protocol-oriented-programming.md) — Demonstrates the use of interfaces and extensions to decouple components and increase reuse.
- [Swift Manifest Project Managers](https://awesome-repositories.com/f/programming-languages-runtimes/swift-dependency-managers/swift-manifest-project-managers.md) — Demonstrates modular code organization and target management using Swift manifests.

### Software Engineering & Architecture

- [Design Pattern Implementations](https://awesome-repositories.com/f/software-engineering-architecture/design-pattern-implementations.md) — Provides refactored code examples demonstrating the practical implementation of professional software design patterns. ([source](https://github.com/soapyigu/swift-30-projects#readme))
- [Dependency Injection](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection.md) — Implements techniques for decoupling components by injecting dependencies instead of hard-coding them.
- [Protocol-Oriented Design](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection/protocol-oriented-injection/protocol-oriented-design.md) — Demonstrates how to define behavior through protocols and extensions to increase code reuse.
- [Swift Design Pattern References](https://awesome-repositories.com/f/software-engineering-architecture/swift-design-pattern-references.md) — Showcases refactored projects that apply professional software architecture and coding styles in Swift.
- [Model-View-ViewModel](https://awesome-repositories.com/f/software-engineering-architecture/view-model-architectures/model-view-viewmodel.md) — Provides a reference implementation of the Model-View-ViewModel architecture to separate business logic from UI.
- [Test-Driven Development Workflow](https://awesome-repositories.com/f/software-engineering-architecture/test-driven-development-workflow.md) — Implements a development workflow where verification tests are written before feature implementation.

### DevOps & Infrastructure

- [Swift Package Manager Integrations](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/installation-package-management/swift-package-manager-integrations.md) — Organizes code into modular targets and dependencies using the Swift Package Manager.

### Testing & Quality Assurance

- [Test-Driven Development Resources](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-driven-development-resources.md) — Provides structured guides on implementing the TDD workflow using Swift and unit tests.
- [Unit Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/unit/unit-testing.md) — Employs unit testing to verify the smallest testable parts of the application in isolation.
