Artykuł

Zwalczanie „fragmentacji”: programiści wyłączają dźwięk przy obsłudze wielu ekranów

protection click fraud

Android działa na różne urządzenia, co oznacza, że ​​działa również na ekranach o różnych rozmiarach i rozdzielczościach. Wielu ludzi nazywa to „fragmentacją”. Nieważne, że od lat używają na swoich komputerach produktów zaprojektowanych i opracowanych w ten sam sposób. Najwyraźniej, jeśli wszystko nie jest dokładnie takie samo, otrzymuje etykietę „fragmentacja”.

Istnieją różne sposoby rozwiązywania problemów, które pojawiają się podczas korzystania z ekranów o różnych rozmiarach i gęstościach. jabłko ma oddzielne listy aplikacji przeznaczonych na iPhone'a i iPada. Microsoft tworzy nowy ekosystem dla swoich 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 jest dobra i zła, ale tutaj skupimy się na Androidzie.

Verizon oferuje Pixel 4a za jedyne 10 USD miesięcznie na nowych liniach Unlimited

W systemie Android aplikacje mogą dostosowywać układ do różnych rozmiarów ekranów, a także rozdzielczości. To wszystko jest wbudowane, ale jest kilka rzeczy, które programiści muszą zadeklarować w swoim kodzie, aby aplikacja wyglądała dobrze. Należy pamiętać o tym, jak rozmiar i gęstość ekranu zmieni wygląd aplikacji. Plik

DNA droidów ma ekran o wyższej rozdzielczości niż Motorola XOOM tablet, ale nie chcemy widzieć układu tabletu dla aplikacji na ekranie wielkości telefonu.

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

Brzmi skomplikowanie, ale większość tych rzeczy jest wykonywana za Ciebie podczas kodowania aplikacji. Wszystko, co musi zrobić programista, to 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 wiele aplikacji układu, takich jak aplikacja Google+, używa 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łoszą to wszystko od czasu wydania Gingerbread, ale czy jest to praktyczne? Zapytaliśmy o to kilku programistów, zobaczmy, co mają do powiedzenia po przerwie.

Jeszcze: Witryna Google dla programistów Androida.

Zadaliśmy kilku programistom (dużym i małym) kilka podstawowych pytań na ten temat.

  • Jak trudno jest przestrzegać wytycznych?
  • Na papierze wygląda to łatwo, ale czy są jakieś szczególne problemy, które widziałeś lub części, których Google nie omówił?
  • Jak to wpłynęło na czas i koszty rozwoju, jeśli w ogóle?
  • Coś więcej na temat, którym chciałbyś się podzielić?

Starałem się, aby pytania były jak najbardziej neutralne, aby nie wchodzić w to z pewnym uprzedzeniem. Kiedy masz wątpliwości, pytasz ludzi, którzy wiedzą, prawda? Zrobiłem sporo w programowaniu, ale kodowanie w Javie i tworzenie aplikacji na Androida bardzo różni się od pisania kodu w C lub w kodzie maszynowym, a nawet w Perlu. Istnieją niuanse, których nie rozumiem, nawet jeśli znam ogólne metody tworzenia aplikacji.

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

Joe Simpson (@kennydude) - Boid

BoidGłośnik Pro

Joe jest członkiem Team Boid, a także samodzielnie publikuje aplikacje. On (i reszta jego zespołu) są świetnym przykładem niezależnych programistów z pasją do Androida, którzy stworzyli niesamowite aplikacje.

Postępowanie zgodnie z wytycznymi jest dość trudne, zwłaszcza jeśli chcesz mieć aplikację odchudzoną, ale ludzie chcą zgodności wstecznej. Jedną z najbardziej irytujących rzeczy jest zobaczenie, jak coś wygląda na d.android.com/design [witrynie Google dla programistów Androida], ale nic o tym, jak to zrobić.

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

Możesz też przejść do sedna i nie ma żadnej dokumentacji na ten temat (na przykład EdgeEffect).

Jestem studentem, więc koszty to coś, 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ą oferować opinii na temat aplikacji Google.

