Вы видите копию треда, сохраненную 1 апреля 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
> Хочу вкатиться в разработку под Android! С чего начать?
С видеокурсов от Udacity. Они бесплатны и затрагивают основы разработки даже если не умеешь писать на Java.
https://www.udacity.com/course/android-development-for-beginners--ud837
Для тех, кто не хочет учиться по юдасити существует скучный кат от гугла: http://developer.android.com/training/index.html
Если имел опыт в програмаче, можешь посмотреть видосики отсюда https://web.stanford.edu/class/cs193a/videos.shtml
Очень доходчиво и интересно
Так же есть книга, которая затрагивает основы разработки и имеет 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 и прочее, построить очередной Weather or ToDo must have list.
>Не могу разобраться в потоках. Хендлеры, хуендлеры хуйтаски. Как быть?
http://codetheory.in/android-handlers-runnables-loopers-messagequeue-handlerthread/ - Хорошая статья, которая экономит время. После нее можно сразу переходить и тыкаться в хендлерах.
https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a - еще одна от миндоркса.
https://blog.nikitaog.me/2014/10/11/android-looper-handler-handlerthread-i/ - еще одна интересная.
>Хочу изучать популярные либы и не быть говноедом!
Если ты сразу после курсов переползаешь сюда - будь готов, что ты не будешь знать как это делается под капотом, и в конце концов соснешь когда-нибудь.
Retrofit - стандарт для взаимодействия с сетью. Она идет в комплекте с okhttp3, начинаешь с последней, а потом переползаешь на сам ретрофит. Так же для справки можешь гуглить volley.
RxJava - одно из решений для выполнения кода в бекраунде. Ниже ссылочки, смотри и поглощай.
https://www.youtube.com/watch?v=YPf6AYDaYf8- rxJava идея с нуля
https://www.youtube.com/watch?v=3jdvLrYZfB4&t=
https://www.youtube.com/watch?v=0IKHxjkgop4
https://coursehunters.net/course/master-klass-po-rxjava-s-mvvm-dlya-razrabotki-pod-android
https://www.youtube.com/watch?v=t34AQlblSeE - retrofit
Неплохо было бы и изучить MVP. Вообще его следует изучать сразу. Видишь 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
> Я заебался. Почему мои приложения постоянно падают в проде и как эту хуйню фиксить?
Для этого придумали тесты. Для общего понимания читаешь короткую статью
https://medium.com/android-testing-daily/the-3-tiers-of-the-android-test-pyramid-c1211b359acd
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17.05.2017 поддерживается официально.
https://www.youtube.com/watch?v=-H98SWHayL4 - свежие лекции на русском, объяснение корутин прост бжствно
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 и ее версии (уже androidx), shared preferences, SQLite, Handlers, Executors, Content-Providers), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам) + гугловские поделки jetpack, понимания СОЛИД и других паттернов проектирования. Базовое понимание что вообще такое Gradle. И хотя бы несколько готовых приложений.
Полезные ссылки:
https://coursehunters.net/mobile-development - очень много уроков и не только по ведройду. Почекай и посмотри, вдруг зайдет.
https://www.youtube.com/channel/UCSwuCetC3YlO1Y7bqVW5GHg - канадский челик, поясняет за архитектуру и отвечает на разные вопросы на стримах.
https://github.com/toddmotto/public-apis - бесплатные API для создания приложений.
https://github.com/AlexeyZatsepin/Android-ORM-benchmark - бенчмарки на вопросы о том, какую БД выбирать.
https://androiddev.apptractor.ru/category/podcast/page/0/ - подкасты ведройд разрабов которые шарят про все и вся
>>38072
Говно, а не шапка. Куча разрозненных ссылок на всякую хуйню. Никто эту простыню не читает, поэтому и переспрашивают по десять раз платину.
> Никто эту простыню не читает
Ну вот анон вчера нашел для себя полезное.
>Куча разрозненных ссылок на всякую хуйню
Лучшее что есть в тырнете.
Покормил дауна.
Хуячешь свой CustomPainter и рисуешь.
> как
Там же свой рендерер. Хуюнити же может сделать drawCircle, хули флаттер под сомнением?
сап андрогины. для изучения андроидов думаю какое бы приложение запилить. в программировании не первый день, но как то всё под десктоп да под веб разрабатываю. в голове вертится идея сделать приложение, которое могло бы на заданной частоте передавать данные тупа байты и прослушивать сигнал пока без демодуляции. скажите, не обосрусь ли я от такой задачи? в андроид сдк есть для этого удобные инструменты, или для таких дел придется говна хлебнуть на низком/системном уровнях? и как такое вообще гуглить? на запрос android develop send and listen data on a frequency ничего релевантного нет.
>а как это реализовано?
У них свой рендер фреймворк. скиа. Бтв там уже подкаст рускоязычный пилотный вышел. Но еще рано думать про него, пока только люди грабли собирают.
>>38312
>скажите, не обосрусь ли я от такой задачи?
> могло бы на заданной частоте передавать данные тупа байты
Такое никто не делает.
частоте звука чтоли? яндекс делал такое вроде
Например на лаяуте imageView в пол экрана, если я добавляю к лаяуту ТачЛисенер, то он уже не срабатывает, когда клик идет по imageView
Только вот открытых вакансий на веб раз в 10 больше, несмотря на то, что "все бывшие кассиры и грузчики туда прут".
>если я добавляю к лаяуту ТачЛисенер
А ты false кидай в return метода onTouch, если хочешь, чтобы событие дальше по иерархии пошло. Хотя странно, обычно сначала вызывается onTouch дочерних вьюх, а уж потом - родительских. То есть, onTouch картинки должен вызываться раньше, чем onTouch вьюгруппы. Если ты dispatchTouchEvent не трогал.
У меня onTouch родительского больше не срабатывает, после того как добавил на это месте дочернию вьюху, даже если у нее нет touchListener
>dispatchTouchEvent
не трогал
Смотреть на бороду Пророка до просветления.
>Я сначала пытался вкатится в веб, но что-то испугался такого зоопарка технологий
Ты ебанутый? На андроиде ситуация с этим ничуть не лучше. Java, треды, сокеты, Kotlin, корутины, RxJava(операторы и тд), MVP, DI, Dagger, Koin, GreenDao, Realm, Room, OkHttp, Retrofit, Glide, MVVM c архитектурными компонентами. Android SDK это разумеется. Это все нужно знать чтобы вкатиться. Все было на моих собесах.
Алсо, про грузчиков и кассиров тоже проиграл немножко. Как будто конкуренция с индусами на андроиде чем-то лучше.
В реальности все сводится к использованию Moxy + Dagger/Toothpick + RxJava + Retrofit.
Мелкие конторы используют точно.
Типо такого:
>1.Основной модуль опросник – вычислениях из БД FireBase. База данных уже набрана, выдает результаты на основе введенных ответов. Добавляется новый объект – адрес (вручную, GPS, пальцем по карте) опрос по БД, выдача информации.
>2. Модуль взаимодействия пользователей разного уровня доступа. – Нижний уровень пользователя выполняет действия по регистрвции объектов используя камеру, GPS, время. Верхние уровни получают уведомления.
Двачую адеквата. По крайней мере в рашке. Бтв кто знает что за бугуртом юзается?
Я слышал что индусы поголовно перешли и сели на хуй гугла с его решениями.
Ну т.е вот образец правильной архитектуры проекта в 2018/19 года, вместо FragmentManager теперь FragmentModule?
https://proandroiddev.com/the-missing-google-sample-of-android-architecture-components-guide-c7d6e7306b8f
Тяжело ли будет вкатиться в андройд-разбрабы сразу миддлом?
java core может пригодится, особенно при собесе в какойнить мейлру, лол
Что такое "правильная архитектура"? Рекомендуемая гуглом через architecture components - да, у тебя на пике. Но есть, например, clean, который по-другому выглядит и взаимодействие между компонентами там не напрямую, а через таски, и вообще её можно и без LiveData реализовать.
Ну разве сейчас MVVM модель c датабайндингом между V и VM не хит сезона?
Попробую делать на том, что советуют синеволосые винишки из гугла, а то дед-пердед воду мутит и устроил культ личности:
https://dev.to/bosepchuk/why-i-cant-recommend-clean-architecture-by-robert-c-martin-ofd
https://dev.to/codemouse92/clean-dry-solid-spaghetti-1lgm
Ебашь MVP и не выёбуйся, его хотя бы все понимают. А то обмажутся датабайндингом, где необходимо строкой писать полное название класса в xml-ках, а потом рефакторят, что аж пот на лбу выступает.
Вот эта тема с написанием кода в xml вообще не вкатывает. Что в итоге выбирать для будущего проекта?
Явные преймущества? Давай поразмыслим. Лив дата хуйня, вью модел хуйня. Постоянно натыкаешься на костыли, которые пофиксят только к следующему гугл ИО.
Для общего развития можешь туду лист сделать. Если он у тебя конечно не сломается.
> Так, блэт, я не понял. Вкатился еще в августе в андроид, работаем с MVP. В других компаниях тоже просили знания этой архитектуры.
Это не архитектура.
> Хотел вкатиться в MVVM
Выкидывай решительно нахуй лайвдату и ту залупу для написания биндингов в хмл.
МВВМ заебись делать прямо на реактивщине. Вместо баиндинговой залупы от гугла используюшь няшноту от жеки вортановича. Остальное тоже на рх потоках и заебись.
Первое, возможность чесать анус и делать максимально возможные вещи реализованные лишь данными технологиями - это разные вещи.
Второе - иди нахуй.
Третье - были бы часики я бы с 30% посмотрел бы в твою сторону.
>>39631
Щас бы связываться с дата биндингом. Помню я все настраивал и оно суко не запускалось, хотя после перезахода в студию ВСЕ РАБОТАЛО. Самый страшный опыт из всего что было.
Весь ведройд стал говном. Даже фореграунд операции глушат всем подрят в 8-ке. Захотел поРАботать после onPause? - пошел нахуй.
Да, забыл как правильно. А то, что существует RxDataBinding даже и не знал.
Нет, говно - это как раз разработчики, которые решают, что им нормально качать сотни мегабайтов без спросу, постоянно держать в фоновом режиме открытый сокет, получать доступ ко всем данным пользователя. Очень хорошо, что современные версии андроида это нещадно пресекают.
Все верно.
> которые решают, что им нормально качать сотни мегабайтов без спросу, постоянно держать в фоновом режиме открытый сокет
Таких просто пиздить надо и не давать вообще кодить.
Может быть и лучшее, но ссылки реально разрозненные. Вот ты написал про головача перед Head First Java.А нахуя? Логично, что head first это самый легкий вкат и она должна быть первой
Не увидел mvvm со стейтами. Имхо, это наилегчайшая архитекура для вката.
Про тестирование у тебя статья с медиума, когда есть божественная статья от Яндекса на хабре. И еще одна от рандомного хера, но более прикладная.
Сайт алксандра климова это вообще пиздец какой-то, пересказ офф доки(которая есть на русском), так еще и хуевый пересказ.
Мобильная разработка от яндекса уже сильно устарела. Есть более свежий android academy.
>>https://github.com/ArturVasilov/AndroidSchool - здесь рассматривается архитектура, и как ее ели с 2011 года.
Это вообще не нужное говно.
Я бы предложил сделать майндмэп в виде картинки,а в опсиании ссылки накидать
ты долбоеб? андроид рынок уже сейчас перенасыщен в рф.Есть чат в телеге по вакансиям на мобилках. Посмотри как вкусные вакансии улетают буквально за несколько дней. А номр вакансий реально мало,в основном предлагают разгребать легаси говно лопатами. Вкатывальщиков дохуя, мидлов тоже дохуя. Хохлы,которые демпингуют удаленку в рф это вообще платина.
А в мировой разработке пиздец, любой раджеш знает как рекуклер сделать. Сейчас для нормального андроид дева апворк мертв, там всем поебать на твой хороший код, всем нужны индусы.
А вот посмотри на айос. Лингвалео уже месяц ищет мидла, они уже даже требования понизили, вообще никого нет. И таких как они много.
для пушей да
норм только вкатывайся в хорошие компании типа яндекса. Там оценят твой опыт. Это учитывая, что ты знаешь все паттерны и т.д.
Есть ырыкс это по сути стримы. У ретрофита вообще дао, так что будет понятно.Единственное, что надо будет изучить это дагер, андроид сдк, moxy(viewmodel)
>Хохлы,которые демпингуют удаленку в рф
Реально есть такое?
>А вот посмотри на айос
В iOS треде говорят, что вообще всё мертво.
В чём проблема открытых сокетов? Замерял затрату CPU, там стабильный ноль, только прыгает немного (пара процентов) раз в тридцать секунд, если пинг включён. Пользуюсь вебсокетами OkHttp.
Советую почитать про работу радиомодуля и режим сна на мобилках. Если у тебя профайлер выдает ноль, это не значит, что там реальный ноль.
> Не увидел mvvm со стейтами. Имхо, это наилегчайшая архитекура для вката.
Это не архитектура.
Хорошо, почитаю.
А какой тогда алгоритм работы? В onStop активити закрывать сокеты, и в onStart их поднимать, при этом если на этой активити информация, зависящая от вебсокетов (например, чат), то рефрешить страницу? Сдаётся, мне, что юзеру это будет менее удобно.
А ты в телеге не замечал, что когда переключаешься на телегу там в тулбаре на секунду появляется "соединение..."?
Но оно там так работает конечно не потому что разрабы молодцы, а потому что их фоновый сервис дропается в фоне и он перезапускается при открытии приложения. Но тебе то все еще норм как юзеру?
Я накатал большую простыню, но это все удалилось, жаль. Если хочешь покидать ссылки - покидай на тесты + создание кастомных вьюшек (вменяемые).
Видимо здесь не только я юзаю моху, а недоволен один ты.
Не, не замечал даже. Сейчас попробовал - и правда есть надпись. Спасибо, попытаюсь подобное у себя реализовать.
Хотя проблема вебсокетов в том, что они хреново правятся и тестируются. У меня были проблемы даже с моим прямолинейным подходом, когда соединение рубилось и не подключалось, а чтобы отловить этот момент приходилось оставлять телефон на ночь и с утра логи смотреть. Надеюсь, что безболезненно внедрю новый подход.
Нет, гугол намекает тебе что если приложение свернули ты идешь нахуй и освобождай место другим (потому что Ось такая)
ну так я не против, но просто всегда в бд и файлы и даже на сервер сохранял в onPause во всех проектах
Работа есть. Но не для 18-летних без опыта.
Дяде нужно, чтобы ты мог нормально сделать. Если можешь нормально сделать, то найдёшь. Это касательно не только андроид-разработки, но и любой другой мозгоёмкой профессии. Брать новичков на вырост никому и никогда нахуй не нужно было.
Так что запили какие-нибудь свои приложения, покажи дяде, что ты не хуй с горы, и ищи.
Ну погули, даже на девелоперс андроид есть. Суть в том, что если ты дрочишь сеть мелкими пакетами периодично, то радиомодуль не может перейти из режима передачи данных в режим стенд бай, из-за чего выжирает батарейку. Но трекается это системой как "связь с сетью", а не конкретное приложение. Тоже самое с цпу.
>>40138
С артом как повезет. На некоторых версиях андроида ахот, на последних джит + ахот вроде, т.к. гуглы просекли, что после обновления прошивки сидеть полчаса смотреть на то, как перекомпиляются твои приложение как-то не очень.
Затем же, зачем нормальный GC и работа с памятью, вместо ловли OutOfMemoryError'ы из-за дефрагментации памяти.
Инкременталку же завезли, в чем твоя проблема?
>>40088
Android Academy(легкий вкат) - https://www.youtube.com/playlist?list=PLjLCGE4bVpHChlptwNJW3is1lvO5wxFBu
Тесты
https://habr.com/ru/company/yandex/blog/346186/
https://habr.com/ru/post/352334/
Про кастомные вьюхи сам не знаю норм статей
Круто. Я и не замечал если честно. Апп постоянно падало и даже ща на работке приходится тыкать каждую кнопочку. благодарочка.
Это значит, что ты говно сделал, маня. Просрись. А если еще и DI не знаешь - так это сразу в опущенцы себя записывай.
Я тут проанализировал, что иос ребята дауны совсем. DI не понимают, VIPER блюются и пишут ОЙ КАК ВСЕ СЛОЖНО. Охуеваю с ребят. Или это может быть я выполз из говна? Тогда тебе, придется окунуться в это говно.
А что ты там такое наколбасил? Небось список в списке или ещё какая-нибудь причуда дизайнерская?
>список в списке
Ты часом не делаешь новый лэйаутмэнеджер при каждом новом onBindView родительского списка? Вообще, неси код.
>список в списке
>оно
Или это может быть нестед леяут + ресуклер + изменение динамическое в ресуклере.
мимо
Не
Там короче нужны анимации, поэтому constraintLayout. Еще подсписки могут быть разной высоты из-за текста - wrap_content
Больше всего уходит на onMeasure, на пике 4 лаяута в глубину, на деле уже 1 и стало не так тормозить, но все равно хуйня
Ничего не понял.
То есть, у тебя есть рисайклер вью с днями недели, и у каждого дня недели может быть дочерний констрейнт лейаут с внутренним ресайклер вью? Или у каждого дня недели внутренний ресайклер вью с элементами, имеющими в основе констрейнт лейаут?
Или у тебя вообще вложенных ресайклеров нет, есть констрейнты, а списком ты это называешь номинально?
>Или у тебя вообще вложенных ресайклеров нет, есть констрейнты, а списком ты это называешь номинально?
this
А может заменишь на полноценный ресайклер? Там же тоже можно анимацию запилить, какую хочешь. Это должно лучше работать, если правильно реализовать.
Или второй вариант. Ты, как я понимаю, вьюшки в констрейнт добавляешь в onBindView родительского ресайклера? Если так, то этого делать не стоит. Лучше используй холдер паттерн, то есть найди способ, чтобы не добавлять новые вьюшки каждый раз, а переиспользовать старые.
>А может заменишь на полноценный ресайклер? Там же тоже можно анимацию запилить, какую хочешь.
двачую адекавта. видишь список - ебашишь ресуклер.
Делаю как в ios. Там я не юзаю tableView(аналог recycle) потому что не получилось добиться нужной анимации(плавный выезд подсписка со смещением нижнего дня и тд). Дак там нет даже подозрения на делей, хоть и вьюшки добавляются каждый раз новые
>родительского ресайклера
Нет такого, от него же профиты начинаются когда вьюх дохуя, а не максимум 7
Я под родительским ресайклером подразумеваю вот этот вот список со днями недели. Или это тоже статически добавляемые вьюшки?
>Нет такого, от него же профиты начинаются когда вьюх дохуя, а не максимум 7
От него профиты начинаются, когда вьюхи перестают помещаться на экран. Это если про производительность говорить.
Тоже вьюшки, там энивей нулевой профит от ресайкла для дней недели, даже не хочу представлять как надо будет обмазаться, чтобы переопределить их анимации потом. Они рисуются моментально, торможение наступает, когда я первый раз открываю подсписок.
Я прологировал что там происходит : андроид решает пустить по кругу через onMeasure() все вьюхи в подсписке. Сначала меряет layout1, потом меряет все в него входящие вьюхи, после каждого измерения внутренней вьюхи заново меряет layout1 и все в него входящие и так дохуя раз. После этого я понял зачем некоторые челы в гайдах с ютуба переписывают onMeasure(). Хуй знает понял ты что я выше высрал, но у меня это как-то сложилось в картину
Я понял, что ты написал, причин подобного поведения не знаю, но лучше бы ебашил ты всё в ресайклерах, и работало бы всё быстрей. А то ты какой-то велосипед на ровном месте придумал (просто потому что там анимации из коробки, а для нормального решения анимацию написать немного сложнее) и жалуешься, что производительности нет.
>там энивей нулевой профит от ресайкла для дней недели
Я же вижу по твоему скрину, что у тебя уже вьюшки дней недели не влезают в экран. А если и там, в невидимой области, будут констрейнты? Тогда при скролле у тебя вообще всё пересчитываться будет. А в ресайклере задействованы только те вьюшки, которые ты прямо сейчас видишь на экране.
>но лучше бы ебашил ты всё в ресайклерах, и работало бы всё быстрей
Нахуй этого дауна. Человек с иоса пришел, там не тормозит ничего и можно говнокодить. Он не понимает этого.
Именно. Все работает искоробки, оптимизированно, не надо лезть в залупу ведь все инструменты уже написаны, не надо думать что будет на трубе с алика за 3к и старой версии sdk, продолжать можно долго. как же ахуенно
>Именно.
Хуименно. И сейчас я распишу почему.
>Все работает искоробки
да, только хкод говно и не спорь с этим
>оптимизированно,
хуимизировано
>не надо лезть в залупу ведь все инструменты уже написаны
С чем ты блять сравниваешь? Тебе просто ресуклер надо применить, а не вертеть хуйню.
> не надо думать что будет на трубе с алика за 3к и старой версии sdk
Это вообще не оправдание
>продолжать можно долго. как же ахуенно
хуенно
После ведройда тебе только веб может быть страшен и все. А твое описание - это как будто ты родился сразу принцем. Так теперь скушай говна, дружок. Это мы, ведройдеры, которые покушали говно можем спокойно и под иос кодить, так что соси.
Чтобы обработать свайп у родительской мне нужно установить onTouchListener и там сначала : в MotionEvent.ACTION_DOWN засечь координаты1 и вернуть true, чтобы дальше в MotionEvent.ACTION_UP засечь координаты2 и понять был ли свайп. Только дело в том, что после того как я вернул true первый раз touchListener не идет дальше по иерархии вьюх и touchListener дочерней не срабатывает.
Так почему он не обрабатывается, если ты координаты сохраняешь и сам его обрабатываешь?
А почему у тебя вообще onTouch вниз по иерархии идёт, а не вверх? Он сначала должен у дочерней вью вызываться, а уж потом (если дочерняя вернула false) у родительской.
Koin.
ах да, программа вылетает при текущем коде.
Делаешь по гайду из 2005 года? У функции есть второй аргумент, попробуй узнать зачем он.
лол. проблема была в пропущенных одинарных кавычках.
А вот на счет ведройд академи - ну хуй знает. Готовят просто людей которые сразу ебнут в нетворкинг и все.
Анимации нет, обработки жестовн нет ну и т.д. Ну это вводный курс, но нельзя так оправдываться. на стенфордском больше этому уделяется время, хотя он офк тоже вводный.
>>40510
Не видел ее там. Была только Аленка.
Нигде. Градл - глючное говно, призванное затруднить работу девелопера, а не облегчить её. Крепись.
портировал свою прилагу на ios, и вот что я понял:
-тулинг говно (аж трисет от xcode и itunes)
-можно вполне накидать приложение по кускам из stackoverflow и оно даже сносно работает
-если хочешь чуть копнуть и кастомизировать что-то, то отсасываешь или лезешь в приватное апи и отсасываешь
-фрагментация есть, но меньше
-по крешам невозможно понять что ебнуло и где (лол все креши это bad_access invalid_address)
-топ 1 в категории appstore получает в 10 раза меньше установок чем в google play, но пользователь приносит 2*$
-apple pidory
Я только вкатываюсь. Просто в сравнении с msbuild, встроенным в ламповый вижак, граддл, а точнее неавтоматизированность работы с ним в android studio, доставляет мне как девелоперу головную боль.
Достаточно сравнить камеру2 АПИ и иосовскую камеру. 1000+ строчек против 20.
А потом сидишь удивляешься.
>Я только вкатываюсь. Просто в сравнении с msbuild, встроенным в ламповый вижак, граддл, а точнее неавтоматизированность работы с ним в android studio, доставляет мне как девелоперу головную боль.
Не слушай никого. Особенно этого петуха >>40659
Но подсказать и я тебе не смогу, ищи ответы в гугле.
Чему?
хуй знает не разбираюсь в тянках просто помню, когда вкатывался смотрел яндекс академию, потом узнал у коллеги , который вкатывается в ведро об андроид академии, о пиздатом докладе по асинхронщине о какой-то телки. Посмотрел, а это та, которая в яндекс академии сидела на первом ряду и больше всех доебывала вопросами)))
то же что и в статье написано. WeakReference нужны чисто, чтобы в интервью спрашивать
Что будет если им предложить выложить эту хуйню на play store и отдать сурс?
Из-за того что мне еще не нравится дизайн - мне приходится по часу\два сидеть на https://uplabs.com и выискивать красивенькие формочки.
Ребяты выручайте.
Дедлайн поставь.
Но тебе же нравится его переписывать. Тебе нравится процесс, как ты из говняхи делаешь конфетку, как Микеланджело вытачивающий из куска мрамора очередной шедевр.
Цени эту возможность, потому что работая на дяду у тебя ее не будет, ведь фичи сами себя не раскатят, нам некогда ебаться с рефакторингом.
>Из-за того что мне еще не нравится дизайн - мне приходится по часу\два сидеть на https://uplabs.com и выискивать красивенькие формочки.
А как ведробляди открывают sketch у себя, в котором большинство дизов пилится? Предполагаю, что большинство без маков, иначе были бы айосблядями
Ходим на поклон к айсобоярам, бьем челом об землю и просим вырезать и померить кнопочки нам.
Опчик, вставь вот это https://www.bignerdranch.com/blog/building-animations-android-transition-framework-part-1/
Самое вменяемое что я нашел.
Да вообще я думаю на андроиде можно нихуя не писать, пусть сами ебутся раз купили хуйню Извините, вырвалось
Есть, но там говно на самом деле. Роадмап в шапке вон, читаешь и делаешь. Успех гарантирован. Но главное после 5 месяцев уже искать контору на стажера если не хочешь рискнуть быть таким же как и я.
удваиваю интригу
Я в телеге в ЧС у одной тян, так вот захожу я сегодня в телегу и вижу фото её профиля, но когда захожу в чат, то через секунду фото пропадает. Это баг телеграмма или это значит что она удвлила меня из чс, но потом снова внесла?
Спасибо.
> в каждом треде пишет "вкатываюсь уже n месяцев, лет"
Я как бы уже вкатился, причем год назад.
Тут дело в том, что команда должна быть, нормальная причем.
А что, если не так? Три года программирую единственным андроид-разрабом в фирме.
>А что, если не так? Три года программирую единственным андроид-разрабом в фирме.
Никто не подскажет если затуп.
Не объяснят тонкие моменты.
Стаковерфлоу же. Если проблема не гуглятся, значит, делаем костыль.
Приведи примеры таких тонких моментов. Мне на ум приходят только всякие системные фичи, типа что в 8 ведре запретили неявные бродкасты, а я не знал, пока сам полгода назад не заметил, что у меня соответствующий код перестал работать на моём новеньком тестовом девайсе. Или вот в прошлом треде мне анон сказал, что стоит всё-таки гасить вебсокеты по сворачиванию приложения. Но это просто happy little accidents, на самом деле.
>тонких моментов
ооп и паттерны, архитектурные и прочие решения, типо как хранить данные в каком формате и тд
самый большой минус кмк - отсутсвие ревью. мало того что баги пропускаешь, так еще и говнокодить никто не запрещает
Земля пухом всем, кто поддерживает чужой код. Бываешь, откроешь какой-нибудь вылизанный до блеска гитхаб, чтоб с котлином 99го уровня, и нихуя не понимаешь - полсотни классов и непонятно куда читать. Хотя уже наловчился, на самом деле, там всё-таки структура зачастую одинакова даже при разных архитектурных подходах
>>41890
>архитектурные решения
>тонкие моменты
штоу
>как хранить данные в каком формате
А какие форматы бывают?
>говнокодить никто не запрещает
Зачем мне говнокодить, если мне потом с этим же и работать? Не, я уверен, что можно писать лучше, но я эффектив джаву читал, осознавал и в принципе пишу норм, как мне кажется.
>баги пропускаешь
Ну, критичного за три года, чтоб приложение не работало, не было, тьфу-тьфу-тьфу.
В фабрике 99.9%, кстати. Оценка на маркете 4.5 за двести оценок, но там 90% оценок и плюсовых, и минусовых, относятся всё-таки именно к сервису, а не конкретно к приложению.
Но вообще, я тоже сейчас хочу перейти в команду. Но это просто потому что чувствую, что сейчас мне стимула развиваться нет и я топчусь на месте. Хули, пинай своё приложение и пинай.
Дак если ты пишешь под себя, то вообще похуй должно быть на чье-то мнение по поводу кода. А когда придешь батрачить на дядю тебе быстро пояснят за кодстайл и архитектуру, чтобы другим рабам было комфортнее с тобой работать
Пикрел мой высер в плаймаркет. Написан за полгода, без рекламы и накруток. Там дохуя багов и много че работает через жопу, энивей хавают. Тупа лень рефакторить и фиксить там всю хуйню
мимо
мое тоже хавают, но я жалею что нормально не писал и не пишу, думал сперва самого себя ревьюить, (типо создаешь PR и на следующий день смотришь свежей головой), но лень победила. В итоге некоторые фичи мелкие и вовсе сейчас запилить не могу, т.к. в существующую кучу говно просто так не встроить, придется все переписать, что займет много времени/создаст много багов. ну и по ходу роста сложнее поддерживать
>Зачем мне говнокодить, если мне потом с этим же и работать?
ну тогда ты или замотивированный неленивый биоробот или норм код от говнокода не отличаешь (индусский говнокод не в счет)
сколько бабла приносит/какой cpm?
Ну, у нас приложение распространяется чисто среди людей, кто готов деньги платить, мимокроков там нет, поэтому у нас немного оценок и загрузок.
А какая направление твоей разработки? Я как-то сделал трекер пути, там было за год пара сотен установок. Хотя аналог от гугла был говном, который у меня даже не запускался.
>тебе быстро пояснят за кодстайл
Стильчекер установят? Страшно, да.
Не жалуются как видишь, терпят)
Типа
public Zopa {
public static ZopaAdapter {
}
}
?
Да постоянно такие делаю. Внутренний класс не должен знать о внешнем.
Потому что ООП и инкапсуляция
Кроме того, внутренние статики можно создавать независимо от оборачивающиего класса, а внутренние нестатики - нет. Первое, что приходит в голову - Builder'ы.
Ещё я часто определяю внутренние статики, когда описываю json, приходящий с сервера. Потому что если в json'е, например, 4 разных объекта, то их проще описать в одном классе, сохраняя их иерархию, нежели разбрасывать по разным файлам и пакетам и потом их искать.
Анон, отсутсвует это вкладка т.е. ее вообще нет в настройках, при установке тоже не предлагала установить сраный sdk, куда копать?
>Ещё я часто определяю внутренние статики, когда описываю json, приходящий с сервера. Потому что если в json'е, например, 4 разных объекта, то их проще описать в одном классе, сохраняя их иерархию, нежели разбрасывать по разным файлам и пакетам и потом их искать.
Делаю как на пикриле
Ничего не понял, что ты хотел это показать. То ли у тебя REST чистый, то ли у тебя префиксы определяют базовый объект респонза, то ли что-то третье.
Ты не испытываешь, а вот мне, например, непонятно.
То, что ты не испытываешь проблем, это очевидно - ты же сам и создавал. Вон, мне тоже у меня удобно, но ты охуеешь. Алсо, 60к строк.
Веселее, чем в EE болоте.
Да. Подваливай, тоже будешь работать с андроидом.
Да. Но сейчас я больше тащусь от анимации + построение UI через код (это в иосе).
Попробовал в ведройде программно писать - это чуточку сложнее, да и мало туториалов. Проходить непаханное поле такое себе занятие.
просто я офигеваю с долбоебов с которыми я тут в треде сижу. Там написано сколько ide за тебя кода пишет, а не сколько ты пишешь кода
весело видеть как каждый месяц крупная сумму пополняет мой банковский счет, все невзгоды разработки меркнут в этот момент
Гугл по всем фронтам душит ведройд. Пора перекатываться на мочаскрипт.
Юрий, прекратите
DS это Donetsk State, вообще-то. Или в гривнах, или в рублях. Но то, что это за год - факт.
Слишком тонко для меня, буду считать тебя дебилом.
В яндекс картах вроде есть отдельная апи для карты, которая позволяет рисовать маршруты, в сэмпле точно есть что-то похожее. Так что ищи в апи библиотеки карты.
ЗАвисит от кружочков. В яндекс картах можно рисовать на карте объекты с анимацией. Также можешь отдельными вьюшками это делать. Для этого или поставь elevation, или просто в иерархии вьюшек ниже описывай.
Ага, понял. Пасиба.
Ого, я думал ведроебы на своих приложениях не зарабатывают.
Сколько их у тебя всего? Каких направлений? Сколько юзеров?
English please dude.
5 приложений, 95% дохода с 2х, одно полностью провальное, очень надеюсь что 2 еще взлетят
игры
60k dau суммарно
>Анончик, есть ряд приложений, которые могут рисовать поверх других экранов
кидай сюда посмотрим на эти приложения.
ну а как ты думаешь, какая у гугла есть рекламная сеть на мобилки?
Нашел гайд "Learning Android Development In 2019 - A Practical Guide"
на медиуме. Может кто-нибудь своим опытным глазом быстро его пробежать, вот если я просто буду идти по нему все будет нормально?
Ссылка: https://medium.com/mindorks/learning-android-development-in-2019-a-practical-guide-ddc71e008696
>When you are comfortable with the Java, learn Kotlin.
Спасибо, мистер медиумец!
Все эти гайды - хуета полная, как по мне, пишутся чисто классы набрать и не предназначены для обычного человека. Тебе будет просто скучно учить непонятно что непонятно ради чего, а когда это скучно - это быстро забывается. Лучше иди на developer.android.com, раздел make your first app, и там немного покрутись. Потом просто придумывай какие-нибудь простенькие задачки и делай их. Например, секундомер или калькулятор.
Это не практикал гуид. Это просто листочек где тебе сказали - ну фрагмент это вот это и все. Везде все есть, кроме нормальных уроков onTouch, View Gestures, CustomViews. Остальное все есть в шапке. Здесь еще анон кидал какие-то видосики от еврея который в москве зимой этой проводил курсы для начинающих.
Ну и шапку смотри - все что там есть - это основа, и хотя бы нормальные ссылки присутствуют, в отличии от этого дауна. Хотя сам миндоркс норм.
Активити можно отображать на пол экрана? А то эта хуита детектит с помощью ацесабилити сервиса адресную строку и основываясь на этом уже решает показать тебе или нет попапчик. Если Активити на весь экран, то строка не будет детектится. Но это вообще неважно, нужно понять как у них это реализовано, что можно спокойно свайпать страничку, если это конечно Активити.
Для фрагментов нужен контекст активити.
запили скриншот, не понятно
счас подумал, а что если поменять свой опыт в резюме на какого-нибудь строителя/мента и попробовать джуном устроиться (от нехуй делать). ох и пришлось бы говна и унижений хлебнуть, + возраст уже не ждуновский
У меня 6 и что? Если брать вместе с иосом - то 12. Ничего, устроился, ща уже уволняться скоро.
В андроид разработке вообще не шарю. Немного кодил на C#, примерно представляю как на нем сделать. Но мне надо на андроиде.
Сложно ли такую тему реализовать с нуля? Если знаю C#, стоит пробовать в Xamarin а то по нему совсем мало инфы и туториалов? Или лучше в студии пытался что-то делать?
Да, нет, да мало. В студии.
Дальше думать что это за изображение и относительно чего строить графики.
>Если знаю C#, стоит пробовать в Xamarin
Не стоит. До сих пор сырой, костыльный, с тонной багов на ровном месте.
Бегло пробегись по котлину (пару часов) и вперед пердолить гугл доки
Если очень хочется, то через ConstraintLayout и его вспомогательные элементы Guideline. В некоторых случаях можно через LinearLayout и веса. Но я как-то обычно забивал на подобные вещи. Всё-таки размеров экранов очень много.
Итак, у меня есть 4 вида аккаунтов: сервисный (owner), без аутентификации, моё приложение, не моё приложение (левая аутентификация).
Я хочу, чтобы только моё приложение имело доступ read к документам. Owner получает доступ ко всему в любом случае, его мне настраивать не надо. Я хочу сделать какой-нибудь Credential (client id, client secret или token), засунуть его внутрь приложения. Чтобы с этим credential был доступ к данным, с другими или без Credential — не было. Я понимаю, что можно просто вскрыть файл с приложением и вытащить оттуда, это не проблема, но чтобы хоть минимальные трудозатраты взломщики/парсерсы совершили.
gcloud auth login открывает окно входа в google account, причём GCloud ещё не знает к какому приложению я хочу цеплять доступ, значит GCloud даёт доступ ко всем приложениям на аккаунте, я хочу не так. Я хочу сгенерить какие-нибудь client_id & client_secret, которые смогу читать из базы данных, но больше не смогут ничего.
Я вижу некую настройку в https://console.cloud.google.com/apis/credentials?project=example-2ch-application-name , там создаётся, как я понимаю, что-то типа client_id & client_secret. Как их дальше вставить в FirebaseFirestore? Я знаю, что у FirebaseFirestore есть SetOptions (или как-то так), но я не вижу в Сети никаких примеров как там ставить какой-то конкретный credentials.
Я правда уже гугл поиск изнасиловал со своими запросами, не могу найти нормальных мануалов и всё тут
и эти вакансии обычно полное говно. На них ты даже норм опыта не получишь, такие работодателям похуй на свои приложения, живут на откатах, будешь в одно рыло пилить все. Лучше иди в яндекс на стажировку или в другое куда то место. Получишь там хороший опыт и потом возьмут в норм компанию
Спустя ещё полтора часа, нашёл на StackOverflow предложение использовать анонимный вход для пользователей в приложении. Для них это будет прозрачно: https://firebase.google.com/docs/auth/android/anonymous-auth
С такими вопросами идешь к лиду. Если сам пишешь и не лень простыню раскатывать - ты в двойне проебался.
и пример JSON'а
{ "datas": { "meta": {...}, "data": [ (вот этот массив, который мне нужен) ]}}
Конечно же, я в начале с такой херней не смирился и написал кастомный десирализатор для гсона, который скипал до листа и все ок было. Потом увидел тут про маппинг данных и задумался, как вообще правильно делать. Почитав то тут то там. Я так понял, не важно насколько странный ответ от реста, мы его получаем в том виде в каком он есть и маппим в наши нормальные классы. Те которые с реста с суффиксом DTO, если это так, то как называть "нормальные" pojo? Маппинг делать в презентере или как-то крутить свои конвертеры ретрофиту? И да бонусом еще, если ошибка, приходит json в котором код ошибки, сообщение, и самое блять главное возвращают статус код 200 ОК, это мне в интерсепторе каждый запрос парсить на наличие поля еррор и кидать exception, или можно это как-то в фабрику конвертеров запихать?
Да проект учебный первый для портфолио чтобы обоссывали на собесах, поэтому публичный API методом тыка выбирал.
твой json похож на soap ответ, такая же ебанутая вложенность. Маппить надо в твоей модели, где ты получаешь ответ. В презентер у тебя должен уже приходить нормальный pojo класс. Название зависит от твоей конвенции. Я люблю называть UserModel, MarketplaceModel кто-то называет User, Marketplace это наверное, самые частые конвенции.
>Те которые с реста с суффиксом DTO, если это так, то как называть "нормальные" pojo?
Я уже кидал как у меня устроена эта связь. Смотри выше.
"Нормально" тут никак не сделать, потому-что ответ 200 при ошибках это по умолчанию хуйня.
Я бы сделал так кастомный адаптер для moshi, который десериализует в ApiResponse<T>, и соответственно кидает ошибку если не 200.
>И да бонусом еще, если ошибка, приходит json в котором код ошибки, сообщение, и самое блять главное возвращают статус код 200 ОК, это мне в интерсепторе каждый запрос парсить на наличие поля еррор и кидать exception, или можно это как-то в фабрику конвертеров запихать?
Сам с таким работал. Короче, пилишь базовый класс с названием BaseResponse, там описываешь поля ошибок: код ошибки, сообщение и прочее. И все свои POJO наследуешь от этого класса. При получении ответ нормально парсится gson'ом, и ты проверяешь - если поле error null - заебись, работаем. Если не null - то значит ошибка, обрабатываем ошибку.
Задание: создать клиент-серверное приложение для поиска продуктов и просмотра детальной
информации по конкретному продукту.
Etsy API - https://www.etsy.com/developers/documentation - документация. Ключ для доступа к API -
нужно создать свое приложение и использовать ключ.
>А на какой архитектуре это нужно было сделать?
Ебни прослойку MVP и все. Если хочешь удивить, то ебни клин + анимацию.
Захочу какую-нибудь безье построить - хуй пойми что написано в доках. Зашел на вики почитал - количество точек несовпадает с параметрами. Попытался рандомно подобрать значения - какие-то рандомные кривые с 0 логики строятся. Просто блять выгораю нахуй с этого ведройда. Ничего как всегда не понятно. Зашел сюда https://www.uplabs.com/ посмотреть и хотя бы в уме прорешать как бы сделать сложные UI - всплакнул. Зашел на гит поискать по ключевым словам - одни сложные примеры, где по 500+ строк кода. Пиздец.
Потратил 6 часов на это все говно так и не добившись значимых результатов. Если сейчас засяду писать кружочек таймер который будет анимироваться потрачу 2 часа.
Нахуй все это, пиздос.
Ах, давайте посмотрим на оф примеры гугла ТУ ДУ ЛИСТА. ТУДУ ЛИСТ на 4к строчек - ух бля, давай сука поизучаем, делать же нехуй, 4к на обычную тудушку тратить. Или посмотреть на это говно https://github.com/googlesamples/android-sunflower 5 ТЫСЯЧ мать его звезд. Да кто ЭТО СУКА БУДЕТ ПРИМЕНЯТЬ В ПРОДАШКЕНЕ? Всем настолько похуй на то что они делают, что ставят ради лулзов, чтобы они опять обосрались. Понапихали блять фабрик туда, НАХУЯ? Этот пример настолько выдрочен, что остальные просто остались БАГОВАННЫЕ и им даже похуй переписывать.
Почему блять у меня image лагает при транзишене? Почему блять я должен заводить кастомную трансперет активити и прокидывать туда картинку чтобы сделать мувы как в телеге? Почему блять достойных примеров нет во всем коде семплес?
Даже простой чек бокс очищает состояние при ротейте. Это просто хуево. Лучше уходить в бек, чем с этим говном ебаться, но я уже погряз в этом дерьме сука.
Иди нахуй со своим мочаскриптом. Мне тут полегчало когда я выговорился. Завтра снова на работку.
К сожалению это покрывает 90% задач для Джуна/Мидла, остальное это эпизодические войны со сборщиком и прочие редкие штуки. Опять же, хотя задание кажется простым, в нем можно вполне налажать и по большей части оно для отсева овощей перед собеседованием.
Скорее для отсева опытных разработчиков, которые знают свою цену и не готовы тратить время на бесконечную неоплачиваемую работу.
> Городят свою хуйню, джетпаки хуяк
Пиндосам кстати джетпак очень зашел, прям люто надрачивают на него. Но и у пиндосов средний уровень ниже чем в рашке.
Вроде много всего годного разбирается и учитываются современные реалии (допилы каждые 6-8 недель). Бонусом можно читать из специально слепленной приложули.
Меня просто адски напугало кол-во страниц в содержании ридера 7000, вот и хотел узнать ваше мнение.
Table of contents: https://commonsware.com/Android/
Книги не нужны. Скачал как-то приложуху, и ни разу не открывал. Для какого-то специфического вопроса лучше подойдёт стаковерфлоу, для какой-то новой технологии - ютуб и какая-нибудь запись конференции, для чего-то более традиционного - сайт девелоперов андроид или какой-нибудь из блогов типа startandroid
Это у русских Мокси нет.
Проорал с этого тупоголового маньки, который винит в своей тупости и отсутствии предрасположенности к программированию документацию, гугл, ос андроид и джетпаки. Сука, просто топ кек.
Дебилоид, просто смирись, что программирование - не твое.
Да, кстати, у гугла одна из лучших документаций в плане информативности разжеванности и удобности. Пробовал перекатываться с ведра на иос - там просто лютый мрак и кошмар.
>Почему блять у меня image лагает при транзишене? Почему блять я >должен заводить кастомную трансперет активити и прокидывать >туда картинку чтобы сделать мувы как в телеге? Почему блять >достойных примеров нет во всем коде семплес?
>Даже простой чек бокс очищает состояние при ротейте. Это просто >хуево.
АХАХАХАХАХА
ахахахахах до слез
> эта бомбежка студентоты, которая увидела, что реальное программирование отличается от говнопримеров в универе и в нем надо действительно думать
Хз, что ты имеешь в виду, но я говорю именно про такие книжки, которые просто рассказывают про сдк, возможно с фичами и примерами.
Так-то книги, конечно, важны. Программировать на java без прочтения effective java вообще нужно запрещать законодательно.
Если ты не согласен, то аргументируй свою позицию. Может, я что-то не понимаю и это будет ценной информацией для меня.
>эта бомбежка студентоты, которая увидела, что реальное программирование отличается от говнопримеров в универе и в нем надо действительно жрать говно с лопаты
Поправил тебя, не благодари.
>Пробовал перекатываться с ведра на иос - там просто лютый мрак и кошмар.
Лол, не холивара ради, но в иос-треде вкатывальщики с андроида просто доебали уже своим нежеланием пользоваться документацией. Да что там иос, даже по языку гайд не навернув, начинают ныть о чем-то, чего не понимают.
но ведь в ios дока и вправду говно, вместо how-to список классов, небольшое описание к каждому классу и набор методов. есть какое-то подобие how-to и то с примечанием deprecated, для xcode5
Я и не спорю, что у гугла лучше. Все красивенько и в одном месте: api, гайды, лучшие практики, примеры кода - даже даун вкатится. Но блять, как можно не имения нихуя кроме описания метода и параметров даже их не читать, такие и заебывают. Кстати, и у эпл тоже много гайдов, только они лежат в архиве, из-за чего наверное некоторые считают их неактуальными, и на них часто есть ссылки в том самом небольшом описании, о котором ты писал.
Вопрос немного нубский, но у меня вот такая проблема. Использую Retrofit, делаю два последовательных запроса, первый возвращает список id, второй использует эти id для получения подробной информации. Сделать это все в один запрос API не позволяет. Получается, что у меня идет первый Call, в Callback.onResponse которого я делаю второй Call, в Callback.onResponse которого я уже передаю данные дальше. Выглядит это вырвиглазно, коллбак в коллбаке. Я распихал коллбаки в два отдельных класса, чтобы хотя бы визуально этой "лесенки" не было явно видно, но проблему это не решаетю.
Как можно это реализовать лучше? Можно ли это реализовать лучше?
>Все красивенько и в одном месте: api, гайды, лучшие практики, примеры кода - даже даун вкатится
>лучшие практики
Которые не работают?
>но ведь в ios дока и вправду говно, вместо how-to список классов, небольшое описание к каждому классу и набор методов. есть какое-то подобие how-to и то с примечанием deprecated, для xcode5
Где это? Ты в курсе что есть архивы и там подробное описание все лежит?
> This document is no longer being updated. For the latest information about Apple SDKs, visit the documentation website.
сразу задуматься надо,если будешь пытаться писать свои велосипеды или понять теорию, то много времени зря проебешь. Некоторые вещи понимаешь со временем
https://coursehunters.net/course/master-klass-po-rxjava-s-mvvm-dlya-razrabotki-pod-android
>Некоторые вещи понимаешь со временем
Двачую. Раньше не понимал тоже ни реактивщину, ни дагеры. Выучил рх, а в хендлерах не разобрался. Ща уже со всем разобрался, лишь просто остается попасть в команду которую кодовую базу хотя бы имеет на 50+к строк. Или же перебежать в иос, мне понравилось что там нет ебли с UI-ем.
>в иос, мне понравилось что там нет ебли с UI-ем.
> иос
> нет ебли с ui-Ем
> программирование любого экрана мышкой, без кода, из-за чего при одновременной работе нескольких программистов над одним экранов мержить ксибы не представляется возомжным без слез и бубна
> нет ебли с ui-Ем
то-то я накидываю сложный ui побыстрому в xml за пару часов, а ios-ники из команды пердолят свой ui-код неделю
вроде теперь написал куда надо
Ну и как ты прочувствуешь по какой причине она не работает на новой версии? В любом случае как минимум придется пересобрать.
бекенд всегда нужен, сейчас анлроид перегрет + непонятные мувы гугла с флаттером и фьюжей, пока вкатишься в вандроид может что-то поменяться ну и чтобы вкатиться полноценно в ведро, тебе нужно знать котлин
указываешь расчетный счет и выводишь
>>46542
какие перспективы у бакенд макаки? сеньер лычка и 4k$(и то если шаришь)
в ведроиде ты можешь создать свое суперговно приложение и заработать миллионы или потратить все деньги на разработку, вупустить апп, получить пожизненный бан у гугла и питаться дошираками, поэтому учика лучше свифт
Я же об этом и пишу, что программирование мышкой - это отсталая параша со времен забытого всеми делфи. А накидать код в хмлки и быстрее, и грамотнее, и удобнее с точки зрения дальнейшей отладки и мерджа.
>в иос, мне понравилось что там нет ебли с UI-ем.
> иос
> нет ебли с ui-Ем
Да, нет, и я имел в виду с кастомными вьюшками и решение через код. Там и анимация тоже хорошая. Ведройд создан для статичных хуевин, анимация по типу телегиХ для новичка будет пиздец. Работа с картами и возможность рисовать поинты\дороги и перехватывать жесты для создания новых путей - тоже пиздец. Возможность разбудить телефон через alarm когда сам ведройд входит в дезМод - когда в иосе уже все под словом изКаробкиKit есть.
В бек больше технологий.
Попробуй сам и реши. Ведройд это сложный путь, я не спал ночами - но если через менторов вкатываться то это конечно же легче, как мразь через менторов.
У меня так 2 токена - 2 объекта ретрофита. Могут сгореть спустя 10 минут или же спустя 2 дня - хуй знает когда. Поэтому у меня есть отдельный хендлер фореграунд который раз в 10 минут с пост делеем запускает обновление. Еще ебучее сдк завязано на логику активити, пришлось расширяться.
Понятно.
А что если я скажу что у моего приятеля приложение в топ 10 входит в аппсторе? И он ссал на твой код для создания вьюшек и просто юзает сториборды? Хотя по общению с ним для него нет ничего невозможного. Может просто взять и делать.
А я лидер метал-группы с приятелями генералами КГБФСБРПЦМП
Говорили LiveData хуита полная, но аргументов "почему хуита" не привели.
стандарт будущего. Особенно за бугром, где нет мокси
лучше используй мокси
ок,спасибо
слыш
используй мокси, там всё работает
в шапке все есть. Если ты хочешь заплатить деньги за курсы, то отсылай мне, а я тебе буду копипасть курсы из шапки и скидывать
я конечно не эксперт говеных либ, но мб он работает на кодогенерации?
Сталкивался, на самой первой работе. Только один метод спасал: я закрывал студию и заново открывал. Никакие клины, билды, ребилды, мейки нихуя не спасали. А чел, который сидел напротив говорил мне - ну и что ты не используешь датабиндинг? Это же ебать так супер - во вьюхолдере не нужно писать все эти иниты.
Пиздец я охуевал от жизни.
>виндоусники решили проблему обрезания и кодирования видео в mp4?
>os x может проигрывать m4a?
> А чел, который сидел напротив говорил мне - ну и что ты не используешь датабиндинг
Я надеюсь ты ему харкнул в ебало когда уходил?
нет, он же пересел на мокси, а там всё работает
Нет, я хочу спиздить тот курс и сравнить с тем, что есть в открытом доступе. Интересуют курс 2 и 3.
https://www.coursera.org/learn/android-multithreading-and-network
https://www.coursera.org/learn/android-app-architecture
Хочешь сказать что ведро сможет взять видео из медиатеки, сделать разрешения 480х320 и сохранить в мп4? Не понял твой посыл. Я не из андроида, просто на прошлой работе в приложении выпилили целый раздел из за того что китайские девайсы крашились на этой задаче, интересно поменялось ли что нибудь с этого времени. По м4а тоже не из праздного любопытства интересуюсь, нужно с айоси как то передавать голос на ведроид, а айось не умеет сохранять в мп3
>установил голую сборку виндоус xp
>ух сука сейчас буду редактровать видео!
>ебать, виндоус не умеет редактировать видео!
>ебать, гта 5 тормозит и крешиться, вот винда говно!
>ух бля, tar открыть не может, не ну ты видел, что за говно ось
даун зеленобуквенный. По человечески можешь ответить?
Берешь и без задней мысли делаешь, в чем твоя проблема воспользоваться гуглом?
https://medium.com/@manishgiri/android-transparent-status-bar-part-1-989e16b11785
не используют мокси прост
Бля. Я хоть и пьяный, но вот пример говна:
@Insert
fun addAll(pidors: List<Pidor>)
И все. Ты что-нибудь попробовал сделать сам? Погуглить, а нет пришел сразу пришел сюда плакать? А ну, покажи мне свои слезки!
вложенный ,кароче я имею ввиду
class Pidor{
@SerializedName("name")
String name;
@SerializedName("vallue")
String value;
@SerializedName("other")
List<Other> other;
}
class Other{
@SerializedName("bla")
String bla;
@SerializedName("blabla")
Int blabla
}
Эх, доки лучшее что придумали люди. А ты как считаешь?
Да хз, но теперь понимаю его и могу читать код. Много информации про Котлин+rxjava и прочие jetpackи с моксями завязаны именно Котлине. Ученье - свет, в общем.
Не понимаю в чем проблема. У тебя есть List<Pidor>, в котором есть еще один List<Govno> и кроме листа есть строки или числа в сущности. Как писал выше, что тебе нужно вызывать метод DAO addAll(List<Pidor>) с аннотацией insert.
Вообще ты скинул сущности которые используются для разбора ответа с сервера. Для базы нужно создавать свои классы, которые помечаются аннотацией @Entity.
Как правильно настраивать jdk и этот ебучий gradle?
И вообще есть маны для этой ide как сейчас проект для андроида пилить? Весь гугол перерыл, не могу ничего найти.
Сначала потрахался непонятно где, потом поставил. Добро пожаловать в костыльный мир ведройда.
В итоге нассал сам себе в рот, пользуясь лагованным багованным говном вместо идеашки.
https://ru.wikipedia.org/wiki/Котлин
Да.
Если джава и котлин похожи, то плюсы же совсем из другой оперы. Программы на Андроиде выполняются в джава-виртуалке, выходит программы на одноименном языке будут выполняться быстрей всего потому что их не нужно транслировать в джаву? Но тогда кому придет в голову писать на плюсах если нет выиграша в производительности. Значит я ошибаюсь и это все работает по другому. Но тогда как? Оаоаоаоаоа!!!1111
Гугли android NDK и AOSP
Что там? Думаешь скинул словечко и все, считаешь себе умным? Я про это и имел в виду. Мало того, что жаба как старый помидор, так и кресты хуевые здесь.
Вся надежда на кокотлин.
Я понимаю что нужно делать, спрашиваю про подводные камни. Могут ли, например, Channel'ы из корутин апи заменить сабжекты из рх? И вообще может стоит ли переезжать
нахуй.
2+ года в мухосрани это как раз новичок, в андроид очень тяжелый вкат
намного лучше чем руками jar/aar импортировать и потом еще ебаться из-за разных версий в зависимостях как это было в eclipse
+ флейворы, сигнинг конфиги и прочие плюшки
Зачем нужен Grip sensor на самсунгах, как его использовать?
>А у нас в шараге отменили андроид-девелопмент, потому что компы не потянули андроид студио. Сука! Оппик 2 напомнил о боли.
Кстати. Посоветуйте ньюфагу. Какой должен быть комп для разработки в андройд студио? Я бомж, поэтому интересуют варианты из разряда "дёшево и сердито".
Xeon четырёхъядерный - подойдёт, или будет тормозить?
4Гб оперативы - мало? 8Гб - ок?
Категории -> Подкатегории -> Конечный контент
Категории и подкатегории я рисую через RecyclerView, просто обновляя его содержимое. Конечный контент я рисую в TextView. Причём я просто делаю RecyclerView невидимым, а TextView — видимым. При нажатии аппаратной "назад"/"назад" в меню я меняю видимость местами. То есть делаю я это в контексте одного Activity. Соответственно, при нажатии "назад" нет анимации отлёта бумаги.
Слева стандартное выползающее меню. Мне оно нужно одинаковое на всех страницах, оно не меняется. Я могу в самом начале включения приложения добавить ещё пару пунктов
Вопросы:
1. Насколько это харам? То есть насколько это ужасно с точки зрения гайдлайнов? Буду ли я за это гореть в аду?
2. Насколько сложно сделать это разными activity? в частности перенести меню
А проц Ксеон 4хъядерный - пойдёт? Или обязательно топовый i7 за сотни тысяч денег?
сПермь
Типа такой шутканул, да? Когда студия 6 гигов оперативы выжрет, побежишь в магазин за плашками оперативы.
Играться видимостями такая себе идея. Твой класс отвечающий за логику становится перегруженным, т.к. много на себя берет. Следовательно, нужно разбивать все по отдельным экранам. Для этого используй фрагменты. Для перехода по экранам можешь посмотреть гугловскую библиотеку из джетпака. Большая часть логики находится на стороне хмл и затем в своем мейн активити пару строчек нужно будет реализовать. Из фишек просто добавить анимацию переходов.
Думаю ты можешь оставить свой основной класс мейн активити и использовать его как контейнер для фрагментов. Так же посмотри в сторону какого-нибудь мокси - отличный инструмент для вкатывания с нуля в архитектуру приложений.
Я вообще не шутил нисколько. Прости, если это слишком нубский вопрос. Я действительно собирался взять себе комп на Xeon'е для работы в Android Studio. И решил на всякий случай спросить у знающего анона, не хуйню ли я придумал.
Не подходит Ксеон, что ли?
Какую можно взять дешёвую альтернативу?
Простите, не кидайтеся тапками, я ньюфак.
Студия больше заточена под интел.
Просто посмотри требования на сайте к IDE. Чтобы использовать свыше 8 гигабайт оперативы нужно очень крупный проект + параллельно запущеный эмулятор или даже два. Но тогда уже один хуй комп с дорохим цопе будет тупить.
Если есть тыщ 50, то для начала пути в разработке можно обойтись и макбуком айр с 8 гигабутами. Но этот вариант хорош только если ты живешь на съемной хате и постоянно куда-нибудь ездишь или переезжаешь. В принципе на часов 5 на одном заряде его хватает поработать.
Спасибо за пояснения. Попробую Ксеон (он от интел же) и 8гб оперативы. Про 50к речи не идёт - я нищеброт.
А где?
И купить мокси
Нашёл решение, это обычный датчик с комером 0x00010018
>>51609
ЗА ДВА КУРСА ГУМАНИТАРНОЙ СПЕЦИАЛЬНОСТИ И ТРИ ГОДА РАБОТЫ ПРОГРАММИСТОМ ПО ЗАПРАВКЕ КАТРИДЖЕЙ ВЫУЧИЛ ЯВУ
@
ПАЦАНЫ ПОСОВЕТОВАЛИ ВЕДРОИД, А НЕ БЭКЭНД – ТЫ ПОСЛУШАЛ
@
ПОЛГОДА ЛЕНИВОГО ВКАТА И ТЫ ЖДУН
@
НО ТЕПЕРЬ ВСЕ ЕБАШУТ НА КОТЛИНЕ, ЖАВАПЕТУХИ НЕ НУЖНЫ
@
НЕСКОЛЬКО МЕСЯЦЕВ УЧИШЬ ЭТУ ХУЙНЮ КАЖДЫЙ ВЕЧЕР ПОСЛЕ СМЕНЫ В МАКДАКЕ
@
ЧЕРЕЗ НЕДЕЛЮ РЕЛИЗ ФЛАТТЕР 2.0, КОТЛИНПИДОРЫ ОТПРАВЛЯЮТСЯ К ЖАВАПЕТУХАМ
@
ПОЛГОДА НА ЖОПНОЙ ТЯГЕ ОСВАИВАЕШЬ И ЭТО ГОВНО
@
РЕЛИЗ ФУКСИИ
> что эта вообще за хуйня
God object
> в ios такой хуйни нет
Есть, но не такой глобальный, например в кор дате свой контекст для общения с бд.
http://www.jsonschema2pojo.org/
https://jsonmaster.github.io/# - другое, из приятного есть кокотлин.
1. Тебя юзать .kts никто не заставляет.
1. Сам по себе градл сравним по скорости с Buck'ом. Медленные это написанный индусами AGP.
Если юзаешь SQLite, рекомендую сложить в 1 таблицу и для запросов ко вложенным моделям использовать json1 расширение.
И так теперь проблемы, как быть с ебучими презентерами в которые надо заинжектить что угодно. Прим этом используя мокси, как я сейчас пришел к решению что надо провайдить экземпляр в модуле, затем инжектить его даггером в фрагменте\активити и затем уже этот готовый презентер инжектить средствами мокси, а именно аннотации @ProvidePresenter и @InjectPresenter, вот этот анал карнавал я еще пережить могу, но правильно ли я понимаю что придется даггером провайдить каждый ебучий презентер отдельно. Вот вот это место с правайдом мне вообще не нравится. + я еще не понимаю, что в таком случае будет с жизненным циклом презентера, так этой ерундой заведует сам мокси, а тут пиздец короче. Просто голову сносит сейчас.
он же отличается только тем, что там можно скролить внутренние вьюхи? энивей попробовал и ничего не изменилось
Тебе уже сколько раз сказали блять. R E C Y C L E R V I E W мать твою нахуй.
Сразу от ебли избавишься.
это говно тут причем, тем более оно implements ScrollingView
ну сука завтра буду разбиратся и переписывать через нее даже не надеюсь что эта поможет
нет. Инжектишь презентеры среествами мокси. А в презентеры свои интеракторы или репозитории инжектишь даггером. Не знаю если можно сразу в конструктор презентера в моски инжектить(погугли). Но 100 проц вариант это когда ты инжектишь в активити репозиторий и потом передаешь в презентер через конструктор(@ProvidePresenter)
> Но 100 проц вариант это когда ты инжектишь в активити репозиторий и потом передаешь в презентер через конструктор(@ProvidePresenter)
Хуевый вариант. В активити нужно делать просто @Inject Provider<MyPresenter> provider, и возвращать его в @ProvidePresenter, а не хуйней заниматься с инжектом в активити говна, которое она не использует.
Нужно сделать простой GET запрос без всяких либ в бэкграунд треде. Можете посоветовать статей или как это сделать?
Ну и что тут советовать, HttpUrlConnection, если даже OkHttp нельзя юзать. Ебни все это в хендлере или в экзекюторе. Все.
Спасибо, я как раз HttpURLConnection юзаю, только пока с асинк таской, сейчас буду пытаться заюзать экзекьютор
Спасибо, я как раз попробовал HttpURLConnection, только пока с асинк таской, сейчас буду пытаться заюзать экзекьютор
> OkHttp
Кстати, только вдумайтесь. Каждое! приложение на андроиде таскает с собой собственную реализацию HTTP стека.
Чтобы изучить что-то новое
А ты расскажи, с чего обосрался, вместе посмеёмся.
Есть ли пример, как это делать?
это вообще хорошая идея? или все таки можно вложенными обойтисть?
Вообще мне нужно, чтобы это хуйня свайпалась, как это лучшее реализовать?
>ты долбоеб? скажи честно
С андроида 4.4 в HttpUrlConnection юзается okhttp...
Тогда почему я обязан подключать окхттп для нормальной работы?
Иди нахуй, токсик.
Есть два стула, на одном пики точены, на другом хуи дрочены, на какой сядешь, на какой мать посадишь?
Базовые компоненты андроид, лайвсайкл активити и фрагмента, отличие arraylist от linkedlist, устройство хэшмап.
Все что написано в шапке в конце.
>отличие arraylist от linkedlist
ааахахаххаха. единственный норм вопрос про хешмапу(но он в связке про хешкод и equals)
>>54090
Если по лайфсайклу, я бы попросил спроектировать роутер, если сделает его правильно, то он мидл, если с ошибкой, то джун, если не сможет, то лох обосанный.
По даггеру бы поспрашивал, а именно про скоупы
Спросил бы как устроена внутри viewmodel, если он mvvm или моски , если он mvp
Ты опять таблеточки забыл выпить, шизоид?
>я бы попросил спроектировать роутер
Хуй знает что это такое.
>а именно про скоупы
А че там спрашивать? Ебнул сабкомпонент на скрин и т.д. Ток у меня опыта взаимосвязи с маппингом данных нет. Постоянно то на этом скрине есть данные, то такие же данные на другом. Не у кого спросить как иерархии строить сложные.
> как устроена внутри viewmodel,
Хуй знает. Вроде она проигрывается через бандл фрагмента\активити и гугл использует какой-то метод в активити куда можно передавать объект (не бандл) и восстанавливать этот объект когда активити уже перевернулось и опять пошел лайфсайкл. И там через фабрику эта вся хуйня клепается и получается что самый главный какой-то объект знает обо всех состояниях вью модели.
>ли моски , если он mvp
Про мокси тоже хуй знает, хотя ее юзаю один на проекте.
Но мне на нравится ведройд, хотя, если я был бы в нормальной команде мне бы он понравился.
В чём профиты Moxy в сравнении с использования стандартного мвп? Я читал статьи про мокси (которых две с половиной штуки, ну а больше и не надо), и там говорилось только о преимуществе перед обычным древним подходом а-ля "ебаш в активити похуй". Но сейчас же все модники и умеют в архитектуры. Так есть ли смысл в мокси в 2019 году?
Это троллинг такой, посмотри внимательно тред, мокси тут на каждый вопрос советуют. Профита никакого, может быть полезен только совсем нубам, которые ничего не умеют. Хотя, если они на каждый чих будут просто подключать ещё одну библиотеку, они ничему и не научатся.
> презентер не замокать
Чеэт? Ты ж его провайдер через даггер инжектишь.
> В чём профиты Moxy в сравнении с использования стандартного мвп?
У каждого свой "стандартный" мвп. Вот в твоем "стандартном" мвп презентер переживает поворот или нет? А то я видел обе реализации и каждый доказывал свое.
Но профит на самом деле во вьюстейте, тебе не нужно ебаться с attachView и хранением состояния, правильно настроенные стратегии сделают это сами и этот вьюстейт в итоге вырождается в стейт MVI.
>Ты ж его провайдер через даггер инжектишь.
Что? Можешь объяснить, что ты имеешь в виду?
Я сейчас погуглил, тестирование в moxy делают через костыли уровня мокания всего презентер стора и вдобавок наследования моком презентера от класса презентера.
https://github.com/Arello-Mobile/Moxy/issues/167
А какой ты вариант предлагаешь? Ты провайдером презентерстор называешь?
А, всё, увидел внизу ссылку на другой тред, где написано, что через изменение поведения @ProvidePresenter можно сделать. Ну, лучше, но всё равно костыль, как по мне. Тогда нужно ProvidePresenter везде использовать.
1080x1920, 0:21
А хули не мочь-то. Смогу. Сохраняешь x,y, при повороте восстанавливаешь состояние.
Проблема на вебмке. Приложение - сэмпл из мокси репозитория.
Анимация разруливается на уровне вьюхи. Если тебе нужно пропустить анимацию, то можно как вариант добавить флаг skipAnimations = true в onCreate и в skipAnimations = false в onStart/onResume/onResumeFragments не помню который там используется.
Ты имеешь в виду добавить кастомную булевую переменную? Ну да, сработает, но опять же - костыль.
Хотя ладно, тут даже если бы я делал свой мвп, то я бы решил проблему добавлением флага (только не во вьюшку, а в качестве параметра колбэка, типа playingAnimation = true/false. И в момент аттача вьюшки к презентеру делал бы вызов с false, а в других случаях - с true).
> playingAnimation = true/false
Тоже подумал об этом способе и подменять в true на false кастомной стратегией если так можно, но попробовать стоит, но прям такое себе, презентер в итоге в курсе о реализации вьюхи.
Ну переименуй playingAnimation в isChangedRightNow, лол. Я не считаю это тем, что презентер что-то знает. Он просто подсказывает, а вьюха может вообще на этот флаг не смотреть и не использовать.
> Сохраняешь x,y,
>при повороте восстанавливаешь состояние.
А я просто написал анимацию и все. Поэтому я на днях увольняюсь, отрабатываю 2 недели и думаю искать работу на иосе.
Хз, а я привык уже. Как данность воспринимаю все эти необходимости ухищряться с поворотами экрана.
Единственное, что по-настоящему бесит в андроиде - это когда на каком нибудь Xiaomi X70PE-ADF происходит краш в месте, где он вообще не должен проиходить, причём даже в стактрейсе нет твоего кода и вообще непонятно в какой части приложения всё произошло, а у тебя из девайсов только один самсунг, да эмуляторы. В айосе с этим, наверное, попроще, там систему вовремя обновляют, и линейка девайсов гораздо уже.
кому-то важно, чтобы кандидат умел списки сортировать и вагоны в бесконечном поезде считать, а мне спрашивать знания по либам и прочему бесполезному говну
Базовые знания все таки важны. После полутора лет работы я столкнулся с ссылками на обьект. Оказывается, когда создаешь new ArrayList(listXueta) этот лист просто копирует объекты, каждая из которых содержит ссылку на изначальный объект. Сказать что я охуел - ничего не сказать.
>копирует объекты, каждая из которых содержит ссылку на изначальный объект
Че несешь вообще? Мне кажется ты так и не понял нихуя
ебать ты плох
>staff
нахуй ты ПОСОХ из котиков делаешь, ещё и не возвращаешь ничего.
Ничего личного, но вот такие вот нулёвые посоны с полутора годами работы всегда повышают мне чсв. Это же, блядь, классика, это Шилдт, это любой джун знать должен, что по значению передаются только примитивы и иммутабл класы, типа String. А ты вот спокойно работал, деньги получал, и, видимо, вопросов по работе к тебе не возникало.
>что по значению передаются только примитивы и иммутабл класы, типа String.
Меня то же забавляют такие дурачки, которые пытаются оправдаться передавания по ссылке.
Да, для меня это новое и что? Чекай, урод. https://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value)
Java is always pass-by-value
так пользуйся дебаггером
дурачек что-ли?
>этот лист просто копирует объекты
Не копирует объекты, а создает НОВЫЙ список со старыми объектами. Инстансы элементов те же самые. Но ведь это базовые знания джавы. Если в таких вещах путаться, то непонятно как вообще можно программировать что-то сложнее new Cat()
гг, а чел который на собесе про либы спрашивает, таких успешно пропускает
с кем же я в одном треде сижу, один не знает, что в httpurlconnection okhttp юзается, другой вот такие вещи после 1.5 лет года разработки открывает.
>один не знает, что в httpurlconnection okhttp юзается
Я вот тоже такого не знал, но это скорее связано с тем, что httpurlconnection никогда не использовал, лол. Хотя уже 5 лет пишу под это говно
а что тебе это знание дает, маня?
Ебать, неожиданный результат, лол. У тебя в принте один и тот же локальный кот, результат немного предсказуем. хотя ты, наверное, не знал, что объекты передаются by reference, и ты все равно соснёшь, даже если правильно укажешь на статического кота. Алсо, у тебя в одном месте cat.setName, а в другом cat.name = , ты, либо крестик сними, либо трусы надень
>ругой вот такие вещи после 1.5 лет года разработки открывает
И что дальше? Зато я могу часами разговаривать про даггер, к примеру. Да, это хуево в плане базы, потому что у меня не было нормального образования и я вкатывался абы как, лишь бы работало.
Зато теперь приятно узнавать о таких мелочах. Не вижу ничего постыдного.
Вот какие есть идеи:
— custom_views
— cv
— создать папку custom в ui package (где активити и презентеры хранятся)
Двачую.
>собсна реквестирую нормальные уроки для этого
Хочешь мини гайд? Вот блять вот такой прям мини МИНИ гайд?
Давай я напишу
1. Ресуклер вью
2. Ретрофит (можешь юзать гсон)
Все. С переворотами, бекграундом сам справишься.
Бтв, хули такой малый проект на дипломе? Я думал напишу на иосе и на ведройде двач, препод сказал нет. До сих пор в голову ниче не лезет.
> хули такой малый проект на дипломе
А нахуй он большой? Там важнее научная составляющая, а не высер про то, как ты писал очередную рестопарашу.
Отвечаю постфактум самому себе:
Решить алгоритмическую задачку на листке, про алгоритмы сортировок, про внутренности hashmap, про finalize, про нуллабилити в котлине, про экстеншен-функции в котлине, какие методы определены по дефолту для дата классов, про sealed классы и применение для них, про пермишены, про отличия dalvik от art, про нововведения в разных версиях, про декс файлы и мультидекс, про target, compile, min sdk, как собрать и запустить с консоли, как и зачем подписывается апк, флаг allowBackup, ограничения на размер пуша, ограничения на размер бандла в интенте, отличие add от replace в транзакции, способы пережить поворот, мвп или мввм, как заретейнить инстанс фрагмента, пишешь ли тесты, виды тестов, настраивал ли ci, писал ли градл скрипты, что юзаешь для di, юзаешь ли рх, паттерны ооп
На 3 вопроса не смогу ответить. Я гожусь для ждуна? Но UI я долго делаю, как обычно.
А, еще забыл, жц View, зачем onMeasure, onLayout, onDraw, для чего интерсепторы ретрофиту, про рум
Ты рофлишь? Это вопросы для ждуна. Для мидла я думаю нужно взять какие-нибудь фичи ака костыли ведройда, более глубокие. Например как сделать прозрачный фрагмент.
Аноны, поясните в чем хранить небольшую информацию на Android(и IOS в придачу, было бы не плохо), чтобы ее могла посмотреть только моя программа?
Как я понял, стандартный SQLite3 не поддерживает защиту информации.
Удаленный сервер для хранения не предлагать. Программа должна работать офлайн.
SharedPreferences, ios - CoreData.
SharedPref + AES шифрование/дешифрование
пиздец дипломы в шарагах сейчас. Я такое за один день в файрбэйс сделаю
binaryprefs либа, если на джаве пишешь
блять, я тебе уже говорил в чем отличе мидла от джуна. Заретейнить фрагмент любой джун может, а объяснить как это делается внутри нет
>finalize
>алгоритмы сортировок
>отличия dalvik от art
>как собрать и запустить с консоли
По таким вопросам можно понять, что интервьюер живет в 2013, делает свои велосипеды из говна и палок
> Решить алгоритмическую задачку на листке, про алгоритмы сортировок
Что за задачка? Про алгоритмы тоже интересно, я уже все забыл оттуда блять, если я могу назвать несколько категорий сортировок, сказать что юзай - квиксорт и будешь малаца, не и принцип примерно его рассказать, нихуя больше блять не помню.
Как использовать мокси?
Instant app или в жопу раз?
В каком году Женя Вортанов начал работать в Гугле?
Сколько волосинок у Артёмки Зинатуллина в бороде?
Список докладов с последнего Google IO?
Сказать кол-во строк в первой версии сдк, cколько памяти в телефоне G1 и сколько букв в классе ConcurrentSkipListMap
>Список докладов с последнего Google IO?
113
>Как использовать мокси?
хуекси
>Instant app или в жопу раз?
второе
>В каком году Женя Вортанов начал работать в Гугле?
в 2008 кажется.
>Сколько волосинок у Артёмки Зинатуллина в бороде?
хуй его знает.
Все, я иду на мидла?
Шифрование не нужно, обычных линуксовых пермишенов хватит, чтоб хранить что угодно безопасно (если телефон не рутованый). А если рутованый то и шифрование тебе не поможет, тк ключики та все равно будешь в приложении хранить, и достать их оттуда дело времени
This.
я уже писал выше, что я спрашиваю знания по говнобиблиотекам.
>>55552
хорошие вопросы, еще я бы добавил перечислить стактрэйсы крэшей, которые бывают только на xiaomi
>>55539
hackerrank
>>55554
на почитай, может чего полезного узнаешь https://twitter.com/jakewharton/status/894583691657084930
Но не каждый школьник, который может получить root права, сможет достать информацию непосредственно из программы. Я к тому, что отсутствие гарантии на 100% защиту не означает что ее не надо улучшать.
Надувает view.
Ну почему же, считает нужным задать и более фундаментальные вопросы. И дальше ведь переходит на более прикладные вещи. Как по мне это в любом случае в сто раз лучше, чем как >>54114
Ладно если в cv указаны какие-то либы, то ок, можешь по ним спрашивать, а иначе иди нахер со своими дагерами, моксями и прочим
Вот это самое прекрасное объяснение. В свое время не понял такое говно.
> Например как сделать прозрачный фрагмент
Пиздец проблема.
Все, что ты перечислил, уже позволяет тебе писать обычную рестопарашу в адекватные сроки, а значит уже можно аплаиться на 90% всех вакансий на хх. Есть конечно какие то особенные манямидлы из хуяндексов со своими грейдами, но это всего лишь способ платить меньше за большие знания.
Na Zdorovje
pros:
- контора не умрет завтра (точно)
- реальный опыт на флаттере
- нет (почти нет) заботы о клиенте
cons:
- соло, со всеми вытекающими
>соло разработку внутреннего продукта на флаттере
>1 девелопер-хуеватуча сверху BA/QA и прочих
Попахивает говном.
я б пошел, потому что старый и не люблю когда тыкают в мой говнокод и указывают чего делать особенно сопливые 25-летние тимлиды
data class Data(
val id: Int,
val anotherId: String,
val status: Status,
val a: List<A>,
val b: List<B>,
val c: List<C>,
val d: List<D>,
val e: List<E>,
val f: List<F>,
val g: List<G>,
val h: H
)
Каким удобным способом такого рода данные можно локально кешить? Создавать десяток таблиц не хочу. В джейсон толкать тоже не вариант, тк важно иметь возможность делать выборку по параметрам, например выбрать все данные, в которых есть список F c элементами отвечающими определенным условиям.
чет не понял, почему json не вариант
Сериализовать/десиализовать json еще гляди и быстрее окажется, чем делать выборки с нескольких таблиц, особенно если орм какое-нибудь обоссаное заюзано
Понял, спасибо. Тогда второй вопрос: какие годные noSql(?) библиотеки есть для таких целей? Так чтоб поддерживались разработчиками и позволяли делать выборки по критериям
> внутреннего продукта на флаттере
Охуенно же, вкатишься в новую технологию. Но здесь чисто от твоего отношения к флаттеру все зависит, я бы пошел.
Очередной никому не нужный якобы универсальный UI-фреймворк - это не технология.
Видел седня новость на реддите что флутчер объявил конкурс на создание апп на 10к баксов призовых. Что только не делают, лишь бы привлечь народ.
>UI-фреймворк
https://buildflutter.com/how-flutter-works/
>>56746
>соло никогда никому не советую ничего делать.
Из-за этого и очково.
>>56777
>вкатишься в новую технологию
Было бы очень збс. Плюсом будет что не нужно учить кокотлин меня еще никто не убедил что он будет жить после 21-22-23гг.
>Из-за этого и очково.
Если у тебя есть опыт с ведройдом и иосом, 2+ года (или хотя бы с ведройдом) то можешь и попробовать.
Чтобы ты не говорил, флутчер это очередной UI. Тебе скинуть как иосник обоссывает челика который скинут свою статью на реддите? В одном из пунктов он говорит что в иосе есть 40 реализаций делегирования для UITableView, и как флаттер собрался это реализовать - хуй пойми.
Тут дело в том, что ведройд разрабам это нравится, в иосе же наоборот, это очередная хуйня которая не взлетит. Как флутчер собирается реализовывать MLKit и другие вещи? Просто сырая и тупая поделка. Натив всегда будет жить. Так что я бы советовал тебе как я - изучать ведройд и иос. Но в иосе вещи делаются намного легче.
Кокотлин довольно легкий, если уже знаешь Яву. Буквально за пару недель можно выучить до корутинов и прочего нового что в нем выходило.
>Но в иосе вещи делаются намного легче.
О, а расскажи, как БИЛИНГВ, иос фреймворк такой же конченный как и андроидовский?
да,оно
1.Я вставил TextView внутрь ConstraintLayout, который внутри NestedScrollView. У меня по какой-то причине съедается N пикселей снизу от TextView, то есть скролл не даёт мне доскролить до конца, утыкается в какую-то границу. Причём на разном тексте это разная граница. Мне приходится костылять и вставлять ~8 crlf'ов, из-за чего на некотором тексте слишком много пустоты снизу. Вот моя вьюшка: https://pastebin.com/zkAPgmg3 . Почему съедается кусок снизу и как это исправить?
2.Мой NestedScrollView очень инертный при скролле с RecyclerView. Вот я открываю "Контакты" андроида, ставлю палец на нижнюю часть экрана и резко дёргаю вверх, убирая палец. Список скроллится ещё примерно 2-3 секунды и отскролливается на 50-100 строк. Теперь я открываю ту же вьюшку из первого пункта https://pastebin.com/zkAPgmg3 , открываю страницу, где виден TextView (а не RecyclerView). Резко дёргаю вниз и получаю очень длинный скролл. Теперь перехожу на длинную страницу с RecyclerView, делаю такой же скролл, но он останавливается через 2-3 строки после того как я отпустил палец. Как сделать так, чтобы скролл на NestedScrollView+RecyclerView был таким же лёгковесным (неинертным)?
3.На главной вьюшке наверху стоит Toolbar. Я хочу добавить туда поисковую строку как у всех. Справа иконка с лупой, по нажатию на неё иконка исчезает и появляется окошко для ввода текста внутри этого Toolbar. При нажатии Ok на клавиатуре дёргается какой-то метод. Как это сделать?
Убирай NestedScrollView, для ресайклера он не нужен. Родительским контейнером оставь ConstrainLayout. Или я не понял что ты все-таки хочешь сделать.
Тулбар с поиском можешь поискать на стекэ, там много примеров реализации на первых страницах.
То есть мне Recycler вытащить так, чтобы он был соседом (sibling) для NestedScrollView, а TextView оставить внутри NestedScrollView? Потому что TextView сам по себе скроллиться не умеет
Поиграйся расположением родительских элементов
А че с вебвью не так? Последний раз с ним работал в 2013 и он был глючным. Его что, до сих пор не докрутили? С чем у тебя траблы?
Он такой же самый, все верно.
При поворотах все перезагружает с нуля, про кеш не слышал, видео далеко не всех форматов в состоянии проиграть, развернуть на весь экран то же самое видео из вебвью нельзя. Ну и банальноая тормознутость.
> Весь гитхаб перерыл - альтернатив 0
Crosswalk, но там старая версия хромиума + мозила выкатила свою вебвьюху со своим движком.
>>58918
> При поворотах все перезагружает с нуля, про кеш не слышал, видео далеко не всех форматов в состоянии проиграть, развернуть на весь экран то же самое видео из вебвью нельзя
Пиши сам себе с такими запросами лол. Надеюсь вебвью вообще окончательно сдохнет.
> Ну и банальноая тормознутость
Так блять даже в обычном хроме все работает как говно.
> мозила выкатила свою вебвьюху со своим движком.
Спасибо тебе анончик, удачи и добра тебе. Как-то плохо я гуглил, сам не нашел мозиловский Gecko.
>Надеюсь вебвью вообще окончательно сдохнет.
аналогично
>>59353
>зачем тебе вебвью, чтобы смотреть страницы в браузере придумали браузер
Потому что приложения встречаются и посложнее, чем нажать на кнопку - перейти в браузер. Иногда заказчик хочет, чтобы юзер видел веб-станицу, не покидая приложение. Иногда нужно переопределять нажатие по ссылкам на определенных страницах. А иногда тебе со стороны бекенда приходит html код, который тебе надо на отдельном экране отобразить, причем даже на половину экрана, а внизу описание уже через простое TextView.
>потому что я говноед и быдло, которое продало жопу индусам, которые думают, что в приложение можно встроить их сайтик и еще всякой херни накидать
Любой каприз за ваши деньги.
Всё есть.
Это по-украински так, наверное, по-русски очень часто через "й".
ждем статью на хабре как лучше писать, с бенчмарками
Тебя ёбет за что деньги платят?
Как я понял, Navigation Bar не подходит, ведь он по высоте всего экрана. Или нет?
Делаешь вью, внутри фрейм леяут - а там фрагмент и погнал. Анимацию тоже сам. Ничего сложного нет.
DrawerLayout. высоту не как в туториале, а сам задаешь. Все
moxy решит твои проблемы
Как организовывать навигацию по приложению через компоненты, имеется в виду не просто табы, а как это в более сложном понимании, вот есть у меня активити, в ней главная навигация по типу табов через фрагменты, то есть в активити ничего кроме, контейнера фрагментов и тулбара, но вот когда я хочу с любой табы открыть еще 1 фрагмент, который глубже по навигации, то в первый раз, я запихивал этот фрагмент во все, тот же фрагмент в активити. Вот тут первый момент, что мне не нравился, то что я лез к менеджеру фрагментов через getActivity() я знаю, что есть у фрагментов свой фрагмент менеджер, но тут и проблема, я же как бы пользуюсь контейнером, который в акивити. Вторая проблема возникла, когда я перешел на материал дизайн, и захотел по канону показывать картинку в CollapsingToolbar, как я выше писал Toolbar у меня в активити, и тут либо прокидывать коллбеки в активити, либо по сути рисовать почти весь макет с нуля в каждом фрагменте, единственное, что получается оставить в активити только CoordinatorLayout + еще главная проблема, что картинка-то которую надо отобразить не везде нужна, а CollapsingToolbar везде тащится, тут можно сказать, что все ок, у AppBarLayout есть же setLiftable(), который и решит твои проблемы. Ага, но вот в support бииблотеку этого метода не завезли, это еще больше подталкивает, к тому, что почти каждый фрагмент должен иметь каждый свой макет почти с нуля.
Короче, как сделать правильно верстку + навигацию по экранама\табам\компонентам?
И еще вопрос, как вы передаете данные между презентарами? У меня сейчас вот так, презентеру говорит, что есть клик, презентер уже приказывает открыть, что-то и туда же данные пихаем, но вот сами данные я передаю, через bundle и приходится реализовывать parcelable, что превращает мои модели уже нефига не в pojo. Как вообще принято данные вот передавать, ни важно в активити или фрагмент?
>Как вообще принято данные вот передавать, ни важно в активити или фрагмент?
Принято локально персистить, а передавать в бандле максимум айдишки
Я этом нет научной ценности.
>Положил глаз на Vector Drawable API
Какой к черту вектор и свг. Твоя тема - это рисование на ведройде при помощи вектора. Добро пожаловать в ад! Если ты вообще не знаком с графикой, системой координат, базовыми геометрическими формулами + синусы и косинусы - ты будешь страдать как сука.
Копай в сторону - Canvas и все что с этим связано.
Знаком с графикой, системамой и триганом. Понимаешь мне нужно еще все это дело уметь сохранять и переводить в форматы .esp и .svg. А у Canvas нету DOM структуры и я не представляю как это дерьмо потом получать из тэга Canvas. В SVG и Drawable API можно пропарсить файл и получить тэги <path> и уже с ними проделать необходимые операции перевода. И еще, чтобы отображать Canvas HTML5 необходим же движок как у браузера или что я не так понимать?
Можешь пойти читерским путем. Найти аналогичный велосипед в аппсторе, скачать apk, вытащить сурскод и посмотреть.
Обосру тебе малину и скажу, что Vector Drawable != SVG. Vector Drawable поддерживает очень малюсенькое подмножество SVG и вероятней всего ты соснешь хуйца, если будешь это проворачивать в рантайме, иначе бы уже давно сделали хоть какой то рендерер свгшек через него.
Объясни пожалуйста подробнее, про "сосну хуйца" и как нужно провернуть чтобы не соснуть хуйца?
попробуй мокси
Куда нравится туда и вкатывайся.
Реакт-нейтив есть смысл изучать при условии, что ты уже работаешь в вэбе. Если же вкатываешься с нуля и выбираешь направление, тогда нужно делать более глобальный выбор: мобилки или веб.
Реакт-нейтив есть смысл изучать при условии, что ты уже работаешь в вэбе и трогал нативщину, т.к. без платформенных костылей далеко не уедешь.
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
>>1361955 (OP)
Кто-нибудь имел опыт работы с NDK ?
необходимо в андроид приложении запускать сишный код, куда лучше копать ?
javacpp
Да, работаю на таком проекте. С самим сишным кодом не работал, для этого отдельный человечек есть, но все довольно просто. Могу посоветовать книжку, там буквально 10 минут почитать и уже будет понятие как это работает и настройка рабочей среды в AS.
Вы видите копию треда, сохраненную 1 апреля 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.