Спасибо за материал, местами перевод не очень точный, например: 1. "пользовались объективом Google" - пользовались Google Lens. 2. рисованию текста на холсте - рисованию с помощью Сanvas API.
Просто заменили extension на интерфейс с реализацией, было бы идеально проектировать именно так изначально, так как тестирование этих extension функций еще та "радость".
Я считаю, что описание классов должно быть в другой последовательности, сначала описание сервиса, а потом описание фрагмента где есть работа с этим сервисом. Ну и перевод Android-specific вещей очень путает: 1. "когда вы переходите от одного действия к другому." - переход между экранами. 2. " слушатель обратного вызова". - callback. 3. "фильтрация намерений с нашими действиями." - фильтрация broadcast сообщений. Да и материал довольно таки устарел с приходом таких библиотек и решейний как kotlin caroutines, rxjava...
Код на Котлине приносит приятный синтаксический сахар: автоматический вывод типов, удобное делегировние, дата класы, функции расширения и другое. Но он так же легко читаемый как и java, если поработать с ним несколько месяцев.
Сейчас почти каждый «современный» Android(Kotlin) проект содержит это решение и у каждого название разное (Reaction, Result, ResultModel, ResultType etc.) но цель одна :)
По прежнему большая часть работы остается в Activity, хотелось бы большей энкапсуляции в отдельные классы, что бы этот класс делал все внутренние проверки:
if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) {
// доступ к камере запрещен, нужно объяснить зачем нам требуется разрешение
} else {
singlePermission.launch(Manifest.permission.CAMERA)
}
Хорошая статья, правда мы на одном большом мед. проекте реализовали дополнительные нативные проверки, а также как сказано сверху, нужно проверять целостность самого APK.
Насколько я знаю, с помощью механизма UncaughtExceptionHandler можно обработать лог ивенты которые ещё находятся в очереди в момент возникновения креша. В этом обработчике нужно завершить работу логгера используя блокирующий вызов LoggerContext.stop(), в который даст возможность апендерам записать все ивенты в файл или базу с определенным таймаутом и дальше заверить работу приложения.
Спасибо большое за статью, хотелось бы детальнее посмотреть в следующей статье на сам процесс проверки сертификатов, разных типов(X509,...) и как эффективно делать валидацию сертификата от губки Боба :)
Как пример, хорошо еще реализовать алгоритмы поиска, возможно даже с UI на канвасе и для этого хорошо подойдут BFS, Dejkstra, A*.
Нужно еще несколько алгоритмов на стеки и очереди, обход, поиск зацикливанияб сортировки например Merge, Insertion, Selection. Еще полезно дать например обход графа.
А для особо крутых ребят сделать сереализацию POJO модельки в json через рефлекцию.
Возможно сделать так же парсинг страниц html через Jsoup например.
Спасибо за информацию, действительно большой труд в нее заложен, пока читал, параллельно перелистал тонну информации о раковых заболеваниях, признаки, большое количество химических элементов, формул и другого, так как сам учился в СНУЯЭиП имел хорошее понимание топика, но было интересно.
сидеть - это не с автоматом бегать, и кормить будут, и жилье есть, не так плохо.
Спасибо за материал, местами перевод не очень точный, например:
1. "пользовались объективом Google" - пользовались Google Lens.
2. рисованию текста на холсте - рисованию с помощью Сanvas API.
Просто заменили extension на интерфейс с реализацией, было бы идеально проектировать именно так изначально, так как тестирование этих extension функций еще та "радость".
Я считаю, что описание классов должно быть в другой последовательности, сначала описание сервиса, а потом описание фрагмента где есть работа с этим сервисом.
Ну и перевод Android-specific вещей очень путает:
1. "когда вы переходите от одного действия к другому." - переход между экранами.
2. " слушатель обратного вызова". - callback.
3. "фильтрация намерений с нашими действиями." - фильтрация broadcast сообщений.
Да и материал довольно таки устарел с приходом таких библиотек и решейний как kotlin caroutines, rxjava...
Код на Котлине приносит приятный синтаксический сахар: автоматический вывод типов, удобное делегировние, дата класы, функции расширения и другое. Но он так же легко читаемый как и java, если поработать с ним несколько месяцев.
if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) {
// доступ к камере запрещен, нужно объяснить зачем нам требуется разрешение
} else {
singlePermission.launch(Manifest.permission.CAMERA)
}
Возможно это идея для новой библиотеки.
Спасибо большое за статью, хотелось бы детальнее посмотреть в следующей статье на сам процесс проверки сертификатов, разных типов(X509,...) и как эффективно делать валидацию сертификата от губки Боба :)
Нужно еще несколько алгоритмов на стеки и очереди, обход, поиск зацикливанияб сортировки например Merge, Insertion, Selection. Еще полезно дать например обход графа.
А для особо крутых ребят сделать сереализацию POJO модельки в json через рефлекцию.
Возможно сделать так же парсинг страниц html через Jsoup например.