Installations
npm install @freakycoder/react-native-helpers
Developer Guide
Typescript
Yes
Module System
CommonJS
Node Version
20.10.0
NPM Version
10.9.0
Score
74.8
Supply Chain
99.4
Quality
82.7
Maintenance
100
Vulnerability
100
License
Releases
Contributors
Languages
TypeScript (62.44%)
Java (18.17%)
Objective-C (13.16%)
Ruby (2.14%)
JavaScript (1.85%)
Starlark (1.76%)
Shell (0.47%)
Love this project? Help keep it running — sponsor us today! 🚀
Developer
Download Statistics
Total Downloads
157,649
Last Day
22
Last Week
639
Last Month
2,483
Last Year
27,019
GitHub Statistics
MIT License
88 Stars
387 Commits
6 Forks
5 Watchers
4 Branches
1 Contributors
Updated on Feb 13, 2025
Package Meta Information
Latest Version
2.5.0
Package Id
@freakycoder/react-native-helpers@2.5.0
Unpacked Size
109.72 kB
Size
31.97 kB
File Count
53
NPM Version
10.9.0
Node Version
20.10.0
Published on
Feb 05, 2025
Total Downloads
Cumulative downloads
Total Downloads
157,649
Last Day
-54.2%
22
Compared to previous day
Last Week
-15.9%
639
Compared to previous week
Last Month
31.2%
2,483
Compared to previous month
Last Year
-18.3%
27,019
Compared to previous year
Daily Downloads
Weekly Downloads
Monthly Downloads
Yearly Downloads

All helpers in one; iPhone series support, dimensions helper, hasNotch helper, normalize text helper and text helpers for React Native with very easy use
Installation
Add the dependency:
React Native
1npm i @freakycoder/react-native-helpers
DeviceInfo Usage
1import { 2 Screen, 3 ScreenWidth, 4 ScreenHeight, 5 isIOS, 6 isAndroid, 7} from "@freakycoder/react-native-helpers"; 8 9<View> 10 <Container title="Device OS" subtitle={isIOS ? "iOS" : "Android"} /> 11 <Container title="Screen Height" subtitle={ScreenHeight} /> 12 <Container title="Screen Width" subtitle={ScreenWidth} /> 13</View>;
Notch & DynamicIsland Usage
1import { 2 getStatusBarHeight, 3 hasNotch, 4 hasNotchOnly, 5 hasDynamicIsland, 6 getStatusBarHeight, 7} from "@freakycoder/react-native-helpers"; 8 9<View> 10 <Container 11 title="hasNotch?" 12 subtitle={hasNotch() ? "Has Notch" : "NOT notch"} 13 /> 14 <Container 15 title="hasDynamicIsland?" 16 subtitle={ 17 hasDynamicIsland(Screen) ? "Has Dynamic Island" : "NOT Dynamic Island" 18 } 19 /> 20 <Container title="getStatusBarHeight?" subtitle={getStatusBarHeight()} /> 21</View>;
Open Applications or Stores by Linking
1import { openAppInPlayStore, openAppInAppStore, openExternalApp } from "@freakycoder/react-native-helpers"; 2 3openAppInPlayStore('com.example.android'); 4openAppInAppStore('123456789'); 5openExternalApp('com.example.android', '123456789');
Normalize Text Usage
Method to normalize size of fonts across devices
1import { normalizeText } from "@freakycoder/react-native-helpers"; 2 3fontSize: normalizeText(24),
Native Number Format Usage
Method to format the number of your texted number. You can change each options.
1import { numberFormat } from "@freakycoder/react-native-helpers"; 2 3<Text>{numberFormat(50319341)</Text> // Output: 50.319.341 4<Text> 5 {numberFormat(1093495, "en", { 6 style: "currency", 7 currency: "GBP" 8 })} 9</Text>// Output: £ 50.319.341
Configuration - Props
DeviceInfo Props
Property | Type | Description |
---|---|---|
isIOS | boolean | returns if it is an iOS device or not |
isAndroid | boolean | returns if it is an Android device or not |
ScreenWidth | number | get the device's screen width |
ScreenHeight | number | get the device's screen height |
ScreenScale | number | get the device's screen scale ratio |
ScreenFontScale | number | get the device's screen font scale ratio (depends on the user's device font scale setting) |
WindowWidth | number | get the device's window width |
WindowHeight | number | get the device's window height |
WindowScale | number | get the device's window scale ratio |
WindowFontScale | number | get the device's window font scale ratio (depends on the user's device font scale setting) |
PlatformVersion | number | returns the platform version |
ScreenMin | number | get the device's screen width/height which are minimum depend on the landscape or portrait mode |
ScreenMax | number | get the device's screen width/height which are maximum depend on the landscape or portrait mode |
vh | number | get the device's height but as a viewport unit |
vw | number | get the device's width but as a viewport unit |
vmin | number | get the device's screen width/height as a viewport unit which are minimum depend on the landscape or portrait mode |
vmax | number | get the device's screen width/height as a viewport unit which are maximum depend on the landscape or portrait mode |
getDeviceLanguage | string | get the device's language (en_US) |
DeviceInfo Props
getStatusBarHeight, hasNotch, hasNotchOnly, hasDynamicIsland
Property | Type | Description |
---|---|---|
hasNotch | function | returns if the device has notch (returns true for dynamic island!) |
hasNotchOnly | function | returns if the device has notch only, it does not detect if the device has dynamic island |
hasDynamicIsland | function | returns if the device has dynamic island |
getStatusBarHeight | number | returns status bar height of the device |
Utils Props
Property | Type | Description |
---|---|---|
openAppInPlayStore | function(appPackageName) | opens the app on android or Google Play |
openAppInAppStore | function(appStoreId) | opens the app on ios or App Store |
openExternalApp | function(appPackageName, appStoreId) | opens the app on ios or android - handles the platform |
Normalize Text Props
Property | Type | Description |
---|---|---|
normalize | function(number) | returns the normalized font size |
Custom Text Props
Property | Type | Description |
---|---|---|
numberFormat | function(value, locale, options) | returns the number formatted font with its given parameters |
Roadmap
-
LICENSE -
Typescript -
iPhone Series Support -
Dynamic Island - Separate the style helpers from device
- More custom text helpers
- Write an article about the lib on Medium
Author
FreakyCoder, kurayogun@gmail.com
License
React Native Helpers Library is available under the MIT license. See the LICENSE file for more info.

