Logo ru.androidermagazine.com
Logo ru.androidermagazine.com

Борьба с «фрагментацией»: разработчики отключают поддержку нескольких экранов

Оглавление:

Anonim

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

Существуют различные способы решения проблем, возникающих при использовании экранов с различными размерами и плотностями. У Apple есть отдельные списки для приложений, разработанных для iPhone против iPad. Microsoft создает новую экосистему для своих устройств с большим экраном. Android предоставляет разработчикам возможность заставить одно и то же приложение работать по-разному для разных экранов. В каждом методе есть что-то хорошее и плохое, но здесь мы сосредоточимся на Android.

В Android приложения могут настраивать макет для экранов разных размеров, а также разрешение. Это все встроено, но есть несколько вещей, которые разработчики должны объявить в своем коде, чтобы приложение выглядело хорошо. Следует помнить, как размер и плотность экрана изменят внешний вид приложения. У Droid DNA экран с более высоким разрешением, чем у планшета Motorola XOOM, но мы не хотим видеть макет планшета для приложений на экране размером с телефон.

Разработчик должен предоставить ресурсы (изображения) достаточно высокого качества, чтобы они выглядели четко при высоком разрешении (не говоря уже о безумно высоком разрешении), и обязательно используйте независимые от плотности пиксельные единицы при разработке своего макета. Это то, что мешает таким вещам, как кнопки и другие элементы управления, быть действительно большими на экранах низкой плотности, таких как Galaxy S2, или быть очень маленькими на экранах высокой плотности, таких как ДНК.

Это звучит сложно, но большая часть этого материала сделана для вас при кодировании приложения. Все, что нужно сделать разработчику, это сделать правильные декларации и предоставить нужные ресурсы для поддержки любого размера (как физического, так и разрешения) или макета. Даже несколько приложений макета, таких как приложение Google+, используют один и тот же код, чтобы охватить все мыслимые экраны.

Мы не пытаемся судить разработчиков здесь. Написание приложений сложно. Разработчики Android проповедуют все это с момента выпуска Gingerbread, но насколько это практично? Мы спросили об этом нескольких разработчиков, посмотрим, что они скажут после перерыва.

Подробнее: сайт Google для разработчиков Android.

Мы задали горстке разработчиков (больших и маленьких) пару основных вопросов по этому вопросу.

  • Насколько сложно придерживаться рекомендаций?
  • На бумаге это выглядит легко, но есть ли какие-то особые проблемы, которые вы видели, или детали, которые Google не рассмотрел?
  • Как это повлияло на время разработки и затраты, если вообще?
  • Что-нибудь еще о предмете, которым вы хотели бы поделиться?

Я старался сделать вопросы как можно более нейтральными, чтобы мы не углублялись в это с некоторой предвзятостью. Если вы сомневаетесь, вы спрашиваете людей, которые знают, верно? Я выполнил свою долю программирования, но кодирование на Java и создание приложений для Android сильно отличается от написания кода на C, машинного кода или даже Perl. Есть нюансы, которые я не понимаю, даже если у меня есть общие методы создания приложения.

Я думаю, что многие из вас, ребята, похожи на меня и не знают тонкостей создания приложений для Android. Мы видим только то, что говорят разработчики Android, и они заставляют это звучать легко. Для них это, вероятно, - они пишут этот материал с нуля с 2007 года. Давайте посмотрим, что скажут люди, которые смогли следовать за ними.

Джо Симпсон (@kennydude) - Боид

Джо является членом Team Boid, а также самостоятельно публикует приложения. Он (и остальная часть его команды) - отличный пример независимых разработчиков со страстью к Android, которые выпустили несколько удивительных приложений.

Следовать рекомендациям довольно сложно, особенно если вы хотите скудное приложение, но людям нужна обратная совместимость. Одна из самых раздражающих вещей - это посмотреть, как что-то выглядит на d.android.com/design, но ничего не сказать о том, как это сделать.

