Logo pl.androidermagazine.com
Logo pl.androidermagazine.com

Zwalczanie „fragmentacji”: programiści nie obsługują wielu ekranów

Spisu treści:

Anonim

Android działa na różnych urządzeniach, co oznacza, że ​​działa również na różnych rozmiarach i rozdzielczościach ekranu. Wielu ludzi nazywa to „fragmentacją”. Nie wspominając już o tym, że od lat korzystają z produktów zaprojektowanych i opracowanych w ten sam sposób na komputerze. Najwyraźniej jeśli wszystko nie jest dokładnie takie samo, otrzymuje etykietę „fragmentacji”.

Istnieją różne sposoby rozwiązywania problemów pojawiających się podczas korzystania z ekranów o różnych rozmiarach i gęstościach. Apple ma osobne wykazy dla aplikacji zaprojektowanych na iPhone'a i iPada. Microsoft tworzy nowy ekosystem dla urządzeń z dużym ekranem. Android zapewnia programistom sposób, aby ta sama aplikacja działała inaczej na różnych ekranach. Każda metoda ma swoje dobre i złe strony, ale tutaj skupimy się na Androidzie.

W systemie Android aplikacje mogą dostosowywać układ dla ekranów o różnych rozmiarach, a także rozdzielczości. Wszystko to jest wbudowane, ale jest kilka rzeczy, które programiści muszą zadeklarować w kodzie, aby aplikacja wyglądała dobrze. Należy pamiętać, że rozmiar i gęstość ekranu zmieni wygląd aplikacji. Droid DNA ma ekran o wyższej rozdzielczości niż tablet Motorola XOOM, ale nie chcemy widzieć układu tabletu dla aplikacji na ekranie wielkości telefonu.

Deweloper musi zapewnić zasoby (obrazy), które są wystarczająco wysokiej jakości, aby wyglądać ostro w wysokiej rozdzielczości (nie wspominając o niesamowicie wysokiej rozdzielczości), i pamiętaj, aby podczas projektowania układu używać jednostek pikseli niezależnych od gęstości. To sprawia, że ​​przyciski i inne elementy sterujące nie są naprawdę duże na ekranach o niskiej gęstości, takich jak Galaxy S2, ani naprawdę małe na ekranach o wysokiej gęstości, takich jak DNA.

Brzmi skomplikowanie, ale większość z tych rzeczy jest wykonywana podczas kodowania aplikacji. Programiści muszą tylko złożyć odpowiednie deklaracje i zapewnić odpowiednie zasoby do obsługi dowolnego rozmiaru (zarówno fizycznego, jak i rozdzielczości) lub układu. Nawet aplikacje z wieloma układami, takie jak aplikacja Google+, używają tego samego kodu do pokrycia każdego możliwego ekranu.

Nie próbujemy tutaj oceniać programistów. Pisanie aplikacji jest trudne. Programiści Androida głosili to wszystko od czasu wydania Gingerbread, ale czy jest to praktyczne? Zapytaliśmy o to kilku programistów, zobaczmy, co mieli do powiedzenia po przerwie.

Więcej: witryna Google dla programistów Androida.

Zadaliśmy garstce programistów (dużych i małych) kilka podstawowych pytań na ten temat.

  • Jak trudno jest przestrzegać wytycznych?
  • Na papierze wygląda to łatwo, ale czy są jakieś specjalne problemy, które widziałeś lub części, których Google nie opisał?
  • Jak wpłynęło to na czas i koszty rozwoju, jeśli w ogóle?
  • Czy jest coś jeszcze w temacie, którym chcesz się podzielić?

Starałem się, aby pytania były jak najbardziej neutralne, abyśmy nie brali w tym udziału z pewnym uprzedzeniem. W razie wątpliwości pytasz ludzi, którzy wiedzą, prawda? Zrobiłem swój uczciwy udział w programowaniu, ale kodowanie w Javie i budowanie aplikacji na Androida różni się bardzo od pisania kodu w C lub kodu maszynowego, a nawet Perla. Istnieją niuanse, których nie rozumiem, nawet jeśli poznam ogólne metody budowania aplikacji.

Wyobrażam sobie, że wielu z was jest jak ja i nie zna zawiłości budowania aplikacji na Androida. Widzimy tylko to, co mówią programiści Androida i sprawiają, że brzmi to łatwo. Dla nich prawdopodobnie tak jest - piszą to od podstaw od 2007 roku. Zobaczmy, co mają do powiedzenia ludzie, którzy byli w stanie je śledzić.

Joe Simpson (@kennydude) - Boid

Joe jest członkiem Team Boid, a także publikuje aplikacje na własną rękę. On (i reszta jego zespołu) są doskonałym przykładem niezależnych programistów z pasją do Androida, którzy opracowali niesamowite aplikacje.

Przestrzeganie wytycznych jest dość trudne, szczególnie jeśli chcesz mieć uproszczoną aplikację, ale ludzie chcą kompatybilności wstecznej. Jedną z najbardziej irytujących rzeczy jest obserwowanie, jak coś wygląda na d.android.com/design, ale nic, jak to zrobić.

