Лекция 4 по архитектуре андроид приложения. Clean Architecture

Поделиться
HTML-код
  • Опубликовано: 25 сен 2024
  • Четвертая лекция курса по архитектуре клиент-серверных android-приложений, в которой мы поговорим о том, что такое Clean Architecture и как реализовать чистую архитектуру в андроид. Также познакомимся с библиотекой Google Agera, которая реализует парадигму реактивного функционального программирования на Android. Все ссылки и исходный код в текстовой версии: goo.gl/oXKoZ8
    Ссылки на исходный код ваших решений вы можете оставлять в комментариях под видео. Делитесь вашими решениями с сообществом, получайте обратную связь и конструктивную критику. Лучшие решения будут опубликованы на нашем канале и сайте fandroid.info с указанием авторства победителей!
    ------------------------------------------------------------------
    Весь плейлист курса по архитектуре: goo.gl/TMuuTB
    ------------------------------------------------------------------
    Источник: goo.gl/O2U9mu
    ------------------------------------------------------------------
    Продвинутые курсы по созданию реальных приложений и игр для android: www.fandroid.info/
    ------------------------------------------------------------------
    Больше уроков:
    Уроки по основам работы с Android Studio: goo.gl/02GtH5
    Как создать android приложение: goo.gl/oJgrOc
    Инструменты android разработчика: goo.gl/VoAnZx
    Дизайн android приложений: goo.gl/cfwMEV
    Уроки создания игр для android: goo.gl/NVS39q
    Основы программирования на JAVA: goo.gl/TZRHpG
    ------------------------------------------------------------------
    Хороший ресурс для обучения языку java: goo.gl/7Hc9Gz
    ------------------------------------------------------------------
    Группа взаимопомощи Вконтакте для начинающих ANDROID разработчиков и программистов: goo.gl/o4d9mk
    ------------------------------------------------------------------
    Скачать видеоуроки: goo.gl/2Wpvp4
    ------------------------------------------------------------------
    Поддержите наш проект: goo.gl/zcW4nq

Комментарии • 21

  • @СергейПанов-з3ц
    @СергейПанов-з3ц 7 лет назад +10

    Смотрю курс с самого начала. Просмотры и комментарии уменьшаются. Не останавливайтесь, хорошо получается. Качественный материал только с каждым видео он понятен всё меньшему числу людей.

    • @maxd6424
      @maxd6424 6 лет назад +7

      качественный?? смеетесь?? данный материал не годится для обучения. Начиная со второй половины ролика вываливаются кучи кода, довольно сложного для новичка, практически без пояснения. И что еще хуже, данные куски кода вырваны из общего контекста приложения. Новичок даже разобравшись в этом нагромождении классов, вряд ли сможет скомпоновать все это в голове в рабочую модель приложения.

  • @ЕгорТвердохлеб-й2р
    @ЕгорТвердохлеб-й2р 5 лет назад +1

    Спасибо за урок ))

  • @АлександрИванов-п9ы8ж

    RxJava это разве не деталь? Это же тоже фреймворк, почему он находится в domain слое? Тем более, что у RxJava есть альтернатива, как сказано в видео. А если вдруг руководство скажет - "хатим Agera!", получается что придется переписывать прилично так кода. Понятно, что RxJava это уже неотъемлемый атрибут программирования на андроид, но ведь один из принципов данной архитектуры, это независимость от деталей. Получается что, где хотим - следуем, где не хотим - не следуем принципам. Немного странно если честно.

    • @kivinus1575
      @kivinus1575 3 года назад

      RxJava неотъемлемая часть? LiveData и Flow нервно курят в сторонке

  • @jonhsmith8011
    @jonhsmith8011 7 лет назад +1

    Добрий день.
    вы говорите, что c фреймворком должен работать Presentation layer
    но, у вас data layer содержит обращение к сервисам через Retrofit and RxJava.
    то есть, он работает с Android framework, хотя он самый глубокий layer и по идеи ничего не должен знать.
    возможно я что то не понял.

    • @ТатьянаЗурьян
      @ТатьянаЗурьян 6 лет назад

      Самый глубокий и чистый от фреймворков слой это domain (слой бизнес логики), а слои presentation и data это внешние слои находящиеся на одном уровне. Для понимания удобнее представлять диаграмму архитектуры в виде вложенных окружностей, в центре ядро domain, cнаружи presentation и data. Вот хорошая статья на эту тему: habrahabr.ru/company/mobileup/blog/335382/

    • @alexverijnikov734
      @alexverijnikov734 5 лет назад

      @@ТатьянаЗурьян Так ваше утверждение все равно не полностью отвечает на этот вопрос. Сейчас RxJava уже считается интегрированной в среду разработки наряду со встроенными библиотеками, поэтому сообщество допускает ее использование во внутренних слоях без создания и реализации интерфейсов. Об этом как раз идет речь в статье, которую вы скинули. Меня смутило, что работа с БД идет напрямую, а не через интерфейсы, все-таки realm вполне заменяем на sqlite или другую БД

  • @daimonkor
    @daimonkor 7 лет назад +1

    Спасибо за видео, будьте добры, записать видео о MVVM, Databinding и связь их в RecyclerView, в частности клики на итемах списка, без паттерна Navigator и с Observable (ObservableField), которые необходимы для вызова в View

  • @piterskikh
    @piterskikh 7 лет назад +2

    "В случае с Model все еще проще - это всего лишь классы моделей, которые передаются от Presenter к View."
    Есть ли пример где при взаимодействии View - Presenter используется Model, а то с Presenter'a вы сразу в use cases обращаетесь и я не могу понять роль model

    • @maksym1266
      @maksym1266 6 лет назад

      Model отображает вид данных, которые потом будет показан View. Т.е. если из Domain тебе прилетает в UseCase-е число, то в Model оно будет строкой, которую TextView будет показывать.

  • @АлександрИванов-п9ы8ж

    Еще один вопрос: а нужен ли нам слой бизнес логики, если в данной архитектуре (да и вообще в клиент-серверной) все действия сводятся к запросам на сервер? Получается что usecase просто оборачивает репозиторий. Тем более, что репозиторий сам решает откуда ему брать данные.

    • @turskyi
      @turskyi 3 года назад

      клин архитектура используется ТОЛЬКО для перспективного масштабирования, если у вас простое приложение не претендующее на развитие с парой функций, то даже гугл рекомендует обойтись двумя слоями дата и юи

  • @MrZiko1975
    @MrZiko1975 7 лет назад

    Good job!

  • @OrlenokV
    @OrlenokV 7 лет назад

    Спасибо за полезное видео! Скажите а будете ли рассматривать библиотеку moxy для реализации mvp и работы с жизненным циклом?

  • @user-sankarsana
    @user-sankarsana 7 лет назад

    Наконец-то начали говорить о чём то серьёзном!!!

  • @MisterYIMHO
    @MisterYIMHO 7 лет назад +5

    Саплер???? Сопли у него что-ли? Supplier = Саплайер

    • @apoyark
      @apoyark 6 лет назад

      супплайер ток скорее

    • @MisterYIMHO
      @MisterYIMHO 6 лет назад +1

      Andrew Poyarkov в Старкрафте у терранов, в оригинальной озвучке, было - адишинал саплай дипоуз рэкваирд... )))))

  • @НиколайМедведев-т4е

    Хватит блять картинки показывать. Ниче не понятно... Пишите код, как раньше. А это шляпа полная... 1000 вопросов возникает только.
    В какой слой запихать мапперы например... У меня такое ощущение, что Вы сами не понимаете что нужно делать, а просто перевели статью. Где конкретика?