Witam wszystkich serdecznie,
Jest to mój pierwszy wpis, więc proszę o wyrozumiałość. Chciałbym dziś poruszyć temat, który od dłuższego czasu nie daje mi spokoju. Mianowicie chodzi mi o to jak poprawnie zaprojektować wygląd aplikacji, aby wspierała jak największą liczbę urządzeń (myślałem czy nie dodać tego wpisu w kategorii "design", ale uznałem że tutaj będzie pasować lepiej, bo nie chodzi mi o sam design a o cały zbiór praktyk i całą otoczkę). Jak wiecie obecnie na rynku mamy jakoś ponad 10k różnych telefonów z Androidem. Powiedzieć że producenci nie trzymają się właściwie żadnych reguł przy tworzeniu urządzeń (co zrobiło niesamowity misz masz), to właściwie nic nie powiedzieć. Pomijając fakt, że zmieniły się rozmiary ekranów czy zagęszczenie pixeli, to w ostatnim czasie dochodzi kwestia zupełnie nowych ratio związanych z między innymi z pomijaniem ramek itp.
Tak więc musimy uwzględnić 3 rzeczy:
- rozmiar ekranu
- zagęszczenie pixeli
- ratio ekranu
Biorąc to wszystko pod uwagę, czy jest jeszcze możliwe zrobienie aplikacji, która będzie wyglądała identycznie na większości urządzeń ?
Weźmy na przykład aplikację która posiada ekran startowy, kilka grafik (dajmy na to jakieś tło, masa przycisków, coś z galerią i tak dalej). Możemy oczywiście tworzyć masę katalogów, ale załóżmy że obecnie nasze grafiki ważą 10mb w wersji standardowej. Załóżmy że weźmiemy pod uwagę tylko 3 foldery dpi: xhdpi, xxhdpi, xxxhdpi. Oczywiście nie są to jedyne foldery, które musimy rozważyć bo dochodzi kwestia ratio, wiadomo że zupełnie inaczej będzie wyglądała grafika na telefonie/tablecie z ratio 4:3 a inaczej 19,5:9. Różnych ratio obecnie używanych będzie pewnie z 10. W takim razie co mamy przygotować grafiki w 30 różnych folderach ? Przy początkowych założeniach da nam to 10x(3x10) = 300mb grafik, a to raczej mija się z celem. Możemy również wrzucić nasze grafiki do największych katalogów a android sam sobie je częściowo przeskaluje, ale w praktyce wychodzi to różnie no i dalej pozostaje kwestia że musimy rozważyć wtedy każde ratio już wtedy pomijając kwestie dpi. Na developer.android.com można trochę poczytać o wsparciu dla różnych wielkości ekranów itp ale jest tam niewiele jeśli chodzi o różne screen ratio i niewiele o samych grafikach, głównie rozpisują się o layoutach.
Jestem mega zmieszany, jeśli chodzi o ten temat, wyobraźmy sobie że mamy ściągnąć jakąś zwykłą, w miarę prostą, informacyjną aplikację, która waży ponad 300mb, przecież to istne szaleństwo. Oczywiście możemy dociągać sobie grafiki na żywo, ale co jeśli aplikacja ma działać offline ? Na ten moment wydaje mi się właściwie niemożliwe, żeby aplikację dopasować do większości nawet w miarę nowych urządzeń (dajmy na to api 21<), tak aby wyglądało to niemal identycznie oraz aplikacja nie zajmowała mega dużo przestrzeni.
Co o tym wszystkich myślicie ? Jak wy sobie z tym radzicie ? jakich praktyk używacie ?
Pozdrawiam