Mi Shopping List icon

Mi Shopping List

Background

This is currently my latest iOS app. The idea for this app arose while shopping. Because I used the native 'Notes' app from Apple to do my shopping.

But I constantly ran into a few problems, for example when I want to add an article, I'm not always sure if it already exists. Or I can't easily move the article to another place in the list and most importantly I wanted to be able to hide all unselected articles.

So I downloaded multiple shopping list apps but quickly came to the conclusion that none of them had all these functionalities. That left me with only one option, I just had to create my own 😁.

Mi Shopping List Screenshots

Focal Points

Programming icon App Requirements
  • Create Shops
    The option to create multiple custom shops.
  • Create Articles
    The option to create articles in a particular shop.
  • Select Articles
    Every article has a checkbox.
  • Hide Unselected Articles
    One toggle to easily hide all unselected articles.
  • Rearange Articles
    Drag and drop to move items in the list.
  • Search Articles
    Added a search bar to quickly find items in the list.
  • Edit existing Article or Shop
    Every article and shop can be editted.
  • Emojis
    An emoji can be added to each article.
  • Version-control
    GitHub was used for version-control.
  • Show Advertisements
    The app may show advertisements in a banner at the bottom of the screen.
Software icon Used Frameworks
  • SwiftUI
    100% programmatically designed with SwiftUI.
  • CoreData
    The app uses coreData to store all shops and articles with a parent/child relationship.
  • PhotosUI
    Used the singleton pattern to create a reusable NSObject that allows the user to choose photos from his library or take a photo.
  • MessageUI
    Allowing the user to send emails with the native mail app.
  • GoogleMobileAds
    Used to implement the Google AdMob SDK.
  • AppTrackingTransparency
    AdMob uses tracking for ads, so I implemented tracking transparency (mandatory since iOS 14.5).
  • AdSupport
    To run AdMob mobile ads, I implemented a banner ad at the bottom of the screen.
  • @AppStorage
    Used to store small data like the toggle state to hide all unselected articles.
  • @Environment
    The @Environment property wrapper in combination with @Published was used to implement MVVM.

Mi Shopping List Screenshots

What I've Learned

The most important things I learned building this app were to work with coreData and to create a parent/child relationship, use @FetchRequest and work with predicates.

I also learned to combine coreData and the MVVM pattern in SwiftUI.

In addition, I also learned to work with emojis and all the native functionalities for the 'list' object in SwiftUI like swiping, moving and refetching data.


Future Features

Future idea icon New Ideas / Improvements
  • Cloudkit
    Implement cloudkit to share shops, so you can both edit articles.
  • Recipes
    Create recepis and then automatically add the needed articles to the shops.
  • Barcode Scanner
    Scan articles and automatically add them to a shop.
  • Siri
    Use Siri to quickly add articles to a store.
  • Premium Account
    Option to buy premium and stop seeing ads.
  • Shake Gesture
    Shake the device to undo the last action, for example if you accidentally deleted an article.
  • Multilingual
    Support multiple languages.
  • Notifications
    If you are near a shop and you have selected items in that shop, notify the user.
  • Shop Paths
    Let the user add paths in a shop, so the user can drag the articles to that specific path.

Download

Scan the QR code to download the app.

Alternatively you can search the App store for 'Mi Shopping List' or 'Giordano Menegazzi' or use the button below.

Mi Shopping List Download Btn
Mi Shopping List Download QR code