5 ms·
Well all of those examples were apps with a single target architecture, win32 or win16. These days apps have to compile for multiple architectures especially o
by vinayan3 9y ago
Well all of those examples were apps with a single target architecture, win32 or win16.
These days apps have to compile for multiple architectures especially on Android. Those are all packaged up together. Not only that these days you have multiple sizes for image assets for various pixel densities. On top of it all these days people rely on a lot of external libraries which may or may not be on a phone or system. You can't depend on shared linking like when developing for Windows back in the day.
Not to mention, fonts. Apps these days package up fonts and send them along too.
[Edited for more content]
- Tanegashima 9y agoCase: eBay for iOS .app package: 112.9MB Excluding all the frameworks, all the graphical resources, etc. The binary is a whopping 30.7MB Okay that it has armv7 and armv8, then again, it's already 15 megabyte per architecture. And the App is really simple, specially compared to a fully featured web browser like Opera!
- vinayan3 9y agoIt takes a bit of engineering to cut binary sizes down. It depends on how much they care and the cost they incur by having larger binaries. With building mobile apps you get a prebuilt XCode project and it takes a lot of effort to tinker with it to reduce binary size.
- Tanegashima 9y agoI understand that. But how could the executables? You know, the machine code, get so big. And I'm comparing installers with just the app!
- vinayan3 9y agoThe machine code can be so big because people put huge strings as constants. As I mentioned cutting down binary size comes from working on the code and understand how the complier translate it into machine codes. The compiler could unravel a loop, inline functions, etc... The compiler is making decisions about binary size vs speed for you. There are ways to tell it not to do that.
- flukus 9y agoWhat does the ebay app do that it needs different binaries instead of the standard <whatever an android jar> is called?
- vinayan3 9y agoAPK? Well he's talk about iOS even then on Android you can write native code and compile to armv7 etc... and have optimized binaries for certain CPUs.
- flukus 9y agoAh, didn't realize it was iOS, didn't know iOS ran on multiple architectures for that matter. Is there a reason (other than incompetence) they don't just publish 2 versions for the different CPU's?
- Tanegashima 9y agoThis is iTunes download. When the user downloads, he downloads only the version that works with their CPU.