npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

vcrx-record

v1.0.2

Published

This project is set up using [create-react-native-app](https://github.com/react-community/create-react-native-app) by facebook.

Readme

Screen Recorder

This project is set up using create-react-native-app by facebook.

Objective

To enable react native app to make use of native modules, in this case, screen recording module.

Accomplishement

The screen recording feature is able to run on both platforms but the implementation is quite different on each platform.

iOS

ASScreenRecorder is included as an external library to handle the screen recording function. All I need to do is to create RecorderManager which exports the "start" and "stop" module functions for react-native app to call.

The output video will be saved into iOS camera roll, therefore CameraRoll module (which is available from react-native) is used to retrieve the video*.

* In this app, it's naively assumed that the recording is always the latest video in the camara roll.

Android

There seems no libraries similar to ASScreenRecorder on Android and due to the lack of experience on native app development, I have to heavily rely on other people's work to come out with a solution for Android.

To implement screen recording on Android, multiple classes from multiple android packages have to be imported, such as MediaProjection, VirtualDisplay, MediaRecorder and etc. The implementation details are mainly in MainActivity.java.

The output video is stored in external storage of Android for the time being (that means it may not work on devices without external storage). Unlike the implementation on iOS which generate a new copy of video file for each recording session, the same video file will be overwritten again and again on Android with current implementation.

Video playing

Initially since there's only one copy of the video all the time, the file path to the video is deterministic, therefore, a package called react-native-fs is used to obtain the full path of the video from the device and supply to the VideoPlayer component to play.

After exploring "Sending Events to JavaScript", the file path of the video is sent back to react side by emitting respective event. Therefore, react-native-fs is no longer needed and the react side also does not need to memorize the file path anymore.

References

http://www.truiton.com/2015/05/capture-record-android-screen-using-mediaprojection-apis/

https://github.com/vinceyuan/ReactRecorder

https://medium.com/jamesob-com/recording-your-android-screen-7e0e75aae260

https://medium.com/@wenchihhsieh/how-to-record-screen-in-android-ece7eff6bb77

How to run this project locally

Run npm install to install all the dependencies.

Available Scripts

In the project directory, you can run:

npm run ios

Open the app in the iOS Simulator if you're on a Mac and have it installed.

npm run android

Open the app on a connected Android device or emulator.