artemnovichkov/iOS-11-by-Examples
👨🏻💻 Examples of new iOS 11 APIs
Stale — last commit 4y ago
worst of 4 axeslast commit was 4y ago; top contributor handles 95% of recent commits…
no tests detected; no CI workflows detected…
Documented and popular — useful reference codebase to read through.
last commit was 4y ago; no CI workflows detected
- ✓6 active contributors
- ✓MIT licensed
- ⚠Stale — last commit 4y ago
Show 3 more →Show less
- ⚠Single-maintainer risk — top contributor 95% of recent commits
- ⚠No CI workflows detected
- ⚠No test directory detected
What would change the summary?
- →Use as dependency Concerns → Mixed if: 1 commit in the last 365 days
- →Fork & modify Mixed → Healthy if: add a test suite
- →Deploy as-is Mixed → Healthy if: 1 commit in the last 180 days
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Great to learn from" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/artemnovichkov/ios-11-by-examples)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card (1200×630)
This card auto-renders when someone shares https://repopilot.app/r/artemnovichkov/ios-11-by-examples on X, Slack, or LinkedIn.
Onboarding doc
Onboarding: artemnovichkov/iOS-11-by-Examples
Generated by RepoPilot · 2026-05-10 · Source
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/artemnovichkov/iOS-11-by-Examples shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
🎯Verdict
WAIT — Stale — last commit 4y ago
- 6 active contributors
- MIT licensed
- ⚠ Stale — last commit 4y ago
- ⚠ Single-maintainer risk — top contributor 95% of recent commits
- ⚠ No CI workflows detected
- ⚠ No test directory detected
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live artemnovichkov/iOS-11-by-Examples
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/artemnovichkov/iOS-11-by-Examples.
What it runs against: a local clone of artemnovichkov/iOS-11-by-Examples — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in artemnovichkov/iOS-11-by-Examples | Confirms the artifact applies here, not a fork |
| 2 | License is still MIT | Catches relicense before you depend on it |
| 3 | Default branch master exists | Catches branch renames |
| 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 5 | Last commit ≤ 1621 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of artemnovichkov/iOS-11-by-Examples. If you don't
# have one yet, run these first:
#
# git clone https://github.com/artemnovichkov/iOS-11-by-Examples.git
# cd iOS-11-by-Examples
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of artemnovichkov/iOS-11-by-Examples and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "artemnovichkov/iOS-11-by-Examples(\\.git)?\\b" \\
&& ok "origin remote is artemnovichkov/iOS-11-by-Examples" \\
|| miss "origin remote is not artemnovichkov/iOS-11-by-Examples (artifact may be from a fork)"
# 2. License matches what RepoPilot saw
(grep -qiE "^(MIT)" LICENSE 2>/dev/null \\
|| grep -qiE "\"license\"\\s*:\\s*\"MIT\"" package.json 2>/dev/null) \\
&& ok "license is MIT" \\
|| miss "license drift — was MIT at generation time"
# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
&& ok "default branch master exists" \\
|| miss "default branch master no longer exists"
# 4. Critical files exist
test -f "iOS-11-by-Examples/AppDelegate.swift" \\
&& ok "iOS-11-by-Examples/AppDelegate.swift" \\
|| miss "missing critical file: iOS-11-by-Examples/AppDelegate.swift"
test -f "iOS-11-by-Examples/DataSource.swift" \\
&& ok "iOS-11-by-Examples/DataSource.swift" \\
|| miss "missing critical file: iOS-11-by-Examples/DataSource.swift"
test -f "iOS-11-by-Examples/Base.lproj/Main.storyboard" \\
&& ok "iOS-11-by-Examples/Base.lproj/Main.storyboard" \\
|| miss "missing critical file: iOS-11-by-Examples/Base.lproj/Main.storyboard"
test -f "iOS-11-by-Examples/CoreML/CoreMLViewController.swift" \\
&& ok "iOS-11-by-Examples/CoreML/CoreMLViewController.swift" \\
|| miss "missing critical file: iOS-11-by-Examples/CoreML/CoreMLViewController.swift"
test -f "iOS-11-by-Examples/ARKit/ARKitViewController.swift" \\
&& ok "iOS-11-by-Examples/ARKit/ARKitViewController.swift" \\
|| miss "missing critical file: iOS-11-by-Examples/ARKit/ARKitViewController.swift"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 1621 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~1591d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/artemnovichkov/iOS-11-by-Examples"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
⚡TL;DR
A collection of runnable Swift example apps demonstrating iOS 11's new frameworks and APIs including ARKit (augmented reality), Core ML (machine learning), Vision (image analysis), Core NFC (NFC tag reading), and Drag & Drop. Each feature gets its own self-contained Xcode target with working code you can build and run immediately on an iOS 11+ device. Multi-target Xcode workspace organized by feature. Main app target (iOS-11-by-Examples/) contains ARKit, Vision, Core ML, MapKit, Drag & Drop examples. Separate app targets for CoreNFC-Example, DeviceChecking, and MessagesFilter (an SMS/MMS filtering extension). Each feature has its own ViewController + Storyboard + Assets.
👥Who it's for
iOS developers learning iOS 11 features who want to quickly understand how to integrate ARKit, Core ML, Vision, NFC, and other new APIs into their apps. It's especially valuable for developers migrating from iOS 10 and needing concrete examples beyond Apple's documentation.
🌱Maturity & risk
Experimental/archived. Last commit appears to be from iOS 11 era (Xcode 9.3, Swift 4.1 badges visible), making this ~6 years old. No visible test suite. This is a learning resource, not a production library—its value is educational code examples, not ongoing maintenance.
Low risk for learning purposes, but do not depend on this for production code. iOS 11 APIs have evolved significantly (Swift 4.1 → 5.x, iOS 11 → 17+). The codebase is stable but frozen in time; it's a teaching tool, not an actively maintained SDK. No CI/CD visible in file structure.
Active areas of work
Nothing—this is an archived educational repository from iOS 11's launch period. No active development, PRs, or issues visible. It serves as a static reference for how those specific iOS 11 APIs were used circa 2017–2018.
🚀Get running
Clone the repo, open iOS-11-by-Examples.xcodeproj in Xcode 9.3+ (or newer, with compatibility warnings), select a scheme (e.g., 'iOS-11-by-Examples', 'CoreNFC-Example', 'DeviceChecking'), and run on an iOS 11+ simulator or device:
git clone https://github.com/artemnovichkov/iOS-11-by-Examples.git
cd iOS-11-by-Examples
open iOS-11-by-Examples.xcodeproj
Select a target scheme and press Cmd+R to build and run.
Daily commands: Open the .xcodeproj file in Xcode 9.3 or later. Select the desired scheme from the dropdown (iOS-11-by-Examples, CoreNFC-Example, DeviceChecking, or MessagesFilter). Press Cmd+R or Product > Run to launch on the selected simulator/device. Some features (ARKit, NFC, DeviceCheck) require a real device.
🗺️Map of the codebase
iOS-11-by-Examples/AppDelegate.swift— Main app entry point; initializes all example modules and navigationiOS-11-by-Examples/DataSource.swift— Central registry of all feature examples (ARKit, CoreML, CoreNFC, etc.) that drives the table view navigationiOS-11-by-Examples/Base.lproj/Main.storyboard— Primary UI flow and navigation structure connecting all feature examplesiOS-11-by-Examples/CoreML/CoreMLViewController.swift— Demonstrates Core ML image classification; shows pattern for ML model integrationiOS-11-by-Examples/ARKit/ARKitViewController.swift— ARKit implementation example; heaviest framework usage in codebaseiOS-11-by-Examples/Common/UIViewController+Alert.swift— Shared UI utility extension used across all feature examplesiOS-11-by-Examples.xcodeproj/project.pbxproj— Build configuration; manages 4 separate app targets (main app + 3 extensions)
🛠️How to make changes
Add a New iOS 11 Feature Example
- Create a new folder in
iOS-11-by-Examples/[FeatureName]/(iOS-11-by-Examples) - Create a new ViewController file (e.g.,
FeatureViewController.swift) implementing the feature (iOS-11-by-Examples/ARKit/ARKitViewController.swift) - Create a Storyboard file with corresponding scene and wire it to the ViewController (
iOS-11-by-Examples/ARKit/ARKit.storyboard) - Add a new entry to
DataSource.swiftwith feature name, description, and storyboard identifier (iOS-11-by-Examples/DataSource.swift) - Add any necessary assets to
Assets.xcassetsor create a.scnassetsfolder for 3D content (iOS-11-by-Examples/Assets.xcassets)
Create a New App Extension (e.g., Messages Filter, Device Checking)
- Create a new target in Xcode with the appropriate extension type template (
iOS-11-by-Examples.xcodeproj/project.pbxproj) - Implement the extension's main class (e.g.,
MessageFilterExtensioninheriting fromILMessageFilterExtension) (MessagesFilter/MessageFilterExtension.swift) - Add required entitlements file (
.entitlements) for the target (MessagesFilter/MessagesFilter.entitlements) - Configure the extension's
Info.plistwith required keys and bundle identifier (MessagesFilter/Info.plist) - Update the main project's
project.pbxprojto include the new target as a dependency (iOS-11-by-Examples.xcodeproj/project.pbxproj)
Integrate a Machine Learning Model (Core ML)
- Add the
.mlmodelfile to theCoreML/folder; Xcode will auto-generate a Swift interface (iOS-11-by-Examples/CoreML/Inceptionv3.mlmodel) - Create a UIImage extension to convert images to CVPixelBuffer format expected by the model (
iOS-11-by-Examples/CoreML/UIImage+CVPixelBuffer.swift) - In the ViewController, instantiate the model, convert input image, run prediction, and display results (
iOS-11-by-Examples/CoreML/CoreMLViewController.swift)
🔧Why these technologies
- Swift 4 & Xcode 9.3 — Native language for iOS development; required for iOS 11 API access and modern syntax
- Storyboard + UIViewController — Provides visual navigation flow and rapid prototyping of multiple feature examples in a single project
- Core ML with Inceptionv3 model — Demonstrates on-device machine learning for image classification without server roundtrips
- ARKit with SceneKit — Required for augmented reality features; SceneKit provides 3D rendering of models in real-world environment
- App Extensions (Messages, Device Check) — Showcase new extension points in iOS 11; separate targets demonstrate how to package extensions alongside main app
⚖️Trade-offs already made
-
Single Xcode project with 4 targets instead of separate repositories
- Why: Keeps all examples cohesive and easy to navigate; shared code can be reused
- Consequence: Build system complexity increases; extension targets must maintain separate entry points and entitlements
-
Use pre-trained Inceptionv3 model without retraining
- Why: Simplifies demo; showcases Core ML inference rather than model training pipeline
- Consequence: Limited to object classification; cannot customize model for domain-specific use cases
-
No backend API or cloud services
- Why: Examples run entirely on-device; focus is on iOS 11 framework capabilities
- Consequence: Device Check and NFC examples cannot demonstrate real-world server-side verification workflows
🚫Non-goals (don't propose these)
- Production-grade error handling or crash reporting
- Network synchronization or real-time data streaming
- User authentication or account management
- Persistent data storage beyond UserDefaults
- Cross-platform or Android support
- Accessibility (VoiceOver, dynamic font sizes)
- Internationalization/localization
- App Store submission or release cycle management
🪤Traps & gotchas
CoreNFC requires provisioning profile with NFC capability enabled in Apple Developer account; app runs on device only, not simulator. ARKit requires A9 chip or later and only runs on physical devices. Vision and Core ML examples may have model files (.mlmodel) stored via Git LFS or not included—check if you get build errors. Storyboards reference ViewController classes by name; refactoring a ViewController class name breaks the storyboard binding silently until you rebuild. MessagesFilter target requires Messages app to be configured as the default SMS handler to test the extension.
🏗️Architecture
💡Concepts to learn
- ARKit Session & SceneKit Integration — ARKit manages device tracking and camera frames; SceneKit renders 3D geometry into the AR view—understanding this pairing is essential for any iOS AR feature
- Core ML Model Inference — Core ML compiles trained models (from Create ML or TensorFlow) into optimized iOS code; this repo shows how to load and predict with pre-trained models
- Vision Framework Request Pipelines — Vision uses request objects (VNDetectFaceRectanglesRequest, VNDetectFaceLandmarksRequest) chained together for multi-step image analysis
- NFC NDEF Message Encoding — Core NFC parses NDEF (NFC Data Exchange Format) records; understanding record types (URI, text, media) is critical for NFC tag reading
- App Extensions & Entitlements — MessagesFilter target demonstrates extension architecture (separate bundle, IPC with host app) and provisioning profile entitlements required for OS-level hooks
- DeviceCheck Device Tokens & Attestation — DeviceCheck generates unique per-device tokens for fraud detection and promotional tracking without tracking PII; requires server-side Apple APIs
- Drag & Drop UIInteraction API — iOS 11 unified drag-drop across UIView via UIDragInteraction and UIDropInteraction; decouples drag sources from drop targets for flexible UI composition
🔗Related repos
hollance/CoreMLHelpers— Utility library already credited in the README; used by this repo for simplified Core ML model handlingapple/swift-coreml-transformers— Official Apple repository for modern Core ML model integration; shows how Core ML examples evolved beyond iOS 11raywenderlich/ios-learning-materials— Broader collection of iOS learning resources that includes similar API example patterns for comparisonAlamofire/Alamofire— Complementary networking library often paired with iOS apps that use Core ML and Vision for remote model updatesstephencelis/SQLite.swift— Related examples for data persistence that would accompany the DeviceCheck and Vision+ML use cases in real apps
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Complete Vision framework example (partial README)
The README.md shows 'Vision' in the table of contents but the snippet cuts off mid-sentence at 'Image classification demo using Co'. The Vision example appears to be missing or undocumented. A contributor could implement a complete Vision framework example (e.g., face detection, text recognition, or barcode detection) with corresponding storyboard/ViewController and update the README with full documentation.
- [ ] Create iOS-11-by-Examples/Vision/ directory with VisionViewController.swift and Vision.storyboard
- [ ] Implement a Vision API example (e.g., VNDetectFaceRectanglesRequest or VNRecognizeTextRequest)
- [ ] Update README.md to complete the Vision section with description and feature list
- [ ] Add Vision example to iOS-11-by-Examples.xcodeproj and create xcscheme in xcshareddata/xcschemes/
Add Core ML example implementation and documentation
The README references Core ML as the first item in the table of contents, but there's no CoreML-Example directory visible in the file structure. A contributor could add a complete Core ML example showing image classification using a pre-trained model (e.g., MobileNet or Inception), including the .mlmodel file, a ViewController, and storyboard.
- [ ] Create iOS-11-by-Examples/CoreML/ directory with CoreMLViewController.swift and CoreML.storyboard
- [ ] Include a sample .mlmodel file (or instructions to download one from Apple's ML model collection)
- [ ] Implement image classification logic using MLModel and Vision frameworks together
- [ ] Add CoreML-Example scheme to iOS-11-by-Examples.xcodeproj and update README with CoreML section details
Add GitHub Actions CI workflow for Xcode build validation
The repository has a .github/stale.yml configuration but no build/test CI workflow. A contributor could add a GitHub Actions workflow to automatically build the Xcode project on push/PR to catch compilation errors and ensure all schemes compile successfully with the specified Xcode 9.3+ and Swift 4.1+ requirements.
- [ ] Create .github/workflows/xcode-build.yml with iOS build job
- [ ] Configure the workflow to build all schemes: CoreNFC-Example, DeviceChecking, MessagesFilter, iOS-11-by-Examples
- [ ] Set macOS runner version and Xcode version (9.3 or compatible)
- [ ] Test the workflow locally or on a fork to verify all schemes build without errors
🌿Good first issues
- Add unit tests for Core ML image classification—create Tests/ folder and test CoreMLHelpers model loading and prediction accuracy on sample images
- Document the Vision framework examples with detailed comments explaining face detection, landmarks, and object tracking pipelines; currently code is sparse on explanation
- Create a simple integration example combining ARKit + Core ML to identify objects in AR space and label them in real-time (proof-of-concept)
⭐Top contributors
Click to expand
Top contributors
- @artemnovichkov — 95 commits
- [@Artem Novichkov](https://github.com/Artem Novichkov) — 1 commits
- [@Bartosz Janda](https://github.com/Bartosz Janda) — 1 commits
- [@Michał Kowalski](https://github.com/Michał Kowalski) — 1 commits
- @LisaDziuba — 1 commits
📝Recent commits
Click to expand
Recent commits
d39d069— Delete FUNDING.yml (artemnovichkov)3ad322e— Update README.md (artemnovichkov)d5fc006— Update README.md (artemnovichkov)6680a01— Update README.md (artemnovichkov)13028da— Update README.md (artemnovichkov)0b3619b— Create FUNDING.yml (artemnovichkov)d1f6397— Merge branch 'master' of https://github.com/artemnovichkov/iOS-11-Sampler (artemnovichkov)de47570— Update with Xcode 9.3 and Swift 4.1 (artemnovichkov)20c8516— Update README.md (artemnovichkov)7f56dcf— Update README.md (artemnovichkov)
🔒Security observations
This iOS example repository demonstrates relatively good security practices as a public educational project. The main concerns are outdated toolchain versions (Xcode 9.3, Swift 4.1) which lack modern security features, and potential input validation gaps in NFC payload handling. The codebase lacks visible vulnerabilities related to injection attacks, hardcoded secrets, or major misconfigurations. For a modern production application, updating the development environment and implementing stricter input validation would be critical. As an educational repository, the security posture is acceptable, but should be clearly marked as using legacy tooling.
- Medium · Outdated Xcode and Swift Version —
README.md, project configuration. The project requires Xcode 9.3 and Swift 4.1, which are significantly outdated (released in 2018). These versions contain known security vulnerabilities and lack modern security features and compiler hardening options available in current versions. Fix: Update to the latest stable versions of Xcode and Swift. Ensure all dependencies are compatible with current iOS and toolchain versions. - Medium · Missing Input Validation in NFC Payload Handling —
CoreNFC-Example/CoreNFCViewController.swift, CoreNFC-Example/PayloadTableViewCell.swift. The CoreNFC-Example includes PayloadTableViewCell.swift and CoreNFCViewController.swift which handle NFC tag data. Without visible validation logic, there's a risk of processing malformed or malicious NFC payloads. Fix: Implement strict validation and sanitization of all NFC payload data before processing. Validate data types, lengths, and content against expected formats. - Low · Message Filter Extension Security —
MessagesFilter/MessageFilterExtension.swift. The MessagesFilter extension uses MessageFilterExtension.swift but the implementation details are not visible. Message filtering extensions have access to message metadata and require careful handling to prevent information disclosure. Fix: Ensure the message filter extension only processes necessary metadata, implements proper error handling, and does not log sensitive message content. - Low · Generic Alert Helper Implementation —
iOS-11-by-Examples/Common/UIViewController+Alert.swift. The UIViewController+Alert.swift extension provides alerts throughout the application. Without visible implementation, there's a potential risk of improper error message handling that could expose sensitive information. Fix: Review alert implementation to ensure error messages don't expose sensitive technical details. Implement localization for user-facing messages. - Low · Public Repository with Example Code —
Repository root and all subdirectories. This is a public GitHub repository containing example code for iOS 11 APIs. While examples are intended to be shared, ensure no sensitive data (API keys, certificates, or test credentials) are committed. Fix: Maintain a .gitignore file that excludes sensitive files. Use environment variables or secure configuration management for any credentials. Conduct regular audits of committed code.
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.