Skip to content
CAI
Software that uses CAICheck a score

soapyigu/Swift-30-Projects

39.8

Weak · 28 September 2026

24.6k

lines of production code

Swift

primary language

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This repository is a curated collection of thirty distinct iOS sample applications written in Swift, designed to demonstrate specific UIKit features, design patterns, and third-party integrations. The projects cover a wide range of capabilities, including complex UI layouts like waterfalls and carousels, data persistence with Core Data, and system integrations such as Maps, Contacts, and WebKit. Additionally, the codebase serves as a practical reference for implementing reactive programming with RxSwift, machine learning with Core ML, and various animation techniques.

How it got here

2016 — iOS sample project collection

18 changes.

This period focused on initializing the repository and populating it with a diverse collection of standalone iOS sample applications. Each project demonstrates specific UI patterns or animations, such as product catalogs, search filtering, waterfall layouts, and custom menu transitions, while standardizing configurations for Swift 5 and iOS 11 compatibility.

2017 — expansion of iOS sample applications

18 changes.

This period focused on significantly expanding the repository's collection of iOS sample applications, introducing diverse demos for features such as MapKit, Core Data, 3D Touch, and local notifications. The work also included integrating reactive programming libraries like RxSwift and updating dependencies to support modern Swift and iOS versions.

2018 — iOS sample app additions

4 changes.

This period focused on expanding the project's collection of iOS sample applications, introducing four new demos. These additions covered diverse topics including stopwatch logic, table view implementations, concurrent image processing with OperationQueue, and WebKit-based web browsing.

Features

Add BlueLibrarySwift sample app demonstrating iOS design patterns

The BlueLibrarySwift project has been added to the repository, providing a complete iOS application that demonstrates several design patterns including Singleton, MVC, Decorator, Adapter, Facade, Observer, and Memento. The app features a horizontal scroller for album selection, a table view for album details, and local persistence for albums and images, serving as a reference implementation for these architectural concepts.

Project 18 - BlueLibrarySwift · high confidence

Add ClassicPhotos sample app demonstrating image download and filtering with OperationQueue

The ClassicPhotos sample app is added to demonstrate optimizing image downloads and applying CoreImage filters using NSOperation and NSOperationQueue. The app features a table view that fetches photo metadata, downloads images, and applies a sepia tone filter in the background, while managing concurrency and allowing operations to be suspended or resumed during scrolling.

Project 17 - ClassicPhotos · high confidence

Add FacebookMe iOS app demo

Introduces the FacebookMe project, a Swift application that mimics the personal profile tab of Facebook. The app demonstrates implementing a UITableView with multiple sections and different cell types, featuring a navigation controller root view, a base view controller, a user model, and a table view controller that populates rows with icons and titles for sections like Friends, Events, Groups, and Settings.

Project 03 - FacebookMe · high confidence

Add HitList iOS app with Core Data integration

Introduces the HitList iOS application, a Swift-based demo that implements Core Data for persistent storage. The app features a table view displaying a list of names, allowing users to add new entries via an alert dialog and delete items by swiping. It includes the full project structure, including the Xcode project file, storyboard layouts, asset catalogs, and unit/UI test targets.

Project 24 - HitList · high confidence

Add HonoluluArt sample app with MapKit integration

The HonoluluArt sample app is added, demonstrating how to display a MapKit map, parse local JSON data to plot artwork annotations with discipline-based pin colors, and open the Maps app for walking directions. The project is configured for Swift 5 with a minimum deployment target of iOS 11.0, and includes the necessary Xcode project files, storyboard, assets, and a JSON data file.

Project 22 - HonoluluArt · high confidence

Introduces the Interests app, a Swift-based iOS application that displays a horizontal carousel of interest cards. The interface uses a UICollectionView with a horizontal flow layout to enable swipeable paging, featuring large background images, rounded corners, and a frosted-glass blur effect overlay for titles. The app includes a HomeViewController to manage the collection view data source and scroll behavior, an Interest model for card data, and an InterestCollectionViewCell for the visual presentation of each item.

Project 10 - Interests · high confidence

Add NotificationsUI demo app for iOS local notifications

