We recently optimized the DoorDash iOS consumer app launch time by 60% using flame charts, various performance tooling, and optimizing our code for the Swift runtime 🚀
We also tricked the dynamic linker in a pretty silly way 🤪
https://t.co/WmcUs8oxdW
#ios#swift
@srikrishnanunna I updated it to use XCFrameworks instead, which should get us one step closer to SPM. It builds & runs for all simulator & devices now. Feel free to try it out! Thanks for the interest :)
Introducing, XMPFramework. It’s a simple Objective-C++ API for reading/writing XMP data that mimics the `NSUserDefaults` API to provide a natural integration for iOS devs. GitHub: https://t.co/D2jVCLPdDl
I hope it'll come in handy for someone 😀
@srikrishnanunna I'd really want to restructure this project and the Adobe fork to be more compatible with modern package managers and code-generation. That's the right way forward. For now, I recommend that you pull https://t.co/z0A1NIqXqM and generate a dynamic framework directly instead.
@srikrishnanunna Try cloning my repo directly and checking that the tests work. After that, if you have no need for your own fork, you could just use my repo directly
@srikrishnanunna I also think that this might be something that libstdc++ handled better than libc++. I suspect that the issue dates back to when Xcode deprecated libstdc++, but I could be wrong.
@srikrishnanunna I suspect this. The `incl_cpp` files seem to be the implementations of linked functions the wrapper function uses to look up at runtime. That's why that pointer is null, it can't find the generated class at runtime.
@srikrishnanunna I hear you. I tried your settings but ENABLE_CPP_DOM_MODEL isn't enabled for iOS. Hm. I wonder if we could ask for help in the https://t.co/CHJD2B2Ne9 repo. They should be able to reproduce the issue straight from the latest revision in my repo.
@srikrishnanunna https://t.co/WRoZveGHFV
According to the documentation, this line, https://t.co/UEUegWUL5e, is responsible for the code-generation. That is what I suspect isn't working properly.
@srikrishnanunna Yes I pushed them. Tests are not working due to the same code-generation issue. No, all Xcode settings have been saved in the podspec.
@srikrishnanunna It is likely because the Adobe fork has fallen out of date with the latest version. I unfortunately do not have the immediate free time to pull and update it, but feel free if you do
We recently optimized the DoorDash iOS consumer app launch time by 60% using flame charts, various performance tooling, and optimizing our code for the Swift runtime 🚀
We also tricked the dynamic linker in a pretty silly way 🤪
https://t.co/WmcUs8oxdW
#ios#swift