Skip to content

CPT-Dawn/Wallspire

Repository files navigation

Wallspire

Wallspire is an in-progress React Native wallpaper and motivation app. It combines daily wallpaper automation, motivational quote delivery, notification scheduling, and premium AI-oriented feature flows inside a polished tab-based UI.

The codebase currently focuses on the product shell:

  • A four-tab navigation model for General, AI, Notifications, and Settings.
  • Local persistence for settings, usage stats, and quote rotation via AsyncStorage.
  • A background task manager scaffold for scheduled wallpaper refreshes and motivational notifications.
  • A dark, gradient-driven design system shared across screens and components.

Features

  • Daily wallpaper toggle and motivational quote of the day.
  • Quote refresh and progress tracking.
  • Notification frequency controls and notification type toggles.
  • AI wallpaper, smart quotes, and adaptive scheduling premium flows.
  • Settings, account, privacy, export, and reset surfaces.
  • Reusable gradient UI primitives and shared theme tokens.

Screens

Screen Purpose
General Core wallpaper controls, quote banner, stats, and quick actions.
AI Premium AI wallpaper, smart quote, and adaptive scheduling prompts.
Notifications Enablement, interval slider, notification categories, and test preview.
Settings Account, privacy, storage, data, support, and upgrade entry points.

Architecture

  • src/navigation contains the bottom-tab navigator.
  • src/screens contains the main user-facing screens.
  • src/services contains local settings, quote, stats, API, and background task logic.
  • src/components contains reusable UI elements such as gradient buttons and settings views.
  • src/theme centralizes colors, typography, spacing, radius, and gradients.
  • android and ios hold the native platform projects and permission configuration.

Service Layer

  • AppServices.ts uses AsyncStorage for settings, quote-of-the-day caching, and app stats.
  • ApiServices.ts defines wallpaper, quote, wallpaper composition, and notification service boundaries.
  • BackgroundTaskManager.ts coordinates wallpaper refreshes, notification intervals, and app state handling.

Tech Stack

  • React Native 0.80
  • React 18
  • TypeScript
  • React Navigation
  • AsyncStorage
  • react-native-gesture-handler
  • react-native-linear-gradient
  • react-native-background-timer
  • @react-native-community/slider
  • react-native-switch
  • react-native-permissions
  • react-native-image-picker
  • react-native-safe-area-context
  • react-native-screens
  • react-native-vector-icons
  • lottie-react-native

Getting Started

Prerequisites

  • Node.js 18 or newer.
  • Android Studio and a JDK for Android development.
  • Xcode and CocoaPods for iOS development on macOS.

Install

npm install
cd ios && pod install && cd ..

Run

npm start
npm run android
npm run ios

Validate

npm run lint
npm test

Available Scripts

Script Description
npm run android Build and launch the Android app.
npm run ios Build and launch the iOS app.
npm start Start the Metro bundler.
npm run lint Run ESLint across the repository.
npm test Run the Jest test suite.
npm run clean Clean Android build artifacts and reset the Metro cache.
npm run clean:ios Remove the iOS build output and reset the Metro cache.

Platform Notes

  • Android permissions include INTERNET, SET_WALLPAPER, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, RECEIVE_BOOT_COMPLETED, WAKE_LOCK, and VIBRATE.
  • iOS App Transport Security is locked down, with local networking allowed but arbitrary loads disabled.
  • Background timers can still be limited by battery optimization and Doze behavior on modern Android devices.
  • The wallpaper, quote, and AI endpoints in src/services/ApiServices.ts are template implementations and require real keys or a backend before production use.

Configuration Notes

  • The navigator lives under src/navigation; wire it through App.tsx if you are extending the shell.
  • The installed app name is still set to Wallpaper in the native project files and app metadata; rename it if you want the on-device label to match Wallspire.
  • Update the placeholder API keys and example endpoints in src/services/ApiServices.ts before connecting the app to production services.
  • Review premium gating and monetization behavior before shipping any AI features.

License

MIT License. See LICENSE for details.

About

Wallspire is a React Native motivation and wallpaper app for Android and iOS, featuring daily wallpaper automation, motivational quotes, notification scheduling, and premium AI-powered feature flows in a polished tab-based interface.

Topics

Resources

License

Stars

Watchers

Forks

Contributors