«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYYMail.ru Group
Доклад о подходе к разработке Android-приложений с использованием MVP и Clean Architecture. Никита рассмотрит преимущества этого подхода перед традиционным, уделит отдельное внимание вопросам сохранения состояния в Android-MVP, а также особенностям взаимодействия между V и P.
This 9-week Spanish unit focuses on global challenges. Students will discuss environmental, economic, social, and philosophical/religious issues around the world. For the environmental section, they will learn about causes and effects of global warming, its impact on animals like penguins, and how climate change affects countries like Spain, the US, and Peru. Students will analyze these topics through readings, videos, debates and research projects. The goal is for students to understand how interconnected these global issues are and their roles as global citizens.
В своем докладе Сергей Солодовников (Rambler&Co) помогает разобраться с тем, как устроен и какие возможности предоставляет Coordinator Layout – ранее малознакомый для многих элемент разметки, который все чаще встречается в приложениях в связи с переходом на Material Design.
Ссылка на видеозапись: https://youtu.be/47LzYmHKVXM
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYYMail.ru Group
Доклад о подходе к разработке Android-приложений с использованием MVP и Clean Architecture. Никита рассмотрит преимущества этого подхода перед традиционным, уделит отдельное внимание вопросам сохранения состояния в Android-MVP, а также особенностям взаимодействия между V и P.
This 9-week Spanish unit focuses on global challenges. Students will discuss environmental, economic, social, and philosophical/religious issues around the world. For the environmental section, they will learn about causes and effects of global warming, its impact on animals like penguins, and how climate change affects countries like Spain, the US, and Peru. Students will analyze these topics through readings, videos, debates and research projects. The goal is for students to understand how interconnected these global issues are and their roles as global citizens.
В своем докладе Сергей Солодовников (Rambler&Co) помогает разобраться с тем, как устроен и какие возможности предоставляет Coordinator Layout – ранее малознакомый для многих элемент разметки, который все чаще встречается в приложениях в связи с переходом на Material Design.
Ссылка на видеозапись: https://youtu.be/47LzYmHKVXM
Мы рассмотрим область применения, архитектуру и основные особенности такой известной операционной системы как Android. Также расскажем о процессе создания мобильного приложения TulaDev, о проблемах с которыми мы столкнулись и о способах их решения. Вы можете найти приложение для Android <a>на Google Play</a>
Потратив множество человеко-часов над разработкой автотестов для нескольких огромных проектов, я с полной уверенностью могу сообщить, что составил может быть далеко не полный, но уж точно достаточно крупный набор практик, с которыми хочется поделиться с каждым
Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow Mobile Dimension
Доклад старшего Android-разработчика Mobile Dimension Игоря Цеглевского "Взгляд практика на Android 6.0 Marshmallow" на отраслевой конференции "GDG DevFest Nizhny Novgorod 2015"
Мы рассмотрим область применения, архитектуру и основные особенности такой известной операционной системы как Android. Также расскажем о процессе создания мобильного приложения TulaDev, о проблемах с которыми мы столкнулись и о способах их решения. Вы можете найти приложение для Android <a>на Google Play</a>
Потратив множество человеко-часов над разработкой автотестов для нескольких огромных проектов, я с полной уверенностью могу сообщить, что составил может быть далеко не полный, но уж точно достаточно крупный набор практик, с которыми хочется поделиться с каждым
Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow Mobile Dimension
Доклад старшего Android-разработчика Mobile Dimension Игоря Цеглевского "Взгляд практика на Android 6.0 Marshmallow" на отраслевой конференции "GDG DevFest Nizhny Novgorod 2015"
2. МНОГООКОННЫЙ РЕЖИМ
Split screen
Два приложения
отображаются рядом
или друг над другом.
Пользователь может
перетащить линию
разделения.
Free form
Пользователь может
любым образом
изменять размер
каждого окна.
Picture in Picture
Позволит
приложению
отображать контент,
пока пользователь
просматривает другие
приложения или
взаимодействует с
ними.
3. ПЕРЕКЛЮЧЕНИЕ В МНОГОКОННЫЙ
РЕЖИМ
▸Откройте Overview screen (Recents),
выполните long tap на заголовке активити
и перетащите её в обозначенную область
экрана
▸Если активити открыта на весь экран,
выполните long tap на кнопке Overview
(Recents)
4. Place your screenshot here
SPLIT SCREEN
Пример разделения экрана
между двумя
приложениями - Chrome и
Settings
5. FREE FORM НА ЭМУЛЯТОРЕ
$ adb shell
$ su
# setenforce 0
# settings put global enable_freeform_support 1
# cd data/local/tmp
# mkdir permissions
# cd permissions
# cp -a /system/etc/permissions/* ./
# sed -e ‘s/live_wallpaper/freeform_window_management/’ android.software.live_wallpaper.xml > freeform.xml
# mount --bind . /system/etc/permissions
# stop
# start
7. НАСТРОЙКА ПРИЛОЖЕНИЯ ДЛЯ MULTI
WINDOW
Добавьте в манифеcт в тэг <activity> следующий
атрибут*
android:resizeableActivity=[ "true", "false" ]
▸ true - активити может быть запущена в режимах split
screen и free form
▸ false - активити не поддерживает multi window mode и при
запуске займет весь экран**
* Если не указать, то по-умолчанию любая активити будет поддерживать multi
window mode.
** Ещё один случай, когда документация может не совпадать с реальностью
8. ПОДДЕРЖКА FREE FORM
Добавьте в манифеcт в тэг <activity> следующий блок
<layout
android:defaultHeight="size in dp"
android:defaultWidth="size in dp"
android:gravity="gravity flags"
android:minHeight="size in dp"
android:minWidth="size in dp"/>
9. BACKGROUND РАСТЯГИВАНИЯ
Добавьте в стиль активити следующий параметр
values-v24/styles.xml
<item name="android:windowBackgroundFallback">color value or
reference</item>
10. ЗАПУСК НОВЫХ АКТИВИТИ
При запуске новой активити можно сообщить системе,
что окно новой активити следует показать рядом с
текущей, если это возможно
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.google.com"));
intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
12. УВЕДОМЛЕНИЯ АКТИВИТИ
Перед переходом в/из режима multi window, вызывается:
Activity#onMultiWindowModeChanged(boolean)
Узнать, в каком режиме сейчас находится активити:
Activity#isInMultiWindowMode()
13. Place your screenshot here
ПРИМЕР
Запустили приложение
I: onCreate()
I: onStart()
I: onResume()
14. Place your screenshot here
Переход в multi window режим
I: onMultiWindowModeChanged(true)
I: onPause()
I: onSaveInstanceState()
I: onStop()
I: onDestroy()
I: onCreate()
I: onStart()
I: onRestoreInstanceState()
I: onResume()
15. Place your screenshot here
Изменение размеров окна
I: onPause()
I: onSaveInstanceState()
I: onStop()
I: onDestroy()
I: onCreate()
I: onStart()
I: onRestoreInstanceState()
I: onResume()
16. Place your screenshot here
Переключение на другое окно
I: onPause()
Переключение обратно
I: onResume()
17. ЗАКЛЮЧЕНИЕ
▸Корректно обрабатывайте изменения
конфигурации и ориентации*
▸Создайте отзывчивый UI для любых
размеров экранов
▸Активити, запускаемые извне, должны
поддерживать multi window режим
* Если targetApi вашего приложения ниже 24, добавление
android:screenOrientation в манифесте означает, что активити не
поддерживает режим multi window