Słabym punktem jest odświeżanie, gdy fizycznie nie możesz używać GCM z powodu Twittera i nie chcesz używać PtR. Ponadto aplikacje Google tworzą własne wytyczne. Weźmy na przykład okienko wsuwane, Google+ robi to inaczej niż YouTube (chociaż wiem, że biblioteka wsparcia ma nadzieję to załatwić).

Możesz także przejść do punktu i nie ma na nim żadnej dokumentacji (na przykład EdgeEffect).

Jestem studentem, więc koszty są czymś, na co nie wyglądam, i tak, to wymaga czasu, ale twoi użytkownicy będą cię kochać. Zasadniczo pokazy na żywo (ADiA, App Clinic, Office Hours) są koniecznością (niestety), chociaż nie mogą udzielać opinii na temat aplikacji Google.

Boid już niedługo wejdzie na open source (tak!), A samą aplikację można znaleźć w Google Play. Znajdziesz tu także wszystkie aplikacje Joe (tam są klejnoty).

Christophe Versieux - BeTrains - SNCB Belgia; Holo wszędzie

Christophe stworzył wiele aplikacji na Androida, w tym BeTrains - SNCB Belguim - aplikacja o wspaniałym układzie, która pokazuje, co można zrobić z dobrze zbudowaną aplikacją. Chociaż większość w Stanach Zjednoczonych nigdy go nie użyje (jest to aplikacja rozkładów jazdy pociągów dla belgijskich szyn), warto ją zainstalować, aby zobaczyć, jak dobrze się spisuje. Ludzie w zachodniej Europie z pewnością wiedzą o tym.

Ponadto współtworzył HoloEverywhere, bibliotekę, której inni programiści mogą używać do tworzenia aplikacji w stylu Holo dla Androida 2.1 i nowszych. Ponieważ w wielu telefonach wciąż działa Gingerbread, jest to prawdziwa gratka dla programistów, którzy chcą zachować aktualność swoich aplikacji.

To wcale nie jest trudne. Poważnie. Trudna część przychodzi, gdy klient prosi o odejście od tych wytycznych!

Pamiętam klienta, który chciał, żebym umieścił zakładki na dole ekranu, wszędzie przyciski iPhone'a, przełączanie w stylu iPhone'a i ten projekt był naprawdę trudny do zrealizowania i naprawdę straciłem na nim dużo czasu i pieniędzy.

Byłem naprawdę na niego zły, kiedy zapytał o te wszystkie głupie rzeczy, a on po prostu pomyślał, że jestem leniwym programistą.

Mam teraz z nim duży kontakt i całkowicie przepisujemy jego aplikację, tworzymy niesamowity kod, usuwając wszystkie te bezużyteczne funkcje i tworząc „czystą” aplikację na Androida. Zdecydowanie wierzę, że klienci i firmy muszą znać te wytyczne.

Biblioteki takie jak ActionBarSherlock, HoloEverywhere (moje dzieło), UnifiedPreferences i SlidingMenu są naprawdę łatwe w użyciu i zapewniają w kilku liniach kodu niesamowite wrażenia użytkownika.

Czas i koszty, jak powiedziałem, są zminimalizowane przez przestrzeganie wytycznych Google. Fragmenty i foldery układu są naprawdę łatwe w użyciu (i ważniejsze do ponownego użycia): aplikacja na tablet po prostu pobiera fragment kodu z układu telefonu i nic nie trzeba przepisywać. Małe zmiany w aplikacji na telefon są natychmiast odzwierciedlane w aplikacji na tablet, ponieważ używany jest ten sam fragment.

Niektóre niesamowite projekty są tworzone przez społeczność, nie zawsze przez Google. Niektóre osoby, bardzo aktywne w Google+, takie jak Roman Nurik (Google), Reto Meier (Google) Juhani Lehtimäki, Jake Wharton, Taylor Ling,.. (zawsze boję się zapomnieć o ważnych ludziach) są bardzo pouczające. Programiści muszą tylko wiedzieć, gdzie szukać, a tworzenie Androida będzie dla nich łatwe!

Możesz znaleźć BeTrains w Google Play, a jeśli chcesz być zainteresowany rozwojem Androida, powinieneś rzucić okiem na HoloEverywhere.

Matthew Runo - Zappos

W przeciwieństwie do niektórych mniejszych niezależnych programistów, z którymi rozmawialiśmy, słyszeliśmy także od Matthew w Zappos. Zappos to internetowa korporacja detaliczna, która prawdopodobnie ma dedykowany budżet na projektowanie zarówno na swojej stronie internetowej, jak i na aplikacjach. Jest to również firma, od której kupuję regularnie, ale to nie miało znaczenia, a Matthew nie był świadomy tego, że jestem częstym klientem, gdy zgłosił się na ochotnika.