Introduced the NotificationsUI sample application, which demonstrates local notification capabilities in iOS 10 using the UserNotifications and UserNotificationsUI frameworks. The app features a user interface with a date picker that allows users to schedule a 'Coding Reminder' notification at a specific time. Scheduled notifications include a text body, a default sound, and an attached image. The implementation also defines a notification category with a 'Remind me later' action, which reschedules the notification for one minute after the user interacts with it.

Project 27 - NotificationsUI · high confidence

Add Pinterest sample project with waterfall layout

Introduces the Pinterest sample project, providing a basic infrastructure for a waterfall-style photo stream view. The project includes core components such as a custom PinterestLayout, AnnotatedPhotoCell, and PhotoStreamViewController, along with supporting assets and models to demonstrate the layout implementation.

Project 19 - Pinterest/Pinterest.xcodeproj · high confidence

Add Scale demo app with 3D Touch and Quick Actions support

Introduces the 'Scale' iOS application, which demonstrates force touch and quick actions capabilities. The app allows users to weigh items by pressing on a spoon image, displaying the weight in grams based on the pressure applied (up to 385g). It also includes a home screen quick action ('Open Blue') that launches the app with a blue background. The project is configured for Swift 5 with a minimum deployment target of iOS 11.0.

Project 26 - Scale · high confidence

Add SimpleRSSReader sample app

Introduces the SimpleRSSReader iOS application, which demonstrates parsing RSS feeds using the XMLParser delegate pattern. The app displays Apple news in a table view with cells that can be expanded and collapsed to show or hide descriptions, featuring dynamic row heights and a custom table view cell implementation.

Project 08 - SimpleRSSReader · high confidence

Add Snapchat-style horizontal paging menu

The app now features a horizontal paging menu inspired by Snapchat, implemented using a UIScrollView with paging enabled. The main view controller manages three child view controllers—Chat, Stories, and Discover—arranged side-by-side. Users can swipe horizontally to navigate between these sections, with the layout configured to snap to each full-screen page.

Project 15 - SnapchatMenu · high confidence

Add SpotifySignIn demo with video background login screen

Introduces the SpotifySignIn project, an iOS app that mimics the Spotify sign-in and sign-up view. The interface features a video background (moments.mp4) that plays with sound, a carousel-style layout, and animated login elements. The implementation includes a custom VideoSplashViewController for handling video playback and a VideoCutter utility for processing video assets, along with standard app infrastructure like storyboards and asset catalogs.

Project 16 - SpotifySignIn · high confidence

Add Tumblr app with slide-in menu transition

Introduces the Tumblr project, featuring a main view controller with a toolbar and a menu view controller that presents a slide-in/out transition animation for post-type selection (Text, Photo, Quote, Link, Chat, Audio).

Project 12 - Tumblr/Tumblr · high confidence

Add Tumblr project with slide-in/out menu transition

The Tumblr sample project has been added, featuring a main view controller and a menu view controller that slides in and out via a custom TransitionManager. The project structure includes standard iOS components such as AppDelegate, Main and LaunchScreen storyboards, and asset catalogs, configured for Swift 5 with a minimum deployment target of iOS 11.0.

Project 12 - Tumblr/Tumblr.xcodeproj · high confidence

Add iOS 10+ Weather Widget extension

This location introduces the 'Weather Widget' app extension, enabling a Today View widget that displays current city, weather condition, and temperature. The implementation uses the WeatherKit framework and includes the necessary project configuration (Info.plist, storyboard, and build schemes) to embed and run the extension alongside the main WeatherDemo app.

Project 25 - WeatherExtension · high confidence

Add iOS Animations sample project

The Animations sample project has been added, providing a demonstration of basic iOS animations. The app features a master-detail interface where users can select from eight animation types, including color changes, 2D rotations, multi-color transitions, multi-point positioning, Bezier curve paths, frame changes, fade-ins, and pop effects. The implementation uses standard UIKit animation APIs and includes unit and UI test scaffolding.

Project 04 - TodoTDD, Project 11 - Animations · high confidence

Added Birthdays starter project with contact management UI

The Birthdays Xcode project has been added, providing a starter application for managing contacts and birthdays. This includes the core application structure with AppDelegate and ViewController, along with specific UI components for contact management such as AddContactViewController, CreateContactViewController, and ContactBirthdayCell. The project is configured with standard iOS resources including storyboards, assets, and a launch screen, and is set up to build as a standard iOS application target.

