Logo bg.androidermagazine.com
Logo bg.androidermagazine.com

Справяне с „фрагментацията“: разработчиците звучат при поддържане на множество екрани

Съдържание:

Anonim

Android работи на различни устройства, което означава, че работи и на различни размери и разделителни способности на екрана. Много хора наричат ​​това „фрагментиране“. Не забравяйте факта, че те използват продукти, проектирани и разработени по същия начин от години на работния си плот. Очевидно, ако всичко не е точно същото, получава етикета "фрагментиране".

Има различни начини за справяне с проблемите, които възникват, когато използвате екрани с различни размери и плътност. Apple има отделни списъци за приложения, създадени за iPhone спрямо iPad. Microsoft създава нова екосистема за своите устройства с голям екран. Android предоставя начин на разработчиците да накарат едно и също приложение да работи по различен начин за различните екрани. За всеки метод има добро и лошо, но тук ще се съсредоточим върху Android.

В Android приложенията могат да коригират оформлението за екрани с различен размер, както и резолюция. Всичко това е вградено, но има няколко неща, които разработчиците трябва да декларират в своя код, за да изглежда приложението добре. Трябва да се има предвид как размерът и плътността на екрана ще променят външния вид на приложението. Droid DNA има екран с по-висока разделителна способност от таблета Motorola XOOM, но не искаме да виждаме оформление на таблети за приложения на екрана с размер на телефона.

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

Звучи сложно, но повечето от тези неща се правят за вас, когато кодирате приложение. Всичко, което трябва да направи разработчикът, е да направи правилните декларации и да предостави подходящите активи, за да поддържа всякакъв размер (както физически, така и разделителна способност) или оформление. Дори множество приложения за оформление като приложението Google+ използват един и същ код, за да покрият всеки възможен екран.

Тук не се опитваме да съдим разработчиците. Писането на приложения е трудно. Разработчиците на Android проповядват всичко това след излизането на Gingerbread, но доколко е практично? Попитахме няколко разработчици за това, вижте какво трябва да кажат след почивката.

Още: Сайт за програмисти на Android на Google.

Зададохме шепа разработчици (и големи, и малки) няколко основни въпроса по темата.

  • Колко е трудно да се придържате към указанията?
  • На хартия изглежда лесно, но има ли някакви специални проблеми, които сте виждали или части, които 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

Кристоф е създал множество приложения за 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, тъй като сме търговци на дребно, трябва да се придържаме преди всичко към собствената си марка. Чакащо, забавно и малко от стената. Това каза, че и двамата сме силно вярващи в указанията за дизайн на Android - и всичко, което правим в потребителския интерфейс, е взето от духа на тези правила. Преди година нашето приложение беше предимно iOS порт от това как изглежда и работи. Днес това е (според мен) скъпоценен камък на това, което можете да направите в Android. Ние се придържаме към указанията, когато е възможно - и нашите дизайнери работят от тях като отправна точка.

Насоките за проектиране не са всичко и свършват - в крайна сметка те са просто там, за да се опитат да продължат дизайна на андроид приложенията, така че да са по-последователни. Установихме, че повечето от често срещаните „нови“ библиотеки с отворен код, които сме използвали, са завършили като част от указанията (плъзгащо се меню, крутон).

Насоките никога не трябва да са задръжки. Някои неща - цялостната навигация - трябва да бъдат последователни, така че приложението ви „просто работи“. Всичко останало - започнете от указанията и стартирайте с вашия дизайн. Искаме нашето приложение да бъде НАШО ПРИЛОЖЕНИЕ - така че не можем просто да направим основната тематика на холо.

Тази година в основата си започнахме от пренаписване на нашето приложение, за да работим с фрагменти. През последните 6 месеца работихме усилено, за да добавим 7 "поддръжка за таблети, а в момента работим върху 10" поддръжка. Най-трудното е да се тества на устройства, но ние имаме страхотен QA екип, който помага за това. Имаме 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 наистина работят в повечето случаи. Радваме се да го чуем и ще продължим да се наслаждаваме на страхотни приложения и да поддържаме работещи разработчици.