Skip to content

[core][iOS] Replace appContext.imageLoader with the core implementation#41396

Merged
tsapeta merged 2 commits intomainfrom
@tsapeta/ios/replace-image-loader
Dec 4, 2025
Merged

[core][iOS] Replace appContext.imageLoader with the core implementation#41396
tsapeta merged 2 commits intomainfrom
@tsapeta/ios/replace-image-loader

Conversation

@tsapeta
Copy link
Copy Markdown
Contributor

@tsapeta tsapeta commented Dec 3, 2025

Why

Part of the effort to remove the legacy module registry from the AppContext.

How

Instead of depending on expo-image-loader, I moved EXImageLoader to expo-modules-core and let it be used without the module registry. Unfortunately, it still needs the bridge to get an instance of RCTImageLoader. I'm not sure if there is any alternative right now, but at least we can move forward.

As a followup, I'm removing the expo-image-loader package in #41395 as it's no longer needed on both platforms.

Test Plan

The image loader was used only in expo-camera and expo-image-manipulator – I tested them both in bare-expo.

@expo-bot expo-bot added the bot: suggestions ExpoBot has some suggestions label Dec 3, 2025
@expo-bot
Copy link
Copy Markdown
Collaborator

expo-bot commented Dec 3, 2025

The Pull Request introduced fingerprint changes against the base commit: 1ac84d3

Fingerprint diff
[
  {
    "op": "changed",
    "beforeSource": {
      "type": "dir",
      "filePath": "../../packages/expo-image-loader/ios",
      "reasons": [
        "expoAutolinkingIos"
      ],
      "hash": "b0697c0ce6885b52cc9c32d02cdf54f5d056aba5"
    },
    "afterSource": {
      "type": "dir",
      "filePath": "../../packages/expo-image-loader/ios",
      "reasons": [
        "expoAutolinkingIos"
      ],
      "hash": "dfac49a2d0e68d27dd88294bb649233d87794e05"
    }
  },
  {
    "op": "changed",
    "beforeSource": {
      "type": "dir",
      "filePath": "../../packages/expo-modules-core",
      "reasons": [
        "expoAutolinkingIos",
        "expoAutolinkingAndroid",
        "expoAutolinkingIos"
      ],
      "hash": "7a7c1d05c6b0afcac921753a366523e572ec704e"
    },
    "afterSource": {
      "type": "dir",
      "filePath": "../../packages/expo-modules-core",
      "reasons": [
        "expoAutolinkingIos",
        "expoAutolinkingAndroid",
        "expoAutolinkingIos"
      ],
      "hash": "fe65a221d530aba4b3b3ba621339e2ccded1aee2"
    }
  }
]

Generated by PR labeler 🤖

@expo-bot
Copy link
Copy Markdown
Collaborator

expo-bot commented Dec 3, 2025

Hi there! 👋 I'm a bot whose goal is to ensure your contributions meet our guidelines.

I've found some issues in your pull request that should be addressed (click on them for more details) 👇

⚠️ Suggestion: Missing changelog entries


Your changes should be noted in the changelog, e.g.:
- [iOS] Replace appContext.imageLoader with the core implementation ([#41396](https://github.com/expo/expo/pull/41396) by [@tsapeta](https://github.com/tsapeta))
Read Updating Changelogs guide and consider adding an appropriate entry to the following changelogs:


Generated by ExpoBot 🤖 against b6b5ee6

@tsapeta tsapeta marked this pull request as ready for review December 4, 2025 09:53
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Dec 4, 2025

Subscribed to pull request

File Patterns Mentions
packages/expo-modules-core/** @Kudo, @lukmccall

Generated by CodeMention

@tsapeta tsapeta merged commit ba316da into main Dec 4, 2025
6 checks passed
@tsapeta tsapeta deleted the @tsapeta/ios/replace-image-loader branch December 4, 2025 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants