@Joe,
You’re asking a couple of different questions it sounds like.
- Can you know (exactly) how large the binary/package for your app will be before building it? No, not really. You can guess, but until you do the build, you don’t know exactly.
Also, be aware that debug builds are not the same size as final builds. Why? Debug builds may contain extra code for debug hooks. Final builds (especially on for iOS) go through additional steps (iOS does PNGCRUSH) which change the final package size.
- How much memory your app uses is a different question. There are different parts to this:
2a. ‘Disk Storage’ - How much space does the app take in the persistent storage on the device. Close to, but not exactly the same as the image size. Why? Storage efficiency is different on different devices (as with disks) and the final size once stored may be a few kilo-bytes larger.
2b. Memory once Loaded - Once the app is loaded it will take up an initial amount of memory. This may grow over time.
2c. Long term memory usage - Over time, memory usage grows (rarely does it shrink). Eventually, you usage may be more than the device can handle. This could indicate a poor design (choice) or a leak.
There are tools available for measuring memory usage (in simulator and on devices). RG Super Meter is one, but if you want to do things on the cheap, you can do memory calculations on your own or hunt for free tools too.
PS -
As with ‘persistent’ storage. Memory usage as you see it in the simulator will vary slightly from what you see on the device, but behaviorally (i.e. leaks and huge growth) the simulator and device will have similar memory usage behaviors. i.e. If you have a leak it will show up in the simulator as well as on the device so you can catch it early with the right instrumentation (tools).