Size: a a a

Android Developers

2020 May 24

М

Михаил in Android Developers
А стоит ли в таком случае создавать глобальную переменную value если, допустим, с этой переменной происходит приведённая ниже манипуляция? Или это будет лишним? Я имею в виду с точки зрения нагрузки на память устройства, процессор и т.д.

   
private fun myfun()
   {
       var value = 5
       value += 10
   }
источник

AA

Ali Agzamov in Android Developers
Александр
Что одно и то же? Скоуп переменной и сборщик мусора? Шта? Нет, не одно и то же.
ну дык что происходит с переменной когда она из под скоупа выходит ?
источник

А

Александр in Android Developers
Ali Agzamov
ну дык что происходит с переменной когда она из под скоупа выходит ?
Она не выходит из скоупа, она локальная.
Она живёт, пока выполняется метод. Потом стирается сама.
источник

А

Александр in Android Developers
GB тут вообще не причём.
источник

М

Михаил in Android Developers
Ali Agzamov
давай начнем с начала. что ты понимаешь под утечкой памяти?
Если просто, то это когда память занимается новыми данными, а старые не удаляются.
источник

AA

Ali Agzamov in Android Developers
Михаил
Если просто, то это когда память занимается новыми данными, а старые не удаляются.
нет
источник

М

Михаил in Android Developers
Александр
Она не выходит из скоупа, она локальная.
Она живёт, пока выполняется метод. Потом стирается сама.
Опа, вот понятно, спасибо
источник

А

Александр in Android Developers
Ali Agzamov
ну дык что происходит с переменной когда она из под скоупа выходит ?
Если нужно больше инфы, то нужно читать в сторону того как в JVM устроена память.
Конкретно - stack и heap. Где что хранится.
источник

AA

Ali Agzamov in Android Developers
Михаил
А стоит ли в таком случае создавать глобальную переменную value если, допустим, с этой переменной происходит приведённая ниже манипуляция? Или это будет лишним? Я имею в виду с точки зрения нагрузки на память устройства, процессор и т.д.

   
private fun myfun()
   {
       var value = 5
       value += 10
   }
ну и то что это не глобальная переменная ты наверн уже догадался сам
источник

AA

Ali Agzamov in Android Developers
Александр
Если нужно больше инфы, то нужно читать в сторону того как в JVM устроена память.
Конкретно - stack и heap. Где что хранится.
вот за эт пасибо )
источник

М

Михаил in Android Developers
Ali Agzamov
ну и то что это не глобальная переменная ты наверн уже догадался сам
Да, я в примере привёл прежний код, только добавил примитивную манипуляцию
источник

А

Александр in Android Developers
Ali Agzamov
вот за эт пасибо )
После ознакомления, мб будет интересна информация по такому поисковому запросу:

https://www.google.com/search?q=does+java+garbage+collector+clean+both+heap+and+stack+memory&oq=java+garbage+collector+stack+and+hea&aqs=chrome.1.69i57j0.9648j0j7&sourceid=chrome&ie=UTF-8
источник

AA

Ali Agzamov in Android Developers
👍
источник

S

Shuhrat in Android Developers
Друзья у меня вопрос.
Ранее писал на джаве по патерну мвп, у меня был репозиторий, интерактор и презентер, вся логика была в интерактре по минимуму в ппежентере. Сейчас перешёл на Котлин и мввм, и вопрос вот в чем, как я понял в мввм интерактор не нужен, нужен репозиторий и сразу вювмодел. Например у меня есть Preferencec он injecti тянется в репозиторий, а репозиторий во вюв модел. Бизнес логику теперь всю делать в репозитории? Или же во вюв модел?. И ещё вопрос если хочу слушателя поставит на Preferencec, то как это сделать?
источник

AO

Artem Osipov in Android Developers
Shuhrat
Друзья у меня вопрос.
Ранее писал на джаве по патерну мвп, у меня был репозиторий, интерактор и презентер, вся логика была в интерактре по минимуму в ппежентере. Сейчас перешёл на Котлин и мввм, и вопрос вот в чем, как я понял в мввм интерактор не нужен, нужен репозиторий и сразу вювмодел. Например у меня есть Preferencec он injecti тянется в репозиторий, а репозиторий во вюв модел. Бизнес логику теперь всю делать в репозитории? Или же во вюв модел?. И ещё вопрос если хочу слушателя поставит на Preferencec, то как это сделать?
Интерактор никуда не девается
источник

S

Shuhrat in Android Developers
Artem Osipov
Интерактор никуда не девается
Тоест интерактор по прежнему должен быть?
источник

AO

Artem Osipov in Android Developers
У тебя поменялась архитектура слоя представления, но остальное почему должно поменяться ?)
источник

S

Shuhrat in Android Developers
Artem Osipov
У тебя поменялась архитектура слоя представления, но остальное почему должно поменяться ?)
Потому что я запутался))))
источник

АБ

Андрей Барковский... in Android Developers
@Horun
При переходе с mvp на mvvm у тебя, по сути, презентер заменится viewmodel, которая также будет дергать интеракторы, а вот результат она будет не во вьшку спамить (как это делал презентер), а в свою livedata, а вот вьюшка тупо подпишется на livedata этой viewmodel и будет просто оттуда брать свежие данные для показа. Т.е. теперь вьюшке не диктуют, что показать, а наоборот, она сама знает на че подписаться и как и откуда брать данные.

Все остальное слои data (datasource, repository), domain (usecase/interactor, и прочее) остаются не тронутыми, ибо им пофиг на изменения в слое presentation.

MVP/MVVM/MVI и прочее: это слой presentation, т.е. как че показывать и откуда брать данные, у mvp это презентер, у mvvm - viewmodel (которая сама знает, как пережить тот же поворот экрана), у mvi - будет некий store... но это уже совсем другая история.
источник

АБ

Андрей Барковский... in Android Developers
Просто визуально нужно открыть clean architecture картинку, и пару картинок с mvp/mvvm, посмотреть как оба способа представления уживаются в клине (CA), станет яснее: https://uploads.toptal.io/blog/image/127608/toptal-blog-image-1543413671794-80993a19fea97477524763c908b50a7a.png

Первые два блока - это твоя view и presenter/viewmodel соответственно
источник