Cross-Platform Notification & Alert Module

Job ID: 40562519

Budget: $250 – $750 AUD

I need a compact, reusable module that fires push notifications, in-app banners, device vibration, and audible alarms on both iOS and Android. The goal is to drop this code straight into an existing mobile app, expose a clean API, and have every alert behave consistently across the two operating systems.

Here is the core workflow I have in mind:

• From my app I call a single method with a payload (title, body, priority, sound, vibration pattern).
• Your module decides—based on simple rules in code—whether to show a push, an in-app banner, start vibration, play an alarm tone, or any mix of those.
• On iOS it should leverage APNs for pushes and local notifications for everything else; on Android, FCM and the native notification manager.
• All alerts must respect per-platform permission models and battery optimizations.

I have not finalised any third-party back-end yet, so build the interface in a way that lets me wire in specific APIs later without rewriting the core. Clear documentation and a lightweight demo app that proves every alert type is working are critical.

Deliverables
1. Source code for the iOS and Android modules (Swift/Objective-C or Kotlin/Java).
2. A simple bridge or wrapper for cross-platform frameworks (React Native, Flutter or similar) so I can call it from shared code if needed.
3. Setup guide covering permissions, background modes, and any required plist/manifest entries.
4. Demo app and test script that triggers all combinations of push, in-app, vibration, and alarm on both platforms.

Acceptance criteria
• Push arrives in <2 s on a foregrounded or backgrounded device.
• In-app banner renders while the app is open without losing state.
• Vibration and alarm respect Do Not Disturb rules where the OS enforces them.
• All code compiles cleanly in Xcode and Android Studio with no external paid libraries.

If anything is unclear about future backend/API integration, flag it early so we keep the interface future-proof.