5 ms·
In short, they are using a third party library (they have not named it though) that accounts to 40% of the app launch time and they deferred loading of this lib
by nblgbg 4y ago
In short, they are using a third party library (they have not named it though) that accounts to 40% of the app launch time and they deferred loading of this library to later point!
- siva7 4y agoThanks, it's astonishing how many teams make this mistake, simply putting some hungry library into the code to solve some story without thinking much further about the overall implications
- robbyking 4y agoI don't know if it's still the case, but some third party libraries are required to run on launch. I worked on a an app where the Facebook login library took 600ms to load, and was required to run on launch.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- saagarjha 4y agoI'm like 90% confident that it's their crash tracking or analytics library :P Edit: It's a framework from Salesforce called "ServiceCore". In case you were wondering it decided that it was necessary to request a list of all frameworks in a static constructor so it could find one that contains a certain class of theirs that does bundle-relative image loading. Pro tip, don't do this.
- __float 4y agoHow can you tell which framework it is?
- saagarjha 4y agoI pulled open the app and looked for frameworks with approximately 9 static initializers, one of which called into NSBundle. ServiceCore was the one that matched.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- js2 4y agoIf it's a crash manager, you have to load it early if you want to catch early crashes. Still, only the Mach exception handler really needs to be installed. I wrote an in-house crash reporting SDK based around PLCrashReporter and the whole thing loads in under 20 ms on a modern device. 200 ms is insane for an SDK, any SDK. Our company had that as its target cold start time to first interaction across all of our apps and it's something we watched religiously as part of launching new app versions.
- deleted 4y ago[deleted]
- hawski 4y agoMost work on making things faster is to give a shit.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]