Слабым местом является обновление, когда вы физически не можете использовать GCM из-за Twitter, и вы не хотите использовать PtR. Кроме того, приложения Google составляют свои собственные рекомендации. Возьмем, к примеру, панель слайдов: Google+ делает это не так, как YouTube (хотя я знаю, что библиотека поддержки надеется решить эту проблему).

Кроме того, вы можете добраться до точки и нет документации по чему-либо (например, EdgeEffect).

Я студент, так что расходы - это то, что я не смотрю, да, это требует времени, но ваши пользователи будут любить вас. В основном, прямые трансляции (ADiA, App Clinic, Office Hours) являются необходимостью (к сожалению), хотя они не могут дать отзыв о приложениях Google.

Boid скоро выйдет с открытым исходным кодом (ууу!), И вы можете найти само приложение в Google Play. Вы также найдете все приложения Джо (там есть драгоценности) прямо здесь.

Кристоф Версье - BeTrains - SNCB Бельгия; HoloEverywhere

Christophe создал множество приложений для Android, в том числе BeTrains - SNCB Belguim - приложение с великолепным макетом, которое показывает, что можно сделать с помощью хорошо построенного приложения. Хотя большинство в США никогда не будут его использовать (это приложение расписания поездов для бельгийских рельсов), стоит установить его, просто чтобы посмотреть, насколько хорошо это сделано. Люди в Западной Европе наверняка знают об этом.

Кроме того, он совместно разработал HoloEverywhere, библиотеку, которую другие разработчики могут использовать для создания приложений в стиле Holo для Android 2.1 и выше. Поскольку многие телефоны по-прежнему работают с Gingerbread, это настоящее удовольствие для разработчиков, которые хотят, чтобы их приложения выглядели актуально.

Это совсем не сложно. Шутки в сторону. Трудная часть наступает, когда клиент просит уйти от этих указаний!

Я помню клиента, который хотел, чтобы я помещал вкладки в нижней части экрана, кнопки iPhone повсюду, переключатели в стиле iPhone, и этот проект был действительно трудным, и я действительно потерял на нем много времени и денег.

Я был очень зол на него, когда он спросил все эти глупости, и он просто подумал, что я ленивый разработчик.

Сейчас у меня много контактов с ним, и мы полностью переписываем его приложение, создаем потрясающий код, удаляя все эти бесполезные функции и создавая «чистое» приложение для Android. Я убежден, что клиенты и компании просто должны знать об этих принципах.

Такие библиотеки, как ActionBarSherlock, HoloEverywhere (моё творение), UnifiedPreferences и SlidingMenu, действительно просты в использовании и предоставляют в несколько строк кода потрясающий пользовательский опыт.

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

Некоторые удивительные проекты создаются сообществом, а не всегда Google. Некоторые люди, очень активные в Google+, такие как Роман Нурик (Google), Рето Мейер (Google) Юхани Лехтимяки, Джейк Уортон, Тейлор Линг, … (я всегда боюсь забыть важных людей) очень поучительны. Разработчикам просто нужно знать, где искать, и разработка Android будет для них легкой!

Вы можете найти BeTrains в Google Play, и вам захочется взглянуть на HoloEverywhere, если вы заинтересованы в разработке Android.

Мэтью Руно - Zappos

В отличие от некоторых небольших независимых разработчиков, с которыми мы говорили, мы также слышали от Мэтью из Zappos. Zappos - это корпорация, занимающаяся розничной торговлей через Интернет, и, вероятно, имеет выделенный бюджет на разработку дизайна своего веб-сайта и приложений. Это также компания, которую я регулярно покупаю, но это не имело никакого отношения, и Мэтью не знал, что я частый клиент, когда он добровольно вызвался.

