Разделы презентаций


Лекция №6 Интерфейс пользователя Москва 2019

Содержание

Жизненный цикл активностейОтслеживать эти события и реагировать на них, закрывать базу данных, сохранять файлы.Состояние меняются автоматически в зависимости от действия пользователей.OnCreate – приложение сверстано, но не доступно для пользователяOnStart – активность

Слайды и текст этой презентации

Слайд 1Лекция №6 «Интерфейс пользователя»
Москва 2019

Лекция №6   «Интерфейс пользователя»Москва 2019

Слайд 4Жизненный цикл активностей
Отслеживать эти события и реагировать на них, закрывать

базу данных, сохранять файлы.
Состояние меняются автоматически в зависимости от действия

пользователей.
OnCreate – приложение сверстано, но не доступно для пользователя
OnStart – активность создано но пока не готово для запуска


Жизненный цикл активностейОтслеживать эти события и реагировать на них, закрывать базу данных, сохранять файлы.Состояние меняются автоматически в

Слайд 5Жизненный цикл активностей

Жизненный цикл активностей

Слайд 6Ресурсы Android приложения

Ресурсы Android приложения

Слайд 7Значения
Все что добавляется в ресурсы, получает автоматический идентификатор.
В папке layout

храниться верстка активностей.
Все отображения являются потомками класса View.

ЗначенияВсе что добавляется в ресурсы, получает автоматический идентификатор.В папке layout храниться верстка активностей.Все отображения являются потомками класса

Слайд 8Относительный макет
Парадигма MVC (Yii) , отображение дистанцировано от контроллера и

данных

Относительный макетПарадигма MVC (Yii) , отображение дистанцировано от контроллера и данных

Слайд 9Табличный макет
Linear Layout выравнивание по вертикали бессмысленно

Табличный макетLinear Layout выравнивание по вертикали бессмысленно

Слайд 10Отступы

Отступы

Слайд 11Отступы

Отступы

Слайд 12Разметка LinearLayout
Не больше трех LinearLayout использвоать вложенные.
Альтернатива табличной верстки.
MAIN –

главная активность,
LAUNCHER – активность которая запускается.

Разметка LinearLayoutНе больше трех LinearLayout использвоать вложенные.Альтернатива табличной верстки.MAIN – главная активность,LAUNCHER – активность которая запускается.

Слайд 13Разметка LinearLayout

Разметка LinearLayout

Слайд 14Табличный дизайн
Возможно программное добавление компонентов в табличный дизайн

Табличный дизайнВозможно программное добавление компонентов в табличный дизайн

Слайд 15Grid Layout
Один из наиболее удобных макетов. Автоматически растягиваются компоненты

Grid LayoutОдин из наиболее удобных макетов. Автоматически растягиваются компоненты

Слайд 16Вывод Log сообщений

Вывод Log сообщений

Слайд 17Табличный дизайн
Объединение ячеек

Табличный дизайнОбъединение ячеек

Слайд 18FrameLayout
Для мультипликации, частой смены картинок используется FrameLayout
Контейнер где нет выравнивания.

FrameLayoutДля мультипликации, частой смены картинок используется FrameLayoutКонтейнер где нет выравнивания.

Слайд 19CafeOrder
Для мультипликации, частой смены картинок используется FrameLayout

CafeOrderДля мультипликации, частой смены картинок используется FrameLayout

Слайд 20CafeOrder

CafeOrder

Слайд 21CafeOrder

CafeOrder

Слайд 24Признаки «хорошего» кода
Хороший код – это самодокументируемый

код, плохой код к которому требуется инструкция.
Как только к коду

прилагается инструкция – это плохо.
Эффект отложенной ошибки, если ошибка происходит в одном месте, но узнаем мы о ней в другом месте сильно после. С этим надо бороться, чтобы ошибки видели в момент возникновения. С этим могут помочь свойства. Повторений кода поменьше. В том месте где есть ошибка мы сигнализируем об этом и предоставляем возможность программисту возможность понять где ошибка
Признаки «хорошего» кода   Хороший код – это самодокументируемый код, плохой код к которому требуется инструкция.Как

Слайд 25Признаки «хорошего» кода
Можно замаскировать ошибку. Но это

плохая практика. Никогда не узнаю, что у меня ошибка в

