Программирование мобильных устройств на платформе .NET Compact Framework - [5]

Шрифт
Интервал

Успех определяется несколькими ключевыми факторами

Успешность технического решения зависит от того, насколько удачными были проектные решения. Главную роль в этом играет умение выделить самое главное, отделить зерна от плевел и обозначить ключевые моменты, на продумывание которых стоит затратить свое драгоценное время. В любом деле можно легко отличить специалиста, который делает все "легко и непринужденно", от пыхтящего от натуги новичка. Причина этого очень проста: специалист способен делать все с изящной легкостью потому, что ему это дается действительно легко! Он сразу же интуитивно понимает, на чем необходимо сосредоточить свои усилия, а на что можно просто не обращать внимания. В то же время не обладающий достаточным опытом новичок изводит себя, пытаясь сосредоточиться одновременно на всем, что и заканчивается результатом, предсказать который не представляет особой сложности. Каждый, кому довелось пройти путь от начинающего лыжника или виндсерфера (два вида спорта, для которых характерна очень крутая кривая обучения) до уровня специалиста, сможет по достоинству оценить справедливость этого утверждения. Иногда даже сами специалисты не могут сказать, что именно делает их специалистами, а просто знают, как правильно сделать то-то и то-то (временами такая их позиция буквально бесит новичков, ожидающих от них хоть каких-то объяснений). Обучение тому, как выделить главное, на чем следует сконцентрироваться, является ключевым аспектом становления специалиста. Можно воспользоваться близкой аналогией из области математики, приведя в качестве примера "эффекты первого порядка" в их противопоставлении эффектам "второго, третьего и более высоких порядков", где идея состоит в том, что в любом конкретном уравнении с множеством отдельных членов имеются малозначительные факторы и факторы, с которыми "действительно следует считаться" Общее поведение системы определяется эффектами нижайших порядков. Точно так же обстоит дело и с разработкой мобильного программного обеспечения: здесь все имеет значение, но одни факторы играют гораздо более важную роль, чем другие.

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

1. Сфера применения приложения. Очень важно ясно представлять себе, как в общих чертах, так и на уровне конкретных пользовательских сценариев, какие задачи должно решать данное мобильное приложение. Это утверждение может казаться слишком очевидным, но современные программные проекты буквально "напичканы" всевозможными "уникальными средствами" и обеспечивают достижение целей, ценность которых вызывает сомнения, что и стало причиной краха целого ряда многообещающих проектов, как крупных, так и небольших. Не стоит особняком в этом смысле и мобильное программное обеспечение. Успешные мобильные приложения должны острее фокусироваться на решении частных задач и преследовать еще более конкретные цели, чем их аналоги, выполняющиеся на настольных компьютерах и серверах. Очень важно отчетливо представлять себе, в решении каких задач данное приложение должно оказать помощь пользователю. Так же, если не еще более важно, сформулировать, чего данное приложение делать не должно. Отчетливая направленность приложения имеет критическое значение.

2. Производительность. Составив общее представление о том, каким должно быть ваше мобильное приложение, и установив сферу его применения, вы должны проанализировать все факторы, от которых зависит производительность приложения. Производительность мобильного приложения определяет его успешность в гораздо большей степени, чем любая другая характеристика. Быстрота ответной реакции мобильных приложений должна превышать ту, которая считается нормальной для приложений, выполняющихся на настольных компьютерах и серверах. Не обеспечив отличную производительность, вы не сможете перекрыть этот недостаток никакими другими проектными решениями. Представьте только, насколько вы были бы раздражены, если бы ваш телефон не позволял вводить номера с той скоростью, с какой их можно набирать на клавиатуре; пользователи мобильных устройств требуют от них высокой скорости ответной реакции. Очень важно подчеркнуть, что путь к повышению производительности лежит не через построчную оптимизацию кода вручную (во многих случаях это заведомо обречет вас на неудачу), а через понимание того, что именно является самым важным с точки зрения конечного пользователя, с последующей концентрацией на этом всех ваших творческих усилий и мастерства проектировщика, чтобы приложение показало себя с самой лучшей стороны.

3. Продуманный дизайн пользовательского интерфейса. Пользовательские интерфейсы мобильных устройств должны обеспечивать безошибочный и интуитивно понятный доступ к элементам управления. Интерфейсы этой категории весьма отличаются от тех типичных интерфейсов, которые предлагаются пользователям приложений, предназначенных для настольных компьютеров. Наряду с различиями в физических свойствах дисплеев и механизмов ввода различными являются и типичные способы использования интерфейса. Кроме того, не все конечные пользователи имеют одинаковый предыдущий опыт работы и в равной степени хорошо знакомы с приложениями для настольных компьютеров и вашими целевыми мобильными устройствами, что выдвигает дополнительные требования к дизайну пользовательского интерфейса. Разработка подходящего пользовательского интерфейса требует практики и носит итеративный характер. Сначала вы разрабатываете первоначальный вариант интерфейса, а далее переделываете его не один раз, пока ваше мобильное приложение не сможет обеспечить для пользователя все необходимые условия работы. Код приложения должен быть достаточно гибким, чтобы обеспечить вам свободу внесения в проект многократных изменений. Это является одновременно и наукой, и искусством.


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Язык PL/SQL

В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Параллельное программирование на С++ в действии. Практика разработки многопоточных программ

В наши дни компьютеры с несколькими многоядерными процессорами стали нормой. Стандарт С++11 языка С++ предоставляет развитую поддержку многопоточности в приложениях. Поэтому, чтобы сохранять конкурентоспособность, вы должны овладеть принципами и приемами их разработки, а также новыми средствами языка, относящимися к параллелизму.Книга «Параллельное программирование на С++ в действии» не предполагает предварительных знаний в этой области. Вдумчиво читая ее, вы научитесь писать надежные и элегантные многопоточные программы на С++11.


Справочник по JavaScript

Вниманию читателей предлагается справочник по JavaScript.Справочник предназначается для людей, уже освоивших азы программирования в JavaScript.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.Дата выхода данной версии справочника: 12:33, 21 марта 2007.


Справочник по PHP

Вниманию читателей предлагается справочник по PHP.Справочник предназначается для людей, уже освоивших азы программирования на языке PHP.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.