Skip to content

killlilwinters/StorifyQR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DiplomaPresentationImages 001

Inventory manager based on QR Codes for iOS and iPad OS.

Note: This project was originally created as a showcase of the author's learning and skills developed during the 100 Days of SwiftUI course. While no further feature updates are planned, the project is occasionally updated and improved code-wise as per the author's inspiration.

The goal of this project was to develop an app leveraging the device's camera to scan QR codes affixed to storage containers, enabling users to quickly view their contents and streamline the search process. The project incorporates modern machine learning techniques and advanced storage features to deliver a comprehensive and efficient solution.

DiplomaPresentationImages 013

Screenshots - iOS

iOS-SQR-Screens

Screenshots - iPadOS

iPadOS-SQR-Screens

Implementation

The app is built using the MVVM (Model-View-ViewModel) architectural pattern, incorporating SwiftData's data source implementation to enable seamless access to data outside the UI's struct.

Frameworks and Core Technologies

  • Swift: The primary programming language used in the project.
  • SwiftData: Handles persistent data storage and management.
  • SwiftUI: The main framework for building the user interface.
  • UIKit: Complements SwiftUI for additional UI features.
  • CoreML: Powers the app's machine learning functionality.
  • MapKit: Integrates maps and location-based services.
  • CoreLocation: Determines the user's geographic location, enhancing item location features.
  • TipKit: Provides users with tips to improve app usage and experience.
  • PhotosUI: A modern photo picker framework for streamlined image selection.

External packages

  • No external packages were used for this project.

Challenges and Solutions

During the development of this project, several challenges were encountered and resolved. Some of the key issues include:

  • Bug Fixes and Code Improvements: A series of bug fixes were applied, including addressing QR watermark issues, improving code structure, and ensuring more efficient data handling.

  • UI & UX Enhancements: Multiple user interface improvements were made, such as redesigning the onboarding UI, updating UI elements for different devices (e.g., iPad), and adding animations to enhance the user experience.

  • Location Name Disappearing: Fixed a bug in the ItemDetailView where location names would unexpectedly disappear.

  • Item Duplication and Crash Prevention: Solved issues where adding two items with the same ML tags caused the app to crash, and improved the handling of similar items in the database.

  • Photo Picker Resolution: Enhanced the resolution and handling of images in the PhotosUI framework for better user interaction and smoother app performance.

  • File Import Issues: Fixed bugs related to importing files, including QR code exports and data handling, to ensure seamless user functionality.

  • SwiftData Integration: Improved the integration of SwiftData for persistent storage, ensuring that the data was managed correctly outside of the UI.

  • CoreLocation & MapKit Usage: Refined the integration of CoreLocation and MapKit to ensure accurate location tracking and map rendering.

  • Translation and Accessibility: Fixed translation issues (French, Ukrainian) and added accessibility features, such as reducing motion for a smoother experience across devices.

  • Tag Sorting: Fixed a bug where tags were not sorting correctly, which impacted the user’s ability to filter and manage items effectively.

  • Location Editing and Item Recognition: Worked on improving the location editing functionality and item recognition, ensuring a smoother workflow for users.

Instalation

Follow these steps to build and run the app from source:

1. Clone the Repository

Clone the repository to your local machine using the following command:

git clone https://github.com/killlilwinters/StorifyQR

2. Open the Project in Xcode

Navigate to the project directory and open the .xcodeproj file in Xcode:

3. Set Up Your Development Team (if needed)

In Xcode, go to the Signing & Capabilities section of your project settings and ensure that your development team is selected for the app target. You may need to set up a free or paid Apple Developer account for code signing.

5. Connect Your Device

Connect your iOS device to your Mac. Ensure that the device is properly recognized in Xcode.

6. Select Your Target Device

In the top toolbar of Xcode, select your connected device from the target device dropdown (next to the "Build and Run" button).

7. Build and Run

Click on the Run button (the play icon) in Xcode to build the project and launch it on your connected device.

Note: If you encounter any issues with device provisioning or code signing, you may need to follow the on-screen prompts in Xcode to resolve them.

More

Video presentation can be found by following this link: https://youtube.com/shorts/usKSUovPsIc?feature=share

About

StorifyQR is an app that lets you keep track of your storage by using QR stickers.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages