Crossplatform App (iOS + Android + Next.js) to track parcel deliveries 📦 as part of NUWE's Mediamarkt Hackathon Let's Go
What I've used to build this app that works everywhere are some outstanding recent tools like Solito and Expo Router. What are these?
Solito allows you to code your app screens using custom components and navigation that will work both on Android, iOS and Next.js. Expo router allows to build a folder-based navigation which is a delight.
-
Redesigned screens to make the app more accesible and fun to use. More icons and visual content. Here's the figma file
-
Monthly view of available parcels with navigation to daily overview and parcel contents.
- New parcels can be added by typing an ID and a carrier manually.
- Complete input validation with regular expressions and data crosschecking, with meaningful error messages.
- Parcels can be handed over to a driver by typing their name and license plate
- Parcels can be scanned with a camera to get their IDs immediately thanks to
expo-barcode-scanner.
- Most importantly, the same code allows to run both a webApp and a native iOS & Android app. This is great for maintainability and faster iterations.
This is a monorepo that holds the Expo app and the Next.js site.
Inside apps there's:
- The
expoapp and thenextwith their folder based navigations. - In
packagesthere's all the shared packages across apps.appis the most important folder, containing:features- all the screen folderscomponents- its building blocksassets- images and typographydata- files containing all mocked data, provisioanlly instead of an APIprovider- all the providers that wrap the app
To start the app and run it on a simulator, these are the steps that should be followed:
-
The first time, we have to navigate to
apps/expoand runnpx expo run:iosornpx expo run:androidto start running for native. Because of the structure of this monorepo, the app can't be tested through Expo Go, only with simulators with a dev client. -
Then we can navigate to the root of the project and simply run
yarn nativeto run on android or ios andyarn webto run the web app.
- Backend for persistent storage
- Driver's signature
- Layout improvements







