Мини-обращение к mobile-dev

Пожалуйста, закладывайте оптимизацию потребления ресурсов телефона на старте!

Я понимаю, это прозвучит скорее всего неудобно или даже неправильно для многих разработчиков, поскольку противоречит традиционному правилу о том, что преждевременная оптимизация - зло. Но посудите сами.

Во-первых, немного теории о смысле этого правила. Преждевременная оптимизация - “зло” только лишь потому, что отнимает драгоценнное время, деньги и пространство для манёвра на старте разработки. Уж лучше пусть будет помедленнее, зато код будет гораздо более “прозрачным” и гибким, больше готовым для изменений приложения на лету во время начальной разработки.

Но почему мы считаем, что неоптимизированное приложение - допустимое зло? Ведь это изначально компромисс: никто же не любит тяжёлые и тормознутые приложения, и мы лишь разрешаем себе временно иметь эти тормоза. Это является допустимым злом только лишь потому, что у нас сам потребляемый ресурс как правило весьма обширный (трафик, место на диске, частота кадров, и так далее), и пользователь готов мириться с неоптимальным расходованием во имя бета-теста.

Но всегда ли готов, и всегда ли ресурсы смартфона настолько “жирные”, чтобы не оптимальность оставалось приемлемой? Нет, не всегда. И главный из таких ресурсов здесь - заряд батареи. Никакому пользователю не понравится, что уже используемое им приложение, пускай и в бете, будет потреблять всю его батарею в фоне за пару часов. Да, оно может тупить, оно может занимать много места, в нём может быть много багов. Но батарею, будьте любезны, поэкономьте. Мало кому захочется остаться без заряда в неподходящий момент только лишь из-за того, что установил на телефон бета-версию какого-то приложения. А эти пользователи почти никогда не относят себя к роли тестировщиков приложения, чтобы терпеть неудобства, а уже стремятся пользоваться им по-настоящему.

Поэтому уважаемые мобдэвы, пожалуйста, закладывайте оптимизацию расхода батареи на старте. Отнеситесь к этому не как к преждевременной оптимизации, а как к изначальному требованию, предъявляемому к архитектуре. Как если бы вы продумывали логистику по изначально узкой дороге.