Project 23 - Birthdays/Birthdays.xcodeproj · high confidence

Artistry app source code and project configuration added

The Artistry iOS application source code, including view controllers, models, and assets, has been added to the project. The app displays a list of artists and their works, allowing users to tap an artist to view a detail screen with expandable work descriptions. The project configuration files (project.pbxproj, schemes, and workspace data) are also included, establishing the build structure for the application.

Project 05 - Artistry · high confidence

CandySearch project structure and build configuration added

The CandySearch Xcode project has been initialized with the core application files, including AppDelegate, MasterViewController, DetailViewController, and the Candy data model. The project configuration sets the minimum deployment target to iOS 11.0 and includes the necessary storyboard and asset resources for the app interface.

Project 06 - CandySearch/CandySearch.xcodeproj · high confidence

FlickrSearch app added with photo search and sharing

A new iOS application, FlickrSearch, has been added to the project. This app allows users to search for photos via the Flickr API, view them in a grid layout using UICollectionView, and share selected images. Key features include a search interface with a text field, a collection view displaying photo thumbnails with loading indicators, support for selecting multiple photos for sharing via UIActivityViewController, and the ability to view larger versions of images upon selection.

Project 20 - FlickrSearch · high confidence

Initial TwitterBird app launch screen with bird animation

The TwitterBird application now includes a launch screen that displays a background image masked by a Twitter bird logo. Upon launch, the bird mask animates with a zoom-in and zoom-out effect using CAKeyframeAnimation before fading out to reveal the main interface. This change introduces the core visual identity and initial user experience for the app, including necessary asset configurations for app icons and launch images across supported iOS devices.

Project 13 - TwitterBird/TwitterBird · high confidence

Initial import of the GoodAsOldPhones iOS project

The GoodAsOldPhones application project has been added to the repository. This includes the Xcode project configuration, workspace setup, and source files for the app, which features a product listing interface with views for products, product details, and contact information.

Project 01 - GoodAsOldPhones/GoodAsOldPhones.xcodeproj · high confidence

Initial project infrastructure for TwitterBird

This change introduces the foundational Xcode project structure for the TwitterBird application. It establishes the build configuration with a minimum deployment target of iOS 11.0 and sets up the core application files, including the AppDelegate, asset catalog, and Info.plist, providing the necessary scaffolding for the app's development.

Project 13 - TwitterBird/TwitterBird.xcodeproj · high confidence

The Marslink app is now available, providing a feed of Mars-themed content including journal entries, messages, and weather data. The application utilizes the IGListKit library for its list-based UI, featuring section controllers for Journal, Message, and Weather items, along with custom cells and view controllers to display the data.

Project 29 - Marslink, Project 29 - Marslink/Pods/IGListKit · high confidence

Introduce Browser app with WebKit-based navigation

A new iOS application named Browser has been added to the project, providing a functional web browsing interface built on WKWebView. The app features a URL input field, a progress bar that tracks page loading, and toolbar buttons for back, forward, and reload actions. It implements navigation state management via KVO and handles loading errors with user-facing alerts, effectively demonstrating WebKit integration on iOS.

Project 21 - Browser · high confidence

Introduce GoodAsOldPhones app with product catalog and contact views

The GoodAsOldPhones application is introduced, featuring a tab-based interface with a product catalog and an 'Us' contact page. The catalog displays a list of vintage phones (1907 Wall Set, 1921 Dial Phone, 1937 Desk Set, 1984 Moto Portable) in a grouped table view, allowing users to tap a cell to navigate to a detailed product view showing the phone's name and a fullscreen image. The 'Us' tab presents a scrollable view with company information and contact details (email, phone, website). The app includes standard iOS infrastructure such as an app delegate, launch screen, and asset catalog for icons and images.

Project 01 - GoodAsOldPhones/GoodAsOldPhones · high confidence

Introduce PhotoScroll sample app with zooming, paging, and keyboard handling

The PhotoScroll sample application is added, demonstrating several UIScrollView capabilities. Users can view a collection of photos in a grid, tap to zoom into a full-screen image with pinch-to-zoom and centering, and navigate through a sequence of photo comment pages using UIPageViewController and UIPageControl. The app also handles keyboard visibility for text input fields within the comment view.

