SwiftLock

About

SwiftLock was my dissertation project for my Digital and Technology Solutions degree. The recent popularity of smart devices has highlighted the need for more efficient and user-friendly companion apps. This project aims to streamline the setup of smart devices by developing an application for a smart door lock and developing the hardware using a Raspberry Pi. Various processes are improved by utilising technology such as Bluetooth Low Energy (BLE) and App Clips. The smart lock system also includes a guest access feature, allowing temporary access to the lock, demonstrating the varied uses for the technology. Additionally, a custom communication protocol and message packing system has been developed to work in conjunction with BLE and two characteristics, providing a robust and expandable method for smart devices to communicate wirelessly.

The application utilises App Clips, a backend database, cloud functions and storage. The findings demonstrate that BLE and App Clips significantly reduce the complexity involved in setting up a smart device for the first time and the technology can help improve other processes such as guest setup. The custom communication protocol shows that the system is flexible, maintainable and expandable. Overall, this project contributes to the field by offering a practical solution for enhancing device setup and interaction, highlighting the benefits of using BLE and App Clips for smart home environments.

Features

App Clip

Setup your smart lock or request access without installing an app

Setup

Clear, linear and easy to follow device setup

Encryption

Encrypted traffic during setup and use of the device

Push Notifications

Get informed when guests want to access your lock

Dual Camera

A unique way of verifying guests by taking two pictures at once

Sign in with Apple

Seamless user authentication during device setup

Technology

SwiftUI

The frontend UI was created using modern SwiftUI

Device Interaction Library

Device interaction modularised into a custom library using SPM

CryptoKit

Key exchange performed during device setup

CoreBluetooth

CoreBluetooth is the foundation for device interaction

Firebase

Firebase provides a NoSQL database, authentication and messaging

Python

Used to make prototype lock hardware