алгоритме. Лишаете возможность увидеть ошибку на другом уровне на уровне алгоритма.
Хорошо защищенный класс, который страхует нас от возможных ошибок.
Массив объектов – большие накладные расходы
Признаки «хорошего» кода   Можно замаскировать ошибку. Но это плохая практика. Никогда не узнаю, что у

Слайд 26NUnit
В Юнит тестах у нас всегда есть фактически результат и

ожидаемый результат ожидаемый результат обозначает как мы определяем правильное поведение

системы

Ожидаемый результат

Ожидаемый результат - как мы определяем правильное поведение системы
Фактический результат обозначает как система ведёт себя в реальности
Наша задача сравнить ожидаемое и фактическое поведение

NUnitВ Юнит тестах у нас всегда есть фактически результат и ожидаемый результат ожидаемый результат обозначает как мы

Слайд 27Тестировщики не делают unit тестов. Благодаря unit тестам вносить изменения

намного проще Unit тест - это функция, который вызывает другую

функцию и затем проверяет правильность конечного результата.
Тестируемая система - это единица тестируемая Unit тестом.

Тестировщики не делают unit тестов. Благодаря unit тестам вносить изменения намного проще  Unit тест - это

Слайд 28Разработчики несут ответственность за свой код. Тестировщики не делают unit тестов.

Благодаря unit тестам вносить изменения намного проще. Клятва программиста: 1. Я

не напишу вредоносный код
2. Созданный мною код всегда будет моей лучшей работой
3. Я не допущу сознательной неисправности в ходе твоего поведения или структуры 4. Я буду часто выпускать небольшие версии, чтобы не мешать прогрессу остальных.
5. Я буду неустанно совершенствовать свои творения при каждой возможности .
6. Я всегда буду следить за тем , чтобы другие могли прикрыть меня а я мог прикрыть их.
7. Я не сделаю ничего что приведет к ухудшению я буду прилагать все усилия чтобы сохранять наибольшую продуктивность как собственную так и других
8. Я не буду давать обещание без уверенности в том, что смогу их выполнять
9. Я никогда не перестану учиться и совершенствовать свое ремесло

Ответственность программиста

Разработчики несут ответственность за свой код. Тестировщики не делают unit тестов. Благодаря unit тестам вносить изменения намного

Слайд 29Ограничения NUbit
Есть три главных логических ограничения. Эти ограничения представлены соответственно

названными классами в нём ограничения многослойная модель на следующем уровне

у нас могут быть но необязательно другие логические ограничения

Второе утверждение здесь проверяет все ли элементы массива больше 0 в данном случае выражения ограничения будет вычислено как True поскольку все значения больше нуля

Ограничения NUbitЕсть три главных логических ограничения. Эти ограничения представлены соответственно названными классами в нём ограничения многослойная модель

Слайд 30NUnit
Пометим классы и методы тестирования специальными атрибутами чтобы их можно

было обнаружить
[ Атрибут ]

NUnitПометим классы и методы тестирования специальными атрибутами чтобы их можно было обнаружить[ Атрибут ]

Слайд 32Возможные правила именования Unit
Имя функции должно состоять из трёх частей

разделенных подчёркиванием. Первая часть: просто имя тестируемой функций или что-то

более абстрактное, вторая: аргумент переданных тестируемые функцию или более абстрактной сценарий вроде invalid Stream Format, в целом отражает условия в которых будет тестироваться программная единица. третья часть: ожидаемое поведение в зависимости от результатов тестирования функции. Например, возвращает значение или меняет состояние (SetNumberToZero) или вызывает другой метод
Возможные правила именования UnitИмя функции должно состоять из трёх частей разделенных подчёркиванием.  Первая часть: просто имя

Слайд 33Отладка в Unit
Код, который пишется для того, чтобы прошел некоторый

тест, по определению поддается тестированию. Более того, создается сильная мотивация

для разбиения программы на модули, чтобы каждый мо дуль можно было тестировать независимо.
Отладка в UnitКод, который пишется для того, чтобы прошел некоторый тест, по определению поддается тестированию. Более того,

Слайд 34Ограничения NOT
Ограничение Does чаще всего используются когда вы пишете утверждение

относительно строк.

Ограничения NOTОграничение Does чаще всего используются когда вы пишете утверждение относительно строк.

Слайд 35Утверждения Has
Ограничение Has хотя бы одна строка содержит возвращает True
Содержит

