jay (support) wrote:durosity wrote:I suppose part of the logic will be dropping 32 bit libraries, making iOS 11 leaner and a tad faster. Plus then I suppose less overheads for Apple maintaining two sets of components.
Faster? Maybe. Leaner? Unclear. Maintaining backwards compatibility? HUGE win for customer satisfaction.
Of course profit is more important, then you want people to upgrade as fast as you can shove them kicking and screaming...
It is far far more than this. It's also been over 3 years since Apple warned Devs about this...
iOS7 -> allowed 64 bit apps
iOS8 -> 32 & 64 bit in same app
iOS9 -> allowed 64 bit only
iOS10 -> enforced "this app may slow down your phone for 32-bit apps" (er, mostly enforced)
This "may slow down" is true as all 64-bit apps can access system frameworks that are already in memory (via other apps) and don't have to be reloaded for each app to use. As it sits now Indigo Touch has to load all the 32-bit frameworks (for UIKit, Foundation, etc). This *does* slow it down.
Also apps that use large memory databases or files don't swell in size when reading those file.. i.e. Mouseaddict (my Disneyland app) uses rather large overlays for the map and for park locations. Due to the way 64-bit apps allow memory access, Mouseaddict doesn't swell to 4 GB when it reads the database and map tiles. it stays around 100MB-300MB, growing when it uses some, then quickly shrinking it's footprint again when it is over.
All this is not criticizing the Indigo Domotics devs. It's just that I dislike when people say Apple didn't maintain backwards compatibility. There are few people having a non-64-bit iPhone -- and ALSO advanced enough to run (and pay for) Indigo to control their home and buy Zwave products with as fast as THEY are released?
My app shows less than 4% of people running on versions of iOS NOT 64-bit capable...and my app is free - so the cost isn't a limiting factor. Simple upgrade cycles that Apple has gotten their users used to. iOS versions and phones come out annually - mostly. We, as devs, must keep up or must remember not to blame Apple if we don't. Them's the breaks if we wanna be on iOS...which I - as a programmer - do. Do I hate it? Yes. Do I deal? Yes. Did 32->64 scare the bejesus out of me (before i did it?) yep! Was it that hard? Not really. The biggest thing? (and this is a no brainer...) covert all INTs to LONGs and I was more than 1/2-way there. I know all apps are not as easy but that really was 1/2 my battle.
I understand that ensuring all libraries are compatible and running 64-bit is time-consuming. BUT I would posit that it is more time-consuming to ensure the Python version you ship with Indigo is up to date - w/security and bug fixes, etc - as are the plugins you ship. I am sure you are doing roughly the same amount of work ensuring that Python is built with as many optimizations as you can get - in order to ensure Indigo has as few slow-downs as possible.
Just $.02 from a fellow programmer.
Jann