Я начинаю новый проект и буду работать в команде из 10 разработчиков. Я устанавливаю базовую структуру для нашего приложения для Android. Поскольку я работаю с командой и хочу, чтобы все придерживались одной и той же структуры, то есть создавали ViewModel
для каждого fragment
и использовали привязку данных. Как я могу сделать это строго, чтобы разработчики получили ошибку, если они не создают ViewModel
для своего фрагмента?
Итак, я создал ниже BaseFragment
:
abstract class BaseFragment<out VM : BaseViewModel, DB : ViewDataBinding> : Fragment() {
open lateinit var binding: DB
private fun init(inflater: LayoutInflater, container: ViewGroup?) {
binding = DataBindingUtil.inflate(inflater, getLayoutRes(), container, false)
}
@LayoutRes
abstract fun getLayoutRes(): Int
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View {
init(inflater, container)
super.onCreateView(inflater, container, savedInstanceState)
return binding.root
}
open fun refresh() {}
}
Как я могу улучшить это больше?