- Описание
- Стек технологий
- Функциональные возможности
- Функционал
- Дополнительные возможности
- Развитие сообщества
- Программа менторства
- Интеграция с индустрией
- Перспективы
- UI/UX
- Bloc/Cubit
- SupaBase
- Патерны
- Архетектура
- Визуализация
- Заключение
Skillwave разработан с использованием следующих технологий:
- Dart/Flutter для мобильной разработки
- Bloc для управления состоянием
- Supabase для базы данных
- Node.js для backend
- UI/UX
- Возможны ограничения доступа к некоторым курсам без подписки
- Требуется подключение к интернету для загрузки курсов и обновлений
Паттерн проектирования — это часто встречающееся решение определённой проблемы при проектировании архитектуры программ.
В отличие от готовых функций или библиотек, паттерн нельзя просто взять и скопировать в программу. Паттерн представляет собой не какой-то конкретный код, а общую концепцию решения той или иной проблемы, которую нужно будет ещё подстроить под нужды вашей программы.
Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Наблюдатель — это поведенческий паттерн проектирования, который создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах.
Одиночка — это порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Стратегия — это поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы.
Фасад — это структурный паттерн проектирования, который предоставляет простой интерфейс к сложной системе классов, библиотеке или фреймворку.
Clean Architecture - это методология разработки программного обеспечения, которая ставит целью создание приложений с высокой степенью модульности, гибкости и чистоты кода. В ее основе лежит принцип разделения программы на слои с четкими границами и зависимостями, чтобы уменьшить связанность компонентов и облегчить их замену и модификацию. Главная идея - разделить код на уровни, начиная от внешних интерфейсов и заканчивая внутренней бизнес-логикой, с соблюдением принципов единственной ответственности и инверсии зависимостей. Это помогает создавать более поддерживаемые, тестируемые и масштабируемые приложения.
Чистая архитектура - это концепция построения архитектуры систем, предложенная Робертом Мартином (также известного как "дядюшка Боб"). Концепция предполагает построение приложения в виде набора независимых слоёв, что облегчает тестирование, уменьшает связность и делает приложение более простым для понимания.
Приложение состояло из четырёх слоев:
- data - слой работы с данными. На этом уровне, например, описываем работу с внешним API.
- domain - слой бизнес-логики.
- internal - слой приложения. На этом уровне происходит внедрение зависимостей.
- presentation - слой представления. На этом уровне описываем UI приложения.
graph TD
lib --> bloc
lib --> course
lib --> screens
lib --> services
lib --> utils
lib --> json
lib --> router
bloc --> onboarding_events.dart
bloc --> onboarding_states.dart
bloc --> onboarding_bloc.dart
course --> local_storage
course --> model
course --> udemy_api.dart
screens --> course_detail_screen.dart
screens --> dashboard_screen.dart
services --> udemy_api_service.dart
utils --> error_handler.dart
utils --> widgets
json --> course.json
router --> router.dart
router --> screens
screens --> auntification
screens --> block
screens --> login
screens --> interface
screens --> model
screens --> view
screens --> viewmodel
screens --> sign
screens --> onbourding
screens --> profile
screens --> update_profile
screens --> theme
auntification --> login_state_block.dart
login --> registration_strategy.dart
login --> model
login --> view
login --> viewmodel
sign --> sign.dart
onbourding --> onboarding_screen.dart
onbourding --> onboarding_screen_1.dart
profile --> const
profile --> profile.dart
profile --> profile_menu.dart
update_profile --> update_profile.dart
theme --> theme_switch.dart
main.dart