Clip is a simple clipboard manager for iOS

Related tags

SwiftUI App Clip
Overview

Clip

Clip is a clipboard manager for iOS that can monitor your clipboard indefinitely in the background — no jailbreak required.

Swift Version License: Unlicense PRs Welcome

Clip is a simple clipboard manager for iOS. Unlike other clipboard managers available in the App Store, Clip is able to monitor your clipboard indefinitely in the background. This is accomplished through a combination of hacks and workarounds, none of which would pass App Store review. For that reason, Clip is only available to download through AltStore — my alternative app store for non-jailbroken devices — or by compiling the source code yourself.

Features

  • Runs silently in the background, monitoring your clipboard the whole time.
  • Save text, URLs, and images copied to the clipboard.
  • Copy, delete, and share clippings.
  • Customizable history limit.

Requirements

  • Xcode 11
  • iOS 13
  • Swift 5+

Project Overview

All things considered, Clip is a very simple app. The core app target can be mentally divided up into UI and logic, while each additional target serves a specific role.

App UI

The entire UI is implemented with just two view controllers:

HistoryViewController
The main screen of Clip. A relatively straightforward UITableViewController subclass that fetches recent clippings from Clip’s persistent store and displays them in a table view.

SettingsViewController
The settings screen for Clip. Another UITableViewController subclass that displays all Clip settings in a list, but is presented as a popover due to limited number of settings.

App Logic

The app logic for Clip is relatively straightforward. Most is self-explanatory, but there are two classes that serve particularly important roles:

PasteboardMonitor
As you might have guessed from the name, this class is in charge of listening for changes to the clipboard. Since UIPasteboardChangedNotification is only received when the app is in the foreground, this class uses the private Pasteboard.framework to start sending system-wide Darwin notifications whenever the clipboard’s contents change. Once a change is detected, PasteboardMonitor presents a local notification that can be expanded by the user to save their clipboard to Clip.

ApplicationMonitor
This class manages the lifecycle of Clip. Specifically, it is in charge of playing a silent audio clip on loop so Clip can run indefinitely in the background, as well as presenting a local notification whenever Clip stops running (for whatever reason).

ClipKit

ClipKit is a shared framework that includes common code between Clip, ClipboardReader, and ClipBoard. Notably, it contains all model + Core Data logic, so that Clip and each app extension can access the same persistent store with all clippings.

ClipboardReader

ClipboardReader is a Notification Content app extension used to read the clipboard while Clip is running in the background. When Clip detects a change to the clipboard, it will present a local notification. If this notification is expanded, ClipboardReader will be launched and save the contents of the clipboard to disk before dismissing the now-expanded notification.


ClipboardReader in action.

ClipBoard

ClipBoard is a Custom Keyboard app extension that provides quick access to your recent clippings when editing text. This feature is still being worked on, so it is only available in beta versions of Clip for now.

Roxas

Roxas is my internal framework used across all my iOS projects, developed to simplify a variety of common tasks used in iOS development. For more info, check the Roxas repo.

Compilation Instructions

Clip is very straightforward to compile and run if you're already an iOS developer. To compile Clip:

  1. Clone the repository
    https://github.com/rileytestut/Clip.git
    
  2. Update submodules:
    cd Clip 
    git submodule update --init --recursive
    
  3. Open Clip.xcworkspace and select the Clip project in the project navigator. On the Signing & Capabilities tab, change the team from Yvette Testut to your own account.
  4. Build + run app! 🎉

Licensing

Unlike my other projects, Clip uses no 3rd party dependencies. This gives me complete freedom to choose the license I want, so I’m choosing to release the complete Clip source code into the public domain. You can view the complete “unlicense” here, but the gist is:

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

Contact Me

You might also like...
A simple sticker editing iOS app
A simple sticker editing iOS app

StickerMator StickerMator is a SwiftUI based iOS app that runs with iPhone and iPad. using this app you can add stickers to your photos, image manipul

A simple Student Management on an iOS App
A simple Student Management on an iOS App

Student Management XCode Swift App A simple Student Management on an Xcode Swift App Table of Contents About the projects Technologies Features Setup

A simple workout tracker app for iOS

IronLog After having spent a bunch of time in the Xamarin.Forms and Xamarin Native world, I wanted to get my feet wet in native iOS development using

Simple iOS app written with SwiftUI (and, of course, Swift) to begin exploring it.
Simple iOS app written with SwiftUI (and, of course, Swift) to begin exploring it.

WishList Tracking: An exploration with SwiftUI Simple iOS app written with SwiftUI (and, of course, Swift) to begin exploring it. Goal: Get used to Vi

Simple application to manage your task in IOS
Simple application to manage your task in IOS

ToDoList-in-IOS Simple application to manage your task in IOS Functional Require

Red Torch is a very very (very) simple iOS app that allows you to have a red torch using your screen.

RED Torch Red Torch is a very very (very) simple iOS app that allows you to have a red torch using your screen. The App is based on storyboard, so the