W Zappos, ponieważ jesteśmy sprzedawcą, musimy przede wszystkim trzymać się własnej marki. Zwariowane, zabawne i trochę od ściany. To powiedziawszy, oboje mocno wierzymy w wytyczne dotyczące projektowania Androida - i wszystko, co robimy w interfejsie użytkownika, pochodzi z ducha tych zasad. Rok temu nasza aplikacja była głównie portem iOS z wyglądu i działania. Dziś jest to (jak sądzę) klejnot tego, co można zrobić w Androidzie. Zawsze, gdy jest to możliwe, przestrzegamy tych wytycznych - a nasi projektanci opracowują je od samego początku.

Wytyczne projektowe to nie wszystko i koniec - w końcu są one po to, aby spróbować poprowadzić projekt aplikacji na Androida, aby były bardziej spójne. Odkryliśmy, że większość popularnych „nowych” bibliotek open source, których używaliśmy, znalazła się w ramach wytycznych (przesuwane menu, crouton).

Wytyczne nigdy nie powinny powstrzymywać. Niektóre rzeczy - ogólna nawigacja - muszą być spójne, aby aplikacja „po prostu działała”. Cała reszta - zacznij od wskazówek i rozpocznij projekt. Chcemy, aby nasza aplikacja była NASZĄ APLIKACJĄ - więc nie możemy po prostu zrobić podstawowego motywu holo.

W tym roku w zasadzie zaczęliśmy od gruntownego przepisania naszej aplikacji do pracy z fragmentami. W ciągu ostatnich 6 miesięcy ciężko pracowaliśmy, aby dodać obsługę tabletów 7 ", a obecnie pracujemy nad obsługą 10". Najtrudniejsze jest testowanie na urządzeniach, ale mamy świetny zespół kontroli jakości, który pomaga w tym. Od sierpnia około 2 osób pracuje na pełnym etacie nad naszą aplikacją, wcześniej była to 1 osoba pełnoetatowa.

Najważniejsze jest, moim zdaniem, wytyczne projektowe Androida pomagają nam usprawnić nasz proces - a tym samym obniżyć koszty. Spójrzmy prawdzie w oczy, większość projektantów z iOS - więc posiadanie świetnych zasobów, takich jak design.android.com, jest wspaniałą pomocą, aby je uruchomić w ekosystemie Androida.

Mogę powiedzieć, że wybory projektowe Zappos działają dobrze, a moja żona ma szafę pełną ubrań, torebek i butów, które potwierdzają moje twierdzenie. Sprawdź ich aplikację na Androida w Google Play.

Josh Burton - jRemote

Josh jest autorem wielu małych aplikacji na Androida, a jego aplikacja jRemote (kontroler popularnego programu komputerowego jDownloader) jest doskonałym przykładem użycia układów do stworzenia aplikacji, która wygląda świetnie zarówno na telefonie, jak i tablecie. Maksymalizuje wykorzystanie ekranu urządzenia i zapewnia informacje, których szukasz, dokładnie tak, jak tego oczekujesz.

Przestrzeganie wytycznych projektowych jest dość proste, o ile trzymasz się ich od samego początku. Opracowanie całej aplikacji, a następnie cofnięcie się i próba wdrożenia fragmentów / układów tabletów itp. Będzie stratą czasu, wysiłku i frustracji. Ale jeśli planujesz swoją aplikację, od samego początku tworzysz fragmenty i tworzysz zasoby dla wszystkich odpowiednich przedziałów dpi, to jest bardzo proste i naprawdę nie musisz w ogóle tracić czasu na myślenie o wytycznych. A jeśli utkniesz, dokumenty projektowe są tylko jednym kliknięciem. Są świetnym zasobem.

Naprawdę frustruje mnie to, że tak wiele urządzeń nie ma układów tabletów. Jeśli twoja aplikacja jest zbudowana z fragmentów, dodanie układu tabletu można wykonać w 30 minut. Szczerze mówiąc, to takie proste.

Myślę, że dla wielu programistów nie mają tabletów do testowania, a używanie emulatora może być uciążliwe. Ale właśnie opublikowane nowe narzędzia ADT znacznie ułatwiają pracę. Widok wielu konfiguracji w edytorze układu oznacza, że ​​możesz jednocześnie zobaczyć, jak wygląda twój układ na 5-6 różnych rozmiarach ekranu. I jest szybki. Oczywiście nadal będziesz musiał ostatecznie przetestować emulator / urządzenie, ale zdecydowanie przyspiesza to przepływ pracy.

jDownloader to przydatny program do użycia na pulpicie, a jRemote wygląda na wspaniały sposób na kontrolowanie go. Jeśli nic więcej, pobierz go z Google Play i zobacz, jak aplikacja może być prosta i piękna jednocześnie.

Słyszeliśmy od wielu innych programistów, którzy prawie tak samo mówią. Po prostu brakuje nam miejsca, żeby wymienić je wszystkie. Istotą tego wszystkiego jest to, że jeśli planujesz z wyprzedzeniem, wytyczne dla programistów Androida naprawdę działają w większości przypadków. Miło nam to słyszeć i nadal będziemy cieszyć się świetnymi aplikacjami oraz wspierać ciężko pracujących programistów.