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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@liixing/react-native-ios-utilities

v1.0.0

Published

Utilities for react-native + iOS and wrappers for using swift together with fabric/paper + JSI

Readme

react-native-ios-utilities

build-example-ios

hello, this is a helper library, and doesn’t really do anything on it’s own. This library is meant to be used as a dependency for some other libraries i am making — i.e. as a way to share code, and prevent duplicated logic.

Please see the version compatibility table for reference.

🚧⚠️ Re-Write WIP 🚧⚠️

This library is being re-written to support both the new + old architecture. Please see this is issue for progress 😔

Overview:

  • RNIBaseView: A shared/common “base view” to allow for making native components that work on both fabric (the new architecture) and paper (please see: RNIWrapperView for an example implementation).

  • RNIContentViewDelegate: A delegate that let’s the conforming UIView (written in swift) to manage + communicate with its associated parent fabric/paper view, and handle layout, receive props + async view commands from JS, and dispatch events from native.

  • RNIViewLifecyleEvent: a set of delegates for receiving common view lifecycle events between fabric + paper, as well as receiving events that are either fabric-only or paper-only. Please see RNIBaseViewEventBroadcaster for an overview of what events are supported.

  • RNIContentViewParentDelegate: Exposes useful properties and methods from the parent paper/fabric view (e.g. controlling size/layout, getting the layout metrics, etc).

  • RNIBaseViewController: A base implementation of a view controller that wraps a paper/fabric view and handles its sizing + layout when attached to non-react view.

  • RNIUtilitiesModule: A helper JSI module that allows for sharing sync data between swift and js, and sending async commands to either views that conform to RNIContentViewDelegate, or objects that conform to RNIModuleCommandRequestHandling  (please see the js + swift impl. of RNIDummyTestViewModule for a crude example).

  • Types and Parsing: Contains typescript definitions for native types (e.g. UIKit, CoreGraphics primitives, etc) so they can be represented in JS, as well as the associated code to parse them in native (e.g. InitializableFromDictionary, InitializableFromString, dictionary helpers, etc).

  • Misc: Contains a bunch of helpers + extensions for working with RN across swift/objc/c++, and has a dependency to DGSwiftUtilities for more helpers + utilities written in swift.

Acknowledgements

Development and maintenance of this library was generously sponsored by beatgig from 11/15/2023 to 04/30/2024 at $1,535/month (totaling ≈ $9,100 over the course of 6 months) 🥁🎸

The initial fabric rewrite (i.e. version 5.x) was made possible through a generous $3,750 sponsorship by tamagui over the course of 4 months (from: 05/27/24 to 09/30/24) 🐦✨

very special thanks to: junzhengca, brentvatne, expo, EvanBacon, corasan, lauridskern, ronintechnologies, gerzonc, and edencakir for becoming a monthly sponsor, and thank you fobos531 for being a one time sponsor 🥺 (if you have the means to do so, please considering sponsoring here)

Thank you very much for contributing to this library: SamuelScheit (pr-#6), coolsoftwaretyler (pr-#11), fobos531 (pr-#18, pr-#20), itsramiel (pr-27, pr-28, pr-29), Innei (pr-25) 💫

Installation

npm install react-native-ios-utilities@next
cd ios && pod install

Optional Extra Steps

In your project's Podfile, you can also explicitly set REACT_NATIVE_TARGET_VERSION env. to your specific RN version (see code snippet below).

require 'json'

reactNativeVersion = '0.0.0'
begin
  reactNativeVersion = `node --print "require('react-native/package.json').version"`
rescue
  reactNativeVersion = '0.0.0'
end

reactNativeTargetVersion = reactNativeVersion.split('.')[1].to_i
ENV['REACT_NATIVE_TARGET_VERSION'] = reactNativeTargetVersion.to_s

The REACT_NATIVE_TARGET_VERSION env. variable gets passed as a macro constant, and is used for conditional compilation (e.g. to fix code due to changes with the RN API).

Alternatively, you can just set REACT_NATIVE_TARGET_VERSION env. directly when you invoke pod install (e.g. REACT_NATIVE_TARGET_VERSION=76 pod install).

When you run pod install, you should see the following output in the terminal:

react-native-ios-utilities
 - reactNativeTargetVersion: 0.75.2
 - reactNativeTargetVersionOverride: 76
 - fabric_enabled: true
 - linkage: static

Version Compatibility

| Library Version | Child Libraries / Dependents | | ----------------------------------------------------- | :----------------------------------------------------------- | | react-native-ios-utilitiesVersion: 4.3.x | react-native-ios-context-menuVersion: 2.4.xreact-native-text-input-wrapperVersion: 0.1.xreact-native-ios-adaptive-modalVersion: 0.6.x | | react-native-ios-utilitiesVersion: 4.4.x | react-native-ios-context-menuVersion: 2.5.xreact-native-text-input-wrapperVersion: 0.1.xreact-native-ios-adaptive-modalVersion: 0.7.x | | react-native-ios-utilitiesVersion: 5.x | react-native-ios-context-menuVersion: 3.xreact-native-ios-visual-effect-viewVersion: 0.xreact-native-ios-modalVersion: 3.x |

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT