24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
> Хочу вкатиться в разработку под Android! С чего начать? Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде. После этого можно установить Android Studio, открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение. В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Не хочу писать на 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. И хотя бы одно готовое приложение.
Как правильно вешать onClickListener на элементы в RecyclerView? Мне нужно, чтобы по клику на элемент в ресаклере октрывалась новая активити, в которую передаются данные о кликнутом элементе. Это нужно делать в onCreateViewHolder или в onBindViewHolder?
>>1188016 Кек. Ты мой вопрос повторяешь 3 треда назад. Создаешь интерфейс. Делаешь так в адаптере: private OnItemClickListener onItemClickListener; ну и потом 2 пик.
Чет какая-то неинтересная google io проходит. Кроме design 2 и возможности сделать ака эппл ничего не увидел.
Может кто-нибудь пояснить почему платный эмулятор Genymotion до сих пор жив? Есть же куда более няшный AVD, который и работает лучшие, и бесплатно имеет все фичи Genymotion, и версии новые получает быстрее, и не лагает.
Мне присылается ответ с сервера, в том числе url фотки, в глиде я просто запрашиваю и отображаю ее. Должен ли я фотку как-то конвертировать в Bitmap, сохранить это в бд и только потом показать?
Есть один пет проект прошлого года, где клин архитектура с ретейнед фрагментом, презентерами и велосипедами с сохранением реквестов. Стоит переводить презентеры на ViewModel? В 2018 уже никто не сейвит презентеры в ретейнед фрагменте?
>>1187993 (OP) Кто-нибудь за развитием Flutter следит? Интересные мнения, насколько он перспективен для гибридной разработке на фрилансе в обозримом будущем, с учетом того, что сейчас о его существовании мало кто знает и на западных биржах для новых приложений в основном топят за React Native?
Есть два стула DatePicker'a в фрагменте с DatePickerDialog.OnDateSetListener. Как мне сделать: public void onDateSet(DatePicker datePicker1){ do А } public void onDateSet(DatePicker datePicker2){ do Б } ?
Няши, летом иду на студенческую практику в компанию. Буду там 2 недели. Реквистирую у опытных анонов идею для приложения, которое сможет сделать один человек с минимальным опытом за такой срок. Пишу на Kotlin. Сказали, что можно любые новые\хайповые технологии использовать хоть со вчерашней конференции Гугл. За ИИ и машинлёнинг не шарю совсем. Хотел бы охватить максимально основы Android разработки + закончить проект, чтобы получить офер на стажера\джуна. Готов ебашить как ЧОРД 24\7
Привет РЕБЯТА. Представьте себе приложение: 4-5 экранов, логин, показать списки картинок загруженые через жсон апи, понравившуюся поставить на заставку. Вижуал оч простой - сплошные квадраты.
Я посмотрел - в среднем от $2к просят в разных приличных местах за "простое" приложение (вот это как раз по идее простое), и сделаю сегодня за 500 рублей в неприличных.
Где же истина? А именно мне инетерсно за сколько вам было бы не впадлу что-то такое сделать.
>>1188910 Не понятны твои знания по андройду. Если ты черт нихуя не знающий - ебашь юдасити. За месяц 24 на 7 пройдешь 7 курсов у них. А дальше такие тупые вопросы можешь только самому себе задавать.
>>1189002 >у вот чисто в теории если предположить наприме Это же простое апп для установки обоев на телефон? Ну как человек захочет, можно и 40к за это все взять, ибо нужно еще регаться и ковыряться по части обоев на "рабочем столе" телефона. За 500 рублей можешь дать подтереться тому человеку кто тебе это сказал, и крикнуть: Проснись, СЫЧ, ты обосрался.
сап аноны, на данный момент вкатываюсь в айти и решаю на какой стул сесть. Судя по зп мобильные разрабы получают в 2 раза больше веб - петухов. Это правда?
>>1189107 потому что на мобильном стулу в n-раз больше хуев, к тому же есть пико-хуи, пико-хуи, хуи-хуй, пика-пики. Так что присаживайтесь если сможете усидеть
>>1189107 >Судя по зп мобильные разрабы получают в 2 раза больше веб - петухов. Это правда? Может и так. Вообще, андройд такое себе увлечение. Мне даже стыдно его сейчас бросать, ибо без этого товарища я просто никто. Но и с ним я говноед тот еще.
>>1189111 знакомое чувство, на своем опыте скажу, что происходило такое уже неоднакратно за последние 12 лет. Стэк выходит из тренда или сменяется другим стэком или схлопывается сложность и рынок переполняется макаками. Да уж и не помню, чтобы решал задачи одинаково, постоянно новые подходы, постоянно разбираешься, завидую порой каким-нибудь дизайнерам - опыт складывается, зп растет. А тут ниндзя_скилл точечных коммитов в чужой код, чтобы привратить его в свой, требует особой мудрости и дзена, который требует еще того душевного спокойствия. лично я представляю себя чернокнижником, а код - заклятьями. Чем больше у меня заклятий - тем более сильным магом я являюсь. Но один хрен, иду на базар и пытаюсь продать свою магию. Так что остается наслаждатся самим процессом заклинания хотя для меня это большой кайф
Как же мне нравятся эти выступление с андройдом. Рассказывают про свои уникальные решение без единой строчки кода, при этом поговаривая, все КРУТО, все заебись. Просто на изичах. Пиздец в россии компьюнити ебанутое.
>>1189186 обо многом говорит, в популярнейший канал по обучению ведет какой-то унтер виталик, который далек от самих технологий так же, как от английского языка. Пригорел с его канала, который кажется слеплен из статей и вольных переводов обрывков нагугленного материала. Чем сложнее технология - тем она бессистемней доносится. Если понятия Intent, service, lifecycle лекги и доступны к понмианию, то начиная с более менее сложно-структурированных технологий подается просто разбитая мозаика. Завершения идилии - это, конечно, английский. Такой добротный деревенско-народный. Даже удивительно, где автор обучился этому раритетному диалекту. Пытался тут вникнуть в его курсы, но посмотрев это говно, быстро понял, с чем имею дело. И нашел отличное объяснение нужного материала от лякающего пакистанца. Что наталкнуло на мысль об андроиде - какое же это маргинальное чудо.
>>1189236 >унтер виталик, Ахах, двачую. Я сначала серьезно относился к этому пидарасу, даже думал вкинуть 600 рублей ему на чай на один курсик. Как же хорошо, что я этого не сделал. В итоге юдасити меня только и спасли, а сейчас хуй кто меня спасает.
>>1189276 >>1189236 тож самое. Чувствуется, что он нихуя не одупляет как все взаимосвязано, вот и объясняет как попало. Давно заметил, если технологию осознаешь, можешь любую сложность донести через "хуй", "говно" и "барабан"
у меня истерика. Во всех примерах употребления retrofit call используют вариант асинхронности? Неужели никто никогда не запускал ретрофит в сервисе и не посылал оттуда интенты на ноутификейшены? Почему не работают синхронные call.execute()?
>>1189481 Во-первых, сервис по умолчанию запускается в УИ-потоки. Во-вторых, можно внутри сервиса запрашивать с периодичностью то, что тебе нужно. Хочешь хуи каждые 5 минут сосать, так он тебе в этом поможет.
>>1189512 хорошо. впосро: именно RxJava позволяет запускать сервис, который будет работать, даже когда прилажение не в фокусе. И в этом сервисе будут происходить запросы с rest сервера? если да, все это делается связкой okhttp, retrofit2, rxjava2?
>>1189642 Нет. Если тебе хочется что-то делать вне фокуса - использую андроидовский сервис. В нем можешь чем хочешь, хоть рх, хоть голый okhttp, периодически хуярить запросы.
Самое большое разочарование в андройде я обнаружил тогда, когда столкнулся с архитектурой. Уметь правильно извильнуться, при этом еще и хвостом чпокнуть - это нужно постараться сделать, необосравшись.
Как сделать shared element transition, если я хочу не реплейснуть фрагмент, а добавить его поверх предыдущего? В транзакшене с .add() вместо .replace() shared element transition тупо не работает.
>>1189830 > джуна Но реальные джуны только в больших компаниях. В малых будешь делать все тоже самое, что и остальные, только платить будут меньше, не?
@ >-Что такое контекст? @ >-Ну, это контекст, андройдовская тема, ну понятно в общем @ >-Ну, для создания SquareImageView я ручками набирать не буду, а просто скопирую с заранее созданного приложения, а то хули мне, туториалисту
Больше не глядел. Такая параша, хоть и завидно, ибо чел на даунах бабло рубит.
Ебать, да почему я еще не отправил заявку преподавать для шаражников? Можно такую хуйню на уши вешать и деньги еще собирать.
Анон, что почитать/посмотреть по котлину, если ты ленивая пхп-макака? Или один хуй сначала смотреть на жабу? Хочу ради фана вкатиться за выходные, если зайдет, то покачусь уже за серьезные мануалы.
>>1189968 Какая компания? я получал 2900 когда жил в Эстонии, но это было 4 года назад, тогда считалось относительно много. сейчас мне бы это ни на что не хватило:(
>>1189948 > Или один хуй сначала смотреть на жабу? Cмотри сначала на жабу, ибо котлин от нее идет.
>Хочу ради фана вкатиться за выходные, если зайдет, то покачусь уже за серьезные мануалы. Андройд - это тебе не фан, и не игрушечки аля погонять жсончик туда сюда. Это ебанная нервотрепка и проектирования говна, за которое еще бить будут по ебалу. Когда я только начинал знакомится с ведройдом мне один челик писал про это все. Я его не слушал, ибо считал его конченным поехавшим мудаком. Сейчас уже понятно, почему он тогда отговаривал меня от этой ебанины. Даже эппл выглядит лучше. Я не пугаю тебя, просто это не пхп, и не верстка, чувак. Можешь курс юдасити пройти вводный, книжки устаревают спустя полгода, а другие видяшки говно от недоиндусов.
>>1189977 Спасибо за ответ. А если я попробую сделать тупо с анимацией увеличения картинки, а остальную хуйню приделаю через .add(), получится? Или даже не копать в эту сторону?
Чет грустно как-то. Столько лет пишу под ведроид, так и не научился писать прилаги "правильно". Всегда кучи говнокода аля телеграмм. Почему гугл не сделает туториал для тупых?
>>1189902 >хули мне, туториалисту проблема туториалистов, что они не последовательно доносят матчасть даже без базы. Не зная концепта паттернов - хуй проссышь че за Наблюдатель или Одиночка или Фабрика. А чтобы знать их, нужно врубаться в концепцию ООП. А чтобы в нее врубаться, нужно иметь представление о задачах, которые ей решаются. Тем более эти задачи надо порешать. Опять же опыт Хеллоуворлдов и велосипедов. Без одупления паттернов, невозможно ими пользоваться самому - так и будешь туторы перебирать ищя нужный рецепт. А без понимания аякса, структура проекта тоже не быстро станет привычной. Кароче учиться нужно было начинать с хтмл.
что-то вроде этого, но как именно? retrofitService.getSomeShit() .repeatWhen(observable -> observable .delay(DELAY, TimeUnit.SECONDS, true)) .subscribe();
>>1190214 Зачем читать книги, если боги уже дали видеокурсы от юдасити? Пробовал заниматься по head first, но как дело дошло до фрагментов вообще полная хуйня пошла, она кстати свежая, 17-года, август. Есть еще Murphy или как его там. 4000к страниц. Пихает все что есть и видел. Мне лично впадлу даже указателем пользоваться и пролистывать, а потом еще и прочитывать. Так что, видеокурс чекай, урод.
>>1189974 Может я неправильно перевел: >Regarding salary, we can offer you something from 3000 to 4300 EUR monthly net (after taxes, Estonian payroll) and this is negotiable.
>>1190464 Просто без задней мысли прямо сейчас берешь и садишься. Серьезно. Не сядешь сейчас - не сядешь никогда. Бросай все, ливай из катки в доте, вытаскивай на середине акта, включай комп и запускай студию.
>>1190496 >ысли прямо сейчас берешь и садишься. Серьезно. Не сядешь сейчас - не сядешь никогда. Бросай все, ливай из катки в доте, вытаскивай на середине акта, включай комп и запускай студию. Я так-то уже больше полгода сижу за андройдом.
Уважаемые аноны, хочу уметь в Java. Что скажете насчёт курсов geekbrains и skillbox ? Что стоит заранее подучить? Стоит ли это своих денег и смогут ли там чему нибудь научить? На какую работу можно вкатиться после курсов ? Вкатываюсь с 0
>>1190548 Если ты действительно вкатываешься с нуля, могу помогать отвечать на вопросы. Можешь телегу оставить А так, head first, сам по ней начинал. И видеокурсы могу сказать в телеге о них
>>1189857 так и есть делаю все сам, вплоть до архитектуры но ясен хрен делаю все с костылями >>1189897 стандартный набор DI2, немного RxJava, mvp, databinding ну и на котлине щас пишу
>>1190569 >стандартный набор DI2, немного RxJava, mvp, databinding ну и на котлине щас пишу А, ну я чуток тоже. Только нужно научиться юзать mvp + realm с moxy каким-нибудь.
Сап. Хочу допилить одно приложение с плеймаркета (приложение обновляет некоторые данные только по ручному запросу пользователя, хочу переделать в автоматический режим запросов)? Знания джавы базовые. Вопрос такой: это вообще осуществимо?
>>1187993 (OP) Можно как-то реализовать вспышку при экраном при фотографировании фронтальной камерой? Может есть готовы решения, не хочется велосипедить всякую фигню
>>1190943 Если есть исходники. Хотя если их нет, то вроде реально конвертнуть dex в jar, подключить к новому проекту, и дописать туда JobScheduler. Но ты не осилишь.
Может кто-то объяснить, почему такое различие в поведении? Если добавить кнопку оверлеем через метод addView() WindowManager'а в коде activity - кнопка пропадает с экрана, если свернуть activity. Но если этот же код использовать в Service - кнопка пропадать не будет. Как это на уровне WindowManager'а различие выглядит?
ну анон, похвастаюсь епта 3 недели. Джава с нуля. Фреймворки - rx, retrofit с нуля. Сервисы с нуля, андроид студия с нуля, вся хуйня с нуля, сервисы с нуля, нотификейшены с нуля. И вот, наконец-то готова. Прилажуха юзает полный рест апи. Чувствую себя великолепно. думал охуею
Андройданы, может кто-нибудь объяснить мне логику Android-приложений? Какого хуя приложение при повороте экрана перезапускается? В чём вообще логика такого дизайна?
>>1192041 А что, собственно, не так? Горизонтальная и портретные ориентации могут ну очень сильно отличаются по функционалу. Точнее будет сказать, что перезапускается View, а Activity является контроллером, который отслеживает события и дергает твою модель. А какие-то данные и важные штуки можно и нужно делать во фрагменте, который не перезапускается при смене ориентаций. Вот где настоящий индусский пиздец - так это в архитектуре. Нахуярили переплетенного говна с такой связанностью, что если следовать оф гайдам - будет гроб-гроб-кладбище-пидор, 0 тестируемости, все преимущества ООП вертели на хую. Гугл прям учит новичка кодить как пидорас, приучаться к дерьмовым привычкам. Впрочем, что с них взять - у них в какой класс не ткни, везде можно найти методы по 100 строк.
>>1192145 А еще при повороте экране не перезапускаются, например, экземпляр Application (считай что фон для всего приложения) и службы. Так что про все приложение неправильно тут говорить.
>>1192041 >В чём вообще логика такого дизайна? Когда андройд только создавался, телефоны были не мощные и поэтому разрабы жизненного цикла активити сделали пересоздание последнего с целью экономии ресурсов самой андройд системы.
Сейчас мобилки стали лучше и в нынешнем времени это нахуй никому не нужно, но гугол активно пытается настаивать о том, что лучше, а что нет. Сейчас они насильственно продвигают свой " liveData" и другие ширпотрепские штучки, надееясь привлечь компьюнити. но мы то знаем, что только square делает годные вещи, а гугол сосет хуй с фрагментами.
>>1191672 только конченый рак может подумать, что может ебануть форк и в два коммита забилдить проприетарник для интерпрайза. Блять, стэк, об который ты окончательно сломаешь свой мозг и самооценку прохавывается не сверху, а снизу. Ты должен быть готов ассемблить, отлаживать, да и тестить решения с полным пониманием процессов. За это и платят, еблан
Какая разница в андроиде между джуниором мидлом и синиором? Потому-что чуствую что весь этот движ разделения по опыту работы является ничем другим как попыткой продавить по зп.
Думаю на какой ультрабук переезжать. Вроде можно и линукс, характеристики у acer топ за 51к, но у него конкурент mac air 13.3 za 57к. Было бы неплохо и мак иметь, тип тыкать гейОсь иногда, но чувство обосраться со скоростью ИДЕ и нагруженностью задач меня останавливает это брать, ибо у нее характеристики по сравнению с асер просто днище. Эх.
Чому так гугол свое архитектурное говно продвигают? Пагинации, ливеДата, еще новенький товарищ Navigation, что можете сказать? Юзали? Или че юзаете вообще?
>>1192337 Moshi, Butterknife, Retrofit, Sqldelight, положил начало даггеру. Всякие ui штуки типа Mortar/Flow. Думаю продолжать мне не надо, ты все сам понял.
Читаю вот этот цикл статей о Dagger2. Казалось бы, все отлично, наконец-то можно уменьшать сильные и горизонтальные зависимости. И тут я вижу, что на уровне модулей ехала горизонтальная зависимость через горизонтальную зависимость. Столько кода и пердолева, чтобы получить те же яйца в другой профиль. Депра уже накатывает.
>>1193086 >ут я вижу, что на уровне модулей ехала горизонтальная зависимость через горизонтальную зависимость. Столько кода и пердолева, чтобы получить те же яйца в другой профиль. Депра уже накатывает. Читал тоже статьи эти чтобы вникнуться в даггер. В итоге как кроме чуточку понимания не продвинулся.
>>1193086 Ошибка №1: ты читаешь статью на русском, а не в оригинале. Ошибка №2: ты читаешь статью какого-то ебаната, который далает зависимости из таких вещей как File(подобные генерик типы никогда не должны быть на графе) и GsonConverterFactory(нужно только ретрофиту, спрашивается нахуя делать из этого зависимость?).
В целом пример использования даггера не очень удачный. У нас на проекте создание 90% зависимостей происходят через constructor injection. Модулей должно быть самый минимум.
>>1193714 >В целом пример использования даггера не очень удачный. У нас на проекте создание 90% зависимостей происходят через constructor injection. Модулей должно быть самый минимум. Ну и где эти туториалы правильные блять искать? даггер как темный лес просто.
>>1194008 Только писать и шишки набивать? Если присмотреться, большая часть статей касательно попыток сделать человеческое ООП в ведре - относительно свежие. В начале 2017 я по тем же самым запросам в гугле получал чуть больше, чем нихуя. Сейчас даже есть что почитать (и понять, как вредно и бессмысленно быть адептом-фанатиком). Даггер - просто инструмент, в принципе. Для попыток реализовать какие-то идеалы. Если не понятен даггер, то можно поковырять тот же SOLID, например. По нему куча статей. Потом уже будет понятно, как применить даггер с какой-то выгодой.
>>1187993 (OP) Давайте обсудим новые архитектурные компоненты? Вот например WorkManager, как вам? Сейчас прикручиваю возможность загрузки файлов с его помощью, и вдруг осознал две его проблемы: 1. Нельзя узнать промежуточный результат (прогресс загрузки) 2. Нельзя принять парселейбл в инпутДейта (которая еще и 10 кб ограничена). У меня вот вместе с загрузкой файла идет его некоторая метадата и приходится ее разбирать на примитивы и пёхать в инпутДейта
>>1187993 (OP) И еще, есть ли смысл перекатываться с рхДжавы на лайвДейту? Насколько я понимаю, основное преимущество liveData это привязаность к жизненому циклу, а помимио этого она во всем проигрывает rx
Чет я тупой. Помогите нубасу. Читаю http://startandroid.ru/ru/blog/493-mvp-dlja-nachinajuschih-bez-bibliotek-i-interfejsov.html Споткнулся на >Обратите внимание на методы презентера: attachView и detachView. Первый дает презентеру представление для работы, а второй говорит, что представление надо отпустить. Эти методы вызывает само представление. Первый метод - после своего создания, а второй - перед своим уничтожением. Иначе, если презентер будет держать ссылку на представление после его официального уничтожения, то может возникнуть утечка памяти.
Каков механизм утечки, если при уничтожении Activity уничтожится и ссылка на presenter, который хранит ссылку на эту активити? Этот презентер разве не должен тоже подчиститься сборщиком мусора, если на него нет ссылок?
>>1194655 Ты прав. аттачить и детачить view нужно по другой причине. Детачить чтоб переставать посылать во View данные из презентера после onPause, например
Планирую забивать на всю эту новомодную хрень от Гугла, как и забивал (livedata, view model). Вопрос , если решу в офис пойти, спрашивают ли это все на собеседованиях?
Объясните дауну, как юзать этот ебучий Camera2. Не надо нихуя записывать, тупо вывести на экран и иметь возможность загрузить в память текущий битмап. А то на замарин примеров хуй да нихуя, и в них ещё и абстракций нахуярили, как будто апи и без них не ебанутый алсо, что за мода в джаве - делать вложенные классы?
Сап, андроидач. Вопрос: как делается плавный переход изображения в Title Bar при скролле вниз? Такой UI-мув когда-то был в приложении VK. Или хотя бы как это гуглить?
Ананасы, помогите анимировать подключенный леяут. Есть разметка фрагмента с блоком <include.../>. В onCreateView фрагмента я сделал так: inflatedView.include_block.root_layout.animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left. Приложение нормально собирается, но вот после запуска вылетает с IllegalStateException (inflatedView.include_block.root_layout must not be null). Пробовал поместить это в onViewCreated, но безуспешно. Если же просто скопипастить разметку из подключаемого леяута, то все работает, но я бы не хотел костылить там, где можно без этого обойтись.
>>1196639 Хорошо. Я вчитался и понял. Есть Активити - она чекает Component чтобы тот дал ей требуемую зависимость, а последний в свою очередь чекает Modele где эта зависимость реализуется. Модел передает это в презентер, а презентер в компонент, а тот в активити.
>>1197070 Я спросил, по какому принципу работают такие программы. Я понимаю, что ты не знаешь этого, не стесняйся и не бомби, знания получают в процессе жизни, а не рождаются с ними, к тому же всего знать невозможно. Но мне интересно, что же я у тебя клянчу, я же не прошу подсказать мне такую программу, или выполнить какую-то работу для меня, и в каком же месте в шапке освещается ответ на мой вопрос, и какой тред соответствует моему вопросу, посвященному тонкостям работы системы андроид, лучше, чем этот, тред посвященный системе андроид? Сдается мне, вы читаете жопой, уважаемый, полагаю, и думаете ей же.
sup /pr помогите разобраться в структуре андроид проекта. Есть порт love2d для андроида через сдл и вот я не могу понять как это работает. Там 3 манифеста (если не больше), а насколько я всю эту тему накопал то одно приложение = один манифест, но тогда зачем там остальные манифесты, как всё это между собой связано? а там и сдл и сам лов, а потом к этому всему и само приложение
>>1197383 Можешь разбираться в этой поеботе сам, кек. В андройд приложении есть один манифест, точно так же, как у человека есть одно сердце.
А вот эти никому не нужные фреймворки на слабом комьюнити никому не нужны. Можешь смело перекатываться на юнити или godot, я на последнем сижу и все нормально.
Анон, помоги разобраться. У меня задача: написать виджет, экземпляры которого можно настраивать индивидуально. Сейчас же у меня изменение настроек любого виджета сопровождается их применением ко всем экземплярам, но это и не удивительно, ведь я вызываю метод onUpdate вручную, тем самым вызываю в цикле для каждого remoteViews метод setInt. В метод onReceive прилетают id цветов фона и текста. Как можно переписать код так, чтобы работало, как было задумано? Уже голову сломал.
>>1197407 >- доктор, помогите, у меня нога болит. >- можешь разбираться со своей никому не нужной ногой сам, потому что здесь тебе не больница, а ГЕЙ КЛУБ.
>>1197639 Если у тебя один модуль, то в принципе никакого смысла. Все равно, у тебя кроме зависимостей нихуя в градле нет. А вот если модулей много, то удобно так разом подключать всю хуйню. А вот кастомные градл таски выносить в отдельный файл удобно.
Ребята помогите. Написал приложение под андроид есть большая проблема с респонсив. Андроид смартфона у меня нет, тестирую на планшете и эмуляторе. В тестовой среде все работает, но на других девайсах различные проблемы с интерфейсом. Одна из проблем заключается в следующем: Есть FAB(floating action bar) при клике на него необходимо на пол-экрана показать фрагмент с фотографиями. Мне пришлось в res/values под каждое устройство прописать margin-top. Правильно ли я делаю или же есть простой способ решить подобные проблемы(Бест практис). Спасибо.
>>1197981 Ну так-то в dimens прописывают отступы в нормальных практиках.
>под каждое устройство прописать margin-top. Вот это не нормально. И где ты писал под каждое устройство? Это ж ебнуться можно, сколько андройдов говноедов на рынке существуют.
Чики, двощ. Пытаюсь написать свой будильник с блекджеком и шлюхами. Одной из фич должна быть защита от отключения будильника, если юзер не выполнил какие-нибудь действия (не ввел капчу, наеример). То естл активити сркботавшего будильника должна перезапускаться, если её скрыть или закрыть. Как такое лучше всего реализовать? Сейчас я реализовал службу, которая запускается AlarmManager'ом, и, в свою очередь, запускает активити будильника. Но что-то никак не соображу, как реализовать слежение за тем, запущена нужная активити или нет?
>>1198037 Я имел ввиду под каждое разрешение экрана ), но проблема опять таки в том, что насколько я понял есть нестандартные разрешения для которых нужно отдельно писать. Как с этим быть ?
>>1198404 Нихуя не понял. Либо ты юзаешь ConstraintLayout, либо хуяришь Relative с маргин. Все! Что ты там блять собрался дрочить с нестандартными решениями не понятно.
>>1198590 Да нет, не в этом дело. Очень много реп просмотрел, порядком 30 штук ради поиска даггера. + еще кучу статей. Очень много написано непонятным языком, пришлось читать лекцию стартандройда первую и смотреть видео одно с реддита. Так бы не понял на самом базовом уровне. Даже подумывал купить эти 4 урока по даггеру от стартпидораса, но пока я остановился. Сейчас нужно базовые проектики поделать для закрепления.
Здравствуйте. прошу помощи в сложном для меня выборе.
Я студент начальных курсов университета, изучаю по учебному плану C# (учить еще 3 года). Есть желание разрабатывать приложения под мобильные системы, в приоритете под Android, но в будущем плане и под iOS. Суть вопроса в том, что везде мне советуют выучить язык Java и разрабатывать приложения в Android Studio, но так же есть инструменты для разработки приложений на C# - Xamarin. Так вот, стоит ли мне начинать с нуля изучения языка Java вместе с Android Studio, параллельно с C#, так как С# я все равно буду учить в университете, или все же пока не смотреть в сторону Java и как следует учить C#. Наверное так же мне следует учитывать и тот факт что, например, вакансий на работу для Java-разработчиков со знанием Android Studio явно больше чем С# с Xamarin и т.п. аспекты. Спасибо за ваше мнение.
>>1199156 >Xamarin Беги от этой хуйни подальше. Документации нет, примеров кода нет, сообщество предлагает писать на .Forms с использованием кучи плагинов.
>>1199156 Во-первых, по гуглению в hh.ru android developer по стране 2к вакансий. По хамарину 132.
Во-вторых, мнение - всего лишь мнение. Так же можно учить С Шарфик и работать в НЕТ, параллельно задрачивая хамарин. Чем не один из вариантов?
В-третьих, я не знаю как там в хамарине, но в андройде тебе точно придется сидеть не день, чтобы понять как что-то работает. По своему опыту, либо я не умный и не умею схватывать на лету
В-четвертых, единственное, что я тебе могу предложить, так это написать приложение легкое на андройд студио и на хамарине. Это может быть тривиальный калькулятор, попробуй. А потом сравни что да как. Если понравится хамарин, то гугли как получать жсоны из интернета и отображать в мобилку - если дело окажется понятным и все пойдет, то почему бы не писать на хамарине? Возьмешь как хобби, а потом с опытом можно и что-то придумать.
Посткомент: Конечно, я могу написать, что нативная разработка более привлекательна, и так нужно написать, но мне кажется, нужно попробовать то и другое и уже под себя определять, нравится ли тебе это или нет.
>>1199156 пару месяцев назад понадобилась прилажуха для личных нужд. Думал тоже на ксамарине запилить и даже начал, но... лучше это не делать. Знание шарпа - это одно. Другое дело, что миллиард сопутствующих настроек обрушат твою и без того низкую самооценку. Через несколько дней плюнул, установил андроид студио, тоже порядком охуел от стека фреймворков. Подтянул заодно джаву и сервурную часть. И все равно, думаю, отделатлся легким испугом спроть утопической порнографии ксамарина
>>1199272 >не заметишь, как "долбоев" - станет твоим новым именем Твое мнение всрато и так же отвратильно, как и ты сам. Если человек не может определиться с чем-то, пусть пробует писать одно и тоже там и здесь. Проанализирует количество вопросов и ответов на стеке и так далее. Писать можно на чем угодно, другой вопрос - для каких нужд и с каким качеством. Человек должен анализировать выбор и сравнивать продукты, а не зависить от мнение очередного долбоебика, который появляется раз в 10 лет чтобы воспроизвести очередной пук.
Какой же андроид кал, сука. Как он меня заебал своими лагами. Ну как вот можно сделать такое говно, в котором службы гуглоплея выжирают 200 мегабайт оперативки? Вместе со 150 мегабайт настроек? Что вот там можно нахуярить на такие объемы? Прибавим к этому еще вшитое говно от производителя, которое выжрет еще сотку. С гугломартыханами только негры Сбербанка сравниться могут, которые на своем говне выжирают 100. Ехал kswap0 через kswap0 с зависаниями на минуту.
И как весело читать на фоне этого пиздеца статьи гугложирух, что автокилеры это хуйня без задач, потому что всем все платится все само чистится. Чистится, да. Кроме их собственной хуйни.
>>1199651 1200 мегабайт сжирается только на неотключаемую хуйню из коробки. Чтобы это говно ПРОСТО работало. Оставляя АЖ 300-400 мег, которых будет ебать kswap0, стоит только браузер с котиками на одной вкладке запустить.
При щелчке на ссылке на видео андроид предлагает открыть октрыть ее во внешнем видеоплеере. Программа предлагает себя в качестве плеера и делает get http://addr?param=%url%. Эта ссылка должна быть конфигурируема. Нужно всё это для открытия видео на аппаратном плеере.
>>1199829 зачем ты его посылаешь - правильно говорит, погляди на требования к разработке. пока не соберешь годно-пеку - ничего хорошего не жди. Да и не дорого же. А то, что просят не ныть в треде - правильно
>>1199843 за бабки изи, но непонятно, почему сам не сделаешь? если ты сам разраб, то тебе есть смысл обучаться и набирать опыт. Или что там творится, вообще завал, а ты лопату дома забыл?
>>1199651 тоже пичот, что мой девайс c quad core, 3gb ram лагает и тормозит (особенно гугл плей, это пздц, список приложений проскролить не может). я бы понял, если бы гугл делал это специально, чтобы покупали новые девайсы, но гуглу по идее похуй ? тупые гугл студенты-индусы, зато небось спикок переворачивают с закрытыми глазами
>>1199838 >пока не соберешь годно-пеку - ничего хорошего не жди. Вот челик этот выше говорит тебе мудило >>1199829 У меня бы процессор intel core 2 duo с 4гб оперативки, у меня тоже бомбило почему у меня все лагает. В итоге в январе 2017 купил кудахтер с ай 3 6100 и нормально дело пошло. Сейчас покупаю ультрабук за 55к. Ибо только андройд помог встать на ноги
>>1199883 ты - это я. Тоже самое, был дуалкор с 4 гигами. Аутировал. Год назад взялся за ум, собрал с али за 10К с i5 и 8 гигами. Сейчас бы смог дешевле и мощнее. Однако уже не актуально, уже полутоп. и присматриваю юзаный titan, для сами понимаете чего челик
>>1199883 > intel core 2 duo с 4гб оперативки О, как у меня, только у меня коре дуо. Но почему разработка для маленьких устройств лагает больше чем разработка жырного ынтерпрайза?
>>1200160 35€? Все равно жирновато имхо. Прога реально примитивная. Ну может еще надо распарсить xml ответа и считать результат и код ошибки. В любом случае, сначала придётся предложить владельцам этого медиаплеера скинуться. Таки где лучше исполнителя на такое искать? И как лучше такое оплачивать? Скидываться на исполнителя или пусть делает программу платной?
>>1200168 >Таки где лучше исполнителя на такое искать? И как лучше такое оплачивать? Скидываться на исполнителя или пусть делает программу платной? Тебе сказали, вася блять. Любое приложение вообще даже примитивное, 10к+ я считаю нужно, и то, на минималках. Не нравится - иди нахуй учи этот андройд и фрейморки сам. Вангую, что ты сольешься на начальном этапе сконструировать аналокалькулятор
>>1199818 Где ты видел смартфоны с 8 гигами оперативки на борту? Я вообще про сами устройства, а не пеку. Нахер заморачиваться оптимизацией, если даже сами гугломартыханы этого не делают? Можешь хоть заоптимизироваться - все равно это будет каплей в море на фоне гуглоговна на 300 мег, жрущего проц на 100%.
>>1200364 Я получаю в разы меньше их индусов, но почему-то именно у корпорации добра, которая держит весь рынок за яйца со сверхдоходами - висят в оперативке хуйни на почти пол гига, которые явно нихера полезного не делают. Отсюда же и жалобы на хлипкие батареи и жизнь у розетки. Потому что всякие kswap0 начинают ебать проц на 100%, когда оперативки становится около 100. Просто потому что ебаная индусская обезьяна с жирухой не могут оптимизировать свое говно. Ладно бы еще можно было докупить оперативку, как на пеку. Там это еще простительно, как всякие хипстеры умудряются софт с теми же фичами 2012 года раздувать в разы по занимаемому в оперативке объему. Но смартфоны-то с 2012 приросли на сраный гиг всего. И вот такое. Пиздец.
>>1200366 У меня 2 гига оперативки на смарте сейчас. Я пользуюсь одними же приложениями уже который год. И если в 2012 у меня было постоянно около 200 мег свободными на смартфоне с 1 гигом - у меня сейчас свободно всего 300 с хвостиком. И так же лагает из-за kswap0. Что за ебаная математика? Кто спиздил оставшееся?
>>1200369 Сразу вспоминается их сраный эмулятор. Им же невозможно пользоваться без слез. А если подключить HAXM - у меня corei5 разогнанный намертво начинает виснуть, все начинает лагать по минуте, кроме эмулятора. При том, что я могу без проблем хоть 5 виртуалок линуса запустить.
Заметил в ласт время, что, при наборе xml или еще чего-нибудь, у меня непроизвольным образом рефрешаются значки классов как на пикриле. Что это может быть? Т.е. тупо набираю <RecyclerView и они хуярят так.
>>1200766 Блять пиздец говно охуеваю. Такое говно андройд студио, нахуй я вообще связался с этим блядским андройдом. Лучше бы на руби ушел, сука, как же он меня вымораживает. Блядская залупа.
Анон, как сделать вечно работающее в фоне приложение? Допустим, нужно мониторить изменение каких-либо параметров или включение/отключение определенной функции. Пробовал пилить как Service — реагирует ровно 2 раза после закрытия и всё. Скорее, даже в течение нескольких секунд.
>>1201144 Загуглил — создал, Notification висит, но все действия происходят только при первом включении. Что, без нажатия кнопок эта залупа работать сама не будет?
подскажите, есть ли хоть одна причина юзать ViewModel из новой гугл либы (кроме того что viewmodel переживает поворот?) Я читаю мануал, и просто не могу понять, ведь давно уже все юзают mpv, при повороте presenter достает кеш из бд, зачем, вот зачем нужна эта liveData и ViewModel ?
>>1201370 Есть два стула, MVP и MVVM. Решай сам с чем пердолиться.
liveData - мини обсервайбл, который чекает состояние активити например. Читай стартАндройд, мужик там по архитектурным компонентам сейчас 20+ уроков свежих написал.
>>1201581 Почему блять до сих пор нет нормальных пояснений как я должен строить эту ебаную архитектуру? Я просто хочу блять ебнуть - MODEL PRESENTER VIEW и никаких мозготрахов. ГДЕ МНЕ ВЗЯТЬ ПРОСТОЙ ПРИМЕР для ПОНИМАНИЯ. Все, на что я натыкаюсь - сделано лишь для того, чтобы все посмотрели на это челика и сказали: УХ Ты какой ОН Сука крутой блять, пишет столько непонятной хуйни а она еще и работает. Ебнутые пидорашки.
>>1201595 Любые действия в приложении - юзкейзы работающие с бд или сетью. С ними работает только презентер. Вьюха должна быть тупой как пробка, представь что твоя активити не умнее текствьюхи.
>>1201595 >Ебнутые пидорашки. Ебнутое компьюнити блять. Все друг другу лижут пезду и трахаются в жопу, меряясь сколько много строчек они написали в своем приложении с одной кнопкой. Почему я вынужден ковырять ВЕСЬ гитхаб в поисках простых решений? Почему я должен тратить уйму времени на то, чтобы пытаться понять огромный код КИТАЙСКИХ пидарасов, где они используют те технологии, которые я хочу изучить? Почему сука один ПИДОРАШКА в медиуме пишет пост с заголовком - НУ СЕЙЧАС МЫ ИЗУЧИМ НА ПРОСТОМ ПРИМЕРЕ ДАГГЕР 2 А потом, когда я сука открыл его код, в надежде изучить БЕСПЛАТНЫЕ ЗНАНИЯ, он СУКА, ВНИМАНИЕ, ИСПОЛЬЗУЕТ ДОХУЯ Аннотаций, когда на деле для новичка достаточно ебнуть @Module, @Component, @Inject, @Singleton. Он сука еще 10+ хуярит. Как же у меня бомбануло тогда знатно.
>>1201596 Я знаю это, мне нужен просто пример. После отчаяния, я начал делать собственный, и тут мне опять ебнули по ебалу с ошибкой:
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
>>1201600 >нужен просто пример. Т.е. пример с: RxJava2, Retrofit2, Dagger2, MVP, и бд на выбор, я взял пока Realm. В итоге - кетайские репы, которые еще и не собираются, потому что: you missing api key, please лососнице-ка, уважаемый.
>>1201607 >RxJava2, Retrofit2, Dagger2, MVP Блять, я начал разрабатывать под андройд 29 сентября, и когда читаю посты про эти вкаты с 4-5 месяцев, я просто охуеваю от всех.
>>1201613 >https://github.com/googlesamples/android-architecture Гугловская параша. Можно же создать примеры попроще, это же как те кетайские репы с 500 звезд и непонятной оромной хуйни. Помню один раз я действительно тупо сел и потратил 2 дня на изучение какого-то китаезы. В целом, по нынешним ощущениям, у него было неплохо, но я бы запушил некоторые изменения, жалко не помню название.
>>1201624 А ты попробуй не весь набор сразу. В iOS таже хуйня - видишь хорошую штуку но она одна в поле и с другими никто ее не связывает, стыкуюй как хочешь.
>>1201642 >Я хуй знает куда проще. Что? Базовый пример для понимания можно уместить куда проще блять.
>>1201633 >А ты попробуй не весь набор сразу. Зачем? Я попробовал даггер2 - понял, рх и ретрофит давно знал. Реилм тоже. Пытаюсь скомпоновать это все с MVP - нихуя. Блять.
>>1201642 Вот базовый пикрил первый-пример, который юзает весь стек технологий мною перечисленный. И наконец-то он заработал.
В общем, расскажу о теме, которая меня 4 месяца интересует: не знаю почему, но один китаец при работа с Realm использовал конструкцию как на 2-ом пикриле, а юзается она как на 3 и 4. Я ее вычитал и начал применять. Под сомнениями, я попытался использовать простой конструктор с полями, но он почему-то не работал с Realm, т.е. save производил в бд, но вытаскивать значения так и не получилось.
И мне бы еще хотелось узнать о вот этих уничтожениях презентара, и как это фикситься. Думаю на реддите нужно просить коде ревью после завершения апп.
>>1201661 > И мне бы еще хотелось узнать о вот этих уничтожениях презентара, и как это фикситься Moxy, либо свой такой же велосипед. + никто не запрещает использовать гугловую ViewModel как презентер, она тебя никак не ограничивает
>>1201600 У меня такое в Xamarin.Android было, лол. Вот есь гугловский пример с использованием Camera2. Ну, не самая простая хуйня. Чоткие посоны из Xamarin подумали, что он хуйня и слишком простой и в своём Camera2BasicExample помимо того, что было в гугловском примере, нахуярили фрагмент, ещё один активити, а заодно перегрузили TextrueView. Всё это в приложении, которое делает фотографию и сохраняет её.
Кстати, а вот скажите, а в андроиде есть какой-нибудь ивент типа OnPermissionsChange - который бы триггерился при изменении разрешений для приложения?
>>1201681 Возникает ситуация когда тебе нужен пермишен: 1) Проверяешь все ли пермишены есть 2) Если все то делаешь то что надо, иначе пункт 3 3) Проверяешь нужно ли юзеру объяснять зачем это тебе (система хранит запрашивал ли ты пермишены) 4) Реквестишь пермишены с кодом, по которому потом поймешь что надо делать. Может случится так что юзер выбрал варик мол "отъебись, не дам я тебе контактов", тогда сразу сработает режект в следующем пункте 4) Ловишь onPermissionResult, смотришь все ли разрешили и какое действие делали - повторяешь его вызов, если чего-то не хватает поясняешь юзеру что кина не будет.
>>1201691 Падажжи. А что происходит между запросом пермишена и onPermissionResult? Например, мне нужна камера, я делаю запрос на неё, а дальше что? Я же не могу остановить исполнение программы до того, как onPermissionResult стриггерится.
>>1201701 Программа не отсанавливается, но на форгрануд вылеезет диалог с запросом пермишена, который вроде как даже в другом процессе, а как кнопку в нем выберут так и тебе управление вернется.
>>1201680 >Хороший пример, нечего сказать. Мне нужно было базовое понимание, коих в других статей нет.
>>1201703 >Можешь кинуть проект? Или просто расскажи в двух словах, что он у тебя делает. Просто загружаю массив жсон через интернет с кучей хуев библиотек важных. Это фришное гибли апи. Брал отсюда: https://github.com/toddmotto/public-apis
>>1201642 бомбит, от того, что примеры такие простые. Где я могу посмотреть как viewModel используется в связке с onSaveInstanceState ? Где пример хваленой single activity app? где будет больше 2 экрана на приложение? Почему нельзя запилить один пример, где будут использоваться все либы сразу? Единственный real life пример это kikstarter, и то они там свой mvp изобрели
>>1201717 >Где я могу посмотреть как viewModel используется в связке с onSaveInstanceState ? >Где пример хваленой single activity app? где будет больше 2 экрана на приложение? >Почему нельзя запилить один пример, где будут использоваться все либы сразу? >Единственный real life пример это kikstarter, и то они там свой mvp изобрели Создай свои. Глядишь соберешь пару примеров и выпустишь сайт с нормальным контентом для двачеров.
>>1197383 я что-то не пойму, тут настолько помойка что никто не знает о такой возможности и даже не пытается узнать?.... Тематическая доска, какой же это всё кал. Какие-то мимокрокодилы обсуждают далекие темы и стоят из себя знатоков, а по факту 0
>>1201708 Да, но как мне не закрашить программу попыткой обращения к функционалу, на который нет пермишена? Например, мне надо сделать Camera.Open() Перед этим я прошу пермишен на камеру Но приложение крашится, потому что камера - null, т.к. пермишена на использование камеры не было.
>>1201823 Делаешь два метода, onAccessGranted и onAccessDenied, и пихаешь в onRequestPermissionResult. Если юзер поставил галочку типа никогда не дам доступ к камере, и диалог не выскочит, то у тебя все равно вызовется onRequest..., а оттуда уже onAccessDenied.
>>1201823 Ты сначала проверяешь пермишен, а употом камеру создаешь/используешь ебана. >>1201759 Ты действительно думаешь кому-то всрался твой недофреймворк? Почему бы тебе не почитать его документацию/туториал? У приложения один манифест, но он включает в себя другие манифесты (манифесты бибилотек) на стадии сборки.
Ответы в стиле: ну на иос же разрабы не заморачиваются, эплодауны уже привыкли, что при переключении приложений ты оказываешься на стартовом экране, а не где был до этого, вот и на андроиде делайте также.
>>1201840 так в этом и был вопрос, дурашка, а ты прицепился к фреймворку. Один из кусков - это сдл например, ты его тоже назовешь недолибой или что там у тебя с головой не так?...
>>1201875 Это у тебя с головой не так. Тебе ответили давно здесь >>1197385 А ты продолжаешь доебывать своей поеботой. 1. Это сука андройд 2. Ты делаешь геймдев блять. Нахуй ты сюда приперся со своим фреймворком, который здесь никто не изучает блять? Это твои проблемы, и спрашивай на форуме твоей библиотеке, или откуда она там была высрана.
Здесь чисто клиент-серверные апп, немножко галлерей, и сама архитектура андройда. По архитектуре тебе и ответили 2 раза. Выебывай.
Сколько я не делал приложений, я до сих пор не пониманию как работает интерфейс OnItemClickListener, который мы создаем для обработки нажатия в адаптере.
Мы его тупо создали, потом в нашем адаптере объявляем его и делаем сеттер:
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.....) и дело пошло.
Но я не понимаю как это работает. Я выучил до автоматизма, но хочу разобраться. Объясните подробней этот момент по деталям.
>>1201876 да ты опять за свое, мудила? причем тут ферймворк, дурачек. Я спрашивал, как возможно в приложении много манифестов, и привел пример где я это видел, т.к. во всех туториалах написано что одно приложение = 1 манифест. Это вопрос как раз целиком и полностью относится к архитектуре андроида, и никак не относится к фреймоврку, а ты доебался
>>1201884 Ну смотри: Мы объявили в активити adapter = new ...., потом пишем adapter.setOn(new On...) Здесь я так полагаю мы создаем интерфейс, установили это в сеттере, значит он теперь есть в адаптере, потом во ViewHolder мы создаем скорее всего новый обработчик нажатия для вьюшки, и в этом обработчике мы пишем наш интерфейс, который обрабатывает еще один метод?
Господа, не подскажете где мне найти код на java с примером MVVM + Retrofit + Room + Data bindings чтобы посмотреть как все это должно выглядеть в продакшене? Уже много репозиториев перерыл, из того что близко нашел только 1 проект: https://github.com/iammert/AndroidArchitecture Но он не грузит данные при запуске(нужен API key) и там запутанное нагромождение кода в месте для обработки данных из сети и складывании их в базу данных.
>>1201910 >У приложения один манифест, но он включает в себя другие манифесты (манифесты бибилотек) на стадии сборки. Долбоебина ты этакая, то же самое написано.
>>1201912 все это мифы. Нет в продакшене приложения, которое использует все модные либы сразу. Увы, такова реальность андроид разработки. Гуру-лицемеры выступают на конференциях, вешая лапшу, какую крутую архитектуру они придумали, какую крутую либу написали, но все их куски кода - оторванны от реальности, все примеры это hello-world-ы и простейшие todo-app. Каждый как может набивает себе цену, притворяясь что знает как на "самом" деле разрабатывать под адроид. Да чего уж там, сами гугловцы не понимают как писать аппы "правильно". Посмотри их открытый код от приложений IO (iosched). это дикий ужас. Так что удачи в поисках розового слона.
>>1201921 ... ты действительно дурачек, если не видишь в этом отличия. Настолько тупой что пиздец, откуда же вы такие вылазите. Нормальный человек бы ответил - Да может быть несколько манифестов в таком и таком-то случае, но получится все равно один манифест по тому-то. Посмотри вот тут и вот тут. Всё, понимаешь, вот так это работает, в остальных случаях ты либо не знаешь либо полный дегенерат
>>1201915 >Анон привет, когда стоит использовать hardware acceleration и software ? на тестовом девайсе + эмулятор все норм, но юзеры некоторые жалуются на лаги. Что это такое?
>>1187993 (OP) Что такое контекст и кому верить? > 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.
>>1202066 Какой же ты занудный. Понятное дело что я не первый кто об этом спрашивает, и раз я занимаюсь всем этим длом то могу читать доки на английском, НО русский текст читать все таки быстрее. То что где-то там кто-то задавал меня в душе не ебет, я спрашиваю сейчас в реал тайме, потому что за два года все уже давно поменялось. Знаешь ресурс кинь ссылку или скажи где, не знаешь - зачем вылазишь. На хубре уже читал, там слишком поверхностно, о таких вещах как несколько манифестов и прочей срани не упоминается
>>1202354 так блэт, кто там юзает viewmodel, можно ли view пробрасывать во viewmodel, как вообще viewmodel может рулить view, только через livedata что-ли ?
Кто-нибудь работал с NFC? Как оно по ощущениям? Дали тестовое, где нужно прикладывать мобилку к карточке компании и потом отправлять на сервер измененную информацию, например, со статуса нет изменить на статус да.
Пользователь работает в ЮИ потоке, а если тебе нужно данные откуда-то качать секунд 5, он же не будет эти 5 секунд ждать в основном потоке, когда эта информация скачается и отобразится. Для этого придумали другие потоки, которые это делают, чтобы ЮИ не зависало, а на ЮИ кладут progressBar, который крутится 5 секунд и только потом данные отображаются.
>>1202626 вот это я и не могу понять, говорят что пользователь работает в ЮИ потоке, но мы наоборот запускаем то что должно завесить приложение как раз таки в ЮТ потоке. Вот на примере рекламы, мы говорим ЮИ загружай рекламу, но по описанию юзер как раз и работает в ЮИ, так что все таки я не правильно понял?
>>1202628 >но мы наоборот запускаем то что должно завесить приложение как раз таки в ЮТ потоке. Вот на примере рекламы, мы говорим ЮИ загружай рекламу, но по описанию юзер как раз и работает в ЮИ, так что все таки я не правильно понял? Что блять? Почитай лучше более вдумчиво статьи по этой теме. Как поймешь, прискачешь сюда и распиши ответ на свой вопрос.
>>1202631 Насколько я понял 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 то в нем и будет выполнятся. Вот это меня и запутало.
Мне кажется я начинаю понимать Моху и пропускать через себя MVP. Осталось немножко разобраться со Скоупами в даггере, т.к. я просто юзаю 4 аннотации пока для простых примеров и все, судя по пикрилу, текст анончика которого я сохранил уже не помню когда, работа мне обеспечена.
Я то и так скоро уже наверное пойду работать, только на планируемой этой работе я буду один андройд девелоперс, делать внутри компании которая нефтегазовая приложение, которое завязано на Microsoft API. Там та еще поебота конечно же.
Добрый анон помоги. сутки ебусь c календарем. нужен текущий день недели. пишу именно a = cal.get(Calendar.DAY_OF_WEEK) и один хуй пизда, возвращает все равно какое-то странное число. вот сейчас уже среда, по идее должен вернуть 2 но он сука почему то возвращает 4. что делать анон?
Нахожу некоторые примеры, которые юзают cache из ретрофита? Зачем нужен кеш, если при запросе с сервера мы помещаем данные в БД, и потом извлекаем их, показывая на экран пользователя?
>>1203880 Что бы не писать в БД. Некоторые данные нет смысла харнаить в бд, а еще если бекендщик вменяемый он может настроить хедеры так что все еще и своевременно обновляется. Например список категорий действителен час, и каждый (если будет запрос) обязательно скачивается с сервера заново. Но при этом тебе самому не надо кодить эту логику.
>>1203859 >>1203858 от души анон. кстати, случайно никто не знает как можно динамическое расположение вкладок сделать в зависимости от дня недели. например сегодня четверг значит эта вкладка в центре, следующие три пт сб вс, а предыдущие три ср вт пн
>>1204402 > случайно никто не знает как можно динамическое расположение вкладок сделать в зависимости от дня недели. Либы чекай на гитхабе. Там таких полно.
Что за пидарас. Весь код написал, а код Model не написал. Какого хуя я должен знать что отсылает Model, если на втором пикриле он еще какой-то каллбек хуярит. Блять, что за имбицилы. 0 нормально-доступных по максимуму уроков.
>>1204745 попробовал livedata - говно какое-то, какая-то псевдо rx хрень, ни на поток кинуть, ни мерж сделать, только что отписывается за тебе. пересел обратно на BehaviorSubject
>>1204966 А кто сказал, что нужно поступать именно так? Если в целом реализация укладывается в какой-либо паттерн, то и хуй с ним. И задавать такие вопросы тут не стоит, говном обольют. Лучше задай этот вопрос гуглу пользы будет больше.
>>1204966 Вьюшка же понятия не имеет, что там дальше твориться, ей главное тупо отображать данные, на которые она подписана. А вьюмоделе похуй, что во вьюшке. Ему лишь бы отобразить эти данные.
Сколько я не смотрел реп, везде ебанутые люди, по разному понимают. Почему нельзя просто, ясно, за 1 раз сделать один пример с ресуклер вью, где ПРОСТО И ТУПО мы загружаем данные из сети, хуярим в бд, отображаем их. - Я это пытался сделать на MVP, но я встретил хуец с обновлением данных, пока идет асинхронная загрузка данных.
Я начал смотреть репы, как же все-таки люди обрабатывают это - и тупо потратил около полдня на это дело. Конечно у китайцев там все было, но они нахуй понасоздавали огромные приложения с абстракщиной и так далее, хуй разберешься за раз Вообщем, я так и не нашел грамотного решения моей проблемы, зато я запросто так немножко разобрался в Моху, соснув хуйца в общей архитектуре MVP.
Теперь на очереди MVVM. Здесь я не сосну хуйца, ибо я так понял здесь LiveData, с помощью которого я смогу чекать - если list.size==0 - то progressBar.setVisible(visible) иначе отобрази данные.
>>1204973 >И задавать такие вопросы тут не стоит, говном обольют. Лучше задай этот вопрос гуглу пользы будет больше В интернете столько говна, что я уже сам блять говном стал.
Хотя, я сейчас нашел примеры Realm. У меня появился вопрос касательно лучшей имплементации одной фигни, и поэтому пришлось покопаться досконально в примерах реилма. Нашел там так же пример на подобии скостылированный под MVP. Что-то вроде пикрила. Там так же юзаются данные из интернета, мне кажется это и есть ответ на мой вопрос. Но один хуй я уже блять начал MVVM хуярить. Посмотрим что выйдет.
>>1205259 >Что тебе мешает в MVP передавать в качестве аргумента лист, чекать его размер и отображать то что нужно в зависимости от результата? Какой ты умный. Будто я не додумался блять. У меня проблема В ТОМ, ЧТО Я загружаю данные асинхронно, и СРАЗУ же отображаю их. Нужно подписываться по эти изменения, как говорит ЭпикПанда. Я нашел что-то похожее на примерах реилма. Разберу их примерчик и может что-нить да получится.>>1205268
>Чувак, если у тебя таки проблемы со стейтом, глянь MVI. Моху и так далее - это всего лишь удобная обертка над сохранением презентера, где в MVVM это делается лишь одной строчкой - ViewStatePresenters.of(this)get(...) что-то вроде того. Разве что он отображает ласт состояние, а Моху может еще и сохранять команды предыдущие.
>>1205292 Хорошо мой сладкий) Пользователю показывается View, презентер чекается и привязывается - выполняет команду загрузку данных внутри себя - идем в репозиторий - выполняем эту загрузку асинхронно. Следующая команда в презентере - отобразить эти данные. Следовательно, мы получаем лист = 0, при перевороте мы получаем нормальный лист, потому что за это время данные уже загрузились.
Что ты предлагаешь сделать?)
Ответ: нормальное решение - это повесить коллбек на реилм, чтобы дернуть презентер и сказать ему о том, что данные загрузились в БД, и пусть он дергает их из БД и отображает во вью. Что я попытался сделать с подпиской, что и не получилось.
>>1205370 А в чем, собственно, проблема? Релм, по-твоему, для идиотов адаптеры писал? И, кстати, вьюха не знает о реализации, она просто получает апдейты в обход твоего презентера. А вообще, если уж ты метакодер дохуя - передавай адаптер из презентера хотя это абсолютно лишнее и ухудшает тестируемость.
>>1205407 Не, никакого адаптера из презентера. Презентер в душе не ебет что у тебя есть какие-то адаптеры для ведра, какие-то релмы-хуелмы. Они делали его для тех кто хуяк-хуяк активти, хуяк-хуяк фрагмент. Можно конечно инжектить адаптер из какой-нибудь компоненты, но мне вообще релм не нравится.
>>1205412 Да мне он так-то тоже не нравится, особенно его логика с (un)managed объектами и отсутствия нормального дебаггинга. Тем более гугл рум завез, сейчас вот его ковыряю. Выглядит поинтереснее, чем релм, хотя бы тем, что там маппинги можно дата-классами делать в релме нельзя. >>1205407 - кун
Есть одно активити и два фрагмента используются во вьюпейджере. Нормально же сделать их в даггере с каким нибудь своим скоупом что бы они при повороте экрана не создавались заново? Сейчас они без скоупа и каждый раз создаются заново и биндятся в сет, который инджектится в адаптер который инджектится в активити.
>>1205897 В моем случае это очень удобно получилось, я всегда могу добавить новые фрагменты в модуле и не лазать лишний раз по адаптерам\хуяптерам. Но т.к. я нуб, может я делаю что то не так. Это плохая практика инжектить адаптеры\фрагменты?
Создал простое приложения на вставку и удаление объекта через editText и подключил реалм, чтобы хранить все это дело. Очистил всю БД, закрыл приложение, но почему оно занимает место в памяти >10 МБ? Почему так? Там же максимум +5 МБ должно быть.
Может кто-нибудь мне пояснить за паттерн Repository? Как выглядит его современная реализация? Есть какой-нибудь хороший пример на гитхабе со всякими новомодными библиотеками и, желательно, с кэшированием?
потсоны, есть такая проблема: делаю приложение для чтения rss ленты, собсна есть некий план как это все реализовать , но одна загвоздка таки существует. Заключается она в том , что я не особо ебу как мне связать данные в списке с данными в бд. То есть допустим у меня есть 5 новостей и у них есть 5 разных айдишников , я хочу загнать эти 5 новостей в recycler view и также хочу , чтобы при удалении какой-либо из новостей из recycler`а у меня эта же новость удалялась и из бд , для этого я планирую юзать некие идентификаторы , которые генерю сам и потом создаю какой-нибудь hashmap и связываю id из бд с аналогом id recycler view, а после удаления из ресайклера( я знаю , что в ресайклере нужно менять источник данных, а потом оповещать список, но суть не меняется) я просто смотрю в хэшмэпе какому элементу в бд соответствует удаляемый объект и удаляю его из бд, но вот в recycler view, насколько я понимаю, нет какой-то неизменной характеристики элемента списка, там есть только position, которая постоянно блэт изменяется и нельзя адекватно связать изменяющуюся position c неизменным id моих новостей. Скорее всего объяснил нихуя не понятно , поэтому тоже самое другими словами и более кратко: есть элемент в бд, есть его отображение в ресайклер вью, как при удалении элемента из ресайклер вью удалять тот же элемент из бд? Я сам думал о том , чтобы отличать новости не по айди , а по самим новостям, это возможно сработает , но хотелось бы таки решить задачу в общем случае, то есть когда есть дохуя элементов с одинаковыми данными. Еще один способ , о котором я подумал это добавить в каждый элемент какой-нибудь невидимый пользователю text view и хранить id там, но тут тоже есть ощущение, что это сомнительное решение, хотя в общем случае работать должно. При гуглении я либо в принципе нихуя не находил , либо находил решение по типу моей первой мысли, то есть хуйню, собсна поэтому прошу помощи у вас , аноны.
>>1206654 Не используй андроид расширение для даггера. Это очередная оверинжениринг хуета от гугла, которым заняться нечем. Сохраняет тебе пару строчек кода и приносит хуеву тучу головной боли.
>>1206742 https://en.wikipedia.org/wiki/Code_golf Ты тащишь зависимости, обвешиваешь классы фреймворк лишним интерфейсом. Это даже не избавляет тебя от бойлерплейта, а просто переносит его в модули. Если же тебе надо заинжектить в обход констркутора в класс который не поддерживается, ты все равно идешь за компонентом и инжектишь через него. SSOT ломается
Суть даже не в том, что правильно а что нет, пусть люди сами пробуют и сами решают, что лучше им подходит, а не надеются на советы ноунейма. Алсо, сколько ни ходил, большинство здравомыслящих людей юзают даггер, нормальные тоже юзают даггер. Даггер сложен для первичного вкатывания, но меня лично он этим и прельщал.
Заебали эти советчики. > Это даже не избавляет тебя от бойлерплейта, Конечно. Иди продрочись. >а просто переносит его в модули. Хули ты это высераешь? Сам прекрасно знаешь, что там дополнительно классы генерятся. которые как раз избавляют от говнища твое ебало.
>>1206583 у меня вопрос немного в другом, как мне связать элемент на который нажимают и хотят удалить с его расположением в бд? Ведь я ничего не знаю об элементе , на который нажимают кроме его позиции в листе, если удалить какой-нибудь другой элемент , то позиция всех элементов изменится и мой hashmap, в котором записана связь элементов в листе с их позициями в бд , будет бесполезен
>>1206756 Где я писал, что обычный даггер это плохо? Дурачек, ты видимо даже не понял что я говрю про dagger-android. На вопрос про не-конструктор иньекцию в не-фреймворковский класс ты так и не ответил.
>>1206766 >>1206758 Если да - то берешь и хуяришь - anonList.get(i).getId() - где И - это позиция клик листерена. Для нормального приложения, тебе нужен ViewModel или Presenter - который будет управлять этим всем делом.
>>1206763 Ну ничего, вот в P уже можно самому активити создавать, глядишь через 10 лет фабрики для фрагментов регать можно будет, ну или в кондукторе допилят. Вроде же очевидная идея оставить юзеру хук для создания компонент, какие проблемы?
>>1206778 Согласен. Как это относится к моему посту о том что расширение даггера для андроид это хуета которая дает тебе минимум выхлопа, при этом еще больше привязывая тебя к фреймворку?
Всем привет, есть webview в который загружается объемный html текст при открытии конкретного фрагмента, чтобы избежать кэширования использую следующие методы: webView.getSettings().setAppCacheEnabled(false); webView.clearCache(true); webView.clearHistory(); webView.loadUrl("about:blank"); webView.reload(); На iceCreamSandwich все норм, но пользователи с версиями выше жалуются что загружается старые данные т.е кэширование работает. В чем может быть проблема ?
>>1188797 Насколько я понял, там подход как в swing'е - используются не нативные компоненты платформы, а собственные отрендеренные с помощью либы skia. Все пишут, что, якобы, это все круто оптимизировано и работает быстрее rn. Короче, пока не ясно - все зависит от гугла, если он лично будет штамповать эти компоненты - то перспективы есть.
>>1207249 Гугол сейчас на АИ коцентрируется. Конечно это хорошо, иметь пет проект, убивать время людей, которые его разрабатывают и еще натягивать их улыбки на лица ради денежек. Если стрельнет, то будут всем говорить, что не зря вот старались, если нет - то закроют как виндовс фоне.
>>1207255 > Конечно это хорошо, иметь пет проект, убивать время людей, которые его разрабатывают Вообще правило 20% процентов охуенное, позволяет попробовать то, что хочется, но при этом не кодить дома как последний ноулайфер.
Наконец-то я блять научился создавать КЛЕАН АРХИТЕКТУРЕ для себя. Все красивенько, View ViewModel Repository. Репози грузит данные, хуярит в бд, вьюшка берет ливе дата и следит за событиями. Ни у одного в примере нет такой хуйни. Большинство пидарасов делают запросы в интернете во ViewModel, остальные трудночитаемы, или запросы в активити хуярят. Осталось чекнуть local и remote. Ну и все.
>>1207287 Я MVVM понял, а на MVP чет не смог потыкать решение от реилма. В общем, хоть что-то получилось. Теперь нужно захуярить мини апп нормальное, сделать тестовое и идти работать.
>>1207430 > Наконец-то я блять научился создавать КЛЕАН АРХИТЕКТУРЕ для себя. Все красивенько, View ViewModel Repository. Репози грузит данные, хуярит в бд, вьюшка берет ливе дата и следит за событиями. > Ни у одного в примере нет такой хуйни. Кидай ссылку, обкашляем.
>>1207589 Получается, что вьюМодел знает слишком много. Оно испускает 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 и тому подобное. При запуске приложения все нормально, но вот само редактирование просто уёбищно. Никогда больше с этой парашей работать не буду.
Как можно получить доступ к коду, сгенерированному с помощью аннотаций? То есть хочется просто посмотреть, что получается при использовании той или иной аннотации.
Как же сложен этот Room. Просто пиздец. Объекты нельзя, листы нельзя. Приходится ставить Объекты под @Ingore. А при запроса с нетворка нужно хитроебищно запонять таблицы. После реилма на другие бд вообще блевать хочется.
Итог последнего андроид подкаста по работе: - не умеешь решать олимпиадную парашу и похуй что тебе это в жизни не пригодится, ведь 90% андроид разработки обычная рестопараша = сосешь хуй - не имеешь гитхаба = сосешь хуй, ибо мало кто захочет ебаться с твоим тестовым - не имеешь друзьяшек))) с конференций))) чтобы тебя рефали на работу = сосешь хуй вдвойне, ибо ебать на собесе тебя будут сильнее - призывают ходить на собесы, но при этом, если приходишь, то эйчаршлюха пиздит всем, что Сычов пришел, об этом узнает эйчаршлюха на твоем текущем месте работы = сосешь хуй - один раз обосрался на собесе = сосешь хуй, ведь эйчаршлюха всем распиздит, что ты даун, жди пол года пока "набираешься опыта и исправляешь пробелы в знаниях" - не помнишь как работать с контент провайдером и лоадером = сосешь хуй, ведь это база, и похуй что почти не используется - написал условный rxjava в резюме, но не помнишь наизусть все операторы, чтобы не обосраться при вопросе - сосешь хуй, ибо нехуй писать того, что "не знаешь" в резюме - сосешь хуй = сосешь хуй
Ничего не забыл? Индустрия-гной, индустрия-червь, индустрия-пидор.
Не знаю где это так, все что в этом списке прошло мимо меня. На техническом собеседовании спрашивали только по репозиторию, где выложен мой код. Указали на недостатки (проебался с тем, что выложил в репу неработающий код) и еще пара несложных вопросов.
Сап, андроидач. Нужно на коленке склепать простое приложение и я всё уже сделал, кроме одного - нужно подгружать строку с URL. Она это что-то типо конфига, в этом духе. Нашёл для этого метод (IOUtils.toString), но в основном потоке его запускать низзя, нужно в какой-то AsyncTask оборачивать. Но мне-то нужно дождаться пока он скачается, и аж потом давать юзверю что-то делать. Да и как вернуть значение с AsyncTask я так и не разобрался. Надо наверное с глобальными переменными что-то думать, но я в Java почти ноль. В общем, какой самый quick and dirty способ скачать строку с URL и работать с ней дальше с onCreate() основной активити?
>>1207964 > quick and dirty В AsyncTask postExecute обработай строку и разблокируй интерфейс юзеру. Объяви асинку внутри активити либо передай в асинку инстанс активити.
некоторые юзеры жалуются, что опции в аппе не пашут (чекбоксы со значениями из preferences). Может у них edit()..apply() не пашет? или чекбокс не срабатывает?
Есть ли аналог айфонного key value observing под андроидом? Т.е. можно было зарегистрировать свой объект, чтобы он следил за каким-то полем другого объекта - если это поле поменялось, то вызывается какой-нибудь callback.
>>1208067 >можно было зарегистрировать свой объект, чтобы он следил за каким-то полем другого объекта - если это поле поменялось, то вызывается какой-нибудь callback. Есть паттерн Observer
>>1208067 Нет, если создатель класса об этом не позаботился - соси хуй. Так мягко намекают что тебе не нужно обсервить занчение поля, потому что либо есть специальный механизм для этого, либо ты делаешь какую-то хуйню.
аноны , в тред врывается очередной вонаби джун ака прогер300к/наносекунда, вопрос такой: уперлось ли мне в хуй задрачивание sqlite или я могу забить на это болт и сразу юзать какой-нибудь orm типа realm? sqlite я использовать могу , но заебался , т.к это достаточно долго(имею ввиду инициализировать ее и тд). Что щас обычно юзают в разработке и будут ли меня сильно ебать на собеседовании sqlite`ом? Слышал еще про room от гугла , но говорят ,что она еще сырая и вообще мало кто ей пользуется.
>>1208214 Тебя будут ебать языком SQL, скорее всего. Знать ORM важно, но иногда в проекте возникает вопрос, когда ORM использовать не получается или нецелесообразно, тогда проще написать запрос на SQL.
>>1208214 >остаточно долго(имею ввиду инициализировать ее и тд). Что щас обычно юзают в разработке и будут ли меня сильно ебать на собеседовании sqlite`ом? Слышал еще про room от гугла , но говорят ,что она еще сырая и вообще мало кто ей пользуется. Когда я работал на маленькой галере, они все апп делали с реилмом. Тут дело вкуса. Скорее всего, сейчас может на новых компании юзают room.
Я вот тоже селекты индексы знаю более менее, но быстрее напишу с реилмом, чем с тем же румом. Потому что я рум пока не юзал.Хотя пытался сейчас юзать для тестового, но мигрировал на реилмПотому что пока разберешься с этими отношениями блять время потеряется
>>1208220 Окей , спасибо. Тогда наверно для того, чтобы в будущем было меньше проблем лучшим решением будет таки использовать sqlite в большинстве своих проектов, ну а orm уделить меньше времени. В любом случае на месте работы будет понятнее что именно нужно будет делать.
>>1207964 >AsyncTask > 2018 год пиздец. Забудь вообще про существование такого понятия, как asynctask , еще года 3-4 назад все трубили о том, что это юзлесс говно, нужное только для самых зеленых новичков, которые не слышали про треды и т.д.
по твоему вопросу - если надо чтото выполнить не в ui треде, то юзай thread+runnable. Если же это запрос с обработках ответа, то retrofit + okhttp
>>1208389 > нужное только для самых зеленых новичков, которые не слышали про треды и т.д. А он не такой?
> thread+runnable Ну да, в дохулион раз лучше асинктаска. Асинктаск хоть профит имеет в виде postExecute, который вызывается на главном треде. Плюс у него есть дефолтные уже готовые екзекьюторы, однопоточный и многопоточный, на которых никто не запрещает запускать твои говноранеблы.
Для чего нужно. К примеру в data классе у Int поля кастомный геттер: get() = field + 1 И возвращает он, к примеру, не 10, а 11. Если кинуть это значение в другой объект, то на выходе получим не 11, а 12. То есть объекты будут разные. Понятно, что писать так bad practice, но бывают ситуации, когда изменить это мы не можем.
Пытаюсь сделать кэширование данных с паттерном Repository и RxJava. Сделал я это так: сначала пытаюсь загрузить данные с API, и если происходит какая-то ошибка, то данные берутся из локальной БД. Сделал я это с помощью onErrorResumeNext, но мне нужно еще выводить ошибку во view, если что-то идет не так, а после вызова onErrorResumeNext все последующие методы типо doOnError уже применяются к Observable, переданному в onErrorResumeNext. Делать onErrorResumeNext в Presenter я считаю не верным, потому-что тогда проебывается вся идея Repository, а вызывать doOnError до onErrorResumeNext в model я не могу, потому-что экземпляра Presenter в Model, естественно, не имею. Поэтому я сделал это все через передачу Consumer в метод и запихиванием этого Consumer в doOnError. Я хочу понять насколько это хуевое решение, и что как это можно делать по-другому.
>>1208522 У тебя из репозитория тогда должно торчать Observable<Result<List<SomeData>>>, где Result<T>(val data:T, val failedNetwork: Boolean). То, что ты сделал и правда выглядит хуево.
>>1209156 >whatever come from the network that go into the disk, it never go back to the UI А как юзеру информацию об ошибке показывать тогда? Они всегда об этом забывают.
>>1209213 >Ты не думай, ты повторяй - очередная очень модная парадигма себя не напишет. Интересно, а как ты тогда пишешь приложение? Меня больше интересует место репозиторий с АПИ и бд.
>>1209182 >А как юзеру информацию об ошибке показывать тогда? Они всегда об этом забывают. Какую ошибку? подключение к сети? Даже когда я чекал интерфейс 2chbrowser, при отключении вай фая он просто продолжал показывать то, что осталось в бд.
Вообще, вся идея нормальная, но мне непонятен момент с проверкой сети. Я должен что ли контекст создавать в репозитории и проверять на наличие интернета что ли? Это же пиздец по-моему.
>>1209312 Вообще без разницы куда вкатываться, но говорят на иосе меньше жопоболи. Да и устройства одни и те же практически, а у андройда триллион хуеплетин с йоба прошивками, пользователи которых орут ну а хули приложение не работает.
анон. У меня опять срыв. Ладно, хуй с ним. Ретрофит done, rx done, все работает. Но, сука, как открыть деббагер, чтобы поглядеть перменные в рантайме? Андроид Студия 3.0.1 ебать. нет, честно, это пиздец.
искренне ненавижу всех лякающих пакистонцев и индусов. Ненавижу пидоров, которые завалили ютуб дерьмо-туториалами. Ненавижу этот сраный андроид старт, где какой-то педальный веталик, даже не знакомый с инглишем, страгает свои высеры. За три два месяца вкатывания я не увидел ни одного, НО ОДНОГО АНОН! нормального разьяснения отдельных технологий, которые юзаются в андроиде. Сплошная непоследовательная череда дырявых мозаик и пазлов, где каждый горе-пилильщик делиться своим опытом рецептурного имбицила. Ах какая же это залупа. Какой же это пиздец.
>>1210418 обновил, переустановил градл, после вовсе переустановил всю прогу. Появилось окошко Debugger, в нем Frames и Variables. Но все впустую, ибо Variables are not available. Ебаный стыд. Что за хуйня. Просто пиздец.
ЙОБАНЫЙ В ПРОТ БЛЯТЬ! ЙОБАНЫЙ РОТ ЭТОГО АНДРОИДА! ЕБАТЬ ПОЕХАВШИЕ, ПИЗДОС, ЧТО ОНИ ТАМ УСТРОИЛИ! ПЕРЕУСТАНОВИЛ СТУДИЮ, СДЕЛАЛ БИЛД ЕБАНОЙ РАБОЧЕГО ПРИЛОЖЕНИЯ И ПИЗДЕЦ! ВСЕ, АНОН, ПИЗДЕЦ! НИХУЯ НЕ РАБОТАЕТ, ЧТО ЗА ХУЙНЯ! ЕПТА, ЧТО ЗА ХУЙНЯ! ЧТО ЗА ПИДОРСТВО! ВСЕ НАХУЙ ТАК ЖЕ, НО НЕ РАБОТАЕТ, НЕ РАБОТАЕТ! БЛЯТЬ, ЧТО ЕЩЕ МНУ НУЖНО УЗНАТЬ О ЭТОЙ ЕБАНИ! ЕЙ БЛЯТЬ ЖИЗНЬ НАДО ПОСВЯТИТЬ ЧТОЛИ! САМАЯ УЁБИЩНАЯ ТЕХНОЛОГИЯ! ЭТО ПИЗДЕЦ НАХУЙ, ЕБАНЫЙ РОТ!
пытаюсь написать приложение с минимально возможным для меня количеством говнокода , поэтому осваиваю(пытаюсь освоить по крайней мере) mvp, вопрос такой: где мне реализовывать онкликлистенер на элемент ресайклера: делегировать тупо в активити и реализовывать там же или создать какой-нибудь класс , написать реализацию онклика в нем, опять же делегировать онклик из вьюхолдера в активити, но при этом в активити просто создавать инстанс класса с реализацией онклика и вставлять его в делегированный онклик из вьюхолдера?
>>1213511 В частности, я вот сейчас пишу приложения для "портфолио" - и javadoc мне видится каким-то бесполезным говном без задач, ведь никто кроме меня это поддерживать не будет, чтобы так подробно описывать API, которое к тому же дублирует очевидные имена методов/параметров. Но не будет ли это минусом, если при приеме на работу будут смотреть мой код без использования javadoc?
>>1213519 Документируй только то, что может быть не очевидно. Нет никакого смысла комментировать все подряд если ты не хуячишь методы на пару экранов с пизданутыми названиями.
Пофиксил нумерацию
> Хочу вкатиться в разработку под 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