Cart Sample App

See English text below!

Download from App Store

Diese Beispiel-App zum Buch »Swift« hilft dabei, Familien-, Wohngemeinschafts- oder Gruppeneinkäufe zu koordinieren.

Bedienung: Ein Mitglied gründet eine Gruppe. Dazu ist lediglich ein Gruppenname (z.B. »My Family«) und der eigene Name (z.B. »Michael« oder »Papa« oder was auch immer) anzugeben. Damit kann die Einkaufsliste gespeichert und synchronisiert werden. Damit andere Familienmitglieder die Einkaufsliste sehen und bearbeiten können, treten diese der Gruppe bei. Dazu muss ein Sharing-Code in der Form xxxxx-xxxxx sowie ein Name eingegeben werden.

Im weiteren Verlauf gibt es zwei Bedienungsmodi:

  • Im Shopping-Modus arbeiten Sie die Einkaufsliste im Supermarkt (oder wo auch immer) ab. Sie haken jeden Artikel, der in Ihrem Einkaufswagen landet, auf der Liste ab, bis diese leer ist. Sollte ein anderes Familienmitglied noch Last-Minute-Wünsche haben, tauchen diese Artikel nahezu live auf der Einkaufsliste auf.

  • Im Planungs-Modus fügen Sie Artikel zur Liste für den nächsten Einkauf hinzu. Besonders praktisch ist dabei die »History-Sichtweise«, die alle Artikel auflistet, die Sie jemals eingekauft haben. Da üblicherweise immer wieder die gleichen Artikel gekauft werden, können diese mit einem einzigen Tap wieder auf die Einkaufsliste gebracht werden.

Einkaufsartikel werden einer von zehn vorgegebenen Kategorien zugeordnet. Das macht die Liste übersichtlicher. Außerdem gibt es Ihnen die Möglichkeit, einzelne Kategorien ein- und auszublenden. Wenn Sie also gerade in der Obst- und Gemüseabteilung sind, können Sie sich nur die Artikel anzeigen lassen, die Sie dort finden. Das ist vor allem dann sinnvoll, wenn Ihre Einkaufsliste sehr lang ist.

Interna/Datenschutz: Die App verwendet keine Passwörter. Vielmehr wird jeder Gruppe/Familie ein nicht erratbarer UUID (Univeral Unique Identifier) zugewiesen. Der Zugriff auf die Einkaufsliste erfordert das Wissen dieser UUID. Die App merkt sich diese UUID. Die Einkaufsliste wird lokal gespeichert und über einen Server (REST-API) synchronisiert. Der Server-Zugriff erfordert das Wissen der UUID. Die verschlüsselte Kommunikation (HTTPS) ist zusätzlich durch Token mit einer kurzen Gültigkeit von wenigen Minute abgesichert. Abgesehen von den Elementen der Einkaufsliste werden keine persönlichen Daten gespeichert, insbesondere keine IP-Adressen, keine geografischen Daten und keine Daten, die eine Identifizierung des Client-Geräts ermöglichen würden.

Diese App verfolgt keinerlei kommerzielle Interessen und dient nur als Beispiel zum Erlernen der Swift-Programmierung. Der Code ist im Buch Swift — Das umfassende Handbuch beschrieben.

English Text

This sample app for the book »Swift — Das umfassende Handbuch« helps to coordinate family or group shopping.

Setup is easy. You first create a group. All you have to do is enter a group name (e.g. »My Family«) and your own name (e.g. »Michael« or »Dad« or whatever). Your shopping list can now be saved and synchronised. To allow other family members to view and edit the shopping list, they have to join the group. To do so, a sharing code in the form xxxxx-xxxxx and a name must be entered.

Once the setup is done, there are two operating modes:

  • In shopping mode, you work through the shopping list in the supermarket (or wherever). You tick off every item that ends up in your shopping cart on the list until it is empty. If another family member has any last-minute requests, these items will appear on your shopping list directly.

  • In planning mode, you can add items to the list for the next shopping trip. The ‘history view’, which lists all the items you have ever bought, is particularly useful: As the same items are usually bought again and again, they can be added to the shopping list with a single tap.

Shopping items are assigned to one of ten predefined categories (fruit and vegetables, bread, etc.). This makes it easier to organise the list. You can show and hide individual categories. For example, if you are in the fruit and vegetables section, you can display only the items you find there. This is particularly useful if your shopping list is very long.

Privacy, internals: The application does not use passwords. Instead, a unique UUID (Universal Unique Identifier) is assigned to each group/family. Access to the shopping list requires knowledge of this UUID. The application remembers this UUID. The shopping list is stored locally and synchronised via a server (REST API). Access to the server requires knowledge of the UUID. The encrypted communication (HTTPS) is additionally secured by tokens with a short validity of a few minutes. No personal data is stored other than the items on the shopping list. In particular no IP addresses, no geographical information or any other data that would allow the client device to be identified is stored.

This app does not pursue any commercial interests and serves only as an example for learning Swift programming. The code is described in the book Swift — Das umfassende Handbuch.