Защо и как да изградим архитектурата/структурата на едно приложение

Защо и как да изградим архитектурата/структурата на едно приложение

Всеки който е учил програмиране е чувал за така наречения „подреден код, който може да се чете и разбира от всеки„, но какво за архитектурата на проектите? Напоследък се сблъсках с проекти, които изобщо не спазват никакви правила, тенденции и шаблони за архитектура на проект. Повечето разработчици на софтуер подценяват тази тема и осъзнават, че са сгрешили чак когато проекта стане ужасен за разработка и поддръжка. При което следва едно рефакториране, което води до още едно рефакториране и така един кръговрат. Днес ще дам пример за два от най-добрите шаблони по които да структурирате и изградите проекта си в света на Android приложенията, като важи и не само за тях.

Два от основните шаблона за структуриране на проект са по логически модули или компоненти.

Логически модули Компоненти

 

1. Логически модули
При този вид архитектура вие трябва да разделите вашия проект на функционалности. Логически модул представлява определена функционалност на вашото приложение. В примера проекта е разделен на потребителска система, настройки и филми. Като във всеки такъв модул вие трябва да разделите проекта ви на компоненти. Примерно всички activity-та свързани с потребителската система трябва да бъдат в папка login->activities.

2. Компоненти
Втория вид архитектура е на практика обратното на предходния. Тук архитектурата на приложението трябва да е разделена на компоненти. Например activities->login.

3. Основни пакети/папки
В крайна сметка в проекта ви трябва да съществуват следните папки: activities, adapters, managers, utilities/utils, models, services, widgets, listeners/interfaces, receivers, fragments, constants, като не е изключено да имате и други, но това са основните.

4. Лоши практики
4.1. Всички класове в 1 пакет. Без никаква архитектура и шаблон. Няма разпределение по компоненти или логически модули.
4.2. Архитектурата е изцяло каша, без точно ясна представа кое и защо е сложено там където се намира.
4.3. Имената на файловете и пакетите да не отговарят на съдържанието.
4.4. Прекаленото разделяне на компоненти и логически модули също е грешно.
4.5. Добра практика! Имената на файловете в пакетите трябва да завършват с вида на компонента, а тези на ресурсите да започват с вида на компонента, като се спазват следните тенденции:

Не мога да ви препоръчам точно кой да ползвате, всичко е по ваша преценка и според проекта. Двата са еднакво удобни и добри, но все пак, ако имате по-големи проекти използвайте шаблона с логическите модули.

Share Button
Wear Battery Agent

Wear Battery Agent

Wear Battery Agent е Android Wear приложение за смарт часовници, което Ви информира за всички важни събития свързани със статуса на батерията на телефона Ви, дирекнто на вашия часовник в реално време.

Кракто описание на възможностите на приложението:
– Информира Ви за текущото състояние на батерията на телефона
– Информира Ви, когато нивото на батерията на телефона Ви е критично
– Информира Ви, когато батерията на телефона Ви вече е заредена
– Информира Ви и за други важни и критични събития
– Възможност за спиране на вибрациите към нотификациите
– Възможност за спиране на нотификациите

Поддържат се следните устройства(до текущата дата):
– Moto 360, Moto 360 Sport
– LG G Watch, LG G Watch R, LG Watch Urbane
– Huawei Watch
– Asus ZenWatch, Asus ZenWatch 2
– Sony SmartWatch 3
– Samsung Gear Live

wear-notification1_framed 3b875360-b121-4000-b093-b36fb20b27a0 wear-app-chargingd_framed wear-app-charging_framed
Share Button
Call Extender

Call Extender

Call Extender е Android приложение, което добавя полезни и готини функции към вашият смартфон.

Кракто описание на възможностите на приложението:
– Когато някой ви звъни светкавицата започва да премига
– Вибрира, когато вие или човекът отсреща затвори
– Вибрира, когато вие или човекът отсреща вдигне
– Вибрира на всеки 45 секунди от всяка минута
– Затваря автоматично на всички входящи повиквания
– Затваря автоматично на повиквания от номера в списъка с блокирани
– Затваря автоматично на всички повиквания освен тези в списака с позволени
– Показва нотификации с информация за всяко автоматично приключено повиквание

1 2 3 4

Можете да го свалите от тук.

Share Button
Child Parental Control

Child Parental Control

Child Parental Control е Android приложение, чрез което можете да следите и контролирате действията на децата ви на телефоните им в реално време от разстояние, както и да следите тяхното местоположение.

Кракто описание на възможностите на приложението:
– Взима списъка с приложенията и игрите от телефона на детето(без системните)
– Взима историята на използваните приложения и игри
– Взима текущото местоположение на детето
– Определяне кога дадено приложение или игра може да бъде ползвано или не
– Забрана на приложението да бъде деинсталирано
– Взима информация за батерията: текущ капацитет, кога последно е бил пуснат и спрян да се зарежда
– Взима информация за телефона: кога последно е бил включен и спрян
– Няма лимит за контролирани детски телефони
– Всичко това може да бъде извършвано от самия детски телефон или от разстоние в реално време

3 4 1 2

Можете да го свалите от тук.

Share Button