Перекатываемся на Firebase и начинаем использовать Constraint Layout. Предыдущий тред тут:https://2ch.hk/pr/res/743301.htmlКоротко о главном:1) Мобильная разработка - это весело.2) Android Studio & Java - легитимный набор, проверенно временем и поддерживается гуглом.А также о неглавном:3) PhoneGap/Ionic/Titanium/ReactNative - имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити.4) Xamarin - мультиплатформенная разработка. Попытка серебряной пули на C#. Довольно популярный. Куплено Microsoft. Теперь есть бесплатная версия.5) BugVM (RIP RoboVM) - идейный наследник ксамарина, а теперь уже и его часть но на Java. Учитывая что Microsoft убила RoboVM, встречаем опенсорсный BugVM.Отдельного упоминания стоят:1) Kotlin - Java от JetBrains, новый и стильный язык, куча синтаксического сахара прилагается, есть стримы и делегаты. Хотите писать на котлине? Добро пожаловать в JetBrains и Avito.Где брать инфу:Интернет-ресурсы1) http://developer.android.com/index.htmlНаша библия. Документация/небольшие примеры/гайды. Но только на инглише, но это плюс. Минус в том, что это все таки документация с небольшими примерами и гайдами и искать там реализацию чего-то хоть немного сложного нету смысла. Раздел Training как раз для старта.2) http://stackoverflow.com/Пользуюсь чаще чем первым сайтом. Можно найти практически все.3) Есть два вполне вменяемых русскоязычных ресурса. Для старта подходят очень даже.http://startandroid.ru/иhttp://developer.alexanderklimov.ru/android/Второй еще и условно бесплатный. Главный плюс - это русский язык, простые гайдики, но переводы классов иногда заставляют фейспалмить.4) http://habrahabr.ru/ - редко но метко, можно найти годные статьи по каким-то реализациям, или переводы с developer.android. Хотя чего тут объяснять.5) https://www.udacity.com/ - в треде очевидцы говорили что есть годный курс, но я лично не смотрел.Книги, их никто не читает, но все советуют только одну1) The Busy Coder’s Guide to Android Development - в отличии от остальных книг она обновляется, а так как ведро не стоит на месте а хуярит семимильными шагами, то я бы и не советовал другие книги.А теперь, так как заебали уже всех, гайд для:>"Я хуярил на делфи 5 лет назад а теперь хочу вкатится в андроид":Чтоб быстро хоть как-то вникнуть в джаву берешь и гуглишь javarush или codingbat.com.Можно Эккеля "Философия java" почитать.Или Хорстманн "Java. Библиотека профессионала" до 7 главы.Что тебе нужно понять в самой жабе.Энтри лвл.1) ООП - сам принцип нужно именно понять, так как ооп язык.2) Типы данных. Примитивы и ссылочные.3) Структуры данных - Массивы/коллекции - без них никуда. Полезно почитать про алгоритмы работы коллекций и их сложности.4) Дженерик типы, они как раз юзаются в коллекциях.5) Классы/интерфейсы и все вытекающие.Уже можно быдлокодить потихоньку и учить андроид параллельно с тем что ниже.Дальше6) Потоки ввода/вывода (streams). Не путать с тредами(threads).7) Threads, особо не нужно вникать(в java.util.concurrent можно не лезть, в ведре все равно особо не пригодится), но нужно понять как работает многопоточка и что такое Runnable.8) Прочитать про паттерны что-то. Начать с listener, adapter, singleton, iterator так как на каждом шагу. Ну и по накатанной.Уже сделаешь что-то нормальное.Дальше.9) Работа с Sqlite, нужна будет в любом случае.10) Работа с json.Привет клиент-серверка.Пишите в треде что добавить.
Перекат вышел прямо как любая прога под ведро: со второго раза и с дерьмовой картинкой
>>750617Годная картинка, не пизди.
>>750619из 18 треда one love
>>750621Как знаешь.
>>750625merci ^_^
>>750625>этот нося думал она няша
>>750631Ракурсы, бро, ракурсы.
>>750631блять, ну испортил все, падла. Не замечал ведь :D
>>750642Теперь признаешь что оппик лучше?
>>750644Частично
Сабж: почему в AS показывается в сумме allocated + free memory раза в два меньше чем в сраном диспетчере задач в ведре ?
>>750781И чему верить
>>750782Своему сердцу, очевидно же.
В файербейсе пуши платные выходит, да еще и GCM. Удачи короче.
Сап аноны, говнокодер просит вашей помощи. Мне нужно в приложение добавить смену языка на выбор пользователя, код ниже меняет язык только одного активити, а мне нужно на все приложение. Подскажите как выйти из этой ситуации.http://pastebin.com/h3tpfsTbЗ.Ы. Гуглил решения, но ничего не понял
>>751267После этого кода ощущение будто в говно наступил, кем же надо быть что бы так делать...
Потихоньку вкатываюсь в андроид и возник вопрос насчет sqlite и recycleview. Щас я загружаю данные в базу, оттуда их возвращаю в arraylist и сую их в адаптер, все отображается нормально. Но тут погуглил и наткнулся на CursorAdapter и его кастомные реализации и несовсем понял принцип. В случае курсор адаптера данные напрямую из базы идут собственно в адаптер и там отображаются так? И получается первый подход это говнокод или я делаю тоже самое только с лишним шагом в виде эррэйлиста? В общем поясните как правильно дергать данные из базы в recycleview
>>751300Ты знаешь что такое курсор? Если нет то сначала изучи это вопрос, потом приходи снова.
>>751302Не понял как знание курсора влияет на вопрос. Типа слишком капитанский, когда возращаешь данные в массив перебирая курсоры ты тупо делаешь тоже самое только например с обрезанным функционалом типа нотифаинга добавления отдельных элементов ?
>>751333"Не учатся ничему некоторые и учиться не хотят. Кина про фрилансеров с 300k насмотрелись..." (c)> CursorAdapter = Cursor + Adapter> Не понял как знание курсора влияет на вопрос.Ну вот как с тобой разговаривать?Курсор и курсор адаптер это механизм отображения данных из базы времен CPU 300 МгЦ и 128 MB RAM.Его плюс что данные он хранит в памяти компактно одним куском (тк написал большей частью на нативном коде).(Еще и подгружать их может постепенно, но не в случае RecycleView/ListView)Так что сейчас использовать его есть смысл только если ты юзайешь SQLite и упираешься в производительность.P.S.Старайся либо писать компактные предложениями, либо делать перенос после 80-150 символов.Иначе ужасно неудобно читать, особенно на FullHD мониторе.
Посоны, что делать после того как я закончил раздел "Getting Started" на developer.android.com? Идти по остальным разделам или лучше начать выполнять какой-нибудь мелкий проэктик? Посоветуйте задание (или откуда его взять) во втором случае?
>>751353Спасибо за ответ, просто при поиске sqlite+recycleview по тому же стаковерфлоувыдаются ответы типа этогоhttp://stackoverflow.com/questions/32101607/populate-recyclerview-with-a-sqlite-databaseгде ответ примерно с такой же реализацией как у меня, а комент к нему наоборот советуeт реализовывать курсор адаптер типа этого https://gist.github.com/Shywim/127f207e7248fe48400bи вот и возник вопрос как собственно народ запихивает данные в recycleview
>>751353>неудобно читатьКупил себе ссанину и других теперь учит как правильно писать, чтобы шея не открутилась при чтении.мимо квадрат 1к
>>751353>Его плюс что данные он хранит в памяти компактно одним куском (тк написал большей частью на нативном коде).(Еще и подгружать их может постепенно, но не в случае RecycleView/ListView)всегда думал что курсор используется для экономии оперативы, что б не грузить все сразу в массив./arraylist
>>751402Если ты делаешь просто moveToNext(), то курсор грузить данные из базы постепенно, увеличивая в размере свой буфер.Чтобы ты мог сделать moveToPrev() или moveToFirst() быстро, без запроса к базе.Кстати данные из базы грузит не построчно, а большими кусками и еще есть ограничение на размер его буфера (CursorWindow).Но это уже нереливантные подробности, которые можно изучить если посмотреть его исходники.НО для правильного отображения скролбара, ListView дергает -> Adater.getCount() -> Cursor.getCount().А курсор может рассчитать getCount(), только если проитерируется по всем данным -> в итоге все данные загружаются разом в память (в пределах максимального размер CursorWindow).Именно поэтому CursorLoader вызывает явно getCount() у курсор (во время его асинхронно загрузки).http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/content/CursorLoader.java/#68
>>751455>(в пределах максимального размер CursorWindow)ну так не все ж данные
>>751263Это схуяль платные пуши?
>>750609 (OP)Есть какой нибудь толковый гайд по адаптивной вёрстке? на дев андроид есть только какая то мелкая херня.
>>751946Ну пора понять что не бывает адаптивной верстки как во фронтенде.Так можно детектить ньюфагов и долбоебов кстати.
>>752000окей, не верстке, а созданя адаптивного ui, так лучше
>>752000Кхм-кхм, а в React Native-то на flexbox-е всё верстается.
>>752044че ты несешь, поехавший
>>752048Специально для тебя:React Native - фреймворк для разработки iOS и Android приложений, использующий нативные виджеты и анимацию, контроллируемые JS кодом с помощью библиотеки React.Использует систему лэйаута flexbox, позаимствованную из веба.https://facebook.github.io/react-native/https://css-tricks.com/snippets/css/a-guide-to-flexbox/
>>752041Опять же, нету адаптивности блять.Вся адаптивность сводится к тому что делается скролвью которая типа делает приложение адаптивным по вертикали, и дизайнеры пытаются не тулить много говна по горизонтали.
>>752052Такая же хуйня есть и у джавы, кастомные флекс вьюхи.Но вопрос в том, что это никак не ебучий бустрап который люди тут ищут. В результате он просто подвинет итемы в новый ряд которые не влезли в ширину.Это твоя адаптивная верстка?
>>752052Ебитесь-ка в жопу джаваскриптом где-нибудь еще.
>>752089Вообще-то в плане адаптивности бутсрап - это жалкие костыли по сравнению с флексбоксом.Какая фича бутстрапа тебя интересует? Responsive grid? Так на флексбоксе он гораздо более responsive, чем бустраповские костыли в стиле "col-xs-6 col-sm-4 col-lg-3 col-xl-2". Не хочешь чтобы айтемы двигались в новый ряд? Ставь им всем 'flex: 1' и фигачь в один горизонтальный контейнер - будут ужиматься, сколько бы их там не было (но это уже не responsive grid, с точки зрения терминологии)
>>752126Чувак я тебя сразу прерву.Называть самую мощную технологию веба на данный момент в адаптивности - т.е. бустрап костылями это еще мозгов надо иметь.Ну и действительно реактнейтив нахуй никому не уперся, джава/котлин > хуемарин > моча > фонгеп > вся остальная джаваскрипт параша(проигрывает фонгепу из-за коммьюнити которого нету)
ОХ СУКА КАК ЖЕ Я ЗАЕБАЛСЯ!!Вот почему дизайнер такой пидор? > 2016> Андрейд> 3Д карусель Этот пидор не хочет делать отдельный дизайн для ведроида, этот пидор сделал дизайн для iOS.И там эта блядская карусель. Собственно вопрос:Как сделать вертикальную карусель чтоб как в iCarousel?
>>752171После джавы/котлина (перед ксамарином) есть еще Qt.> моча А это что?
>>752195Нет ничего проще, ищи инфу куда копать, бери неделю-две времени, менеджер сам выебет дизайнера.
>>752217Кюти нету, успокойся. С такими темпами можно вьебать го и кучу всего еще, если ты не знал на ведро есть возможность писать практически на всем.Моча была показательной границей ваябл технологий.
>>752221Да вообще охуеть. Я вот только работать устроился. Летом подработать. И вот дали проект. Офигеть. Я чота застремался менеджеру сказать, что нихуя не получается карусель делать. Да там куча всякого iPidor-ского говна в дизайне. Ну и такой диалог с менеджерем был— Ок. А андроид дизайн где?— Лан, с дизайнером побазарю… неделя— А андроид дизайн когда выйдет? а ассеты скинете? где?— Дизайнер сказал, что этот норм на андроиде выглядить будет. Можешь блюр убратьНу чо за хуйня?
>>752226На Qt написано, например, приложение 2ГИС. Посмотри, если не видел.> есть возможность писать практически на всемЯ в курсе, спасибо. Только вот Qt в отличие от "всего" действительно используется и распространён.
>>752232чот я подумал. надеюсь эти ребята здесь не сидят))
>>752232Ну тут смотри, я просто не знаю как у вас там механизм работает.Но находишь того кто более сговорчив.Если это менеджер то подходи и говори.- Я не нашел реализации этого инструмента, он не предоставлен в сдк, следовательно мне нужно его делать самому, учитывая что он довольно сложный это займет столько то времени минимум. Мне делать его или пойти более простым путем и сделать горизонтал скролинг вью из того что есть в миллион раз быстрее?Менеджер выберет второй вариант так как никто никогда не рассчитывает что вьюха может забрать больше чем пол часа.Если же говоришь с дизайнером.- Братишь, что за говно ты мне подкинул? Это не по материал дизайну. Реализаций инструмента нету, я могу сам сделать но это займет овердохуя времени, а сроки то жмут. Переделывай, ну и желательно посматривай на материал гайды, так как они не просто так созданы.Главное правило ГОВОРИТЬ ЧТО ТЫ МОЖЕШЬ ЭТО СДЕЛАТЬ но долго, ГОВОРИТЬ ЧТО ТЫ ЗНАЕШЬ КАК СДЕЛАТЬ БЫСТРЕЕ.Удачи.
>>752245Дизайнер и менеджер в разработке под ведро?
>>752237>распространёнДа конечно блять, распространен. Удачи с поиском работы.
>>752247наверн они. просто менеджер вот точно поймёт, что это я.
>>752251Блядь, ты жопой читаешь?
>>752246Спасибо. Прям мозги на место мне поставил. Так и напишу завтра.Я один раз хотел написать, но менеджер думал, что я уже неделю как над проектом работаю, а я всё бух сессию заканчивал. Я вообще, можно сказать, что на удалёнке. В соседнем городе работаю. Связь по интернету.
>>752252Ну и пускай, нехуй тупые задачи ставить. Менеджер на то и менеджер чтоб ты сидел и писал код не парясь про то что у тебя говно вместо задачи.
>>752255Что ты сука зеабывешь, иди в свой сраный 2гис и сиди там нахуй, куча долбоебов написавших на некроплатформедля ведроида уж точно апу. Успех блять.Чем они мотивировались то?
>>752257Я ему сам случайно сказал, что всё уже чики-брики и в дамках будет.Не, они, конечно, молодцы, что наняли (не платили ещё, без договоров и всего) одного уже-не-первокурсника без единого сделанного приложения и какого-то мутного иосника, который вот только с сентября objective-C начал учить. Я думал меня на изи фигню поставят, а они во как…
>>752258не знаю почему, но засмеялся, что даже соседа разбудил
>>752256А вот так не делай, если уже и еблуешь, то создавай видимость работы, пиши ему что-то, любую хуйню.>>752259Ну язык твой враг твой. Но со временем пройдет.
>>752258ну сдк любых карт почти всегда написаны на ndk, видимо пидоры из 2гис решили просто хуячить сразу на qt
>>752263Ебать, да это же лучшее решение евар блять, проджект менеджера нужно сделать главой какой-то компании. Дали поддержку ндк, не давай пердолится в жопу и писать все на плюсах.
>>752262Стоит говорить что-то вроде "я короч пытался поискать готовые вьюхи, нихуя не нашёл. Показать нечего, я бэкенд фигачил. Пусть нормально для ведра рисует!"?
>>752267Ты не понимаешь, о чем говоришь?> Дали поддержку ндкEclispe NDK сейчас deprecated, а альтернативу ему гугл уже два года выкатить не может> не давай пердолится в жопу и писать все на плюсахЭэ, а NDK по-твоему на чем написан?
>>752275>Eclispe NDK сейчас deprecated, а альтернативу ему гугл уже два года выкатить не можетвот вчера только выкатили вроде. на io сказали, вроде
>>752269Если только начал, толкай хуйню"Я пока делаю общую архитектуру связи между бд и экранами" и тд. Вообще это действительно сложная и долгая часть, но учитывая что ты все равно будешь все пиздовать как попало из гайдов, то забей. Это норма для первой аппы.Поискать это два дня от силы, если ты не нашел и отписал об этом через два дня и предложил вариант как сделать подругому - ты норм парень. Если ты 5 дней искал и не нашел - то ты долбоеб. Так оно выглядит со стороны.Скажи мол архитектура в процессе разработки пару дней уже пишу и продумываю. Вот решил посмотреть на эту карусель, проебался полтора дня и нихуя не вижу такого решения из коробки, потому чтоб не тратить зря время пишу вам, и пишешь то что я говорил выше.
>>752275На ндк писать можно, что ты тут пытаешься втюхивать я не пойму?>Ээ, а NDK по-твоему на чем написан?Очевидно что на пизде твоей мамаши на плюсах, хватит меня за долбоеба держать правда бесит, анон сказал про карты на плюсах, так сделайте вы карты на плюсах а все остальное на жабе, благо так можно делать. Дальше понятно?
>>752279Отлично. Спасибо большое! Грамотно расписываешь.
>>752281>Под ндкфикс если честно хуй знает как правильно сказать
>>752283по днк
>>752281> Дали поддержку ндк, не давай пердолится в жопу и писать все на плюсах> Противопоставляет NDK и плюсы> хватит меня за долбоеба держать
>>752282Всегда пожалуйста, сам работаю на фултайме на удаленке по два дня из пяти, правда нужно увольняться, а то превратился в охуевшего ублюдка который бесится когда его тревожат в рабочий день звонком с работы.
>>752278Что-то я такого не видел. Есть ссылка?Они интегрировали CLion в Android Studio и новый декомпилятор, но про NDK я ничего не видел нового
>>752290А, я сам не знаю. Краем уха слышал как ребята на перемене в столовке обсуждали
>>752287Ты рахит? Ты хочешь на ндк писать всю апликуху?Неужели не очевидно что я имел ввиду юзать нужные элементы типа карт на ндк, а все остальное на жабе? Я кажется написал это дословно.>анон сказал про карты на плюсах, так сделайте вы карты на плюсах а все остальное на жабе, благо так можно делатьЕще вопросы будут?
>>752275Мне всё ещё еклипс больше нравится.Помню в старых версиях студии на хоткей, который текстовое поле показывает, куда можно команду писать, можно было написать new activity и новое активити делалось. Потом я всю зиму пользовался еклипсом прост)) и вот скачал свежую студию. Там этот хоткей вообще в говно скатили. Какое-то говно предлагает, настройки студии находит, new activity не может. Я что-то не так делаю?
>>752293>Мне всё ещё еклипс больше нравится.Ну и пушка. Каких говнарей в тред занесло.
>>752295Ладно, я начинаю понимать, что мне студия больше нравится.Но Jetbrains — пидоры. IDE платными делают. Пиздец. Вот еклипс — бесплатный
>>752295>Помню в старых версиях студии на хоткей, который текстовое поле показывает…Так вот в еклипсе Ctrl+n ваще классно работает
>>752296>>752292Блядь, с кем я сижу в одном треде...
>>752298С адекватами которые рушат твой манямир?>>752296Потому что они делают иде у которой практически и конкурента нету, а эклипс говно устаревшее, его никто никогда не купит.
>>752301Так его никто и не продаёт.
>>752302Все так говорят, а ты купи еклипс
>>752302В это и смысл. Спрос и предложение.
Аноны, как нормально выйти из приложения не из главного активити в андройде 5 и выше? System.exit(0) нормально работает на версиях ниже. А лоллипоп ужде не сохраняет параметры
>>752126что ты забыл в моем треде блять! какой js блять!давай выпиливайся отсюда!
>>752476finish()
>>752295> говнарейЗначение знаешь?Алсо, андроид студию не люблю из-за системы сборки. С одной стороны, это круто и удобно, с другой — невероятно медленно. Сидишь по 20 секунд ждёшь, пока приложение сбилдится после смены 1 строчки кода.
>>752532аа, в еклипсе ant юзаешь? я тож люблю, еще maven норм. а ентот градле, ну его, хистерская хуйня
>>752566Нет, без анта, встроенным билдером.
Попробовал запустить хеллоу ворлд в студии на своем немного старом ноуте, он 5 минут потупил и вылетел с ошибкой о недостатке памяти. Есть какие нибудь варианты для днищ со слабым железом?
>>752624IDEA Community?
>>752639Что то же самое?
>>752642Нет другое
>>752624блокнот + консоль
>>752645Android Studio — это IDEA CE с другим сплэшскрином.
>>752662А где инстант-ран, поддержка байдингов, редактор строковых ресурсов, редактор тем?
>>752673В пизде Android Studio, вместе с ConstraintLayout-ом.
>>752733В этом и суть
Антуаны, кто нибудь пользовался связкой retrofit + rxandroid? Я нихуя понять не могу как это всё работает. Гляньте, я для поиска юзеров на гитхабе правильно сделал интерфейс и класс?http://pastebin.com/NUaSrwDaПример запроса —https://api.github.com/search/users?q=поисковыйзапросПример ответа сервера:{ "total_count": 7498, "incomplete_results": false, "items": [ { "login": "liblfds", "avatar_url": "https://avatars.githubusercontent.com/u/2772362?v=3", "html_url": "https://github.com/liblfds", и т.д... }, { "login": "zensh", "avatar_url": "https://avatars.githubusercontent.com/u/863754?v=3", "html_url": "https://github.com/zensh", и т.д... },и т.д.]}
>>752858Observable<Github>
>>752858Нету сеттеров.Попробуй запусти, че раньше времени спрашиваешь?
>>752171> самую мощную технологию веба на данный момент в адаптивности - т.е. бустрапМожешь дальше не обсираться, ты и так уже по уши в говне.Бутсраповский грид - это костыль для браузеров, не поддерживающий 'display: flex' и 'display: grid'.В отличии от тебя, я умею верстать и могу сделать аналог бутстраповского грида на CSS без помощи интернета. Я понимаю как он работает и понимаю его ограниченность. А для тебя вёрстка кажется магией, поэтому ты дрочишь на популярные фреймворки.Ты ещё, блять, скажи, что jQuery - это самая мощная технология веба на данный момент в селекторах и ajax-запросах.
>>752527У вас React Native в шапке есть, вот и зашёл.
>>752958Фронтенд макака ворвалась и решила пояснять за жизнь?
>>752958>это костыль для браузеров, не поддерживающий 'display: flex' и 'display: grid'.>костыль для браузеровМне кажется просто твоя технология говно раз не поддерживается 3 - 5 браузерами?
>>753066Не умеешь пользоваться caniuse? Давай помогу:http://caniuse.com/#search=flexbox
>>753061А ты думал, раз сидишь в Android трэде то в вебе никто не разбирается, и можно пиздеть что попало про веб с видом эксперта?
>>753117Без вида эксперта, но даже не спорь, бустрап сейчас юзают все фронтендщики.
>>753114>Не умеешь пользоваться caniuse? Нахуй оно мне?
>>753150На предыдущей работе делал UI для системы мониторинга, верстал все на flexbox, ибо требовалась поддержка только Chrome и Firefox.Далее, если ты погуглишь, то найдешь много блогпостов на тему того, что бутстрап не нужен т.к. определяет слишком много глобальных стилей (в отличии от foundation который можно использовать через sass миксины или модульного basscss). И вообще, бутстрап создавался в Твиттере для прототипирования, а не для использования в конечном продукте. Тут, кстати, много аналогий с Ангуляром, который тоже создавался не для продакшена, и не используется компанией-создателем в своих продуктах. У обоих большая аудитория, но она целиком и полностью состоит из ньюфагов, желающих наговнякать что-нибудь не вникая в детали. А прошаренные люди шарахаются от этих фреймворков как от обоссанных бомжей.
>>753200съебите уже в жс тред
>>753200>Бустрап>Ангулар>Ньюфагиты толстишь откровенно
>>752247про дизайнера: а кто по-твоему все ебаные размеры в dp должен указывать ? Не программисту же этой ебалой заниматься ?)>>752858Что именно ты не можешь понять ? Ты получаешь не Call<NonameClass> , а Observable<Ressponse<NonameClass>> ну или Observable<NonameClass> и работаешь дальше с этим
>>752878Удобнее все же использовать Observable<Response<GitHub>> для того чтобы можно было юзать .code() и не париться с получением кода ошибки
Аноны, а какие сегодня (в 2016-м) альтернативы AsynkTask'у?
Аноны, что за хуйня, помогите, будьте добры.Клонирую проект с гитхаба, делаю пару изменений в коде, а потом возникает пикр при отправке апк на приложение. Студия самая последняя, со всеми обновами, с Canary. В чём проблема?А ещё в чём проблема грэдла на 2 минуты?P.S. Буквально 2 недели назад такого не было.Сам грэдл - http://pastebin.com/hypVVjPKЛог ошибки$ adb shell pm install -r "/data/local/tmp/com.huy.pesda" pkg: /data/local/tmp/com.huy.pesdaFailure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]Installation failed since the APK was either not signed, or signed incorrectly.If this is a Gradle-based project, then make sure the signing configuration is specified in the Gradle build script.Error while Installing APKP.P.S. У ТЕБЯ ВИСНЕТ и все подобные ответы не принимаются, у меня макбук про, студия не виснет тут.
Есть ли какой-то способ в кастомной view напрямую инициализировать гугл v2 карту ?
>>753454> Installation failed since the APK was either not signed, or signed incorrectly.> If this is a Gradle-based project, then make sure the signing configuration is specified in the Gradle build script.
>>753454> com.huy.pesdaНу что за быдло здесь сидит.Поставь стабильную версию студии
>>753456Есть MapView, который можно пихать в любой контейнер. Только события лайфцикла передавать не забудь.
>>753460Хмм, а пример не подкинешь ? У меня почему-то MapView нуль вместо карты выдавал при использовании getMap()
>>753460И да, а что ему в onCreate то передавать ? т.е. он хочет Bundle
>>753462Потому что getMap deprecated. getMapAsync
>>753463Продублируй методы жизненного цикла в свою кастомную вьюху, а оттуда вызови их у MapView.
>>753466Спасибо, щас на эмуляторе забью свой гугл плэй аккаунт, посмотрим что будет
>>753457Ну и нахуй ты это переслал?>>753458Тупо заменил свои названия. Стабильную версию студии ставить не комильфо, там нет ConstraintLayout, а я уже использую его в другом проекте.
>>753467я onCreate каким макаром могу в чем-то унаследованном от View сделать ?
Странно, может быть проблема эмулятора, в чем я сомневаюсь, но карты пустые, есть только кнопка определения местоположения, надпись Google и серый background
>>753472Он имел в виду конструкторы
>>753471Дурачок какой
>>753472Берешь и в onCreate своей активности вызываешь onCreate у MapView. В чем твоя проблема?
>>753480>>753483В том что нужно внутри View это делать. Не внутри активности
>>753484А ты у своей вьюхи не можешь создать метод onCreate?
>>753486а что из этого onCreate мне передавать в onCreate mapView то блять ?!
>>753497Сейв бандл активности или фрагмента
>>753501Ты тупой или что ? Сука, говорю тебе, все должно быть во View. Хули ты такой непробиваемый то
Да, к слову, снова давняя моя ошибка встретилась с картами, суть: все управляющие элементы карты показываются, но вот вместо самой карты клеточная сетка на сером фоне. По клику часть подгружается.
>>753503Если ты такой пиздатый, расскажи это гуглам, чтобы они убрали onCreate, onPause, onResume, onLowMemory и др. из MapView.А сейчас, либо прокидываешь вызов этих методов, либо идешь нахуй.
>>753508маму же твою, хули ты советчик такой, не читаешь вопросов а потом очко от ожогов мажешь ?
А, вроде как нашел косяк по причине которого >>753506onResume по завершению коллбэка нужно делать
>>753511У тебя блять есть кастомная вьюха, в чем твоя проблема добавить в нее onCreate(Bundle) и вызвать этот метод в onCreate активности?Нет, буду вонять и нести хуйню, что все не то, и все не так.
>>753517В том что вьюха полностью абстрагирована, доступ к ней получить из активности не нужно и нельзя
>>753521> В том что вьюха полностью абстрагированаПотому что ты так захотел? Гуглы захотели по другому, и причины на то у них были. > public class MapView extends FrameLayout> Users of this class must forward all the life cycle methods from the Activity or Fragment containing this view to the corresponding ones in this class. In particular, you must forward on the following methods:> onCreate(Bundle)> onResume()> onPause()> onDestroy()> onSaveInstanceState()> onLowMemory()Либо делай фрагментом, либо прокидывай жизненный цикл. Другого не дано.
>>753522Вот ведь гуловцы говноделы, сначала они говорят что View должны быть абстрагированы от лайфсайкла, а потом сами же лепят вьюхи которым нужны эти методы.Да и вообще это же полная хуйня их onPause/onResume и тд - хочу встроиться в жизненный цикл фрагмента,так надо делать касмтомные классы на всех гребанные реализации (Fragment, DialogFragment, MapFragment, BottomSheetDialogFragment и тд).Нет чтобы сделать события Resume/Pause... что бы откуда угодно можно было приатачиться.
>>753528MapFragment на то и Map, что там уже это реализовано. Ну и никто тебе не мешает обмазываться нестед фрагментами
>>753471>Тупо заменил свои названия. Стабильную версию студии ставить не комильфо, там нет ConstraintLayout, а я уже использую его в другом проекте. Д - долбоеб.
>>753531только вот MapView нифига не MapFragment, а коли уж я flow-блядина, то мне MapFragment использовать ne cocher. В итоге поебавшись сделал нормальную отработку жизненного цикла, пришлось маленько абстракцией пожертвовать но хуй бы с ней, работает и на том спасибо
>>753698Карты юзают плейсервисы, а они в себе могут юзать хоть небо хоть аллаха, потому и не сделали как обычную вьюху.А лайфсайкл нужно соблюдать на уровне ОС. Так что так.
>>753592Адекватные советы по теме будут? Или это всё, на что тебя хватило?
>>753719Не устанавливай превью билды блядь и тем более не юзай в продакшене, самый адекватный совет. Лучше не будет.
>>753703Значит надо было вынести часть которая работает с лайфсайклами в отдельный класс и передавать туда ссылку на вьюху.Но что бы это работало актитити и фрагменты должны: 1) Либо реализовывать единый интерфейс, типа такогоinterface LifecycleManager {void addOnResume(Runnable callback);void remvoeOnResume(Runnable callback);...}2) Либо хранить его инстанц внутри (как на FragmentManager или LoaderManager) и возвращать ссылку на негоpublic LifecycleManager getLifecycleManager();
>>753454>у меня макбук проВыебнулся так выебнулся, это жи самая мощная машина в мире.
>>753730Охуеть, ньюфажина рассуждает о проектировании сдк.Если серьезно, то если сделали значит по другому их костыли не работают.
>>753730Вместо одного класса теперь два, и по отдельности они не работают.Годно придумал.
>>753733То что они костыли делают для меня не новость, все такие over 3 года в Android деве>>753736В этом и суть Single Responsibility Principle
>>753765>over 3 годаахах, показатель, да
>>753773Как ни крути на 2 года 11 месяцев больше твоего
>>753765>В этом и суть Single Responsibility Principle Вообще-то нет, МапВью имеет одну задачу, работа с картой, то что карта в себе требует лайфсайкл уже другой вопрос.Да и этот принцип довольно уебищным и гибкий когда абстракция на высоком уровне.
У меня огромный 5 летний проект с миллионом настроек и конфигураций с кучей намешанного дерьма которое чуть потянешь не в ту сторону и все рухнет нахуй. На тестирование забит болт, так как ЗА СТАБИЛЬНОСТЬ И СКОРОСТЬ РАБОТЫ НЕ ПЛАТЯТ, А ПЛАТЯТ ЗА ФИЧИ, меня это бесит и мне кажется что я деградирую копаясь в этом кале. Посоветуйте где посмотреть как пишут код под андроид настоящие профи, чтобы все было чистенько-аккуратненько с линтом, прогуардом, без текущих активити, интентов, аллаха и мультидексов.
>>753800>У меня огромный 5 летний проект с миллионом настроек и конфигурацийТакое бывает на ведре?
>>753814Ну так B2B, не всем же чатики и просмотрщики сайтов и картинок писать.
>>753824Если этой хуйне 5 лет то там пиздос должен быть, столько инструментов появилось даже на уровне сдк.Что с рантайм пермишенами?
>>753852>Если этой хуйне 5 лет то там пиздос должен быть, столько инструментов появилось даже на уровне сдк.Ну так а я про что, пиздос лютейший. Я внедряю кончено моднявые штучки иногда в новых вичах, но это как мертвому припарка.>Что с рантайм пермишенами?Забил на них, поставил targetSdk 22
>>753856Сочувствую. Надеюсь хоть зп и офис норм.
>>753800Работал на таком проекте пару лет, ну и сам во многом создатель этого пиздеца.В итоге уволился (и тебе советую) и оставил разгребать это каким-то джунам :)Крупные проекты рано или поздно один хрен в такое превратятся, если не делать переодически серьезный рефакторинг (на который никогда не выделяют время).
>>753862говоришь такой, плюс 50% к зп, или я ухожуесли говорят уходи, говоришь такой, когда поймете что все плохо, позвоните мне, но тогда будет + 100%профит
>>753877Берут тебя на +50% на два месяца и дают джуна подручного.
>>753726Я не в продакшне, а для себя.
Джентельмены, как такую штуку реализовать?Есть тулбар, есть лист и под ним ещё лист.Я не знаю какие элевейшены задавать.По гайдлайнам toolbar elevation — 4dp. Я хочу чтобы, допустим, у белого листа было 16dp сколько поставить?. Получается, что мне надо тулбару выставить 16dp + 4dp, белому 16dp, серенькому 0dp?Тогда ещё вопрос, тулбар в отдельный xml файл вынес и потом его инклудаю в активитях. В xml указал элевейшен. Как мне его переопределить, когда я его инклудаю?
>>754096Мне кажется твоя проблема в марджинах. падинги хуево смотрятся если их делать как у тебя в пике.Никак.
>>754124елевейшены а не падинги
>>750609 (OP)Анон, есть проблема. Не добавляет данные в listview. Я просто уже не знаю где рыть. Проблема в методе listenNewMessages(), метод displayMessage(chatMessage). В остальных местах все работает как надо. Хелп.http://pastebin.com/tMphiKxP
>>754124Мне нравится как на пике. Плюс, пик с гугловских шайдлайнов
>>754132может у тебя в 137 строке надо вывести ex?
>>754096если надо 4dp - ставь 4dp, если 16 - ставь 16, в чем проблемы? Ничего высчитывать, складывать не надо
>>754141но да elevation работает только с лолипопа
>>754141Если я беленькой поставлю 16, а тулбару 4, то тулбар тень на беленькую не отбрасывает
>>754143< Loli не нужны
>>754144ну офк, потому что он выше тулбара получается, на пике вроде и у того, и у того 4dp
>>754145Это всё я же.Почему все не обновятся до нормальной версии?
>>754150спроси это у производителей, даже гугл поддерживает свои мобилки ~2-3 года и потом кладет хуй, аппл в этом плане молодцы
>>754153Пидоры. Мне теперь свой второй нексус 7 менять надо будет с приходом 7 андроида =(((((
>>754132:237 ты создаешь адаптер, но не присваиваешь его ListView
кароч если в студии создать активити с drawer из дефолтных шаблонов, то в сгенерированном коде можно увидеть пикрелейтедabsolutely disgusting
ОП, сука, еще 10 тредов назад просил добавить в шапку годную книгу для начинающих. "Head First. Программирование для Android"
>>754307Альтернатива switch или Map<Int, ?> ?
>>754315switch
>>753454Бамп вопросу.Теперь я уверен, что дело не в Canary билде. Пробовал удалять приложение с телефона, чистить, ребилдить проект. НЕ ПОМОГАЕТ. Молю о помощи, ананасики.И да, ОП-хуй, добавь в шапку ссылку на единственную конфу по андроиду в телеграме - telegram.me/AndroidChan
>>754355Все иди нахуй, мало того что ты дебил разрабатывающий на превью билдах, так еще социоблядок
>>754355Пускай тебе в твоей сраной конфе и поясняют, хули ты сюда приперся
>>754355>И да, ОП-хуй, добавь в шапку ссылку на единственную конфу по андроиду в телеграме - telegram.me/AndroidChanОна не единственная.
>>754356>>754357Двачую этих и конфа у вас типичное унылое говно про то, кто как посрал и как добавить кнопку в лейаут.
Чет гляну программу очередной русской конфы по мобилками http://mobiusconf.com/#scheduleБоже как это банально, избито (было уже на Google IO): "как правильно делать очередную-хуйню-View" и "как обойти эти костыли в Android/iOS".Единственное интересное это про Scala/Kotlin, да и там будет "введение в язык" (чего на ютубе и так полно).
>>754315> Map<Int, ?>Никогда так не делай, если тебе не важен порядок хранения.
>>754410Дай угадаю "стажер" ты на это наткнулся в своем коде надо было сначала книжки читать?А вообще как думаешь для switch и if из примера важен порядок?
>>754313иди сам картинки рассматривай, по андроиду не встречал годных книг, да они и не особо нужны
>>754417> Дай угадаю "стажер" ты на это наткнулся в своем коде надо было сначала книжки читать?Что?> А вообще как думаешь для switch и if из примера важен порядок?При чём здесь тот пример? Я сказал, что не стоит использовать Map с Integer в качестве ключа вообще.
>>754439Стажер мы это и так знаем, тк книжки читаем.
>>754443Судя по тому посту — нет, не все.Кстати, я не стажёр.
>>754446> Кстати, я не стажёрНу простите "сремящийся-в-стажеры школьник".
>>754451Опять мимо. У тебя осталась одна попытка.
>>754453ОК, теперь я тебя буду звать просто:НУФАНЯУФАНЯ
>>754470Снова промахнулся. Но не расстраивайся, держи утешительный приз.
>>754307В этом нет ничего плохого. >>754315>Map<Int, ?>В этом тоже.
>>754516Это нелогично, не ? Хотя в исключительных ситациях м.б. Но они пиздец какие исключительные
>>754589В том примере какой в коде, ифом делать лучше потому что если это модуль апликухи, то ты не можешь юзать идшники как константы.Если это твоя апликуха то можно свичем.Мапой эту штуку делать верх дибилизма в данном случае, ладно бы у нас делегаты были.
>>753703По итогу просто сделал при том или ином триггере лайфцикла запись/получение/чистку данных о карте и соответственно теперь просто в onMapReady ставлю сохраненную CameraPosition
>>754593>В том примере какой в коде, ифом делать лучше потому что если это модуль апликухи, то ты не можешь юзать идшники как константышта?
>>754356>>754357Сём, хватит.>>754363В телеге - единственная, другой я не нашёл.Причём тут социоблядство? Ну откатился я с превью билда, проблема-то осталась. Или по делу сказать ничего уже не можете?
>>754717Ты указал signingConfig в градле?
>>754720http://pastebin.com/hypVVjPK
>>754722key.jks по какому пути лежит?
>>754725app/
>>754698Блять, сделай помимо апликухи еще встраиваемый модуль. Проджект стороний. Хз как тебе еще сказать.
>>754783при чем тут if ?
>>754174CyanogenMod же
>>754307НожДляМасла поможет
>>754355> добавь в шапку ссылку на конфу в телеграмеЭто говно здесь не нужно.
>>754788При том что свитч с ресурсами не работает в модулях.
>>754822а if с ресурсами работает, да?
>>754851Ты для начала прочти как свитч работает и как иф.Да иф с ресурсами работает.
>>754945проиграл с дауна в голос
>>754987С себя что-ли? С какими долбоебами в треде сижу, не понимают что пиздят, какие-то блять мапы суют.Сука ну и даунята.
>>755004найс манёвры
>>755004Ты можешь нормальный пример привести? Тоже не понимают чем switch хуже.другой анон
>>755012Маневры у тебя в жопе тупоголовый.>>755015Блять, он не хуже, он не работает если сделать свитч с R.id.что-то там и поместить код не в главный проект, а в дополнительные модули - читай либу.
Тем временем гугл выиграл суд у оракла.
>>755026поехавший, свич у него не работает, а иф работает, пиздец просто
>>755030Как оно быть твердолобым уебаном?http://stackoverflow.com/questions/8476912/menu-item-ids-in-an-android-library-project
>>755026Ну емое, ты мог сразу объяснить что не работает тк:"В доп. модулях поля в сгенеренном классе R.id не final, а switch работает только с константами".P.S. А вот switch (when) в Kotlin работает и с такими полями.
>>755032норм
>>755033Вообще все началось с уебана который доебался до ифа, я просто сказал что этому есть место и где тоже сказал.Потом в меня полились тонны мочи, нахуй мне что-то объяснять?
>>753454Бамп вопросу.http://pastebin.com/9pPafJJ4Новый грэдл, убрал оттуда скам всякий, нихуя не взлетает. Пробовал подписывать вручную, удалять debug.keystore, даже .jks пересоздал - не помогло. Какие ещё варианты, ананасы?
>>755132Убери вообще signing, пусть твоим дефолтным подписывается.
>>755132версия градла
>>755138Убрал, смотри пасту.>>755139пикр
>>755149это плагин, даун.тебя про версию gradle спросили
>>755161Простите аутиста.
>>755164Откатывай плагин до стабильного: 2.1.0
>>755164И саму студию тоже
>>755220>>755198Не прокатило. Я уже откатывался до старой студии.
>>755032как там в 2011?
>>755231переставь винду
>>755231А плагина в buid.gradle?
Котаны, как мне почистить проект от говна?Дохуя скопилось всяких файлов непонятных, т.к. проект был создан еще когда эклипс был актуален.Как понять - какие файлы можно грохать?
>>755236У меня мак>>755243Вместе со старой студией был старый грэдл. Не помогло.
>>755259дык на мак же ставится винда
>>755258В lint есть проверка на используемость ресурсов.
>>755260Вот этого двачую. Уверен, что это решение поможет
>>755259Скриншот сюда давай, что было там видно:1) что старя студия2) что в build.gradle/dependencies стоит 2.1.03) ошибка
>>755260Но нахуя она там нужна?>>755278Опять это говно ставить?
>>755301а другие проекты собираются?
>>755304Да, все.
>>755309ну почисти проект, еба
>>755316Чистил и ребилдил. Это уже было.
>>755333Винду перестанови
>>755375Просто иди нахуй.
>>755333фоткай своё очко, я смогу помочь
Обязательно ли название приложения в маркете должно один в один повторять название в манифесте?
Где и как хранить Map<String, Set<Long>>? Ключей штук 10, значений в наборе ~10-200. Нужно просто не терять между запусками приложения. Для sql мелковато, для sharedprefs жирновато.
>>755874Сериализуй и сохрани в виде бинарника.
>>750609 (OP)Какими технологиями для отрисовки графики обычно пользуются успешные Android разработчики? Не одними же Layoutами всё верстают, например, пикрелейтед.
>>755966NDK + OpenGL.
>>755976NDK для меня не вариант, пишу на Java. Иные варианты?
>>755966
>>755986Что не так?
>>755976разве то что на пике не луще через какой-то движок написать?
>>755979В порядке убывания:LibGdx / Slick2D / LWJGLПоследний - API к OpenGL
>>755999>LibGdx / Slick2D / LWJGLЭто, как я понимаю, фреймворки и сторонние движки, верно? Этого бы мне не хотелось.А вот OpenGL отличный вариант, но как в него вкатиться?
>>755999>Последний - API к OpenGLВулкан?
>>755995Конструкторы игр? В /pr/? Уёбывай в /gd/ в свой Unity-тред.
>>756013Да я другой анон, просто сказал что на опенгл какой-то вздрочь будет мне кажется.
Наплыв школьников-гейм-девелоперов уже начался.
Сейчас заметил только, сдк занимает 30 гиг. Это норм?
>>756001http://www.startandroid.ru/ru/uroki/vse-uroki-spiskom/397-urok-168-opengl-vvedenie.html
>>756155Много хуйни ненужной установлено.У меня 9.8 Гб.
сап анон. крч пишу некую хуйню, и столкнулся просто с пиздец проблемой. есть listview или recyclerview, похую, в нем карточки, в карточке ебаных штук 40 TextView. вся это ебала листается пальцем вниз. и на отрисовке каждой карточки сука ебучая тормозит. заполнение карточки значениями я выпихнул в ASyncTask, стало тормозить меньше, но один хуй тормозит. кароч чо делать чтоб оно плавно листалось.
>>756169Так само же предлагает установить ее с нуля, от чего отказываться?
>>756225Сразу пример кода адаптера кидай.Можно еще пример иксемельки если итем большой.
>>756155У тебя там образов эмуляторов дохуя просто.
>>756254я с нуля сдк поставил, как почистить тогда?
>>756249это адаптер listview<script src="http://ideone.com/e.js/wbgv45" type="text/javascript" ></script>это асинктаск<script src="http://ideone.com/e.js/s37c3D" type="text/javascript" ></script>это xml карточки<script src="http://ideone.com/e.js/y1UMzu" type="text/javascript" ></script>
>>756254Внезапно папка system-mages 30 гиг. 20 гиг на версию 23, и 10 на пререлиз Н.Спасибо, удалил нахуй это говно.
>>756259Используй RecyclerView.
>>756269использовал. никакой разницы
>>756269там затычка проявляется в момент отрисовки нового cardview
>>756271Значит дело в твоём говнокоде
>>756259У меня ссылка открывает окно в треть экрана, я не буду это читать.
>>750609 (OP)X
>>756259Нахуя тебе инфлейтер в адаптере? Конечно, у тебя всё тормозить будет. Убирай его.
>>756259мне кажется, проблема в этой поеботе - ru.workcal.ExpGridView
>>756276а куда его запхать?
>>756276Ты что псих? Несешь херню.
>>756281А теперь увидел, нахер после консруктора еще инфлейторы создавать хуй знает.
>>756276Хуйню сказал и рад, пиздец.
>>756259Блядь, ты еще и в асинктаске всё это делаешь. Ты ебанутый?
>>756283У него инфлейтер и в конструкторе и в гетвью создается.
>>756281>>756283Ну как хочешь, лол. Тогда и не удивляйся, что у тебя всё тормозит.
>>756286это не я писал :)
>>756285Ну, это другое дело, получать его в конструкторе — явно лишнее.А вообще он нигде не создается, на него постоянная ссылка в контексте хранится, это не может влиять на производительность.
>>756286Инфлейтер в конструкторе сделать норма.
>>756289Да похуй, можно получить и в конструкторе и реюзать его везде. А вот как это работает я хз, возможно там не просто ссылка.LayoutInflater inflater = (LayoutInflater)ctx .getSystemService(Context.LAYOUT_INFLATER_SERVICE)
>>756291> возможно там не просто ссылка.А код глянуть, нет?
>>756292Мне впадлу, я сериал смотрю.
создание нового инфлейтора из гетвью убрал, ток один хуй ничо не изменилось
>>756291> LayoutInflater inflater = (LayoutInflater)ctx .getSystemService(Context.LAYOUT_INFLATER_SERVICE)Палю винLayoutInflater inflater = LayoutInflater.from(ctx)> А вот как это работает я хзОдин из паттернов же не помню какой. В контексте висит карта<string, object> со всеми сервисами, и ты по имени получаешь нужный.
>>756359>Палю винТак говоришь будто бы это не известно хоть какому-то деву с опытом больше месяца.>Один из паттернов же не помню какой. В контексте висит карта<string, object> со всеми сервисами, и ты по имени получаешь нужный. Круто че, буду знать, в сорсы особо не лазил, не знаю что там, вдруг какая-то лейзи подгрузка или еще чего.Алсо, сам юзаю эту штуку с мапой иногда, интересно как паттерн называется. А еще им удобно вешать делегаты
анончики подкиньте работы за еду. Моей зарплаты не хватает нихуя. Могу по вечерам и по выходным. В принципе плаваю как рыба в технология типа рхджавы, даггера батеркнайфа и ретрофита etc. Делаю все в MVP. Могу даже поучить по скайпу нубасов. Оставляйте контакты что ли...
>>756386upwork.com для даунов придумали, няш?
>>756386Трудно верится что плаватель как рыба в довольно сложных технологиях и решениях не может себя прокормить.
>>756392а че там сложного то лол?вот асунктаск это реально сложно.>>756391ага зарегался и тест прошел - у меня даже есть гугл плей с двумя аппами - да чето никто не бежит с деньгами ко мне
>>756411>а че там сложного то лол?>Ровная архитектура с абстракциями.>Депенденси инжекшн, особенно в виде даггера где куча всяких фич.>АрИкс - функциональщина внедряемая в ооп.>че там сложного
>>756411асинктаск сложно? Соболезную.Тест на сколько баллов? И гп сюда вкинь. Ты сам должен подавать заявки на предложения заказчиков.
>>756417Не корми зеленного. Я получаю свои 1200 и на еду хватает, нихуя из его перечня как следует не юзаю.
>>756419Тебе сколько? Как работу нашёл? На собесах что спрашивали?17-лвл студент(скоро бывшим буду), пашущий на дядю по знакомству за 25к.
>>756421Лол, первый курс не школота?23 уже, работать начал в 22 на 4 курсе, прогу учить целенаправленно но спустив рукава начал на 3 курсе, факультет итшный.Что спрашивали не скажу так как спрашивают начиная от джавы заканчивая сервисами, но ничего сверхъестественного.
>>756417>асинктаск сложно? Соболезную.>Тест на сколько баллов? И гп сюда вкинь. Ты сам должен подавать заявки на предложения заказчиков.Ну я кинул уже 10 и пока что пусто. Ну мб не как рыба но я знаю эти технологии и успешно их применяю. Гп кидать не буду ибо дианон. Теста на 3.15 но он не решает нихуя
>>756359> Один из паттернов же не помню какой. В контексте висит карта<string, object> со всеми сервисами, и ты по имени получаешь нужный.Не совсем, там какая-то хуерга для ленивой инициализации, но если упростить — то можно считать, что там просто ассоциативный массив.А LayoutInflater так вообще как поле класса хранится.
HashMap<String, Long> map = new HashMap<>();...map.put(key, Long.valueOf(0))Почему линт подсвечивает с unnecessary boxing? Нельзя же просто нуль передать?
>>756630Ты в курсе что начиная с Java 1.5 есть АВТОБОКСИНГ?
>>756633Да, в курсе. Но он не находит put(String, int), если просто ноль дать. Мне как-то особым образом инициализировать нужно?
О, все, нашел - map.put(key, (long) 0).
>>756641Еще можно: map.put(key, 0L)
>>756645О, спасибо.
Cherry Perry, если мы выпилим движущихся тянок, ты к нам вернёшься? Просто мне самому начал надоедать такой "динамический" концепт, согласно которому мы пилим всякую хуйню, которая придёт в голову. И да, у нас появился опытный и классный дизайнер.
>>756847У вас деньги есть?Могу присоединиться я.другой анон
>>756896Денег нет. Но в далёких планах запилить краудфандинговую кампанию.
>>756935Расскажешь что вы пилите?dlnamusic@ya.ru
>>756995Проверь почту.wt.......@gmail.com
>>756847Еще один довод почему ненужно идти в чат в телеграмме.
Мне нужно по данным с сервера генерировать относительно стабильные long айдишники (для адаптера). Элементы обязательно имеют одно уникальное поле, но оно строка (20-25 символов юникод) и не обязательно представляет собой число.Я думал посимвольно сдвигами сделать, но что-то таксибе вариант. Порезанный SHA/MD5? CRC32? Присваивать самому и хранить мне лень. Как лучше?
>>757319hashcode?
>>757319Можно лонги рандомайзером генерировать.
>>757321Вроде подходит, спасибо.
>>757319Если айдишники уникальны во время выполнения — завести переменную и инкрементировать её. Если всегда уникальны — порезанный md5/sha или вообще самому считать хэш строки. Вариант с отсутствием уникальности уже предложили.
Есть пакет common, в нем лежат пара абстрактных классов и интерфейсов. Нужно создать util пакет со всякими статиками, адекватно ли будет положить его в common?
Короче, собрал я разок проект с гугл плей сервисами 9 и все по пизде. Как быть? Не хочу переходить на fcm, я откатил обратно на 8.4, но не помогает блять.
>>757377> все пошло по пиздеИнформативненько.
>>757379java.lang.IncompatibleClassChangeError: The method 'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' was expected to be of type virtual but instead was found to be of type direct На стек не посылай, я думал здесь кто-то сталкивался с таким. Не хочу под firebase все в мыле переделывать.
>>7573819.0.1 поставь, исправили
>>757387Кхм, попробуй, спасибо.
уважаемые хипстеры, поясните пердуну что там с gcm/fcm.могу ли продолжить юзать gcm, и забить на новомодный firebase? зачем он нужен вообще?
>>757753файрбейз круче чисто внешне, да и кода поменьше будет. Всё интуитивно.
Господа, я правильно понял суть SharedPreferences?Я могу иметь несколько разных файлов(настроек) SharedPreferences для всего приложения и иметь к ним доступ из любой активити или фрагмента. А так же иметь несколько разных файлов(настроек) SharedPreferences для любого конкретного фрагмента или конкретной активити.
>>757753Уважаемый пердун напомните мне про GCM:1) Можно ли рассылать пуш всем юзерам, без указание конкретных senderId (или как там)?2) GCM может сам показывать нотификаций "по умолчанию" или нужно обязательно Notification создавать и вызывать NotificationManager.show(...)?3) Насколько увеличивается размер APK?>>757815SharedPreferences уникальны по имени в рамках одного приложения.Формально это xml файлы в папке /data/data/<package name>/shared_prefs/ с именами которые ты передаешь в getSharedPreferences(...)
>>757753По хардкору.Теперь немного меньше кода.Все остальное такое же примерно.ГСМ работает как и работал.Даже сделали миграцию с ГСМ на файербейс.
>>7578811. Шлёшь на адрес "/topics/global"мимокрок-школьник
>>757815>>757881Как правило, getDefaultSharedPreferences() достаточно, а что-то более сложное хранится в бд.
У меня тоже вопрос по SharedPreferences. Сохранение в них идет последовательно или параллельно? Например, у меня есть такой некий код, который где-то в сервисе шлет через PendingIntent сообщение, а потом в onActivityResult оно обрабатывается так:if(requestCode==ACTIVITY_AGENT_CODE && resultCode==KILL_PROCESS_CODE){ SharedPreferences.Editor editor= prefs.edit(); editor.putBoolean(IS_ACTIVITIES_ALIVE,false).apply();editor.putBoolean(YPS_KILL_ORDER,false).apply();android.os.Process.killProcess(android.os.Process.myPid() );}В результате IS_ACTIVITIES_ALIVE и YPS_KILL_ORDER часто так и остаются true, а вместо xml файла лежит такой же, только bak. Как мне сделать, чтобы данные таки сохранялись в SharedPreferences перед killProcess? (его убирать нельзя, он нужен)А еще, какая разница междуandroid:process=".updater"иandroid:process=":updater"в манифесте? Вроде, и то и другое сделает сервис отдельным процессом. Или нет?
>>758085> Как мне сделать, чтобы данные таки сохранялись в SharedPreferences перед killProcess?Использовать commit вместо apply.
>>758085Есть какой-то смысл делать apply несско раз друг за дружкой?> android:process=".updater"Там как-то не совсем понятно про процесс с двоеточием. Мне видится так: двоеточие делает новый процесс приватным для твоего приложения. То есть если ты делаешь какую-то вундервафлю из разных приложений, которые шарят между собой процессы, :update запущенный в одном не будет пересекаться с :update запущенным в другом. В рамках одного приложения я даже не знаю есть ли практическая разница, но гугл советует ставить двоеточие. Позапускай и посмотри как оно распределяется по пидам или вроде того.
>>756443а сервисы типа дофига экзотика ?
>>756386липовый скайп слеплю вечерком, поучишь ?) Я бы не отказался от небольшого пояснения за mvp и за пару тонких на мой взгляд моментов
У кого был опыт с выкладкой приложений с чужыми авторскими правами?Я написал кровлер для сайта-магазина (который не принадлежит мне), который собирает с него инфу и скидывает в бд на сервере. У бд есть рест-морда, к которой подключается приложение. При этом в приложении показываются и названия товаров, и их изображения. При этом в самом приложении покупки совершать нельзя, оно просто перекидывает на сайт.Каким образом мне все это оформить в сторе, чтобы меня не пидорнули за нарушение авторских прав?
Есть ли гайды на тему: создание API для взаимодействия с Bluetooth LE устройствами?Ясен фиг, что полно туториалов на тему BT LE, но всё это только для приложений уровня hello world годится.
Как забиндить сервис синхронно?К примеру есть у сервиса метод do_action(), который юзер вызывает по нажатию кнопки и в итоге, если сервис еще не забиндился - получим NPE или не произойдёт ничего.Как с этим бороться?
>>758660Цеплять обработчик на кнопку только когда сервис забиндится, очевидно же, или делать ее кликабельной только после onBind, а до того момента кнопка должна быть тусклой.
Котаны, не подскажете, как выпилить из realm скажем все объекты класса A у которых поле b имеет определенное значение c ? realm.clear(classname.class) не позволяет, а цикл, на каждой итерации делающий result.removeFromRealm(); походу просто не пашет.
>>758672Не юзать реалм.
>>758672Попробуй так:final RealmResults<A> result = realmInstance.where(A.class).equalTo("b", c).findAll();realmInstance.beginTransaction();result.clear();realmInstance.commitTransaction();
>>758679> clearВыпилен с первой версией. result.removeAllFromRealm() или как то так.
>>758682>это чувство когда использовал реалм в проекте на который забил хуй, так как тебе заплатили и вы разошлись, и там версия 0.88
>>758660Расскажите, а как такое возможно, что сервис при нажатии на кнопку не будет забинден? Если я бинд делаю в onCreate, запуск и соединение — быстрая операция, сервис 100 раз успеет забиндиться, прежде чем пользователь нажмёт на экран. За исключением, быть может, ситуаций, когда сервис в другом процессе находится, но тут я понимаю уже.
>>758717Ну вот googleApiClient хоть и не сервис (но внутри то там он есть), но как-то коннект не иногда происходит, возможно и у сервиса тоже что-то такое может случится.
>>758724Ну, этот сервис в другом процессе находится, поэтому соединение может долго происходить.
Посоны, а откуда брать новости о всяких новых плюшках для андроида? Типа коспиляция инфы о новых лэйаутах, новых версий сдк с чейнджлогами, новых версий популярных библиотек и прочего.
>>758795> новых версий сдк с чейнджлогами, новых версий популярных библиотекhttps://github.com/ben-manes/gradle-versions-plugin
>>758801Это не подходит, к сожалению. Нужно что-то более удобочитаемое, чем простое указание, что именно обновилось. Чтобы указаны самые важные изменения, описаны новые плюшки и т.д.
>>758805Заходишь на гитхаб своей либы, открываешь CHANGELOG.md и радуешься жизни.
>>758806Щас бы чейнджлоги каждый день по двадцать минут читать, в которых инфа о том, что теперь функция, которую ты не использовал, может принимать в качестве параметра новый объект, о существовании которого ты не догадывался. Или пытаться, например, понять по чейнджлогам, чем же ретрофит 2 выгодно отличается от предыдущей версии.
Что можно почитать хорошего про многопоточность в андроиде? Что бы объяснялось что лучше и когда использовать.Читаю сейчас Java Concurrency in Practice 2006 года. Еще туторилы здесь http://docs.oracle.com/javase/tutorial/essential/concurrency , но дошел до использования всяких java.util.concurrent.locks.ReentrantLock, Executor Interfaces и охуел, мне кажется такое уже надо всяким мидлам и сеньорам знать.
>>758808Посмотри курсы вандербильтского университета на курсере, можно не все, а первые 4-5 лекций. Каждая по полтора часа где-то.
>>758808Алсо, жабадоки тут нерелевантны, потому что чистая жавамногопоточность в андроиде вообще не используется, максимум - простенький new Thread(new Runnable()).start(); А для многопоточности используются Handler+Message или AsyncTask
>>758811Скинешь ссылку на курс? Что-то не могу найти
>>758813> для многопоточности используются Handler+Message или AsyncTask Как там в 2010-м?
>>758820https://www.coursera.org/course/posaconcurrencyhttps://www.youtube.com/channel/UCt-Wvc_ojTzGLpjhruIXYSw/videos - поиск по Concurrency>>758821>Как там в 2010-м? А что у тебя, в 2016м? Rx? Так это сторонняя либа.
>>750609 (OP)Аноны, опять про MVP, допустим есть типичный пример: список итемов и детализация, т.е. активити с двумя фрагментами в ландскейпе, и с одним в портретной ориентации. Как лучше реализовать тут MVP? Два презентера под каждый фрагмент? Тогда как заменять фрагменты? Сделать, чтобы фрагменты вызывали сами методы активити, и она уже сама решала че делать, это норм вариант? Или один презентер под активити, который будет отвечать сразу за два фрагмента?
Как можно сделать finish() для top-Activity в static контексте? Есть плохой вариант писать static Activity activity=this;где-нибудь в onCreate... Но после того как многократно поймал так NPE, больше не хочется. Суть вообще такова, что есть BroadcastReceiver, который принимает 2 сообщения. Поймав первое он должен будет сделать finish, чтобы потухло на экране приложение и создалась видимость мгновенного его завершения. Второе сообщение уже будет немного позже (0.1 .. 2 секунды), и его обработка будет уже реально завершать работу. Но чтобы receiver пережил finish, он должен быть static, а в static нет доступа к activity. Вот эта рефлексия:http://stackoverflow.com/questions/11411395/how-to-get-current-foreground-activity-context-in-android/28423385#28423385выдает пустой Map, например. Но должен же быть какой-то менеджер или еще что-то, чтобы получить доступ к стеку, правда же?
>>758822Ну хоть бы в early access
>>758823Слишком абстрактно расписал давай конкретнее. Так могу только сказать, что два презентера не нужны по определению MVP.>чтобы фрагменты вызывали сами методы активитиТолько если коллбэки. Фрагмент не должен иметь доступ к родительской активити.>>758828А если не статик ресивер сделать (бля, что это вообще за чудо), а просто интентсервис запускать? Он сделает работу, какую надо, и умрёт. А активити завершишь сразу, на это пофиг.
>>758828Ты хуйню какую-то нагородил.
>>758832> два презентера не нужны по определению MVPЧто ты несешь, больная скотина?
>>758832>>758828А, жопой прочёл вопрос, сорри. Пробовал регистрировать бродкастресивер не в контексте активити, а где-нибудь ещё? Или в манифесте, или сделать сервис долгоживущий?>>758836Сосни хуйца, ты не понимаешь сути мвп.
>>758832>два презентера не нужны по определению MVPпочему?мне понравился ответ тут https://toster.ru/q/225663 с двумя презентерами, что скажешь?
>>758838А, это другое дело. Мне показалось, что ты решил лепить по презентеру для каждого фрагмента, тем самым нарушая саму концепцию мвп. Если презентер слой будет независимо от масштаба приложения предствлен только двумя классами, каждый из которых делает свою работу, то это норм.
>>758837А ты понимаешь? Что-то не похоже.У каждого View должен быть свой Presenter.
>>758849>каждого View Ну что давайте хуярить для всех вьюх по презентеру? Для каждого текствью?Чего еще, добавить даже не не знаю.
>>758851view в MVP != View в андроиде
>>758849Ммм, бесполезные классы, вкуснаа. У меня сейчас проект на 50к строк, всё запихано в один презентер класс (строк 800 где-то), и при обновлении данных он просто уведомляет подписавшиеся на обновления фрагменты (просто паттерн обсервер с регистрацией на onAttach). Далее фрагменты получают уведомления, вместе с int кодом, который определяет, что именно было изменено, и если полученный код им важен, то они обновляют соответствующие вьюхи. У меня сейчас порядка 30-40 разнородных фрагментов и все они прекрасно работают по такой системе. Если бы я для каждого фрагмента делал бы презентер, я бы застрелился.
>>758851Ага, вот стало и понятно, в чем твоя проблема: ты не отличаешь View как компоненты архитектуры от класса android.view.View.
>>758852По твоей логике для каждого фрагмента должен быть презентер, теперь если упустить фрагменты и заменить их на фловы допустим у тебя будут твои кастомные вью с разделением которое ты скажешь. И да это может быть 1 текствью, теперь вопрос, как остановится и перестать плодить ненужные вьюхи?>>758854Детектор чини.
>>758853Ну и нахер тебе Presenter тогда? То, что ты делаешь, это не MVP.
>>758853> Далее фрагменты получают уведомления, вместе с int кодом, который определяет, что именно было изменено, и если полученный код им важен, то они обновляют соответствующие вьюхиДа это же обычный eventBus, который все обсирают.
>>758853Я другой анон, так а куда ты вынес запросы например? Фрагменты же юзают разные запросы например по нажатию на кнопку а у тебя выходить один презентер со всеми листенерами?
>>758856Какие еще фловы? О чем ты, болезненный?
>>758857Бля, ладно. Разрешаю тебе ебаться дальше с кучей презентеров, а сам пойду попрограммирую вслать на полуавтоматизированном коде.>>758861Фрагменты по нажатию на кнопку отправляют каллбэк в активити, и та что-то делает. Либо формирует запрос на сервер (я использую ретрофит, запрос по коллбэку обычно обновляет мой не-презентер класс, который в свою очередь обновляет фрагменты), либо показывает другой фрагмент и активити (тут вообще не нужно никакого взаимодействия). Напрямую из фрагментов делать вызовы в презентер - зашквар, потом никогда не разберёшься, что откуда вызывается. Максимум - чтение данных из презентера, без изменения оных. Ящитаю, что в идеале фрагменты должны вообще иметь ноль логики и управляться только за счёт вызовов родительской активити, но у меня в силу некоторых причин (отсутствие дизайна в начале проекта) не получилось это реализовать.
>>758862Я о том что у тебя придурка вьюха это фрагмент, т.е. одновременно могут отображаться 2+ вьюх следовательно столько же презентеров будут работать. Такая абстракция ничем не мешает тебе делать презентер на каждый элемент и если начнешь пилить без фрагментов прекрасно это поймешь.
>>758853>всё запихано в один презентер класс (строк 800 где-то)Ты сейчас жалуешься или хвастаешься?
>>758868Показываю, какой у меня толстый презентер Это 800 строк простых геттеров-сеттеров.
>>758866>начнешь пилить без фрагментовне начну
>>758870ну не переживай, потом отрефакторишь, когда время будет, станет нормальная архитектура
>>758865>Фрагменты по нажатию на кнопку отправляют каллбэк в активити, и та что-то делает. Либо формирует запрос на сервер (я использую ретрофит, запрос по коллбэку обычно обновляет мой не-презентер класс, который в свою очередь обновляет фрагменты), либо показывает другой фрагмент и активити (тут вообще не нужно никакого взаимодействия).Рили у тебя не мвп, у тебя своя архитектура, твой презентер это практически ивентбас. >Напрямую из фрагментов делать вызовы в презентер - зашквар, потом никогда не разберёшься, что откуда вызывается. Максимум - чтение данных из презентера, без изменения оных. Слишком сильное заявление, тебе не кажется? Но так работает mvc если что.>Ящитаю, что в идеале фрагменты должны вообще иметь ноль логики и управляться только за счёт вызовов родительской активити, но у меня в силу некоторых причин (отсутствие дизайна в начале проекта) не получилось это реализовать.В идеале нужно делать активити вьюхой и отказываться от фрагментов.
>>758837не пробовал... Я пока не очень хорошо с ними знаком вообще. Знаю, что где-то должен лежать зареганный объект, принимать intent-ы и чего-то с ними делать. И что работает он по фильтру-по action. Погуглю манифест, спасибо. Только пока не понимаю как можно откуда-то издалека будет управлять этим Activity. Все это вообще нужно было, чтобы пока сервис сделает все свои дела, отправит запросы о закрытии приложения и статусы, показать пользователю, что приложение потухло. Это не так, и после того как сервис все отработает, в контексте MainActivity еще надо было штуку одну сделать, но его живой объект уже не требуется. Просто не хочется, чтобы приложение тухло долгое зависящее от соединения время
>>758871В любом случае твой подход становится от этого не менее хуевым.
>>758873Никогда
>>758876Это не мой подход, даун.Ты уже обобрался, когда дал понять, что View от android.view.View не отличаешь. Твоё мнение никому теперь неинтересно.
>>758873Ну давай, расскажи, как же мне отрефакторить? Неужели разбить на десяток классов, которые будут иметь такую же логику?Ай в пизду, ты вообще, похоже, не понимаешь в программировании.>>758874>Слишком сильное заявление, тебе не кажетсяНе кажется. Активити - вью компонент для связи с презентером. Если С презентером связана не только активити, но и фрагменты - это лишние связи в архитектуре.>Рили у тебя не мвп, у тебя своя архитектура, твой презентер это практически ивентбас.Хуй с ним, я, конечно, могу спросить, почему мвп исключает ивентбас, но только мне похуй. Я чистую реализацию ивентбаса никогда в жизни не видел и не собираюсь смотреть.
>>758881Придурок, это уровни абстракции, я тебе уже привел пример почему ты рахит с несколькими презентерами на экране одновременно.
>>758885>разбить на десяток классовда, где каждый класс выполняет свою работу, для этого и создавали ООП, это, видимо, ты чего-то не понимаешь в программировании
>>758885>Не кажется. Активити - вью компонент для связи с презентером. Если С презентером связана не только активити, но и фрагменты - это лишние связи в архитектуре.Из активити тоже нужно выносить логику, я об этом. А у тебя она как раз в активити.Просто можно делать мвп с одной активити и кучей фрагментов, тогда презентеры будут работать с фрагментами но это похуй.>>758885>Хуй с ним, я, конечно, могу спросить, почему мвп исключает ивентбас, но только мне похуй.Почему исключает, нет. Просто ты ивентбас презентером называл.>Я чистую реализацию ивентбаса никогда в жизни не видел и не собираюсь смотреть.А это ты зря, ладно тут анонимный форум, но в реальности такие слова отметка долбоеба до конца жизни.
>>758885Это ты не понимаешь в разработке приложений. Прочитай про SOLID на досуге, много нового узнаешь.
>>758889Вы не правы, всего доброго.>>758890>А у тебя она как раз в активити.Ну, я вынес все вызовы к серверу в отдельный класс. В активитях остались только сотни коллбэков от фрагментов, которые обрабатываются в 1-3 строчки.>>758893Читал, сложна без примеров. Похоже на пердёж в лужу, который неприменим в реальной жизни.
>>758894>Ну, я вынес все вызовы к серверу в отдельный класс. В активитях остались только сотни коллбэков от фрагментов, которые обрабатываются в 1-3 строчки.дело в том что вызываешь ты эти 3 строчки не там где нужно если следовать патерну.>Читал, сложна без примеров. Похоже на пердёж в лужу, который неприменим в реальной жизни.Ладно парни у нас тут неадекват, хватит кормить этого зеленого.
>>758894эталонный дегенерат
>>758894> В активитях остались только сотни коллбэков от фрагментовНахуя? Почему фрагмент у тебя сам не выполняет запросы, а в активити вынести только навигацию между фрагментами?
>>758896>>758897Научите солиду, посоны. Киньте примеров. Я вообще-то сюда и зашёл первый раз за дохуя месяцев, чтобы узнать, что там нового в андроиде вышло.>>758899Потому что это будет слишком большая паутина и трудноисправляемая вызовов. Активити сравнительно мало (штук 10), фрагментов же штук 50. А если мне захочется один из вызовов как-то поменять?
>>758894> SOLID> пердёж в лужу, который неприменим в реальной жизни. Понятно. Можешь не продолжать.
>>758906Вот блядь. Нет бы направить на путь истинный, нет, нахуя, лучше оскорбить и повысить за чужой счёт свою самооценку (вот он не знает солид, а я знаю, давайте-ка я его нахуй пошлю, ай да я молодец).
>>758910>>758905Пиздуй гуглить блять, заебали уже.Вы блять в поисковик не можете чтоб найти инфу по принципу которому больше лет чем вам и всякий гайдов больше чем вы в свое жизни прочли.
>>758910Объясняю: проблема не в том, что ты не знаешь SOLID. А в том, что ты называешь его> пердёж в лужу, который неприменим в реальной жизниА на все несогласия со своей архитектурой отвечаешь> МНЕ ТАК УДОБНО, А ВЫ НЕПРАВЫ
>>758910Если ты чего-то не знаешь, то какого хрена ты об этом кукарекаешь тогда? Ты себя только полном долбоёбом так выставляешь.
>>758913Бля, я когда работу искал, прочитал сотню книжек, прошёл курс по agile, читал и про solid, и mvp учил, и в жопу носорогу заглядывал. Да только вся инфа, которую я нашёл - субъективна и подходит только в конкретных случаях для маленьких приложений.>>758915> пердёж в лужу, который неприменим в реальной жизни>Читал, сложна без примеров. Похоже на>А на все несогласия со своей архитектурой отвечаешьНу, посоветовал мне человек разбить одиноднородный класс на 10 классов, хуй пойми зачем. Ну да, я не согласен. И да, он не прав. Хорошо, если именно это является причиной твоего недовольства, то мне нет повода расстраиваться.
Вас как почитаешь, вспоминается только это
>>758795Бамп.
>>758828Ну ладно, а если отвлечься от receiver-а и прочего. Разве нет какого-то обращения к системе, чтобы получить back-stack или объекты Activity? Мне кажется, это настолько же естественное действие, как получить какой нибудь очередной системный manager
ДА ИДИТЕ ВЫ ВСЕ В ПИЗДУ СО СВОИМ МОДНЫМ MVP! КАК БЛЯТЬ ВОБЩЕ МОЖНО ЧТОТО ГОДНОЕ КРОМЕ ХЕЛЛОВОРЛДА НАПИСАТЬ С ПОМОЩЬЮ ЭТОЙ ПАРАШИ!? ВОТ НАПРИМЕР У МЕНЯ ЕСТЬ АКТИВИТИ С ВЬЮФЛИППЕРОМ И МНЕ НУЖНО ПЕРЕКЛЮЧАТЬ ЕГО СОСТОЯНИЯ ПО НАЖАТИЮ НА КНОПКУ, КАКИМ БЛЯТЬ ХУЕМ Я УЗНАЮ ИЗ ПРЕЗЕНТЕРА КАКОЙ ЧАЙЛД СЕЙЧАС ОТОБРАЖАЕТСЯ (ПОДСКАЗКА: НИКАКИМ БЛЯТЬ! НЕЛЬЗЯ УЗНАТЬ, ПОТОМУ ЧТО ПРЕЗЕНТЕРУ ДОЛЖНО БЫТЬ СТРОГО ПОХУЙ НА ВЬЮ) И КАК В ТАКОМ СЛУЧАЕ ХОТЬ ЧТОТО АДЕКВАТНОЕ ПОСТРОИТЬ ИЗ ЭТОГО ГОВНА И ЭТИХ ПАЛОК?! НАСЛУШАЮТСЯ НА СВОИХ КОНФЕРЕНЦИЯХ ГОВНА И ЕБУТСЯ ПОТОМ С НИМ!
>>758950Тут явно нужно объединить ViewFliper+Button в какую-то кастомную View.
>>758956Ты в любом случае соснешь, потому что по хардкору решение на какую вью переключать должен принимать онли презентер, грубо говоря ифы должны быть не в самой активити, а в презентере, но какая конкретно сейчас чайлдвью отображается ты узнать из презентера не можешь, короче нахуй и в пизду. Скорее всего скоро набегут синьйоры с 1ккк в минуту и обзовут меня неосилятором и позором профессии.
>>758950двачую, хуярить всё кашей намного лучше, заебали ети хипсторы
>>758969https://www.youtube.com/watch?v=00AKKn0XVxw
>>758915вот вкотился в IT мир, и понял что это какая болезнь в этой сфере. Люди ну прям очень трудны в общении, что-то сказать другое, что не соответствует мнению человека невозможно. Шлют сразу нахуй, начинают обсмеивать. Эта некая свобода собенно фрилансеров просто губид пиздецки. Твой пост идельно всё описывает. Вобщем схоронил скрин...
Можно как-то в студии указывать в тудушке к какому таску она относится? Вроде// TODO remove this stub when #taskref is doneи чтобы студия это как-то понимала, автодополнение там или еще чего.
>>759051Плагин поищи. Думаю есть такой с синхронизацией с джирой.
Нубский вопрос. По клику на кнопку появляется что-то вроде плавающего фрагмента попапа, по второму клику он убирается. Мне нужно сохранить созданный фрагмент в поле и реюзать или каждый раз new Fragment()?
>>759105Ты вообще уверен что тебе нужен фрагмент?Как ты вообще его показываешь/скрываешь?
>>759123Нет, думаю не нужен. Я в общем более-менее разобрался.
>>758466Я плохо помню свои мотивы. Обычно я использую эту строку, чтобы одно значение написать. А тут два пришлось, так что было ctrl-c/ctrl-vВообще надо получше понять разницу между commit и apply, потому что внедрив это, у меня и проблемы с многопоточностью решились, хотя целый день до этого пиал обходные пути по этой причине. Спасибо, кстати, большоеЯ уже не помню почему стал писать через точку. Пробовал и тот и другой вариант, разницу почти не понял, но через точку было чем-то лучше. Кажется, через двоеточие дох вслед за процессом приложения и процесс сервиса, хотя они и должны были быть независимыми. Уже не помню
>>759248> Вообще надо получше понять разницу между commit и applyCommit сразу пишет в файл, apply не сразу.
Ощущение, что сообщения от PendIngIntent приходят через раз. То летят, то не летят. Может такое быть?
>>759248> Вообще надо получше понять разницу между commit и apply, потому что внедрив это, у меня и проблемы с многопоточностью решились, хотя целый день до этого пиал обходные пути по этой причине. Спасибо, кстати, большоеПрочитай джавадок и поймёшь в чём разница. Один метод — синхронный, другой — нет.
>>759408О, спасибо!
>>759415С третьего раза только, дэ?
Посоны а можно на ведре пользоваться управляемыми контейнерами с cdi? Какие реализации есть?Мимо энтерпрайз-примат
Ну тип хочу что то уровня манаджедбинов с их инжекцией в контроллеры
>>759436>>759432Никогда такой хуйни в ведре не встречал.
>>759443Ух епт. А как вы с сервисами работаете? Через статические классы чтоли ?
Например я запилил бин для каких то целей. Мне в каждом контроллере его вручную инстанцировать? А если мне синглтон нужен. Или это фабрика
>>759460Тебе что-ли нужно Dependency Injections?Тогда бери Dagger2, Dagger или RoboGuice если он еще жив.
>>759465Ага. Спс
>>753437А зачем ещё что-то? Я себе сделал в несколько строк обертку чтобы тайм-аут был и все
>>759455Ты про системные сервисы, которые возвращает getSystemService, или android.app.Service, или о чем-то другом?
>>759486хватит траллить
Какие есть способы оптимизации приложения в плане энергопотребления?Какие инструменты есть для этого?
>>759921чем меньше ваш код выполняется, тем лучше чувствует себя батарея. ваш к.о.
>>759941Чем меньше включен экран тем меньше тратиться батарея. Для этого асинхронщина.
У кого проект и нужны люди?
>>760009Шо на каникулах нечем заняться?
>>760009Пиздуй в фурряч.
Антон, покритикуй - https://github.com/pacodelavega/GithubDemoЯ никогда не устраивался и не работал андроид-разработчиком и не знаю, как там всё принято.Тестовое задание:Необходимо сделать приложение для поиска пользователей на github (https://developer.github.com/v3/search/#search-users)Дизайн как в гугл плей, т.е плавающее окошко поиска в верхней части экрана, которое уезжает по свайпу вниз и выезжает по свайпу вверху (независимо от уровня прокрутки вниз, см. гугл плей). Внизу recyclerview с списком найденных пользователей. Поиск из плавающего окошка, по мере ввода символов.Желательно использовать следующие инструменты и библиотеки: RxJava, Retrofit, Support library, Realm
>>760078На джуна сойдет.
>>760078Неплохо, но ничего особенного. Хотя лично мне нравиться такая компоновка model/service/activity.Я еще модельки сделал бы immutable (раз делаешь с упором на функциональщину).Вот https://timboudreau.com/blog/json/read сайт генерит Java класс из JSON без сеттеров.Ну и написал бы на котлине конечно.Из минусов: нет обработки ошибок, нет обработки слишком частого ввода нет realm, хотя в пизду его.
А как вы обычно хуярите класс предоставляющий функционал ретрофита, с возможностью выйти из сессии и начать новую? Синглтон? Или может создавать в Application.onCreate, а потом инжектить?
>>760144Что значит выйти из сессии?
>>760084>>760140Спасибо за отзывы, обработку ошибок добавил. В таком задании ожидаются подробные комментарии и юнит тесты? Хотел добавить, но толком и нечего комментировать и тестировать.>нет обработки слишком частого вводаЭто как реализовать? Я RxAndroid не пользовался никогда до этого. Добавить в:users.subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Users>() строчку:.throttleLast(500L, TimeUnit.MILLISECONDS)Чтобы обрабатывал последний запрос после которого прошло 500мс?
>>760224Тебе нужен либо PublishSubject c debounce, в который ты будешь передавать текст из колбэка, либо использовать RxSearchView с тем же debounce.Да и хули ты тупишь, это самый каноничный пример использования Rx, хоть копипасти себе весь проект у какого-нибудь хипстера на medium.com
>>760147Ну вот пусть у меня был токен ZW1haWw6IG11ZGFrQG1haWwuY29tIHBhc3M6IHBvYzEzNGF6YUxPWA==, с ним я делал всякие запросы, отправлял его в хедерах, а потом юзер нажал logout, значит надо перестать этот токен сувать в хедеры. Значит надо его стереть, вот и возникает вопрос - где и как его хранить, цеплять то понятно что в билдере прицепить интерсептор.
>>760251В шаред преференсах, в файле с синхронной обреткой.
>>760254Что-то как-то сомнительно, если так, то interceptor'у нужен будет доступ к SharedPreference. Не будет ли он с диска каждый ебаный запрос читать? Оно-то конечно в отдельном потоке, но все же.
>>760258Зато не сотрётся при закрытии процесса приложения. Я сделал так, мне норм.А для реализации подобной фигни в ретрофите (а точнее в OkHttp) нужно сделать кастомный CookieStore и установить его в сессию через функцию setCookieJar.мимо
>>760258>>760260Вообще, если напрячься, то можно сделать что-то типа подгрузки из sharedPreferences при иниализации сессии и дальнейшее хранение в переменной типа Map (как в дефолтной реализации CookieStore), если смущает постоянное обращение к SharedPreferences (хотя я не пойму, чего в этом плохого)
>>760260>>760264Действительно, при смерти процесса может хуйня случится, ну раньше я и в переменную писал и в SharedPreference и при открытии приложения смотрел есть ли валидный токен, если был, то восстанавливал его. Посмотрим на этот кукистор.
>>760267Сорри, я тупанул немного. Мне почему-то показалось, что ты в кукисах токен передаёшь. Если он отдельным хедэром, то можно в интерсептере передавать, как ты и делаешь, просто стирать при логауте из преференсов. Просто в OkHttp в интерсепторах нельзя передавать кукисы, они перезаписываются, поэтому мне пришлось велосипедить. К тебе это не относится, забудь.
>>760258> Не будет ли он с диска каждый ебаный запрос читать?Не будет, ведь шаред преференсы кэширующие в памяти.
>>760274Тогда заебись вообще.
Аноны, есть один старый проект, который юзает карты. import com.google.android.maps. почему то не находит, хотя подключил google-play-services.jar из того самого проекта. Но странно, что он находит вот это - import com.google.android.gms.maps., но там измененные классы и мне не очень хочется все переписывать
>>760397Очень старые сервисы у вас батенька. Уже 9 вышли. Боюсь проект нужно переделывать под новые. Но тут я смотрю вообще говно динозавра, если обратить внимание на способ подключения facebook'a и actionbarsherlok/
Нуб. Нужно вытащить 1-50 записей из базы, зная их айдишники (уникальные поля). Лучше делать один селект с WHERE IN (id, id...) или много селектов? Какой вариант хуже и насколько?
>>760708Я считаю, лучше один, чем несколько.
>>760713Ящитаю тоже, но основу для этого не имею, точнее имею, но учитывая мое незнание того как на самом деле работают базы, эта мысль вряд ли верна.
>>760708Один конечно, так как один реквест к базе.
>>760727Окей, спасибо.
>>760708Можно создать временную таблицу, заполнить ее айдишниками и SELECT... JOIN...
>>760733И это 100% лучше чем where in?
>>76074942% Я ебу что ли ты задачу вообще не описал. Только учти что у SQLite есть ограничение на размер текста запроса.
Господа, а знание какого еще языка будет очень полезным для андроид разработчика? Может кто пояснить? В голову приходит C, C++, так как сам андроид на них написан. Ну Kotlin еще.
>>760765Clojure оффкозз, в будущем все будем писать под мобилки на ClojureScript + ReactNative
>>760762А задача важна? Ну записей ~500 с 7 полями, айдишники в них это BaseColumn._ID primary key, как-то получаю список 10-50 этих айдишников, и нужно вытащить что-то с данными сделать.Я уже решил делать на where in, но если джоином 100% лучше, то запомню на будущее.
>>760765Haskell, Perl, Verilog. Так или иначе пригодится.
ктонибудь юзал AccountManager системный? думаю не засунуть ли туда логин со своего аппа? как считаете, а? а?
>>760775Не связывайся ты с Android "сервисами" пока этого явно не потребует бизнес-задачи.Меньше нахлебаешся с фрагментированностью/"изменением поведения" его API.
>>760733Вот так майндфак ты тут разводишь.
Че вы книг в шапку не добавите? Думал, что кроме The Busy Coder’s Guide to Android Development нихуя книг нормальных по андроиду и нет. А тут порылся, а их не так уж и мало, накачал вот, сижу читаю.Bill Phillips, Chris Stewart, Brian Hardy, Kristin Marsicano - Android Programming: The Big Nerd Ranch Guide (2nd Edition) - 2015 - Вот эту прям вообще все хвалят, добавьте в шапку, если кто читал и может подтвердить, годно или нет.
>>760946Ну давай расскажи чем это лучше d.android.com/training
>>760772Нахуй такое будущее.
>>760958Потому что есть разные способы подачи информации. Одним удобно учиться по одной книжке, другим по другой, 3-м вообще по видеоурокам.
>>761081> неосилилПечаль, я думал там что-то интересное чего нет офф. доках.>>761005> Нахуй такое будущее.Чому? Clojure язык богов + в ReactNative работаешь с нативным UI (это тебе не парашный фонгап с JS).
>>761085>офф. доках>Clojure язык богов + в ReactNative работаешь с нативным UI (это тебе не парашный фонгап с JS)А вот и илита /pr подъехала, с охуительными историями, ясно.
Кто знает как получить папку карты памяти? Я написал приложение, использовал Environment.getExternalStorageDirectory(), и уже думал, что справился, но вчера дал другу потестить. Говорит, что да, он открывает ExternalStorage, но он не равен sd-карте. Рылся в гугле, пытался понять. Нашел, что есть какой-то SecondaryStorage, но что-то уже голова кипит от всех этих неожиданных знаний. С другим другом общались, он сказал, что то у первого телефон странный, херня какая-то. Ну, я написал тогда такой код:http://pastebin.com/PziFL1s2Просто чтобы проверить что прочитается. На одном моем устройстве работает хорошо. На другом выдает или карту памяти, или другое хранилище, если карта отсутствует. А друг так вообще сказал:"крешится при открытии"Нихрена не понимаю в чем дело
>>761239У меня 2.3.3Второй 4.1У друзей 5.1, но разные устройства
Есть фрагмент во вьюпейджере, onCreateView фрагмента создает какие-то вьюхи, типа mTextView = (TextView)...После onDestroyView мне о созданных вьюхах нужно забыть? Или стоит делать if (mTextView == null)... в onCreateView?
А какой самый компактный и удобный фреймворк для автоматического определения вьюшек? заебался писать столбцы findviewbyid, хочется что-то типа@Inject{R.id.textview}TextView mTextViewи чтобы этим функционалом всё и ограничивалось.>>761260Быстрее самому затестить:if (mTextView == null) Log.i(TAG,"обнуляется");else Log.i(TAG,"не обнуляется");и попрыгай по вьюпейджеру
>>761309>самый компактный и удобный фреймворк для автоматического определения вьюшекButterknife@Bind(R.id.huy)Huy pesdaв onCreateButterKnife.bind(this);
>>761312Спасибо.
>>761309Тка я прыгал, они не нулятся, я ведь их нулями не забивал в onDestroyView. Просто думал адекватная ли это вообще практика что-то делать с вьюхами после onDestroyView фрагмента. Доки только говорят, мол, освободить ресурсы относящиеся к вьюхам в ондестройвью.
>>761316Ты, возможно, просто недалеко прыгал, потому что вьюпейджер не всегда уничтожает фрагмент при смене страницы, это зависит от используемого адаптера. В каком-то адаптере сохраняются 1-2 соседних фрагмента, в каком-то сохраняются все.
>>761318Анон, я все стадии логировал, обычный (не StatePager) адаптер просто делает onDestroyView табам, которые дальше +1 с обеих сторон. Думаю все же можно реюзать созданные вьюхи, ведь пересоздавать стоит только когда это имеет смысл для логики фрагмента.Просто боюсь если вдруг не знаю какую заковырку, которая потом встанет боком.
>>761325 Ага, все, нашел по теме:http://stackoverflow.com/questions/18637134/fragment-should-i-reuse-view-in-oncreateview-and-how-should-i-do-that
>>761309Android DataBinding, мне зашло на отлично.
>>761239> Кто знает как получить папку карты памятиПросто забей. Это анальная боль еще та, ведь то, что возвращается Environment.getExternalStorageDirectory() задается производителем девайса. Если он ленивый ублюдок и сделал еще внутренней памятью первый слот под флешку а второй доступен для пользователя, то тебе будет возвращаться именно первая внутренняя память.И лечится это только костылями уровня проверки монтированных каталогов в /mount.А на 4.4 ты вообще туда хуй че запишешь.
>>761410Ну с китката уже завезли документ провайдер, а на лолипопе он уже вменяемый. Только вот на некоторых китайцах его нет, такой-то лол. А до него только ебля: http://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0
А чего за столько времени никто не сделал супер библиотеку, которая со всем этим зоопарком разбирается?
>>761434Сделай, хули.
>>760765Asm, brainfuck, f#
>>761440У меня нет возможность такое как следует оттестировать. Не то чтобы я собирался.
>>761445Никто не хочет давать не гарантированное решение, потом еще хуями закидают.
Как совместить VK SDK с RXJava?
>>761554что тебе именно надо совместить?
>>761554Берешь и оборачиваешь колбэк в Observable.create.
>>761410>Просто забейНу как тут забить, если мое приложение работает с пользовательскими файлами... На карте они или где-то еще - не так принципиально. Просто нужен проводник по местам, где эти файлы могут оказаться (скорее всего, они были переброшены с ПК, и пользователь ожидал использовать их через всяке приложения). Но если все будут игнорировать эти носители, то что, скоро не останется плееров, файл-менеджеров, галерей, читалок? Как они работают, и на каждом устройстве? Или в каждом файл-менеджере написана тысяча костылей, чтобы он мог везде работать? Я просто думал, что андроид позиционируется как платформонезависимая система. Иначе бы в требованиях писали, что нужен не 4.2 андроид, а самсунги такие-то, соньки такие-то и т.д.
>>761309> самый компактный и удобный фреймворк для автоматического определения вьюшек?Что же вы юродивые какие, на вот мой (написал за 5 минут):пик 1 - фреймворкпик 2 - пример использования (просто тип и типов в дженерике)Писать надо на нормальных языках.
>>761597Нормальноязычный, у тебя же есть kotlinx.android.synthetic
>>761601Это как пример захотелось самому такой написать.Для себя я юзаю собственный DSL для связки UI и MVVM, общий для Android/iOS.В итоге кода получается столько же как с кодогенераторами.
>>761608Ты себе не представляешь, как ты меня бесишь этим италикболдом. Перекатывай тред давай лучше
>>761612Я тебе сейчас перекачу, будет: Разработка на Kotlin под Android тред №21
>>761608А как ты под гейос ебашишь?
посоны, реально ли в ведре юзать svg для иконок? сервер хочет присылать, но чет я погуглил, svg походу только можно сконвертить в vector-drawable, которые завезли только в lollipop
>>761727>Сервер>присылать svg-картинкиВы там ебнулись? Нихуя у тебя работать не будет. Если это иконки действий то засунь из сразу в апк. И студиия сможет сконвертить их в png, сможешь ограниченно пользоваться ими почти как vector-drawable до лолипопа. Но смысл в том что она сгенерит фолбэк из пггшек при сборке, а никак не в рантайме.
>>761410> Просто забей. Это анальная боль еще та, ведь то, что возвращается Environment.getExternalStorageDirectory() задается производителем девайса. Если он ленивый ублюдок и сделал еще внутренней памятью первый слот под флешку а второй доступен для пользователя, то тебе будет возвращаться именно первая внутренняя память.Это нормальная ситуация. External Storage был картой памяти лет 5 назад, сейчас это всегда внутренняя память для свободного использования.
>>761621> Разработка на Kotlin под Android тред №21Охуенно. Там и сиди только.
>>761239Продолжение истории.Прошлый код хорошо пошел на моих устройствах, на устройстве первого друга выдал внутреннюю память, а еще у троих тупо вылетел и не стал запускаться.Я взялся воплощать понятный моим мозгам способ:http://stackoverflow.com/a/19831522В результате, на моих оно по прежнему работает, у первого друга вылетает с ошибкой, а от второго ответа пока нет. Ошибка в последнем коде у первого друга совпадает с ошибкой в первом коде у остальных:java.lang.NullPointerException: Attempt to get length of null arrayhttp://pastebin.com/hAq7yuAmТ.е, я получил Environment.getExternalStorageDirectory(), который был не nullПотом я получил его родителя rootFile, файл по которому существует и не является файлом. Однако rootFile.listFiles() возвращает null, потому что...>Returns an array of files contained in the directory represented by this file. The result is null if this file is not a directory.Значит rootFile не файл, не папка. Но что это, мать вашу, такое вообще? Как такое может быть?
>>761934> Environment.getExternalStorageDirectory().getParent();Плохая идея.> Но что это, мать вашу, такое вообще?https://en.wikipedia.org/wiki/Inode
>>761727> реально ли в ведре юзать svg для иконокРеально, но лучше не надо.compile com.caverock:androidsvg
Привет, андроиды.Меня интересует вопрос, можно как-нибудь захватить изображения с телефона и передать на компьютер, без установки на компе IDE?Что-то не гуглится ничего по этому поводу.
>>762030Сделать скриншот - обычно кнопка питания + кнопка громкости вниз.
>>762030https://developer.android.com/studio/command-line/shell.html?hl=ru#screencapКачаешь отдельно adb и делаешь.
>>750609 (OP)ПЕРЕКАТhttps://2ch.hk/pr/res/762039.htmlhttps://2ch.hk/pr/res/762039.htmlhttps://2ch.hk/pr/res/762039.htmlhttps://2ch.hk/pr/res/762039.html