BoilerplateReactNative icon indicating copy to clipboard operation
BoilerplateReactNative copied to clipboard

Boilerplate react native with redux toolkit, redux listener, fastlane, reanimated, ...

Welcome to the Boilerplate React Native

:fireworks: Clean and minimalist React Native template for a quick start with TypeScript and so much more components.

Current version: 0.69.3

:star: Features

  • Elegant usage directly within the RN-Boiler Cli
  • Fastlane (App center included)
  • Boot Splash
  • Blur Hash
  • Consistent with the default React Native template
  • Minimal additional dependencies
  • Lots of built-in components
  • Native modules
  • Multiple schema ios(Dev/Prod as default)
  • Multiple productFlavors android (dev/prod as default)

Base config (Now u can config on env)

  • Change App name APP_DISPLAY_NAME on env/(.dev/.prod)
  • Change App id BUNDLE_IDENTIFIER on env/(.dev/.prod)
  • Change App version VERSION_NAME on env/(.dev/.prod)
  • Change App build number VERSION_CODE on env/(.dev/.prod)
  • Change App URL API_URL on env/(.dev/.prod)

Change app icon by env

  • Android Source sets
  • IOS follow below step:
    • Create new App Icon assets
    • Change ASSETCATALOG_COMPILER_APPICON_NAME to your respective App Icon Assets (in respective env file)

:arrow_forward: Usage

npx rn-boiler MyApp

Args command:

  • skip install deps:
--skipInstall
  • skip init git:
--skipGit

Preview

## Native module
import {<function_name>} from "@common" 
  • getVersion : Get app version

    const version = getVersion(); 
    
  • getAppName : Get app name

    const appName = getAppName(); 
    
  • getDeviceId : Get device id

    const deviceId = getDeviceId(); 
    
  • getBuildNumber : Get build number

    const buildNumber = getBuildNumber(); 
    
  • setAppBadges : Set app badges (IOS)

    const countBadges = 10; // 0 to clear
    setAppBadges(countBadges); 
    
  • clearNotification : Clear notification on notification center

    clearNotification(); 
    
  • clearCache : Clear cache folder

    clearCache(); 
    
  • checkChannelExist : Check channel Exist (Android)

    const exist: boolean = await checkChannelExist(channelId); 
    
  • deleteChannel : Delete channel (Android)

    deleteChannel(); 
    
  • createChannel : Create channel (Android)

    type Channel = {
    channelId: string;
    channelName: string;
    channelDescription?: string;
    playSound?: boolean;
    soundName?: string; // "default"
    importance?: "DEFAULT" | "HIGH" | "MAX" | "LOW" | "MIN" | "NONE" | "UNSPECIFIED" | undefined; // default HIGH
    vibrate?: boolean;
    };
    createChannel(channel: Channel); 
    
  • fixRotation : Fix image rotate when upload

    type Image = {
    uri: string;
    width?: number;// default 600
    height?: number;// default 800
    };
    type ImageResponse = {
    uri: string;
    name: string;
    };
    const fixedImage = await fixRotation(image: Image); 
    
  • registerPhotosChanges : Register photos changes (IOS) (1)

    registerPhotosChanges(); 
    
  • usePhotosPermissionChange : Hook to check photos permission changes (IOS). ex: Photo selected changes when ask permission (1)

    usePhotosPermissionChange(() => {
    console.log("Changed");
    });
    

(1): Open AppModule.swift, uncomment code to use 2 function

Library

:bookmark: License

This project is MIT licensed.