Android Development Thread 2.0Обсуждаем разработку под Android, ждём выхода новых Нексусов, смеёмся над седьмым гейфоном.FAQ> Хочу вкатиться в разработку под Android!Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.После этого можно открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.> IDE и инструменты?Android Studio — основной инструмент разработчика. Кроме неё потребуется Android SDK (устанавливается вместе со студией).> Мануалы?- Официальная документация: 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. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.- Xamarin — кросс-платформенный фремворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия.- PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.Предыдущий тред: https://2ch.hk/pr/res/829054.html
Бонус
>>838621это джун?
>>838627Да. Вернее, даже пред-джун, ибо тестовое задание для стажировки.
>>838621>отсутствие крашейВозьми молоток с собой на проверку и отбивай проверяющим по пальцу за каждый не-нексус. А лучше — отрезай ножницами по металлу.>code-style от GoogleКакой бля code-style от Google? Тем более оно, сука, всё равно в одинаковый байт-код соберётся, лишь бы читать можно было.Напридумают хуйни всякой, а потом ебут друг друга в жопы.
>>838630ну норм, дефолтное задание, только вот адаптация под планешты че то дохуя
>>838673Удвою, планшеты на андроиде нахуй не сдались, это рынок винды и iOS.
>>838598 (OP)Ты старый ОП?
>>838621> Тестовое задание на стажера судя по сложности сразу в Google> KotlinА ха ха наконец-то
>>838490Зочем?Ну ладно может таки переведу и на хабр выложу.
>>838598 (OP)Ты что с шапкой сделал уебан?
>>838793Хорошая красивая шапка, вместо прошлого уебища.
>>838748Нет, я старый оп.Проебали нумерацию, какое-то говно в шапке на три строки.>Альтернатива джаве >Xamarin>PhoneGap/Ionic/Titanium/ReactNativeКакой даун.
>>838795Да хуя с два. В ебало вам плюнул, больше не дам шапки делать.
>>838796>Нет, я старый оп.Ну и ладно, ты тут держись и не бугурти особо, твои пункты 1-10 тоже не очень были.Старперам вроде тебя с ~1.5 годом опыта пора на пенсию, даешь дорогу молодым. Думаю через пару тредов вообще шапку перекатим на Kotlin.
>>838801Понятно, школота заселила тред.
gson или jackson ?
>>838823>gson или jackson ?ProtoBufКак говорит Робер М.: "лучшее техническое решение - это отложенное решение".Какая нах## разница какую брать бибилиотеку, это все third-party components.Вынеси сериализацию в отдельный модуль, так что ее можно было менять в будущем.
>>838823org.json
>>838843>>838882подойдите к ответу на вопрос более ответственно.вы на собеседовании как никак
Блять, я в рот ебал это назначение цветов аппкомпат контролам.У меня блядский AppCompatEditText, мне нужно поменять цвет подчеркивания.colorControlNormal/Activated/Highlight в стиле темы - хуйcolorControlNorma/Activated/Highlightl в отдельно стиле для theme элемента - хуйcolorPrimary и др - хуйВ итоге сижу любуюсь охуенной белой линией едиттекста на белом фоне.
>>838910http://stackoverflow.com/a/26631227
>>838912Я в посте уже это указал.
>>838910И проблема только на 21+. Ниже цвета применяются нормально.
>>838913Хз, у меня всё работает. Старая версия support library?
>>838915Последняя.
>>838895Сынок, это я тебя буду собеседовать, раз уж ты с такими тупыми вопросами приходишь.Шесть-лет-в-андроид-деве
>>838921Поссал на новичка.Пятнадцать-лет-в-андроид-деве
>>838922>>838921>Шесть-лет-в-андроид-деве>Пятнадцать-лет-в-андроид-девеПоссал на вас обоих.70 лет в андроид деве
>>838928Насрал тебе на голову.мимо-Райан-Гослинг
Прочитал head first java. Теперь могу вкатываться в андройд и читать документацию?
>>838946Прочитал одну книгу != умею хорошо программировать на Java
>>838921ахах, мне этот вопрос на собесе как раз задал чел, который начал разрабатывать с самых первых ведроидов
Привет андроиданам из энтерпрайза опять.
>>838979Как на галере, брат?
>>838975Помню, когда то это и для меня было действительно важно.Мы гоняли огромные JSON на телефоны с 16 MB оперативы. GSON тогда был версии (по моему) 1.X и как-то неудачно написан что проигрывал Jaskon в разы.Немного посже вышла весрия 2.0 в которой они сильно проапргредили скропрость парсинга.Сейчас, после стольких лет оптимизаций этих библиотек и появления 4-х ядерных смартфонов, я бы скорее выбирал парсер по критерию "может ли он работать с иммутабельными объектами".6-лет в разработке
>>838984Норм. Сегодня офигенный стрим написал для пробега по дереву. Всё хочу освоить андроид, а времени нет. Сейчас уже выбрал в магистратуру кафедру веб проги, а там для поступленя нужен матан, так что изучение андроида опять откладывается.А у тебя?
>>838969>>838946жыза, я так понял нужно создать какое-нибудь первое приложениетолько идеи нет
Запилите нормальную версию R https://cran.r-project.org/ под андроид. Есть только обрезанная по самые помидоры коммандная строка, без намека на выдающиеся графические возможности этого замечательного языка обработки данных.
>>838999эр говно, бери юляшу и не вуёбывайся
>>839002>юляшуТам 0,01% от реализованных на R алгоритмов нет. инб4 сам и напиши
>>838986Все горит, нужно натянуть текстурки в игре, а они не натягиваются, движок говнона самом деле проблемы во мне. Нужно подтереть сопли джунам, что бы делали заебись, а не говно. Нужно вправить мозг бекендщику, короче завал.
>>838986> магистратуру кафедру веб прогиПиздец.
>>838987- Клиент для Двача. Все профессионалы с этого начинали.- Или >>838621
>>838999Нахуй тебе R на смартфоне? Ты ебанутый?
>>839019На планшетике жи.
>>839021То же самое. В общем, да, ебанутый.
>>839011Оо, удачи тебе. У меня такой кастомер, которому сроки почти никогда не горят.>>839016Почему?
Сап, это опять я с SQLite. Короче, как вывести отдельную строку, а не выводить все столбцы?
>>839071Так строку или столбцы? Если строку, то selection, если столбцы, то projection.И причём тут Android? Тебе в sql-тред с такими вопросами.
https://medium.com/russian/почему-мой-телефон-не-обновится-до-нового-андроеда-e4cd5fa3fa85
Из Гугл-плея убрали раздел new apps/new games
>>839126Неча всякое индиговно рекламировать за бесплатно.
>>839071Хули ты такой? Ты задал аргументы для квери. Тебе выплюнуло курсор. На каждой позиции курсора ты можешь достать имя котика по индексу 0, номер на 1 и возраст на 2. Очень вероятно что котик по твоим критериям в базе не один, значит там несколько строк. У тебя не аппендится в текствью потому что ты мудаксама идея туда апендить пока ты идешь по курсору тупа до невозможности. Если ты хочешь ток одного кота, ну блять возьми и верни из этого метода new Cat(name, phone, age), после первой итерации цикла, только курсор закрой. Если твоя блядская проблема в том, что ничего не выводится, так это вероятно потому что курсор пустой, тебе так сложно логнуть его размер?
Для чего и где используется CancellationListener из CancellationSignal?Для собственно завершения некой операции?
Стоит ли перекатываться к вам из разработки под винфон?
>>839192>винфонТы живой?
>>839193Немного.
>>839194Ну если не войдешь в айос то войдешь сюда.
>>839205> Ну если не войдешь в айос,то сюда у него тем более не получится "войти", если он даже айос не осилит
>>839192>Стоит ли перекатываться к вам из разработки под винфон?Однозначно стоит перекатываться в кросплатформу.Попробуй Xamarin.Form будешь как дома (C# + XAML).
>>839231От шарпа уже подташнивать начинает, наебался я с ним.
>>839229На иос денег нет.
>>839234>От шарпа уже подташнивать начинает, наебался я с ним.В принципе я тебя понимаю, сам сижу на Kotlin, он даже по сравнению с C# местами по кручеprimary constructor, flow-sensitive typing, var для полей, функции без классов, более удобные extension методы (ну бомба: адекватные переносы для { и методы с мал. буквы).Но ты еще Java не пробовал, это как C# 2.0 (особенно учитывая что надо юзать 1.6 или с костылями мятся)
>>839240Да, котлин я пробовал, понравился. Вот думаю в ведро вкатиться и сразу на нем писать.
>>839240 P.S.> (ну бомба: адекватные переносы для { и методы с мал. буквы)Дико двачую, бесит паскаль кейс и фигурные скобки на новой строке в шарпе.
>>839231> Попробуй Xamarin.Form будешь как дома (C# + XAML). Я даже не знаю, что вообще есть хуже связки Xamarin + C#. Меня даже от js не так сильно воротит, как от неё.другой анон
>>839254> динамико-дрисняспасибо нам очень важно ваше мнение, оставайтесь на линии
>>839256Ты жопой читаешь, даун мелкобуквенный? Я js для сравнения привёл.
>>839262>Ты жопой читаешь, даун мелкобуквенный? Я js для сравнения привёл.ты червь-пидар, запомни нет ничего хуже JS
>>839268>>839262А зачем вы вообще на js пишете? Что вас сподвигло на это?
>>839270Да никто на нём не пишет. Сказал же: я его для сравнения привёл.>>839268Ты явно хуже.
>>839268>Гонит на язык будущего>Пишет с сажей в тематикиЯсно понятно
>>839283в тематикефикс
>>839240> адекватные переносы для {А какая с этим проблема на шарпе?
Аноны, на каких маках вы кодите? Какой стоит брать?
>>839071Null null null дерни себя, пес, за анал.
>>838910Сделай стиль для 21 и туда пихни android:colorControlNormal
>>839295Не на маках. Мы же не ёбнутые.
>>839295>>837254 да и вообще иди почитай тот тред
>>839295Я на прошел 13года, нормально себя чувствую. Джунгли на эре 15го, там 4 гига, а не 8, но ему тоже норм если пользоваться девайсом, а не эмулятором.
>>839358Прошке*
>>839358Блять, ебаная автозамена. Я на прошке 13года, нормально себя чувствую. Джун на эйре 15го, там 4 гига, а не 8, но ему тоже норм, если пользоваться девайсом, а не эмулятором
>>839360У тебя видимо мак недавно, все мои знакомые отключали автозамену в первые месяцы.
>>839360Главное SSD, 4 гб для mac os мало.
>>839192Решил вкатиться, иду по туториалу, пока все нравится больше, чем в увп.
>>839254Java+RX - вот оно дно. Благо есть Котлин.
>>839364Я с ведра писал.
>>839445Что ж вам так от rx печет-то?
>>839447Ничего не печет. Печет от того, как он вписывается с жабу.
>>839448И в чем проблема вписывания в джаву? Куча мелких объектов для сборщика?
>>838598 (OP)что требуют от джуна на ведре? сколько приложений в портфолио и какой сложности?
>>839445Ёбнутый?
>>839459Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. Чем больше портфолио — тем лучше. Для начала хватит чего-то типа этого >>838621
>>839507А вот и больной подъехал. Куда же мы без твоих однословных постов.
>>839509Хорошая аргументация, молодец. Иди пиши AsyncTask'и дальше, тебе некогда в треде сидеть.
>>839508> Для начала хватит чего-то типа этого >>838621Не хватит. Это максимум стажёрское задание.
>>839515Говно какое-то, а не задание. В чём смысл дрочева на материал десигн? А трёхстрочных анимаций переходов между двумя (!!!) активити, и появления аж трёх элементов на экране? Что вообще они хотят проверить этой околодизайнерской поеботой?Вангую мухосранскую студию с охуенными требованиями и раздутым ЧСВ.
Есть некоторые объекты классов из VK api. Мне нужно сохранять их в базе. Физически StorIO позволит это сделать.Как считаете, стоит их напрямую сохранять, как прямые сущности для базы? Или лучше пилить отдельные сущности, которые будут идентичны?
>>839445Котлин + рх лучше?Или ты про лямбды на джаве не слышал?
>>839883Если ты потом будешь использовать их с методами vksdk, или тебе нужны прям все их поля то сохраняй их. Но если тебе потребуется потом только часть инфы, нет смысла хранить их целиком. Тем более свои объекты для абстракции могут быть лучше.Что за объекты-то?
>>839877А вот и ретрограды-говноеды подъехали. Нахуй дизайн, нахуй UX, а потом плачут в треде, что у них полтора скачивания в месяц. Ты вообще понимаешь, что такое тестовое задание? Ты должен показать, что ты умеешь и можешь. Если ты анимации между двумя объектами сделать не в состоянии, то и более сложные сценарии тебе не по зубам будут.
>>839905> ты про лямбды на джаве не слышалНе, не слышал на 7 жабе. Только костыли. И как будто лямбды спасут это уебище.
Котлинобоги, как float сконвертировать в массив байтов? И как потом ставить эти байты в нужное место другого массива?
>>840056Нормальные костыли. То что котлин это костыли на 6 джаве тебя видимо не смущает?
>>840056>>840056>Самый востребованный и широкоприменяемый язык>СпасетОт чего спасет-то? Альтернатив джаве нет, нормальных альтернатив, а не хипстерского говна, которое сегодня есть, а завтра все забыли о нем.
>>840060>float -> byte[]ByteBuffer.allocate(4).putFloat(value).array();>insert byte[] into byte[]void insert(byte[] where, byte[] what, int pos) {____System.arraycopy(what, 0, where, pos, what.length);}
>>840064Пиздец.
>>840063Уж не из-за этого ли гениального языка ведро хоронит сам Гугл?
>>840079как хоронит?
>>840081Ты в танке? Седьмое ведро - последнее.
>>840079Оставайтесь на линии, свежие новости из манямирка
>>840083Такой манямирок, что уже сами Гугл сливают новости о новой ОС? Ради фана пилят там что-то?
>>840082Ссылочку пожалста.давно пора эту парашу закрыть>>840078А хули ты хотел, принцесса? Можно первую чатсь и по другому, но не будет учтен порядок байтов и вся хуйня. А второй способ лучший если ты хочешь скопировать откуда-нибудь куда-нибудь.
>>840082даже не знаю, стоит ли просить пруф
Хули с тредом, последние посты недоступны.
>>840086>>840087Вбейте в гугл "fuchsia google" что ли. Миллион статей про новую ОС от гугла.
>>840097Она не позиционируется как замена ведру.
>>840097Как же вы заебали, долбоебы.
>>840101Пруфы?
>>840097И как это сигнализирует о смерти андроида? Там вообще еще ничего не ясно, даже если прямо сейчас Гугл заявит о новой оси, еще сто лет пройдет пока все переедут с андроида на новую ось и вообще не факт, что это ось для смартфонов.
>>840103>>840103Пруфы обратного
>>840103Сначала принеси пруфы что она позиционируется как замена, в статьях сказано что она просто есть.
>>840079Ведро на C написано, даун.
Гугл занял 80% рынка ведром и сейчас просто возьмёт и откажется от него? Вы ебнутые?
>>840108А мы кодим на еще более уёбищном говне. Гугл вообще думает что-нибудь выкатить против Свифта?
>>840108Ядро линукса на С, а проблемы в структуре приложений с бесконечным количеством колбеков и хуков.
>>840110Нахуя? Ты можешь писать на джаве, на котлине, на свифте, в чем проблема?
>>840110Чем джава плоха?
>>840110Свифт вообще говно без задач под анальным контролем педиков, а на базе jvm ты можешь писать на чем угодно, если тебе не нравится джава, хоть на скале, хоть на кложуре, а под гейось только свифт
>>840112> в чем проблема?В JVM и всем, что она тянет за собой. Вот такая вот хуйня, например - >>840064В 2016 году должно быть стыдно за такое.
>>840119Плюсов от jvm больше мамкин максималист.
>>840111https://github.com/androidСравни кол-во хуиток на си и плюсах с явовыми. А лучше ещё выкинь оттуда все встроенные гуевые приложульки. Спойлер: соотношение 50:1 не в пользу явы.
>>840119Тебе не хватает инструментов для байтоебства в джаве? Ну извини это не ее задачи.
>>840121Ни одного, кроме кроссплатформенности. Даже таскать JRE за собой - уже говно хуже дотнета.
>>840125У нас тут любитель сигфолтов подкатил. Иди дрочи NativeActivity.
>>840121И поэтому разработчики борятся с наследием легасиговна с самой первой версии. ПОэтому появились dalvik и art. Блять, знай разработчики андроида что их купит гугл и проблем со спонсированием не будет - сделали бы собственную вм без родовых травм.
>>840125А свифт охуенный да?
>>840132>сделали бысразу*
>>840133Сейчас не язык обсуждали. Но в сравнении с явой даже говно собаки хорошее и не пахнет.
>>840135А аргументы будут?
>>840136Ну что тебе именно написать? Задавай наводящие вопросы, лень расписывать все сотый раз.Наброшу - ява многословное говнишко, тянущее кучу кривых абстракций, с бесполезной системой типов и синтаксисом для любителей лапши на 4 экрана в ширину. Про уёбищность реализации дженериков и пр фишки из "новинок" писать смысла нет - сюда их еще не завезли.
>>840124Мне не хватает инструментов для комфортного кодинга. Или это тоже не её задачи? Если исключить еблю с памятью, то кодинг на жабе и крестах - дрочево одного уровня. Причем в C++14 уже даже комфортнее будет.
>>840141Ладно минусы есть базара нет, какие альтернативы? Си шарп на голову лучше или кресты? Что сейчас есть, чем можно заменить джаву и , что не будет иметь всех этих недостатков?
>>840142>кодинг на жабе и крестах - дрочево одного уровняНаркоман или дальше хелоувордов не заходил?
>>840141Что значит кривые абстракции и бесполезная система типов? Как ты предлагаешь сократить синтаксис? Что не так с дженереками? Такое ощущение, что у тебя какие-то личные комплексы, которые ты проецируешь на язык.
>>840148> Как ты предлагаешь сократить синтаксис?Ебучие свойства.
>>840146Как раз таки заходил. Когда пришел на жабу7, подумал не попал ли в прошлое лет так на 10. Простейшие задачи из крестов выполняются в столько же или даже больше ебли.
>>840150Хуй знает, как ты программируешь, что у тебя джава = кресты по ебле. Вообще-то это не так.
>>840146Он тебе вроде как ясно написал >>840142>Если исключить еблю с памятьюТо да, кресты уже давно обогнали яву по фичастости синтаксиса еще в 11 стандарте что не отменяет того факта, что наговнокодить на них легче, не отрицаю.>>840143Любой современный жвм язык инб4: КОКОКО ХИПСТАПАРАША, хотя в таком случае уткнёмся в изначальную проблему что по прежнему тащим с собой убогую жвм, а на поприще нативных языков - ты сам знаешь что есть.
>>840153Ну то есть альтернатив (среди не нативных языков) нет, чтд
>>840148> Как ты предлагаешь сократить синтаксис?В жабе: Кококо кудах = new Кококо();В котлине: кудах = Кококо()
>>840158Зато в джаве сразу видно тип объекта. Это все вкусовщина на самом деле, реальных проблем у языка нет, таких, что вот пиздец нужен новый, это все нытье.
>>840158Точнее val кудах = Кококо()
>>840160Его тип видно в любом случае, а так же она позволяет много где сокращать код кроме объявления переменных (хотя бы при итерации по коллекции и тд).Добавили вывод типов в шарпе - все писались от радости.Добавили вывод типов в плюсах - все писались от радости.Хотят добавить его в яве - явиндусы начали пронзитель визжать "НЕ УБИВАИТИ МАЙУ УТИНУЙУ ТИПЕЗАЦЕЮ!!!". Я ахуеваю - насколько же люди готовы жрать говно. Тут вообще стоило пошутить о том, нахуя вам знать этот самый тим - жвм всё равно потрет))) все це Object)))))>>840157Хуй знает как у тебя голова вообще работает.
>>840169И зачем нужен вывод типов?
>>840158Val и var в девятой джаве появятся
>>840169>Добавили вывод типов в шарпе - все жрали говно и причмокивали >Добавили вывод типов в плюсах - все жрали говно и причмокивали >Хотят добавить его в яве - яваиндусы не захотели жрать говноНу хз
>>840169Вывод типов появится в 9
>>840160>Зато в джаве сразу видно тип объектаВсегда можно сделать: val кудах: Кококо = Кококо()
>>840182> вывод типов> говноЛолблять
>>840182То есть тебе норм писать например:Collection<Pair<Bitmap, BitmapFactory.Options>>
>>840192Я вообще на 5 уроке джавараша
>>840192Точнее Collection<Pair<Bitmap, BitmapFactory.Options>> bitmaps = new Collection<Pair<Bitmap, BitmapFactory.Options>>();
>>840182Взял наугад пару имен классов из спринга:>AbstractSingletonProxyFactoryBean abstractSingletonProxyFactoryBean1 = AbstractSingletonProxyFactoryBean<AbstractServiceLoaderBasedFactoryBean>( abstractServiceLoaderBasedFactoryBean1);Ну да. Нинужна. инб4: выйдет ява9 и ты будешь тоже причмокивать))Алсо, я ещё порофлю если в 9-ке не введут дедукцию как в плюсах и такой код получится уменьшить только на 20 буковок))).
>>840195Ну так хуле кукарекаешь говно или не говно var/val?
>>840197Ладно это пиздец.
>>840186Ну-ка быстро кинул пруф на JEP или пиздабол.В java 9 давно уже фичафриз произошел, ничего, кроме того что там уже сделано, не добавится.
>>840225Кинул тебе за щеку. Проверяй.
>>840225http://openjdk.java.net/jeps/286
>>840266В 9 не войдет, но в 10 можно ждатьhttp://openjdk.java.net/projects/jdk9/
>>840082Господи, какие дауны в треде.
ф ф*
>>839231Попробовал тебе за щеку, проверяй
>>839295Кодил у тебя за щекой, проверяй
>>840136аргументировал тебе за щеку, проверяй
>>840326>>840327>>840329
>>840290А вот и еще одна манька.
>>840339Да-да, джава говно, гугл прекращает разработку Андроида. Съеби уже из треда "мёртвой платформы".
Аноны, мне нужно сделать элемент списка, у которого можно будет вставить иконку рядом с границей так, чтобы граница была выпуклой. Это можно делать с помощью задания бордера? Или только пилить кастомную вьюху?
Кто-нибудь упоролся дополненной реальностью? Что используете в разработке?
>>840407Нарисуй схематично. Если я правильно понял, можно просто поверх итем слева наложить drawable с впуклой границей, а картинку поверх него.
аноны, есть тут кто кодит под линексом?в чем преймущества и какой дистрибутив юзаете?
>>840593Manjaro. Полёт нормальный
Пытаюсь сделать реконнект при разрыве соединения на стороне сервера (Connection reset - выключаю и включаю сервер), однако после реконнекта при попытке чтения из inputStream всегда получаю -1. При разрыве соединения сокет закрываю socket.close(), при подключении создаю через new Socket(...); Пробовал так же закрывать input и output стримы, делать флаши, ресеты (кидает эксепшон) - нихуя не помогает. Не могу понять как это пофиксить.
1. Хочу угореть по нормальному структурированию кода, типа MVP, clean architecture, или что там самое модное сейчас, но не могу найти нормальных гайдов. Везде используется куча параши, которой я не знаю, даггеры хуяггеры, реактивные джавы итд.Хотел бы попробовать сделать вменяемую архитектуру без всяких библиотек и костылей, чтобы знать хотя бы какие проблемы эти библиотеки решают и как без них обходиться. Тем более что приложения у меня очень простые.Просмотрел testing guide от google codelabs, но там уже всё за тебя написано и объяняется мало, я так нихуя и не понял как организовать уровень Model.Есть ли ещё какие-то годные гайды и стоит ли вообще с этим заморачиваться?Один хуй написал на форуме, что не нужно слишком выёбываться библиотеками когда делаешь проекты для показа работодателям, и лучше всё писать на голой джаве + SDK хотя бы в одном проекте, чтобы было видно что ты владеешь базой.2. Есть ли места где можно скинуть свой проект чтобы его покритиковали другие разработчики? #android-dev похож больше на чат с вопросами, в /r/androiddev ни разу не видел чтобы спрашивали такое, да и вообще всратое место, codereview на stackexchange для объемных проектов с кучей файлов не подходит, там надо код сразу постить в тело поста.
>>840709https://github.com/googlesamples/android-architectureтам куча вариантов от plain MVP и Clean Architecture до Rx и прочего
>>840709Паттерны с голой SDK почти не совместимы.У тебя Android API использует God Object - Context. Его нужно как-то внедрять в различные части архитектуры. И это только начало проблем.Можешь сделать какой-нибудь MVP, но только ради разделения логики.>Один хуй написал на форуме, что не нужно слишком выёбываться библиотеками когда делаешь проекты для показа работодателям, и лучше всё писать на голой джаве + SDK хотя бы в одном проектеПосмотри по вакансиям, в половине случаев будут нужны сторонние либы. На собесе можно наверное и на словах пояснить роль некоторых компонентов SDK, их преимущества и недостатки
>>838598 (OP)Анончики мне тут письмо счастья от гугля пришло - has been removed from Google Play because it violates our device and network abuse policy and section 4.4 of the Developer Distribution AgreementИ я нихуя не могу понять в чем тут дело т.к. это простая покупалка за рекламу вконтактовских голосов. Ну не делает оно ничего из расстрельного списка гугла. В их техподдержку тикет уже отправил но может быть тут кто-то с подобной хуетой сталкивался?
>>841052У меня было приложение, которое не проигрывало музыку из вк напрямую на смартфоне - забанили за мимикрию под оф. приложение.
>>841062Но я то ни по до что не мимикрирую. Ни одного логотипа, вообще ничего
>>841070Я вижу 2 проблемы1) Ты накручиваешь рекламу, заставляя пользователей просматривать рекламу2) Ты "продаешь" товары других магазинов
>>841071Нет, на оба варианта. Реклама у меня одна - от тапджоя. Это такая сеть мотивированного трафика. Грубо говоря пользователи имеют офферволл с задачами типа просмотра видео и получают за их выполнения фантики. На эти фантики они могут заиметь себе голосов. Там нечего накручивать и я ничего не продаю тащемта. Плюс подобных приложений(с голосами и не только) в маркете хуева гора, некоторые очень старые Да и мотивация в этом самом пункте соглашения тоже не связана с контентом или продажами: 4.4 Запрещенные действия. Вы обязуетесь не совершать в Магазине действий (включая разработку и распространение Продуктов), которые нарушают или прерывают работу устройств, серверов, сетей и других объектов и сервисов третьих сторон, включая пользователей Android, компанию Google и операторов мобильной связи, а также наносят им другой ущерб. Запрещается использовать информацию о покупателях, полученную в Магазине, для продажи или распространения Продуктов вне Магазина.
Как-бы мне высрать такую игру, чтоб она и на ведре, и в браузере работала? Только юнити?
>>841093Алсо меня возьмут каким-нибудь джуном в гугл после этого?
>>841093Есть еще libGdx, но вообще в /gd.
>>841102Совсем не факт. Игры и ынтерпрайз - накрестлежащие вещи.
>>841105А бля какой интерпрайз, перепутал треды. Но вчера вновь вряд ли.
>>841103Точно, спасибо, пару лет назад немного юзал её.>>841106Ну лишним все равно не будет, надеюсь.
>>841074>некоторые очень старые Это не аргумент, мое личное приложение пролежало 2 года, а дропнули его после того как я инфу о нем обновил.> Продажа офферовНе знаю как др. приложения попали в GP, но моя компания занималась перепродажей офферов профессионально.Для этого мы просто сделали мобильный сайт без приложения, что бы сразу на Android/iOS.Налили рекламу, развивали пол год и выкинул это нахуй, тк денег приносит меньше чем затраты на рекламу.
>>841103> libgdxК сожалению, он HTML5 поддерживает только для Java.Kotlin, при том что он сам может конвертироваться в JS, юзать пока нельзя.
>>841128А то там с kotlin?
>>841129*что
>>841129>А то там с kotlin?Да норм все, под android/ios/destop можешь уже сейчас писать на libGDX + KotlinНо если хочешь еще на HTML5, то только Java.Компилятор Kotlin(1.0.3)->JS уже рабочий, сейчас добавляют поддержку Kotlin 1.1Так же работают над компилятором Kotlin->LLVM, возможно через год можно уже будет писать нативные приложения без JVM.
>>841128GWT всеравно говно.
>>841139Я чего-то не понимаю, если есть компиляция в js, то почему бы не пихнуть полученный js на сайт?
>>841142Потому что есть еще библиотеки фреймворка, которые должны быть написаны под каждую конкретную реализацию (бэкенд).Никто не хочет сам писать всю нативную часть (WebGL, HTML5 Canvas, IO, события, асинхронность).
>>841144Спасибо, анончик, откуда ты все вообще все это знаете.
>>841126Ну я-то без рекламы и на коленке, ничего не скажу. Просто приятная прибавка к зп, надеюсь не была
Сап, котаны. Сабж - есть таймер обратного отсчета, который я благополучно прикрутил к Observable.interval в презентере. Ну и все классно работает, до того как появляется б-гомерзкий lifecycle фрагментов. Проблема заключается в том, что если в onPause отписываться от событий, то после onResume (пустого) таймер просто замирает на месте отписки ( КО ). Но ересь начинается если переподписаться - таймер начинает люто-бешено колбасить, а именно, идет обновление и от непонятно откуда возникшего нового interval-а, и от старого, что выглядит вообще не айс. Как бы мне прикрутить нормально этот механизм продолжения обратного отсчета после onResume фрагмента ?
>>841187для начала избавься от rxjava и mvp
>>841194Мелкобуквы. Мелкобуквы невер чейндж.
>>841218двачую
Аноны, есть одна апка:Пиздит инфу с бд и отображает ее в виде "юзер - длина члена - место в рейтинге "Как её правильно и красиво сделать, какие вью использовать? Отображать будет как часть списка, так и одного юзера.
>>841229RecyclerView\ListView
>>841235ListView в 2016, мда
>>841187Пофиксил, добавил булевый флаг isPaused и filter на !isPaused в chain
>>841229RecyclerView ?) В к-ве layout-а для viewHolder-а запили LinearLayout orientation=horizontal, поставь весы и будет тебе счастье
>>841311> 2016 > LinearLayout
>>840593Последняя x64Ubuntu. Потому что мой нэтбук 7-летней давности обкакается тянуть студию на маздае. он и с убунтой то на бреющем полёте, хуево быть днищебродом
Аноны, есть запрос, который связан с денежным переводом, т.е. надо его не проебать. Сейчас выполняю его в интент сервисе, как мне сохранить его результат, если приложение свернулось во время запроса и андроид сразу же его убил? Юзаю green eventbus, если что
>>841425Сервис. При его завершении сохраняешь всё в бд (если твой запрос ещё не выполнился)
>>841435так как мне понять, что запрос заново не надо отправлять, при открытие активити?
>>841440Если в бд пусто, то не надо
>>841442То есть, перед началом такого запроса надо чистить эту таблицу? А сервис же должен быть с android:process=":remote", да?
>>840709> #android-dev похож больше на чат с вопросамиЭто что и где? Slack какой-то или что? Доставьте ссылку
Есть тестовые задания с собесов? Залейте плиз
>>841562Вывод списка ёбырей твоей мамаши-шлюхи. При клике на элемент списка должна выводится информация о последней ебле, список поз, количество проглоченной спермы и список твоих братьев и сестер.
>>841562во втором посте есть.а так ничего сверхсложного просить не будут. приложение написать на самом собеседовании вряд ли заставят делать. по дефолту теор опрос(ООП, джава, лайфциклы, треды и тд) и еще могут попросить sql запросы пописать
>>841578лол, что орнул)
>>841372ээ, а в чем проблема ? Пока они не становятся вложенными, все работает эффективно...
>>841581Спасибо
>>838621Аноны, накидайте еще тестовых заданий, желательно потруднее чем это.
>>841705Скидывай свою реализацию в тред, получишь ещё.
>>841736Ок, но это будет недели через 2 в лучшем случае. Кстати за какое время предполагается реализация такого рода заданий?
>>841856Обычно на подобные задания недели две (реже - три) и дают. Не потому, что две недели действительно необходимы для такого задания, но чтобы у кандидата было время всё сделать, на случай, если он ещё работает в другом месте.
Нужен очень быстрый ликбез по Xamarin.Android, ибо в шараге задали написать простую форму проверки авторизации за пару дней на этой платформе, а времени с 0 учить нет (Знаю только основы C#, платформу не знаю вообще). Что посоветуете?
Аноны, как мне быть, у меня есть презентер, в нем выполняю запрос, потом отдаю данные вью, но при перевороте опять выполняется запрос. Норм ли сохранять данные в презентере (он у меня находится в ретеин фрагменте) и если данные не нулл, то отдавать их, не делая запрос?
>>841943Xamarin Forms - если знаешь XAML то наговнокодить приложуху под Android (и сразу iOS) сможешь очень быстро.А теперь брысь с такими тупыми вопросами.
Аноны как понять архитектуру андройда? А вообще для начала как научиться видеть архитектуру, есстественно на интуитивном уровне кое-как понимаю что такое, но все же не покидает чувство что чего то упускаю. Какие есть годные книги по архитектуре(необязательно андроид релейтед)?Не ньюфаг-вкатывальщик, но понятие архитектуры в голове весьма размытое.
Нужно к мессенджеру прикрутить отправку голосовых сообщений(но не через диктофон, чтобы они прослушивались плеером), а как в телеграм(записывается и прослушивается внутри приложения).Как грамотнее это сделать? Пока думаю записывать дорожку, конвертировать ее в массив байтов, отправлять массив, на получателе конвертировать массив обратно.Хуевая идея или сойдёт?
>>842097Хуевая.
>>842097Сервер есть? Почему бы не записывать туда mp3 файл. И при получении самому поигрывать MediaPlayer'ом или AudioTrack'ом? Первый даже по урлу умеет играть.
>>838655> отсутствие крашейВово. Начнут тестить на каком-нибудь леново, а там пиздец.
>>838655>>842153Отсутствие крэшей - навязанный западом стереотип.
>>842169Деды не умели бороться с крэшами, но это не помешало им дойти до Берлина.
Анон, где можно спиздить готовые темы для апки и стили для вьювов?
>>842181Из support library. Да и на сайте гуглов есть палитра.
>>842147Есть. Попробую и так
>>842187>на сайте гугловДоставь ссылку.
>>842219доставил тебе за щеку, проверяй
>>841093unreal engine
>>838598 (OP)Блядь, написал простое приложение, скачал на телефон, установилось без проблем, но блядь открыть его тупо нельзя, после установки только "готово", а открыть нельзя, лол. Где я проебался?
>>842305Алсо, шаблон для приложение выбрал пустой, может в этом проблема?
Как стандартными средствами дергать коллбеками из забиндинного сервиса внутри активити/фрагмента и чтобы в ui thread они вызывались?Правильно я понимаю, что это будет более легковесно, чем broadcast слать, где постоянно память выделяется?
>>841946Бамп, гуру архитектуры, где вы?
>>841946>Норм ли сохранять данные в презентере (он у меня находится в ретеин фрагменте) и если данные не нулл, то отдавать их, не делая запрос?Если тебе нормально делать "Fat Ugly Presenter", то все OK.При этом ты конечно нарушаешь Single Responsibility PrincipleПо хорошему презентер должен быть тонкой прослоечкой между View и Model
>>842466А хранить во вью ViewState и если данные загрузились складывать их во в ViewState, лучше?
>>842313Если у тебя обычный сервис то он и так в юи треде дергаться будет. Также можно использовать Messenger.
>>842466Тонкой прослоечкой? А где тогда вся бизнес-логика по-твоему будет?
>>842487в синглтон менеджерах ?
>>842479Отвязывай бизнес логику от Android лайф-сайкл-костылей. Разрушается твой презентер вместе с активити - это нормально.Делай кэширование данных по времени на уровне модели.>>842487>А где тогда вся бизнес-логика по-твоему будет?В модели конечно и тесты конечно должны быть на нее.Лучше вообще делать чистые JavaSE модели и быстро тестировать их на десктопе.Ознакомься:https://ru.wikipedia.org/wiki/Model-View-Presenterhttps://youtu.be/Nsjsiz2A9mg
>>842490Нахрен тебе синглетоны, у тебя же база данных есть - это единственный синглетон который нужен.
>>838598 (OP)Анончики, у меня есть две активити, в этих активити фрагменты, как мне сделать переход с shared elements из одной активити в другую, если эти shared elements находятся во фрагментах в разных активити?
>>842495Окей, допустим у меня есть презентер CityPresenter, должен показывать имя города и фотку.У презентера срабатывает допустим onShow()У меня есть cityId и myView, значит я стучусь в базу прошу самую свежую инфу про данный город, получаю:а) ничего, показываем прогрессбар с заглушкой, запускаем запрос на получение городаб) что-то протухшее, показываем с помощью myView.setCity(city) myView - платформо-независимый интерфейс для вьюхи, запускаем запрос на получение городав) не протухшие минуту назад получили данные, показываем как ив предыдущем пунктеВо-всех пунктах подписываемся на оповещения об изменения города, после получения которых отображаем новую инфу.Все верно?
>>842525Google motherfucker do you use it?http://stackoverflow.com/questions/27524674/shared-element-transition-among-fragments-that-belong-to-different-activities-in
>>842495> В модели конечно и тесты конечно должны быть на нее.> Лучше вообще делать чистые JavaSE модели и быстро тестировать их на десктопе.Как ты чистые JavaSE модели на андроиде сделаешь? Это презентеры должны быть свободными от ведройдовских зависимостей и тестироваться на JVM.Думаешь, ссылаясь на дядю Боба, ты выглядишь умнее? А вот хуй, ты знатно обосрался.
>>842533Да вроде норм.Можешь еще через какой-нибудь okhttp юзать встроенное HTTP кэширование.И постарайся не облажаться с утечками активити.
>>842553>Как ты чистые JavaSE модели на андроиде сделаешь? 1. Создаешь отдельный "Module" в AS или IDEA, 2. выбираешь Gradle/Kotlin3. В Android build.gralde добавляешь в dependenciescompile project(':core')>Это презентеры должны... тестироваться на JVM.Если презентеры тонки, то в принципе там и тестировать то нечего>Думаешь, ссылаясь на дядю Боба, ты выглядишь умнее?А ты думаешь, что ни на кого не сослался и кто-то должен верить твоему пиздоболию?Для меня Боб и его архитектура важнее чем Java или Android-костыли,потому что его подходы не зависят от языка спокойно юзаю их с Kotlin.
>>842566Такая-тт блять большая разница между жабой и котлом.
>>842569Для некоторые здесь, ну просто НЕ преодолимая :3
>>842566Понятно. Иди нахуй.
>>842533>>842554Но ведь при перевороте во врем выполнения запроса, запрос начнется заново, это же неправильно
>>842578Няш, для это го и придумали кэши (HTTP или на прикладном уровне)
>>842578Для меня Боб и его архитектура важнее чем такие мелочи.
>>842580Какой нахуй кэш, когда у тебя запрос еще не выполнился? Ты вообще не понимаешь, что несешь?
>>842583> Открывает окно> Начинает как бешеный врящать окноДядя, ты нормальный (не отвечая, я уже понял что нет)?В любом случае, после пятого твоего безумного поворота в дело уже пойдет кэш
>>842586А запросы на сервер так же отправлять будешь? "Похуй, что запрос уже идёт, отправим еще раз?"
>>842578В случае с Rx можно хранить в синглтоне/ретеней фрагменте обзервеблы с кешем, тогда можно будет подписаться на уже идущий запрос. Или главным подписчиком должна быть бд, тогда можно хранить начатые, но не законченные запросы в key-value хранилище или таблице, или даже в аллахе, и в презентере смотреть идет ли интересующий нас запрос, в таком случае не будет нужды совершать новый, а нужно просто подождать пока нам придет нотификация от бд.
>>842593> В случае с Rx можно хранить в синглтоне обзервеблы с кешем, тогда можно будет подписаться на уже идущий запросЕсть какой-нибудь пример кода, как это организовано?
>>842590Мы тут говорим про идемпотентные запросы (коих 90%), которые отлично кэшируются и на стороне сервера.Но если ты такой любитель вращать телефон, то сделай отдельный отнопоточный пул для web запросов.
Аноны хочу сделать дефолтное погодное приложение с вот таким дизайном, но где мне искать такие охуенные фотки погоды?
>>842599http://stackoverflow.com/questions/26939175/rxjava-and-cached-datahttp://stackoverflow.com/questions/31733455/rxjava-observable-cache-invalidatehttp://stackoverflow.com/questions/34406879/repetitive-cache-observable-in-rxjava-android-lifecycle-and-cache-operator
>>842593а вот как нормально хранить начатые запросы в бд, какой ключ должен быть? Использовать время начала запроса? Можешь поподробнее про это, пожалуйста?
>>842610Да любой, блять, главное чтоб уникальный, и о нём знали твои презентеры.Смотри:1) Пилишь синглтон, где лежит мапа с обсёрваблами и их Id.2) Презентеры знаю айди обсёрваблов, и как-нибудь смотрят на их состяние.Правда, данный велосипед был реализован гуглом 3 года назад. Называется Loader.Так что RX-дауны таки соснули.
Если я пишу приложение к соцсети, использую их цвета в дизайне и иконках - меня могут забанить за попытку косить по официальный клиент?
>>842629>ихцвета дизайна соцсети, разумеется
>>842623А потому Google сам завелосипедил RX для своего Google.Musicи потом заопенсорил его на github (лень ссылку искать).И была так только одна issue "нахуй он нужен если есть RxJava?"
>>842629Забанят обязательно.
Котаны, подскажите как быть: есть класс - прослойка для обмена данными с Bluetooth Low Energy девайсами.Суть проста: вызвал метод bt.readChar(device, callback(){)) и получил вызов метода коллбека - onComplete и onError.Чтение может выполняться долго, пользователь закроет к хуям к этому времени активити, потом обратно развернет - и не поймет что происходит - ведь мы и коллбек проебали и состояние интерфейса (читаются данные, ждите бля)Собсна, как быть с этим? Как обычно такие вещи делают?
>>842673>Как обычно такие вещи делают?На Android - обычно кучей костылей и хранение состояния в каком-нибудь permanent storage.
>>842673Если так подумать - то это пиздец задача.Нужно:1) Где-то держать коллбеки2) Где-то хранить состояниеЕдинственный вариант - это перенести коллбеки в сервис, где хранить состояние и модифицировать его через эти коллбеки.В UI синхронизировать состояние и следить за его изменением.Т.е. получается нужна еще одна прослойка между BT API и собственно UI.
Почему на Android 6 чтобы заюзать Bluetooth надо включить "передача геоданных". Индусы ебанулись?
>>842827Потому же как и для получения MAC адреса.Это теперь приватные данные пользователя (его идентификация), а отдельные пермишены для bluetooth/mac-address не стали плодить.
>>841448IRC
Котлинфаг, у тебя норм все после последнего обновления билд тулзов? А то у меня нихуя не компилится опять, хотя раньше компилилось.В основном пишет ошибки импорта, их там тысячи.
>>842882> билдПросто тулзов 25.2.2 и платформ тулзов 24.0.3.
>>842882> у тебя норм все после последнего обновления билд тулзов?Во-первых, спасибо что напомнил обновится.Во-вторых, сейчас обновил build.gradle и перебилдел - все норм.Да в котлин slack никаких новостей, что у всех все сломалось.
>>842922> Error:(3, 12) Unresolved reference: json> Error:(4, 8) Unresolved reference: java> Error:(7, 45) Unresolved reference: HashMap> Error:(10, 25) Unresolved reference: JSONObjectИ так со всеми классами андроид сдк.
>>842935А какая у тебя версия плагина стоит (я кстати в чистой IDEA сижу) и что прописано в ext.kotlin_version?Можешь кстати задать вопрос сюда:https://discuss.kotlinlang.orghttp://kotlinlang.slack.com/(инвайт тут http://kotlinslackin.herokuapp.com/)
>>842922А версия студии у тебя какая? 2.2-rc2?
>>842936Версия котлина 1.0.3Плагин: 1.0.3-release-Studio2.2-13
>>842938>>842937>>842935Починил. Он с android gradle plugin 2.1.3 в студии 2.2 не собирается, при этом java проекты с этой версией в этой студии нормально собираются.
>>842940Блять. Жму после gradle sync "build apk" - билдится, появляется апк. Жму make project или debug selected configuration- ошибки. В прошлый раз при make project ошибок хотя бы не было.
>>842937>2.2-rc2?Зачем?
>>842958Модно-молодежно.
>>842958Очевидно ради плюшек версии 2.2
>>843044 >>843017Ну тогда бессмысленно спрашивать почему что-то не работает.
>>843044А че там?
>>838630Взяли на стажировку?
>>843056Это release candidat как бы.>>843067Блядский скроллинг сколвью в дизайнере и встроенный лэйаут испектор, теперь ту отдельную ебалу запускать не надо.
>>843091>встроенный лэйаут испектор, теперь ту отдельную ебалу запускать не надо.Это тот который меряет производительность? Тогда ваще ништяк.
Ананасы, пожалуйста, помогите. Нужно в приложение добавить отправку файла по кнопке (один файл и он уже существует), проблема в том что оно работает на ебанутом протоколе и в коде нет ни 1 комментария, разбирать этот xmpp времени нет вообще(релиз горит). Что нужно сделать: приложение прикрепляет файл через интент к файловому менеджеру, потом интент сует в ArrayList<Uri> и уже как-то отправляет это всё. Но, файл, который нужно отправить мне должен доставаться сам, без файлового менеджера и интента(file file = new file(path)), и я не могу понять как мне мой file скормить коду отправки сообщения с файлом(выбранным интентом через файловый менеджер). Uri.fromFile(file) не работает. Сам код мессендежра https://github.com/siacs/ConversationsМетоды отправки сообщений лежат в классах ConversationFragment и ConversationActivity по ключу CHOOSE_FILE.Помогите, у кого найдется полчаса для стажора. Спасибо
>>843194пиздец ты ебанутый, ты мог хотябы нерабочий свой код куда-то отдельно залить? какой нормальный человек будет разбираться в вашем говне из 3к строк? темболее за нихуя. охуеть блять
>>843218Это не мой код, это исходники на основе которых мы делаем и я в душе не ебу что именно у меня не работает. Код не читабелен. Может кому-то еще не повезло с этим работать
>>843194https://developer.android.com/reference/android/support/v4/provider/DocumentFile.html#fromFile(java.io.File)
>>843269Ты не пробовал, ну я не знаю, ПОДКЛЮЧИТСЯ ДЕБАГЕРОМ И ПРОШЕЛКАТЬ ПО БРЕЙКПОИНТАМ?
Анон, что думаешь по поводу онлайн-кура на Udacity? Какие еще есть онлайн-курсы?И да, вопрос - если у меня не очень быстро летает студия на винде(4 гига оперативки, 2.3GHz) то есть ли смысл накатить убунту и на неё студию?
>>843319Потрать 2 тысячи на плашку оперативы.
>>843319А с чего ты взял, что убунта будет быстрее винды?
сап, у меня есть activity с drawer, один их фрагментов, на которые есть выход из drawer-а, содержит в себе ViewPager, у которого должно быть ровно три списка, в каждый из которых данные грузятся из интернета/с сервера. Что посоветуете: делать nested fragments или добиться с сохранением View state-а, добавляя просто списки как вьюхи в пейджер ?
>>843334Ну так принято считать.>>843328Надо бы, но пока денег нет.
>>843340Но это не так.
>>843343У меня некоторое время была убунта с AS. Вроде пошустрее винды запускалась. Но я там не успел ничего сделать, нужно было переустановить винду.
>>843350Потому что она чистая была.
Дарова ананасы.Есть один вопросец.Каждый сталкивался с тем что есть какой-то список и по тапу на элемент пушится страничка с деталями.Но вот если ты нажмешь двумя пальцами на 2 разных элемента, или аки сумасшедший будешь тыкать тыщу раз в сек на один и тот же элемент - запушится больше чем 1 страничка.Но походу это не единственный случай. Например есть 2 кнопки одна из которых открывает свой попап. Если кликнуть их вместе опять получу хуету.Ну и т.п.Короче, есть ли какой-то общих подход. Может есть что-то в Андроиде встроеное? Или всё же нужно писать всякие IsBusy и прочее говно?Сам вкатился с веба, потому наверное задаю глупые вопросы.
>>843387Встроенного нет, я использую Rx с байндингами для вьюшек. Тогда можно легко сделать через debounce, а если нужно показать что вьюшка некоторое время неактивна:clicks().observeOn(AndroidSchedulers.mainThread()).doOnNext(event -> v.setEnabled(false)).observeOn(<SCHEDULER>)<OTHER STUFF>.observeOn(AndroidSchedulers.mainThread()).doOnNext(result -> v.setEnabled(true)).subscribe();
>>843388ыыы.то есть всё равно каждый отдельный случай надо вручную хэндлить. Спасибо.А не знаешь, почему не запилят какое0нибудь глобальное решение? Ведь каждая прилага сталкивается с этим.
>>843402А те не похуй на это? Если юзер хочет так делать, пусть делает, google сам забивает хуй на это в своих приложениях
>>843194>>843269Conversations распространяется под GPL. Следовательно, ваш производный код тоже должен быть доступен.Так что, выкладывай исходники или иди нахуй.
>>843387> пушится страничка > открывает свой попап> вкатился с вебаЗря вкатился.
>>843419чойта? называю не так? Так что такого? :)
>>843411хер знает. думал что не очень хорошо чтобы было так.
>>843387Проблема актуальна только для ограничения частоты следования запросов на сервер, встречается это в основном в формах поиска и автодополнения.Когда-то я это делал встроенными средствами языка и андроида для формы поиска: очередь запросов и собственно ЭКЗЕКУТОР.
Сап двощ, суть такова. Есть view со всякой текстовой хуйней, нужно сделать его полупрозрачным(легко) и чтобы поверх появлялать надпись(сложно). Как такое сделать?
>>843666Так а что сделать то хочешь?
>>843723Лист с итемами, при удалении итема он не сразу пропадает из списка, а становится полупрозрачным и поверх него появляется надпись удалено. Хз как такое реализовать без космической ебли, надеюсь на помощь анона.
>>843726Делаешь вьюхолдер, в onBindViewHolder, если состояние = удалено, делаешь текст видимым, а бэкграунда вьюхолдера меняешь цвет.
Ну че, кто на дроидкон идет?
>>843849У меня боязнь больших скоплений людей, ну нах.
>>843816Не, как создать текст поверх другой вьюхи? Надпись должна быть именно поверх другой вьюхи, типа как в фш со слоями.
>>843849Нахрен нужны конференции конкретно про android/ios, если они не от Google/Apple?В который раз будут пережевывать android-костыли и рассказывать про свои велосипеды.Может быть из JB кто-нибудь придет рассказать как делать hello-world на Kotlin.Конференции JUG.ru и то интереснее для android разработчиков.
Как сделать, чтобы при создании новой активити (пустой), в layout добавлялся android:id ? П.с первый день
>>843876Зсунуть вьюху и текст внутрь одного конетейнера Frame/Relative.>>843902Зочем
>>843934Ну просто в туторе гугла было вот это >Note: The XML layout generated by previous versions of Android Studio might not include the android:id attribute. The call findViewById() will fail if the layout does not have the android:id attribute. If this is the case, open activity_display_message.xml and add the attribute android:id="@+id/activity_display_message" to the layout element.А у меня последняя версия, по идее должно было добавляться
>>843936Возьми и добавь в лэйаут тот айди, который тебе нужен.
>>843938Да добавил я, просто думал, что можно как-то настроить, чтобы по умолчанию cоздавался id, ну да ладно, это не принципиально.
Смотрю курс на udacity по андроиду и параллельно читаю head first android (сейчас изучаю фрагменты)все правильно делаю?
>>843978> все правильно делаюНет, ты изучаешь программирование под андроид.
>>843978Этот >>843986 все правильно говорит, хуле ты хаскель не учишь?
>>843978Курс с погодным приложением? Тогда норм.
>>843319>не очень быстро летает студия на винде(4 гига оперативки, 2.3GHz) то есть ли смысл накатить убунту и на неё студию? имеет, но не надейся на существенный прирост производительности
>>843319Имеетсмысл SSD поставить и озу до 8 гб.
Сап, котаны, такая тема - вроде как продумал как построить любую клиент-серверку по MVP прямо вот очень хорошо, но вдруг вылезли VK и FB SDK которые засрали мне своими коллбэками ебучими весь презентер. С этим можно что-то поделать ? Фактически там есть 4 сраных коллбэка - первые два на логин, вторые - на получения данных а-ля users.get() в VK. Так там еще и третий запрос имеет место быть - запрос к нашему API на аутентификацию. Получается жирновато прямо вот дофига...
Насколько раздуется приложение, если я использую:1. Kotlin + RxJava2. RetrofitМне нужно написать модуль для существующего приложения. Для разнообразия решил написать его на котлине.Этот модуль - фрагмент c некоторым функционалом (карты гугла, загрузка данных с сервера, кеширование). Насколько сложно будет встроить его в приложение на Java?
>>844353Оберни колбэки в observable и обмазывайся flatMap'ом.
Хочу написать простенькое приложение по типу доставки еды.Посоветуйте, как это лучше сделать.Подумал и решил таким образом: на сервере храниться xml/json с данными(вид пиццы: маргарита; цена: 200 рублей). Приложение стягивает xml с сервера, затем строит layout. Получаем список пицц на экране пользователя. Юзер кладет пиццу в корзину, выбирает количество, рассчитывается цена. Покупку можно сделать путем отправки письма на емеил доставки пиццывидел такую фишку в одной аппликухе.Посоветуйте, это годная идея для первого проекта?Может, уже есть готовые велосипеды?
>>844358Советую отсюда https://github.com/streamsupport/streamsupportвзять CompletableFuture и юзать их везде где нужны асинхронные операции.Ибо они гораздо проще (нет сайд эффектов на подписывание и они "горячие" по умолчанию"),но при этом их можно так же удобно чейнить и с async/await они лучше совместимы.А RxJava нужно использовать только там где реально нужен реактивный-поток-данных,те когда заведомо известно что будет несколько результатов.
>>844359Не понял, коллбэки они и есть коллбэки, единственное, что на мой взгляд здесь можно сделать - вынести их создание в отдельный CallbackManager какой-нибудь и просто инстансы получать...
>>844367Что значит "горячие по умолчанию"?
>>844367Правильно я понимаю, что поняв суть CompletableFuture станет ясна и суть RxJava?
>>844389При подписывании на обсервабл у него по дефолту срабатывает onSubscribe, в котором например начинается запрос в сеть. Если ты подпишешься, отпишешься и снова подпишешься на него при условии что запрос еще не отработал, то будет два запроса вместо одного.
>>844389Ну а "горячий" подпишет тебя на запрос который в процессе, если такой есть.
>>844364бамп вопросу
>>844367Да, точно. RxJava мне абсолютно не нужна для этой задачи.
>>844389>Что значит "горячие по умолчанию"?Это значит что "по умолчанию" метод который возвращает CompletableFuture будет выполняться сразу, в отличие от возвращающего Observable, у которого надо с начало вызвать subscribe(...), даже если тебе не нужны результаты.те если у тебя есть класс с методом addUser(user: User):Observable<*>то просто вызов service.addUser(User()) - не сделает ничего, а нужно делать service.addUser(User()).subscribe({}, {})
>>844392>Правильно я понимаю, что поняв суть CompletableFuture станет ясна и суть RxJava?CompletableFuture - это промисы https://ru.wikipedia.org/wiki/Futures_and_promisesRxJava - это специфичная реализация идеи https://ru.wikipedia.org/wiki/Реактивное_программированиеНельзя сказать что-то лучше, они для разных целей.В Oracle это поняли и в той же Java 9, завезли Flow (это RX от JVM)
С помощью GCM, можно делать нотификации прямо из приложения, т.е. без сервера, указываю время, и в это время она приходит?
>>844622> указываю время, и в это время она приходитИ нахуй тебе GCM вообще тогда?
Аноны, есть сервис всякого проигрывания музыки из VK, с плейлистами и прочей хуйнёй-малафьёй. Подкиньте годных идей, что туда можно добавить, чтобы строчка в портфолио была?
>>844627хз, может будильники не тру
>>844630Ничего.
Я правильно понимаю, что с программированием под Android на Eclipse уже ВСЕ? И поддержку Windows XP прекратили? Еще в 2015 году Гугл отказался поддерживать обновления ADT, сказав всем сваливать на Андроид Студию, но техническая возможность использовать связку Android SDK + ADT + Eclipse все еще оставалась.Сейчас после обновления SDK Platform Tools до 24.0.3 нихуя не работает компиляция на Windows XP (тупо не запускается adb), откатил до 24.0.1, все нормально.И Support Package Library версии 38 нихуя не содержит библиотеки поддержки как проекты Эклипс. Раньше можно было использовать те же recyclerview, appcomat и cardview, теперь их тупо не привяжешь к Андроиду.Т.е. теперь расклад такой: если хочешь писать под Андроид в Windows XP - не обновляй Platform Tools.Если семерка и выше, но юзаешь эклипс (как у меня, нетбук 2010 года тянет Андроид Студию, но с большими тормозами), не обновляй Support Package Library или вообще не юзай библиотеку поддержки.
Если я хочу использовать MVP архитектуру и Retrofit, то что вместо AsyncTask можно взять для кеширования полученного с сервера в БД? Использую cupboard в качестве easy ORM.
>>844703Бери консольку и конкпелируй из нее, че ты не как этот. Подсветку из саблайма/атома/вима/емакса.
>>844718Loaders/RxJava/бекспорты CompletableFuture
sup, аноныитак возникло пару вопросов:1) куда устанавливается АС, джава сдк, андроид сдк в линуксе? есть ссд 120 гб, разбит на разделы по канонам линукса(убунты). интересует хватит ли мне места если у меня есть 2 раздела по 55гб(/home, /)2)посоветуйте тему диплома на андроид. могу в простое клиент-серверное с использованием интентов, потоков, хттп реквестов. на нулевой не отвечают
Ебать. Эти пидары выпустили 2.2 оставив при этом баг с датабиндингом
>>844703>xpТы там совсем ебанутый?
>>844793> посоветуйте тему диплома на андроидПоубивал бы.
>>844734>атомаТак атом на жс еще более требователен к ресурсам, чем студия
>>844796> датабиндингНе нужен.
>>844364ответьте,плих
>>844796А че с ним?>>844802Любитель баттернайфа?
>>844821Ты в xml собрался данные хранить или разметку, если второе то нахуя, ты еще поебешься с тем как это сделать. Это не веб где хтмлки туда-сюда гоняют.
>>844825Есть даже бага на багтрекере, даже не одна. Студия не определяет статические методы, если нет переменной в xml
Что делать если юзер перевернул экран, презениер у меня сохранен и не булет пересоздан, но view пересоздастся и в результате после некой асинхронной операции view НЕ обновится, т.к. было null?1) Как-то проверять после bindView, что есть результат и обновлять View2) Перезапустить запросы при перевороте, но это не вариант, зачем 2 раза запросы слать?
>>844831Использовать view state. Суть можешь у mosby посмотреть.
>>844829Ты про кастомные атрибуты? Ну у меня везде есть переменные.
Кто-то пробовал что-то делать на jabber? Не могу подружить спарк (десктоп) с конверсейшн(андроид) клиенты. Не отправляются файлы(любые) между разными платформами ни в одну, ни в другую сторону. В рамках одной платформы все хорошо, между платформами работают только текстовые сообщения. Есть у кого идеи?
Пишу приложение с vk api. В доках пишут, что ссылки на аудиозаписи привязаны к ip. Что лучше в такой ситуации: смотреть за состоянием сети бродкаст ресивером, или же просто запрашивать url записи перед каждым воспроизведением?
>>844898>urlthis
Я так понимаю сейчас юзание инжектора(dagger, маслонож) + какая-то система управления событиями(eventbusы и прочие rx) + orm это такой себе минимум? Или в проде еще часто пишут на голом фреймворке.Кодирую сейчас задание на стажировку из шапки и охуеваю от раздувания кода при добавлении кусочков функционала и все это становиться сильно связано и smells bad, чувствую что с такой минималочкой(события, инжектор, орм) количество кода и быдломеханик сократится в разы, или такие тестовые лучше писать на голяке?
>>844898Запрашивать каждый раз это вариант.А вообще вероятность того, что айпишнег поменяется внезапно крайне мала.
>>844916Мне кажется, в задании из двух активити нахуй не нужно забивать проект либами. Не та это задача, где они что-то сделают проще/красивее.Важнее, чтобы ты мог в разделение логики (mvc там). Ну и солид, инверсия контроля, никакой сильной связи. Очень странно, что у тебя там что-то раздувается вообще
>>844924Нихуя подобного, юзер может переключиться с wi-fi на мобильный интернет, к примеру.
>>844833Это вот это?http://hannesdorfmann.com/mosby/viewstate/Но здесь нет решения этой проблемы. Только сохранения состояния View после поворота экрана.Мне то другое нужно.
>>844937Тебе нужна связка presenter -> viewstate -> view. Viewstate привязан к циклу preneter'a и зеркалирует все вызовы view. Если view существует и привязана, то viewstate сохраняет у себя последнее состояние и отправляет его во view. Если view не существует, то просто сохраняет состояние. В момент привязки view к presenter, состояние из viewstate применяется к view.
>>844946Ага! Все понятно. Пока существует презентер - храним состояние View в прослойке между реальным View и Presenter.Как только View забиндили - синхронизируем всё к хуям.Просто и логично.это картошка через шайбу проросла
>>844948Бля, не та пикча, но похуй, ящерицы круче!
В чём отличие Loader от AsyncTaskLoader?Ведь и тот и тот в другом потоке задачу выполняют и возвращают результат в main thread?
Открыл исходник recycler view - 10000 строк ах ты ж ебаный нахуй, вот вам и ООП в андройде
>>844972Recycler еще и куций какой-то. Метод onItemLongClick велосипедить пришлось.
>>844972Посмотри конструктор View. Андроид костылерожденный.
>>844946Мне сразу стало интересно - а как подобные уебки хранят презентер? Неужели у них постоянно висит армия синглтонов?
>>845047Презентер у тебя либо ретеинфрагмент, либо привязан к активити и уничтожается если активность isFinishing.Но я конечно уебок, ага.
[code]Test[/code][code lang=c]Test[/code][code lang="c"]Test[/code]
>>844703>нетбук 2010 года тянет Андроид Студию, но с большими тормозамитакая же ситуация, только я пересел на убунту еще в позапрошлом году, а то вында бы от студии вообще обкакалась
>>844630скробблинг на ластик
>>845059автор mosby делает все в ретеин фрагментах, т.е. твой презентер всегда висит в твоем фрагменте, только нужно занулять эллементы ui в onDestroy
>>844980Очко у тебя куцее
>>844916Самый минимум: Retrofit Для продвинутых (если знаешь, что это и зачем): Dagger 2, RxJavaButternife - по сути синтаксический сахар. Хочешь, используй, не хочешь - не используй.
>>845242>>844916> eventbusы, ormНе нужны. Тем более в тестовом задании.
>>844916В тестовых заданиях обычно просят по минимуму использовать сторонние либы тк:1) От тебя требуется показать знание Android SDK и общую сообразительность2) Ты один фиг не умеешь их готовить и только увеличишь кол-во макарон в своем коде, в котором мне придется разбираться3) На работе все равно будут использовать др библиотеки
Как устроен модуль 2ch для Dashchan?Каким образом вызываются методы из другой apk?https://github.com/Mishiranu/Dashchan-Extensions/wiki/Extension-devepment-tutorial
>>845299
>>845299Скорее-всего, просто кидают друг-другу интенты.
Поясните за плюсы и минусы GreenDAO плиз, кто использовал в крупных проектах.
У меня есть SearchView в который выводятся данные из базы данных. Как мне повесить слушатель на строчку из SearchView, чтобы например, мог перейти на Acitivty этого значения(которое выводит SearchView)?
Почему ИТТ нет обзора архитектуры Dashchan?Там нет RxJava, нет Retrofit и при этом прекрасно всё работает.
>>843417Только в случае расппостранения, умник.
>>845617Распространения чего? Если твоё приложение использует более одного человека, это уже распространение.
>>845565Всё прекрасно работает != качественный кодТам многие вещи — велосипеды. HttpResponse, HttpClient, AsyncManager, почти всё на AsyncTask'ах, довольно громоздкие сервисы.Но приложение действительно работает хорошо, из имеющихся клиентов самое лучшее. Но я уверен, если бы автор писал Dashchan сейчас с нуля, то он получился бы еще лучше.
>>845670Я до конца не понимаю как там некоторые вещи работают - почему по время переворота экрана ничего не уебывается, ведь он не использует retain fragment?
>>845672>>845670Еще вот что - там при Destroy происходит остановка AsyncTask'ов, но как я не пытался при повороте девайса данные всегда корректно загружались. Что это за магия такая?
>>845656А он вроде как его один и использует. Просто за советом для себя пришёл.
>>845672Фрагментов у него вообще нет, только активити (код старый).Есть лишь один статичный фрагмент (это говнокод и почти гарантированная утечка), в котором он, видимо, хранит состояние. Ну и вообще, там по большей части WebView используется.В общем, код Даши как пример для подражания и хороший архитектуры — явно плохая идея.
Делаю приложение по книге head first android.Что не так?
>>845683> Ну и вообще, там по большей части WebView используется.Но ведь это неправда.
>>845682Что-то не похоже:> Это не мой код, это исходники на основе которых мы делаемПлюс, в прошлом треде он что-то похожее про передачу файлов по xmpp спрашивал, говоря, что сроки горят.
>>845688Открой исходники и убедись.
>>845678Самописный AsyncManager и LruCache. AsyncTask отдает результаты не в активити (которой уже может не быть), а в сервис/свой синглтон.
>>845682Ну и если он просто сам для себя пишет, тогда точно не понимаю, почему бы просто не выложить свой форк на Гитхаб.
>>845685Один просто Fragment, а другой Fragment из SupportLibrary?
>>845689Ну, между ними код вполне открыт. В паблик ничего не выкладывали. А когда выложат — уже нужно требовать.
>>845692Открыл, убедился, что это неправда.
>>845700Ну как знаешь, лол.
>>845699Ну да, это верное замечание. Правда, что-то я сильно сомневаюсь, что они потом его откроют.
>>845706А в каких случаях эта активити открывается, ты смотрел?
>>845698>а другой Fragment из SupportLibrary?не понял
>>845706>>845692>>845683>>845683WebView там нигде не используется. За месяц каждодневного пользования Дашей я ни разу его не видел.Алсо, Dashchan пример того, как имея прямые извилины штатными средствами (без доп. библиотек для хипстеров) сделать хороший продукт.
>>845715Хороший код — это тоже для хипстеров?
>>845716Это навязанные Западам чуждые нам стереотипы! Обколются своими СОЛИДами и тестируют друг друга в юниты.
>>845710все, разобрался
>>845717проорал
>>845385Мне кажется, правильная идея - игнорировать к хуям SearchView из основной библиотеки.Ебанутейшая инициализация, костылинг велосипедов для сохранения истории поиска. На старых версиях меняется цвет текста в окошке, цвет кнопочек и всего-всего - и главное, что это никак не пофиксить.В приложении ютуба сделан свой SearchView, который гораздо удобнее хуйни, вылезающей по середине тулбара.
>>845781А что можно использовать вместо SearchView?
>>846043WebView с поиском Гугла
Как сделать, чтобы язык для локализации можно было вручную выбрать в апке? Или это делать не рекомендуется?
>>846206Мне кажется, это уже 100 раз обсосано на стаковерфлоу.
>>846212Да, извини, еще такой вопрос:Если локализации твоего региона нету то используется дефолтная. А что если локализация твоего региона частичная, тоесть некоторых стрингов просто нету. Тогда будут использоваться дефолтные стринги, которых нету в локализации, или вся локализация будет дефолтной?
Аноны, а в студии есть консоль и способы работы с ней? Чтобы можно было по-быстрому проверять правильное ли я значение возвращаю, а то телефон и эмулятор очень медленные.
>>846222Вкладка terminal внизу. Про значения не понял. Ты имеешь в виду дебаггер?
>>846223Ну я имел ввиду, могу ли я написать аналог System.out.println() и чекнуть что-то?
>>846227Не проще написать юнит тест на этот участок кода?>>846215Для каждого ресурса резолвится все индивидуально. Так что> Тогда будут использоваться дефолтные стринги, которых нету в локализации
>>846227Для этого используется Log.d
>>846362Только даунами используется.
>>846462Чем пользуются недауны?
>>846470Картошкой.
>>846493Мамкин шутник или хедхантишь телепатов?
>>846499Ты тупой или просто из жс-треда?
>>844827Данные о количетсве пицц
>>846558Ну тогда в принципе норм.
>>846501>Ты тупой>из жс-тредаЗачем или если фразы эквивалентны?Сижут тут давно, что такое картошка в душе не ебу. Думаю анон посоветует годную библиотечку для логгинга, а ты хуйню всякую пишешь.
>>846591годна библиотека для логгинга - Timber
>>846824Охуеть какая годная. У нее есть большая проблема, которую выдают за преимущество - собственный принтер эксепшонов, а именно полного стактрейса, из-за чего принтуется она около 16 мс целый фреим.В итоге я ее костылил, чтобы она в отдельном потоке срала логами, беря их из блокирующей очереди.
>>846833А, у нее еще все под одним тэгом выводится. Так что нужно руками еще тэг дописывать, либо писать обертку, которая будет его дописывать.
>>846824>>846833А нахер вообще нужно логирование в мобильной разработке?
>>846852Совсем туттуру, да?
>>846852Ну если у тебя 2 окна рестопараши то ненужно.
>>846863>>846866Аргументов не завезли, я смотрю?
>>846883Краш с логами > краш без логов, это вроде бы очевидно.
>>846886> очевидноТогда ладно.
>>846833Она не будет ничего принтить-форматить если ты не добавишь дерева, ферштейн? А андроидовскому логгеру ты кроме того, что цеплять String.format должен, так еще и в if (BuildConfig.DEBUG) оборачивать должен. Проблема тимбера в том что у него minSdk = 16, непонятно чем это вызвано.
>>846886Тебе крашлитика и так логи всунет по всем тредам. Тимбер только позволяет ее красиво в дерево спрятать.
>>846893> в if (BuildConfig.DEBUG) оборачивать долженЁбнутый что ли?-assumenosideeffects class android.util.Log { public static d(...); public static v(...);}> Проблема тимбера в том что у него minSdk = 16Проблема проблем.
Палю годноту: https://github.com/orhanobut/logger
Аноны я тут новенький, где можно научиться гитом пользоваться? Гайд/книга/видео, все подойдет.знаю немного теорию vcs
>>846897Ага, и сам автор ответа предложил использовать Timber из-за более удобного api.Опять же если я хочу что-то форматировать, то с дефолтным логером даже если его отключить произойдет создание строки и тд.
>>846903Туториал битбакета.
>>846903https://git-scm.com/book/ru/v1
>>846907А в чем разница между битбакетом и гитхабом, или это просто конкурирущие репозитории?>>846908благодарю
>>846905Какого нахуй ответа? В чем более удобное апи?> Опять же если я хочу что-то форматировать, то с дефолтным логером даже если его отключить произойдет создание строки и тд. Што?
>>846912>Какого нахуй ответа? http://stackoverflow.com/questions/2446248/remove-all-debug-logging-calls-before-publishing-are-there-tools-to-do-this>В чем более удобное апи?Вместо того что бы ебать прогвард с изменением стектрейса можно настроить лог как тебе удобно, посадить несколько деревьев, для крашлитики, другое для аналитики например, опять же в зависимости от билдтайпа.>Што?Ты там через плюсик логаешь, да?Если ты не хочешь через конкатенацию складывать строки для лога, то в дефолтном логере ты делаешь:Log.d(TAG, String.format("xyi: %s, pizda: %s", xyi, pizda));Timber.d("xyi: %s, pizda: %s", xyi, pizda);В случае деффлтного логера произойдет создание строки в куче для нахуй не нужного лога.В тимбере до ненужного формата просто не дойдет, если ты правильно его настроил.
>>846909Ну вообщем-то да. Гитхаб только для гита, на битбакете интеграция с асаной, можно и меркуриал использовать. Опять же 5 репозиториев приватных бесплатно.
>>846893 >>846921> В тимбере до ненужного формата просто не дойдет, если ты правильно его настроил> Она не будет ничего принтить-форматить если ты не добавишь дерева, ферштейнА, ну да. Дерево логов краш репорт сервиса мы не подключаем. Я говорю, что тимбер очень долго собирает стактрейс, и это хуево.>>846896> логи всунет по всем тредамНет, только стактрейс.
>>846921> В случае деффлтного логера произойдет создание строки в куче для нахуй не нужного лога.Так какая нахуй разница? Если ты им дебажишь, то тебе похуй на создание строки. В релизи всё равно вырезается логгирование прогардом
>>846924>А, ну да. Дерево логов краш репорт сервиса мы не подключаемПочему же не подключаем? Подключаем, но логать будем только errorы, ну и warnинги, если сильно хочется.
>>846923>Опять же 5 репозиториев приватных бесплатно.5 человек в группу бесплатно, кол-во приватных репозиториев не ограничено.
>>846929Перепутал.¯\_(ツ)_/¯
>>846921И вообще, иди нахуй со своей экономией на спичках
>>846935Когда закончились аргументы. Тебя вообще ебет что я использую для логирования?
>>846941Мне поебать
>>846927Прогвард не вырежет создание строки, вот пруф: http://pastebin.com/i3HnQ3DtКаждый раз когда лог будет вызываться, будет происходить вызов toString объекта, если бы там был тимбер, то этого бы не происходило, так как не было бы посажено дерево для уровня debug.
>>846960Я уже написал: >>846935Создание строги ему жалко, сука. А потом будут про оптимизацию еще кудахтать.
>>846964Спор был о сайд эффектах и отключении логгинга в продакшене. Дефолтный логер нужно оборачивать в if (BuildConfig.DEBUG).
>>846967Я уже спрашивал: нахуя он вообще нужен? Внятного ответа не было.
>>846969А это не внятный ответ: >>846921 ?Вкратце - удобней.
>>846971Вопрос про логгинг в общем был, а не про тимбер.
>>846972Логгинг нужен что бы не сидеть с дебагером выковыривая значения какой-нибдуь хуйни. Посмотреть данные по запросу-ответу, проверить на лету что вызвалось нужное событие и тд.
>>846971Из того же ответа: > Log.d(TAG, String.format("xyi: %s, pizda: %s", xyi, pizda));>Timber.d("xyi: %s, pizda: %s", xyi, pizda);Нахуя писать значения переменных в лог, когда у тебя есть дебаггер? В случае крэша неверное значение будет в эксепшене.
ПЕРЕКАТ https://2ch.hk/pr/res/846976.htmlПЕРЕКАТ https://2ch.hk/pr/res/846976.htmlПЕРЕКАТ https://2ch.hk/pr/res/846976.html
>>846975Редкий краш на девайсах юзеров тоже дебаггером будешь отлаживать?
>>846975Что бы не сидеть с дебагером? В продакшене эти логи никогда не выведутся.
>>846978Крашлитика сама все соберет.
>>846982Она не собирает логи без Crashlytics.log, деб.
>>846984Папка твой деб. Не словленные эксепшны она сама собирает. Те которые словил, ну те да конечно самому надо логнуть.
>>846981>>846986>>846984>>846989
>>846988Ты понимаешь разницу между логами и стактрейсом?>>846990Ну ок(
Перекатывайтесь уже сюда https://2ch.hk/pr/res/846976.html
>>846991>Ты понимаешь разницу между логами и стактрейсом?Конечно понимаю. Но как ты крашлитике логируешь эксепшн? Правильно - через log. Туда же записываешь связанные со сломавшимся функционалом данные.
>>846994Ёбнутый штоле?
>>846994> Туда же записываешь связанные со сломавшимся функционалом данныеТы ограничен тем, что ты запихнешь в карту при logException, а я же получаю более полную картину действий пользователя и данных, с которыми он оперировал.
Использовал кто ? https://atlas.layer.com/android
>>846908не знал что есть на русском, спасибо, а то на ангельском осилил уже больше половины
Господа, как мне динамически подгонять высоту и ширину вьюшки, чтобы она идеально вмещала в себя полученное из интернета изображение? Пикрелейтед то, что у меня выходит и сейчас и то, что я в итоге хочу получить.