Это копия, сохраненная 20 января 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
> Хочу вкатиться в разработку под Android! С чего начать?
С видеокурсов от Udacity. Они бесплатны и затрагивают основы разработки даже если не умеешь писать на Java.
https://www.udacity.com/course/android-development-for-beginners--ud837
Для тех, кто не хочет учиться по юдасити существует скучный кат от гугла: http://developer.android.com/training/index.html
Так же есть книга, которая затрагивает основы разработки и имеет 2-е издание с 2017 года: https://www.amazon.com/Head-First-Android-Development-Brain-Friendly/dp/1491974052
Большинство приложений написано на Java, необходимо понимать что ты пишешь, в уме достаточно знать базовый Core т.к. 90% времени придется тыкаться в Android SDK. Полезные обучалки от анона:
https://habr.com/company/golovachcourses/blog/215275/ - смотри Головача
https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208 - книжка для ньюфагов. Хорошо заходит.
https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486
Неплохим вариантом для изучивших джава будет книга https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997
Алсо можешь читануть паттерны, рано или поздно все равно базовое знание понадобиться https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124
Существует два текстовых ресурса для закрепления андройда на русском. Первый - несмотря на старость описывает базовые вещи, на которых построены мощные либы, второй - продавшийся говноед с котиками http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
https://commonsware.com/Android/ - толстая книга для гиков.
Так же можешь смотреть видосики от Mail.Ru
https://habr.com/company/mailru/blog/345252/
https://github.com/ybereza/technotrack-resources - ресурсы к лекциям
Или от Яндекса. В некоторых моментах спикеры рассказывают важные детали, которые кроются в мелочах:
https://www.youtube.com/watch?v=5EvxWifIgro&list=PLQC2_0cDcSKBNCR8UWeElzCUuFkXASduz
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Я прошел курсы Udasity, а дальше что?
После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http, Json, SQLite.
Дальше закрепляешь знания путем просмотра видосов выше +
Написание парочку приложений на свой вкус. Так же стоит уделить внимание BroadcastReceiver, IntentService, поиграться с Loader's, хендлерами, Contest providers и прочее.
>Не могу разобраться в потоках. Хендлеры, хуендлеры хуйтаски. Как быть?
http://codetheory.in/android-handlers-runnables-loopers-messagequeue-handlerthread/ - Хорошая статья, которая экономит время. После нее можно сразу переходить и тыкаться в хендлерах.
https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a - еще одна от миндоркса.
https://codelabs.developers.google.com/codelabs/kotlin-coroutines/index.html#0 - изучение корутин
>Хочу изучать популярные либы и не быть говноедом!
Если ты сразу после курсов переползаешь сюда - будь готов, что ты не будешь знать как это делается под капотом.
Retrofit - стандарт для взаимодействия с сетью. Вместе с ней можешь изучать либу okhttp3. Так же для справки можешь гуглить volley.
RxJava - тяжеловесная либа. Одно из решений для выполнения кода в бекраунде.
[YouTube] KotlinConf 2017 - RX Java with Kotlin in Baby Steps by Annyce Davis - rxJava с нуля
[YouTube] RxJava доставляет Артём Зиннатуллин - на русском
[YouTube] Managing State with RxJava by Jake Wharton - rxJava
[YouTube] Making Retrofit Work For You by Jake Wharton - retrofit
Неплохо было бы и изучить MVP. Для самообразования можно написать его голыми руками или прогуглить, как это делается.
https://github.com/ArturVasilov/AndroidSchool - здесь рассматривается архитектура, и как ее ели с 2011 года.
MVP:
https://javarush.ru/groups/posts/505-mvp-v-android-dlja-samihkh-malenjhkikh - для понимания
https://github.com/Arello-Mobile/Moxy - плюшка для поворотов экрана
https://github.com/sockeqwe/mosby - англоязычная плюшка
MVVM - костыли от гугла:
Для нормального понимания желательно знать AAC.
https://startandroid.ru/ru/courses/architecture-components.html - свежие уроки от Димона
https://proandroiddev.com/the-missing-google-sample-of-android-architecture-components-guide-c7d6e7306b8f - для продвинутых
Пример MVVM
https://github.com/ericmaxwell2003/MvvmTipCalculator
Это всего лишь обертки, чтобы вынести логику из views. Для более углубленно изучения можно попробовать почитать
this: https://habr.com/company/mobileup/blog/335382/
Пример на котлине:
https://github.com/hitherejoe/GithubTrending
> Хочу анимировать мои говноподелки!
https://www.youtube.com/watch?v=dzB-1VlHJW8
Онли теория. Первые двадцать минут покрывают больше половины статей, которые можно найти на медиуме и т.д.
Здесь побольше практики на любой вкус: https://labs.ribot.co.uk/exploring-meaningful-motion-on-android-1cd95a4bc61d
Так же можно подробно почитать про смены сцен: https://blog.prototypr.io/applying-meaningful-motion-on-android-a271a873bd78
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17.05.2017 поддерживается официально.
[YouTube] Лекция 1. Kotlin 101[РАСКРЫТЬ] - свежие лекции на русском
https://www.amazon.com/Kotlin-Action-Dmitry-Jemerov/dp/1617293296 - библия
https://kupdf.com/download/kotlin-for-android-developers_59a05e2ddc0d60992a18496b_pdf - Kotlin for Android
https://www.udacity.com/course/kotlin-for-android-developers--ud888 - курсы Udacity
> Есть что-то кроме нативных приложений на Java/Kotlin?
- Flutter - кросс-платформенный фреймворк от Google. Js с аля строгой типизацией. Если совсем поехавший можешь начинать с него.
https://flutter.io/docs/ - документация
https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity
Остальные:
ReactNative — мочаскрипт во всей красе.
- PhoneGap/Ionic/Titanium — имя им мочаскрипт-младшие, принципы у них разные, первые три попытка в кроссплатформенность одного кода. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры!
LibGDX - слишком медленная параша для больших проектов, но познакомится можешь. Unity - для адекватных, Corona SDK, LOVE, Defold и другие. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии, shared preferences, SQLite, Handlers, Executors, Content-Providers), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам), понимания СОЛИД и других паттернов проектирования. И хотя бы несколько готовых приложений.
Полезные ссылки:
https://www.youtube.com/channel/UCSwuCetC3YlO1Y7bqVW5GHg - канадский челик, поясняет за архитектуру и отвечает на разные вопросы на стримах.
https://github.com/toddmotto/public-apis - бесплатные API для создания приложений.
https://github.com/AlexeyZatsepin/Android-ORM-benchmark - бенчмарки на вопросы о том, какую БД выбирать.
last >>1270595 (OP)
>Архитектура.
Архитектура дошкольного уровня.
>И заебало, что в каждом андроид-треде находится "умник"
Иди нахуй. Когда легаси код встретишь тогда и поймешь.
>Архитектура дошкольного уровня.
Ты - даун. Если паттерн подразумевает, что одна часть кода разделяется с другой по разным классам и\или пакетам - это уже архитектура приложения.
>Иди нахуй.
Аргумент школьника, сьебавшего пораньше с уроков.
> Ты - даун. Если паттерн подразумевает, что одна часть кода разделяется с другой по разным классам и\или пакетам - это уже архитектура приложения.
Вот только MVwhatever такое разделение только для презентационного слоя подразумевает. И про пакеты там ни слова нет, кстати.
А что он про легаси сказать хотел я хз.
Мимо
> Если паттерн подразумевает, что одна часть кода разделяется с другой по разным классам и\или пакетам - это уже архитектура приложения.
С таким определение и адаптер, и обсервер - архитектура.
Предлагаю пойти дальше: есть хотя бы один класс, значит это архитектура.
>Ты - даун
Нет ты.
> Если паттерн подразумевает,
Уже на паттерны сваливаем. Молодой человек, у вас биполярочка.
>прекрати уже себя таким дебилом выставлять.
Маняоправдания подъехали. С кем я блять в одном треде сижу, пиздец.
>Есть, чего ж нет.
Кстати, положение списка сохраняется само собой? А то в гугловском примере для этого ничего не предпринимают.
Наверное RecyclerView по хитрому сохраняет и потом применяет при первом аттаче адаптера.
Нет, там будут котлин или свифт (на 95% схожи, разницы никто не заметит).
хуетлин бляд, схуяли то ваще?
флаттер и дарт жрать будете (и урчать за обе щеки, а не тонны бойлерплейта писать и КОМПИЛИРОВАТЬ МИНУТАМИ РАДИ ОДНОЙ БЛЯД СТРОЧКИ КОДА)
Не будет. Дарт даже внутри гугла никому не сдался. Ну а Го просто напросто неподходит для прикладного программирования.
>на 95% схожи, разницы никто не заметит
С этим я бы поспорил, если ты смотришь на хеллоуворд то на этих двух языках он будет выглядеть похоже.
Синтаксис похож, но тоже много отличий(guardы и распаковка в if let тут котлин кстати лучше, именование аргументов, обработка исключений)
Система типов в свифте где-то богаче(value types, reference types, enumы c ассоциированными значениями), где-то насасывает у выдумок одерски + в котлине эти выдумки еще немного улучшили(генерик типы в swift инвариантны кривоватая система с assotiated types).
+. в свифте есть нормальные экстеншены и protocol экстеншены, в котлине экстеншены попроще.
В пятом свифте еще обещают async/await и акторы.
Допустим, я хочу иметь одну и ту же модель/зависимость на все экземпляры активити в бекстаке. И при этом чтобы она не висела постоянно в памяти, как с обычными синглтонами через статический метод, а собиралась сборщиком мусора, когда последний экземпляр активити сдохнет.
Или хочу иметь одну модель активити и фрагмент.
Как это можно реализовать? И какую помощь в этом дают Scope'ы?
Во всех примерах либо все компоненты валяются в полях Apllication (и постоянно висят в памяти, как следствие), либо для каждой активити в поле хранится свой экземпляр компонента, которые, конечно, на хую крутили мои хотелки иметь между ними что-то общее.
https://google.github.io/dagger//android.html
Подскажите, знающие, вот если сделать по гуглопримеру - это даст то что мне нужно?
>я хочу иметь одну и ту же модель/зависимость на все экземпляры активити в бекстаке. И при этом чтобы она не висела постоянно в памяти,
Ты не хочешь, чтобы она висела в памяти, но хочешь иметь ее в каждом активити? Что? У тебя глобальный объект на весь эппликейшен.
Чем это
>Или хочу иметь одну модель активити и фрагмент.
Отличается от этого:
>либо для каждой активити в поле хранится свой экземпляр компонента, которые, конечно, на хую крутили мои хотелки иметь между ними что-то общее.
>Ты не хочешь, чтобы она висела в памяти, но хочешь иметь ее в каждом активити? Что? У тебя глобальный объект на весь эппликейшен.
Допустим, я хочу, чтобы первая активити дергала некий хелпер, который что-то там обрабатывает. И чтобы изменения в нем отображались во всех открытых одновременно с этим экземплярах этой активити. И как плюшечка - чтобы когда в стопке не будет экземпляров этой активити и ссылок на компонент - чтобы зависимость собиралась сборщиком мусора. То есть, мне нужен один компонент на экземпляры одной активити. И не синглтон при этом, который будет висеть в памяти пока JVM не сдохнет, даже если какой-то элемент зависимости дергается всего один раз на пол шишечки. Грубо говоря, что-то типа пула компонентов, который чистится, если на число ссылок на элемент = 0.
>Чем это
>Или хочу иметь одну модель НА активити и фрагмент, который прикреплен к ней.
>Отличается от этого:
>либо для каждой активити в поле хранится свой экземпляр компонента, которые, конечно, на хую крутили мои хотелки иметь между ними что-то общее.
Тем что во втором случае это либо глобальный синглтон (и тогда вообще хз нахуя нужна эта ебля с сабкомпонентами, можно все заливать в
ApplicationСomponent), либо вообще разные экземпляры компонентов.
В первом случае компонент один и он не глобальный синглтон. Ссылки пропадут и они почистится.
Он вообще никак на это не влияет, насколько я понял. Два разных экземпляра компонента, у которых один и тот же scope - вроде как выдают разные объекты с @Provides методов. Scope гарантирует, что будет один и тот же экземпляр зависимости лишь в пределах конкретного экземпляра фрагмента.
Даун что ли?
Меня постоянно кринжит два братца урода. Иногда работаю над айосью на свифте, иногда над андроидом на котлине. Синтаксис хуйня, если не скачешь туда-сюда проблем не будет, тут больше в подходах отличия, но это уже отличия андроида/javaOOP от эпловской экосистемы.
Хех, заебывался такой проблемой недавно, нихуя номрального не нашел, кроме этого https://proandroiddev.com/lifecycle-aware-dagger-components-8c74d01fa15
Мне не понравилось что активити и фрагменты занимаются созданием компонент и пляски при пересоздании активити/фрагмента.
Переделал для себя так что активти/фрагменты возвращают ключ п которому (суб)компонента хранится в мапке, и есть фабрики которые используются если для такого-то ключика нет компоненты.
При дестрое сразу релизим (суб)компоненут, но еще не удаляем из мапки, а делаем это через 5 секунд, в итоге если активтитя/фрагмент вернулись они получат старый инстанс по своему ключу, плата за это - не сразу мрующие коммпоненты. Впрочем я потом докинул спейифических рычкагов для немедленного убиства компоненты (логаут).
Вот еще статья про скоупы http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/ там этот впорос приподнимается но бзе примеров, а ручное дергание высвобождения компонент как-то meh.
А еще в Conductor этой проблемы нет, так как контроллер не мрет от поворота.
Возможно в твоем вариант ручное управление жизнью компопнент самое то.
Ну и мне кажется что гугловская приблуда с этим тоже справляется как-то, но я хз.
>http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/
>>291364
Охуенные статейки, то что нужно, сяп.
@GET("bla_bla_bla/bla?client=bla&hz=12&pz={insert}q=hui")
Вопрос. Как, блядь, вставить параметр pz, если нельзя передавать в метод параметр @Path? А если вставлять как @Query - то как вставить в середину только один параметр, не передавая вообще все параметры?
Да. Тот же гуглотраслейт залупу покажет, если параметры будут в неправильном порядке.
Тогда используй @QueryMap и передавай туда LinkedHashMap, тогда порядочек сохранится.
Установил ведроид-студию, поставил NDK.
Запускаю gradle.assembleRelease, получаю пикрелейтед: Android NDK: Invalid NDK_TOOLCHAIN_VERSION value: 4.9. GCC is no longer supported..
Не пойму что за хуйня. NDK больше не поддерживает компилятор GCC?
Если тупо проставить в Application.mk версию clang, то проект не собирается.
Я могу поставить старую версию NDK параллельно или взамен последней?
Какая последния версия NDK с поддержкой GCC 4.9?
Application.mk формат больше не поддерживается. Переписывай всё для cmake и последней версии ndk.
Звучит, конечно, прикольно, но это написанный не мной легаси-код и мне как-то не по приколу там все переписывать.
Ну на то он и легаси, чтобы быть неподдерживаемым говном.
Но может там тривиально всё обновляется, что за проект-то?
О, он таки открыл исходники. Раньше там только бинарки и баг-трекер был.
Из-под админа запускал, та же хуйня.
Че делать с этим?
Похоже на то, ты вообще несёшь какую-то хуйню.
Свой дашчан блять. Форк блять или хуй его знает что ты под этой фразой имеешь ввиду.
Какой-то шизоид.
>Похоже на то, ты вообще несёшь какую-то хуйню.
Несешь ее ты
>Свой дашчан блять
И что? Сам сижу на нем и норм.
>Форк блять
Нахуй мне форкать говно? Максимум что там полезно, так это увеличение сужении картинки при клике.
>Какой-то шизоид.
Шизойд это ты.
Ведробояре, подскажите какую нибудь толковую книгу по вкатыванию в Андроид для людей с опытом. те не для новичков
Поехавший блять.
Это называется "Разрабатываю мобильный клиент для двача".
Но ты же не можешь связно мысли выражать.
Затираешь тут про какой-то "свой дашчан", хотя твоя хуйня не имеет к дашчану вообще никакого отношения.
На чем делаешь? Только под ведро? Или у тебя там реакт нейтив какой-нибудь? Кто-нибудь кроме тебя им пользуется?
Чет ты не похож на неновичка.
Люди с опытом понимают, что в хуйне уровня андроида, где новая версия каждый месяц выходит, в книгах по-дефолту не может быть актуальной информации.
И просто идут читать сайт ведра как первоисточник.
>Только под ведро?
Пока да. На иосе пока аламофаре тыкаю.
>На чем делаешь?
Конечно же джава; мокси + клин архитектура + многомодульность.
>Кто-нибудь кроме тебя им пользуется?
Пара друзей тестировщиков. Внутри хуйню не проблема написать, по большей части вожусь с UI, чтобы было комфортно. Например свайп вправо на ответ, как в телеге.
Ясно. Как всегда лучше документации ничего нет
Алсо, сейчас на работе так и сделал, только у меня 3 итема в навигации боттом.
Эх, если бы они сделали анимационный переход between фрагментами or активитями то я бы навечно в андройд остался.
>И просто идут читать сайт ведра как первоисточник.
Отличный совет навернуть несвежего говна, которое даже палкой в виде сторонних библиотек зашквар трогать.
>Отличный совет навернуть несвежего говна,
Не то, чтобы говно. Но вот старые волки продолжают сидеть на intent service например. Андройд сейчас неебически здоровый становится, растет с каждым месяцем все больше и больше. Уже джуны пошли, которые отродясь handler не видели и даже не знают о нем. Попивают смузи и крутятся в реактивщине.
Показывай скрины
Проблема не в байнде элемента (проверял с пустым). Похоже что при инфлейте, но блять, там же верстка простейшая https://pastebin.com/581JV8ys!
Время инфлейта + пустого конструктора холдера - 55 - 75 ms (высокие занения типа 120 только при первом инфлейте).
Overdraw показывает вменяемые зеленые области.
Да, кеширование, но там 10 вью тайпов (на самом деле 9, но если влруг не найдется делегаат используется фолбек).
В итоге когда я доскраливаю до того места где начинают ити подряд элементы типов которые сразу не создались начинатся лаги.
Причем ладно, хуй с ним с аномальным инфлейтом, захуярил кодом >>292045. Но у следующих элементов нет какого-то долгого создания или байнда, а всеравно лагают.
Попробавл systrace - хуй, почему-то кастомные трэйс секции которые я расставил не показывает, хотя запускал вроде норм (python systrace.py -o ~/tmp/newtrace.html -app=<my package>
).
В итоге захуярил большой максимальный размер пула для некоторых вьютайпов и вьюшки не выкидываются из пула, так что лагает один раз, но все же.
Есть другое приложение с этим же SDK, но там работает без проблем. Не знаю куда копать, может есть у кого какие идеи?
>Есть другое приложение с этим же SDK, но там работает без проблем.
Ну так вот и возьми оттуда.
У меня тоже много было проблем с перфомансом, в одном нужно было полностью закрыть фрагмент и уже после этого ижтектить, а я делал наоборот и было подвисание. Второй раз я пытался скрывать\показывать bottom bar во время скрола, но в итоге и он лагал. лол.
Что я оттуда должен взять? Говорю что импорт одной и той же библиотеки в разные аппы почему-то влияет по разному. Нужно понять, что вызывает лаги.
Это с брейкпоинтом такое видно?
Может тебе пока отключить автотрекинг и ручками логать события? Ну и просто пальцем в небо - может у тебя очень большая вложенность лэйаутов, скролы-в-скроле и тд. На крайняк тебе придется вскрыть приложениеи которое не лагает и смотреть разницу в скролящихся лэйаутах.
Если у тебя одна из последних студий стоит, то смотри внимательней внизу экрана, где вкладки Build, Terminal и т.д.
Не, сам профайлер я нашел, я не выкупил что нужно было нажать на строку где бежит график CPU, потом еще раз нажать и вот тогда уже будет видно стектрейс.
Покрыл тебе на ротеш, проверяй.
Использую Glide. Сейчас тупо делаю Glide.Load.Into в onBindViewHolder.
Как минимум вижу уже один потенциальный обсер моей схемы:
если пользватель начнет скролить и пикча загрузиться и установиться после того как переиспользовался вьюхолдер то пикча установиться не на том айтеме.
Но вангую что с такой схемой будут еще какие-нибудь обсеры с lifecyle, утечакми памяти и т.д.
Как вообще такое делают?
>Лёха, ты?
Alexey Koch
last entered in the TG 17:09
Вопрос - почему у меня СДК лагает, а у другого примера нет? С умным видом кидает стектрейс и не может уразумить, что проблема блять в его ебанном коде.
Привет.
>>293150
>если пользватель начнет скролить и пикча загрузиться и установиться после того как переиспользовался вьюхолдер то пикча установиться не на том
if (data.get(position).getImage() != null {
load this is image suka
} else {
Glide.with(viewHolder.testImage.getContext())
.clear();
}
Ок, если ебаный код, то почему тормозит простой экран где скролл вью и несколько текстовых вью? Логики никакой сложной не прикручено по отрисовке и загрузки данных.
>Ок, если ебаный код, то почему тормозит простой экран где скролл вью и несколько текстовых вью?
Откуда я сука знаю? Если бы блять у меня был бы твой код, и был бы код который не лагает я бы тупо перенес блять отткуда классы ресуклера + активити или фрагмента, на котором твой говнокод тормозит и посмотрел, но для начала я бы почитал доки. Какой же ты тупой.
Ты заебал со своим ресуклером, нету там его блеать. Открываю ебаный фрагмент на котором кроме статического текста который можно скролить нет нихуя.
>Ты заебал со своим ресуклером, нету там его блеать. Открываю ебаный фрагмент на котором кроме статического текста который можно скролить нет нихуя.
Кидани тогда ссылку на этот сдк, ссылку на пример чувака, у которого не лагает, и ссылку на свйо говнокод.
Макет фрагмента https://pastebin.com/wA4Zx4WQ
Макет активити: https://pastebin.com/qx6qgUcK
Код фрагмента и активити: https://pastebin.com/AsgDWeSc
Facebook SDK начиная с версии 34 начинает фризить аппу: https://developers.facebook.com/docs/app-events/codeless-app-events
Решение для версии 34 и выше: ставим в манифесте "com.facebook.sdk.CodelessDebugLogEnabled" в фолс, но тогда у нас ивенты идут мимо и маркетинг не работает.
Даже если делаем импорт только фейсбук логин, но версия 34 и выше, а в манифесте у нас прописан только апп айди и фейсбук активити, то проблема остается, пока не откатимя на 33 версию или не поставим фолс для ивентов.
В другой аппе, тоже есть фейсбук сдк, используется для логина. Там при обновлении на последнюю версию не происходит проблем с производительностью. Если даже пропишем в манифесте com.facebook.sdk.CodelessDebugLogEnabled = true.
Версия Android SDK одинаковая для двух платформ и равна 28. Support library 28.0.0. Откаты на более старые версии тоже не решают проблем. Думал так, ибо фейсбук еще не перетащил свои либы на новые support library.
У меня есть попдозрение что виновата может быть линейка, меня она тоже недавно удивила долгим инфлейтом.
Ты убирал селектабле бекграунд? Почему ты не поменял скролл на нестед скролл?
Если у того примера все норм, даже с СДК 34+, то у тебя конечно проблемы.
Блять, ты используешь в мейн активити <android.support.design.widget.CoordinatorLayout
И еще используешь скролл листенер. Боже. Что это такое? Смени координатор на релатив леяут еще. Если хочешь оставить координатор, то тогда тебе придется в фрагменте сделать релатив и поставить в FrameLayout тулзу app:layoutBehavior
>Блять, ты используешь в мейн активити <android.support.design.widget.CoordinatorLayout
А в чем проблема?
Тулбар же живет в активите, а ему надо быть в координаторе что бы все красиво связать, разве нет?
Я что-то не понял о каком скролл листенере ты говоришь, я в его листингах не нашел.
>скролл листенере
pic
Там еще поставь в него fillView..... true
Я же сказал, для начала убери selectable в каждом текст вью и посмотри.
Coordinator студия автоматом создала, когда добавлял эти классы чтобы потестить багу. В других местах обычно юзаю Constraint или LinearLayout, но что-то мне подсказывает что это не причем. Перебирать все лайауты в проекте то еще веселье будет (овер 50 макетов).
На одном из экранов есть слайдер с картинками. Картинки он листает автоматически каждые 5 секунд. Проблема зависания так же затрагивает работу этого слайдера при переходе с одной картинки на другую. Он помещен в android.support.design.widget.CollapsingToolbarLayout, и вот таки когда делаю свайпы в промежутке высоты, который занимает слайдер, скролл не тормозит и работает как полагается. Проблема не затронула выдвижное меню и его анимация работает без тормозов.
Во-первых я мимокрок. Во-вторых я может быть немного не в контексте, но насколько я вижу поп остам спрашивающего нигде ни о каком скролл листенере речи не идет, может быть ты имеешь в виду ScrollView?
Убрал все что можно, добавил NestedScrollView, результаты остаются теми же.
Я все дальше сторонюсь идеи копать лейауты и код. Ибо проблема наблюдается на уровне всего проекта. Избавление от общих зависимостей в коде от базовых классов не дала результатов. Думаю нужно просмотреть все зависимости в грэдл. Там дохуя всякого говна связанного с аналитикой. То есть и фейсбук и гугловский Fabric там на фоне работают. Возможен конфликт какой-то из библиотек.
Что юзать? Как заставить её жить если убью апку из рисентов?
Благодарочка
sourceSets.main.assets.srcDirs += file('path/to/your/shit')
Ну или как вариант градл таска, которая копирнет перед билдом файл в app/src/main/assets.
Так мне наоборот не нужно чтобы эти файлы копировались в app/src/main/assets т.к. от билда к билду могут меняться.
Мне нужно чтобы во время билда их как-то инжектировало в собираемый проект.
Типа как например
someBuildType {
resValue "string" someSecretString "${someValue}"
}
Может инжектировать нужную строку, но в репозитории проекта этой строки не будет.
Ты типа хочешь ассеты из гита куда-то выкинуть или что? Чего ты добиваешься? Почему тебе sourceSets.main.assets.srcDirs += file('path/to/your/shit') не понравилось?
Кстати на счет убийства приложения. Если я убиваю телеграм или вк из процессов, то почему уведомления мне могут приходить? Это что за чертовщина?
FCM
Force stop попробуй, нотификейшены приходить не будут
Да, я не хочу чтобы файлы хранились в проекте, а подхватывались из нужной мне папки во время билда и копировались в ассеты билда.
Хотя твой метод в принципе подходит, я сначала затупил и подумал что они просто скопируются в ассеты из тех папок что я укажу.
Но тогда возникает другой вопрос, у меня в ассетах еще есть папка и мне нужно чтобы файлы имеено туда копировались, можно ли так сделать?
Ну так засунь ту папку где будут эти файлы в gitignore и все.
В том то и дело, что выдал релиз, и уже там заметил проблему.
Так ты рутовую папку ассетов задаешь этой командой. Можешь дальше там плодить папки как хочешь.
>DialogFragment is depricated
>Нет версии PreferenceFragment под v4
>А кастануть один в другой низя азаза
Ебаный в рот. Какой пиздец. Вот как можно так обсираться нахуй?
Как теперь вызывать в настройках кастомные v4 диалоги, если getChildFragmentManager в их модной v14 ссанине фрагмента настроек выдает дефолтный фрагмент менеджерб а не под support library?
Черезь консоль тогда, пару команд вбить что бы собрать апк, а уже код пиши в чем хочешь.
В androidx вроде пофиксили.
А можешь показать пример или слова-маячки написать, чтобы я загуглил? Так-то я пытался через Kivy от питона, но не смог, ему нужна виртуалка убунту, а у меня для виртуалки слишком мало ресурсов.
Какой в пизду kiwy? Что ты гуглить собрался? Как собирать апк из консоли: https://habr.com/post/335074/
Проебал еще пару дней на поиск причины зависаний. Что нарыл на данный момент: перестает тормозить если в манифесте запретить слушать ивенты (но тогда не будут считаться установки и запуски приложения). Создавал новый проект с нуля, импортировал в проект только FB SDK и APP ID, после чего начинало снова баговать и никакие флаги в манифесте и в грэдле не спасали, кроме выше сказанных.
Далее я нашел на странице аналитики оповещение пик(только для другой аппы, которая не лагает) почитал подробнее, мне предложили потрясти телефон с запущенной аппой. Нихуя не произошло, но это не сработало потому что версия которая лежит на апп сторе имеет очень старую версию, хотя уже прошел месяц с момента, как заказчик получил билд с обновленной версией. Затем проделал те же манипуляции с багованной аппой. После того как потряс телефон, началась трансляция экрана запущенной сессии, вплоть до каждого скролла и свайпа. В итоге, это может быть той самой причиной, по которой происходит зависание и подтормаживание интерфейса программы. Возможно заказчик понакручивал ивенты на каждый пук в приложении не предупредив. Но это еще нужно проверить на примере других программ.
> перестает тормозить если в манифесте запретить слушать ивенты (но тогда не будут считаться установки и запуски приложения).
Ты это уже писал.
>Возможно заказчик понакручивал ивенты на каждый пук в приложении не предупредив
Бывает.
>Говноед, плиз.
Что блять? Я на этом говне вырос и когда я сука пришел сюда год назад, здесь полтора анона сидели с ебанутой шапкой, которая ничего блять не давала. А еще я помню анона, который ебался с видеоплеером, но он уже пропал куда-то.
>Не знаю, если в рх оператора нет который килит еще, то и нет. На моей памяти только 2 килят эти.
Так в том то и проблема, что вроде как и должен останавливать https://github.com/square/retrofit/blob/master/retrofit-adapters/rxjava2/src/main/java/retrofit2/adapter/rxjava2/CallEnqueueObservable.java#L93
Но как будто файл по инерции докачивается на сервак.
Потому что именно так работает HTTP.
Сервер получил полностью файл, сохранил его, пытается тебе отдать ответ об успешном сохранении файла, но ты именно в этот момент отменяешь запрос и разрываешь соединение.
activity.finish()
А сегодня загрузил его обновление, и в маркете не появилась новая версия в течении часа.
Это норма?
Угу, моему корешу писало что версия обновилась, но на деле в маркете еще висела старая.
Да, когда это стало моей работой. Другого и быть не может, когда работаешь фуллтайм с другими и делаешь коммерческие проекты. Проекты хоть и говно, но выше моего уровня знаний, поэтому есть база для прокачки. Уже могу спокойно сделать поворот экрана с активным плеером и не проебать состояние. Ну и вместо жабы Котлин юзать пришлось, но на него было не очень трудно переходить.
Да, по следующим причинам:
1) Приложения с Андроида будут поддерживаться в Фуксии и уметь их писать будет не лишним.
2) Если вкатываешься под Андроид сейчас, то 100% столкнешься с Котлином. А Котлин с большой вероятностью будет языком разработки под Фуксию ОС.
3) Фуксию выкатят хуй знает когда, может через 2 года, может через 5. Ты будешь сидеть и ждать непонятно сколько?
Ты со своей стороны сделал все верно. Дальше уже проблемы сервака (бекенда), которые не должны нести головной боли для мобайл девелоперов. С твоей стороны отменилось? Да. Колбек соответствующий есть? Да. Все остальные вопросы тогда не к тебе.
Не имеет смысла уже.
Во-первых, ConstaintLayout.
А во-вторых, нет плюсов. На собеседовании сможешь ответить, если про него спросят - единственный твой профит. По факту роста производительности не дает, но головной боли при верстке добавляет.
> с вложеными релейтив и линеар изи
А потом удивляются, хули у них при прокрутке списка всё тормозит.
спс, собесы проходить не планирую, буду ебашить постаринке
>В чем сложность? Там констреинты все легкие, просто прокачанный релейтив.
Та хуй его, я не осилил, мне он показался какой-то хуйней юзлесс и без смысла, я релейтивом и линеаром обхожусь вполне нормально
Я тебе уже написал, лол
>Во-первых, ConstaintLayout.
Во-первых, релатив уже объявлен как легаси и депрекейтед. Если хочешь делать анимацию - то можно и контсрейнт, а там и другое изучить. Да и гугол уже вовсю стремится к нечитабельности хмл, как в иосе. Но до этого еще долго.
Чтобы понять, что клавиатура появилась нужно высчитывать изменения размеров во вьюхе. Если ты отключил хуйню при которой вьюха съезжает сама при появлении клавы, то вообще не задетектить. Ебитесь как хотите говноеды со своими андройдами называется. В ios просто подписался на уведомление о появлении/исчезании клавы и там же получил ее высоту.
Как же заебало разбираться во всей этой параше вместо того чтобы писать код это делал для айфонов
>>кокококо-кокококок-кокококо
Зачем вообще лезть в андройд, после иос? Ладно я понимаю таких людей как я, которые начинали с андройда, а потом еще и иос изучили, но вот ты - типичная омежка-ошибка, даже не сумевшая осилить клаву.
Что тебе мешает просто прикрутить обсервер к рутовому леяуту и все? И это только начало, маня.
"а андроид версию смогешь?"
"да изи, в ios быстро разобрался, там наверно все по аналогии"
>обсервер к рутовому леяуту
обсервер на изменение высоты? а если я отключил автоматическое уродование вьюхи
Не знаешь способ как в Kotlin'е сделать Parcelable abstract class, чтобы его наследники были data классами?
С использованием @Parcelize и Parceler всё равно выходить дохуя писанины, т.к. классы большие
Ты просто тупой как бревно, что тебе еще сказать. Если после ебанутой во всей своей сущности иос-разработки (с конченым и отсталым импортом библиотек, откровенно уебской верской, откровенно ебанутой работой со списками, которые у вас названы таблицами, дебильным и багнутыми хкодом и т.д.) ты не в состоянии вкатить в андроид-девелопмент, в котором ты практически все делаешь в АС, не выходя из нее и где все лампово и понятно, то ты - дно в программировании.
Формально далвик и арт не являются жвм. А твой жвм байткод транслируется в декс байткод на этапе сборки апк.
>С использованием @Parcelize и Parceler всё равно выходить дохуя писанины, т.к. классы большие
Ставишь расширение на котлин парселабле и все.
>А твой жвм байткод транслируется в декс байткод на этапе сборки апк.
Ловите дауна ебаного. С каждым твоим сообщением, все больше стекается подливы, возле твоего очка.
но ты ж сам тут обасрался
Только последние аутисты, либо те, кто были студентами в середине нулевых и привыкли к уебскому делфи, где все программирование и верства делались мышкой.
И вот если юниттесты проваливаются - все идет хорошо, приложение не запускается.
Но вот провал инстурментальных тестов нихуя не меняет, приложение все равно запускается, а студия еще и переключает вкладочку на лог приложения, а не тестов. В итоге легко можно прозевать, если там что-то провалится.
Как пофиксить и запретить этому говну запускаться, если проваливаются инструментальные тесты?
> Пытаюсь настроить автоматический запуск тестов перед запуском приложения в эмуляторе.
Зачем?
>большинство так и пишут на джаве?
Ну да. Котлин же сахар просто. Что тут сложного, на джаве писать? На котлине пишут те, кому уже надоела жаба.
Кроме того, что ты описал (Ctrl+Alt+Shift+K) есть ещё и другой вариант. Копипастишь джава-код в файл .kt и он тебя спросит конвертить вставленный кусок в Kotlin или нет. Алло, блять!
Потому что запускаю в эмуляторе, чтобы потестировать ручками.
А там:
1) Что-то может отвалиться где-то там, где я даже не предполагаю после изменений.
2) Если что-то нащупаю ручками не то - легче будет локализировать проблему.
3) Да и разве я зря писал их чтоле?
Ну это все интересно конечно, но нахрена их запускать при каждом запуске приложения на эмуляторе? Ты можешь делать как нормальные люди? Сначала наговнякать свой код, прогнать его на эмуляторе, а тесты гонять только перед мержем своего говна?
Перед мержем говна будет уже поздно, попробуй упомни, где ты там навертел хуйни. Придется возвращаться и лопатить. А тут прям сразу, стоит только тронуть.
Не, я понимаю еще, если комп слабоват и тесты будут запускаться долго. Но я вот запускаю эмулятор относительно редко, а сами тесты проходят весьма быстро.
> попробуй упомни, где ты там навертел хуйни
У тебя в пулл реквесте внезапно показывается, где именно ты навертел хуйни.
Только выделять некоторые элементы .observeOn(AndroidSchedulers.mainThread())
.makeHui(...)
.observeOn(Schedulers.io())
?
Это кардинально неправильны подход, посреди цепочки что-то публиковать во вью, всему этому место в subcribe(onNext)
Например по нажатию на кнопку нужно сделать запрос и показать лоадер:
button.clicks().flatMap {
makeRequest()
.map { Result(it) }
.onErrorReturn { Error(it) }
.startWith { Working }
}
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
when (it) {
Working -> { loader.show(); button.disable(); }
is Result -> { loader.hide(); button.enable(); setData(it.value); }
is Error -> { loader.hide(); button.enable(); showError(it.value); }
}
}
И как же опубликовать в одном onNext во вью, если нужно, допустим, в одной цепочке пройти три шага
1) Проверить условие 1. И если провалено - отобразить уведомление.
2) Если условие 1 выполнено - проверить условие два, и если оно провалено - отобразить уведомление.
3) И только если все два условия выше выполнены - отобразить контент в onNext
check1().flatMap { result1 ->
__if (!result1.isSuccesfull()) {
____Observable.just(ShowNotification(result1))
__} else {
____check2().map { result2 ->
______if (!result2.isSuccesfull()) {
________ShowNotification(result2)
______} else {
________ShowData(result1, result2)
______}
____}
__}
}
>Volley
Земля тебе пухом братишка.
Глянул, а там реально такое дно. Ну тогда придется сделать свой реквест JSONObject -> JSONArray, наследуйся от JsonRequest, там не сложно.
Чет не осилил, хорошо что на стаке это уже сделали за меня
Не бойся, тебя не вынесут
Байтоебы сэр. Ну или может он думает что реф коунтинг это не сборка мусора.
>Байтоебы сэр.
Но ведь даже мочаскрипт это байтоебы. Все состоит из байт. Так что, хочешь не хочешь, все равно зашкваришься. Да и GC, верно, что и ARC, что GC, что другая приблуда, челик оподливился как только написал свой первый хело ворд.
Ну пердолься в свои плюсы, NDK тебе в руки.
>Не могу спать когда понимаю, что сраный чатик отжирает пол гигабайта драгоценной RAM
Где? А где? Я не вижу. Кидай пруфы.
Но это возможно же, если у тебя 8 гигов оперативы в мобилке с 2к+ экран. Там наверное и хип выделяется 500 метров, который сразу забивается кешом картинок и прочего говна.
>Но это возможно же, если у тебя 8 гигов оперативы в мобилке с 2к+ экран. Там наверное и хип выделяется 500 метров, который сразу забивается кешом картинок и прочего говна.
Так это, никто твои бомжатские, хрюша, мобилки, не покупает. Минимум владельцы 16гб используют. Иди нахуй, мань.
Тогда у тебя на чатик не может столько выделяться. С 3 гигами метров 200 выделяется максимум. Если только там не нативщина или лард хип флаг.
Работаю в DroidScript, поэтому вообще хуй знает как это делать.
Либо посоветуйте теговых фм с доступом к файлчузеру/обычных фм которые имеют доступ к файлчузеру и там же имеют нормальный поиск
И в чем твоя проблема?
https://developer.android.com/guide/topics/providers/create-document-provider
А я ебу? Никто твоим говном в здравом уме не пользуется.
Любой язык у которого: интерпретатор/компилятор весит меньше 200МБ, с динамической типизацией, без нагромождённости.
>Любой язык у которого: интерпретатор/компилятор весит меньше 200МБ, с динамической типизацией, без нагромождённости.
Хм, руби что ли?
Я тоже люблю руби. Пишу бек на нем)
> с динамической типизацией
АХАХАХА
Иди нахуй со своим джаваскриптом и прочим говном, мань. Динамическая типизация для умственно отсталых же, которые не могут вкатиться в нормальный ЯП, где есть свои пусть и жесткие, но правила, на которых строится базис для построения нормального кода.
Тру в "тру" то не забыл перевести?
Алсо, на пике - синтаксический мусор, никто этими "+-+-+---+" не пользуется, и не один нормальный человек не станет от строки отнимать строку.
>Тру в "тру" то не забыл перевести?
Зачем? Я такой хуйней не страдаю. А если подобная хуйня приходит от сервера (например) - то это проблемы кривых рук бекендщиков и эта проблема решается не переводом тру в тру.
> и не один нормальный человек не станет от строки отнимать строку
Мань, любой джсник этим охереть как гордится и говорит, что мол остальные так не могут. Ты прав, нормальный так делать не будет. А в динамически типизированных языках так делают.
>и не один нормальный человек не станет от строки отнимать строку
Как будто получив в функцию Sub(a,b) два параметра, джаваскриптер может быть уверен, что они не строки/undefined/NaN/[]/Object/неведомая хуйня
> Я такой хуйней не страдаю.
Вывод на экран некоторого сообщения с целью дебага требует string в аргументах, или ты не знал?
> А в динамически типизированных языках так делают.
Что-то не в одной библиотеке не видел. Может это твои маняфантазии? Быдлокодеры, хуй с ними, они и в Африке Java быдлокодеры.
>Вывод на экран некоторого сообщения с целью дебага требует string в аргументах, или ты не знал?
Неявное приведение типов, слыхал о таком?
Log.d("zalupa", "value = " + booleanValue);
>динамичность типов.
> неявное приведение
> одно и то же
Ты даун совсем что ли?
Тогда для тебя любой язык, в котором 2.5 + 2 в ответе будет 4.5 становится динамически типизированным, так как даже в этом примере неявное приведение типов.
> неявное приведение типов
Почему ребята из северной столицы не запилили неявное приведение для int -> float -> double? Хули я везде должен как аутист проставлять этот ебучий toFloat(), toDouble() везде?
Да, я знаю про потерю разрядов.
Это действительно странно, хотя бы в большую сторону могли бы и сделать.
Чисто любопытно, откуда к тебе приходят в перемешку данные int, float и double?
Потому что оно может приводить тип лишь к более широкому по спектру значений типу. float к double сведется без проблем, так как double более широкий. Наоборот же не прокатит, тут да , придется самому дописывать танцы, но тут ты сам понимаешь, что это логично.
При сложении -- да, за счёт переопределения. А вот скажем:
fun inc(x:Double) = x+1
val y = inc(1f)
Не прокатит, сказали дабл, значит дабл.
int и float в перемешку в onDraw(canvas) же. Размеры канвы, вьюхи в целых, позиционирование и рисовка уже и в целых (rect) и в дробных (rectf, x, y и прочие).
{it -> errorHandler.proceed(it)(it, viewState.showMessage(it))}
В итоге получилось преобразовать лямбду в такой вид: { errorHandler.proceed( viewState::showMessage ) } Выглядит уже лучше и хотелось бы оставить такую конструкцию. Влияет ли использование такой конструкции на производительность или это все фигня?
Серьезно, блядь? А как тогда объяснить, что appcompat - это просто кусок ссаной глючащей хуеты? Серьезно, я уже заебался пердолиться с этим говном, где то важный метод ВНЕЗАПНО становится приватным, то не открываются подэкраны настроек без портянки на сотни строк.
Полный пиздец. В хауе, как можно высираться столь сырым говном, да еще делать его обязательным для пожирания.
хуян, скажешь ахуенное сдк, где бляд для православного-каноничного способа отобразить пункт меню, нужно:
onCreateOptionsMenu
onOptionsMenuItemClicked
onPrepareOptionsMenu
invalidateOptionsMenu
+xml
да, да, можно без последних двух методов, но иди нахуй, отображать нужно не сразу
мимокрок
Это все деприкейтед параша, единственное предназначение которой, узнать, что какой то фрагмент сейчас является текущим во вьюпейджере. setActionBar уже никто не использует. В разы удобней напрямую с Toolbar в лейауте работать.
Да и к конкретно аппкомпату это никак не относится.
> деприкейтед
а вот и нихуя
ну т.е. тебе никто не мешает так думать и нахуй слать это говно
только вот @deprecated там как не было так и нет
> к конкретно аппкомпату это никак не относится
микокрок же, я в целом про ведро, а не аппкомпат
очень удобно (нет)
Потому что котлин стал бы очередной скалой если бы не полноценная поддержка андроида?
Это называется method reference. Погугли.
>>299200
>>299307
Как же люто проиграл с этого дауна, не могущего в простейшие и примитивнейшие вещи, такие как меню или функционал аппкомпата. Этот даун привык, что в универе на делфи он мог программировать мышкой, перетаскивая кнопочки на форму и примо в коде кнопки писал функционал и искренне удивляется, почему в реальных востребованых проектах\языках\сферах не так.
Самое смешное то, что плюнешь ты на андроид, перекатившся в любую другую айти-сферу (десктоп или мобайл-иос, например) и там тебя будет ожидать тупо тоже самое, какие-то свои приколы, своя логика и идеология.
Не мог бы ты посоветовать нормального гайда по стилям/темам? Документация мне что-т не поомгла, там этих тем просто пиздец как доху, а теперь еще не только апкомпат, а гугловские материаловские есть.
На стайлинг кстати доков вообще нет. Прям совсем нет. Нельзя открыть доку по Button и посмотреть, когда там colorControlNormal, а когда colorControlHighlight и прочее используется. А самый кайф мне был, когда я через стили у toolbar'a кнопки менюхи двигал, пробираясь через дебри исходников.
Ну хоть на материал компоненты завезли доку.
>Ну хоть на материал компоненты завезли доку.
Еще бы там были расписаны эти десятки цветов, что где когда.
>Не мог бы ты посоветовать нормального гайда по стилям/темам?
В шапке все расписано. Ищешь яндекс и прыгаешь туда, там 40 минут рассказывается про клаву, про стили и т.д.
Уже есть инфа, скороТМ ее дополнят.
Палитра:
https://github.com/material-components/material-components-android/blob/master/docs/theming/Color.md
Например кнопка:
https://github.com/material-components/material-components-android/blob/master/docs/components/MaterialButton.md
https://stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-times-out
getActiveNetworkInfo() во всех ответах без параметра, а я должен туда что-то высрать,
юзер делает фотку и отправляет на сервер
если нету сети - сохраняем фотку и ждем пока появится сеть
сеть появилась - отсылаем фотку на сервер
как все правильно организовать, где держать фотки не отосланные?
Охохох, тут столько подводных, разниц в апи и тд что ты охуеешь.
Вначале ты должен правильно составить интент и показать его пользователю. Галерея, камера разные интенты, разные пермишены (+ камере нужно дать uri с пермишеном на запись (привет FIleProvider my old friend), иначе она по тихому завалится и не отдаст фотку). Когда ты разгребешь все создания интентов и файл провадйер разгребай пермишен если вдруг где-то в приложение камера используется напрямую, а не через интент то придется этот пермишен запросить, плюс read external storage скорее всего потребуется.
Дальше неплохо бы провалидровать что там реально image/*, а не какой-нибудь говно пдф, ведь можно же пикнуть с гугл драйва или еше откуда, никаких гарантий бро. В случае с камерой надо еще и сохранять в бандл ури, который давал камере в интенте, назад он не придет :)
Что ж, ты создал правильные интенты, разобрался с пермишенами и результатами, теперь тебе надо в случае галереи сохранить картинку в свои файлы, в случае камеры раз ты даешь камере пермишен записать в свои файлы он уже будет там (не забудь кстати забрать пермишен, ага).
Теперь у тебя есть uri файла в твоей супер секретной памяти (нет). Самое время зашедулить WorkManager'у отгрузку данного uri на сервер, по успешной отправке удалить и идти чилить.
У меня это все говно уже есть, сохранять в интернал мемори это вообще не охуевшее решение? Юзеру нахуй не нужна фотка, я её только отсылаю, возможности с драйва загрузить нету, только через мою камеру(кидаю интент на камеру суто).
Я думал в базу писать и когда ловлю бродкаст на смену стейта сети отправлять все с базы лоадером, но база это оч костыль как по мне, нет? LRU подойдет?
Зачем база и lru, просто выбираешь все файлы из папки и аплоадишь их, потом сразу удаляешь. В базе разве что можно хранить относительный путь и статус (загружается/не загружается). Но я думаю WorkManager все таки лучший варик, иначе пиди форграундный сервис с нескучной нотифкацией показывающей количество оставшихся файликов.
>где держать фотки не отосланные?
Я сохраняю фотку в папке кеша, там, допустим юзер 10 сделал - все в кеше. После отправки фоточек, я чистю кеш и все.
бляд ну хуле еще ожидать от быдла на дваче
ты долбаеб или да?
речь не про делфи, а на то что на простое бляд действие нужно 4 сука разных метода
посмотри на тот же флаттер для примера шоле, клоун диванный
> привык, что в универе на делфи он мог программировать мышкой
А ТО БЛЯД В ДИЗАЙНЕ АС ТЫ МЫШКОЙ КОМПОНЕНТЫ НЕ ПЕРЕТЯГИВАЕШЬ УМНИК ХУЕВ
> примо в коде кнопки писал функционал
мимо, чини детектор
> мобайл-иос
тулинг никакой, так что нахуй, хотя почему-то даунов там поменьше чем в ведре будет
> какие-то свои приколы, своя логика и идеология.
давно филфак окончил?
blob можно в базе держать
Год программировал на С++ один проект, он наконец закончился и подумал я о том, что пора перекатываться на, что-то более перспективненькое - мобильная разработка.
Составил план изучения состоящий из чтения двух книг:
1. Cay S. Horstmann - Core Java Volume I--Fundamentals (10th Edition)
2. Dawn Griffiths, David Griffiths - Head First Android Development (2nd)
После чего напишу одно приложение и выложу его на Гугл плей (естественно оно будет супер успешное и тд). Данный план изучения андроид разработки адекватен?
И достаточно ли этого для того, чтобы меня взяли в какую-нибудь компани в Москве за зп в 60-80 к?
Если писал на плюсах, можешь прыгнуть на java for the impatient вместо core java. Сэкономишь чутка времени.
Алсо, можешь прыгнуть на Qt, коль писал на плюсах. А там уже и ведро и яблоко и небо с аллахом.
О, саженька. Иди нахуй, пидрила обоссаная.
>>300475
>После чего напишу одно приложение и выложу его на Гугл плей (естественно оно будет супер успешное и тд). Данный план изучения андроид разработки адекватен?
Сам процесс изучения андройда не адекватен. Книжками и статьями ты не отделаешься. Если напишешь приложение - то потом будешь его переписывать. И так, пока все не изучишь. А что нужно изучить - это в шапке написано.
Windows самое нужное, маки ненужны, макось ненужна.
С процентами, чтобы было удобней анализировать.
Ты даун что ли? Таким как ты в шапке расписали блять.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии, shared preferences, SQLite, Handlers, Executors, Content-Providers), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам), понимания СОЛИД и других паттернов проектирования. И хотя бы несколько готовых приложений.
хуяженька, дебил бампает в тематике, ебаный стыд
Ебаное тупорылое дно.
>на то что на простое бляд действие нужно 4 сука разных метода
Добавление аппкомпата в гредл, гредл синк, юзание классов из аппкомпата в коде. Ну да, для тебя такая последовательность дейсвий видимо черезчур сложная.
>посмотри на тот же флаттер для примера шоле, клоун диванный
Нахуя, делбик? Мне и в нативной андроид разработке нравится вариться. То что во флаттере что-то одно лично для тебя понятнее, чем в АС или джаве, то не значит, что так будет во всем и всегда.
>А ТО БЛЯД В ДИЗАЙНЕ АС ТЫ МЫШКОЙ КОМПОНЕНТЫ НЕ ПЕРЕТЯГИВАЕШЬ УМНИК ХУЕВ
Если релейтив и линеар лаяуты, то, представь себе, да. Мне действительно быстрее прописать руками свойства. Если констреинт, то наоборот. В отличие от тебя, у меня хватает памяти в мозге выучить более одного способа для совершения чего-либо.
>примо в коде кнопки писал функционал
>мимо, чини детектор
Что мимо, дебил? Я был студентом тоже и тоже писал лабы на делфи даун. Двойной клик по мышке и в СГЕНЕРИРОВАННОМ ЗА ТЕБЯ МЕТОДЕ прописывание примитивных действий могли осилить даже дауны, поступившие из сел.
>тулинг никакой, так что нахуй, хотя почему-то даунов там поменьше чем в ведре будет
Ну так пиздуй в иос, там ведь все легко, удобно и элементарно, так ведь? И там не аппкомпата, чего ты тут ноешь, как сучка?
>давно филфак окончил?
С этого проиграл больше всего. Ты даже не понял, что я указывал на свои тонкости и отличия в разработках под мобайл, десктоп и т.д., а вместо этого кинул быдло-прикол про филфак, причем даже кинул его не к месту. Все ясно, пиздуй работать разнорабочим, с таким подходом к обучению и стремлением понимать новую информацию ты не то что в айти не вкатишься, ты никуда из умственных работ не вкатишься, лел.
>Таким как ты в шапке расписали блять.
Ага, а время у нас остановилось и ничего не меняется, поэтому глинянные таблички Шумеров до сих пор актуальны. Ты даун, что ли? Требования к специалисту поятоянно меняются и поэтому нужно периодически обновлять свои знания том, чего хочет работодатель получить от соискателя.
>Ты даун, что ли? Требования к специалисту поятоянно меняются и поэтому нужно периодически обновлять свои знания том, чего хочет работодатель получить от соискателя.
Нет, это ты даун? Кинут тебя на легаси проект, где рх нет, а есть хендлеры, а ты только реактивщину знаешь. Ну мам, это же глинянные таблички ШУМЕРОВ, МАААМ,
Даун, даже писать дальше не хочу.
>Даун, даже писать дальше не хочу.
Ну, что ты. Твоя лишняя хромосома не должна помешать высказать мнение в грубой форме. Наоборот, она тебе пока только помогала это делать.
Ну что ты няша, перестань.
> Ну да, для тебя такая последовательность дейсвий видимо черезчур сложная.
долбаеб или да? Как ты вообще градл приплел то, если тебе говорят про архитектуру сдк, что на сраное простое действие нужно много возни (в курсе что там пару строк, но тут, то там). Ты же бляд ОЙ СЛИШКОМ СЛОЖНО
Для такой хуйни? Да, _избыточно_ сложно
> в нативной андроид разработке нравится вариться
еще и на Java скажи пишешь
ебаться с простой задачкой и ждать компиляцию не, ну если тебе везет, проект маленький, кэш работает и тыды может и 5-15 сек быть, но один хуй для того чтобы првоерить ЗАРАБОТАЛА ЕБАНАЯ КУЧКА ФЛАГОВ ИЛИ НЕТ тоже нравится небось?
> Если релейтив и линеар лаяуты, то, представь себе, да.
бляд долбаеб привел в пример перетягивание компонентов в делфи
ему говорят - ты точно также перетягиваешь, хуле выебуешься?
долбаеб в ответ - НУ ВОТ ДЛЯ РЕЛАТИВА Я РУКАМИ, А ДЛЯ КОНСТРЕЙТА ТАКИ ТЯГАЮ
форман.пнг
>В отличие от тебя, у меня хватает памяти в мозге выучить более одного способа для совершения чего-либо.
Типичный двач, хуле. Откуда тебе знать то бляд? К слову в констрейте тоже быстрее руками (автокомплит то нахуя)
> Что мимо
Делфи и обработчике в кнопке мимо, долбаеб
>Я был студентом тоже и тоже писал лабы на делфи
Если ты писал код в сгенерированном за тебя методе, нууу... Все понятно хуле
> Ну так пиздуй в иос
ты читаешь или в глаза ебешься? тулинг никакой - нахуй надо
> пиздуй в айос
и откуда вы лезете такие бляд
>Ты даже не понял, что я указывал на свои тонкости и отличия в разработках под мобайл, десктоп
Именно бляд поэтому и спросил, философ хуев, пиздец колумб бляд, УКАЗАЛ НА ТОНКОСТИ
> понимать новую информацию
НОВАЯ ИНФОРМАЦИЯ - МОБИЛКИ И ДЕКСТОП И ТЫДЫ ИМЕЮТ СВОИ ОТЛИЧИЯ
> ты не то что в айти не вкатишься
давно вкатился, но откуда тебе знатоку составлять портрет по отрывкам инфы, знать то
> Ну да, для тебя такая последовательность дейсвий видимо черезчур сложная.
долбаеб или да? Как ты вообще градл приплел то, если тебе говорят про архитектуру сдк, что на сраное простое действие нужно много возни (в курсе что там пару строк, но тут, то там). Ты же бляд ОЙ СЛИШКОМ СЛОЖНО
Для такой хуйни? Да, _избыточно_ сложно
> в нативной андроид разработке нравится вариться
еще и на Java скажи пишешь
ебаться с простой задачкой и ждать компиляцию не, ну если тебе везет, проект маленький, кэш работает и тыды может и 5-15 сек быть, но один хуй для того чтобы првоерить ЗАРАБОТАЛА ЕБАНАЯ КУЧКА ФЛАГОВ ИЛИ НЕТ тоже нравится небось?
> Если релейтив и линеар лаяуты, то, представь себе, да.
бляд долбаеб привел в пример перетягивание компонентов в делфи
ему говорят - ты точно также перетягиваешь, хуле выебуешься?
долбаеб в ответ - НУ ВОТ ДЛЯ РЕЛАТИВА Я РУКАМИ, А ДЛЯ КОНСТРЕЙТА ТАКИ ТЯГАЮ
форман.пнг
>В отличие от тебя, у меня хватает памяти в мозге выучить более одного способа для совершения чего-либо.
Типичный двач, хуле. Откуда тебе знать то бляд? К слову в констрейте тоже быстрее руками (автокомплит то нахуя)
> Что мимо
Делфи и обработчике в кнопке мимо, долбаеб
>Я был студентом тоже и тоже писал лабы на делфи
Если ты писал код в сгенерированном за тебя методе, нууу... Все понятно хуле
> Ну так пиздуй в иос
ты читаешь или в глаза ебешься? тулинг никакой - нахуй надо
> пиздуй в айос
и откуда вы лезете такие бляд
>Ты даже не понял, что я указывал на свои тонкости и отличия в разработках под мобайл, десктоп
Именно бляд поэтому и спросил, философ хуев, пиздец колумб бляд, УКАЗАЛ НА ТОНКОСТИ
> понимать новую информацию
НОВАЯ ИНФОРМАЦИЯ - МОБИЛКИ И ДЕКСТОП И ТЫДЫ ИМЕЮТ СВОИ ОТЛИЧИЯ
> ты не то что в айти не вкатишься
давно вкатился, но откуда тебе знатоку составлять портрет по отрывкам инфы, знать то
>давно вкатился
Не верю. Вываливать сюда говно из своего рта нормальный бы человек не стал. Ты университетская мартышка, разве не так? Если нет - то у меня плохие новости, дядя.
>давно вкатился
Да кому ты пиздишь, никуда ты не вкатился, ты либо студент, либо работник собсем другой сферы. Будь ты кодером - ты бы не ныл в тредах на дваче о сложностях аппкомпата или андроид сдк, потому что любой андроид-девелопер тебе скажет, что их там особо и нет.
>что на сраное простое действие нужно много возни (в курсе что там пару строк, но тут, то там)
давай сука конкретно с примером, на какое это простое действие в андроиде у тебя пошло столько много возни, что ты захотел тут поплакаться об этом?
>еще и на Java скажи пишешь
На ней и плюс на котлине. Как и другой уважающий себя андроид девелопер. Если ты начнешь размазывать сопли про флаттеры, реакты и прочую поебень, то опережу тебя и скажу сразу, что эта хуйня не котируется, по крайней мере, сейчас. Ни какой большой проект тебе не дадут вести на этом говне, во всех конторах с тебя будут требовать знание джавы с котлином вместе с андроид сдк и т.д. Любители флатера и реакта довольствуются проектами-визитками разве что.
Остальной твой онанизм тут особо и комментировать нет желания, ты обосрался по полной и последним постом еще и подтвердил какое ты дно.
Вот суки, ничего святого.
И есть runtime permission.
Как в контексте MVP адекватнее проверять, есть ли разрешение на тот или иной пук (а если нету - запрашивать, и только потом делать)? Презентеру же должно быть поебать, умеет view в какие-то там разрешения или не умеет, это чисто ведропроблемы, которых может и не быть на иной платформе.
Корректно ли вообще делать так, чтобы эта логика не выходила за пределы view?
Лучше оставь это все в слое ведра.
Пермишшины только во view слое проверяются и запрашиваются, и нигде иначе.
Даже пассивный доход в пару сотен баксов в месяц уже будет успехом. Конечно сначала будут обосрамсы, так как в бизнесе я 0, но с опытом всё будет.
>Возможно ли это всё в одно рыло потянуть?
Да, я вот же тяну и ни че.
>Писать код, ебаться с дизайнером на фрилансе, тестить руками, рекламировать, фиксить, обновлять?
Я бы уволился с работы и занимался такими делами.
>По-быстрому высырать по приложения раз в месяц -два,
Ненененене. Через полгода как минимум.
>Даже пассивный доход в пару сотен баксов в месяц уже будет успехом.
АхАХАХАХАХАХАХААХ. Ты дурачек? Иди в иос, там тебе будет доход.
Кароче, таких как ты иногда сюда заглядывают, только вот заглатывают хуйцов по самые щеки и ничего не делают. Смирись.
> Заниматься не говном
> мобильная разработка
Ты бы еще в вебе попробовал говном не заниматься.
>По-быстрому высырать по приложения раз в месяц -два
>пассивный доход в пару сотен баксов в месяц
недавно мои апп вслетел могу впринципе вообще не работать пока бабки капают, и на это у меня ушло: 4 года офисного рабства под ведроид после веб галеры, 1 год разработки проекта по вечерам + 1 год разработки фултайм параллельно с фрилансом, ебля с налоговыми\бухгалтерами\банками\проч., немного ебли с фрилансерами (под итогу все делаю сам). В плане технологий деградировал за 2 года так, что сейчас только на джуниора в офис пройду хотя в офис пойду, только если жрать нечего будет
вот и думай
>ебля с налоговыми\бухгалтерами\банками\проч.
Поясни за этот момент. Юрлицо регал? Или как физик доход получаешь?
Блять. Таже хуйня.
>>302226
Околопрограммистская суета забирает время которое раньше уходило на обучение.
Плюс начинаешь мыслить как бизнес: "Главное чтобы как можно скорее заработало и начало капать."
А вот это вот "Главное все красиво и правильно спроектировать, с использованием новейших технологий, чтобы потом в будущем легко доделывать и вообще нестыдно в git выложить" уходит на третий план.
Спасибо, работает. К центру координат надо двигать всегда любой объект, и не важно, вокруг центра координат он будет вращаться или вокруг любой другой точки?
Да, после каждого объекта сбрасываешь матрицу
Иди нахуй
Наткнулся на туториал от гугла https://github.com/mikescamell/shared-element-transitions - но здесь эта бага присутствует как на видосике с мельканием. Как фиксить?
Поставил в recyclerView paddingStart 1dp, все ок. Но иногда, когда потыкаешь раз 5-6 и поскролишь ресуклер, то какой-то рандомное фото все равно мелькнет, а потом уже откроется.
но нахуя?
1280x720, 0:08
>Ionic
Чубаки, объясните насколько можно приблизиться к приложухе на жабе используя какой-нибудь ионик и реакт нейтив:???7777
>Чубаки, объясните насколько можно приблизиться к приложухе на жабе используя какой-нибудь ионик и реакт нейтив:???7777
И ты тоже иди нахуй
Хуйня, объясни плиз как мне писать на жабаскрипте приложухи на андроид и айос? Я мимокроком
Ты даун? Дальше туду листа не продвинешься. Читай шапку куда стоит обращаться с такими вопросами.
cs.clone(contentLayout)
cs.connect(view1.id, ConstraintSet.TOP, view2.id, ConstraintSet.BOTTOM)
cs.applyTo(contentLayout)
почему не работает?
Забыл view2 в лаяут добавить, в айосе просто в таком случае выкидывает
Хуётлин
От onNext(), onComplete() и других сайд эффектов лучше отказаться, так как это некорректное использование реактивщины. Ты должен передавать события в onSubscribe(). Сайд эффекты применимы для обновления кешей, отлавливания условных success/error/loading стейтов(можешь посмотреть статью о MVI от Badoo, которая недавно вышла или Resource в firebase, ещё видел на сайте android'а аналогичную реализацию Resource) и других специфичных вещей.
Для того, чтобы отображать уведомления можно использовать SingleLiveEvent в LiveData, OneExecutionStateStrategy в Moxy или другие аналогичные вещи. их так же прокидывать в onSubscribe.
В твоем случае будет три цепочки с onSubscribe, в которых ты отслеживаешь финальные стейты/события вью(2 - OneExecutionStateStrategy, 1 - AddToEndSingleStrategy, например) и несколько цепочек, которые делают проверки, реквесты в сеть/бд, вычисления и т.д.
Если у тебя сложный финальный стейт с контентом, то можешь обмазаться MVI с Moxy(хотя она и для MVP, но отлично реализуется и для MVI) или c Android Architecture Components.
но зачем в ведре Constraint, это же не мерзкое яблоко
Что за приложение, какая предметная область?
Сейчас узнал, что большинство манипуляций с активити или с фрагментами легче всего сделать через frame layout. Например можно обесцветить активити, повесить туда frame layout и делать все что захочется.
> может расскажите фишечки нормальные?
Если у тебя single activity, то удобно использовать android.R.id.content как контейнер для фрагментов.
>Если у тебя single activity, то удобно использовать android.R.id.content как контейнер для фрагментов.
Это я тоже знаю.
Мне бы фич по взаимодействию с UI.
У меня такой алгоритм при запуске: начальное активити сплешАктивити, которое чекает преференсы - я там храню залогинен юзер или нет, ну и дальше открывается мэйнАктивити/логинАктивити
> начальное активити сплешАктивити
Скорее всего с этим обосрался. Гугли, как его сделать правильно, чтобы время на построение ненужного view не тратилось.
Опять работать? пидорасы как они заебали, нахуй они мне в каждой хуйне пытаются жизнь усложнить. В ios тебе как человеку дается LaunchScreen и AppDelegate, где можно выбрать рут экран
В android тебе как человеку дается Single Acvtivity и дальше пишешь любую хуйню, где можно выбрать рут фрагмент.
А вообще, напомню, что у "правильных" лаунчерев есть довольно лютые ограничения связанные с возможностями drawabl'ов в windowBackground.
>тебе как человеку дается Single Acvtivity
Ахахахахахахахахахахаха
Как же я проигрываю с таких ответов. Сделай-ка мне анимацию перехода картинки из recycler view to view pager с фрагментами. Че? Соснул блять? Если умный, то да, ты можешь ебнуть вот это https://github.com/google/android-transition-examples и показать, какой ты крутой. Но здесь я опять тебя обосру, и скажу, что даже ОФ пример от гугла ЛАГАЕТ.
Соси сука, андройд для пидарасов. Я не рекомендую никому вкатываться. Но сам не жалею, что вкатился.
>Моя задача - считывание с камеры и передача по bluetooth. Аноны, есть ли у вас хорошие уроки на эту тему?
А что ты хочешь с камеры считывать? Поток? Передача потока по блутузу, хз, сможет ли он, попробуй.
> Первый раз кодить собираюсь.
У тебя не получится.
> хз, сможет ли он
Там самое быстро 2 мбита можно напердолить в пятой версии, а по сути меньше мегабита. 480п хуйню может и получится отправить.
Но он не осилит, это верно.
Я нашел такую вещь, как app inventor. Выглядит непотребно, но подойдет. Моя задача - считать код. Таки, кто-нибудь знает хорошо app inventor?
>Моя задача - считать код
А, код через камеру. Ну ок. app inventor хуй знает что это такое. Он же не нужен.
Подскажите плез, по поводу работы удалённо с андроидом, реально ли устроиться джуном не залезая в офис? Я сейчас вкатываюсь в андроид по-фану, леплю лапшичку, разукрашиваю вьюшки, всё нравится.
Но вот мой кореш - он же сенсей, говорит что лучше всего в офисе поработать годик - другой, а я последние 3 года на удалёнке работал(в около торговле), уже и отвык от офисной педарасни и привыкать назад совсем не хочется.
Может быть есть истории успеха, полностью без личных контактов?
Какая ссылка? Ничего конкретно не находится.
Сделал как правильно энивей дэлей остался, и телега быстрей грузится - там через сингл активити? ну и парашники этим андроидом заведуют
>вопросом
Чо ты злишься? Ну да я нуб - тебе не интересно со мной общаться, листай дальше.
>Перечитай треды прошлые
Я просёрчил в этом треде - никто не пояснял за удалённую работку, в прошлом треде было одно упоминание вскользь, когда какой-то анон задал платиновый вопрос про фриланс, кто-то ответил что - не для андроида, но можно работать на удалёнке. Всё.
Андроид соснет только у Фуксии, но это года через 3 минимум.
Ого. Настолько серьезно все? Получается, что джава и котлин не нужны уже?
Так а зная Дарт можно будет писать сразу и для иоса и для андроида приложухи и по сути были фулстек девелопером на изи?
какой нахуй свитф в андроиде, ты дебил?
>так андроид хотел переходить и на свифт
Верить людям, которые пишут новости, конечно. Вон я на руби пишу андройд приложения.
>Я хочу вкатиться в андроид,
Вкатывайся
>этот тип говорит что жаба уже нинужна?
Да, учишь пхп и пишешь на андройде. Сейчас это популярно в узких кругах.
>а теперь что, не перешел же
Перешел
>Так в какой язык вкатывать то?
В перл. Сейчас 6 выйдет и даст пососать.
>во флаттершай что ли?
Нет, лучше в cordova SDK.
>Не, давай без шуток,
Ну давай
>Яву лучше же
Ну, жаба лучше пхп, это факт. Но не лучше руби, мне вон нравится руби для развертывания стартапчиков.
>или что?
Та учи питон. Щас говорят все на питоне пишут.
А теперь дай ссылку на это статью, няш.
>Да, учишь пхп и пишешь на андройде. Сейчас это популярно в узких кругах.
В начале я думал уже тебя обсирать, но потом понял всю тонкость этого поста, харош. Реально найс, всякие мимокрокодилы даже поведутся)
Зависит от уровня апи. На старых где нет номрального translationZ если хочешь что бы что-то было снизу нужно что бы оно в списке сабвьюх было раньше, то есть тебе надо вызывать не addView(subview), а addView(-1, subview) - это поставит позади всех. Если речь идет о верстке в xml, то элемент просто должен быть раньше объявлен. А если есть translationZ то можешь сним играться как надо.
>Вообще делать, чтобы один элемент был над другим?
Делать это нормально.
>Короче нихуя не знаю почти.
Ничего страшного.
>от есть у меня две кнопки в активити с констреинт лейаутом. Одна из прикрепляет фрейм. Так вот фрейм оказывается под кнопками
Так кидай разметку, скрин экрана, я не могу понять на словах.
>>306877
Вот короче. В этот фреймплейс я вставляю фрагмент. Хочу сделать типа диалогового окна. По сути его и делаю(знаю что есть специальный класс, но пока не надо). Так вот когда нажимаю на Новая игра появляется фрагмент, но он под кнопками. Даже цвет кнопки поменял, чтоб видно было. На заднем фоне фрагмента есть imageview белого цвета(если очень присмотреться, то видно разницу). У фреймплейс моего я попробовал поставить транслейшенZ на 1 и у кнопок на 0 и не помогло
Тебе надо что бы он стал перед кнопками? Он всегда есть или ты рукми его добавляешь?
Виесто первой лучше скинь как оно в тексте.
Оберни frame container и две кнопки в один frame layout.
Если не знаешь что и как - гуглить - view over another view. Вопрос закрыт.
Я гуглил. Иначе бы не спрашивал. Я позиционирую в констрейнт лейауте. Если я кнопки в фрейм лейаут как мне потом их размещать????
>Если я кнопки в фрейм лейаут как мне потом их размещать???
А внутри RelativeLayout сложно создать? Ты сидишь уже с проблемой 2 дня, земля пухом. Хотя я как-то раз неделю потратил на говно одно.
Что-то я не могу понять, гугл выпустил андройд 9, а я до сих пор ее блять не вижу. Она вообще где? Я че, просто так к 27 прибавил единичку в градле и все?
импульсно-модулированную (PCM) форму надо получить,без лишней инфы
MediaExtractor + MediaCodec
> Я че, просто так к 27 прибавил единичку в градле и все?
На андроидх мигрировал? Нет. Вот и занимайся теперь.
>На андроидх мигрировал? Нет. Вот и занимайся теперь.
Нажал на кнопку миграйт - поставил 28. Либы 28.
Но пакеты все равно без androidx.
Что за пиздец)
нет ты тупо
Да мне похуй. Не можешь ответить на вопрос иди нахуй, умник.
>В ней не написано что нужно знать яву
Как это не написано?
>Большинство приложений написано на Java, необходимо понимать что ты пишешь, в уме достаточно знать базовый Core т.к. 90% времени придется тыкаться в Android SDK. Полезные обучалки от анона...
>>308505
>Ладно эта ебала тормозит и лагает на макпуке
Никогда, за 5 месяцев, никогда не лагала на маке. На работе сидел за компом на котором майнили биткоины - вон он лагал время от времени.
Из самого простого: нажимаю кнопку/комментирование - дэлей 1сек, чтобы такая непростое действие свершилось. Или это говно надо было на ссд ставить?
Спс, тогда у меня еще такой вопрос, я по нему парюсь, я сейчас на линукс, тут стоит опен ява, стоит ли переходить на оракл яву? я слышал оракл откроет код, и вроде выпилит блобы от сун, дело в том, что от оракл ява вроде как работает лучше, а ты не знаешь, либы там у них разные?
https://developer.android.com/studio/intro/studio-config#jdk
Советую почитать пару строчек здесь, няша.
спс
> Никогда, за 5 месяцев, никогда не лагала на маке
Ну ничего, через годик может будешь работать над большим проектом, 16 гб оперативы перестанет хватать.
В шапке все написано.
Мне не хватает каких-то разрешений у приложения? Приложение должно где-то у себя пометить себя как доступное к запуску через intent? Приложение должно единоразово сдёрнуть какой-то системный метод, где выставить обработчик коллбэка от Системы при доступе через intent?
В чём проблема? Заранее спасибо. С меня как обычно
Кажется, я нашёл
https://developer.android.com/training/basics/intents/filters?hl=ru
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
import android.support.constraint.ConstraintLayout
import android.support.constraint.ConstraintSet
Несмотря на это проект собирается и запускается, версии ждк и грядла одни и те же. Чистил, ребутал, рот ебал
Android Studio? Тебе нужно сделать File->Invalidate Cache. Тогда Студия заново просканирует все aar/jar и проиндексирует их содержимое
Теперь заебись
Чтобы такого больше не было надо обмазаться гитом для работы с разных пк и приказать ему игнорить либы?
У меня нет либ, но такое все равно случалось, причем вечером например все было ок, а через 10 часов уже говно.
У меня тупой вопрос. Не про разработку, а про Андроид Студио. А может про интеллижидею, на его базе, вроде АС.
Каждый пук, сопровождаемый новыми окошками в среде, поднимет АС из бекграунда наверх.
Например - запустил, пока он инициализируется, переключился двач почитать, так эта сука десять раз всплывет наверх.
ВОПРОС: где это отключить, у меня идеи кончились.
https://www.udemy.com/topic/java/
Например эти:
>Java Programming Masterclass for Software Developers
>The Complete Android & Java Developer Course - Build 21 Apps
>Android O & Java - The Complete Android Development Bootcamp
Нет.
Сейчас заканчиваю Java Programming Basics
(https://www.udacity.com/course/java-programming-basics--ud282)
потом хочу Object Oriented Programming in Java (https://www.udacity.com/course/object-oriented-programming-in-java--ud283)
после уже Android Basics: User Interface
(https://www.udacity.com/course/android-basics-user-interface--ud834)
и далее по списку:
Android Basics: User Input
Android Basics: Multiple App Screens
Android Basics: Networking
Android Basics: Data Storage
Хочу попробовать купить (всего за 10 даларов или купить на торренте, если найду) The Complete Android & Java Developer Course - Build 21 Apps, т.к там хотя бы практика в создании 21 шт каких-то аппов. И Java Programming Masterclass for Software Developers.
Интересует мнение анонов, в общем.
Купил на торренте, в общем:
https://rutracker.org/forum/viewtopic.php?t=5549431
Java Programming Masterclass for Software Developers
https://www.udemy.com/java-the-complete-java-developer-course/
https://rutracker.org/forum/viewtopic.php?t=5549680
The Complete Android Oreo Developer Course - Build 23 Apps!
https://www.udemy.com/the-complete-android-oreo-developer-course/
Вроде не индусы ёбаные с хуевым произношением.
Буду смотреть по порядку. Потом опять к вам приду за советами. С наступающим.
Ты совершил ошибку.
Вот здесь все есть. https://coursehunters.net/mobile-development
В шапке тоже ВСЕ ЕСТЬ. Офк если хочешь побыть на альтруистичах, можешь выложить уроки сюда. Бтв на сайте есть oreo и т.д. вроде.
Действительно все есть. Я думал тебе написать в 8 часов, но чет подумал до работы доеду и скину, а ты уже купил. Лучше бы мне перечислил 20 долларов. И че ты шапку не смотришь пидр? Для кого я ебать ее составлял? По ней сам вкатывался.
Анон, оцени моё резюме.
Опыт работы у меня 10 месяцев. Из них 7 я по знакомству, считай на фрилансе, делал в одиночку довольно большой проект который не вытянул и бросил, и 3 месяца допиливал приложение для работы с BLE устройствами в небольшом стартапе, в который меня взяли тоже по знакомству. Знаю Dagger2, Retrofit2, ButterKnife, Picasso, EventBus могу написать несложные юнит-тесты с Mockito и JUnit4. Пишу на джаве, Kotlin не знаю, как и RxJava.
Я переживаю из-за того, что за почти месяц поиска работы у меня всего 4 приглашения на собеседования. На мидла брать пока не хотят, а для джунов на hh вакансий почти нихуя. В чем проблема и что делать?
Вот эти 10 месяцев и есть весь мой опыт. Учебный опыт никому не интересен, но жабу я знаю уже лет пять, а под андроид в целом пишу уже два года.
> но жабу я знаю уже лет пять, а под андроид в целом пишу уже два года.
Попробуй на мидла? Ебать, 5 лет жабы, из них 2 года андройда. Почему ты хочешь на джуна, а не на мидла? Вытянешь.
Я откликался на мидла - ни одного приглашения (уже больше 50 откликов). Да и опыт работы в команде, а не в соло, только последние три месяца
Да и последний проект, тот единственный который был на настоящей работе, я не успел самую малость доделать - получилось так, что я неудачно организовал свою работу и закончил приложуху только на 95%, оставшиеся 5% багов я не успел доделать и меня попросили на выход.
Хм, ну значит здесь действительно жун. Ну я бы делал свое приложение + искал бы работу.
С меня нихуя.
У меня траблы с сокетами связанные с тем, что айпишник внутренний отличается от внешнего. Поэтому не могу приконнектиться к устройству.
Алсо, мб нужно какое то предварительное шаманство произвести по типу открытия портов?
В нашей фирме уже несколько месяцев ищем андроидщика, так никто и не пришел. Хотя требования минимальные, берет даже без опыта.
Если тебе через интернет, то нужен сигнальный сервер, чтобы обойти нат. Короче, все не так уж и просто.
Ааа блять как же больно от этого ебаного webrtc сука.
Cпасибо, анон. Ограничусь тогда NSD или блютузом.
Зайди на ххсру возьми любую вакансию тыщ за 40-60 там все будет написано. Но имей в виду, что эти знания скорее всего тебе понадобятся на собеседовании. Нужно уметь решать задачи в принципе. Раз у тебя не получается решить такую элементарную задачу по поиску требований для разраба, то тебе будет трудно работать на такой должности как программист.
В одном приложении видел, что когда юзер наводил камеру на свою руку, его ногти красились в выбранный цвет. Меня это вдохновило и я хочу такое же делать.
OpenCV наверни.
Я мл кит для OCR юзал, оч пиздатая штука, пробовал до этого тессеракт трейнить, но он нихуя вообще не такой ахуенный как гугловский, хотя гугл вроде его и юзает под капотом
>>309372
Не мучайте жопу, аноны
начните отсюда
https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/
На какую зарплату?
Хуйня какая-то. Да, это круто, когда текст все дела. Но когда вкатываешься тебе нужно смотреть глазами как делают другие, а потом еще поиграться самому.
Тут вот в чём дело - понадобилось следить за новостями в некоторых ресурсах. Задача - чтобы раз в 1-5 минут обновлялись все источники RSS (и просто некоторые сайты, если в них нет RSS) и если есть что-то новое, то мне на телефон приходило уведомление.
Вот беда только в том, что ни одно приложение из существующих не удовлетворяет моих запросов. Feedly не имеет уведомлений (в почти 2019 году! Бляяяя!), Inoreader некорректно парсит RSS с некоторых источников, IFTTT - вообще параша, которая под красивой оболочкой прячет 0 фукционала.
Короче, решил я свой велосипед написать. Который будет мне присылать уведомления и тогда мне не придётся каждые 5 минут чекать, не появилось ли чего нового.
Даже функция читалки мне, в общем-то, и не нужна. Достаточно лишь приходящих уведомлений, а дальше через PendingIntent пусть в браузере открывает нужную страницу.
Собственно, как реализовывается обновление RSS данных? Через обычный HTTP-запрос? Или там всё хитрее?
Правилен ли такой подход?
- Через HttpURLConnection загрузить RSS;
- Распарсить его;
- Если есть что-то новое, через NotificationCompat создать уведомление, в котором через PendingIntent будет переход на сайт.
Ну и через IntentService всё в фоне делать, чтобы при сворачивании/закрытии приложения оно продолжало раз в минуту обновлять все источники.
Всё ведь верно?
Не совсем, используй WorkManager и шедуль PeriodicWorkRequest а там уже грузи как хочешь и парсь как хочешь.
Ясно-понятно.
Если текст, анон не осиливает. Ему надо, чтобы репчиком с ютуба пацанчики рассказали.
Ты мудак, что ли?
Текст объясняет конепции, в конце ссылка на codelab, где тебя за руку водят, как что сделать.
Ну, хер с тобой.
>Поцаны, хочу стать программистом на яве и андроиде, только я читать ни хуя не умею, очень сложно понимать. Где найти такую работу, чтобы ТЗ в виде видеоклипов давали, а не на 125-ти страницах 12-м шрифтом?
Я вкатывался как мог. Даже сейчас мне никто не ответит на мои дебильные вопросы, которые в гугле нет. Так что иди нахуй.
Похуй. Быть в курсе дел важнее.
Альтернатива в виде поднятия домашнего сервера, чтобы он делал все запросы, а телефон бы обращался к нему через Long Polling - слишком дорого. Что по комплектующим, что по электричеству.
Не дешевле бомжевпску за сотку или вообще какие-нибудь aws lambda на бесплатном лимите?
Тогда мне просто ебнуть IntentService, поместить туды эрыкс с таймером на минуту и вызывать?
Ахахаха
Конечно, если не читать доки и курсы от гугла по прогаммированию говна от гугла, то даже гугл не поможет найти ответы.
Найди себе другое занятие. Это - явно не для тебя.
>Найди себе другое занятие. Это - явно не для тебя.
Ты дурачек? Я уже как 6 месяцев работаю и чувствую себя норм.
Точно, не знаю как там амазон, можно хероку бомжовский попробовать, но эта залупа будет в слип уходить.
И кто сказал, что дарт будет выступать в качестве фуси? Где источники официальные?
Бтв, уже давно на редите это выкладывали. Если ты склонил и копаешься, лучше бы рассказал как там живется внутри.
Ну я на реддите не сижу, сегодня вот в новостях увидел. Flutter никогда не скрывал что он уже готов к фуксии, уже сейчас можно делать приложения для фуксии не только с помошью ее родного сдк, но и с помошью флаттера.
https://9to5google.com/2018/03/02/fuchsia-friday-first-fuchsia-app/
https://9to5google.com/2018/12/14/fuchsia-friday-sdk-download/
>, уже сейчас можно делать приложения для фуксии не только с помошью ее родного сдк,
Хм, правильно ли я сейчас понимаю, что я могу заинсталить сдк в андройд студио и написать приложение на флаттер? Хотя, нет, заголовки бы пестрили об этом. Жду туториалов от работяг на медиуме тогда. Посмотрим как развиваться будет.
Больше кажется, что туда въебут котлин для нативщины. А флаттер так и останется что-то вроде обоссаныша.
>Господа, я знаю, что я не совсем по теме,
А зачем лезешь тогда? Какой нахуй ворд стат? Попытаюсь перевести. Мировая статистика как у яндекса для гугл плей? У яндекса чего? Приложения? Тамошняя? Российская что ли? Отличается от гугл adWords? Гуглим - находим
Ads (ранее известный как AdWords) — сервис контекстной, в основном, поисковой рекламы от компании Google, предоставляющий удобный интерфейс множество инструментов для создания эффективных рекламных сообщений.
Посмотрел видосик, почитал Делаю вывод это что-то вроде встраиваемой рекламы в гугл поисковик? Т.е. хочешь ебнуть рекламу в гугл плей? Что блять?
Иди нахуй.
Используй DialogFragment
Аналог вордстата в плане показа популярности (в идеале с конкретными числами) поисковых запросов в гугл плее
Это надо платить ежемесячно. Я не люблю подобное.
В каком смысле? Денег? Ну смотри, в джаве нету фронта + скорее всего это почти всегда банковский сектор, а он не оч интересный. Но если тебе нравится оптимизация, базы, апишки писать и вот это все то тогда джава.
(цена вопроса +- 300 бачей в среднем на синиор + позициях)
Да. Или можно добавить вьюху с большим translationZ + elevation в корневой лэйаут.
>Как отображать вьюшку поверх всех других? через диалог?
Есть по крайне мере два способа. Можешь найти еще. Если тебе нужно будет делать анимацию, например как в телегеХ или как в обычной телеге, то это достигается через активити + frame layout + видимая часть - Это все будет как простой диалог фрагмент, только активити будет прозрачной. За счет этого можно достичь анимации перехода картинки, например.
Я был бы любезен, если бы шарящий один из анонов написал и альтернативные варианты, так бы процесс постижения таких сложных вещей в упрощенной форме был бы легок, а не как копаться в сорцах ебанутой телеге, например.
юзай view.getcontext
В iOS и тем нормальных нет. Через Context передается очень много хуйни, ресурсы, конфигурация все взаимодействие с фрейморком ведра через него. Вообще он конечно говно и по хорошему его бы распилить на несколько вещей по-меньше.
>В iOS и тем нормальных нет
Ну так сравнил хуй с пальцем) В иосе нормального импорта библиотек и сборки проекта даже нет, лол. Сама по себе андроид разработка опережает иос лет эдак на 5 не шучу, я когда пробовал пилить чисто для себя приложухи для яблок, то ощутил, будто я снова в 2к11м в эклипсе под андроид пишу.
двачую, + уёбишный app store connect сильно отсасывает у play console
Это да, тулинг просто дно.
> Создай 25 приложений, в том числе клоны Telegram, Uber, SnapChat, игры Flappy Bird и Super Mario!
> заканчивается на ListView
>Нахуя нужен "context"
Ну вообще тут аноны все расписали уже все. От себя добавлю что это god - object, которого в принципе быть не должно.
Нужно иметь некую службу. которая будет отслеживание к конкретному адресу.
Причем, желательно отлавливать url, к которым обращается любое приложение.
Вижу вроде в логах нечто подобное, но хз, как сделать самому.
Тоже подумал об этом, но обосрется при https и пининге. Максимум имя хоста из SNI.
Бтв как то просили поднимать впн автоматически, когда юзер входит в приложение, но кроме огромных либ с С кодом я не осилил.
Кто-нибудь знает, это вообще возможно?
А тебе точно нужен впн? Может простой прокси достаточно?
Полностью автоматически не получится, юзеру все равно выскочит алерт, мол такое то приложение хочет включить впн, включить? Но это если использовать системное апи. Никто не мешает затащить полностью реализацию любого впн протокола в виде огромной либы на чистых сокетах на си.
>Никто не мешает затащить полностью реализацию любого впн протокола в виде огромной либы на чистых сокетах на си
Мне опыт мешает, я не углублялся на столько глубоко.
>Может простой прокси достаточно?
Примеров с прокси или с впн на раз два. Некоторое взаимодействие с хттп запросами приходится на внутреннюю частную сеть.
Для смены активного фрагмента юзаю fragmentTransaction = supportFragmentManager.beginTransaction(). У него есть метод replace, при котором старый фрагмент стирается и при повторном тапе опять будет делей на верстку. Еще есть метод add, который просто отрисовывает выбранный поверх старого. Мне самому допиливать функционал, чтобы старый фрагмент не стирался, а новый не рисовался поверх или я че-то не понял?
Реплейс это правильно. Лучше бы оптимизировал лэйаут, но если нет возможности, то попробуй с ViewPagerом. Тогда просто будешь переключать страницы.
В constrationlayout попробуй вьюшку, которую ты хочешь видеть на переднем плане, прикрепить к той, что будет на заднем плане. У меня так работает с текстом на изображении. а ещё можно будет сделать красивые анимации появления/исчезания а у тебя на пике типичный диалог
> с прокси
У okhttp из коробки.
А вот с внп все хуево.
Лучше чтобы юзеры сами добавили впн конфиг и подключались вручную, если им это так нужно. А ты дергал бы сервер как обычно. Есть свзяи нет, можно алертик ебнуть типа: дядя, ты впн включил хоть?
Интересно, почитаю, спасибо.
Т.к. это внутри компании приложение, они да, настраивают. Только не понимаю, но по идее должно работать, если смотреть на модель OSI то разница лишь в прикладном и сетевом. Тогда все запросы с прокси предположительно можно провернуть. Я попытаюсь завтра.
Зато когда этих дроваблов под сотню очень охуенно.
Слышал в марте гугл запилил кучу своих либ, но на сколько хороши они на практике инфы не нашел...
В частности интересует актуальность Moxy, Cicerone и всего что около самого скелета приложения используется.
А так же использовал либу BRVAH для изи создания RecyclerAdapter аналоги посильнее не появились(или были но не знал)?
Ну и вообще что сейчас мастхев юзать начиная с андроида версии 6+. Без Котлина еще можно жить?
Можно просто тегами либы\технологии через запятую там разберусь что куда
Это копия, сохраненная 20 января 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.