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.
Setup your smart lock or request access without installing an app
Clear, linear and easy to follow device setup
Encrypted traffic during setup and use of the device
Get informed when guests want to access your lock
A unique way of verifying guests by taking two pictures at once
Seamless user authentication during device setup
The frontend UI was created using modern SwiftUI
Device interaction modularised into a custom library using SPM
Key exchange performed during device setup
CoreBluetooth is the foundation for device interaction
Firebase provides a NoSQL database, authentication and messaging
Used to make prototype lock hardware