#html#cookbook#cooking#django#docker#food#markdown#meal_planner#recipe#recipes#selfhosted#shopping
Tandoor Recipes is a free, self-hosted app that helps you organize, plan, and share your digital recipe collection easily. You can import recipes from many websites, create meal plans, and generate shopping lists automatically. It works well on phones and tablets, supports tagging and searching recipes quickly, and lets you share and collaborate with family or friends. It also offers features like OCR to digitize paper recipes and syncs with cloud storage. Setting it up with Docker is simple, and it keeps your recipes safe and accessible in one place, making cooking and meal prep more efficient and enjoyable[1][2][3].
https://github.com/TandoorRecipes/recipes
🚀 Вышел стабильный JavaScript движок от Google для Android
Новая стабильная библиотека Jetpack JavaScript Engine позволит разработчикам выполнять JS код в изолированной и ограниченной среде.
class MainActivity : ComponentActivity() {
// Теперь nullable, без lateinit
private var jsSandbox: JavaScriptSandbox? = null
private var jsIsolate: JavaScriptIsolate? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!JavaScriptSandbox.isSupported()) {
Log.e("JS", "JavaScriptSandbox не поддерживается")
return
}
lifecycleScope.launch {
// Создаём и сохраняем в nullable-поле
jsSandbox = JavaScriptSandbox
.createConnectedInstanceAsync(applicationContext)
.await()
jsIsolate = jsSandbox?.createIsolate()
// При выполнении гарантируем, что jsIsolate != null
val result: String = jsIsolate
?.evaluateJavaScriptAsync(JS_SCRIPT_SCRING)
?.await()
?: "Ошибка: isolate не инициализирован"
Log.d("JS", "Результат выполнения: $result")
}
}
override fun onDestroy() {
super.onDestroy()
// Закрываем только если не null
jsIsolate?.close()
jsSandbox?.close()
}
}
#jetpack#js