Проект:
1) .idea лучше в .gitignore добавить, эта папка не для хранения в гите
2) Попробуй перевести приложение на фрагменты вместо активити, т.к. Гугл рекомендует Single activity подход.
3) Если minSdk 22, то скорее всего можно избавиться от зависимости implementation 'androidx.legacy:legacy-support-v4:1.0.0'
4) Не нашел в манифесте разрешения INTERNET, скорее всего оно добавляется при мерже манифестов зависимостей, имхо, лучше явно указать в своем манифесте
5) для релизной сборки лучше включить minifiedEnabled = true
6) Попробуй настроить Gitlab CI, чтоб при пуше в master собиралась сборка и деплоилась в App Tester -- это тулза от Google для дистрибуции сборок тестировщикам
7) Также можно написать юнит-тесты или удалить папки с тестами, т.к счс это мертвый груз, который занимает место. Навряд ли будущие работодатели оценят это :)
8) Попробуй добавить статический анализатор кода типа ktlint, чтоб бил по рукам за неправильно отформатированный код, неиспользуемые импорты и т.п
XML:
1) для читаемости лучше использовать закрытые тэги, вместо <activity android:name=".login.verify.VerifyActivity"></activity>
2) В xml layout'ах местами используется цвет
@color/..., а иногда #000000, лучше привести к одному формату с
@color/...
3) Не хватает форматирования xml, например, тэг android:id всегда должен идти первым, тогда глаз "цепляется" за него и быстрее понимаешь за что отвечает это view
4)
@dimen/dp10 - бесмыслено, имхо. dp10 всегда будет равен 10dp, почему бы тогда так и не написать
5) @+id/linear_layout_send_code - я бы назвал container_send_code, т.к в будущем ты можешь заменить на FrameLayout или другой ViewGroup и придется менять id, а так только класс
6) @+id/text_view_home_make_order и другие я бы назвал так: homeMakerOrderTextView, потому что так легче понять предназначение view, а потом уже ее класс.
Code:
0) Переходи на Котлин :)
1) Чтоб избавиться от findViewById(R.id.toolbar) можно использовать View binding
2) Нужно отформатировать код, т.к. много лишних пробелов, пустых строк, etc. См. пункт 8 раздела Проект
3) В MainActivity в нескольких местах вызывается NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); - вынеси в глобальную переменную класса
4) Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
intent.putExtra(Intent.EXTRA_TEXT, "Salam");
у интента есть билдер - используй его:
Intent intent = new Intent(Intent.ACTION_SEND)
.setType("text/plain");
.putExtra(Intent.EXTRA_SUBJECT, "Application for make order");
.putExtra(Intent.EXTRA_TEXT, "Salam");
5) Убери код, который ни на что не влияет -- else {
return;
}
6) BaseFragment - пустой класс, зачем он нужен?)
7) Не оставляй очевидных комментариев, типа - // Inflate the layout for this fragment
8) В адаптере Вместо ArrayList<Order> используй интерфейс List<Order>
9) Не используй конкатенацию строк вот так currentOrder.getDate()+"", лучше .toString()
10) Пакет RecyclerView -- именуй пакеты с маленькой буквы, это общепринятый подход в Java/Kotlin
Успехов!