soapyigu/Swift-30-Projects
39.8
Weak · 28 September 2026
24.6k
lines of production code
Swift
primary language
5
measurements over time
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
Add Interests carousel app with horizontal paging and blur effects
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
Initial release of the Marslink iOS application
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.