1. Структура на андроид проект. Структура на AndroidManifest и gradle. Включване на външни библиотеки.
Да се разработи приложение, което зарежда растерен графичен файл от URL и го прилага на ImageView. Да се използва Picasso (https://github.com/square/picasso).
Допълнителна информация за средата на разработка Android Studio - https://github.com/tllw/pmiu/tree/master/exercise1
Bonus: да се реализира Callback известяващ при зараждане на графичния файл (успешно и неуспешно).
2. Андроид activity клас, намерения (Intent-и). Предаване на параметри чрез намерения. Constraint layout.
-
Да се реализира приложение "Прогноза за времето", което при въведена локация да визуализира в подходящ стил прогноза на времето. Програмата да действа като асинхронен REST клиент на HTTP API. За реализация на заявките и десериализация на JSON да се използва Retrofit (https://github.com/square/retrofit).
-
Да се реализира CRUD телефон указател, като се използва MVVM или MVP архитектура. Да се изберат подходящите структури данни и проектират подходящите обекти за репрезентиране на указателя и неговите елементи. Да се използват Android Architecture Components - ViewModel и LiveData.
-
Да се проектира CRUD фитнес дневник (таблици: дни, видове упражнения, програми), чиито данни се съхраняват в sqlite база данни. Да се използва Room за абстракция на базата данни.
-
Да се реализира известната игра Snake (змия).
-
Да се реализира програма "GPS локатор", в която background service переодично проверява текущото разстояние до зададен обект (дефиниран от GPS координати, например 43.2228918, 27.9345786) и уведомява activity, което го показва на потребителя. Да се реализира функционалност, която позволява експлицитно опресняване на разстоянието.
-
Да се проектира CRUD to-do приложение. Като всички UI функционалности, както и комуникацията между Model и View сe базират на ReactiveX observables. Да се използва RxJava2-Android.
- Всички задачи се предават като линк към github проект
- Кодът да следва Android style guidelines (https://google.github.io/styleguide/javaguide.html)
- Към проектите да бъдат включени тестове (unit и функционални). Espresso (https://developer.android.com/training/testing/espresso/index.html)
- Кодът ще бъде проверяван за плагиатсво
- Използването на Dependency injection (Dagger2 - https://github.com/google/dagger) и View bindings (Butter knife - http://jakewharton.github.io/butterknife/) ще се поощрява
- Препоръчва се използването на Java 8 (вместо базовия Java 6) синтаксис и механизми : lambdas, method references, type annotations и т.н.