Android & iOS app дефиниране на "устройства" (размер и dpi).

+5 гласа
300 прегледа
попитан 2016 юни 15 от Kaloyan Bratoev (450 точки)
Здравейте,

Идния ми проект обхваща Android & iOS app с изискването да работи на всякакви устройства, което обхваща да работи под всякакви "резолюции", а и самото изискване е изключително приятно :). Затруднението ми за момента е да дефинирам размерите за таблети, защото при телефоните има една идея по стандартно разграничение. На база следните данни и други изградих кратък списък с това какви емулатори да си създам:

https://developer.android.com/about/dashboards/index.html#Platform

https://developer.android.com/guide/practices/screens_support.html#overview

 

Mobile phones:

4” screen size, hdpi, WVGA resolution (480x800 pixels)

4.7” screen size, xhdpi, HD 720 (720x1280 pixels)

To be defined (5.0-5.3) screen size, xxhdpi, Full HD 1080 (1080x1920 pixels)

To be defined (5.1-6.0) screen size, xxxhdpi, Quad HD (1440x2560 pixels)

Tablets:

Physical device – Nexus 7

Може да е малко извън топика въпроса, но все пак всеки съвет би бил полезен :)

2 отговори

+3 гласа
отговорени 2016 юни 15 от alxndrstoyanov (500 точки)
избран 2016 юни 16 от Kaloyan Bratoev
 
Най-добър отговор
Привет,

За Андроид в папката res/, където стоят ресурсите можеш да дефинираш различни конфигурации за това как искаш да изглежда приложението ти на устройства с различни размери и плътност(dpi-dots per inch) на екрана. За да поддържаш различни размери и плътност трябва да създадеш папки, които да следват конвенцията layout-[dpi/size] за елементите на екраните екраните(бутони, полета, т.н.), drawable[dpi/size] за изображенията и mipmap-[dpi/size] за иконата, която излиза в менюто за стартиране на апликацията.
Апликацията ще работи даже и да не създадеш папки за всичките плътности и размери - Android операционната система ще пробва да оразмери елементите на екрана.
Ако създадем layout-[dpi] папки за различни плътности апликацията ще работи, но трябва да имаме едно на ум, че един телефон може да има същата плътност каквато и таблет, който има доста по-голям екран. В този ред на мисли трябва да си имаме едно на ум и да създаваме папки за различните размери. Добра стратегия е да се дефинират папки за различните плътности, както и за устройства с екран, който е по-голям размер екран-таблети. Дефинирането на папки за по малки размери може да стане в последствие, ако не се подреждат добре елементите. Папките за размера използват конвенцията sw<ширина>dp. Например:
res/layout-sw600dp/   
Ще бъде използвано за устройства със екран по-голям от 7 инча
res/layout-sw720dp/
Ще бъде използвано за устройства със екран по-голям от 10 инча

 За iOS не съм толкова запознат, дано някой колега помогне за там.

В най-общи линии е това. Надявам се да съм помогнал с отговора!
коментиран 2016 юни 16 от Kaloyan Bratoev (450 точки)
Блгагодаря много за обширното разяснение !!!

На база разяснението си довърших списъка и са ми се изясниха някои подробности :)
+4 гласа
отговорени 2016 юни 16 от budhead (220 точки)
Здравей Калояне,

Аз мога да отговоря за iOS частта.

Там нещата са доста по-прости. Стандартно визията на всеки екран не се прави за различни резолюции, а само за таблет и за телефон (всяко правило си има изключения при странни дизайни). Идеята е да направиш един дизайн, който да се уразмерява сам, спрямо размера на устройството. И отделно един дизайн за таблети, който да използва пълноценно многото пространство.

Всяка картинка(асет) се прави в 3 размера и след това самата операционна система решава коя да използва в дадения момент (това е доста упростено обпснение на това какво се със снимките след като ги качиш в проекта :) ).

Предполагам, че ще правиш проекта на XCode. По-долу ти давам линк към най-добрите туториали, които съм намирал до сега. Друг полезен материал са лекциите на Paul Hegarty в Станфордския университет. Пуснати са безплатно за гледане и според мен са чудесно начало. В лекциите си той показва точно концепцията за дизайн на Епъл и защо не трябва да се придържаме към конкретен размер на екрана.

Ето и малко полезни линкове:

Tutorials: https://www.raywenderlich.com/category/ios
iPhone Screen resolutions: http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

Тук има доста информация за това, кое устройство с каква резолюция е и кой асет(снимка) използва. Както и още много полезна информация :)
http://iosdesign.ivomynttinen.com/

И великите лекции от Станфорд :)
https://itunes.apple.com/en/course/developing-ios-8-apps-swift/id961180099
коментиран 2016 юни 16 от Kaloyan Bratoev (450 точки)
Благодарсности budhead :))
...