React Native Audiobook & Podcast App (Playback Only, Shopify Login, Offline Support)

Job ID: 40180362

Budget: $3,000 – $5,000 USD

I’m looking for an experienced React Native developer to build a playback-only audiobook & podcast mobile app for iOS and Android.

Important upfront:
This app does not sell anything inside the app.
All purchases happen on our website via Shopify.
The app only unlocks, streams, and downloads content users already own.

If you’ve never shipped an audio-focused React Native app with offline playback, this project is not a good fit.

Core App Goal (Non-Negotiable)

- Users buy audiobooks on our Shopify site
- They log into the app once using email + order code
- The app fetches owned titles and allows:
- Streaming
- Offline downloads
- Podcasts
No in-app purchases, no Stripe, no external payment links

Platforms
- iOS (TestFlight-ready IPA)
- Android (signed APK for Google Play upload)

I will handle all store uploads myself.

Main Features
1. Player Screen
- One-tap play / pause
- 10-second rewind, 15-second fast-forward (buttons + swipe)
- Sleep timer (30 → 5 minutes, slides down)
- Playback speed slider (0.5× – 2×)
- Progress bar + chapter jumps (if files are split)
- Large cover art
- Dark mode toggle
- Same player used for audiobooks and podcasts

2. Library Tabs (Bottom Navigation)
- a. My Books • Folders auto-made: Fiction, Non-fiction, Purchased. • Tap any cover → player opens.
- b. Samples • Grid of the seven hundred titles we sell; free two-minute clip auto-plays on tap.
- c. Podcasts • RSS feed reader—user pastes link or picks from our list. • Downloads new episodes nightly in background. • Same player buttons for podcasts.
- d. Community • Thread list: every book & every podcast has its own post. • Post: title + optional 280-char comment. • Private rooms—admin flips a switch to invite-only. • Push alert if someone replies to you.

3. Offline Playback
• Long-press any audiobook or episode → “Save for Offline.”
• Shows download bar, then moves icon to a little cloud-off tag.
• Expires after, say, ninety days unless they tap refresh. Content expires after ~90 days unless refreshed

4. Login & Sync
- One-time login: email + Shopify order code
- App pulls owned titles via Shopify REST API
- New purchases sync automatically on next app launch

5. Future Subscription Support (Important)
- Build a simple profile flag: subscription_active = true | false

If true:
- Entire catalog unlocks automatically
- No code changes required later
- Purchases always remain web-based

6. Playback Analytics

The player must report events to a small endpoint:

play

pause

seek

end

Payload:

user ID

title ID

timestamp

playback second

This will be off initially but must be implemented cleanly.

Tech Stack (Preferred)

React Native

react-native-track-player

Shopify REST API (private app key)

RSS parsing (e.g., rn-rss-parser)

Firebase Realtime DB (community + notifications)

AWS S3 (signed URLs, 6-hour expiry)

No third-party branding anywhere.

Deliverables

Signed IPA (TestFlight ready)

Signed APK

Clean, commented codebase

Short README explaining:

How to update RSS feeds

How to add new Shopify items

How to change branding assets

Step-by-step notes for Apple Developer & Google Play Console setup

You will not need access to my Apple or Google accounts.

Timeline & Budget

Timeline: 3–4 weeks

Budget: Fixed price, approx $3,500 USD

Milestones required (no lump-sum payments)

Required to Bid (Read Carefully)

Bids without the following will be ignored:

Links to published React Native apps you’ve shipped
(audio playback apps strongly preferred)

Confirmation that you’ve worked with offline audio playback

Confirmation that you will deliver signed IPA & APK without accessing my store accounts

Please answer clearly and directly — no generic sales pitches.

Final Notes

I care about:

Reliability

Clean hand-off

Long-term maintainability

I don’t care about:

Fancy animations

Over-engineering

Agencies hiding the real developer

If this sounds like a good fit, bid with confidence and specifics.