No vulnerabilities found.
Reason
no dangerous workflow patterns detected
Reason
23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Reason
license file detected
Details
- Info: project has a license file: LICENSE:0
- Info: FSF or OSI recognized license: MIT License: LICENSE:0
Reason
packaging workflow detected
Details
- Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:9
Reason
binaries present in source code
Details
- Warn: binary detected: example/android/gradle/wrapper/gradle-wrapper.jar:1
Reason
dependency not pinned by hash detected -- score normalized to 2
Details
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/WrathChaos/react-native-helpers/release.yml/master?enable=pin
- Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/WrathChaos/react-native-helpers/release.yml/master?enable=pin
- Warn: npmCommand not pinned by hash: .github/workflows/release.yml:21
- Info: 0 out of 2 GitHub-owned GitHubAction dependencies pinned
- Info: 1 out of 2 npmCommand dependencies pinned
Reason
detected GitHub workflow tokens with excessive permissions
Details
- Warn: no topLevel permission defined: .github/workflows/release.yml:1
- Info: no jobLevel write permissions found
Reason
Found 0/3 approved changesets -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
- Warn: no security policy file detected
- Warn: no security file to analyze
- Warn: no security file to analyze
- Warn: no security file to analyze
Reason
project is not fuzzed
Details
- Warn: no fuzzer integrations found
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
- Warn: 0 commits out of 27 are checked with a SAST tool
Reason
22 existing vulnerabilities detected
Details
- Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp
- Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw
- Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm
- Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q
- Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw
- Warn: Project is vulnerable to: GHSA-x4c5-c7rf-jjgv
- Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q
- Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38
- Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc
- Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92
- Warn: Project is vulnerable to: GHSA-cwfw-4gq5-mrqx
- Warn: Project is vulnerable to: GHSA-g95f-p29q-9xw4
- Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg
- Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275
- Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695
- Warn: Project is vulnerable to: GHSA-fvqr-27wr-82fm
- Warn: Project is vulnerable to: GHSA-4xc9-xhrj-v574
- Warn: Project is vulnerable to: GHSA-x5rq-j2xg-h7qm
- Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9
- Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv
- Warn: Project is vulnerable to: GHSA-4rq4-32rv-6wp6
- Warn: Project is vulnerable to: GHSA-64g7-mvw6-v9qj
Score
4.2
/10
Last Scanned on 2025-02-17
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More