
Rider Africa (iOS) Application
Purpose
The Rider Africa app aims to streamline transportation and shipment services across Africa, catering to a wide range of users, from personal ride-hailing to business shipment management. The app supports multi-leg shipments and role-based interactions for customs agents, customer support, and admin. By integrating real-time GPS tracking, secure payments, and robust user management, Rider Africa ensures that users, drivers, and other stakeholders can efficiently coordinate logistics and customer service.
User Experience
Key Features
User and Driver Registration
​
-
Users and drivers can register via Firebase Authentication. The system dynamically loads custom user interfaces depending on the role (user or driver), offering distinct functionalities.
-
Separate UIs are built for Customer Support, Customs Agents, and Admin roles, ensuring that each role can access their specific functionalities, such as resolving customer queries, approving shipments, and managing app settings.
​
Real-Time Shipment and Ride Tracking
​
-
Mapbox is integrated to provide real-time GPS tracking, allowing users to track their rides or shipments.
-
Multi-leg shipment tracking is supported for long-distance shipments, enabling drivers to pick up or drop off packages at designated container shipment centers. The system updates the real-time progress for both users and drivers.
​
Driver and User Selection
​
-
Users can view a list of available drivers and select one based on fares and route preferences. The system ensures that both the user and driver mutually accept the ride, upon which tracking, communication, and fare management features are activated.
​
Navigation and Ride Management
​
-
Drivers use MapboxNavigation to follow optimized routes from their current location to the user's pickup point.
-
Users can observe the driver’s progress via the Driver Observation feature, which mirrors the driver's navigation in real time.
​
Firebase Integration for Real-Time Data
​
-
Firebase Realtime Database is used to store ride details, shipment information, and real-time location updates. All data is synced across multiple devices, ensuring both drivers and users have up-to-date information.
-
Customer Support roles can access live data to assist with ride or shipment-related issues in real time.
​
In-App Communication
​
-
A built-in chat feature allows users and drivers to communicate in real-time, ensuring smooth communication during rides. Chat logs are stored using Firebase, and file sharing (images and documents) is supported for tasks like sharing shipment details.
​
Credit Card Payments and PayPal Integration
​
-
The app supports secure credit card payments using Swift frameworks like PassKit and Stripe for seamless transaction processing.
-
PayPal payments are integrated using the PayPal API, allowing users to pay for rides and shipments with PayPal. The integration ensures a secure and easy-to-use payment system, offering multiple payment options for both users and drivers.
-
Payment information is securely processed, and transaction logs are stored for future reference.
​
Role-Specific Features
Customer Support
​
-
Customer support agents can access ride details and shipment tracking information to assist users and drivers. They can also resolve disputes and escalate issues.
​
Customs Agents
​
-
Customs agents are responsible for approving or rejecting shipments that pass through international container shipment centers. Their role-specific UI provides real-time updates on shipment details.
​
Admin
​
-
Admins can manage app-wide settings, oversee both user and driver activities, and monitor overall app performance via custom dashboards. Admins have access to the Firebase database to review ride and shipment data.
​
Arrival and Shipment Completion Animation
​
-
A custom Lottie animation plays when a driver arrives at the destination or completes a shipment, providing a dynamic and engaging user experience.
​
Fare Management
​
-
Users and drivers can negotiate fares, with transactions conducted in primarily within Namibian dollars (NAD); but also with an array of currencies to choose from. Fares are stored in Firebase, ensuring transparency and easy fare management
Driver Experience
iOS/Swift Techniques Applied
SwiftUI for Dynamic Interfaces
​
Created dynamic UIs for users, drivers, customs agents, and admins, providing distinct interfaces and functionality based on roles. The app leverages SwiftUI’s declarative syntax for building adaptive, responsive views.
​
Mapbox SDK for Navigation and GPS Tracking
​
Integrated Mapbox SDK for live tracking and optimized routing. The NavigationManager class handles navigation state across multiple views.
​
Firebase Authentication and Realtime Database
​
Secure user registration and login using Firebase Authentication. Real-time data synchronization using Firebase Realtime Database to handle ride status, shipment tracking, and role-specific data updates.
​
Real-Time Chat with Firebase
​
Implemented a real-time chat system using Firebase, enabling users and drivers to communicate efficiently. Chat logs and file sharing are managed via Firebase’s real-time data sync.
​
Lottie Animations for User Engagement
​
Incorporated Lottie animations to enhance user experience, particularly for arrival and shipment completion notifications.
​
Role-Based Interface Logic
​
Used conditional logic and state management to load specific features and functionalities based on the role (e.g., driver, user, admin, etc.).
​
Credit Card Payments via PassKit/Stripe
​
Integrated PassKit and Stripe frameworks for handling secure credit card payments, ensuring seamless payment processing.
​
PayPal API Integration
​
Integrated PayPal API for additional payment options, allowing users to make payments via PayPal. The PayPal integration ensures secure and flexible payment processing.
​
MVVM Architecture
​
The app follows MVVM architecture, promoting clean separation between the UI and business logic, ensuring that the code is maintainable and scalable.
Key Features
Programming Language
Swift
​
UI Framework
SwiftUI
​
Real-Time Database
Firebase Realtime Database
​
Authentication
Firebase Authentication
​
Navigation
Mapbox SDK, MapboxNavigation
​
Payment Processing
PassKit, Stripe (for credit card payments), PayPal API (for PayPal payments)
​
Real-Time Communication
Firebase-powered chat with file sharing
​
Animations
Lottie animations for enhanced UI interactions
​
Architecture
MVVM (Model-View-ViewModel)
​
State Management
SwiftUI's state and binding mechanisms for dynamic UI updates
​
Asynchronous Programming
Swift's async/await for handling real-time data synchronization and API requests
​
Cross-Platform Scalability
Built with future expansion capabilities for other platforms like Android.