В процессе написания кода пользовательского интерфейса для мобильного приложения очень важно структурировать код таким образом, чтобы внесение изменений в ранее разработанные участки кода, если это потребуется, не составляло труда. Получение окончательного варианта пользовательского интерфейса будет сопровождаться постоянным возвратом к пересмотру ранее принятых вами схем компоновки и навигации. Чтобы эти изменения можно было легко вносить, ваш код должен быть гибким. Для изоляции обработки событий одних элементов управления от обновления других могут эффективно использоваться централизация управления кодом пользовательского интерфейса в конечном автомате и интерфейсные функции, что позволит существенно повысить гибкость вашего проекта. Крайне важно избегать распределения ответственности за управление пользовательским интерфейсом между различными частями приложения; чем больше степень централизации кода, управляющего пользовательским интерфейсом, тем проще его будет модифицировать, если в этом возникнет необходимость. Использование вспомогательных классов для группирования родственных функций пользовательского интерфейса, например, всех обработчиков событий элементов управления, расположенных на данной вкладке, также способствует изоляции кода пользовательского интерфейса от остального кода. Надежно абстрагированный интерфейс между функциональной логикой приложения и логикой уровня представления крайне важен для повышения гибкости проекта. Дополнительным преимуществом создания надежно инкапсулированного кода пользовательского интерфейса является то, что это значительно облегчает перенос вашего мобильного приложения на мобильные устройства других классов.
.NET Compact Framework предлагает некоторые улучшенные возможности пользовательского интерфейса, которые могут пригодиться вам при разработке интерфейсов для многофункциональных мобильных приложений. .NET Compact Framework предоставляет разработчикам возможность создавать пользовательские элементы управления двух видов: 1) пользовательские элементы управления, которые являются производными от класса System.Windows.Forms.Control и реализуют собственные возможности визуализации с нуля, и 2) пользовательские элементы управления, которые реализуют соответствующие свойства поверх существующих элементов управления путем произведения этих свойств от таких не являющихся абстрактными элементов управления, как System.Windows.Forms.Control.TextBox, и расширения свойств последних. Полезны обе разновидности пользовательских элементов управления. Чрезвычайно полезна возможность динамического создания пользовательских элементов управления во время выполнения; создание версии элемента управления .NET Compact Framework во время проектирования может оказаться трудоемкой задачей, и если только создание пользовательских элементов не является одним из сегментов вашей деятельности на рынке, то лучше отказаться от этого шага и просто создавать экземпляры пользовательских элементов управления динамически во время выполнения.
Возможность устанавливать прозрачные цвета при копировании растровых изображений позволяет приложению создавать богатые графические образы, которые могут вам пригодиться в приложениях развлекательного, производственного и научного характера.
Ключом к созданию рисунков с использованием прозрачности при работе с .NET Compact Framework является использование класса System.Drawing.Imaging.ImageAttributes; этот класс позволяет вашему коду устанавливать ключевой цвет, который будет трактоваться как прозрачный при копировании исходного растрового изображения в изображение назначения. Области прозрачности могут оказаться полезными при работе со всеми разновидностями растровых изображений, от текста и фигур, динамически рисуемых на битовых картах, до заранее подготовленных изображений, загружаемых во время выполнения. Используемые растровые изображения могут храниться в виде части двоичного образа вашего приложения; разворачивать приложение значительно легче, если количество файлов, от которых оно зависит, невелико.
Разработка пользовательского интерфейса для мобильного устройства — это трудная, но благодарная работа, которая может доставить массу удовольствия. Она требует проявления незаурядного творчества и понимания того, какая существенная информация должна быть представлена пользователю, и какая метафора средств навигации будет наиболее подходящей. Также чрезвычайно интересно проводить различного рода эксперименты, что позволит вам очень быстро учиться по мере того, как вы будете на практике испытывать самые различные концепции. Как уже отмечалось в предыдущих разделах данной книги, то, насколько производительным приложение кажется пользователю, является очень важным аспектом приложения, которое можно считать удобным в работе. Если вы настроены на поддержание высокой производительности приложения, творчески мыслите и пишете код, предусматривая в нем встроенные средства обеспечения гибкости, то работа и эксперименты в процессе проектирования пользовательских интерфейсов приложений для мобильных устройств значительно расширят ваш опыт и доставят огромное удовольствие.
Читать дальше