Boid jest wkrótce będzie open-source (yay!) i możesz znajdź samą aplikację w Google Play. Znajdziesz także wszystkie aplikacje Joe (są tam klejnoty) tutaj.

Christophe Versieux - BeTrains - SNCB Belgium; HoloEverywhere

BeTransHoloEverywhere

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

Ponadto współtworzył HoloEverywhere, bibliotekę, której inni programiści mogą używać do tworzenia aplikacji w stylu Holo na Androida 2.1 i nowsze. Ponieważ wiele telefonów nadal korzysta z Gingerbread, jest to prawdziwa gratka dla programistów, którzy chcą, aby ich aplikacje wyglądały na aktualne.

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łącznik w stylu iPhone'a i ten projekt był naprawdę trudny do osiągnięcia i naprawdę straciłem dużo czasu i pieniędzy to.

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

Mam teraz z nim wiele kontaktów i całkowicie przepisujemy jego aplikację, tworzymy wspaniały kod, usuwając wszystkie te bezużyteczne funkcje i tworząc „czystą” aplikację na Androida. Wierzę, że klienci i firmy muszą po prostu znać te wytyczne.

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

Czas i koszty, jak powiedziałem, są zminimalizowane dzięki przestrzeganiu wytycznych Google. Fragmenty i foldery układu są naprawdę łatwe w użyciu (i co ważniejsze, aby je ponownie wykorzystać): aplikacja tabletu po prostu pobiera fragment kodu z układu telefonu i nic nie musi być przepisywane. 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órzy ludzie, bardzo aktywni w Google+, 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 programowanie na Androida będzie dla nich łatwe!

Możesz znaleźć BeTrains w Google Play, a jeśli interesuje Cię programowanie na Androida, zajrzyj do HoloEverywhere.

Matthew Runo - Zappos

W przeciwieństwie do niektórych mniejszych niezależnych programistów, z którymi rozmawialiśmy, usłyszeliśmy również od Matthew z Zappos. Zappos jest firmą zajmującą się sprzedażą internetową i prawdopodobnie posiada dedykowany budżet na projektowanie zarówno na swojej stronie internetowej, jak i na aplikacje. Jest to również firma, od której regularnie kupuję, ale nie miało to znaczenia, a Mateusz nie wiedział, że jestem częstym klientem, kiedy zgłosił się na ochotnika.

W Zappos, ponieważ jesteśmy sprzedawcą detalicznym, musimy trzymać się przede wszystkim własnej marki. Zwariowany, zabawny i trochę od ściany. To powiedziawszy, oboje mocno wierzymy w wytyczne projektowe Androida - a wszystko, co robimy w interfejsie użytkownika, pochodzi z ducha tych zasad. Rok temu z tego, jak wyglądała i działała, nasza aplikacja była głównie portem iOS. Dziś jest to (myślę) perełka tego, co można zrobić w Androidzie. Zawsze stosujemy się do wytycznych - a nasi projektanci pracują od nich jako punkt wyjścia.

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

Wytyczne nigdy nie powinny stanowić przeszkody. Pewne rzeczy - ogólna nawigacja - muszą być spójne, aby aplikacja „po prostu działała”. Wszystko inne - zacznij od wytycznych i postępuj zgodnie ze swoim projektem. Chcemy, aby nasza aplikacja była NASZĄ APLIKACJĄ - więc nie możemy po prostu zrobić podstawowego motywu holo.

W tym roku zaczęliśmy w zasadzie od przepisania naszej aplikacji od podstaw do pracy z fragmentami. W ciągu ostatnich 6 miesięcy ciężko pracowaliśmy, aby dodać obsługę tabletów 7-calowych, a obecnie pracujemy nad obsługą tabletów 10-calowych. Najtrudniejsze jest testowanie na urządzeniach, ale mamy świetny zespół ds. Kontroli jakości, który pomaga w tym. Mamy 2 osoby pracujące w pełnym wymiarze godzin nad naszą aplikacją mniej więcej od sierpnia, wcześniej była to 1 osoba na pełny etat.

