Mobile
KetabGB
React Native audiobook & podcast app
- Role
- Author
- Period
- 2019 – 2022
- Commits
- 160+ verified
- Targets
- iOS + Android
Overview
KetabGB — a React Native audiobook & podcast player for iOS and Android that I built solo: streaming playback, subscriptions with in-app payment (Charkhone SDK), and catalog discovery over a GraphQL API via Apollo Client with persisted cache.
Jalali-calendar UX (moment-jalaali), Lottie animation, and the Firebase suite (analytics, crashlytics, dynamic links, push) round out the production footprint.
- Shahrzad / ShahrzadUpgradethe RN codebase across its upgrade generations
- Shahrzad/app (KetabGB)the original 2019 codebase
Tech stack
App
- React Native
- react-navigation
- Apollo Client
- GraphQL
Platform services
- Firebase suite
- Charkhone in-app SDK
- Lottie
Persistence
- apollo3-cache-persist
- AsyncStorage
Repository structure
The real source layout:
KetabGB (React Native)
src/ ├─ screens/ player · catalog · profile ├─ components/ shared UI ├─ navigation/ stacks · bottom tabs · top tabs ├─ services/ Apollo GraphQL client ├─ store/ · config/ · constants/ ├─ assets/ android/ · ios/ native projects plugin/react-charkhone-inappsdk payment SDK
Design patterns
GraphQL client with offline cache
Apollo + apollo3-cache-persist keeps the catalog browsable and playback state warm across launches.
Navigation-first structure
Stack, bottom-tab, and material-top-tab navigators compose the whole UX tree.
Native payment bridge
The Charkhone in-app SDK ships as a local RN plugin bridging the store-side subscription flow.