SlideShare a Scribd company logo
1 of 9
Download to read offline
Эффективное проектирование
графических интерфейсов для
  устройств на базе Android
               Дмитрий Воробьев, CMG Russia
О чем пойдет речь?
               Web                                    Mobile
                Техническое задание (технический писатель)
                         Юзабилити (юзабилист)
                               Дизайн (дизайнер)
       Верстка (верстальщик)                       Верстка (???)
                     Программирование (программист)




• Что требовать от дизайнера?
• Как и с помощью чего можно сверстать приложение?
• Какие трудности могут возникнуть и как их преодолеть?



                                                                   02/10
Основная проблема разработчика




                                 03/10
Что рекомендует Google?

• fill_parent, wrap_content, dp вместо px в layout XML
• Не использовать AbsoluteLayout
• Не использовать px в коде
• Использовать различные ресурсы в зависимости от
параметров экрана

 Спецификаторы ресурсов:          NinePatch:
 small, normal, large, xlarge     draw9patch
 long, notlong                    слева и сверху – область для растягивания
 port, land                       справа и снизу – область контента
 ldpi, mdpi, hdpi, xhdpi, nodpi




                                                                      04/10
Цель – измерить все в dip
                    ldpi (120)               mdpi (160)              hdpi (240)
               px                dp     px            dp        px                dp
  Small     240x320       320x426.6
            240x400       320x533.3   320x480       320x480   480x800      320x533.3
 Normal
            240x432        320x576                            480x854      320x569.3
                                      480x800       480x800
  Large
                                      480x854       480x854


Получается максимум 7 разрешений в dp
Разрешения можно группировать, тогда количество групп меньше
Спецификаторы относятся к layout XML


Но еще есть планшеты с xlarge и xhdpi...


                                                                              05/10
«Табличная верстка»
При использовании LinearLayout :
• android:layout_weight – перераспределение свободного места
• android:layout_gravity




                                            А в TableRow (TableLayout) еще и:
                                            • android:layout_column
                                            • android:layout_span




                                                                      06/10
DIY

Activity.onCreate – создаем все из кода



Но есть еще один способ:
1. MyLayoutInflater extends LayoutInflater
2. Activity.getLayoutInflater возвращает MyLayoutInflater
3. Activity.getSystemService(Service.LAYOUT_INFLATER_SERVICE) – тоже
4. В layout XML объявляем новое пространство имен аттрибутов
5. В MyLayoutInflater.onCreateView обрабатываем их
6. Выделяем все в подключаемую библиотеку




                                                                   07/10
Инструментарий