ли значение 1,0 плюс, минус 0,05. Выражение будет вычислено как

True
Утверждения HasОграничение Has хотя бы одна строка содержит возвращает TrueСодержит ли значение 1,0 плюс, минус 0,05. Выражение

Слайд 36Утверждения Has
Ограничение Has хотя бы одна строка содержит возвращает True
Содержит

ли значение 1,0 плюс, минус 0,05. Выражение будет вычислено как

True
Утверждения HasОграничение Has хотя бы одна строка содержит возвращает TrueСодержит ли значение 1,0 плюс, минус 0,05. Выражение

Слайд 37Полиморфизм
полиморфизм – это различная реализация однотипных действий. Классическая фраза, которая

коротко объясняет полиморфизм – «Один интерфейс, множество реализаций»

Приведу примеры

из жизни. В автомобилях есть рулевое колесо. Это колесо является интерфейсом между водителем и автомобилем, который позволяет поворачивать автомобиль.
Механическая реализация руля у автомобилей может быть разная, но при этом результат получается одинаковым – колесо вправо – автомобиль вправо, и наоборот.

Полиморфизмполиморфизм – это различная реализация однотипных действий. Классическая фраза, которая коротко объясняет полиморфизм – «Один интерфейс, множество

Слайд 38Полиморфизм
Полиморфизм позволяет :
писать более абстрактные, расширяемые программы,
- один и

тот же код используется для объектов разных классов,
улучшается читабельность

кода.
избавляет разработчика от написания, чтения и отладки множества if-else/switch-case конструкций.

ПолиморфизмПолиморфизм позволяет :писать более абстрактные, расширяемые программы, - один и тот же код используется для объектов разных

Слайд 39Пример программы Copy

Пример программы Copy

Слайд 40Доработка №1 программы Copy
public class Copier
{
//не забудьте сбросить этот флаг
public

static bool ptFlag = false;
public static void Copy()
{
int c;
while((c=(ptFlag ?

Flash() .Read(): Keyboard.Read())) != -1)
Printer.Write(c);
}
}

Если программа хочет вызвать Copy для чтения с флешки, то долж-
на сначала установить для переменной ptFlag значение true. А после завершения программы Copy нужно сбросить этот флаг, иначе следующий
обратившийся будет читать с флешки, а не с клавиатуры. Чтобы напомнить программистам о необходимости сбрасывать флаг, вы включили комментарий.
<усл. Выр> ? <блок№1>:<блок №2>
If (усл. Выр)
{блок№1}
else {блок №2}


Доработка №1 программы Copypublic class Copier{//не забудьте сбросить этот флагpublic static bool ptFlag = false;public static void

Слайд 41Доработка №1 программы Copy
public class Copier
{
//не забудьте сбросить этот флаг
public

static bool ptFlag = false;
public static void Copy()
{
int c;
while((c=(ptFlag ?

Flash() .Read(): Keyboard.Read())) != -1)
Printer.Write(c);
}
}

Если программа хочет вызвать Copy для чтения с флешки, то долж-
на сначала установить для переменной ptFlag значение true. А после завершения программы Copy нужно сбросить этот флаг, иначе следующий
обратившийся будет читать с флешки, а не с клавиатуры. Чтобы напомнить программистам о необходимости сбрасывать флаг, вы включили комментарий.
<усл. Выр> ? <блок№1>:<блок №2>
If (усл. Выр)
{блок№1}
else {блок №2}


Доработка №1 программы Copypublic class Copier{//не забудьте сбросить этот флагpublic static bool ptFlag = false;public static void

Слайд 42Модификация программы Copy
public class Copier
{
//не забудьте сбросить эти флаги
public

static bool ptFlag = false;
public static bool ptFlag2 = false;

public

static void Copy()
{

}
}

В данном случае команда следовала принципу открытости/закрыто-
сти. Он требует проектировать модули так, чтобы их можно было расширять без модификации.
Столкнувшись с таким отсутствием эластичности, гибкие разработчики
сразу поняли, что направление зависимости от модуля Copy к устройству
ввода следует инвертировать, воспользовавшись принципом инверсии
зависимости

Модификация программы Copy public class Copier{//не забудьте сбросить эти флагиpublic static bool ptFlag = false;public static bool

Слайд 43Модификация программы Copy

Модификация программы Copy

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика