Ночи доброй ЛОР. Подпекло у меня тут от одной темы, нужно мнение тру ъ, которые в этом понимают.
Я всегда старался придерживаться принципа Model - View - Controller при разработке приложений под ведро. Для тех, кто не в теме: Это деление кода на 3 логические группы, где
Model - Данные, и все что с ними связано (Что отображать).
View - как отображать (в контексте Android это xml файл с разметкой)
Controller - это прослойка между 2мя этими вещами, по сути выдергивает данные из модели и обновляет UI. Простой пример кода для наглядности
private TextView mTv1, mTv2;
private MyModelData mModel = new Model;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTv1 = (TextView) findViewById(R.id.myTv1);
mTv2 = (TextView) findViewById(R.id.myTv2);
mTv1.setText(mModel.getData1);
mTv2.setText(mModel.getData2);
}
И все бы ничего, да подгорело у меня от «Best Practices» на офф сайте гугл девелоперов. Раньше я использовал OkHttp либу для работы с сетью в отдельном потоке, все было ок, но сейчас решил попробовать дефолтный AsyncTask из SDK, и ... бл*ять, они работают с сетью и моделью в ... контроллере? Какого черта, ЛОРовцы, это норма или говнокод? И у меня рождается вопрос: А есть ли вообще MVC в ведре? Дискасс.