{"id":24515604,"url":"https://github.com/magicbell/mobile-inbox","last_synced_at":"2026-05-22T14:10:21.166Z","repository":{"id":228787475,"uuid":"763958035","full_name":"magicbell/mobile-inbox","owner":"magicbell","description":"An example for push notifications with React Native on iOS \u0026 Android, powered by MagicBell.","archived":false,"fork":false,"pushed_at":"2025-02-14T14:17:32.000Z","size":4933,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-10T07:01:59.622Z","etag":null,"topics":["apns","fcm","mobile-pu","notifications","react-native"],"latest_commit_sha":null,"homepage":"https://www.magicbell.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/magicbell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-27T08:17:30.000Z","updated_at":"2025-02-10T18:05:58.000Z","dependencies_parsed_at":"2024-06-04T12:43:13.391Z","dependency_job_id":"3f87d53c-41a7-48d4-b917-1078eeb376eb","html_url":"https://github.com/magicbell/mobile-inbox","commit_stats":null,"previous_names":["magicbell-io/react-native-push-notifications-starter","magicbell/react-native-push-notifications-starter","magicbell/mobile-inbox"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmobile-inbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmobile-inbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmobile-inbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmobile-inbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magicbell","download_url":"https://codeload.github.com/magicbell/mobile-inbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243719373,"owners_count":20336596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apns","fcm","mobile-pu","notifications","react-native"],"created_at":"2025-01-22T01:18:34.156Z","updated_at":"2026-05-22T14:10:16.128Z","avatar_url":"https://github.com/magicbell.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MagicBell Mobile Inbox\n\nThis repo contains an open source mobile client for the MagicBell API, build in React Native. You can use it as an example project on how to setup a React Native app that integrates with MagicBell notifications and push notifications via APNs and FCM.\n\nTo explore the full feature set of MagicBell, and to dive deeper into the API please refer to the [documentation](https://www.magicbell.com/docs).\n\n\u003c!-- omit in toc --\u003e\n## TOC\n\n- [Project Overview](#project-overview)\n- [Prerequisites](#prerequisites)\n- [Starting A Local Development Build](#starting-a-local-development-build)\n- [Building Release Builds](#building-release-builds)\n  - [CI on Xcode Cloud](#ci-on-xcode-cloud)\n\n## Project Overview\n\nThis React Native app is set up using Expo, but does not require an Expo account to be build.\n\nSome of the Expo benefits we tap into are:\n- [Continuous Native Generation](https://docs.expo.dev/workflow/continuous-native-generation/): You will notice no `ios` or `android` folders. They are generated at build time, or by calling `npx expo prebuild`, and are based on a template, configuration in `app.json` and [config plugins](https://docs.expo.dev/config-plugins/introduction/) in NPM packages.\n- [`expo-notifications`](https://docs.expo.dev/versions/latest/sdk/notifications/): This is a mature and well maintained library for adding push notification support to a React Native app. Its core functionality is around capturing device tokens and handling the user intend of opening a push notification. It's our current recommendation, but you are free to choose any other library that implements those features, or even build them yourself in native land.\n\nAll other Expo dependencies are not directly related to the notifications use case, but we use them to build a nice demo, and to further extend the app beyond its example characteristics towards a useful utility for working with MagicBell.\n\n**Note**: Even though Expo offers web as a target platform, this project currently only focuses on iOS and Android.\n\n## Prerequisites\n\nIn order to build the app you will need to have the native tool chains for the platforms you target for: [Xcode](https://developer.apple.com/xcode/) for iOS and [Android Studio](https://developer.android.com/studio) for Android.\n\nYou will also need [NodeJS](https://nodejs.org) and [Yarn](https://yarnpkg.com) for obvious reasons.\n\nMore details on how to set up a React Native dev environment can be found on [reactnative.dev](https://reactnative.dev/docs/environment-setup).\n\n## Starting A Local Development Build\n\nYou can simply get started by running the main dev command, `yarn start`. This will start Metro Bundler and bring up the Expo dev dashboard.\n\n```bash\n# Start Metro\nyarn start\n```\n\u003cdetails\u003e\n\n\u003csummary\u003eYou will be greeted with the Expo dashboard\u003c/summary\u003e\n\n\u003cpre\u003e\nyarn run v1.22.22\n$ expo start -d\nStarting project at /mobile-inbox\nStarting Metro Bundler\n▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n█ ▄▄▄▄▄ █▄▀▀▄▄██▄  █▀▄█▄██ ▀█▀█ ▄▄▄▄▄ █\n█ █   █ ███▄█ ██▄ ▀ ▄█ ▄▀█ █▀▀█ █   █ █\n█ █▄▄▄█ ██▄▀▄▀█▄  ▀▀▄▄▄▄▀ ▄ █ █ █▄▄▄█ █\n█▄▄▄▄▄▄▄█ █ ▀▄▀▄▀ █ █▄█▄█▄▀▄█ █▄▄▄▄▄▄▄█\n█▄▄▀▄▄▀▄██ ▄▄▀ ██   ▀▀██ ▄█ ▀▄▀▄█▀███▄█\n█ █ ▀▄▄▄ █▀█ ▀ █▄ ▀▀▀▄▄ ▄ █▀▄▄ █ █▀▀█▄█\n█  ▀  █▄▄▄ ▄▄▄ ▀ ██▄▄▀█▀ ██▀  ▄▄█▀▄██▄█\n█▄█▄ ▀▀▄███▄ ▄▄█▄ █▄▄ ▄ ███  ▄ █▀▀▀▀  █\n█▀ █▀▄ ▄▄▀  ▀▀▀ ▀ ▀▄ ██▀▄█▄▀ ▄ ▄▀█▄  ▄█\n█  █▀▄ ▄▀▀  ▄▀█▀▄▄██ ▀▄▀ █ ▀▄▀▀█▀▄ █▀ █\n█▀▄▄ ▀█▄▀▄ ▀█▄▄  ▀ ▄  █▄ ▀▀▀ ▄▄▄   ▀▄██\n█▀█▀▀█▀▄ █▀▄█▄█ ▄▀  ▀ ██▄██▀▄██ ▀█▀▀█ █\n█ ▀▀█▄▄▄█▄ ██▀▄▄▀█▀  ▄▄█▀ ▀▀  ▀▄█▀ ▀███\n█ ▄ ▀ ▀▄▄█▄▀█▀▀ ▄▀▄▀ ▀▄▄█▄██▄██▀▀▀  █ █\n█▄█▄███▄▄▀▀█ ▄██▄█▀▄▀██▀▄█ ██ ▄▄▄  ▄▄██\n█ ▄▄▄▄▄ ██▄█▀▄ ▄ ██  █▄▀ ▄ ▀█ █▄█ ▄▄█ █\n█ █   █ █ ▄ ▄▀ █ ▀▄▄ ▀█▄ ▄▀  ▄  ▄▄ █  █\n█ █▄▄▄█ █▀▀▀ ▀ █▄▄▀ ▀ █▀ ██ █▄▀▀▄ ▀▀▀ █\n█▄▄▄▄▄▄▄█▄██▄▄▄█▄▄█▄▄▄▄█▄▄███▄▄▄▄▄███▄█\n\n› Metro waiting on x-magicbell-review://expo-development-client/?url=http%3A%2F%2F192.168.178.22%3A8081\n› Scan the QR code above to open the project in a development build. Learn more\n\n› Web is waiting on http://localhost:8081\n\n› Using development build\n› Press s │ switch to Expo Go\n\n› Press a │ open Android\n› Press i │ open iOS simulator\n› Press w │ open web\n\n› Press j │ open debugger\n› Press r │ reload app\n› Press m │ toggle menu\n› shift+m │ more tools\n› Press o │ open project code in your editor\n\n› Press ? │ show all commands\n\nLogs for your project will appear below. Press Ctrl+C to exit.\n\n\u003c/pre\u003e\n\n\u003c/details\u003e\n\nAt this point you can use the keyboard shortcuts on the dashboard to build and open apps for iOS via `i` or Android via `a`. This will run pre-build, build and open the app in the corresponding emulator or simulator.\n\nIf you want to launch the app on a specific simulator or even device, you can use the `shift+i`/`shift+a` shortcuts, or start another build process from the terminal while keeping Metro in the background by running `yarn ios` or `yarn android` (both of which support additional parameters that can be inspected by passing `-h`).\n\n\n## Building Release Builds\n\nReleases can be build from the native platform projects using Xcode or Android Studio. The first step is to run the native generation using `npx expo prebuild`. From there on follow the platform specific steps to build and submit. While Expo provides [a full guide](https://docs.expo.dev/guides/local-app-production/) to follow, the basic steps for iOS are laid out next:\n\n1. Open the project in Xcode via `xed ios`\n2. Make sure to connect your Apple ID in the Xcode settings under Account. That Apple ID should be a member of a development team, eligible to sign the app.\n3. Build an archived build using Archive in the Product menu. This process will take a minute but will at the end open the Organizer.\n4. From the Organizer you can select \"Distribute App\" and select your distribution target, and proceed to the form.\n\nAfter this the app will be packaged and distributed to TestFlight, from where it will be available to your testers.\n\n\n### CI on Xcode Cloud\n\nThe project is also set up with Xcode Cloud to trigger TestFlight builds on changes to `main`.\n\nThe workflows can be managed in AppStore Connect, by following this [link](https://appstoreconnect.apple.com/teams/1b3ae669-5b2b-4111-8642-fb78ebde9fd0/apps/6739590830/ci).\n\n\n# Troubleshooting\n\nThe React Native community offers many resources that will help you navigate the most common issues:\n\n- [React Native Troubleshooting Guide](https://reactnative.dev/docs/troubleshooting)\n- [Expo Troubleshooting Guide](https://docs.expo.dev/router/reference/troubleshooting/)\n\nMagicBells own resources are also at your availability:\n- The [MagicBell documentation](https://magicbell.com/docs) is a good place to start\n- The [MagicBell community](https://magicbell.com/discussions) is often the fastest way to get help\n\nIf you run into any other kind of problem, please [open an issue](https://github.com/magicbell/mobile-inbox/issues/new).\n\n# License\n\nThis project is build by [MagicBell, Inc.](https://www.magicbell.com) and it's [contributors](./graphs/contributors).\n\nIt is released under the [MIT license](./LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagicbell%2Fmobile-inbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagicbell%2Fmobile-inbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagicbell%2Fmobile-inbox/lists"}