Александр Василенко: По поводу GreenDAO поднимал тему тут - Android SQLite какой ORM фреймворк используете вы? .
Из TDD конкретно по Android Вы ничего не найдете. Подробную инфу можно вычерпнуть отсюда: https://habrahabr.ru/post/43761/ https://habrahabr.ru/post/206828/ https://ru.wikipedia.org/wiki/TDD
А если в двух словах, то Ваш алгоритм использования TDD(возьмем пример с БД) состоит из следующего:
1. Cперва занимаемся проектированием БД. Рисуем таблички в MySQL и по надобности документируем их.
2. Исходя из данных таблицы БД, занимаемся абстракцией ORM модели. Преобразовываем SQL в объект которым будем оперировать. Можно и в обратной последовательности, не столь важно.
3. Занимаемся проектированием коммуникациии между моделью и сигналами. пример: у нас есть адресная книга, номера телефонов могут удаляться, добавляться и обновляться - следовательно, создаем интерфейс, в котором описываем доступные возможности для абстракции контакта - IContact, IContactHelper: delete(Icontact), insert(IContact),update(IContact) и т/д/
4. Далее уже самое главное, начинаем писать тесты для наших абстракций. Причем, самый главный момент, при написании тестов, оперируем только абстракциями объектов. Не стоит привязывать тестируемый обьект к конкретной реализации, впоследствии саппорта или разработки,у вас может измениться реализация объекта БД (изменится ОРМ) и с конкретной привязкой к объекту у Вас возникнут лишние проблемы - придется переписывать почти весь стек тестов, так что стоит позаботиться заранее.
5. Пишем реализацию наших хотелок. Запускаем тесты, смотрим что обвалилось, а что нет. Когда все тесты написаны, запускаем codecoverage и покрытие кода тестами, оперделяем места, где профелонили.
Думаю перед написанием тестов, следует ознакомится со статьей про антипаттерны тестирования.
Надеюсь что инфа полезная. Если что, стучитесь.
newdancer: Решены проблемы с передачей файлов, Rx + не нужно дублировать интерфейсы, для использования синхронных/асинхронных вызовов. Лично для меня, это существенные новшества.
Если апп подписанный, то вроде отснифать не так уж и просто.
А если прятать не в памяти устройства, а в коде? Просто обфускация строковые значения не затрагивает, но может есть решение, как это можно максимально скрыть?
В голову приходил лишь алгоритм создания громадного зашифрованного файла, нужные строки из которого получаются посредством использования определенного метода, хоть какой-то вариант, притормозит умыслы злоумышленника.
С DAO особых проблем нет, утомляет их написание, когда из коробки есть решение от других Frameworks. У ORMLite был бы резон использования, если бы не Runtime.
Спасибо, попробую заценить Brite, тайминги выложу чуть позже.