Project 09 - PhotoScroll · high confidence

Introduce Pinterest-style waterfall photo stream

Adds a new Pinterest-inspired app featuring a waterfall-style photo stream. The implementation includes a custom UICollectionViewLayout that arranges items in a two-column masonry grid, with cell heights dynamically calculated based on photo aspect ratios and annotation text. The UI displays rounded-corner photo cells with captions and comments, sourced from a local plist, and utilizes a custom layout delegate to determine item dimensions.

Project 19 - Pinterest/Pinterest · high confidence

Introduce the Birthdays starter project with contact integration

This change adds the 'Birthdays' starter project, providing a complete iOS application scaffold for managing contacts with birthday data. The project includes the core view controllers for listing contacts, creating new contacts with birthday details, and adding existing contacts by filtering for those with birthdays. It implements the necessary Contacts framework integration, including permission handling via AppDelegate, a custom table view cell for displaying contact avatars and details, and helper utilities for formatting dates and showing alerts.

Project 23 - Birthdays/Birthdays · high confidence

PhotoTagger app added with photo tagging and color analysis features

The PhotoTagger application has been added, allowing users to select or capture a photo and automatically retrieve image tags and color information from the Imagga API. The app uses Alamofire for network requests and includes a UI with a segmented control to switch between viewing tags and colors, along with a table view that displays color swatches alongside their names.

Project 30 - PhotoTagger · high confidence

QuoraDots app displays a startup animation with pulsing dots

The QuoraDots iOS application has been added, featuring a main screen that replicates the Quora startup animation. Upon launch, the app displays the Quora logo followed by three dots that scale up and down in a repeating, autoreversed sequence with staggered delays, implemented using UIView animations and CGAffineTransform transforms.

Project 14 - QuoraDots · high confidence

Stopwatch app adds lap recording and reset functionality

The Stopwatch app now supports recording lap times and resetting the timer. Users can start and stop the main timer, record individual lap times which are displayed in a scrollable list, and reset both the main timer and the recorded laps. The interface includes a main timer display, a lap timer display, start/stop and lap/reset buttons, and a table view for showing recorded laps.

Project 02 - Stopwatch · high confidence

Behavioural changes

13 commits (2 fixes) modifying Project 01 - GoodAsOldPhones/GoodAsOldPhones.xcodeproj/project.xcworkspace/xcuserdata

A change to existing behaviour in Project 01 - GoodAsOldPhones/GoodAsOldPhones.xcodeproj/project.xcworkspace/xcuserdata — 13 commits (2 fixs), 1 file.

Project 01 - GoodAsOldPhones/GoodAsOldPhones.xcodeproj/project.xcworkspace/xcuserdata · medium confidence · unverified

Added Xcode scheme configuration for the GoodAsOldPhones project

The GoodAsOldPhones application scheme is now defined in the user-specific Xcode project data, enabling the app to be built, run, tested, profiled, and archived directly from the Xcode IDE. This change adds the necessary scheme files to manage build actions and launch settings for the project.

Project 01 - GoodAsOldPhones/GoodAsOldPhones.xcodeproj/xcuserdata · high confidence

Added Xcode workspace configuration files

The project now includes standard Xcode workspace configuration files (\GoodAsOldPhones.xcscmblueprint\ and \IDEWorkspaceChecks.plist\) to manage source control integration and workspace state.

Project 01 - GoodAsOldPhones/GoodAsOldPhones.xcodeproj/project.xcworkspace/xcshareddata · high confidence

CandySearch app introduces search filtering and iOS 11 compatibility

The CandySearch app now features a search bar with scope buttons (All, Chocolate, Hard, Other) that allow users to filter the candy list by category or name. The implementation uses UISearchController with iOS 11-specific integration (navigationItem.searchController) while maintaining fallback for earlier versions. The app also updates to Swift 5 syntax and sets the minimum deployment target to iOS 11.0, ensuring compatibility with modern iOS features.

Project 06 - CandySearch/CandySearch · high confidence

SceneDetector app now uses Core ML to identify image scenes

The SceneDetector project has been updated to demonstrate Core ML and Vision capabilities on iOS. The app now integrates the GoogLeNetPlaces.mlmodel to analyze images selected from the photo library and display the detected scene category with a confidence percentage. This replaces the previous implementation, updating the codebase to Swift 5 and setting the minimum deployment target to iOS 11.0.