Podsumowując, myślę, że wytyczne dotyczące projektowania Androida pomagają nam usprawnić nasz proces - a tym samym zmniejszyć koszty. Spójrzmy prawdzie w oczy, większość projektantów z iOS - więc posiadanie świetnego zasobu, takiego jak design.android.com, jest wspaniałą pomocą w uruchomieniu ich 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 roszczenia. Sprawdź ich Aplikacja na Androida z Google Play.

Josh Burton - jRemote

Josh jest autorem wielu małych aplikacji na Androida oraz swojej aplikacji jRemote (jest to kontroler dla popularnych plików jDownloader Program na PC) to doskonały przykład wykorzystania układów do stworzenia aplikacji, która świetnie wygląda zarówno na telefonie, jak i tablecie. Maksymalizuje wykorzystanie ekranu urządzenia i dostarcza informacji, których szukasz, dokładnie tak, jak tego oczekujesz.

Przestrzeganie wytycznych projektowych jest dość proste, o ile będziesz się ich trzymać od samego początku. Opracowanie całej aplikacji, a na końcu powrót i próba zaimplementowania fragmentów / układów tabletu itp. Będzie stratą czasu, wysiłku i frustracji. Ale jeśli planujesz swoją aplikację, twórz od samego początku fragmenty i twórz zasoby dla wszystkich właściwych dpi wiadra, to sprawia, że ​​tworzenie aplikacji jest dziecinnie proste i naprawdę nie musisz spędzać dużo czasu na myśleniu o wytycznych na stronie wszystko. A jeśli utkniesz, dokumentacja projektowa jest tylko jednym kliknięciem. Są świetnym źródłem informacji.

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

Myślę, że dla wielu programistów nie mają oni tabletów do testowania, a używanie emulatora może być uciążliwe. Ale nowe narzędzia ADT, które właśnie zostały wydane, znacznie to ułatwiają. 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 w końcu nadal będziesz musiał przetestować na emulatorze / urządzeniu, ale zdecydowanie przyspieszy to przepływ pracy.

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

Słyszeliśmy od wielu innych programistów, którzy mówią prawie to samo. Nie mamy tu miejsca, żeby je wszystkie wymienić. Istotą tego wszystkiego jest to, że jeśli planujesz z wyprzedzeniem, wskazówki dla programistów Androida naprawdę działają w większości przypadków. Cieszymy się, że to słyszymy i nadal będziemy cieszyć się świetnymi aplikacjami i wspierać ciężko pracujących programistów.

To najlepsze bezprzewodowe słuchawki douszne, które możesz kupić za każdą cenę!
Czas przeciąć przewód!

To najlepsze bezprzewodowe słuchawki douszne, które możesz kupić za każdą cenę!

Najlepsze bezprzewodowe słuchawki douszne są wygodne, świetnie brzmią, nie kosztują zbyt wiele i łatwo mieszczą się w kieszeni.

Wszystko, co musisz wiedzieć o PS5: data premiery, cena i nie tylko
Następne pokolenie

Wszystko, co musisz wiedzieć o PS5: data premiery, cena i nie tylko.

Sony oficjalnie potwierdziło, że pracuje nad PlayStation 5. Oto wszystko, co o nim wiemy.

Nokia wprowadza na rynek dwa nowe budżetowe telefony z Androidem One poniżej 200 USD
Nowe Nokie

Nokia wprowadza na rynek dwa nowe budżetowe telefony z Androidem One poniżej 200 USD.

Nokia 2.4 i Nokia 3.4 to najnowsze dodatki do budżetowej linii smartfonów HMD Global. Ponieważ oba są urządzeniami z Androidem One, mają gwarancję otrzymania dwóch głównych aktualizacji systemu operacyjnego i regularnych aktualizacji zabezpieczeń przez okres do trzech lat.

Najlepsze przenośne natychmiastowe drukarki fotograficzne dla urządzeń z systemem Android
Drukuj w podróży!

Najlepsze przenośne natychmiastowe drukarki fotograficzne dla urządzeń z systemem Android.

Jesteś w ruchu i tworzysz wspomnienia na telefonie komórkowym. Chociaż cyfryzacja jest świetna, dlaczego nie spróbować utrwalić tych wspomnień za pomocą namacalnego zdjęcia?

instagram story viewer