MyToDoApp - Simple iOS To-Do app

MyToDoApp A simple iOS To-Do app that I created to get started with iOS developm

Ios-weather-app - A simple weather app with swift
Ios-weather-app - A simple weather app with swift

AHOY Assignment Weather app Main Screen Settings Architecture The Architecture u

EzNews - A simple and easy to use News app for iOS and iPadOS. It uses NewsAPI as its backend

EzNews This was my first proper Swift app. Its a news app made for iOS and iPadO

Comments
  • Only works on iOS 13.5

    Only works on iOS 13.5

    Do you plan on keeping this for iOS 13.5+ or will you be making it available for more iOS versions? I’m currently on 13.3. If there is an ipa that I could just side load with AltStore or ReProvision that would work as well.

    opened by ndub2020 0
  • Use this ipa with AltStore and it should install fine https://f000.backblazeb2.com/file/altstore/apps/clip/1_1_b1.ipa

    Use this ipa with AltStore and it should install fine https://f000.backblazeb2.com/file/altstore/apps/clip/1_1_b1.ipa

        Use this ipa with AltStore and it should install fine https://f000.backblazeb2.com/file/altstore/apps/clip/1_1_b1.ipa
    

    Originally posted by @BJS1206 in https://github.com/rileytestut/Clip/issues/13#issuecomment-1194300870 doesn't work in ios16

    opened by rp4k 0
  • Document switching from silent audio to background location

    Document switching from silent audio to background location

    I was looking to implement similar funtionality in my app, and was confused because I couldn't find any code for playing audio. I then saw commit https://github.com/rileytestut/Clip/commit/6af8056840e6ad3894822769db698c665825ec9c, which changed it to background location. Could you document this in the README? Specifically, this part:

    ApplicationMonitor
    This class manages the lifecycle of Clip. Specifically, it is in charge of playing a silent audio clip on loop so Clip can run indefinitely in the background, as well as presenting a local notification whenever Clip stops running (for whatever reason).

    opened by JJTech0130 0
  • Clip stopped working until I powered my iPhone off and on

    Clip stopped working until I powered my iPhone off and on

    I noticed that Clip wasn’t offering to save anything copied to the clipboard. I hadn’t rebooted my phone for a while, probably not since Altstore had last renewed the App IDs. Rebooting got it working again!

    opened by jefro108 10
Owner
Riley Testut
App developer. Building AltStore and Delta 🇺🇸🇳🇿
Riley Testut
Native and encrypted password manager for iOS and macOS.

Open Sesame Native and encrypted password manager for iOS and macOS. What is it? OpenSesame is a free and powerful password manager that lets you mana

OpenSesame 431 Dec 28, 2022
DEVOTE In this SwiftUI tutorial, we will develop a task manager iOS application with Core Data integration.

DEVOTE In this SwiftUI tutorial, we will develop a task manager iOS application with Core Data integration. This is not a project with a boring user interface. This iOS and iPadOS application provides a personal touch and feel.

Noye Samuel 1 Dec 21, 2021
FSNotes is modern notes manager for macOS and iOS.

FSNotes FSNotes is modern notes manager for macOS and iOS. macOS app Key features Markdown-first. Also supports any plaintext and RTF files. Fast and

null 5.3k Dec 29, 2022
New version of CardinalKit based on the Swift Package Manager and a modularized architecture.

CardinalKit Open-source framework for rapid development of modern, interoperable digital health applications. Contributing Contributions to this proje

Stanford Biodesign for Digital Health 3 Dec 3, 2022
MyNews-iOS - A simple iOS mobile application for reading news articles

MyNews A simple iOS mobile application for reading news articles. This app uses

Ernest Nyumbu 1 Mar 31, 2022
Simple news iOS app with SwiftUI

NewsUI Simple news iOS app with SwiftUI ??️ which uses NewsAPI to fetch top news headlines The codebase uses following modern keys: SwiftUI Async/Awai

Fumiya Yamanaka 19 Dec 22, 2022
Simple iOS app to keep all your Warranties tagged!

Warrenty-Tag A simple iOS app to keep all your Warranties tagged! Description Ever find it difficult to get hold of all your warranties and bills? or

BISHAL KUMAR 1 Dec 21, 2022
This is the simple iOS app for browsing and saving recipes, using Spoonacular API

TastyDojoApp This is the simple iOS app for browsing and saving recipes, using Spoonacular API This project includes: MVVM Pattern Searching through t

null 5 Jul 25, 2022
Simple weather application in Swift for iOS 15.

DaWeather ⛅️ Simple weather application in Swift for iOS 15. General Information DaWeather ⛅️ will help you determine the current weather Features Get

Maksim Pavlovich 2 Jan 16, 2022
A simple iOS App that reads from the Test Flight News API

README Table of contents General info Unit Testing Technologies Revision Updates Setup General info SpaceFlight is a simple app built using the MVVM d

Diego Bustamante 0 Oct 28, 2021