Skip to main content

Instamobile Core Modules

Quick Answer

Instamobile apps share reusable runtime code under src/core. These modules provide common app features such as onboarding, Firebase access, chat, profile screens, camera, location, payments, notifications, media upload, social graph, listings, bookings, delivery, vendors, and reusable UI.

You usually customize the app-specific screens and config first. Edit src/core only when you need to change shared behavior that is used across multiple screens or products.

Source Map

In a current React Native app package, the core module folder is:

src/core

Older documentation or older product packages may mention uppercase core folder casing. Treat that as legacy casing and use src/core in current apps.

Core Modules In Current App Packages

Current app packages use these shared modules. Your app may include only the modules needed by that product.

ModulePathPurpose
Adssrc/core/adsOptional ad placement and monetization helpers.
API helperssrc/core/apiShared API exports used by app-specific modules.
Audio/video callssrc/core/avchatWebRTC/Twilio calling coordination and call state.
AWSsrc/core/awsAWS/Amplify compatibility helpers for AWS-backed apps.
Bookingssrc/core/bookingsAppointment and booking flows.
Camerasrc/core/cameraFull-screen capture and gallery media selection.
Cartsrc/core/cartCheckout and cart UI for commerce apps.
Chatsrc/core/chatConversations, messages, group chat, reactions, and chat APIs.
Deliverysrc/core/deliveryOrder tracking and delivery workflows.
Dopebase UIsrc/core/dopebaseShared theming, base components, forms, and UI primitives.
Favoritessrc/core/favoritesSaved item and favorite item behavior.
Firebasesrc/core/firebaseFirebase app, auth, Firestore, Functions, and Messaging wiring.
Helperssrc/core/helpersShared utilities for collections, time, cache, devices, and notifications.
In-app purchasesrc/core/inAppPurchaseSubscription UI, purchase context, and user subscription state.
Listingsrc/core/listingListing, search, filter, and review APIs.
Locationsrc/core/locationMaps, current location, reverse geocoding, and location picker UI.
Mediasrc/core/mediaMedia upload, processing, and storage provider abstraction.
Mentionssrc/core/mentionsMention parsing and mention-aware UI helpers.
Notificationssrc/core/notificationsNotification screens, reducers, and Firebase notification reads.
Onboardingsrc/core/onboardingAuth screens, walkthrough, login, signup, and auth provider wiring.
Paymentssrc/core/paymentsPayment methods, address capture, payment request, and payment sheet helpers.
Profilesrc/core/profileEdit profile, settings, blocked users, contact us, and form UI.
Reviewsrc/core/reviewReview submission and review reads.
Social graphsrc/core/socialgraphFeed, stories, friendships, comments, reactions, and social APIs.
Storiessrc/core/storiesStory-specific UI and data helpers when included by the app.
UIsrc/core/uiShared navigation and reusable interface helpers.
User reportingsrc/core/user-reportingBlocking, abuse reports, and UGC safety hooks.
Userssrc/core/usersUser profile reads and user lookup APIs.
Vendorsrc/core/vendorVendor, category, admin, and marketplace-style vendor APIs.

Dedicated Module Guides

Use these pages when you need implementation details for a specific module area:

AreaGuide
Backend providers, Firebase, AWS, usersBackend Provider Modules
Auth and walkthroughOnboarding and Authentication
Media processing and uploadMedia Upload and Storage
In-app notification listNotifications Module
Chat and group chatChat Module
Audio/video callsVideo Chat
Social feed, stories, friendships, mentionsSocial Graph, Feed, Stories, and Mentions
Profile and settingsProfile and Settings
Camera and gallery pickerCamera Module
Location and mapsLocation Module
Listings, reviews, saved itemsListings, Reviews, and Favorites
Booking flowsBookings Module
Cart, delivery, vendorsCommerce, Cart, Delivery, and Vendors
Blocking and reportsUser Reporting and Blocking
Payment methods and checkout helpersPayments Module
Store subscriptionsIn-App Purchases and Subscriptions
PayPal method supportPayPal Payments
Ads and monetizationAds and Monetization

How Core Modules Are Wired

Most feature modules follow the same pattern:

Folder or fileRole
index.ts or index.tsxPublic exports for screens, hooks, reducers, and helpers.
api/Backend provider implementations. Many modules include Firebase, AWS, backend, and local variants.
api/index.tsThe active provider export. Change this only when intentionally switching backend strategy.
redux/Legacy Redux state for apps that still use reducers.
hooks/Modern React hooks used by screens and providers.
ui/ or screen foldersReusable UI components and screens.
assets/Module-specific icons and images.

When a module supports multiple backends, do not edit every provider. Pick the provider used by your app and keep the others as reference implementations.

When To Edit Core

Edit src/core when:

  • a bug lives in shared runtime behavior;
  • multiple screens reuse the same module;
  • a backend provider needs to be replaced;
  • a shared hook causes loading, subscription, or permission issues;
  • an app-wide dependency migration requires module changes.

Avoid editing src/core for one-off copy, screen layout, or product-specific configuration. Those changes usually belong in the app screens or config files.

Verification Checklist

After changing a core module:

  1. Search for all imports of the changed API.
  2. Start Metro with a clean cache if the export surface changed.
  3. Run the app that uses the module.
  4. Test at least one happy path and one failure path.
  5. If Firebase is involved, test with real rules and a non-admin user.
  6. If media, payments, location, camera, or push is involved, test on a real device before release.

Useful search commands:

rg "from '.*core/chat|from \".*core/chat" src
rg "useChat|IMChatScreen|IMConversationListView" src
rg "IMLocationSelectorModal|IMCameraModal|IAPConfigProvider" src