Skip to content

Все домашние задания к курсу Android 2 на портале Geekbrains.ru

License

Notifications You must be signed in to change notification settings

coffeeplanter/HomeworksAndroid2Geekbrains

Repository files navigation

Курсы Geekbrains по Android, 2-й уровень

В этом репозитории я выложил домашние задания ко второму уровню курсов по разработке под Android на портале Geekbrains.ru.
Надеюсь, они кому-нибудь принесут пользу.
Успехов в изучении программирования!

Занятие 1: меню и навигация в приложении

Домашнее задание

  1. Добавить боковое меню (дровер)
  2. Сделать табы со свайпом без использования библиотеки (http://blog.grafixartist.com/parallax-scrolling-tabs-design-support-library/ или любой другой гайд из интернета)
  3. Добавить второе активити с кнопкой назад
  4. Сделать попап меню
  5. Сделать основное меню со вложенностью.

Мой комментарий

Простое приложение с информацией обо мне как об Android-разработчике. Используется DrawerLayout, NavigationView, CoordinatorLayout, TabLayout, ViewPager, контекстное меню, всплывающее меню, главное меню, явные и неявные интенты, копирование текста в буфер.

Скриншот

Screenshot

Занятие 2: хранение данных

Домашнее задание

  1. Написать приложение с двумя полями ввода(ключ-значение) и тремя кнопками: "Добавить", "Проверить" и "Удалить". При нажатии на "Добавить" сохраняет эти значения в SharedPreferences. "Проверить" проверяет по ключу значение и выводит во второе поле. "Удалить" удаляет по ключу.
  2. Создать базу данных и хранить эти данные также и там.
  3. Добавить фотографию и сохранить во внутренней и внешней памяти. Загрузить из места сохранения и посмотреть в приложении
  4. Добавить шифрование при записи в SharedPreferences и расшифровку при загрузке из него.

Занятие 3: поставщик контента

Домашнее задание

  1. Добавить к приложению с предыдущего урока контент-провайдер.
  2. Сделать новое приложение-клиент, которое будет через провайдер получать и обновлять данные.

Мой комментарий

Хорошее тренировочное задание, которое заставило попотеть.
Я объединил два урока, т. к. они тесно связаны друг с другом. В одном проекта два модуля: contentprovider и contentproviderclient — по сути отдельные приложения.
Всё сделано по пунктам. Добавление фотографии реализовано через неявный интент к камере, при отображении снимка его размеры оптимизируются. Для шифрования использовалась библиотека javax.crypto.Cipher.

Скриншот

Screenshot

Занятие 4: многопоточность

Домашнее задание

  1. Скачайте и отобразите картинку с помощью асинхронного таска. Подробнее: http://stacktips.com/tutorials/android/download-image-using-asynctask-in-android
  2. Напишите программу, которая каждую секунду отображает на экране данные о времени, прошедшем от начала запуска аппа, а другой ее поток выводит сообщение каждые 5 секунд. Предусмотрите возможность ежесекундного оповещения потока, воспроизводящего сообщение, потоком, отсчитывающим время. Не внося изменений в код потока-"хронометра", добавьте еще один поток, который выводит на экран другое сообщение каждые 7 секунд. Предполагается использование методов wait(), notifyAll(). Справка: wait() принуждает поток остановиться, пока другой поток не войдет в него и не вызовет метод notify(). notify() возобновляет работу потока, который вызвал метод wait() в том же объекте. notifyAll() возобновляет работу всех потоков, которые вызвали метод wait() в том же объекте. Одному из потоков дается доступ. Подробнее: https://metanit.com/java/tutorial/8.5.php

Мой комментарий

Задачи на понимание многопоточности и применение класса AsyncTask.
В проекте два модуля.

Скриншот

Screenshot

Занятие 5: службы

Домашнее задание

  1. Создайте приложение — галерею. Изначально оно будет пустым и приглашать пользователя скачать несколько картинок (не меньше пяти). Т.е. попробуйте реализовать что-то вроде маленького приложения работы с облаком. Как только пользователь нажимает "Скачать", вы должны скачать все эти картинки в сервисе. По окончанию загрузки они должны отобразиться на экране. Поскольку работа будет именно в сервисе, то у пользователя будет возможность свернуть приложение (я буду это проверять). В этом случае нужно вывести уведомление в бар наверху, что загрузка звершена. После открытия картинки должны отображаться. Для это ваш сервис должен их сохранять как обычные файлы, а в методе onStart() вы должны считывать директорию с ними и отображать. Узнать, завершен ли сервис или запущен: http://stackoverflow.com/questions/7951869/how-to-know-running-services-is-finished http://stackoverflow.com/questions/600207/how-to-check-if-a-service-is-running-on-android

Мой комментарий

Реализовал как полноэкранное приложение.

Скриншот

Screenshot

Занятие 6: приёмники широковещательных сообщений, виджеты

Домашнее задание

  1. Добавить виджет с отображением четырех последних смс сообщений.

Мой комментарий

Виджет-список.
При добавлении виджета на экран можно выбрать количество выводимых сообщений (но не более 20).

Скриншот

Screenshot

Занятие 7: Карты и позиционирование

Домашнее задание

  1. Сделать виджет, отображающий ваше текущее местоположение (адрес + координаты).
  2. Добавить на карту точки с описанием.

Занятие 8: Отладка приложений и распространение

Домашнее задание

Домашнего задания нет.

Мой комментарий

Очередной виджет + самая простая реализация Google Maps.
В проекте два модуля.
Для запуска карт, нужно получить ключ от Google API. Ищите в Гугле, как это сделать.
К последнему занятию по отладке домашнего задания не было.

Скриншот

Screenshot

About

Все домашние задания к курсу Android 2 на портале Geekbrains.ru

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages