Logo uk.androidermagazine.com
Logo uk.androidermagazine.com

Усунення "фрагментації": розробники звучать на підтримці декількох екранів

Зміст:

Anonim

Android працює на різних пристроях, а це означає, що він також працює на різних розмірах екрана та роздільній здатності. Багато людей називають це "роздробленістю". Не забувайте про те, що вони протягом багатьох років використовували продукти, розроблені та розроблені однаково на своєму робочому столі. Мабуть, якщо все не зовсім те саме, він отримує мітку "фрагментації".

Існують різні способи вирішення проблем, які виникають при використанні екранів з різними розмірами та щільністю. Apple має окремі списки програм, розроблених для iPhone проти iPad. Microsoft створює нову екосистему для своїх пристроїв з великим екраном. Android пропонує розробникам спосіб змусити один і той же додаток працювати по-різному на різних екранах. У кожному способі є добре і погано, але тут ми зупинимося на Android.

В Android додатки можуть коригувати макет для екранів різного розміру, а також роздільну здатність. Це все вбудовано, але є кілька речей, які розробники повинні заявити у своєму коді, щоб програма виглядала добре. Майте на увазі, як розмір і щільність екрана змінить вигляд програми. Дроїд ДНК має екран з більшою роздільною здатністю, ніж планшет 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, клініки додатків, години роботи) є обов'язковим (на жаль), хоча вони не можуть надати відгуків про програми Google.

Боїд незабаром вийде з відкритим кодом (так!), І ви можете знайти саме додаток у Google Play. Ви також знайдете всі додатки Джо (тут є кілька коштовностей) прямо тут.

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

Крістоф створив численні додатки для Android, включаючи BeTrains - SNCB Belguim - додаток з чудовим макетом, який показує, що можна зробити з добре вбудованим додатком. Хоча більшість у США ніколи його не використовуватимуть (це програма розкладу поїздів для бельгійських рейок), варто встановити лише для того, щоб побачити, наскільки це добре зроблено. Люди із Західної Європи, безумовно, знають про це.

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

Це зовсім не складно. Серйозно. Важка частина настає, коли клієнт просить піти від цих керівних принципів!

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

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

Зараз у мене багато контактів з ним, і ми повністю переписуємо його додаток, створюємо дивовижний код, видаляючи всі ці непотрібні функції та створюючи «чистий» додаток для Android. Клієнти та компанії просто повинні знати про ці вказівки, я переконаний.

Бібліотеки, такі як ActionBarSherlock, HoloEverywhere (моє створення), UnifiedPreferences та SlidingMenu - дуже прості у користуванні та надають у кількох рядках коду приголомшливий досвід роботи користувачів.

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

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

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

Метью Руно - Заппос

На відміну від деяких менших незалежних розробників, з якими ми спілкувались, ми також чули від Метью у Zappos. Zappos - корпорація веб-роздрібної торгівлі, і, ймовірно, має виділений бюджет на розробку як на своєму веб-сайті, так і на їхніх додатках. Це також компанія, яку я купую у регулярно, але це не мало жодного стосунку, і Метью не було відомо, що я є частим клієнтом, коли він зголосився.

У Zappos, оскільки ми є роздрібною торгівлею, ми маємо дотримуватися насамперед власного бренду. Дурний, веселий і трохи від стіни. Це означає, що ми обидва вірні в настанови щодо дизайну Android - і все, що ми робимо в інтерфейсі, взято з духу цих правил. Рік тому наш додаток був здебільшого iOS-портом із того, як він виглядав і працював. Сьогодні це (я думаю) дорогоцінний камінь того, що можна зробити в Android. Ми дотримуємось принципів, коли це можливо - і наші дизайнери працюють з них як відправна точка.

Вказівки щодо дизайну - це не все, і все - наприкінці, вони зрештою намагаються просунути дизайн додатків для Android, щоб вони були більш послідовними. Ми виявили, що більшість поширених "нових" бібліотек з відкритим кодом, які ми використовували, закінчилися як частина керівних принципів (розсувне меню, крутон).

Ці вказівки ніколи не повинні стримувати. Деякі речі - загальна навігація - повинні бути послідовними, щоб ваш додаток "просто працював". Все інше - починайте з рекомендацій і працюйте зі своїм дизайном. Ми хочемо, щоб наш додаток був НАШОЮ ДОПОМОГОЮ - тому ми не можемо просто зробити базову тему холо

Цього року ми в основному почали з наново переписати наш додаток для роботи з фрагментами. За останні 6 місяців ми наполегливо працювали над тим, щоб додати 7-дюймову підтримку планшетів, а зараз працюємо над підтримкою 10 ". Найскладніше - тестування на пристроях, але у нас є чудова команда з якості, яка допомагає в цьому. У нас із серпня або близько того працювали 2 людини, які працювали повний робочий день, до цього це була 1 штатна людина.

Підсумок - це, на мій погляд, керівництво з дизайну для Android допомагає нам впорядкувати наш процес - і тим самим зменшити витрати. Давайте поглянемо на це, більшість дизайнерів з iOS - тому чудовий ресурс на зразок design.android.com - це чудова допомога для швидкого запуску в екосистемі Android.

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

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

Джош є автором численних невеликих програм для Android, а його додаток jRemote (це контролер для популярної програми jDownloader PC) - прекрасний приклад того, як використовувати макети, щоб створити додаток, який чудово виглядає як на телефоні, так і на планшеті. Це максимально використовує екран пристрою та надає інформацію, яку ви шукаєте, як саме ви цього очікували.

Дотримуючись керівних принципів дизайну досить прямо, поки ви дотримуєтесь їх з ходу. Розробка цілої програми, а потім, наприкінці, повернення та спроба впровадження фрагментів / макетів планшетів тощо буде марною витратою часу, сил та розладів. Але якщо ви плануєте свою програму, розробляйте, використовуючи фрагменти з самого початку, і створюйте свої ресурси для всіх правильних відроків dpi, це створює вітер, і вам дійсно не потрібно витрачати багато часу на роздуми про вказівки. А якщо ви зациклюєтесь, документи дизайну знаходяться лише за один клік. Вони - чудовий ресурс.

Мені дуже шкода, що так багато пристроїв не мають макетів планшетів. Якщо ваша програма побудована за допомогою фрагментів, додавання макета планшета можна зробити за 30 хвилин. Чесно кажучи, це так просто.

Я думаю, що для багатьох розробників вони не мають планшетних пристроїв для тестування, і використання емулятора може бути болем. Але нові інструменти ADT, щойно випущені, значно полегшують роботу. Перегляд мультиконфігурації в редакторі макетів означає, що ви можете бачити, як виглядає ваш макет на 5-6 різних розмірах екрана одночасно. І це швидко. Звичайно, вам все одно доведеться тестувати емулятор / пристрій, але це, безумовно, прискорює робочий процес.

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

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