Обзор основных рекомендаций по разработке приложений для iOS

IOS

Принято считать, что важнейшим фактором  успеха мобильных устройств компании Apple, было максимальное внимание к деталям. Мелкие, на первый взгляд незначительные детали в итоге и определяют привлекательность продукта для конечного пользователя. Но, чтобы разработать хорошее приложение, недостаточно внимания к деталям на уровне пользовательского интерфейса. Необходимо знать и соблюдать наилучшие практические рекомендации на всех этапах создания приложений от проектирования до поддержки. Эта статья представляет собой обзор таких рекомендаций, сформулированных как самой компанией Apple, так и независимыми iOS разработчиками.

Интерфейс

Главная рекомендация Apple, которую она пытается донести до каждого начинающего разработчка: «Фокусируйтесь на обеспечении наилучшего пользовательского опыта на всех этапах разработки приложения». Основной документ, который подробно описывает, как именно это сделать — iOS Human Interface Guidelines (Рекомендации по разработке пользовательского интерфейса для iOS). С ним обязательно необходимо ознакомиться еще до того, как у вас в голове сформируется полное видение идеи будущего приложения, так как несколько глав в нем посвящены в том числе и этапу проектирования. Перечислим основные идеи HIG:

  1. При проектировании интерфейса следуйте соглашениям, принятым на платформе iOS. Не пытайтесь бездумно копировать компоненты и парадигмы принятые на других платформах, в том числе на операционных системах для стационарных компьютеров.
  2. В самом начале, на этапе проработки идеи приложения очень важно четко определить какой функционал вы планируете предоставить пользователям и какова ваша целевая аудитория.
  3. Постарайтесь использовать в полной мере все доступные на платформе технические и программные средства, но только в том случае, если их использование обосновано для целей вашего приложения. Всегда следуйте рекомендациям Apple по использованию этих технологий.

Особенности платформы iOS, которые обуславливают подход к проектированию пользовательского интерфейса:

  • Дисплей: минимальный размер элемента для нажатия пальцем — 44×44 точки, качество элементов оформления очень важно, внимание пользователя сосредоточено на главном содержании приложения, дисплей может поворачиваться в процессе работы приложения.
  • Пользователи взаимодействуют с приложением с помощью жестов, а не кликов мышью. Нажатие пальцем на кнопку и клик мышью по кнопке — это не одно и то же.
  • По возможности избегайте подсказок по использованию приложения. Интерфейс должен быть интуитивно понятным.
  • В каждый момент времени на экране отображается только одно приложение и только один экран внутри этого приложения. Пользователь воспринимает приложение, как набор экранов, между которыми он перемещается.

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

ipad-design

Архитектура

Базовые представления об архитектуре приложений и основных принципах, используемых при их написании, можно получить из документа iOS App Programming Guide (Руководство по программированию приложений для iOS). Он помогает правильно выбрать архитектурные решения для наиболее эффективной реализации первоначальной идеи в законченном приложении. Этот документ пытается донести до разработчиков следующие основные идеи:

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

Производительность

Зачастую заметные пользователю проблемы с производительностью бывают вызваны не нехваткой системных ресурсов, а тем, что приложение блокирует основную очередь задачей, которая слишком долго выполняется. В таких случаях рекомендуется использовать возможности iOS для параллельного выполнения кода. Здесь на выбор разработчику предоставлен целый ряд встроенных библиотек, выполняющих примерно одинаковую задачу: NSThread, POSIX threads, специальные методы NSObject, NSOperation, Grand Central Dispatch. Подробно обо всех этих технологиях и особенностях их использования рассказывается в документе Concurrency Programming Guide (Руководство по параллельному программированию).

Переносимость

Операционная система iOS работает на устройствах, характеристики которых различаются. Но пользователи ожидают, что одно и то же приложение будет одинаково хорошо работать на iPod Touch, iPhone 3GS и на последней версии iPad. Для того, чтобы этого добиться, необходимо приложить дополнительные усилия. В идеальном случае интерфейс для планшетов и для телефонов должен разрабатываться независимо. При этом правильное использование паттерна MVC позволит повторно использовать те же модели и контроллеры для разных интерфейсов.

Процесс разработки

Документ Developing for the App Store (Разработка для App Store) описывает административные процедуры, которые необходимо пройти для того, чтобы разместить свое приложение в App Store, а также дает рекомендации по организации процесса разработки приложения. Написание модульных тестов и тестов пользовательского интерфейса дает возможность вносить изменения в приложение, не боясь вместе с этим случайно сломать старую функциональность. При создании проекта в Xcode автоматически создается отдельная конфигурация для запуска тестов. Все что вам нужно делать — это добавлять тесты при добавлении в приложение новой функциональности и при обнаружении и исправлении ошибок, для того, чтобы они больше не повторились.

6c61ee9a3972ceff8dbe7a22728b63f8

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *