Прежде всего, Android не заставляет вас использовать какую-либо архитектуру.Мало того, но это также делает несколько трудным пытаться следовать любому.Это потребует от вас умного разработчика, чтобы избежать создания базы кода для спагетти:)
Вы можете попытаться вписаться в любой шаблон, который вам нравится и вам нравится.Я считаю, что лучший подход каким-то образом проникнет в вашу душу, когда вы будете разрабатывать все больше и больше приложений (извините, но, как всегда, вам придется совершать много ошибок, пока вы не начнете делать это правильно).
Что касается шаблонов, которые вы знаете, позвольте мне сделать что-то не так: я смешаю три различных шаблона, чтобы вы почувствовали, что делает то, что в Android.Я считаю, что Presenter / ModelView должен быть где-то во фрагменте или в действии.Адаптеры могут иногда выполнять эту работу, поскольку они заботятся о входах в списки.Вероятно, деятельность должна работать как контроллеры тоже.Модели должны быть обычными java-файлами, тогда как представление должно включать ресурсы макета и некоторые пользовательские компоненты, которые вам, возможно, придется реализовать.
Я могу дать вам несколько советов. Это вики-ответ сообщества , поэтому, надеюсь, другие люди могут предложить другие предложения.
Организация файлов
Я думаю, что в основном есть две разумные возможности:
- организовать все по типу - создать папку для всех действий, другую папку для всех адаптеров, другую папку для всех фрагментов и т. Д.
- организовать все по домен (может быть, не лучшее слово).Это будет означать, что все, что связано с «ViewPost», будет находиться внутри одной и той же папки - действие, фрагмент, адаптеры и т. Д. Все, что связано с «ViewPost», будет находиться в другой папке.То же самое для "EditPost" и т. Д. Я предполагаю, что действия будут требовать создания папок, которые вы создадите, и тогда будет несколько более общих папок для базовых классов, например.
Лично я был толькоучаствует в проектах, использующих первый подход, но я действительно хотел бы попробовать позже, так как считаю, что это может сделать вещи более организованными.Я не вижу никакого преимущества в том, чтобы иметь папку с 30 несвязанными файлами, но это то, что я получаю при первом подходе.
Именование
- При создании макетов и стилей всегда называйте (или идентифицируйте их)) с использованием префикса для действия (/ фрагмента), в котором они используются.
Таким образом, все строки, стили, идентификаторы, используемые в контексте «ViewPost», должны начинаться с «@ id / view_post_heading»(для текстового обзора, например), "@ style / view_post_heading_style", "@ string / view_post_greeting".
Это оптимизирует автозаполнение, организацию, избежание коллизии имен и т. д.
Базовые классы
Я думаю, вы захотите использовать базовые классы практически для всего, что вы делаете: адаптеры, действия, фрагменты, службы и т. Д. Они могут быть полезны, по крайней мере, для целей отладки, чтобы вы знали, какие события происходят во всехваша деятельность.
Общие вопросы
- Я никогда не использую анонимные занятия - они ужасны и отвлекут ваше внимание, когда вы пытаетесьd код
- Иногда я предпочитаю использовать внутренние классы (по сравнению с созданием выделенного класса) - если класс не будет использоваться где-либо еще (и он небольшой), я думаю, что это очень удобно.
- Подумайте о своей системе ведения журнала с самого начала - вы можете использовать систему ведения журнала android, но эффективно ее использовать!