1. Редактор в Eclipse (как ни странно) – удобно для разработчика
2. Droiddraw (http://droiddraw.org) – есть и онлайн, и оффлайн
3. LWUIT для Android – неспортивно
4. Наборы для прототипирования:
http://www.androidpatterns.com/
http://www.smashingmagazine.com/2009/08/18/android-gui-psd-vector-kit/
http://unitid.nl/2009/11/fireworks-template-for-android/
http://graffletopia.com/stencils/578




                                                                         08/10
Ваш вопрос




             ?
             d.vorobiev@litecoding.com
             http://litecoding.com
             сейчас, через приложение omyconf
                                       09/10

More Related Content

More from Elena Kotina

PJSIP – VOIP движок, как база проекта
PJSIP – VOIP движок, как база проектаPJSIP – VOIP движок, как база проекта
PJSIP – VOIP движок, как база проектаElena Kotina
 
Мобильные платформы и изменение пользовательского опыта
Мобильные платформы и изменение пользовательского опытаМобильные платформы и изменение пользовательского опыта
Мобильные платформы и изменение пользовательского опытаElena Kotina
 
Pay-Mobile API: платежи банковскими картами в мобильном
Pay-Mobile API: платежи банковскими картами в мобильномPay-Mobile API: платежи банковскими картами в мобильном
Pay-Mobile API: платежи банковскими картами в мобильномElena Kotina
 
Платформа "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
Платформа  "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...Платформа  "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
Платформа "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...Elena Kotina
 
Продвижение мобильных приложений в мобильном интернете
Продвижение мобильных приложений в мобильном интернетеПродвижение мобильных приложений в мобильном интернете
Продвижение мобильных приложений в мобильном интернетеElena Kotina
 
Рынок мобильных приложений: альтернативные методы монетизации
Рынок мобильных приложений: альтернативные методы монетизацииРынок мобильных приложений: альтернативные методы монетизации
Рынок мобильных приложений: альтернативные методы монетизацииElena Kotina
 
Мобильный интернет – кто здесь?!
Мобильный интернет – кто здесь?!Мобильный интернет – кто здесь?!
Мобильный интернет – кто здесь?!Elena Kotina
 
Практический кейс: "Назначение нового менеджера в команду"
Практический кейс: "Назначение нового менеджера в команду"Практический кейс: "Назначение нового менеджера в команду"
Практический кейс: "Назначение нового менеджера в команду"Elena Kotina
 
Nokia для разработчиков
Nokia для разработчиковNokia для разработчиков
Nokia для разработчиковElena Kotina
 
MeeGo, AppUp & Atom – планы и перспективы
MeeGo, AppUp & Atom – планы и перспективыMeeGo, AppUp & Atom – планы и перспективы
MeeGo, AppUp & Atom – планы и перспективыElena Kotina
 
А теперь мы идем к вам! Реклама в мобильных приложениях
А теперь мы идем к вам! Реклама в мобильных приложенияхА теперь мы идем к вам! Реклама в мобильных приложениях
А теперь мы идем к вам! Реклама в мобильных приложенияхElena Kotina
 
mail.ru: Технологические инновации и лучшие люди
mail.ru: Технологические инновации и лучшие людиmail.ru: Технологические инновации и лучшие люди
mail.ru: Технологические инновации и лучшие людиElena Kotina
 
Разработка кроссплатформенного приложения с использованием Airplay SDK
Разработка кроссплатформенного приложения с использованием Airplay SDKРазработка кроссплатформенного приложения с использованием Airplay SDK
Разработка кроссплатформенного приложения с использованием Airplay SDKElena Kotina
 
Пробки DorogaTV для мобильных приложений. Как встроить пробки в Ваше мобильно...
Пробки DorogaTV для мобильных приложений. Как встроить пробки в Ваше мобильно...Пробки DorogaTV для мобильных приложений. Как встроить пробки в Ваше мобильно...
Пробки DorogaTV для мобильных приложений. Как встроить пробки в Ваше мобильно...Elena Kotina
 
Мобильный маркетинг и реклама как интегратор медиамикса
Мобильный маркетинг и реклама как интегратор медиамиксаМобильный маркетинг и реклама как интегратор медиамикса
Мобильный маркетинг и реклама как интегратор медиамиксаElena Kotina
 
Мобильные приложения и корпоративные сайты. Технологии взаимодействия
Мобильные приложения и корпоративные сайты. Технологии взаимодействияМобильные приложения и корпоративные сайты. Технологии взаимодействия
Мобильные приложения и корпоративные сайты. Технологии взаимодействияElena Kotina
 
Использование геосерсисов для монетизации мобильных приложений
Использование геосерсисов для монетизации мобильных приложенийИспользование геосерсисов для монетизации мобильных приложений
Использование геосерсисов для монетизации мобильных приложенийElena Kotina
 
Новые возможности информационных агентств и СМИ на примере iPhone, iPad и дру...
Новые возможности информационных агентств и СМИ на примере iPhone, iPad и дру...Новые возможности информационных агентств и СМИ на примере iPhone, iPad и дру...
Новые возможности информационных агентств и СМИ на примере iPhone, iPad и дру...Elena Kotina
 
онтология
онтологияонтология
онтологияElena Kotina
 

More from Elena Kotina (20)

PJSIP – VOIP движок, как база проекта
PJSIP – VOIP движок, как база проектаPJSIP – VOIP движок, как база проекта
PJSIP – VOIP движок, как база проекта
 
Мобильные платформы и изменение пользовательского опыта
Мобильные платформы и изменение пользовательского опытаМобильные платформы и изменение пользовательского опыта
Мобильные платформы и изменение пользовательского опыта
 
Pay-Mobile API: платежи банковскими картами в мобильном
Pay-Mobile API: платежи банковскими картами в мобильномPay-Mobile API: платежи банковскими картами в мобильном
Pay-Mobile API: платежи банковскими картами в мобильном
 
Платформа "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
Платформа  "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...Платформа  "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
Платформа "Агент+ 2.0" - возможности для быстрой разработки мобильных бизнес...
 
Продвижение мобильных приложений в мобильном интернете
Продвижение мобильных приложений в мобильном интернетеПродвижение мобильных приложений в мобильном интернете
Продвижение мобильных приложений в мобильном интернете
 
Рынок мобильных приложений: альтернативные методы монетизации
Рынок мобильных приложений: альтернативные методы монетизацииРынок мобильных приложений: альтернативные методы монетизации
Рынок мобильных приложений: альтернативные методы монетизации
 
Мобильный интернет – кто здесь?!
Мобильный интернет – кто здесь?!Мобильный интернет – кто здесь?!
Мобильный интернет – кто здесь?!
 
Практический кейс: "Назначение нового менеджера в команду"
Практический кейс: "Назначение нового менеджера в команду"Практический кейс: "Назначение нового менеджера в команду"
Практический кейс: "Назначение нового менеджера в команду"
 
Nokia для разработчиков
Nokia для разработчиковNokia для разработчиков
Nokia для разработчиков
 
MeeGo, AppUp & Atom – планы и перспективы
MeeGo, AppUp & Atom – планы и перспективыMeeGo, AppUp & Atom – планы и перспективы
MeeGo, AppUp & Atom – планы и перспективы
 
А теперь мы идем к вам! Реклама в мобильных приложениях
А теперь мы идем к вам! Реклама в мобильных приложенияхА теперь мы идем к вам! Реклама в мобильных приложениях
А теперь мы идем к вам! Реклама в мобильных приложениях
 
mail.ru: Технологические инновации и лучшие люди
mail.ru: Технологические инновации и лучшие людиmail.ru: Технологические инновации и лучшие люди
mail.ru: Технологические инновации и лучшие люди
 
Разработка кроссплатформенного приложения с использованием Airplay SDK
Разработка кроссплатформенного приложения с использованием Airplay SDKРазработка кроссплатформенного приложения с использованием Airplay SDK
Разработка кроссплатформенного приложения с использованием Airplay SDK
 
Пробки DorogaTV для мобильных приложений. Как встроить пробки в Ваше мобильно...
Пробки DorogaTV для мобильных приложений. Как встроить пробки в Ваше мобильно...Пробки DorogaTV для мобильных приложений. Как встроить пробки в Ваше мобильно...
Пробки DorogaTV для мобильных приложений. Как встроить пробки в Ваше мобильно...
 
Мобильный маркетинг и реклама как интегратор медиамикса
Мобильный маркетинг и реклама как интегратор медиамиксаМобильный маркетинг и реклама как интегратор медиамикса
Мобильный маркетинг и реклама как интегратор медиамикса
 
Мобильные приложения и корпоративные сайты. Технологии взаимодействия
Мобильные приложения и корпоративные сайты. Технологии взаимодействияМобильные приложения и корпоративные сайты. Технологии взаимодействия
Мобильные приложения и корпоративные сайты. Технологии взаимодействия
 
Использование геосерсисов для монетизации мобильных приложений
Использование геосерсисов для монетизации мобильных приложенийИспользование геосерсисов для монетизации мобильных приложений
Использование геосерсисов для монетизации мобильных приложений
 
Новые возможности информационных агентств и СМИ на примере iPhone, iPad и дру...
Новые возможности информационных агентств и СМИ на примере iPhone, iPad и дру...Новые возможности информационных агентств и СМИ на примере iPhone, iPad и дру...
Новые возможности информационных агентств и СМИ на примере iPhone, iPad и дру...
 
аллока
аллокааллока
аллока
 
онтология
онтологияонтология
онтология
 

Эффективное проектирование графических интерфейсов для устройств на базе ОС Android

  • 1. Эффективное проектирование графических интерфейсов для устройств на базе Android Дмитрий Воробьев, CMG Russia
  • 2. О чем пойдет речь? Web Mobile Техническое задание (технический писатель) Юзабилити (юзабилист) Дизайн (дизайнер) Верстка (верстальщик) Верстка (???) Программирование (программист) • Что требовать от дизайнера? • Как и с помощью чего можно сверстать приложение? • Какие трудности могут возникнуть и как их преодолеть? 02/10
  • 4. Что рекомендует Google? • fill_parent, wrap_content, dp вместо px в layout XML • Не использовать AbsoluteLayout • Не использовать px в коде • Использовать различные ресурсы в зависимости от параметров экрана Спецификаторы ресурсов: NinePatch: small, normal, large, xlarge draw9patch long, notlong слева и сверху – область для растягивания port, land справа и снизу – область контента ldpi, mdpi, hdpi, xhdpi, nodpi 04/10
  • 5. Цель – измерить все в dip ldpi (120) mdpi (160) hdpi (240) px dp px dp px dp Small 240x320 320x426.6 240x400 320x533.3 320x480 320x480 480x800 320x533.3 Normal 240x432 320x576 480x854 320x569.3 480x800 480x800 Large 480x854 480x854 Получается максимум 7 разрешений в dp Разрешения можно группировать, тогда количество групп меньше Спецификаторы относятся к layout XML Но еще есть планшеты с xlarge и xhdpi... 05/10
  • 6. «Табличная верстка» При использовании LinearLayout : • android:layout_weight – перераспределение свободного места • android:layout_gravity А в TableRow (TableLayout) еще и: • android:layout_column • android:layout_span 06/10
  • 7. DIY Activity.onCreate – создаем все из кода Но есть еще один способ: 1. MyLayoutInflater extends LayoutInflater 2. Activity.getLayoutInflater возвращает MyLayoutInflater 3. Activity.getSystemService(Service.LAYOUT_INFLATER_SERVICE) – тоже 4. В layout XML объявляем новое пространство имен аттрибутов 5. В MyLayoutInflater.onCreateView обрабатываем их 6. Выделяем все в подключаемую библиотеку 07/10
  • 8. Инструментарий 1. Редактор в Eclipse (как ни странно) – удобно для разработчика 2. Droiddraw (http://droiddraw.org) – есть и онлайн, и оффлайн 3. LWUIT для Android – неспортивно 4. Наборы для прототипирования: http://www.androidpatterns.com/ http://www.smashingmagazine.com/2009/08/18/android-gui-psd-vector-kit/ http://unitid.nl/2009/11/fireworks-template-for-android/ http://graffletopia.com/stencils/578 08/10
  • 9. Ваш вопрос ? d.vorobiev@litecoding.com http://litecoding.com сейчас, через приложение omyconf 09/10