Would this app be possible to build with Expo (list of features provided)?

I am wondering if the MVP-ish app I am about to build will be possible with Expo.

It’s a relatively simple CRUD-type app with auth (later to include social logins), carts, and payment processing.
The core of the product is essentially user images, and this is where my question lies. I do not want to get halfway into building an app with Expo only to realise this functionality is not possible with the given APIs and have to start over. I need to be able to support:

  1. Selecting user images from phone photos (I’m aware of the ImagePicker https://docs.expo.io/versions/latest/sdk/imagepicker.html).

  2. Selecting user images from Facebook, Instagram, Dropbox.

  3. Detecting image DPI and rejecting anything below requirements (not sure if Expo knows or cares about this).
    Cropping these user images inside a custom square border image (displaying the image printed on a product), while allowing repositioning and rotation. Like below:

  1. Preserve master images (those provided by the user), while persisting crop/rotation data and showing a cropped/rotated version of the photo.

  2. Have a Stripe checkout on both Android and iOS without detaching. I ran into this StackOverflow post which has me concerned: How to implement stripe with react-native using expo? - Stack Overflow.

I’ve read through quite a lot of Expo documentation etc, and am feeling quite good about the possibility of this.

The only thing I have not seen anywhere is the ability for the user to pick photos from third party apps (Instagram, Facebook, Dropbox). Is this completely unrelated to Expo?

Thanks in advance! I am looking forward to joining the community.

hey @isaachinman!

1 You are correct – this is possible with ImagePicker
5 Stripe is supported in our Payments module: https://docs.expo.io/versions/latest/sdk/payments.html

Not sure about 2, 3,4 – cc: @bacon

Selecting user images from phone photos

Also look at CameraRoll. Also we are currently making a way better version of this too. It’ll be released right after half life 3 :stuck_out_tongue_closed_eyes:

Selecting user images from Facebook, Instagram, Dropbox.

Do you have any example of apps that do this, I didn’t know this was a thing. :woman_shrugging::full_moon_with_face:

Preserve master images (those provided by the user), while persisting crop/rotation data and showing a cropped/rotated version of the photo.

ImageManipulator for all your image manipulation needs :grin:

After reading on Expo for the past few days, I believe #5 is going to be the sticking point. To my understanding, it’s currently not possible to use the payments module on iOS without detaching into ExpoKit. For me, this basically negates all of the bonuses of using Expo. It’s also surprising that Expo in this sense only supports non-monetised apps… Not a very wide use-case spectrum.

Hi @isaachinman - you’re right, but payments are especially tricky because currently standalone apps include all apis. We included a Stripe module for payments at one point, but Apple was rejecting other developers’ apps for including this code even though it wasn’t being used. We’re working on coming up with solutions to the larger problem, but don’t have any updates on payments specifically right now, unfortunately :frowning: It is on our roadmap, though.

Yes, I am aware of the reasoning behind it and am pretty disappointed that the functionality exists and works fine, but the ecosystem is broken due to design choices. Sounds like there needs to be some base-level config instead of including all modules in all apps, after all… Until then Expo is not useful for apps which need to accept payments on both platforms.

Thanks for your responses everyone! I think I will have to pass on Expo for this reason. Looking forward to being able to use the project sometime in the future.

See also:

Both of those requests involve the idea of being able to choose which Expo SDK extras are and aren’t included in the app. (Mostly in order to get rid of some, but in this case could work to bring the Stripe SDK in when you know you will use it).

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.