Это копия, сохраненная 16 августа 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Пофиксил нумерацию
> Хочу вкатиться в разработку под Android! С чего начать?
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно установить Android Studio, открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Мануалы?
- Официальная документация: http://developer.android.com/
- Полезный гайд для начинающих и продвинутых: http://guides.thecodepath.com/android
- Бесплатный видеокурс от Google для новичков: https://www.udacity.com/course/android-development-for-beginners--ud837
- Два ресурса, единственный плюс которых — русский язык: http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?": http://stackoverflow.com/
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17 мая поддерживается официально.
> Есть что-то кроме нативных приложений на Java/Kotlin?
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры!
LibGDX или Unity. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. И хотя бы одно готовое приложение.
Предыдущий тред: https://2ch.hk/pr/res/1161404.html (М)
Освящаю своим преосвященством.
Когда-нибудь я запилю нормальный тред, а не эти обоссаные обмотки. Но это случиться не скоро.
Кек. Ты мой вопрос повторяешь 3 треда назад.
Создаешь интерфейс. Делаешь так в адаптере:
private OnItemClickListener onItemClickListener;
ну и потом 2 пик.
Чет какая-то неинтересная google io проходит. Кроме design 2 и возможности сделать ака эппл ничего не увидел.
ну и adapter.setBlablabla
Нет, глайд сам все замутит. Ну точнее постарется, у него есть настройки кеша в оперативке / на диске.
Спасибо.
Сап, где можно почитать, что изменилось в ведре после 21-23 API?
Чтобы пукнуть?
Кто-нибудь за развитием Flutter следит? Интересные мнения, насколько он перспективен для гибридной разработке на фрилансе в обозримом будущем, с учетом того, что сейчас о его существовании мало кто знает и на западных биржах для новых приложений в основном топят за React Native?
Очередной
>пук
от компании гугла.
Туториалы только-только начинают появляться. Да и нахуй вообще нужен дарт, даже тот же жс смотрится куда лучше.
public void onDateSet(DatePicker datePicker1){
do А
}
public void onDateSet(DatePicker datePicker2){
do Б
} ?
Там же передается айдишник, разве нет? По нему и определяешь.
Реквистирую у опытных анонов идею для приложения, которое сможет сделать один человек с минимальным опытом за такой срок. Пишу на Kotlin.
Сказали, что можно любые новые\хайповые технологии использовать хоть со вчерашней конференции Гугл. За ИИ и машинлёнинг не шарю совсем.
Хотел бы охватить максимально основы Android разработки + закончить проект, чтобы получить офер на стажера\джуна.
Готов ебашить как ЧОРД 24\7
Сделай приложение для любого сайта. Разберешься и с разметкой, и с бд, и с парсингом кривых данных.
Я посмотрел - в среднем от $2к просят в разных приличных местах за "простое" приложение (вот это как раз по идее простое), и сделаю сегодня за 500 рублей в неприличных.
Где же истина? А именно мне инетерсно за сколько вам было бы не впадлу что-то такое сделать.
Не понятны твои знания по андройду. Если ты черт нихуя не знающий - ебашь юдасити. За месяц 24 на 7 пройдешь 7 курсов у них.
А дальше такие тупые вопросы можешь только самому себе задавать.
Ну мы гетеросексуальным-не_БДСМ.
Айосью.
А если бы был не студент, ну вот чисто в теории если предположить например допустим? Как примерно ты вообще оцениваешь?
>у вот чисто в теории если предположить наприме
Это же простое апп для установки обоев на телефон?
Ну как человек захочет, можно и 40к за это все взять, ибо нужно еще регаться и ковыряться по части обоев на "рабочем столе" телефона.
За 500 рублей можешь дать подтереться тому человеку кто тебе это сказал, и крикнуть: Проснись, СЫЧ, ты обосрался.
Хочу стать человеком оркестром. Ведройд - веб - бэк.
Да, правда.
потому что на мобильном стулу в n-раз больше хуев, к тому же есть пико-хуи, пико-хуи, хуи-хуй, пика-пики. Так что присаживайтесь
если сможете усидеть
>Судя по зп мобильные разрабы получают в 2 раза больше веб - петухов. Это правда?
Может и так. Вообще, андройд такое себе увлечение. Мне даже стыдно его сейчас бросать, ибо без этого товарища я просто никто. Но и с ним я говноед тот еще.
знакомое чувство, на своем опыте скажу, что происходило такое уже неоднакратно за последние 12 лет. Стэк выходит из тренда или сменяется другим стэком или схлопывается сложность и рынок переполняется макаками. Да уж и не помню, чтобы решал задачи одинаково, постоянно новые подходы, постоянно разбираешься, завидую порой каким-нибудь дизайнерам - опыт складывается, зп растет. А тут ниндзя_скилл точечных коммитов в чужой код, чтобы привратить его в свой, требует особой мудрости и дзена, который требует еще того душевного спокойствия.
лично я представляю себя чернокнижником, а код - заклятьями. Чем больше у меня заклятий - тем более сильным магом я являюсь. Но один хрен, иду на базар и пытаюсь продать свою магию. Так что остается наслаждатся самим процессом заклинания хотя для меня это большой кайф
Пиздец в россии компьюнити ебанутое.
обо многом говорит, в популярнейший канал по обучению ведет какой-то унтер виталик, который далек от самих технологий так же, как от английского языка.
Пригорел с его канала, который кажется слеплен из статей и вольных переводов обрывков нагугленного материала. Чем сложнее технология - тем она бессистемней доносится. Если понятия Intent, service, lifecycle лекги и доступны к понмианию, то начиная с более менее сложно-структурированных технологий подается просто разбитая мозаика.
Завершения идилии - это, конечно, английский. Такой добротный деревенско-народный. Даже удивительно, где автор обучился этому раритетному диалекту.
Пытался тут вникнуть в его курсы, но посмотрев это говно, быстро понял, с чем имею дело. И нашел отличное объяснение нужного материала от лякающего пакистанца. Что наталкнуло на мысль об андроиде - какое же это маргинальное чудо.
>унтер виталик,
Ахах, двачую.
Я сначала серьезно относился к этому пидарасу, даже думал вкинуть 600 рублей ему на чай на один курсик. Как же хорошо, что я этого не сделал.
В итоге юдасити меня только и спасли, а сейчас хуй кто меня спасает.
rx - это чтото на базе Obser. паттерна? Как его применить? Нужно ли с ним испльзовать создания сервиса в бэкграунде?
Во-первых, сервис по умолчанию запускается в УИ-потоки.
Во-вторых, можно внутри сервиса запрашивать с периодичностью то, что тебе нужно. Хочешь хуи каждые 5 минут сосать, так он тебе в этом поможет.
хорошо. впосро: именно RxJava позволяет запускать сервис, который будет работать, даже когда прилажение не в фокусе. И в этом сервисе будут происходить запросы с rest сервера?
если да, все это делается связкой okhttp, retrofit2, rxjava2?
Нет.
Если тебе хочется что-то делать вне фокуса - использую андроидовский сервис. В нем можешь чем хочешь, хоть рх, хоть голый okhttp, периодически хуярить запросы.
Это ты ещё Java EE не видел.
> джуна
Но реальные джуны только в больших компаниях. В малых будешь делать все тоже самое, что и остальные, только платить будут меньше, не?
Как у меня бомбит с таких видео.
@
>-Что такое контекст?
@
>-Ну, это контекст, андройдовская тема, ну понятно в общем
@
>-Ну, для создания SquareImageView я ручками набирать не буду, а просто скопирую с заранее созданного приложения, а то хули мне, туториалисту
Больше не глядел. Такая параша, хоть и завидно, ибо чел на даунах бабло рубит.
Ебать, да почему я еще не отправил заявку преподавать для шаражников? Можно такую хуйню на уши вешать и деньги еще собирать.
Хочу ради фана вкатиться за выходные, если зайдет, то покачусь уже за серьезные мануалы.
После налогов 3к евро в месяц после налог даже тут в Германии мало кто получает. Проверяй, что тебя не хотят кинуть.
Какая компания? я получал 2900 когда жил в Эстонии, но это было 4 года назад, тогда считалось относительно много. сейчас мне бы это ни на что не хватило:(
> Или один хуй сначала смотреть на жабу?
Cмотри сначала на жабу, ибо котлин от нее идет.
>Хочу ради фана вкатиться за выходные, если зайдет, то покачусь уже за серьезные мануалы.
Андройд - это тебе не фан, и не игрушечки аля погонять жсончик туда сюда. Это ебанная нервотрепка и проектирования говна, за которое еще бить будут по ебалу.
Когда я только начинал знакомится с ведройдом мне один челик писал про это все. Я его не слушал, ибо считал его конченным поехавшим мудаком. Сейчас уже понятно, почему он тогда отговаривал меня от этой ебанины. Даже эппл выглядит лучше.
Я не пугаю тебя, просто это не пхп, и не верстка, чувак. Можешь курс юдасити пройти вводный, книжки устаревают спустя полгода, а другие видяшки говно от недоиндусов.
Спасибо за ответ. А если я попробую сделать тупо с анимацией увеличения картинки, а остальную хуйню приделаю через .add(), получится? Или даже не копать в эту сторону?
Сделал 1000 за год на рекламе. Если бы работал все время которое убил на проект на дядю, сделал бы в 10 раз больше
Могло быть хуже.
>хули мне, туториалисту
проблема туториалистов, что они не последовательно доносят матчасть даже без базы. Не зная концепта паттернов - хуй проссышь че за Наблюдатель или Одиночка или Фабрика. А чтобы знать их, нужно врубаться в концепцию ООП. А чтобы в нее врубаться, нужно иметь представление о задачах, которые ей решаются. Тем более эти задачи надо порешать. Опять же опыт Хеллоуворлдов и велосипедов.
Без одупления паттернов, невозможно ими пользоваться самому - так и будешь туторы перебирать ищя нужный рецепт.
А без понимания аякса, структура проекта тоже не быстро станет привычной.
Кароче учиться нужно было начинать с хтмл.
как вызывать этот observable repeatWhen'ом?
что-то вроде этого, но как именно?
retrofitService.getSomeShit()
.repeatWhen(observable -> observable
.delay(DELAY, TimeUnit.SECONDS, true))
.subscribe();
Зачем читать книги, если боги уже дали видеокурсы от юдасити?
Пробовал заниматься по head first, но как дело дошло до фрагментов вообще полная хуйня пошла, она кстати свежая, 17-года, август.
Есть еще Murphy или как его там. 4000к страниц. Пихает все что есть и видел. Мне лично впадлу даже указателем пользоваться и пролистывать, а потом еще и прочитывать.
Так что, видеокурс чекай, урод.
Может я неправильно перевел:
>Regarding salary, we can offer you something from 3000 to 4300 EUR monthly net (after taxes, Estonian payroll) and this is negotiable.
Очередное такси - taxify
Просто без задней мысли прямо сейчас берешь и садишься. Серьезно. Не сядешь сейчас - не сядешь никогда. Бросай все, ливай из катки в доте, вытаскивай на середине акта, включай комп и запускай студию.
>ысли прямо сейчас берешь и садишься. Серьезно. Не сядешь сейчас - не сядешь никогда. Бросай все, ливай из катки в доте, вытаскивай на середине акта, включай комп и запускай студию.
Я так-то уже больше полгода сижу за андройдом.
Подумай, зочэм
Вкатываюсь с 0
Если ты действительно вкатываешься с нуля, могу помогать отвечать на вопросы. Можешь телегу оставить А так, head first, сам по ней начинал. И видеокурсы могу сказать в телеге о них
Телега bulletforkama
>стандартный набор DI2, немного RxJava, mvp, databinding ну и на котлине щас пишу
А, ну я чуток тоже. Только нужно научиться юзать mvp + realm с moxy каким-нибудь.
Я сейчас самообучаюсь.
Можно как-то реализовать вспышку при экраном при фотографировании фронтальной камерой? Может есть готовы решения, не хочется велосипедить всякую фигню
Если есть исходники. Хотя если их нет, то вроде реально конвертнуть dex в jar, подключить к новому проекту, и дописать туда JobScheduler. Но ты не осилишь.
Если добавить кнопку оверлеем через метод addView() WindowManager'а в коде activity - кнопка пропадает с экрана, если свернуть activity.
Но если этот же код использовать в Service - кнопка пропадать не будет.
Как это на уровне WindowManager'а различие выглядит?
Я вот смотрю
https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/WindowManagerImpl.java
И не могу понять, почему такое различие. В системе ведь существует только один экземпляр этого класса, который получается через
(WindowManager) getSystemService(WINDOW_SERVICE)
Почему такое разное поведение при вызове из разных мест?
3 недели. Джава с нуля. Фреймворки - rx, retrofit с нуля. Сервисы с нуля, андроид студия с нуля, вся хуйня с нуля, сервисы с нуля, нотификейшены с нуля. И вот, наконец-то готова. Прилажуха юзает полный рест апи. Чувствую себя великолепно. думал охуею
сорвесы тоже с нуля штоли?
Axax, насмешил бля)
Даже отсюда чую твой вымученный высер. Смотреть, наверное, на него так же уныло и тяжко, как тебе было его высирать.
знаешь, чем отличается няшная тян от никакой?
Подправлю что-нибудь и за свое выдам.
Перезапускается активити а не приложение
Тупые индусы не смогли придумать нормально и сделали как могли.
А еще возможно это связано с рендерингом UI в ведре.
А что, собственно, не так? Горизонтальная и портретные ориентации могут ну очень сильно отличаются по функционалу.
Точнее будет сказать, что перезапускается View, а Activity является контроллером, который отслеживает события и дергает твою модель.
А какие-то данные и важные штуки можно и нужно делать во фрагменте, который не перезапускается при смене ориентаций.
Вот где настоящий индусский пиздец - так это в архитектуре. Нахуярили переплетенного говна с такой связанностью, что если следовать оф гайдам - будет гроб-гроб-кладбище-пидор, 0 тестируемости, все преимущества ООП вертели на хую. Гугл прям учит новичка кодить как пидорас, приучаться к дерьмовым привычкам. Впрочем, что с них взять - у них в какой класс не ткни, везде можно найти методы по 100 строк.
А еще при повороте экране не перезапускаются, например, экземпляр Application (считай что фон для всего приложения) и службы. Так что про все приложение неправильно тут говорить.
Ну на гугл сильно гнать не надо, они потом это дело купили, но все равно они должны были признать проблему раньше, а не городить костыли.
>В чём вообще логика такого дизайна?
Когда андройд только создавался, телефоны были не мощные и поэтому разрабы жизненного цикла активити сделали пересоздание последнего с целью экономии ресурсов самой андройд системы.
Сейчас мобилки стали лучше и в нынешнем времени это нахуй никому не нужно, но гугол активно пытается настаивать о том, что лучше, а что нет. Сейчас они насильственно продвигают свой " liveData" и другие ширпотрепские штучки, надееясь привлечь компьюнити.
но мы то знаем, что только square делает годные вещи, а гугол сосет хуй с фрагментами.
только конченый рак может подумать, что может ебануть форк и в два коммита забилдить проприетарник для интерпрайза.
Блять, стэк, об который ты окончательно сломаешь свой мозг и самооценку прохавывается не сверху, а снизу. Ты должен быть готов ассемблить, отлаживать, да и тестить решения с полным пониманием процессов. За это и платят, еблан
Первый ифон не шмог в многозадачность, а ведра уже умели через рестор стейт.
И какую службу ты тогда запустить хочешь?
Эх.
Че за обезьяна на пикче? Гуглопедераст какойто
Moshi, Butterknife, Retrofit, Sqldelight, положил начало даггеру. Всякие ui штуки типа Mortar/Flow. Думаю продолжать мне не надо, ты все сам понял.
Да, вроде понял.
Air не бери ни в коем случае, если мак то прошку.
Никак, можешь сделать какой-нибудь класс который запускает сервис, а ты типа не в курсе, но это нахуй не нужно.
Читаю вот этот цикл статей о Dagger2. Казалось бы, все отлично, наконец-то можно уменьшать сильные и горизонтальные зависимости. И тут я вижу, что на уровне модулей ехала горизонтальная зависимость через горизонтальную зависимость. Столько кода и пердолева, чтобы получить те же яйца в другой профиль. Депра уже накатывает.
>ут я вижу, что на уровне модулей ехала горизонтальная зависимость через горизонтальную зависимость. Столько кода и пердолева, чтобы получить те же яйца в другой профиль. Депра уже накатывает.
Читал тоже статьи эти чтобы вникнуться в даггер. В итоге как кроме чуточку понимания не продвинулся.
Ошибка №1: ты читаешь статью на русском, а не в оригинале.
Ошибка №2: ты читаешь статью какого-то ебаната, который далает зависимости из таких вещей как File(подобные генерик типы никогда не должны быть на графе) и GsonConverterFactory(нужно только ретрофиту, спрашивается нахуя делать из этого зависимость?).
В целом пример использования даггера не очень удачный. У нас на проекте создание 90% зависимостей происходят через constructor injection. Модулей должно быть самый минимум.
>В целом пример использования даггера не очень удачный. У нас на проекте создание 90% зависимостей происходят через constructor injection. Модулей должно быть самый минимум.
Ну и где эти туториалы правильные блять искать? даггер как темный лес просто.
Только писать и шишки набивать? Если присмотреться, большая часть статей касательно попыток сделать человеческое ООП в ведре - относительно свежие. В начале 2017 я по тем же самым запросам в гугле получал чуть больше, чем нихуя. Сейчас даже есть что почитать (и понять, как вредно и бессмысленно быть адептом-фанатиком).
Даггер - просто инструмент, в принципе. Для попыток реализовать какие-то идеалы. Если не понятен даггер, то можно поковырять тот же SOLID, например. По нему куча статей. Потом уже будет понятно, как применить даггер с какой-то выгодой.
Давайте обсудим новые архитектурные компоненты?
Вот например WorkManager, как вам? Сейчас прикручиваю возможность загрузки файлов с его помощью, и вдруг осознал две его проблемы:
1. Нельзя узнать промежуточный результат (прогресс загрузки)
2. Нельзя принять парселейбл в инпутДейта (которая еще и 10 кб ограничена). У меня вот вместе с загрузкой файла идет его некоторая метадата и приходится ее разбирать на примитивы и пёхать в инпутДейта
И еще, есть ли смысл перекатываться с рхДжавы на лайвДейту?
Насколько я понимаю, основное преимущество liveData это привязаность к жизненому циклу, а помимио этого она во всем проигрывает rx
Читаю
http://startandroid.ru/ru/blog/493-mvp-dlja-nachinajuschih-bez-bibliotek-i-interfejsov.html
Споткнулся на
>Обратите внимание на методы презентера: attachView и detachView. Первый дает презентеру представление для работы, а второй говорит, что представление надо отпустить. Эти методы вызывает само представление. Первый метод - после своего создания, а второй - перед своим уничтожением. Иначе, если презентер будет держать ссылку на представление после его официального уничтожения, то может возникнуть утечка памяти.
Каков механизм утечки, если при уничтожении Activity уничтожится и ссылка на presenter, который хранит ссылку на эту активити? Этот презентер разве не должен тоже подчиститься сборщиком мусора, если на него нет ссылок?
Или в этом и проблема, что они не могут быть помечены GC как ненужные, ибо взаимно ссылаются друг на друга?
Ты прав. аттачить и детачить view нужно по другой причине. Детачить чтоб переставать посылать во View данные из презентера после onPause, например
Moxy c RxJava панацея жи.
У них разные цели. LiveData нужна для привязки к жизненному циклу, но не имеет кучи операторов Rx и нормального управления потоками.
Дык я могу и сам к циклу привязаться, нах мне это дата :D
Пиздец ты искатель бля, первая нахуй ссылка на официальный путь.
алсо, что за мода в джаве - делать вложенные классы?
Вопрос: как делается плавный переход изображения в Title Bar при скролле вниз? Такой UI-мув когда-то был в приложении VK.
Или хотя бы как это гуглить?
Collapsing Toolbar
Используй камеру1, она работает.
получаю с рекламы, и адмоб намекнул, что забанит если ничего не сделаю.
Хотя судя по другим приложениям, никто не рыпается
Выбери задачу автоматизации под себя. Делая очередной тудулист, ты блеванешь на пол пути как я.
А я ебу чего тебе в жизни не хватает? Я парсер одного сайта написал.
dvach
remote cam в холодильнике, чтобы когда прихожу в магаз, можно было посмотреть что из жрачки купить надо
Да это ты праивльно. Вон даже Appsee добавили такую хуйню - удаление данных юзверя и клянчилку на разрешение, может и другие сделают.
Любую хрень, которая из инета берет инфу, сохраняет в базу и показывает пользователю
А как работают всякие приложения, которые дают root права для андроида, эксплуатируют уязвимости?
Собственно, вопросы: как починить эту хуйню? На каком моменте лайфсайкла фрагмента присоединятся инклюднутый леяут?
Хорошо. Я вчитался и понял. Есть Активити - она чекает Component чтобы тот дал ей требуемую зависимость, а последний в свою очередь чекает Modele где эта зависимость реализуется. Модел передает это в презентер, а презентер в компонент, а тот в активити.
Ну в принципе понятно. Осталось это связать с Moxy and MVP
вот сколько не читал, так и не понял как custom scopes работают. там вручную нужно обнулять ссылки чтоли ?
Шапку читай, уважаемый. Здесь таким говном не занимаются. Прошу проследовать в другой тред и там клянчиться.
Я спросил, по какому принципу работают такие программы. Я понимаю, что ты не знаешь этого, не стесняйся и не бомби, знания получают в процессе жизни, а не рождаются с ними, к тому же всего знать невозможно.
Но мне интересно, что же я у тебя клянчу, я же не прошу подсказать мне такую программу, или выполнить какую-то работу для меня, и в каком же месте в шапке освещается ответ на мой вопрос, и какой тред соответствует моему вопросу, посвященному тонкостям работы системы андроид, лучше, чем этот, тред посвященный системе андроид? Сдается мне, вы читаете жопой, уважаемый, полагаю, и думаете ей же.
ну кароч они дают root права использую уязвимости системы android
Я вообще хз что этого. Нахожусь на базовом уровне даггера.
Можешь разбираться в этой поеботе сам, кек. В андройд приложении есть один манифест, точно так же, как у человека есть одно сердце.
А вот эти никому не нужные фреймворки на слабом комьюнити никому не нужны. Можешь смело перекатываться на юнити или godot, я на последнем сижу и все нормально.
- доктор, помогите, у меня нога болит.
- можешь разбираться со своей никому не нужной ногой сам, я вот протезом пользуюсь и мне норм.
Есть в Android Studio среди стандартных Activity, там прям на картинке видно.
Кастомные скопы работают также как и @Singleton, все дело в том когда создается(или пересоздается) компонент.
>- доктор, помогите, у меня нога болит.
>- можешь разбираться со своей никому не нужной ногой сам, потому что здесь тебе не больница, а ГЕЙ КЛУБ.
ну смысл тогда в скоупах этих, если созданием и удалением вручную занимаешься сам?
В итоге стала тормозить, вывод ошибок стал каличный, начали глючить flavors. как обычно
Если у тебя один модуль, то в принципе никакого смысла. Все равно, у тебя кроме зависимостей нихуя в градле нет. А вот если модулей много, то удобно так разом подключать всю хуйню.
А вот кастомные градл таски выносить в отдельный файл удобно.
Все примеры слишком большие и очень большие. Блять, почему же так все сложно.
Ну так-то в dimens прописывают отступы в нормальных практиках.
>под каждое устройство прописать margin-top.
Вот это не нормально. И где ты писал под каждое устройство? Это ж ебнуться можно, сколько андройдов говноедов на рынке существуют.
Пытаюсь написать свой будильник с блекджеком и шлюхами. Одной из фич должна быть защита от отключения будильника, если юзер не выполнил какие-нибудь действия (не ввел капчу, наеример). То естл активити сркботавшего будильника должна перезапускаться, если её скрыть или закрыть. Как такое лучше всего реализовать? Сейчас я реализовал службу, которая запускается AlarmManager'ом, и, в свою очередь, запускает активити будильника. Но что-то никак не соображу, как реализовать слежение за тем, запущена нужная активити или нет?
Я имел ввиду под каждое разрешение экрана ), но проблема опять таки в том, что насколько я понял есть нестандартные разрешения для которых нужно отдельно писать. Как с этим быть ?
1280x720, 1:04
Вылазит ошибка "Unable to run mksdcard SDK tool" при установке Android SDK. ОС - Ubuntu 16.04
Нихуя не понял. Либо ты юзаешь ConstraintLayout, либо хуяришь Relative с маргин. Все! Что ты там блять собрался дрочить с нестандартными решениями не понятно.
>Unable to run mksdcard SDK tool
Можешь удалять убунту и переходить на нормальные дистры.
https://www.youtube.com/watch?v=71OUBuwwFvM
Спасибо анон, попробую.
Думаю надо отрефакторить ) Спасибо за ответ )
Да нет, не в этом дело. Очень много реп просмотрел, порядком 30 штук ради поиска даггера. + еще кучу статей. Очень много написано непонятным языком, пришлось читать лекцию стартандройда первую и смотреть видео одно с реддита. Так бы не понял на самом базовом уровне.
Даже подумывал купить эти 4 урока по даггеру от стартпидораса, но пока я остановился.
Сейчас нужно базовые проектики поделать для закрепления.
Я студент начальных курсов университета, изучаю по учебному плану C# (учить еще 3 года). Есть желание разрабатывать приложения под мобильные системы, в приоритете под Android, но в будущем плане и под iOS. Суть вопроса в том, что везде мне советуют выучить язык Java и разрабатывать приложения в Android Studio, но так же есть инструменты для разработки приложений на C# - Xamarin. Так вот, стоит ли мне начинать с нуля изучения языка Java вместе с Android Studio, параллельно с C#, так как С# я все равно буду учить в университете, или все же пока не смотреть в сторону Java и как следует учить C#. Наверное так же мне следует учитывать и тот факт что, например, вакансий на работу для Java-разработчиков со знанием Android Studio явно больше чем С# с Xamarin и т.п. аспекты.
Спасибо за ваше мнение.
>Xamarin
Беги от этой хуйни подальше. Документации нет, примеров кода нет, сообщество предлагает писать на .Forms с использованием кучи плагинов.
Во-первых, по гуглению в hh.ru android developer по стране 2к вакансий. По хамарину 132.
Во-вторых, мнение - всего лишь мнение. Так же можно учить С Шарфик и работать в НЕТ, параллельно задрачивая хамарин. Чем не один из вариантов?
В-третьих, я не знаю как там в хамарине, но в андройде тебе точно придется сидеть не день, чтобы понять как что-то работает. По своему опыту, либо я не умный и не умею схватывать на лету
В-четвертых, единственное, что я тебе могу предложить, так это написать приложение легкое на андройд студио и на хамарине. Это может быть тривиальный калькулятор, попробуй. А потом сравни что да как. Если понравится хамарин, то гугли как получать жсоны из интернета и отображать в мобилку - если дело окажется понятным и все пойдет, то почему бы не писать на хамарине? Возьмешь как хобби, а потом с опытом можно и что-то придумать.
Посткомент: Конечно, я могу написать, что нативная разработка более привлекательна, и так нужно написать, но мне кажется, нужно попробовать то и другое и уже под себя определять, нравится ли тебе это или нет.
пару месяцев назад понадобилась прилажуха для личных нужд. Думал тоже на ксамарине запилить и даже начал, но...
лучше это не делать. Знание шарпа - это одно. Другое дело, что миллиард сопутствующих настроек обрушат твою и без того низкую самооценку.
Через несколько дней плюнул, установил андроид студио, тоже порядком охуел от стека фреймворков. Подтянул заодно джаву и сервурную часть. И все равно, думаю, отделатлся легким испугом спроть утопической порнографии ксамарина
>не заметишь, как "долбоев" - станет твоим новым именем
Твое мнение всрато и так же отвратильно, как и ты сам. Если человек не может определиться с чем-то, пусть пробует писать одно и тоже там и здесь. Проанализирует количество вопросов и ответов на стеке и так далее. Писать можно на чем угодно, другой вопрос - для каких нужд и с каким качеством. Человек должен анализировать выбор и сравнивать продукты, а не зависить от мнение очередного долбоебика, который появляется раз в 10 лет чтобы воспроизвести очередной пук.
Ну как вот можно сделать такое говно, в котором службы гуглоплея выжирают 200 мегабайт оперативки? Вместе со 150 мегабайт настроек? Что вот там можно нахуярить на такие объемы? Прибавим к этому еще вшитое говно от производителя, которое выжрет еще сотку.
С гугломартыханами только негры Сбербанка сравниться могут, которые на своем говне выжирают 100.
Ехал kswap0 через kswap0 с зависаниями на минуту.
И как весело читать на фоне этого пиздеца статьи гугложирух, что автокилеры это хуйня без задач, потому что всем все платится все само чистится. Чистится, да. Кроме их собственной хуйни.
1200 мегабайт сжирается только на неотключаемую хуйню из коробки. Чтобы это говно ПРОСТО работало. Оставляя АЖ 300-400 мег, которых будет ебать kswap0, стоит только браузер с котиками на одной вкладке запустить.
>который появляется раз в 10 лет
from dvach import otbitost' as norma
dvach_time, building_data
def new_born_recursive (material):
``while dvach_time < 10 and material != govno:
````for mat in material:
``````prodvachit'(mat)
``````building_data.append(mat)
``````time += tick
````try:
``````new_born_recursive(muilding_data)
``````dvach_time = 0
````except ChelovekNeGovno:
``````print("ne pizdi sooka")
````final:
``````norma.makePook()
#poshel nahui
Ну так-то у всех уже 8+ оперативки. И никого не ебет, что там у тебя лагает.
При щелчке на ссылке на видео андроид предлагает открыть октрыть ее во внешнем видеоплеере. Программа предлагает себя в качестве плеера и делает get http://addr?param=%url%. Эта ссылка должна быть конфигурируема. Нужно всё это для открытия видео на аппаратном плеере.
зачем ты его посылаешь - правильно говорит, погляди на требования к разработке.
пока не соберешь годно-пеку - ничего хорошего не жди. Да и не дорого же. А то, что просят не ныть в треде - правильно
Я подумал что ему на устройстве нужно 8 гектар. Но сука это всё равно дохуя! Больше никто столько не требует.
за бабки изи, но непонятно, почему сам не сделаешь? если ты сам разраб, то тебе есть смысл обучаться и набирать опыт. Или что там творится, вообще завал, а ты лопату дома забыл?
Я на андроиде никогда не программировал. Может это и изи, но порог вхождения + установка всего софта + требования к железу.
тоже пичот, что мой девайс c quad core, 3gb ram лагает и тормозит (особенно гугл плей, это пздц, список приложений проскролить не может). я бы понял, если бы гугл делал это специально, чтобы покупали новые девайсы, но гуглу по идее похуй ? тупые гугл студенты-индусы, зато небось спикок переворачивают с закрытыми глазами
>пока не соберешь годно-пеку - ничего хорошего не жди.
Вот челик этот выше говорит тебе мудило >>199829
У меня бы процессор intel core 2 duo с 4гб оперативки, у меня тоже бомбило почему у меня все лагает. В итоге в январе 2017 купил кудахтер с ай 3 6100 и нормально дело пошло. Сейчас покупаю ультрабук за 55к. Ибо только андройд помог встать на ноги
ты - это я. Тоже самое, был дуалкор с 4 гигами. Аутировал. Год назад взялся за ум, собрал с али за 10К с i5 и 8 гигами. Сейчас бы смог дешевле и мощнее. Однако уже не актуально, уже полутоп.
и присматриваю юзаный titan, для сами понимаете чего
челик
>Может это и изи
нет, вхождение подразумевает, что ты - полубог, телепат, задрот
сомневаюсь, что ты потянешь мой ценник готов за 10К +/-
> intel core 2 duo с 4гб оперативки
О, как у меня, только у меня коре дуо. Но почему разработка для маленьких устройств лагает больше чем разработка жырного ынтерпрайза?
35€? Все равно жирновато имхо. Прога реально примитивная. Ну может еще надо распарсить xml ответа и считать результат и код ошибки. В любом случае, сначала придётся предложить владельцам этого медиаплеера скинуться.
Таки где лучше исполнителя на такое искать? И как лучше такое оплачивать? Скидываться на исполнителя или пусть делает программу платной?
>Таки где лучше исполнителя на такое искать? И как лучше такое оплачивать? Скидываться на исполнителя или пусть делает программу платной?
Тебе сказали, вася блять. Любое приложение вообще даже примитивное, 10к+ я считаю нужно, и то, на минималках. Не нравится - иди нахуй учи этот андройд и фрейморки сам. Вангую, что ты сольешься на начальном этапе сконструировать аналокалькулятор
Нахуй пшел, илита. Не тебе меня учить.
Где ты видел смартфоны с 8 гигами оперативки на борту?
Я вообще про сами устройства, а не пеку.
Нахер заморачиваться оптимизацией, если даже сами гугломартыханы этого не делают?
Можешь хоть заоптимизироваться - все равно это будет каплей в море на фоне гуглоговна на 300 мег, жрущего проц на 100%.
Я получаю в разы меньше их индусов, но почему-то именно у корпорации добра, которая держит весь рынок за яйца со сверхдоходами - висят в оперативке хуйни на почти пол гига, которые явно нихера полезного не делают. Отсюда же и жалобы на хлипкие батареи и жизнь у розетки. Потому что всякие kswap0 начинают ебать проц на 100%, когда оперативки становится около 100. Просто потому что ебаная индусская обезьяна с жирухой не могут оптимизировать свое говно.
Ладно бы еще можно было докупить оперативку, как на пеку. Там это еще простительно, как всякие хипстеры умудряются софт с теми же фичами 2012 года раздувать в разы по занимаемому в оперативке объему.
Но смартфоны-то с 2012 приросли на сраный гиг всего. И вот такое. Пиздец.
У меня 2 гига оперативки на смарте сейчас. Я пользуюсь одними же приложениями уже который год.
И если в 2012 у меня было постоянно около 200 мег свободными на смартфоне с 1 гигом - у меня сейчас свободно всего 300 с хвостиком. И так же лагает из-за kswap0. Что за ебаная математика? Кто спиздил оставшееся?
Сразу вспоминается их сраный эмулятор. Им же невозможно пользоваться без слез. А если подключить HAXM - у меня corei5 разогнанный намертво начинает виснуть, все начинает лагать по минуте, кроме эмулятора.
При том, что я могу без проблем хоть 5 виртуалок линуса запустить.
Есть образ ведра на хуй86
Мне поебать что ты там готова, свинка, просто расскажи мне, кто ты такой, что ты рассчитываешь на 140€/час?
Ну хуй знает. Спокойно хуярил на Xamarin.Android приложуху по джава-докам, различия только в синтаксисе джавы и шарпа.
Блять пиздец говно охуеваю. Такое говно андройд студио, нахуй я вообще связался с этим блядским андройдом. Лучше бы на руби ушел, сука, как же он меня вымораживает. Блядская залупа.
Загуглил — создал, Notification висит, но все действия происходят только при первом включении. Что, без нажатия кнопок эта залупа работать сама не будет?
Делал по этому примеру https://www.dev2qa.com/android-foreground-service-example/
>>201188
Всё, разобрался благодаря SO https://stackoverflow.com/questions/18526131/how-to-run-service-not-on-main-thread.
Спасибо. :3
Если ты такой дохуя умный, то почему еще не напердолил себе уменьшенный объем максимальной памяти на процесс?
не забудь запилить сохранение состояния при убивании сервиса и его рестарт.
из новой гугл либы (кроме того что viewmodel переживает поворот?)
Я читаю мануал, и просто не могу понять, ведь давно уже все юзают mpv, при повороте presenter достает кеш из бд, зачем, вот зачем нужна эта liveData и ViewModel ?
Есть два стула, MVP и MVVM. Решай сам с чем пердолиться.
liveData - мини обсервайбл, который чекает состояние активити например. Читай стартАндройд, мужик там по архитектурным компонентам сейчас 20+ уроков свежих написал.
Почему блять до сих пор нет нормальных пояснений как я должен строить эту ебаную архитектуру? Я просто хочу блять ебнуть - MODEL PRESENTER VIEW и никаких мозготрахов. ГДЕ МНЕ ВЗЯТЬ ПРОСТОЙ ПРИМЕР для ПОНИМАНИЯ. Все, на что я натыкаюсь - сделано лишь для того, чтобы все посмотрели на это челика и сказали: УХ Ты какой ОН Сука крутой блять, пишет столько непонятной хуйни а она еще и работает. Ебнутые пидорашки.
Любые действия в приложении - юзкейзы работающие с бд или сетью. С ними работает только презентер. Вьюха должна быть тупой как пробка, представь что твоя активити не умнее текствьюхи.
>Ебнутые пидорашки.
Ебнутое компьюнити блять. Все друг другу лижут пезду и трахаются в жопу, меряясь сколько много строчек они написали в своем приложении с одной кнопкой.
Почему я вынужден ковырять ВЕСЬ гитхаб в поисках простых решений? Почему я должен тратить уйму времени на то, чтобы пытаться понять огромный код КИТАЙСКИХ пидарасов, где они используют те технологии, которые я хочу изучить? Почему сука один ПИДОРАШКА в медиуме пишет пост с заголовком - НУ СЕЙЧАС МЫ ИЗУЧИМ НА ПРОСТОМ ПРИМЕРЕ ДАГГЕР 2
А потом, когда я сука открыл его код, в надежде изучить БЕСПЛАТНЫЕ ЗНАНИЯ, он СУКА, ВНИМАНИЕ, ИСПОЛЬЗУЕТ ДОХУЯ Аннотаций, когда на деле для новичка достаточно ебнуть @Module, @Component, @Inject, @Singleton. Он сука еще 10+ хуярит. Как же у меня бомбануло тогда знатно.
>>201596
Я знаю это, мне нужен просто пример. После отчаяния, я начал делать собственный, и тут мне опять ебнули по ебалу с ошибкой:
I/art: Background sticky concurrent mark sweep GC freed 42306(1351KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 12MB/12MB, paused 9.363ms total 39.530ms
>нужен просто пример.
Т.е. пример с: RxJava2, Retrofit2, Dagger2, MVP, и бд на выбор, я взял пока Realm.
В итоге - кетайские репы, которые еще и не собираются, потому что: you missing api key, please лососнице-ка, уважаемый.
https://github.com/googlesamples/android-architecture
Эти тебе чем не подошли? Не идеал но вроде все есть.
>RxJava2, Retrofit2, Dagger2, MVP
Блять, я начал разрабатывать под андройд 29 сентября, и когда читаю посты про эти вкаты с 4-5 месяцев, я просто охуеваю от всех.
Гугловская параша. Можно же создать примеры попроще, это же как те кетайские репы с 500 звезд и непонятной оромной хуйни.
Помню один раз я действительно тупо сел и потратил 2 дня на изучение какого-то китаезы. В целом, по нынешним ощущениям, у него было неплохо, но я бы запушил некоторые изменения, жалко не помню название.
А ты попробуй не весь набор сразу.
В iOS таже хуйня - видишь хорошую штуку но она одна в поле и с другими никто ее не связывает, стыкуюй как хочешь.
> 2 экрана с привязкой задач к ЖЦ экрана
> Можно же создать примеры попроще
Я хуй знает куда проще.
Вот базовый пикрил первый-пример, который юзает весь стек технологий мною перечисленный. И наконец-то он заработал.
В общем, расскажу о теме, которая меня 4 месяца интересует: не знаю почему, но один китаец при работа с Realm использовал конструкцию как на 2-ом пикриле, а юзается она как на 3 и 4. Я ее вычитал и начал применять. Под сомнениями, я попытался использовать простой конструктор с полями, но он почему-то не работал с Realm, т.е. save производил в бд, но вытаскивать значения так и не получилось.
И мне бы еще хотелось узнать о вот этих уничтожениях презентара, и как это фикситься. Думаю на реддите нужно просить коде ревью после завершения апп.
> И мне бы еще хотелось узнать о вот этих уничтожениях презентара, и как это фикситься
Moxy, либо свой такой же велосипед.
+ никто не запрещает использовать гугловую ViewModel как презентер, она тебя никак не ограничивает
>Moxy, либо свой такой же велосипед.
Блять, еще и с моху придется пердолиться. Как же я люблю это дело.
Разобрался давно уже. Вот самая нормальная статья, которая поясняет за это дело https://javarush.ru/groups/posts/505-mvp-v-android-dlja-samihkh-malenjhkikh может кому понадобиться
Остальные статьи всего мира просто сосут по кд.
У меня такое в Xamarin.Android было, лол. Вот есь гугловский пример с использованием Camera2. Ну, не самая простая хуйня. Чоткие посоны из Xamarin подумали, что он хуйня и слишком простой и в своём Camera2BasicExample помимо того, что было в гугловском примере, нахуярили фрагмент, ещё один активити, а заодно перегрузили TextrueView. Всё это в приложении, которое делает фотографию и сохраняет её.
Кстати, а вот скажите, а в андроиде есть какой-нибудь ивент типа OnPermissionsChange - который бы триггерился при изменении разрешений для приложения?
У тебя всю приложуху выгрузит из памяти если поменяется пермишен, можно не беспокоится.
А как же эти запросы на использование камеры/контактов/етц в рантайме, начиная с шестого андроида?
Возникает ситуация когда тебе нужен пермишен:
1) Проверяешь все ли пермишены есть
2) Если все то делаешь то что надо, иначе пункт 3
3) Проверяешь нужно ли юзеру объяснять зачем это тебе (система хранит запрашивал ли ты пермишены)
4) Реквестишь пермишены с кодом, по которому потом поймешь что надо делать. Может случится так что юзер выбрал варик мол "отъебись, не дам я тебе контактов", тогда сразу сработает режект в следующем пункте
4) Ловишь onPermissionResult, смотришь все ли разрешили и какое действие делали - повторяешь его вызов, если чего-то не хватает поясняешь юзеру что кина не будет.
Падажжи. А что происходит между запросом пермишена и onPermissionResult? Например, мне нужна камера, я делаю запрос на неё, а дальше что? Я же не могу остановить исполнение программы до того, как onPermissionResult стриггерится.
>anime
Можешь кинуть проект? Или просто расскажи в двух словах, что он у тебя делает.
Мимокрок анимедаун
Программа не отсанавливается, но на форгрануд вылеезет диалог с запросом пермишена, который вроде как даже в другом процессе, а как кнопку в нем выберут так и тебе управление вернется.
>Хороший пример, нечего сказать.
Мне нужно было базовое понимание, коих в других статей нет.
>>201703
>Можешь кинуть проект? Или просто расскажи в двух словах, что он у тебя делает.
Просто загружаю массив жсон через интернет с кучей хуев библиотек важных. Это фришное гибли апи. Брал отсюда: https://github.com/toddmotto/public-apis
бомбит, от того, что примеры такие простые.
Где я могу посмотреть как viewModel используется в связке с onSaveInstanceState ?
Где пример хваленой single activity app? где будет больше 2 экрана на приложение?
Почему нельзя запилить один пример, где будут использоваться все либы сразу?
Единственный real life пример это kikstarter, и то они там свой mvp изобрели
>Где я могу посмотреть как viewModel используется в связке с onSaveInstanceState ?
>Где пример хваленой single activity app? где будет больше 2 экрана на приложение?
>Почему нельзя запилить один пример, где будут использоваться все либы сразу?
>Единственный real life пример это kikstarter, и то они там свой mvp изобрели
Создай свои. Глядишь соберешь пару примеров и выпустишь сайт с нормальным контентом для двачеров.
Увы и ах, но так всегда. Меня вот в https://fernandocejas.com/2018/05/07/architecting-android-reloaded/ расстроило что хэндлинг ошибок такой куцый, вот как например обрабатывать application-wide ошибки типа not authorized.
я что-то не пойму, тут настолько помойка что никто не знает о такой возможности и даже не пытается узнать?.... Тематическая доска, какой же это всё кал. Какие-то мимокрокодилы обсуждают далекие темы и стоят из себя знатоков, а по факту 0
Да, но как мне не закрашить программу попыткой обращения к функционалу, на который нет пермишена?
Например, мне надо сделать
Camera.Open()
Перед этим я прошу пермишен на камеру
Но приложение крашится, потому что камера - null, т.к. пермишена на использование камеры не было.
Делаешь два метода, onAccessGranted и onAccessDenied, и пихаешь в onRequestPermissionResult. Если юзер поставил галочку типа никогда не дам доступ к камере, и диалог не выскочит, то у тебя все равно вызовется onRequest..., а оттуда уже onAccessDenied.
Ты сначала проверяешь пермишен, а употом камеру создаешь/используешь ебана.
>>201759
Ты действительно думаешь кому-то всрался твой недофреймворк? Почему бы тебе не почитать его документацию/туториал?
У приложения один манифест, но он включает в себя другие манифесты (манифесты бибилотек) на стадии сборки.
Я помню там были проблемы с сейвинстансом в том, что его не было в принципе, и приложение полностью перезагружалось. Починили?
Вот до этого я не додумался. Но это же, блядь, костыли пиздец. Получается ведь, что большая часть кода будет находиться в этом хэндлере, не?
https://github.com/flutter/flutter/issues/6827
Ну да, все еще хуй за щеку а не сейвинстанс.
Ответы в стиле: ну на иос же разрабы не заморачиваются, эплодауны уже привыкли, что при переключении приложений ты оказываешься на стартовом экране, а не где был до этого, вот и на андроиде делайте также.
Не при переключении, а при выгрузки из памяти.
так в этом и был вопрос, дурашка, а ты прицепился к фреймворку. Один из кусков - это сдл например, ты его тоже назовешь недолибой или что там у тебя с головой не так?...
Это у тебя с головой не так. Тебе ответили давно здесь >>197385
А ты продолжаешь доебывать своей поеботой.
1. Это сука андройд
2. Ты делаешь геймдев блять. Нахуй ты сюда приперся со своим фреймворком, который здесь никто не изучает блять? Это твои проблемы, и спрашивай на форуме твоей библиотеке, или откуда она там была высрана.
Здесь чисто клиент-серверные апп, немножко галлерей, и сама архитектура андройда. По архитектуре тебе и ответили 2 раза. Выебывай.
Мы его тупо создали, потом в нашем адаптере объявляем его и делаем сеттер:
private OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
Потом в ViewHolder мы имплементим стороннее какое-то нажатие implements View.OnClickListener, после чего в его методе онКлике пишем следующее:
@Override
public void onClick(View v) {
onItemClickListener.onItemClickMy(v, getAdapterPosition());
}
Ну а дальше в адаптере пишем: адаптер. сетКлике...(new OnItemClickListen.....) и дело пошло.
Но я не понимаю как это работает. Я выучил до автоматизма, но хочу разобраться. Объясните подробней этот момент по деталям.
КАК?
На каком моменте тебе не понятно?
В onClick вызывается твой код, обычный вызов, просто еще один уровень вложенности.
да ты опять за свое, мудила? причем тут ферймворк, дурачек. Я спрашивал, как возможно в приложении много манифестов, и привел пример где я это видел, т.к. во всех туториалах написано что одно приложение = 1 манифест. Это вопрос как раз целиком и полностью относится к архитектуре андроида, и никак не относится к фреймоврку, а ты доебался
Ну смотри:
Мы объявили в активити adapter = new ...., потом пишем
adapter.setOn(new On...)
Здесь я так полагаю мы создаем интерфейс, установили это в сеттере, значит он теперь есть в адаптере, потом во ViewHolder мы создаем скорее всего новый обработчик нажатия для вьюшки, и в этом обработчике мы пишем наш интерфейс, который обрабатывает еще один метод?
Уже много репозиториев перерыл, из того что близко нашел только 1 проект:
https://github.com/iammert/AndroidArchitecture
Но он не грузит данные при запуске(нужен API key) и там запутанное нагромождение кода в месте для обработки данных из сети и складывании их в базу данных.
>У приложения один манифест, но он включает в себя другие манифесты (манифесты бибилотек) на стадии сборки.
Долбоебина ты этакая, то же самое написано.
все это мифы. Нет в продакшене приложения, которое использует все модные либы сразу. Увы, такова реальность андроид разработки. Гуру-лицемеры выступают на конференциях, вешая лапшу, какую крутую архитектуру они придумали, какую крутую либу написали, но все их куски кода - оторванны от реальности, все примеры это hello-world-ы и простейшие todo-app. Каждый как может набивает себе цену, притворяясь что знает как на "самом" деле разрабатывать под адроид. Да чего уж там, сами гугловцы не понимают как писать аппы "правильно". Посмотри их открытый код от приложений IO (iosched). это дикий ужас. Так что удачи в поисках розового слона.
... ты действительно дурачек, если не видишь в этом отличия. Настолько тупой что пиздец, откуда же вы такие вылазите.
Нормальный человек бы ответил
- Да может быть несколько манифестов в таком и таком-то случае, но получится все равно один манифест по тому-то. Посмотри вот тут и вот тут.
Всё, понимаешь, вот так это работает, в остальных случаях ты либо не знаешь либо полный дегенерат
Виталий, успокойся. Только народ распугаешь.
>Анон привет, когда стоит использовать hardware acceleration и software ? на тестовом девайсе + эмулятор все норм, но юзеры некоторые жалуются на лаги.
Что это такое?
https://www.youtube.com/watch?v=Gw1pdxuTCuo
С такими знаниями можно уже идти преподавать в гик брейнс.
Что такое контекст и кому верить?
> You can not and should not use getApplicationContext every where and in the same way you should not use “this” or “MainAcitivity.this” everywhere.
В другой же статье:
>You only use getApplicationContext() when you know you need a Context for something that may live longer than any other likely Context you have at your disposal.
И где противоречие? Когда ты завязан на ui ты используешь контекст активити, если ты внутри активти/фрагмента. Если ремоут вьюха то там вроде есть свой ремоут контекст. В остальных случаях апп контекст вполне себе варик.
>>202222
Нет, https://stackoverflow.com/questions/20280476/difference-between-hardware-and-software-rendering-in-android#20281203
Какой же ты занудный. Понятное дело что я не первый кто об этом спрашивает, и раз я занимаюсь всем этим длом то могу читать доки на английском, НО русский текст читать все таки быстрее. То что где-то там кто-то задавал меня в душе не ебет, я спрашиваю сейчас в реал тайме, потому что за два года все уже давно поменялось. Знаешь ресурс кинь ссылку или скажи где, не знаешь - зачем вылазишь. На хубре уже читал, там слишком поверхностно, о таких вещах как несколько манифестов и прочей срани не упоминается
Особенности хуевых прошивок Андроида. Сделай ресет хули, вначале удалив ненужное дерьмо.
Какие костыли? Вполне обычная практика.
так блэт, кто там юзает viewmodel, можно ли view пробрасывать во viewmodel, как вообще viewmodel может рулить view, только через livedata что-ли ?
Но их можно написать самим, чтобы с разными MV-добавь любую букву паттернами и разным стеком либ.
ПРИШЛО ВРЕМЯ ПЕРЕУСТАНАВЛИВАТЬ АНДРОИД? Нахуй он нужен такой? Даже с виндой такого не было.
В чем проблема-то? На винде я могу увидеть, если кто-то жрет проц, замерить скорось накопителя, а тут что?
И какого х у меня вечно проблемы с местом, хотя на карте места дохуя? На винде я мог ставить программы куда угодно на свой страх и риск, а тут что?
Запускать в ЮИ потоке приложения.
Пользователь работает в ЮИ потоке, а если тебе нужно данные откуда-то качать секунд 5, он же не будет эти 5 секунд ждать в основном потоке, когда эта информация скачается и отобразится. Для этого придумали другие потоки, которые это делают, чтобы ЮИ не зависало, а на ЮИ кладут progressBar, который крутится 5 секунд и только потом данные отображаются.
вот это я и не могу понять, говорят что пользователь работает в ЮИ потоке, но мы наоборот запускаем то что должно завесить приложение как раз таки в ЮТ потоке. Вот на примере рекламы, мы говорим ЮИ загружай рекламу, но по описанию юзер как раз и работает в ЮИ, так что все таки я не правильно понял?
>но мы наоборот запускаем то что должно завесить приложение как раз таки в ЮТ потоке. Вот на примере рекламы, мы говорим ЮИ загружай рекламу, но по описанию юзер как раз и работает в ЮИ, так что все таки я не правильно понял?
Что блять? Почитай лучше более вдумчиво статьи по этой теме. Как поймешь, прискачешь сюда и распиши ответ на свой вопрос.
или же это просто так создается новый поток, который как раз не тот в котором юзер?
Насколько я понял UI thread это наш основной поток в котором работает юзер. Но в коде который я вижу, например, закачка рекламы запускается через runOnUiThread(new Runnable), но в то же время в справке говорится -
Runs the specified action on the UI thread. If the current thread is the UI thread, then the action is executed immediately
То есть пишут что если текущий поток UI то в нем и будет выполнятся. Вот это меня и запутало.
Я не знаю что это.
Лучше не надо, ты объебешься и создашь утечку. По гуглогайдайм нельзя.
> livedata
Можешь любым observable паттерном.
Я то и так скоро уже наверное пойду работать, только на планируемой этой работе я буду один андройд девелоперс, делать внутри компании которая нефтегазовая приложение, которое завязано на Microsoft API. Там та еще поебота конечно же.
учится на простых примерах, а потом по аналогии делать из простых кусочков сложные. Курить доки
меня тоже :) но как раз это и есть та самая работа программиста. А решается всё тестовыми примерами и\или чтением документации
https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html#DAY_OF_WEEK
Ну и почему ты не потрудился почитать доки?
Вот здесь покрасивей страничка. Да и своя, родная, андройдовская.
https://developer.android.com/reference/java/util/Calendar.html#DAY_OF_WEEK
Что бы не писать в БД. Некоторые данные нет смысла харнаить в бд, а еще если бекендщик вменяемый он может настроить хедеры так что все еще и своевременно обновляется. Например список категорий действителен час, и каждый (если будет запрос) обязательно скачивается с сервера заново. Но при этом тебе самому не надо кодить эту логику.
> случайно никто не знает как можно динамическое расположение вкладок сделать в зависимости от дня недели.
Либы чекай на гитхабе. Там таких полно.
Придется отказаться от MVP и Moxy, ибо я не понимаю как сделать callback из реилма. Теперь пересаживаюсь на MVVM и анальные гугловские либы. А на стекОверфлоуе EpicPandaForce меня троллит.
Алсо, жалкие попытки: https://stackoverflow.com/questions/50722859/implementing-callback-in-realm-and-set-it-in-presenter-mvp-for-async-work
Ладно, почитали эту статью https://medium.com/google-developers/viewmodels-a-simple-example-ed5ac416317e
Реализовали.
Теперь нужно понять как передавать лист из Model во ViewModel через ливе дата.
попробовал livedata - говно какое-то, какая-то псевдо rx хрень, ни на поток кинуть, ни мерж сделать, только что отписывается за тебе. пересел обратно на BehaviorSubject
Это всего лишь варнинг)
Так вон же выше идет объявление переменной.
val userListViewModel = App.injectUserListViewModel
>rListViewModel = App.injectUserListViewModel
Зачем помещать логику в МВВМ если должно быть как на пикриле?
А кто сказал, что нужно поступать именно так? Если в целом реализация укладывается в какой-либо паттерн, то и хуй с ним.
И задавать такие вопросы тут не стоит, говном обольют. Лучше задай этот вопрос гуглу пользы будет больше.
Вьюшка же понятия не имеет, что там дальше твориться, ей главное тупо отображать данные, на которые она подписана.
А вьюмоделе похуй, что во вьюшке. Ему лишь бы отобразить эти данные.
Сколько я не смотрел реп, везде ебанутые люди, по разному понимают. Почему нельзя просто, ясно, за 1 раз сделать один пример с ресуклер вью, где ПРОСТО И ТУПО мы загружаем данные из сети, хуярим в бд, отображаем их. - Я это пытался сделать на MVP, но я встретил хуец с обновлением данных, пока идет асинхронная загрузка данных.
Я начал смотреть репы, как же все-таки люди обрабатывают это - и тупо потратил около полдня на это дело. Конечно у китайцев там все было, но они нахуй понасоздавали огромные приложения с абстракщиной и так далее, хуй разберешься за раз Вообщем, я так и не нашел грамотного решения моей проблемы, зато я запросто так немножко разобрался в Моху, соснув хуйца в общей архитектуре MVP.
Теперь на очереди MVVM. Здесь я не сосну хуйца, ибо я так понял здесь LiveData, с помощью которого я смогу чекать - если list.size==0 - то progressBar.setVisible(visible) иначе отобрази данные.
>>204973
>И задавать такие вопросы тут не стоит, говном обольют. Лучше задай этот вопрос гуглу пользы будет больше
В интернете столько говна, что я уже сам блять говном стал.
> встретил хуец с обновлением данных, пока идет асинхронная загрузка данных.
чет не понятно, что за хуец
Я же впостил на стекеовере >>204619
Хотя, я сейчас нашел примеры Realm. У меня появился вопрос касательно лучшей имплементации одной фигни, и поэтому пришлось покопаться досконально в примерах реилма. Нашел там так же пример на подобии скостылированный под MVP. Что-то вроде пикрила. Там так же юзаются данные из интернета, мне кажется это и есть ответ на мой вопрос. Но один хуй я уже блять начал MVVM хуярить. Посмотрим что выйдет.
Вообще у реилма заебись документация и примерчики. Не первый раз замечаю. Надо как-нибудь потом Room with GreenDao для разнообразия ебнуть.
Что тебе мешает в MVP передавать в качестве аргумента лист, чекать его размер и отображать то что нужно в зависимости от результата?
В качестве аргумента для метода во вью*
Чувак, если у тебя таки проблемы со стейтом, глянь MVI.
http://hannesdorfmann.com/android/mosby3-mvi-1
>Что тебе мешает в MVP передавать в качестве аргумента лист, чекать его размер и отображать то что нужно в зависимости от результата?
Какой ты умный. Будто я не додумался блять. У меня проблема В ТОМ, ЧТО Я загружаю данные асинхронно, и СРАЗУ же отображаю их. Нужно подписываться по эти изменения, как говорит ЭпикПанда. Я нашел что-то похожее на примерах реилма. Разберу их примерчик и может что-нить да получится.>>205268
>Чувак, если у тебя таки проблемы со стейтом, глянь MVI.
Моху и так далее - это всего лишь удобная обертка над сохранением презентера, где в MVVM это делается лишь одной строчкой - ViewStatePresenters.of(this)get(...) что-то вроде того.
Разве что он отображает ласт состояние, а Моху может еще и сохранять команды предыдущие.
Хорошо мой сладкий)
Пользователю показывается View, презентер чекается и привязывается - выполняет команду загрузку данных внутри себя - идем в репозиторий - выполняем эту загрузку асинхронно. Следующая команда в презентере - отобразить эти данные.
Следовательно, мы получаем лист = 0, при перевороте мы получаем нормальный лист, потому что за это время данные уже загрузились.
Что ты предлагаешь сделать?)
Ответ: нормальное решение - это повесить коллбек на реилм, чтобы дернуть презентер и сказать ему о том, что данные загрузились в БД, и пусть он дергает их из БД и отображает во вью. Что я попытался сделать с подпиской, что и не получилось.
Ну вроде я так делаю, и норм. В чем проблема.
Подписывайся на бд, и при апдейте кидай данные во вью, хз не понимаю тебя
А в чем, собственно, проблема? Релм, по-твоему, для идиотов адаптеры писал? И, кстати, вьюха не знает о реализации, она просто получает апдейты в обход твоего презентера. А вообще, если уж ты метакодер дохуя - передавай адаптер из презентера хотя это абсолютно лишнее и ухудшает тестируемость.
Не, никакого адаптера из презентера. Презентер в душе не ебет что у тебя есть какие-то адаптеры для ведра, какие-то релмы-хуелмы.
Они делали его для тех кто хуяк-хуяк активти, хуяк-хуяк фрагмент. Можно конечно инжектить адаптер из какой-нибудь компоненты, но мне вообще релм не нравится.
Я это и хочу сделать.
Ты инжектишь фрагменты? Нахуя? Нахуя вообще адаптер инжектить? Я видимо совсем уже ничего не понимаю.
В моем случае это очень удобно получилось, я всегда могу добавить новые фрагменты в модуле и не лазать лишний раз по адаптерам\хуяптерам.
Но т.к. я нуб, может я делаю что то не так. Это плохая практика инжектить адаптеры\фрагменты?
Очистил всю БД, закрыл приложение, но почему оно занимает место в памяти >10 МБ? Почему так? Там же максимум +5 МБ должно быть.
Спасибо, потыкаю.
БД - это такой же кэш, с той лишь разницей, что он не очищается при закрытии приложения.
как мне связать данные в списке с данными в бд. То есть допустим у меня есть 5 новостей и у них есть 5 разных айдишников , я хочу загнать эти 5 новостей в recycler view и также хочу , чтобы при удалении какой-либо из новостей из recycler`а у меня эта же новость удалялась и из бд , для этого я планирую юзать некие идентификаторы , которые генерю сам и потом создаю какой-нибудь hashmap и связываю id из бд с аналогом id recycler view, а после удаления из ресайклера( я знаю , что в ресайклере нужно менять источник данных, а потом оповещать список, но суть не меняется) я просто смотрю в хэшмэпе какому элементу в бд соответствует удаляемый объект и удаляю его из бд, но вот в recycler view, насколько я понимаю, нет какой-то неизменной характеристики элемента списка, там есть только position, которая постоянно блэт изменяется и нельзя адекватно связать изменяющуюся position c неизменным id моих новостей. Скорее всего объяснил нихуя не понятно , поэтому тоже самое другими словами и более кратко: есть элемент в бд, есть его отображение в ресайклер вью, как при удалении элемента из ресайклер вью удалять тот же элемент из бд? Я сам думал о том , чтобы отличать новости не по айди , а по самим новостям, это возможно сработает , но хотелось бы таки решить задачу в общем случае, то есть когда есть дохуя элементов с одинаковыми данными. Еще один способ , о котором я подумал это добавить в каждый элемент какой-нибудь невидимый пользователю text view и хранить id там, но тут тоже есть ощущение, что это сомнительное решение, хотя в общем случае работать должно. При гуглении я либо в принципе нихуя не находил , либо находил решение по типу моей первой мысли, то есть хуйню, собсна поэтому прошу помощи у вас , аноны.
Сама реализация простая. А вот в выборе архитектуры эта реализация будет отличаться друг от друга.
И почему челики инджекторят в конструкторы, а не вешают на поля Инджекты?
Потому, что как ты иначе тестировать это дело без даггера будешь?
Потому что инжект через конструктор лучше инжекта через сеттер/поле. Иммутабельность рокс.
Есть ли у кого-нибудь логин с паролем для startandroid по платным урокам?
Мало ли кто может быть делал такие дела.
Не используй андроид расширение для даггера. Это очередная оверинжениринг хуета от гугла, которым заняться нечем. Сохраняет тебе пару строчек кода и приносит хуеву тучу головной боли.
https://en.wikipedia.org/wiki/Code_golf
Ты тащишь зависимости, обвешиваешь классы фреймворк лишним интерфейсом. Это даже не избавляет тебя от бойлерплейта, а просто переносит его в модули. Если же тебе надо заинжектить в обход констркутора в класс который не поддерживается, ты все равно идешь за компонентом и инжектишь через него. SSOT ломается
Что ломается блять? Ты и так и так это делаешь, просто даггер облегчаешь тебе жизнь и не заставляет писать говно аля пикрилов.
Суть даже не в том, что правильно а что нет, пусть люди сами пробуют и сами решают, что лучше им подходит, а не надеются на советы ноунейма. Алсо, сколько ни ходил, большинство здравомыслящих людей юзают даггер, нормальные тоже юзают даггер. Даггер сложен для первичного вкатывания, но меня лично он этим и прельщал.
Заебали эти советчики.
> Это даже не избавляет тебя от бойлерплейта,
Конечно. Иди продрочись.
>а просто переносит его в модули.
Хули ты это высераешь? Сам прекрасно знаешь, что там дополнительно классы генерятся. которые как раз избавляют от говнища твое ебало.
у меня вопрос немного в другом, как мне связать элемент на который нажимают и хотят удалить с его расположением в бд? Ведь я ничего не знаю об элементе , на который нажимают кроме его позиции в листе, если удалить какой-нибудь другой элемент , то позиция всех элементов изменится и мой hashmap, в котором записана связь элементов в листе с их позициями в бд , будет бесполезен
Где я писал, что обычный даггер это плохо? Дурачек, ты видимо даже не понял что я говрю про dagger-android.
На вопрос про не-конструктор иньекцию в не-фреймворковский класс ты так и не ответил.
Хорошо. Идем с другой стороны. Когда ты создаешь адаптер, например в активити, у тебя лист в активити хранится?
Ну ничего, вот в P уже можно самому активити создавать, глядишь через 10 лет фабрики для фрагментов регать можно будет, ну или в кондукторе допилят. Вроде же очевидная идея оставить юзеру хук для создания компонент, какие проблемы?
а блэт точно же, все, понял, спасибо
Согласен. Как это относится к моему посту о том что расширение даггера для андроид это хуета которая дает тебе минимум выхлопа, при этом еще больше привязывая тебя к фреймворку?
Я другой чувак. Примочка для ведра к даггеру мне тоже кажется хуйней.
А что вы так доебались до фреймворка? Часто вы свои презентеры с вьюхами и прочими моделями на другие платформы переносите?
webView.getSettings().setAppCacheEnabled(false);
webView.clearCache(true);
webView.clearHistory();
webView.loadUrl("about:blank");
webView.reload();
На iceCreamSandwich все норм, но пользователи с версиями выше жалуются что загружается старые данные т.е кэширование работает. В чем может быть проблема ?
>ну смысл тогда в скоупах этих, если созданием и удалением вручную занимаешься сам?
Почему ты удаляешь его сам?
Насколько я понял, там подход как в swing'е - используются не нативные компоненты платформы, а собственные отрендеренные с помощью либы skia. Все пишут, что, якобы, это все круто оптимизировано и работает быстрее rn. Короче, пока не ясно - все зависит от гугла, если он лично будет штамповать эти компоненты - то перспективы есть.
Гугол сейчас на АИ коцентрируется. Конечно это хорошо, иметь пет проект, убивать время людей, которые его разрабатывают и еще натягивать их улыбки на лица ради денежек. Если стрельнет, то будут всем говорить, что не зря вот старались, если нет - то закроют как виндовс фоне.
> Конечно это хорошо, иметь пет проект, убивать время людей, которые его разрабатывают
Вообще правило 20% процентов охуенное, позволяет попробовать то, что хочется, но при этом не кодить дома как последний ноулайфер.
Я ебу что ты там в замазанном делаешь, но get* намекат на то что ты что-то берешь, а не инжектишь, кто по твоему инициализирует апи и дао?
Ну ты же инжект не делаешь, дебич.
Хм, но тогда я могу просто заинжектить объект в активити, без всяких скоупов. Если компонент пересоздание не переживает, в чем смысл?
Ведро-тян к вашим услугам.
Ни у одного в примере нет такой хуйни.
Большинство пидарасов делают запросы в интернете во ViewModel, остальные трудночитаемы, или запросы в активити хуярят.
Осталось чекнуть local и remote. Ну и все.
>>207287
Я MVVM понял, а на MVP чет не смог потыкать решение от реилма. В общем, хоть что-то получилось. Теперь нужно захуярить мини апп нормальное, сделать тестовое и идти работать.
> Наконец-то я блять научился создавать КЛЕАН АРХИТЕКТУРЕ для себя. Все красивенько, View ViewModel Repository. Репози грузит данные, хуярит в бд, вьюшка берет ливе дата и следит за событиями.
> Ни у одного в примере нет такой хуйни.
Кидай ссылку, обкашляем.
Я еще local с remote не реализовал.
>обкашляем.
Позволю обшлякать только на реддите. Здесь нахуй я никому не нужен. А там нормальное комьюнити.
Получается, что вьюМодел знает слишком много. Оно испускает liveData для вьюшки, и еще знает о сети. Самое интересное, что после запроса нетворка он как раз после этого заносит во вьюшку.
Блин, почему у таких людей 2.9к хлопоков? Почему он не отделяет логику Repository и ViewModel? Почему ему лень было еще занести в Room и реализовать нормальный пример MVVM как здесь? https://proandroiddev.com/the-missing-google-sample-of-android-architecture-components-guide-c7d6e7306b8f
Вот, единственный, нормальный пример, который заслуживает похвалы. Единственное, что мне здесь не нравится это executor - но вполне заменимо реактивной шнягой.
Остальные примеры, сколько я не смотрел, просто ужасны и блевотны, как и их собственная жизнь.
А DataBinding вообще просто оставляет отрицательные впечатления. У меня всегда при работе с ним рушится UI xml-ки. Расстановка по margin и тому подобное. При запуске приложения все нормально, но вот само редактирование просто уёбищно.
Никогда больше с этой парашей работать не буду.
>DataBinding
Я проклял тот день когда им воспользовался, милиарды ошибок черти где на каждый пук.
Never again.
Ну тип, например, жмякаешь на AppModule и там все классы с AppModule_Factory вот такие и так далее. Ну и смотришь.
>А где это жмякать? Я просто вообще не знаком с Android разработкой.
И зачем тебе это тогда?
Нормальный человек бы не спрашивал о таком.
А, ну тогда я с этим не знаком.
А при запроса с нетворка нужно хитроебищно запонять таблицы.
После реилма на другие бд вообще блевать хочется.
- не умеешь решать олимпиадную парашу и похуй что тебе это в жизни не пригодится, ведь 90% андроид разработки обычная рестопараша = сосешь хуй
- не имеешь гитхаба = сосешь хуй, ибо мало кто захочет ебаться с твоим тестовым
- не имеешь друзьяшек))) с конференций))) чтобы тебя рефали на работу = сосешь хуй вдвойне, ибо ебать на собесе тебя будут сильнее
- призывают ходить на собесы, но при этом, если приходишь, то эйчаршлюха пиздит всем, что Сычов пришел, об этом узнает эйчаршлюха на твоем текущем месте работы = сосешь хуй
- один раз обосрался на собесе = сосешь хуй, ведь эйчаршлюха всем распиздит, что ты даун, жди пол года пока "набираешься опыта и исправляешь пробелы в знаниях"
- не помнишь как работать с контент провайдером и лоадером = сосешь хуй, ведь это база, и похуй что почти не используется
- написал условный rxjava в резюме, но не помнишь наизусть все операторы, чтобы не обосраться при вопросе - сосешь хуй, ибо нехуй писать того, что "не знаешь" в резюме
- сосешь хуй = сосешь хуй
Ничего не забыл?
Индустрия-гной, индустрия-червь, индустрия-пидор.
Половина всех разработчиков под ведра живут в Мск, треть в Питере.
Нет, в яндексе.
> quick and dirty
В AsyncTask postExecute обработай строку и разблокируй интерфейс юзеру. Объяви асинку внутри активити либо передай в асинку инстанс активити.
> и работать с ней дальше с onCreate() основной активити
А вот так не получится, выноси все в свой postExecute.
Не выйдет, onCreate отработает раньше postExecute.
еще добавлю, что у меня нет доступа к сорцам наблюдаемого объекта, я только знаю только имя поля за которым нужно следить
>можно было зарегистрировать свой объект, чтобы он следил за каким-то полем другого объекта - если это поле поменялось, то вызывается какой-нибудь callback.
Есть паттерн Observer
Паттерн Observer.
Вот этот господин знает толк в программировании под андроид.
Нет, если создатель класса об этом не позаботился - соси хуй. Так мягко намекают что тебе не нужно обсервить занчение поля, потому что либо есть специальный механизм для этого, либо ты делаешь какую-то хуйню.
Тебя будут ебать языком SQL, скорее всего. Знать ORM важно, но иногда в проекте возникает вопрос, когда ORM использовать не получается или нецелесообразно, тогда проще написать запрос на SQL.
>остаточно долго(имею ввиду инициализировать ее и тд). Что щас обычно юзают в разработке и будут ли меня сильно ебать на собеседовании sqlite`ом? Слышал еще про room от гугла , но говорят ,что она еще сырая и вообще мало кто ей пользуется.
Когда я работал на маленькой галере, они все апп делали с реилмом. Тут дело вкуса. Скорее всего, сейчас может на новых компании юзают room.
Я вот тоже селекты индексы знаю более менее, но быстрее напишу с реилмом, чем с тем же румом.
Потому что я рум пока не юзал. Хотя пытался сейчас юзать для тестового, но мигрировал на реилм Потому что пока разберешься с этими отношениями блять время потеряется
Окей , спасибо. Тогда наверно для того, чтобы в будущем было меньше проблем лучшим решением будет таки использовать sqlite в большинстве своих проектов, ну а orm уделить меньше времени. В любом случае на месте работы будет понятнее что именно нужно будет делать.
Я им сказал, что работал с реилмом. Они и заебись говорят.
Спрашивали то, что у всех спрашивают. Делал ли я бочку и сколько сосал хуев
>AsyncTask
> 2018 год
пиздец. Забудь вообще про существование такого понятия, как asynctask , еще года 3-4 назад все трубили о том, что это юзлесс говно, нужное только для самых зеленых новичков, которые не слышали про треды и т.д.
по твоему вопросу - если надо чтото выполнить не в ui треде, то юзай thread+runnable. Если же это запрос с обработках ответа, то retrofit + okhttp
> нужное только для самых зеленых новичков, которые не слышали про треды и т.д.
А он не такой?
> thread+runnable
Ну да, в дохулион раз лучше асинктаска. Асинктаск хоть профит имеет в виде postExecute, который вызывается на главном треде. Плюс у него есть дефолтные уже готовые екзекьюторы, однопоточный и многопоточный, на которых никто не запрещает запускать твои говноранеблы.
Как в котлине получить значение переменной через reflect без вызова getter'а?
Вот этот метод: http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property1/get.html вызывает геттер, а не то значение, которое там лежит.
Для чего нужно. К примеру в data классе у Int поля кастомный геттер:
get() = field + 1
И возвращает он, к примеру, не 10, а 11. Если кинуть это значение в другой объект, то на выходе получим не 11, а 12. То есть объекты будут разные. Понятно, что писать так bad practice, но бывают ситуации, когда изменить это мы не можем.
Вот мои куски кода: https://pastebin.com/QTHAzBFJ
Активно последние месяца два, ну а так года два периодически его тыкал. А что?
У тебя из репозитория тогда должно торчать Observable<Result<List<SomeData>>>, где Result<T>(val data:T, val failedNetwork: Boolean). То, что ты сделал и правда выглядит хуево.
Спасибо. Попробую сделать так. Звучит лучше, чем у меня.
Почитай что такое http. Скорее всего тебе нужен form url encoded. Возьми Retrofit и хуяк-хуяк.
Т.е. Если я загружу данные в бд, а потом, если у пользователя не будет интернета и буду загружать из этой БД, то все нормально будет?
>whatever come from the network that go into the disk, it never go back to the UI
А как юзеру информацию об ошибке показывать тогда? Они всегда об этом забывают.
>Ты не думай, ты повторяй - очередная очень модная парадигма себя не напишет.
Интересно, а как ты тогда пишешь приложение? Меня больше интересует место репозиторий с АПИ и бд.
>А как юзеру информацию об ошибке показывать тогда? Они всегда об этом забывают.
Какую ошибку? подключение к сети? Даже когда я чекал интерфейс 2chbrowser, при отключении вай фая он просто продолжал показывать то, что осталось в бд.
Вообще, вся идея нормальная, но мне непонятен момент с проверкой сети. Я должен что ли контекст создавать в репозитории и проверять на наличие интернета что ли? Это же пиздец по-моему.
Вообще без разницы куда вкатываться, но говорят на иосе меньше жопоболи. Да и устройства одни и те же практически, а у андройда триллион хуеплетин с йоба прошивками, пользователи которых орут ну а хули приложение не работает.
спасибо
А как вообще с рынком? Говорят подыхать скоро собирается (инбифо так хоронят уже 100 лет джаву, си и пхп) и переход на жс будет.
ебать. нет, честно, это пиздец.
обновил, переустановил градл, после вовсе переустановил всю прогу. Появилось окошко Debugger, в нем Frames и Variables. Но все впустую, ибо Variables are not available. Ебаный стыд. Что за хуйня. Просто пиздец.
> ЕЙ БЛЯТЬ ЖИЗНЬ НАДО ПОСВЯТИТЬ ЧТОЛИ
Жзинь за айти. Так в любой ит-параше, добро пожаловать.
Собирай из коконсольки.
Он клик ловит вьха, а потом дергает презентер.
В частности, я вот сейчас пишу приложения для "портфолио" - и javadoc мне видится каким-то бесполезным говном без задач, ведь никто кроме меня это поддерживать не будет, чтобы так подробно описывать API, которое к тому же дублирует очевидные имена методов/параметров.
Но не будет ли это минусом, если при приеме на работу будут смотреть мой код без использования javadoc?
На codingbat можно натренить джавку
Документируй только то, что может быть не очевидно. Нет никакого смысла комментировать все подряд если ты не хуячишь методы на пару экранов с пизданутыми названиями.
Это копия, сохраненная 16 августа 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.