#vue#courses_management_system#education#frappe#javascript#learning#learning_management_system#lms#online_course_platform#online_learning#open_source#python
Frappe Learning is an easy-to-use, open-source Learning Management System that helps you create and organize courses with a clear structure of courses, chapters, and lessons. It supports live Zoom classes, quizzes, assignments, and certificates to track and reward learner progress. You can host it yourself or use managed hosting for easy setup and maintenance. Its drag-and-drop course builder and pre-built lessons simplify course creation, while features like notifications and discussion sections enhance interaction. This system helps you share knowledge effectively, monitor learner progress, and provide a smooth, engaging learning experience without complicated setups or high costs.
https://github.com/frappe/lms
🚀 Вышел стабильный 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