Hi Everyone - I got DSocial working on React Native with Expo. Wooohooo. It’s an awesome dev experience. Lots of hacks to get it working, but it now works.
Critical issue I have is on physical iOS devices (currently testing on iPhone 11 Pro Max), not virtual devices e.g. Simulators. If at any point I make a call to function on the canister that is NOT a query i.e. a write/update func, in this example an increment function…
The entire app becomes unresponsive. It’s taken me around 3 weeks to find this issue through the sea of code I’ve written, it’s actually very simple, I can make query calls all day long, performance of app is great. BUT If at any time I make a call to function that is a write/update func then the app becomes laggy and unresponsive.
Really need the help of DFINITY team and any React Native devs out there, to help find what could be causing the issue. My thoughts is it’s something do with the BLS verification? I don’t know. But currently DSocial is blocked on releasing to app store until this is resolved. Please look at the patches folder, maybe one of these is causing the issue.
I’ve packed the code into a simple increment/get example repo, here: GitHub - ashr1987/expo-rn-dfinity-icp-slow-bug: Example React Native (in Expo) that shows the UI performance lock up on iOS Devices after making write calls to a canister
I’ve deployed the canister to the mainnet, so you can run this code on a physical iOS device to see the issue live. Instructions are in the README. Hope someone can help