Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
react-native-startup-time
Advanced tools
This module helps you to measure your app launch time. It is measured from the earliest point in time available to the native module, that is the module's initialization. When getTimeSinceStartup
is called on JS side, you'll get a promise which resolves with difference between these two moments in ms. This is not very accurate, but should give you good enough base for further optimizations.
On iOS time measurement is based on this article. On Android SystemClock.uptimeMills is used.
As far as I know, there's no way to programmatically obtain time passed since the moment when user taps on app icon. For this you have to use native dev tools. On Android this module will call reportFullyDrawn
so you can inspect adb logs.
If you know a better way to measure startup time (in a module), let me know or better shoot a PR.
$ yarn add react-native-startup-time
This module supports autolinking so if you use RN 0.60+ then no additional action is required.
Otherwise, run
$ react-native link react-native-startup-time
./android/settings.gradle
, add this:include ':react-native-startup-time'
project(':react-native-startup-time').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-startup-time/android')
./android/app/build.gradle
, add this:implementation project(':react-native-startup-time')
MainApplication.java
, add this:// Import
import com.github.doomsower.RNStartupTimePackage;
// Define package
new RNStartupTimePackage()
Render startup time badge somewhere on your first screen:
import { StartupTime } from 'react-native-startup-time';
<StartupTime
ready={true /* optional, defaults to true */}
style={styles.startupTime /* optional*/}
/>
Or use imperative call:
import { getTimeSinceStartup } from 'react-native-startup-time';
// when you app is ready:
getTimeSinceStartup().then((time) => {
console.log(`Time since startup: ${time} ms`);
});
The following sections are applicable to Android only
This makes sure Android doesn't resolve the getTimeSinceStartup promise more than once per app execution. More information in PR #10.
Since v1.4.0 this strategy is enabled by default, if you're migrating from a previous version and you just want things to keep working as they are, follow the steps below.
Be aware, depending on which lifecycle hook you've attached your call to getTimeSinceStartup()
you might receive redundant invocations, e.g. when the app is brought from bg to fg. Because the app isn't really starting up, the measured time can be unrealistic; such unrealistic samples adulterate your data.
To disable single-sampling strategy, create your package using constructor with parameter false
:
// Define package
new RNStartupTimePackage(false)
FAQs
measure startup time of your react-native app
The npm package react-native-startup-time receives a total of 8,848 weekly downloads. As such, react-native-startup-time popularity was classified as popular.
We found that react-native-startup-time demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.