В Zappos, поскольку мы являемся ритейлером, мы должны в первую очередь придерживаться нашего собственного бренда. Странно, весело и немного от стены. Тем не менее, мы оба твердо верим в принципы разработки Android - и все, что мы делаем в пользовательском интерфейсе, взято из духа этих правил. Год назад наше приложение было в основном портом iOS из того, как оно выглядело и работало. Сегодня это (я думаю) жемчужина того, что вы можете сделать в Android. Мы придерживаемся руководящих принципов, когда это возможно, и наши дизайнеры используют их в качестве отправной точки.

Руководства по проектированию не являются окончательными - в конце концов, они просто пытаются подтолкнуть разработку приложений для Android, чтобы они были более последовательными. Мы обнаружили, что большинство распространенных «новых» библиотек с открытым исходным кодом, которые мы использовали, оказались частью руководящих принципов (скользящее меню, сухарики).

Руководящие принципы никогда не должны сдерживаться. Определенные вещи - общая навигация - должны быть согласованы, чтобы ваше приложение «просто работало». Все остальное - начните с руководящих принципов и бегите с вашим дизайном. Мы хотим, чтобы наше приложение было НАШЕ ПРИЛОЖЕНИЕ - поэтому мы не можем просто сделать базовую голографическую тему.

В этом году мы в основном начали с переписывания нашего приложения для работы с фрагментами. В последние 6 месяцев мы усердно работали над добавлением 7-дюймовой поддержки планшетов, и в настоящее время мы работаем над 10-дюймовой поддержкой. Самое сложное - это тестирование на устройствах, но у нас есть отличная команда QA, которая помогает с этим. С августа около 2 человек работали над нашим приложением полный рабочий день, до этого это был 1 человек.

Суть в том, что, я думаю, руководящие принципы проектирования Android помогают нам упростить наш процесс - и тем самым сократить расходы. Посмотрим правде в глаза, большинство дизайнеров из iOS - так что наличие такого замечательного ресурса, как design.android.com, является прекрасной помощью, чтобы помочь им начать работу в экосистеме Android.

Я могу сказать, что дизайнерские решения Zappos работают хорошо, и у моей жены есть шкаф, полный одежды, кошельков и ботинок, которые подтверждают мои требования. Проверьте их Android-приложение из Google Play.

Джош Бертон - jRemote

Джош является автором множества небольших приложений для Android, и его приложение jRemote (это контроллер для популярной программы jDownloader для ПК) является прекрасным примером того, как использовать макеты для создания приложения, которое отлично смотрится как на телефоне, так и на планшете. Это максимально увеличивает использование экрана устройства и дает вам информацию, которую вы ищете, именно так, как вы ожидаете.

Придерживаться рекомендаций по дизайну довольно просто, если вы будете придерживаться их с самого начала. Разработка всего приложения, а затем, в конце, возвращение и попытка реализовать фрагменты / макеты планшетов и т. Д. Будут пустой тратой времени, усилий и разочарований. Но если вы спланируете свое приложение, начнете разрабатывать с использованием фрагментов и создадите свои ресурсы для всех правильных сегментов dpi, это сделает разработку легким делом, и вам действительно не нужно тратить много времени на обдумывание рекомендаций. И если вы застряли, дизайн документов только на расстоянии одного клика. Они отличный ресурс.

Меня действительно расстраивает то, что на многих устройствах нет макетов планшетов. Если ваше приложение построено с использованием фрагментов, добавление макета планшета может быть выполнено за 30 минут. Честно говоря, это так просто.

Я думаю, что для многих разработчиков у них нет планшетных устройств для тестирования, и использование эмулятора может быть проблемой. Но только что выпущенные новые инструменты ADT делают это намного проще. Мультиконфигурация в редакторе макетов означает, что вы можете видеть, как выглядит ваш макет, на 5-6 экранах разных размеров одновременно. И это быстро. Конечно, вам все равно придется тестировать на эмуляторе / устройстве, но это определенно ускоряет рабочий процесс.

jDownloader - удобная программа для использования на вашем рабочем столе, и jRemote выглядит как замечательный способ управления ею. Если ничего другого, скачайте его из Google Play и посмотрите, как приложение может быть простым и красивым одновременно.

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