Два основных решения, над которыми вы должны «поломать» голову во время процесса разработки, – делать ли продукт кроссплатфор-менным или «родным».
Cнаружи – это хорошо. Изнутри – это плохо
Ваш первый вопрос в новом проекте: «Какую использовать серверную технологию, или как должна выглядеть схема базы данных?» Стоп! Неверный подход! Вы пытаетесь решить не проблемы пользователя, а свои собственные. Получается дизайн «изнутри наружу». А это – Очень Плохая Штука!™
Цель этого раздела помочь вам как разработчику пользовательского опыта понять вашу среду так, чтобы вы были подкованы, отвечая на эти вопросы. Начнем с того, что посмотрим, что же именно представляет собой «родное» приложение.
Вы замечали, как люди волей-неволей бросаются термином «родной», не до конца понимая, что это на самом деле значит? Давайте исправим ситуацию. Начнем с того, что выясним, чем «родной» не является.
Все дело в нулях и единицах
Если уж быть педантичными, то «родной» – насколько это касается цифровых устройств – относится к наличию или отсутствию электрического тока в транзисторах наших компьютеров. Мы, как правило, визуализируем это как базовое клише цифрового вычисления: бинарный код, серия «бегущих нулей и единиц». Мы называем эти бинарные инструкции машинным языком.
Рисунок 9.1. Да, существует большое количество устройств. Но! Наше приложение не должно поддерживать их всех. Сосредоточение на пользователе означает определение вашей целевой аудитории и оптимизацию ваших приложений под платформы и устройства, которыми они пользуются. Поддержка огромного количества платформ через прогрессивное улучшение проще, если вы первоначально создаете сайты с учетом содержания в противовес приложениям с учетом поведения.
Фото: Дэвид Джонс / smashed.by/davidjones
Когда-то компьютеры запрограммировали бинарно с использованием переключателей, но мы больше не пишем программы на таком низком аппаратном уровне. Однако каждый второй компьютерный язык программирования, который мы создавали, – язык ассемблера, Си, Питон, JavaScript и т. д. – в конечном итоге переводится на язык «бегущих нулей и единиц». А они уже обеспечивают наличие или отсутствие электрического тока в транзисторах.
Каждая из этих технологий основана на абстракциях. Например, Питон написан на Си. Цель каждого абстрактного слоя – каждого более высокого слоя в слоеном торте технологий, которые составляют современную компьютерную экосистему – упростить разработчикам создание приложений. Так что употребление термина «родной» в смысле бинарного программирования сегодня поблекло.
Итак, теперь, когда мы знаем, что такое «неродной», давайте выясним обратное.
Рисунок 9.2. Веб-технологии могут быть «родными» для определенных операционных систем. Здесь вы видите лэптоп Samsung с системой Chrome OS, чьи первостатейные граждане – HTML, CSS и JavaScript и веб-приложения. Фото: промо-изображение Google
Термин «родной» относится к технологиям, т. е. языкам и объектным структурам – всему тому, что формирует культуру, язык, условные обозначения и нормы платформы. Это базовый уровень абстракции. Он включает в себя базовые символы, жесты и взаимосвязи, применяемые пользователем для взаимодействия с приложениями на установленной платформе. Эти элементы крайне важны, потому что они составляют культуру и нормы платформы [105]. Это языки, как визуальные, так и поведенческие, которые пользователь изучает для взаимодействия при пользовании платформой. И наоборот, это также слова, фразы и концепты, которые приложения на установленной платформе применяют для взаимодействия с пользователями. Чем больше они используются и постоянны на установленной платформе, тем больше плюсов для создания приложений для нее.
Рисунок 9.3. «Руководство по интерфейсу» от Apple дает ясные инструкции, как должно выглядеть и вести себя приложение на платформе iOS. Это поможет определить культуру платформы
В конце спектра мы имеем платформу iOS от Apple с ее подробным «Руководством по интерфейсу» [106]и элегантным и единообразным фреймворком Cocoa Touch. «Родное» приложение от производителя, которое соответствует руководству, унаследует много от практичности базовых фреймворков и сразу же покажется знакомым пользователю, уже знающему другие приложения этой платформы.
Читать дальше
Конец ознакомительного отрывка
Купить книгу