Архив метки: разработка

Неизвестная ошибка

Старое наблюдение из области программирования (может и не новое). Разрабатывая некую систему, почти всегда возникает необходимость как-то наружу сообщить об ошибке. Будь то сообщение непосредственно для пользователя программы или же некий код ошибки для других программистов, если разрабатывается некоторый модуль, который в дальнейшем кем-то будет использован в конечном приложении. Типы ошибок как-то классифицируются, и часто среди них находится место некой «неизвестной ошибке» — то есть такой, реальную причину которой разработчику системы трудно идентифицировать по какой-то причине. Программист обычно не «заморачивается» на этот счёт, потому что считает, что данный конкретный вид ошибки будет происходить редко, и точную диагностику откладывает на потом. На практике же в полном соответствии с законами Мёрфи именно этот тип ошибки происходит чаще всего. Многократно подтверждено на личном опыте.

Что плохо в Universal Applications для iOS

С выходом iPad'а и 4-го iPhone нам приходится ломать голову над тем, как продлить жизнь наших старых проектов и на этих устройствах. Apple ставит своих разработчиков перед проблемой, от которой ранее их (нас) оберегала — это неоднородная среда выполнения. Если раньше было целых 3 модели телефонов, которые принципиально мало чем отличались друг от друга с точки зрения возможностей, предоставляемых разработчику. Даже разрешение экранов у них совпадало до пиксела. Теперь это совсем не так: iPad — это вообще устройство несколько другого рода, открывающее новые возможности. На 4-м iPhone тоже увеличили разрешение.

Всё это ведёт к тому, что приходиться в той или иной степени адаптировать программу под разные устройства. В хорошо спроектированной программе на UIKit, где святое триединство Model-View-Controller чётко соблюдено, переделать придётся только слой View и вероятно не обойдётся без изменений Controller'а. Но на самом деле это может затронуть и модель, например, если там, условно говоря, «хранятся» изображения, размер которых связан с разрешением экрана (так у нас в одном проекте). А если речь идёт об игровой программе, коих в аппсторе, мягко говоря, немало, то всё становится ещё сложнее: под каждое разрешение, скорее всего, есть отдельный немалый набор графических ресурсов. В связи с этим всем возникает два важных вопроса:

  1. Технический вопрос: Как теперь распространять программы: отдельные версии для отдельных устройств или один большой монстр для «всего»?
  2. Маркетинговый вопрос: Как бы сбить больше бабла с тех, кому нужна и iPad, и iPhone версия, при этом дав сэкономить тем, кому нужно «или-или»?

Читать далее