Development of the Generant Mobile Application by Tomi ScattiniDevelopment of the Generant Mobile Application by Tomi Scattini

Development of the Generant Mobile Application

Tomi Scattini

Tomi Scattini

The App

Platforms: iOS and Android
Client: The Regenerative Tourism

Summary

Generant is a cross-platform mobile application I built for The Regenerative Tourism, a tourism-impact platform that measures and makes visible the environmental and social performance of operators. The client is building a verification layer for tourism: operators are assessed across their operational footprint, local integration, and regenerative contribution so travelers can understand the impact behind the places they choose. Generant brings that model into a traveler-focused mobile experience. The app allows travelers to discover assessed tourism operators, explore their profiles and impact scores, create an account, and scan a QR code at a participating operator to record a real visit. Each check-in contributes to a personal record with KPIs covering verified visits, accommodation and experience activity, and average impact scores across the assessment pillars. I built the complete iOS and Android application with React Native, Expo, and TypeScript, including its architecture, interface, authentication flows, API integration, QR scanner, location-aware check-ins, data fetching, localization, and native build configuration.

Challenge/Requirements

The central product challenge was translating a detailed tourism-impact methodology into a mobile experience that remained clear and useful to travelers. The application needed to do more than display a directory. It had to connect assessed operator data with authenticated traveler activity and create a trustworthy record of real-world visits. That meant coordinating public discovery, protected account functionality, native device capabilities, and live API data within one coherent experience. The main requirements included:
Build one mobile codebase for iOS and Android.
Present assessed tourism operators in a searchable and filterable directory.
Display operator profiles with photography, destination information, descriptions, and verified impact scores.
Explain a multi-pillar assessment methodology in language travelers can understand.
Allow travelers to create and verify an account or authenticate with Google and Apple.
Restrict visit recording to authenticated traveler accounts.
Scan operator-specific QR codes through the device camera.
Capture location at the moment of check-in and submit it with the visit.
Reject QR codes that do not match the expected secure operator URL format.
Build a personal impact record from approved visits and aggregated KPIs.
Handle camera, location, authentication, network, and expired-session states clearly.
Support English and Portuguese without duplicating application logic.
Configure native permissions, builds, icons, splash screens, and platform-specific authentication for both mobile platforms.

Solution

Cross-platform application architecture

I built Generant with React Native and Expo, using TypeScript throughout the application and Expo Router for file-based navigation. The same codebase powers the iOS and Android applications while still integrating native capabilities such as the camera, foreground location, Apple Sign In, Google Sign-In, secure deep links, and platform-specific permission handling. The interface is organized around reusable components and focused traveler journeys: onboarding, discovery, operator profiles, QR scanning, and the personal impact record.

Operator discovery and impact visibility

The discovery experience transforms the client's operator assessment data into profiles travelers can compare and understand. Travelers can search the operator directory and filter results by operator type, experience, score band, and strength across the three assessment pillars. Each operator profile combines imagery and destination context with its overall score, score band, assessment date, and individual pillar results. This makes the client's methodology part of the decision-making experience rather than leaving it as separate technical documentation. The app also explains what each pillar measures: operational footprint, local economic roots, and active regenerative contribution.

Traveler accounts and authentication

I implemented the complete traveler account journey, including onboarding, email signup, email verification, login, password recovery, logout, and session persistence. The app also supports native authentication with Google and Apple. Authentication state is shared across the application so public operator content remains available for browsing while protected actions, such as recording a visit, require a valid traveler account. The API layer handles access-token renewal and expired sessions centrally, avoiding duplicated authentication logic across individual screens.

Location-aware QR check-ins

The visit flow connects a physical interaction at an operator with the traveler's digital record. I built a native scanner with Expo Camera and designed the full permission and error-state flow around it. Before a visit is submitted, the app verifies that the scanned value is a secure The Regenerative Tourism check-in URL containing a valid operator identifier. It also requests the traveler's current foreground location and sends those coordinates with the check-in. Invalid codes, denied permissions, unavailable location, network failures, duplicate scans, and unauthenticated access are handled explicitly. After a successful scan, the visit is recorded through the API and the traveler is taken directly to the updated record.

Personal impact record and KPIs

Generant turns individual check-ins into an ongoing account of a traveler's activity. The Record screen presents the history of visited operators alongside aggregate KPIs, including verified visits, accommodation days, number of experience operators, average overall impact score, and averages for each of the three assessment pillars. Recent visits and key metrics are also surfaced on the home screen, making the result of a check-in immediately visible and encouraging travelers to build a longer-term impact record.

Typed API and server-state management

I created a dedicated API service layer for authentication, operators, check-ins, search, and traveler records. Runtime schemas validate API inputs and responses, while TypeScript carries those validated data structures through the application. TanStack Query manages remote state, caching, mutations, pagination, and refresh behavior. Keeping server data separate from interface state made the application easier to reason about and provided consistent loading, success, and failure behavior across its main journeys.

Localization and native delivery

The application supports English and Portuguese through a shared internationalization system, including authentication, discovery, scanning, operator profiles, settings, and impact terminology. I also configured the native application for production delivery with EAS, including separate Android and iOS identifiers, application icons, splash screens, URL schemes, camera and location permission descriptions, and native authentication settings. This work covered the complete mobile delivery layer rather than only the React Native interface.

Impact

Generant gives The Regenerative Tourism a traveler-facing product that connects its assessment methodology with real behavior before, during, and after a visit. Operators are no longer represented only by conventional listings or star ratings: travelers can discover them through verified impact information and understand how each business performs across environmental footprint, local integration, and regenerative contribution. The QR check-in flow closes the gap between browsing and visiting. It creates a direct link between a participating operator, a physical traveler interaction, and a persistent personal record backed by account and location data. For travelers, the result is a practical way to document where they have been and see the combined impact profile of their choices. For the client, the app provides a mobile foundation for making verified operator data visible, building engagement around assessed tourism, and expanding future traveler features such as regeneration points. From an engineering perspective, I delivered the entire cross-platform application and brought together API-driven content, authentication, native device permissions, QR scanning, geolocation, internationalization, and KPI visualization as one cohesive product.

Skills

Mobile
React Native
Expo
Expo Router
TypeScript
iOS
Android
Cross-platform development
Responsive mobile UI Native capabilities
QR code scanning
Camera integration
Foreground geolocation
Native permissions
Apple Sign In
Google Sign-In
Deep linking Application architecture
REST API integration
TanStack Query
Runtime schema validation
Authentication and token refresh
Server-state management
Pagination and filtering
Error-state design Product engineering
Operator discovery
Location-aware check-ins
Traveler activity records
KPI visualization
Impact-score presentation
Multilingual applications Delivery
Expo Application Services (EAS)
Native build configuration
iOS and Android configuration
App icons and splash screens
Like this project

Posted Sep 2, 2026

Developed Generant app for assessing tourism operator impact.