Project 28 - SceneDetector · high confidence

Dependencies

Added RxSwift and RxCocoa dependencies to PokedexGo

The project now includes the RxSwift (3.0.1) and RxCocoa (3.0.1) libraries via CocoaPods. This adds reactive programming capabilities to the iOS application, enabling the use of observable sequences and UI bindings for handling user interactions and data flow.

Project 07 - PokedexGo · high confidence

Updated dependency specifications for sample projects

The dependency manifests for sample projects 07, 29, and 30 have been updated. Project 07 (PokedexGo) now specifies RxSwift and RxCocoa version 3.0.0, Project 29 (Marslink) points to the master branch of IGListKit, and Project 30 (PhotoTagger) includes the Alamofire library.

(dependencies) · high confidence

Housekeeping

Repository initialization with documentation, license, and .gitignore

The repository has been initialized with standard project scaffolding, including a new README.md outlining the collection of Swift 30 projects, an Apache 2.0 License file, and a .gitignore configuration for Objective-C/Swift development environments. Additionally, the submodule reference for 'Project 1 - GoodAsOldPhones' was removed, indicating a restructuring of the project's component organization.

(repo-wide) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 40.

Lenses

  • Code Health 97
  • Architecture 94
  • Maturity 28
  • Readiness 23
  • Security 70

Changes since last survey

  • 300 commits — 266 feature/other, 34 fixes

By area

  • Project 27 - Whatsapp/Whatsapp — 44 commits
  • (repo) — 42 commits
  • (root) — 23 commits
  • Project 02 - LoveTweet/LoveTweet — 10 commits
  • Project 01 - GoodAsOldPhones/GoodAsOldPhones — 8 commits
  • Project 18 - BlueLibrarySwift/BlueLibrarySwift — 8 commits
  • Project 23 - Birthdays/Birthdays — 6 commits
  • Project 28 - PhotoScroll/PhotoScroll — 6 commits
  • Project 04 - Todo/Todo — 5 commits
  • Project 16 - SimpleRSSReader/SimpleRSSReader — 5 commits
  • Project 27 - Marslink/Marslink — 5 commits
  • Project 18 - FlickrSearch/FlickrSearch — 4 commits
  • Project 30 - HonoluluArt/HonoluluArt — 4 commits
  • Project 03 - Stopwatch/Stopwatch — 3 commits
  • Project 15 - SnapchatMenu/SnapchatMenu — 3 commits
  • Project 25 - WeatherExtension/README.md — 3 commits
  • Project 28 - PhotoScroll/README.md — 3 commits
  • Project 29 - Grocr/Grocr — 3 commits
  • Project 30 - PhotoTagger/PhotoTagger — 3 commits
  • Project 01 - GoodAsOldPhones/GoodAsOldPhones.xcodeproj — 2 commits

Notable commits

  • fix: Fix Project 1 - 3 to support iPhone X
  • fix: Fix Project 16's layout to iPhone X and code cleanup
  • fix: Fix code style and syntax error
  • fix: Fix code style for Project 04 - Todo
  • fix: Fix depreciated code
  • fix: Fix link binary lib bug
  • fix: Fix pod dependency issue for Alamofire
  • fix: Fix project 1 - 3 code style
  • fix: Fix projects
  • fix: Fix the gif address
  • fix: Fix timer stop bug by adding timer to runloop
  • fix: Fixed a crash when the image cannot be downloaded.
  • fix: Fixed some errors
  • fix: Project - 07 1.optimize the method of idLabel.text string splice. 2.fix bug about wrong dataArray;
  • fix: Reorganize ugly codebase and fix potential retain cycle
  • fix: Update Project 07 with latest RxSwift, fix tap gesture breaking tableview didSelect function
  • fix: [Bug Fix] Add Project 27 back
  • fix: [Contact] Fix delegate, crash bug and implement filter part
  • fix: [Firebase] Fix unsafe unowned part
  • fix: [Project 25] Fix crash issue and update layout for iPhone X
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

soapyigu/Swift-30-Projects was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 70fa254298352558220fc250c268b1b9e5128321 — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.