Это копия, сохраненная 25 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
>Хочу вкатится в 20/30/50 лет, не поздно?
Нет, не поздно. Лично знаю несколько примеров из жизни когда вкатывались в 30+ лет.
>С чего начать?
Для начала изучи roadmap - https://roadmap.sh/android
Roadmap анона из предыдущего треда:
Основы программирования, логические операции -> Джава(базовый синтаксис и особенности языка) -> ООП -> особенности различных версий Джава -> алгоритмы и структуры данных -> многопоточность -> дженерики -> функции высшего порядка -> Котлин -> Android SDK(UI, версии и различия, особенности оси на уровне работы виртуальной машины) -> работа с БД, CRUD(можно и на этапе знакомства с алгоритмами) -> git -> networking/REST API/JSON/сериализация -> актуальные фреймворки зачем и почему, спойлер: экономия времени -> архитектура, зависимости, инверсия контроля -> ?..
Вот примерный флоу, которому я бы следовал, если бы учился сейчас. Начал бы сразу с алгоритмов, если честно.
В эту же последовательность нужно вставить clean code, SOLID, DRY/DIE, KISS, YAGNI и прочие модные аббревиатуры, которые весьма актуальны. Что-то упустил, но, думаю, этого достаточно.
Навигация, от книг до вопросов на интервью:
https://github.com/qqqlll/Java-Thread/wiki
Очень много уроков и не только по ведройду. Почекай и посмотри, вдруг зайдет:
https://coursehunters.net/mobile-development
https://developer.android.com - ресурс от гугла с полным описанием всего.
https://metanit.com/ - ресурс с кратким разбором языков ПО, для тех кому лень в книги.
https://stackoverflow.com/ - ответы на большинство вопросов касающихся кода.
Курсы от OTUS:
https://cloud.mail.ru/public/4nHb/449Ub4Pqj
https://drive.google.com/open?id=1cxWWBZzHNRAdd0wnjN6lfLDcYqMv7ohm
Также рекомендую искать в телеге, там много подобных курсов, начиная от создания конкретных приложений и заканчивая обучением с нуля.
>Что по книгам?
Java:
Head First Java Kathy Sierra
Thinking Java 4th Bruce Eckel
Шилдта не рекомендую, говнокод.
Kotlin:
https://techrocks.ru/2020/01/20/12-books-for-kotlin-learners/ - краткое ревью 12 книг.
Flutter:
http://flutterapps.ru/flutter-books/
>Стоит ли сразу вкатиться в котлин минуя джаву?
Нет. Не стоит. Есть точка зрения, что котлин позиционируется как "удобная/лучшая джава", подразумевая то, что ты хочешь писать на джаве, но более современно и практично. Да и глупо игнорировать джавоский мир, который является в топе по числу библиотек и решений, где тебе все равно придется погрузиться когда-то в его синтаксис.
>Прочел книгу по java/kotlin/flutter и посмотрел видосы, на деле ничего не понимаю. Куда идти дальше?
Делай свои мелкие пет-проекты, можешь копировать чужие и дополнять функциями которых там нет. Главное правильно пиши сам, гугли, трать часы и дни на мелкие функции НО сделай сам, что бы полноценно понимать что к чему. Вся суть сводится к тому, что бы ты изучив ROADMAP который указан выше, вынес знания, которых хватит на создание и понимание пет-проектов с помощью которых познаешь суть разработки. Также на собесах любят когда есть портфолио в гугл плей.
>Где взять примеры проектов?
Можешь банально поискать на ютюбе или в телеграмме. Для примера:
https://www.youtube.com/channel/UCPz3xmUpIbo8jooCtV_vMNw
https://www.youtube.com/c/devcolibri/videos
>Когда можно идти собес? И что для этого нужно?
1. Нужно хорошее знание Java/kotlin.
2. Понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии (уже androidx), shared preferences, SQLite, Handlers, Executors, Content-Providers, firebase.
3. Знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам) + гугловские поделки jetpack, понимания СОЛИД и других паттернов проектирования.
4. Базовое понимание что вообще такое Gradle. Рекомендую хорошенько изучить XML.
5. И хотя бы несколько готовых приложений.
upd: Также стоит прочекать вакансии в вашем городе и собрать самый часто используемый стек технологий и отталкиваться от него.
Незабывай изучать английский, потому что гуглить придётся именно на нем ибо информации в разы больше.
Ресурсы по инглишу для нубов:
Грамматика:
https://ru.duolingo.com/
https://lingualeo.com/
Сериалы и шоу, для того что бы увидеть полный список нужно купить подписку. Есть двойные субтитры RU/EN. Цена 300 рублей, но часто проходят акции 300 рублей за 2 месяца подписки.
https://ororo.tv/
https://ororo.tv/ref/1835272 - реф ссылка. Указал потому что: Переход по Вашей ссылке дает пользователям бонус +10% ко времени их следующего абонемента.
Также советую полностью сменить язык интерфейса на всех устройствах.
Ютюб каналы с простым английским:
https://www.youtube.com/c/Anomaly/videos
https://www.youtube.com/c/EnglishClass101/videos
https://www.youtube.com/channel/UCMCjGkbqKVkjJN2sVWocz0w
https://www.youtube.com/c/SpeakEnglishWithTiffani/videos
Старая шапка. За 2019 год.
https://pastebin.com/sh7eC6R4
Предидущий: https://2ch.hk/pr/res/1822731.html (М)
Не сказал бы, асинктаски были очень даже популярны (особенно среди нубов). Даже сейчас, например в этом тредике, можно наблюдать вкатунов которые по каким-то устаревшим гайдам тащат себе в код депрекейтед асинктаски.
Я нубас, почитав шапку и чуть прогуглив, не увидел некоторых технологий которые видел в гайдах, давольно старых, старьё не стоит изучать для вкатуна?
Вплане?
Ну на старых проектах можно офк встретить и старье, но учить прежде всего нужно новое и актуальное. Старое спецом учить очень сомнительно, нужно будет - нагуглишь.
Спс за ответ.
Чтоб заработать. А вот зачем в них играют - для меня загадка. Дерьмо же полнейшее, но тем не менее. Лично знаю одного дядьку под 60 лет, который лежит по пол дня на диване и строит ебучие замки в Guns of Glory со своего некро-сяоми. Лучше уж бы танки скачал, как нормальный подпивас....
Я начинал карьеру в апворк-шлюпке (сейчас чекнул, по итогу 20к+ заработано, 1100 часов, 90% джоб саксесс) и как по мне апворк это самое днище мира разработки. Все друг друга хотят наебать, рейты мизерные, код говно, сами проекты впрочем тоже. Если даже работать напрямую самому не отдавая % конторе - как по мне это очень сомнительная затея.
Ей богу, лучше сидеть в офисе, получать свои 3-4 килобакса чем участвовать в этой драке с индусскими бомжами за каждую сотню баксов.
Хочешь работать на себя - лучше тогда самому снять подвал, взять несколько вкатунов посмышленнее, втюхать их как мидлов кому-то, присматривать за ними чтоб код был не полное говно и иметь с этого профит.
100$
Просто ты неосилятор. С индусами конкурировать - себя не уважать. Белый человек может сразу 30$ за час просить
Но ты не нашел
Поч в TextView нету выравнивания текста по ширине?
На стаковерфлоу пишут что только через костыль WebView либо отдельную либу подключать
Там какой то подводный камень есть, или почему гугл это сделать не может? Тогда почему либа смогла такое реализовать а гугл нет?
или всё таки я в глаза ебусь?
>Поч в TextView нету выравнивания текста по ширине?
Есть, android:gravity="center_horizontal"
Это разве выравнивает текст? Он же просто за позиционирование внутри отвечает, а мне надо было чтобы просто текст и слева и справа был выровнен
Всё таки я в глаза ебался, не знал что Justify и означает то что я ищу, сразу бы решение нагуглил
вот решение которое нашел textView.justificationMode = JUSTIFICATION_MODE_INTER_WORD
только оно андройд 8 версии требует, как я понял
Привет, аноны! Скажите по своему опыту, в мобилки же не возьмут вкатыша без высшего образования, будь у меня хоть десяток приложений в портфолио?
И еще, все эти игры в топе гугл плея пишутся не на котлине, а на решетках или плюсах?
Мне осталось 7 месяцев до 21 года. Тогда у всех моих одногодок уже будет образование, а мое резюме с 11 классами образования будет отлетать автоматически в корзину.
Серьезно думаешь, что наличие гуманиторной корочки для программиста так уж лучше, чем отсутствие корочки вообще?
Абсолютно. Отец говорит (у него 20 лет опыта в менеджменте), что любой бакалавр маркер того, что человек не конченный долбаеб.
Мдеееее
Всех с перекатом, ну и с грядущим старым новым годом!
Назрел вопрос, андроидинисты
Хочу, чтобы у меня на заднем фоне картинка динамически менялась.
И у меня это получилось!
https://pastebin.com/nHgNFdXq
Но возникло два вопроса
1) Как избавиться от deprecated, есть ли какой-то "бестпрактис" на этот счет
2) и самое важное: Я проворачиваю такое с картинками, а есть вариант провернуть аналогичное с текстом? Речь про то, что есть поле с текстом, которое будет динамически каждую секунду меняться, текст беру все так же из object
AnimationText нет, ничего подобного нет, инторнет молчит
2) Сделай флоу, который будет с задержкой в секунду выдавать значения из твоего списка, после чего вызывай flow.collect { textView.text = it }
А есть работающий простой (относительно) пример этого flow?
Раньше подобным не занимался
На каком-то сайте нашел, он мне все красным подчеркивает, и ничего не предлагает импортировать
Слова flow и asFlow студия у меня не знает.
планирую в будущем написать несколько приложух и тута вопрос, чем какой-нить котлин\джава будут лучше react native + django\flask\express, в каких случаях используют одно, а в каких другое?
Ладно, давай без флоу.
В build.gradle добавь зависимость для корутин (кстати, именно поэтому у тебя не работал флоу - ведь флоу часть корутин)
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2'
https://pastebin.com/aM1dz0SU
По поводу первого вопроса - в самих доках написано, что использовать вместо deprecated -
This method was deprecated in API level 22.
Use getDrawable(int, android.content.res.Resources.Theme) instead.
У кроссплатформы пизда с отзывчивостью интерфейса
>не возьмут вкатыша без высшего образования
Зависит от тебя и твоих знаний, придется с большим усердием доказывать свою компетентность.
>игры в топе гугл плея
Юнити
>>1908564
>так уж лучше, чем отсутствие корочки вообще
Если у человека есть любое высшее образование, значит есть вероятность, что он либо способен обучаться, либо имеет иные полезные качества, которые позволили ему получить его. Не важно, является оно техническим или гуманитарным, важен сам факт его наличия.
>>1908566
Он прав, это своеобразный фильтр
>не возьмут вкатыша без высшего образования
ни разу нигде не спрашивали про диплом
всем плевать. смотрят на навыки
Просто я когда смотрел про фронтэнд обучалки мне он не зашел. И приятель есть фронтэндер-джун. То что он делает на работе по его рассказам какая-то мудота унылая. Куча танцев вокруг гуя и самая капелька логики.
Сейчас учу джаву. Думаю куда после кора в спринг или в андроид. Мне казалось, что в андроиде логики побольше, но намного ли? Ну в типичных задачах имеется ввиду.
Что iOS, что Android те же танцы вокруг гуя, но интереснее и на более приятных ОО языках. Как по мне то лучше. Сам я перекатился с фронтенда.
Я просто сейчас статью на хабре наискосок про переписывание приложухи втб пролистал и мне показалось, как будто статья про фронт.
Гуглю, везде первой системой упоминается линукс.
Значит ли это, что с линукса удобнее кодить под андроид?
А если собираюсь заниматься портированием прошивок, то что лучше выбрать?
В гайдах по портированию чаще юзают командную строку линукс и вводят линуксовые же команды
Можно ли использовать даггер2 выбрав ActivityScope?
>C#
Да.
>нет альтернатив
UE, GoDot, Cocos3d, LibGDX. Ты спросил об играх в топе. Учитывая то, что Юнити используется чаще, топовых игр на нём больше.
Юнити пустой апк весить 20мб. Хотя в развитом мире это мб и не важно
Это был другой Анон.
Но мне тоже интересно, юнити, имеет большое сообщество, кроссплатформенность и возможность в будущем делать не только говноигры для гугл плея, но и говноигры для стима.
Есть смысл использовать для мелких проектов, что-то еще?
Нужно учитывать, что Юнити-проекту свойственно полностью зависеть от движка, из-за чего он не может быть сегментирован. Написал на Юнити, собрал, выпустил. В тех случаях, когда эта сегментированность необходима и в приложение хочется впилить кусок "игрушечной" интерактивщины, хорошим вариантом, позволяющим абстрагироваться от низкоуровневой реализации, является LibGDX. В этом плане он довольно гибкий.
В средних университетах вообще же нихуя не надо делать, чтобы не вылететь
У меня не лагает
Вот был у меня телефон с 512мб озу, тогда лагало, поменял на 4гб - ничего не лагает. Классическое решение проблем с явой - просто поддай озу! А если серьезно, то что бы ты предложил использовать?
Желание как можно быстрее забить стор миллиардом приложении
> А если серьезно, то что бы ты предложил использовать?
А в чем проблема использовать обычные скомпилированные приложения?
~Год назад перевели с фронтенда на андроид.
За это время был на поддержке нескольких проектов, еще несколько сделал с нуля.
В целом научился делать приложения так, как у нас их делают в компании(java, moxy, без rx'a). Еще понял, что похоже на андроиде есть миллион способов сделать что-то, и никто не знает как сделать лучше, поэтому каждый костылит как может(например навигация).
В общем реквестирую эталонных по вашему мнению более-менее современных проекты на гитхабе, с разными подходами к разработке.
>>1908863
Нативная против react-native(django\flask\express - это бекэнд, к мобилке не относится).
Выбирай rn, если:
- ты уже знаешь js и react
- тебе не важен размер приложения и скорость его запуска
- тебе нужна кроссплатформа
- тебе не нравится нативная разработка, но ты хочешь сделать приложение
В остальных случаях натив
>как у нас их делают в компании
>java
плохо
>moxy
плохо
>без rx'a
джава без rxa? Ребят, вы из 2015 капчуете?
С таким стеком в 2021 году вам в айти нечего делать имхо. Изучай и посоветуй всем своим мввм, котлин, корутины, livedata. То, что ты перечислил для нынешнего времени - это катастрофа.
> java
> плохо
На котлин уже переходим со следующего проекта
> >moxy
> плохо
Почему? Чем mvvm лучше mvp?
> rx
Я rx еще на фронте не понимал, хотя там с асинхронщиной проще. Но все-таки зачем он? Мы просто коллбэки в моделе используем...
>Почему? Чем mvvm лучше mvp?
тем, что recomended by google. А также тем, что позволяем легко обрабатывать ситуации с поворотами экранов и переходом по фрагментам, когда вьюшка предыдущего убивается, но ты можешь на него вернуться. Да и просто мвп уже сам по себе морально устарел.
>Я rx еще на фронте не понимал, хотя там с асинхронщиной проще. Но все-таки зачем он? Мы просто коллбэки в моделе используем...
Многопоточность, паттерн обсервер, который ты можешь заюзать в куче мест. А колбек-парадигма как бы тоже устаревает. Обсерверы ты можешь красиво вязать между собой, а с колбеками, когда у тебя множество независимых операций, в коде становится нечитабельный ад.
> коде становится нечитабельный ад.
У нас обычно становится менее читаемым из-за MPV, на по сути одну операцию может быть несколько отображений, несколько отображений ошибок и несколько оторажения загрузок, из-за этого в презентере становится много кода и его тяжело переиспользовать.
Понял, посмотрю. Спасибо
А чем паттерн обсервер отличается от колл бэков? И там и там участок кода выполняется после триггер же
разница в семантике, даже если реализация похожа. Всегда разница в семантике.
семантика калбэка - быть вызванным в конце операции или многократно в ее процессе с целью сделать что-то дополнительное.
семантика обсервера - вызываться на событиях, вызывающий код не ждет никакого результата от калбэка, а также обсервер может быть в любой момент отписан и переподписан и код об этом знает.
>Почему? Чем mvvm лучше mvp?
Как паттерн - отвязка от гуи. вьюмодель меняет только свое состояние и в ус не дует, что там где чего рисуется. Ну а биндинги довершают дело, позволяя декларативно соединить вид с вьюмоделью.
спасибо, не понял по поводу
> django\flask\express - это бекэнд, к мобилке не относится
я за архитектуру приложений мобильных не шарю, но чо ваще реакт может без бекенда? А если надо чо-то из бдшки прочитать, или я хочу встроить какую-нить мл модельку, реакт это может? Жс понятно может, но с бекендом как-то логичнее все, не?
> реакт может без бекенда
В теории все то же, что и нативное приложение
> А если надо чо-то из бдшки прочитать
Также как и для натива, есть локальные бд: realm, watermelondb, sqlite и т.д.
> я хочу встроить какую-нить мл модельку
Тут не скажу, но раз говоришь жс сможет, значит и на рн получится
> но с бекендом как-то логичнее все
Нужен бекенд или нет зависит не от технологии на фронтенде, а от бизнесовой задачи.
Например, два анона решили сделать приложение с тудушками:
Один хранит тудушки локально, сохраняет в sqlite, ему понятно бекенд не нужен
Второй захотел чтобы тудушки синхронизировались между устройствами, значит для двух условных устройств нужен один источник данных, локальная бд уже не подойдет, поэтому анон пишет сервак, создает в бд пользователей и тудушки, делает между ними связь, пишет апи для клиента
спасибо ра разъяснение, крч как я понял если приложение не веб типа блога бекенд не нужон
В приложении несколько источников данных внутри foreground service, нужно сделать переключение между источниками. Далее эти данные отображаются в UI.
Планирую создать repository с application scope, внутри которого буду подключать к MediatorLiveData тот источник данных, который мне нужно использовать в данный момент, а к MediatorLiveData уже подписываться внутри ViewModel тех фрагментов, где эти данные нужно отобразить.
Нормально ли решение?
Мсье открыл для себя рекурсию? Сия функция углубляется внутрь себя до тех пор, пока не дойдет до конца массива, после чего возвращается максимальное целое число. Потом рекурсия начинает раскручиваться - на каждой "раскрутке" сравнивается текущее значение массива и результат рекурсии - и возвращается на предыдущий уровень меньшее значение.
По красоте слой данных (репозиторий) не должен содержать платформо-зависимого кода (андроидовской лайвдаты, например). Лучше используй корутиновский флоу и посылай в него то, что тебе надо, а обрабатывай для гуя этот флоу уже лайвдатой
Вопрос не об этом.
Разнести логику, стейт и представление. Сохранять состояние и данные при пересоздании ui компонентов.
Обычно внутри viewmodel находится логика преобразования данных для представления. Хотя бы по этой причине стоит использовать viewmodel.
Я, зарабатываю 300к\сек, довольно просто
По-хорошему эту логику в маперы выносят
Сколько примерно это изучается?
>Roadmap анона из предыдущего треда:
>Основы программирования, логические операции -> Джава(базовый синтаксис и особенности языка) -> ООП -> особенности различных версий Джава -> алгоритмы и структуры данных -> многопоточность -> дженерики -> функции высшего порядка -> Котлин -> Android SDK(UI, версии и различия, особенности оси на уровне работы виртуальной машины) -> работа с БД, CRUD(можно и на этапе знакомства с алгоритмами) -> git -> networking/REST API/JSON/сериализация -> актуальные фреймворки зачем и почему, спойлер: экономия времени -> архитектура, зависимости, инверсия контроля -> ?..
>Вот примерный флоу, которому я бы следовал, если бы учился сейчас
Сейчас начал изучать Java. Я понимаю что всё зависит от меня, но всё же школьник 10 класс
.Охуенные у тебя вопросы. Ну если ты мотивирован, а не ленивое хуйло, то за 2-3 года все это на среднем уровне изучишь.
Однако это при условии, что через год уже пойдешь РАБотать.И еще через год сменишь свой бодишоп на другую контору
https://www.reddit.com/r/androiddev/comments/fhjw79/someone_stole_my_app_and_modified_the_code_a/
Литерали первый пост
Не удобно
Манипулировать несколькими такими приложениями как минимум
Ну и они быстрее и отзывчивее
Так же есть полезные штуки как сервисы и тд
И в целом намного легче работать с файловой системой
ChatActivity телеги. просто вопрос: что это вообще за хуйня, где паттерны, где solid, где рекомендации гугла, где все нахуй? это что такое за месиво вообще?
ах да, забыл добавить, это даже не активити. это фрагмент блять
Проснись маня, для бизнеса важно чтобы:
@ работало
@ как можно скорее запиливалось и приносило бабки.
Конечно, если у тебя в разработчиках гений, готовый ебашить сутками и всегда разобраться в собственном говне
>Конечно, если у тебя в разработчиках олимпиадники
Пофиксил. Эти ребята где-то там даже свой xml изобрели лол
https://github.com/augustgl/tiktok_source
В конце января у них будет тестовое задание на аутсорс на анимации по Андройду.
судя по всему, им понравится мой код лол
> Джава(базовый синтаксис и особенности языка)
> особенности различных версий Джава
Нахуя, если потом пересадка на Котлин?
Ты же не думаешь, что на работе тебе дадут с нуля писать прогу на котлине? Дохуя легаси кода осталось на жабе и его нужно поддерживать.
Есть repository, который предоставляет доступ к LiveData<UPNPState>, далее внутри ViewModel через map трансформируем в LiveData<ViewState>, но в процессе трансформации используются настройки из SharedPreferences, и нужно чтобы map вызывался не только при изменении UPNPState, а еще и при изменении SharedPreferences.
Как это правильно сделать?
Есть один ключ. Его надо где-то хранить, чтобы не спиздили. По крайней мере максимально заморочились, чтобы спиздить. Есть 2 варианта:
1. В приложении в стриговых ресурсах с обфускацией.
2. В наружи в фаербейсе.
Где лучше и почему? Есть ли варианты получше?
Почему не будет вскрыт? Поясни? 1 раз слышу, что в градле что-то можно хранить, но уже вижу по гуглу, что там пытаются хранить api ключи.
Зашей в ресурсы неприметную картинку в которой по фиксированному смещению будет зашифрованы номера пикселей, в которых зашифрован ключ.
Возьму, декомпильну, забью название файла и посмотрю что происходит. По опыту, сложнее всего декомпилять so шки нативные. Ну или мне просто лень было разбираться
Вот туда зашей запороленный архив в const массив с PNG следующего содержания.
Мне нужно взять фото (снять или выбрать из галереи), отправить его в редактор, где можно было бы применить фильтры, обрезать. Не обязательно дохуя фильтров, но чтобы были базовые.
Я не могу найти такую библиотеку - везде предлагают только API чтобы программно примеить фильтр и прочее, и нигде нет уже готового UI редактора.
Самое нормальное что я нашел - https://github.com/burhanrashid52/PhotoEditor
И там есть скриншоты UI, хотя по факту это видимо лишь пример какой UI возможен. (или я нихуя не понял)
Еще забыл - оч годно выглядит вот это: https://photoeditorsdk.com/mobile-sdk
Но оно, сцуко, платное, а у меня нон-профит прожект по сути, не оче хочется ПЛОТИТЬ. Хотя если ничего не найду подобного то придется.
>Также декомпилится и вскрывается.
Впервые слышу, похоже на пиздешь. Возьми с маркета любую апкшку и вытащи из нее гредл файл. Как уже заметил анон выше, нормальная практика хранить с нем ключи и пароли для подписи апк файлов, а также всякие переменные с эндпоинтами и апикеями, их ты никаким образом не вытащишь.
И че эти ключи потом в приложении не оказываются если там используются? С подписями и т.п. понятно, но тут же надо спрятать ключ, который в самом приложении используется
Ой бля, так ты тоже нуб
>, их ты никаким образом не вытащишь.
Пиздец, ну и довены тут сидят, надеюсь вы все ждуны?
Хотя это же заебись, мне легче при необходимости в чужих апк ковыряться
>часто ли применяется
Не часто, в 90% случаев хватает жавы/котлина
>геймдева
Вот тут используется обычно юнити/анреал
Стоит переключить вкладку, как начинается загрузка всего говна по новой. Все постоянно прыгает куда-то, обновляется у меня на глазах. Угаманись, сука! Чё ты там грузишь и обновляешь постоянно? Ты мог все скачать за 1 секунду загрузки при запуске.
Ну и опять в чате вместо пишет мне null%
Спасибо хоть не крашнулось.
Это типа сейчас норм так делать? У Сбера такое же говно. Как будто одна контора делала.
А вот у Рокетбанка мне нравится. Только они закрываются.
Ты думаешь, что в здесь сидят разрабы того приложения, что ты постишь все это?
Ну надо же было где-то это запостить.
Возможно платина. Насколько реально свитчнуться с бэкенд котлина на андроид разработчика без потери в доходе?
Хотел пилить собственные апки, рынок только развивался. А раскрутить свой сайт хз как, да и идей не было, да и не люблю я веб
Еще раз - берешь и показываешь тут при всех, как ты достаешь гредл файл со всем содержимым из маркетовской апкшки. Иначе - петух обоссаный, не умеющий отвечать за слова.
> гредл файл со всем содержимым из маркетовской апкшки. отвечать за слова.
И еще покажи, где такое было?
>нормальная практика хранить с нем ключи и пароли для подписи апк файлов, а также всякие переменные с эндпоинтами и апикеями, их ты никаким образом не вытащишь.
Я вообще не понимаю вот эту логику. Т.е.
> переменные с эндпоинтами и апикеями,
используются в приложении, но раз они лежат в грэдл файле, ты их не вытащишь, ха-ха. Пиздос, надеюсь ты не пишешь какое-нибудь банковское приложение, которое миллионы хомячков юзают, потому что пару раз я уже охуевал какие нубы приходят на собесы из всяких банков
Ясно. В следующий раз как будешь пытаться с кем-то спорить - учитывай вариант, что у оппонента могут быть аргументы, а у тебя нет. Просто совет.
>>1921105
Что было?
Я написал, что нормальная практика - это в гредл файл закладывать различные переменные типа ключей или эндпоинтов, потому что к ним не будет доступа при декомпиляции. После чего налетела зелень и стала визжать, что это не так, видимо вспомнила, как на ютубе видела видосик, что из апкшки кто-то доставал онлайн-декомпайлером файлы классов и даже читал их, только зелень не учла момент, что классы всяких активити достаются, а градл файл нет.
UPDATE: Мне тут в чате сказали, что проще это всё написать с нуля, чем реверсить, поэтому, если есть желающие этим заняться - то можем обсудить всё подробно в тг @stopdianon
Ну смотри, сначала читаешь про retrofit, про интернет запросы в целом
Потом смотришь про sql и room, а также про базы данных в целом
Затем глядишь на git это система управлениями версиями
https://pastebin.com/VzG1USzt
То есть через bundle организовать нельзя? Потому что не переживет пересоздание. На один цикл поворота его хватает, а дальше если не нажимать кнопку будет null
Можно, но костыльно и много мороки. А вьюмоделька спокойно себе живет при поворотах и держит в себе все, что надо
Благодарствую, понял.
Все, теперь увидел, а то в глаза ебусь, надо перерыв сделать уже.
А что такое импорт, это прикол котлина я так понял?
согласен, косяк
для некоторых классов из других пакетов, требуется иморты, чтобы не писать полный путь к нему
(для всех кроме java.lang)
понял,принял
У него внутри кеширование твоих картинок.
Мне очень нравится PagedList и как он решает проблемы пагинации в купе с Android Room в качестве источника данных, но сейчас мне надо группировать данные и это какой-то отсос!
Получается мне надо RecyclerView в RecyclerView?
И все равно я не понимаю как мне из PagedList<Apple> сделать PagedList<ApplesGroup>. У PagedList есть только map и mapByPage, я уже люто заебался придумывать решение к этой задаче.
Есть вариант конечно не делать вложенный RecyclerView, а попробовать сделать флаг в модели, говорящий что это Separator, и во onCreateViewHolder сделать ветвление.
Как вы такое делаете? Пример приложения - галерея с группированными фотографиями.
Ресайклер должен быть один. В адаптор передаешь список моделек, которые олицетворяют собой viewType. Дальше адаптор уже создает viewHolder.
Адаптор может принимать на вход список элементов Any, либо используй sealed класс, если пишешь на котлин. Главное держи в голове, что логики в адапторе и вьюхе быть не должно. Это просто инструмент, который превращает твои бизнес объекты в визуальное представление.
Итак, получаешь данные из pagedList, мапишь их в модель, которая используется на уровне вьюхи, адаптор делает всю работу за тебя.
Для улучшения работы со списками можешь добавить DiffUtils, и тогда при изменении данных в списке у тебя он будет обновляться красиво.
Сейчас на моей рабочей машине забито 13 гигов ОЗУ.
4 гига не хватало уже лет пять назад
Анон, спасибо, я так понимаю ты говоришь о варианте, где моделька может быть Header/Footer/Item.
Но тут куча нюансов - во-первых мне надо наверное переходить на android:paging v3-alpha, где они добавили возможность вставлять сепараторы и всякую шляпу. Во-вторых если оставаться на v2 то мне надо как-то менять sql query чтобы он группировал и вставлял какие-то специальные строки где окончание одной группы и начало другой, это какая-то анальная боль.
И самое главное - что если я хочу чтобы "группа" могла быть горизонтальной со скроллом и ленивой подгрузкой, а родительский лист - вертикальным. Я так понимаю что это возможно только с nested recyclerview, не могу придумать как можно обойтись одним ресайклером.
мне 8 не хватает, если шо
Если так все сложно с paging библиотекой, может тебе стоит рассмотреть другие варианты реализации пагинации?
Поищи другие решения, которые окажутся более простыми для понимания. Например, был неплохой пример в gitfox приложении с Paginator. Его можно скопипастить и если что, переисать под свои хотелки.
C++, наверное (Unreal Engine)
Язык это инструмент. Выучишь шарп – джаву понять как два пальца обоссать, если тебе уж так нужно пилить игоры. Хотя задумайся, надо ли оно тебе, может стоит просто в разработку приложух пойти и начать с джавы
тут типо конкретно по ведру. у тебя вопрос общей направленности, наверное будет лучше в ньюфаг-тред, хотя тут не уверен.
Какие-то советы дать без уточнения лично я не могу, надо хотя бы понимать, чем ты сейчас занимаешься и что уже изучил
Just do it
сам вкатываюсь. хз конечно мб я тоже лох, но просто делай, когда хочешь. не хочешь не делай. я вот продолжаю таким образом полгода, хотя понимаю, что все, что выучил можно было в 2 раза быстрее выучить, но как есть так есть. зато не тошнит и вроде по кайфу. эти сказки про железную дисциплину я лично в рот ебал. было бы интересно ты бы сидел и делал что то, а если не интересно, то нахуй и не надо
Не уверен, что это юридически реализуемо. Как ты договор составишь? К тому же для ментора риски высоки ибо большинство вкатывальщиков - ленивые долбоебы
Просто по сабжу нигде не нашел отрицательного более менее внятного отзыва, кроме как на пикабу, но там левый пассажир с датой регистрации в тот же день как задавали аналогичный вопрос, так вот он вроде как положительно отзывался, но я чёт хз. И нигде никакой инфы более менее правдоподобной не видел. Щас набор стартует в марте, уже какой то там по счету, где блядь все законшившие эту чудо стажировку? попахивает имхо..
Гугли в сообществах в Впараше.
По сабжу ничего сказать не могу, просто по кд реклама этого говна в ленту лезет
https://javalearn.online/?utm_source=ads_JL_MSK&utm_medium=msk&utm_campaign=google&roistat=google4_g_79026629995_397090911336_+java +mentor&roistat_referrer=&roistat_pos=&utm_source=ads_JL_MSK&utm_medium=msk&utm_campaign=google&gclid=CjwKCAiApNSABhAlEiwANuR9YNUudBg_4kecLh-Ecnxhy1Da-IodZ6Ndu8WoHW-x39-NtinAAnkPTRoCDaIQAvD_BwE
>Ты должен проживать в Москве или быть готов к переезду после окончания нашей программы менторинга, так как по условиям нашего договора ты будешь трудоустраиваться на работу в Москве.
>Подписал договор
>Возможности переехать в соскву не предоставили
>А ну саси кароч, но деньги ты все равно заплати, если не выполнил)0))000
А, ну тогда удачи.
Импортировал проект из гитхаба в андроид студию, но не могу его запустить. Кнопка Run не активна. И почему в поле Add configuration не появляется приложение?
у тебя нет виртуального/физического устройства на котором подключать. Либо подключи свой ведроид через usb и разреши usb-дебаггинг, либо настраивай AVD
на котором запускать*
Странно, но устройства то есть.
Все приложения, что я создаю сам, запускаются и на телефоне через usb, и с помощью эмулятора.
А проекты, которые импортирую с гитхаба, не видят устройства что ли?
плашечка Loading Devices недоступна, обычно это означает именно это. полный скрин ide, пожалуйста. и как импортировал, через vcs в студии?
А еще винду активируй, ну это так, потом когда нибудь
У тебя вот странная херня, Add Configuration висит в конфигурации, попробуй с этим что-то пошаманить
https://developer.android.com/studio/run/rundebugconfig
Если не сможешь, покажи что у тебя в Run и Build
Тебя еще из-за возраста могут не взять - много вкатышей с гумнонитарным образованием 25+, нахуй никому не нужны со своими петпроектами, потрфолио и прочей фигней.
Такое чувство, что студия почему-то не видит проект, чтоб его запустить
Открой проект из вложенной папки Homework, которая AndroidStudioProjects/Homework/Homework
здаров почанны
есть опыт разработки на c++ и питон(лабы.курсач.диплом .самостоятельное изучение)
после шараги отслужил в армии и возвращаюсь в програмирование
заинтересовал Cardboard
потенциал бешенный от планировщиков зданий и скульптинга обьектов до виртуальных 3d лолей для хиканов
вопрос такой у меня есть устройство для тестов можно сделать так чтобы проект переносился на устройство находящейся в режиме роутера?
и справится ли мой HP PAVILION g6-1254er(без эмулятора девайса)
со всем этим ?
и еще вопрос блендер 3d есть реализация на андройд
Анон, из фак-треда послали к вам сюда. На связи QA макака на энтерпрайзе, типичная VMSка которую педалят с 00х еще. Хочу вкатываться в джаву, так как у нас есть автоматизаторы на джаве и можно их заебывать вопросами. Но вот самому стать автоматизатором не особо возбуждает перспектива. Оно конечно прикольно, но хочется что-то создавать аки художник. Потому рассматриваю мобильную разработку как конечную цель.
Чего ждать от мобайла, насколько конкретно тебе, анон, интересно педалить апликухи и стоит ли шароебится пару лет в автоматизации перед мобайлом, чтоб набить опыта? Какие личные проекты можно реализовать в свободное время?
В энтерпрайз и банки не хочу, это пиздец.
На стаковерфлоу увидел вот такой вариант, но не будет ли там каких-нибудь утечек, если между async и await вылетит эксепшн как в этом коде?
Андроид девелопервы востребованы в мире? Легко будет перекатиться в другую страну?
Суть вот в чем: ты делаешь игрульку либо приложение, вешаешь туда admobsdk. Покупатель покупает у тебя его, рескинит, меняет название билда, вставляет туда свои id'шники от admoba и делают что хотят. Либо дополняют твою игру теневой логикой: открывают webview с казино и подобное. Так вот, твое приложение могут купить там дохуллион раз, твое участие не нужно.
Есть и такая хуйня. Поэтому и спрашиваю у анонов
Вкатывальщик на связи.
Гайс, поясните плиз за архитектуру андроид-приложений. Насколько нужно хорошо знать её для джуна? Я например знаю в теории что есть mvc mvp mvvm, но когда пытался найти инфу, например, более подробную по mvvm, то нашёл только статьи про каждый элемент архитектуры, полуторачасовое видео по созданию приложения по данному паттерну, но никакой четкой информации как организовывать файлы я не нахожу. Например ищу по работе с Room, челик объясняет, что нужно делать запросы к БД со внешних потоков, но сам делает с main тк наверно запариваться не хочется, а я в итоге не понимаю как делать то со внешних потоков. Короче в чем вопрос то.. Посоветуйте как разобраться с этими паттернами, где искать инфу. Единственное, что в голову лезит так это копировать с проектов с ГитХаба, но едва ли мне даст понимание данный способ
Только собирался подобное спросить. Нашел краткую статью на хабре, но удовлетворения как-то не получил, хочу подробнее.
https://habr.com/ru/post/344184/
Анончики, подскажите, какие материалы вы изучали и вы их прям порекомендовать можете?
Сразу оговорюсь, что библиотеки, указанные далее, котлиновские
Тем, кто хочет нормальный пет-проект в портфолио советую попробовать сделать своё приложение по мониторингу криптовалюты, вот ссылка на API:
https://docs.coincap.io/#ee30bea9-bb6b-469d-958a-d3e35d442d7a
Гуглите как правильно парсить JSON в объекты, юзать Retrofit (2) для запросов, RecyclerView для списка, и, например, подробную информацию по клику на крипту (график изменения стоимости, дефолтных встроенных графиков в андроиде нет, поэтому нужно будет украсть на гитхабе и присрать к себе), передавать данные на второй экран можно 3 способами:
1) Intent
2) Shared preferences
3) В параметрах связи между фрагментами (для продвинутых так сказать, намного сложнее чем предыдущие два, но пользоваться и выстраивать схему фрагментов всё равно рано или поздно нужно будет)
4) Обычный Singleton-файл, к которому можно будет обратиться с любой точки (не советую. Синглтон обычно используется для сохранения настроек пользователя, юзающего приложение)
После этого, уже можно повыёбываться и оформить в виде MVVM с обсервером (очень удобно на самом деле)
И в заключение, на андроид очень просто придумать какие-то пет-проекты и реализовывать в отличии от обычного жаба-интерпрайза в котором можно утонуть и не всплыть
Могу ответить на вопросы в телеге: @purifyMan
Насчёт паттернов, пока сам не сделаешь, не поймёшь как это работает, потому что в разных ресурсах каждый реализует их как хочет (ну или как этого хочет проект), поэтому тупо прочитав теорию будет тяжело понять (но советую обращать больше внимания на MVVM, т.к. чаще всего юзается).
Насчёт Room, он по-дефолту работает асинхронно и ничего с этим делать не нужно
В андроиде нет понятия main-потока, есть только один поток - UI-поток (грубо говоря поток для интерфейса пользователя, который ты видишь своими глазами, и который зависает, если делаешь какие-то тяжелые операции)
копировать с проектов это вообще дефолт, юзай, но разберись
Ору, какого ты опыта в автоматизации наберешься, который будешь юзать в андроиде? Запускать написанные тесты?
Про личный проект написал чуть выше, смотри
Но я так понимаю этот подход сейчас запрещен и надо создавать свою директорию в /data/data/myapp.com/.. и вызывать api андроида чтобы добавить эту директорию в "сканер" галереи?
Но если это так - какого хуя вацап все также держит в руте диреторию? Как и куча других аппликух
Молодой человек, это не для вас написано.
Желательно не такие, где простые тудулисты наотъебись пишут
Скачай студию и попробуй
Всем привет
В данном примере создание круговой диаграммы
https://stackoverflow.com/questions/60169560/mpandroid-piechart-in-kotlin
Интересует строка
listPie.add(PieEntry(20F, "Pass"))
Все работает
Но если вместо 20F вставить мое значение, то все ломается
Подскажите, как конвертировать, ну или как сделать, чтобы брало значение из переменной?
еще разберись в этой круговой диаграмме
число 20- процентное соотношение, т.е. ты больше 100 засунуть не сможешь, сломается
Если жахнуть
pieChart.setUsePercentValues(false)
То можно вписывать любые значения, не только сотку
И графики рисует. Одно я не понял: на графике он и пишет этот самый float
Ну типо 1.00
Как заставить его писать просто 1 - ??
Ну это уже точно завтра.
Ну и снизу появляется "легенда графика" - хотел спросить, как её отключить, но я уже не такой уж неофит, немного гуглом пользоваться умею.
Можно ли вкатиться в разработку под Android, если меня воротит от комбайнов типа Android Studio и всяких SDK/NDK/JDK по несколько гигов? Какие технологии есть?
Когда кликаю на любое, то фокус становится всегда на первое поле, в конец. Уже вилкой всё вычистил и с нуля, заново сделал. Та же фигня.
В чём может быть проблема?
При этом, если вне листвью выбрать поле для ввода с таким же типом(целочисленное), то потом фокус переключается правильно... пока не выберу поле для ввода с другим типом(текст).
RecyclerView это конечно прикольно, но всё же там нужно больше кода, а я только вкатываюсь. Может быть, конечно, что listview уже не поддерживают по человечески.
В адаптере закомментировал слушатели - оставлял только вьюхолдер, но там только присвоения значений при создании вьюх.
Ну бля я уже не помню точно как делал, но там надо на русском кажется заполнить поля регистрации
RecyclerView - это насущное знание для вкатывальщика, так что допиливай, что пилишь, а потом делай еще раз, но уже на recyclerview
забудь про listview
ты перед тем как говорить, что для recycler больше кода, посмотрел хотя бы? (ответ: нет)
https://opensource.googleblog.com/2021/02/google-joins-rust-foundation.html
А если обосрался, то все? Минус 25$?
В ViewModel валяется LiveData<mutableList<T>>, в вьюмодели соответственно я его и изменяю добавляя элементы в него
Во фрагменте повесил на эту лайвдату обсервер, в обсервере использую submitList.
Так вот, проблема в том, что рецайкл вью показывает коректно список только если я в сабмитлисте юзаю toMutableList. Причем даже если в лайвдате я использую мут лист, все равно без перевода в мут лист в обсервере нихуя не работает
Конечно прекрасно что это работает, но какого хуя надо приводить колекцию к мут листу
прошу прощение за говнокод, только учусь
Создаю Intent таким кодом:
val intent = Intent()
intent.action = Intent.ACTION_VIEW
intent.setDataAndType(Uri.parse(imageModel.imageFilePath), "image/*")
startActivity(intent)
Открывается Chooser, это ок, потом если вы выбираю Google Photo то все ок, открывается именно то, что я послал в Uri.
Но если выбрать стандартную галерею СЯВОМИ, то через раз открывается не пикча по Uri, а просто последняя пикча, снятая на фотик.
Что за хуйня блядь? Неужели ЕБАНА РОТ нужно зашивать в приложение еще и встроенную галерею блядь?
Ебаный рот этого андроид мира.
> _pokemonList.value = pokemonsMutableList
Каждый раз когда ты сабмитишь список в лайвдату он должен быть новым инстансом.
А создаешь новый список ты как раз вызовом toMutableList, только на стороне UI, поэтому это и работает.
Спасибо большое, теперь понял
Да, там путь вида: content://media/external/images/media/1099
При чем ситуация происходит рандомно, для некоторых фоток все открывается как я ожидаю, согласно Uri, а для некоторых - стабильно последняя фотография в галерее, и неважно какой Uri был передан.
А этот uri ты откуда берешь? С какими флагами?
Может он просто протухает и галерея хуй кладет и открывает дефолтный экран.
У некоторых фоток вообще никакого общего паттерна (папка одна или приложение выдавшее их одно)?
Двач, я видимо тупой и программирование не для меня, у меня слишком низкий iq.
Я просто не понимаю и не усваиваю информацию, пиздец.
эт почему? с чем проблемы?
Я при первом запуске приложения сканирую медиа при помощи ContentResolver'а, получаю все фотографии и потом сразу тестирую например эту штуку.
Флагов никаких не использую, лишь запрашиваю разрешение на доступ к External storage.
А Uri там все вида:
content://media/external/images/media/1099
content://media/external/images/media/1098
итд, и при чем, 1098 - открывается, 1099 - нет.
Все это отлично работает если в качестве просмотрщика выбрать Google Photo, а не дефолтную сявоми галерею.
Хочется конечно думать что я молодец, а сявоми накосячили, но скорее всего это я где-то лоханулся.
>>1941742
Ты хорошего мнения о хлаоми разрабах
Везде где искал - продают просто вектор/растр во всяких уебанских фотошоп-форматах, но не готовые xml-ки и примеры layout'ов.
Ничего пока не нагуглил, может покупал кто?
Или я дохуя хочу и нужно покупать графический вариант и самому переносить в зумель? Говно какое-то.
А еще лучше, где их можно бесплатно скачать
update:
Сам я нашел из более менее адекватного тока https://codecanyon.net/category/mobile/android/templates
Но чето выглядит все как говно
List<Foo> foo = new ArrayList<>();
foo.add(new Foo());
потом
Foo[] bar = (Foo[]) foo.toArray();
и получаешь в харю
java.lang.ClassCastException: java.lang.Object[] cannot be cast to com.foo.bar.Foo[]
потом делаешь
Foo[] bar = foo.toArray(new Foo[foo.size()]);
блядь как же удобно ёб вашу мать
Показать ущербность жабы
>List<Foo> foo = new ArrayList<>();
>foo.add(new Foo());
Что ты тут высрал? Нахуя это все?
В Java дженерики проходят Type erasure. Ты обманул компилятор, выполнив даункаст Object[] -> Foo[], но обосрался в рантайме.
Как надо?
Что по поводу IDE? Я могу писать свой говнокод для андройда на эклипсе? Если да, то что для этого нужно установить?
Официально – не можешь, но развлекаться написанием собственных плагинов к любым иде можешь как душе угодно.
Сажу случайно прилепил.
бамп
Славик привет, как жизнь?
Кайфец, спасибо
Как сделать, чтобы размер массивов не повторялся?+ Как сделать это красиво? То есть как убрать repeat и for, можно ли их перенести в инициализации и присвоение одновременно или как-то еще?
https://pastebin.com/iuhVvsYS
Эх, так и знал, что set надо использовать( Да, конечно, мой код говно, как научиться также писать?
Мой код тоже говно, я забыл добавить проброс исключения, если диапазон значений меньше количества требуемого количества списков - ведь в противном случае цикл получится бесконечным.
2. приложение требует авторизации (при установке из апк). У меня уже установлено/авторизовано, запускается сразу приложение без окна авторизации. Можно ли его как-то "сдампить" обратно в апк, чтобы при установке было уже авторизировано моими данными?
спасибо!
п.с. имеется опыт лечения софта под винду (особенно неупакованного:), ида, хех-эдитор, редактор ресурсов - это всё знакомые слова. С андройдом не сталкивался. Какой путь проще/лучше: через ApkTool на винде дистрибутив ковырять, на самом смартфоне прогами или через юзб отлаживать? Надо убрать одно всплывающее окно. И, опционально, сделать запуск без регистрации - чтобы делиться прогой.
Набор BatchApkTool (точнее софтина оттуда, то ли jadx, то ли еще что) умеет в проект gradle из декомпилированного кода. Соответственно, уже можно в Android Studio собрать, убрав все "артефакты" декомпиляции (вроде неположенных символов)
Допустим, у меня есть контакты "предпринимателей"-кабанчиков, которые поставили это на поток. Можно как-то извлечь профиты и выйти на тех, кого они регулярно кидают в массовых масштабах и имеют с этого миллионы? Как лучше обставить деанон, чтобы это не было единичным голосом в пустоту, как лучше найти пострадавших?
В плей маркете тоже много мошенников как в апп сторе? А можно пример приложения?
>А можно пример приложения?
Как делать нехуй
Набираешь в плеймаркете: "вулкан слоты удачи", "казино вулкан", "казино ХУЯНЕЙМ", "бинарные опционы", "реальный трейдинг" или еще что-то такое
Куча приложений, которые на самом деле представляют из себя 2-в-1:
- "обманка", которую показывают модераторам и другим лохам (тебе/мне) в зависимости от условий (модель телефона: у модеров поголовно Пиксели; язык устройства, фаза луны)
- "вебвью", которое стремятся сделать максимально бесшовным и которое всеми силами стараются не показать модераторам. В "вебвью" загружаются "казино", "скидки на АлиЭкспресс", "трейдинг криптовалют", "бинарные опционы" и прочий скам: "введи номер кредитки и начни зарабатывать миллионы с ООО Кабанчик и Не-Лох-Лимитед"
Понятно, это другое. В апп сторе скам представлен мусорными приложениями с накруткой рейтинга и ебанутыми подписками, на которые непонятно как до сих пор попадаются - бабло прямо через эпл выводят
Пчел, всем похуй. 30% своих забрали, дальше поебать вообще. Можешь попробовать пообщаться с гугловыми нейронками в саппорте.
спасибо! Покурю мануалы и буду пробовать. Весь софт у меня имеется.
Я хочу сохранять пути к медиа контенту в базу данных, я так понимаю что современный подход к добавлению контента (например фотографии) - это через Media Store и по результату у меня будет content URI вида: "content://media/huy/pizda
Но при этом если sd карту вытащить/вставить или иным образом вызвать "пересканирование" медиа телефоном - то я сосну и URI будут уже другие, моя приложуха ничего не найдет
Я прав?
Аноны, а как мне сделать, я в приложении показывают инфу но перидоически надо показывать изображения. Мне как этот делать? В той же активити или в новой? Как лучше.
Ты очень размыто описываешь задачу. Добавь обычный имиджвью и показывай там картинку, когда надо.
Использую пикассо
Можешь, вроде не будет. Отображаться будет криво ещё
Я вот 3 года занимаюсь бекендом джавой с Spring Boot ом,микросервисы, вся хуйня
и что-то захотелось в андроид вкатиться, экосистема ж та же,
только вот не знаю, если я условный мидл на одном стеке, то при переходе на другой потеряю ли я в ЗП?
> экосистема ж та же
Что-то кроме древней обрезанной версии джавы есть общее? нет
> если я условный мидл на одном стеке, то при переходе на другой потеряю ли я в ЗП
А сам то как думаешь? Кто будет покупать ведроджуна по цене мидла? Твой вариант только пытаться строить из себя фуллстека.
Двачик, родненький, помогай
Есть один piechart
В нем реализованы выноски (LeaderLine, в документации просто line)
Диаграмма влезает нормально, но выноски на экран не влезают целиком, куски значений вылезают.
Как сжать всю диаграмму, например, на 20 %? Ужать, точнее.
Нашел такое
//pieChart.scaleX = 80f
//pieChart.scaleY = 80f
Ток не работает, всё пропадает.
IOS сдаёт позиции. Под android больше заказов.
>Неужели просто отсутствие денег на б/у мак мини?
Вот так как-то дело и было - ни мака, ни айфона.
PS. А что, на мак мини можно комфортно кодить?
Давно ужее
Под андроид тулзы на порядок лучше.
Само решение не понятно. Вроде бы простая задача через массивы решается, но я походу туповат для неё..
Пчел, простой пройдись по массиву форичем и посчитай каждый из двух результатов. Пихни результаты в arrayOf.
Поставил следующее:
pieChart.scaleX = 0.7f
pieChart.scaleY = 0.7f
Круг сжался, но и область, где отображатся выноски, тоже!
Кошмар? Пик для наглядности
На случай, если кому-то интересно, помогла следующая строка:
pieChart.setExtraOffsets(42f, 0f, 42f, 0f)
Довольно очевидно тем кто шарит. Задумайся для чего надо было создавать metal, а не использовать опенсорс технологию vulkan. И как так вышло что апи metal не совместима на фундаментальном уровне с движком флаттера. Вспомните еще старые истории про jit и почему рн не юзает его на ios. Один паттерн, пацаны.. Надеюсь открыл кому-то глаза на ситуацию.
>Вспомните еще старые истории про jit и почему рн не юзает его на ios
Сейчас бы ныть о мелочах, когда для тебя жс в принципе делают исключение из правил и дают возможность существовать кек. Энивей, эпл давно расщедрилась и дала ход чужим движам, тому же гермесу например, правда проблемы рна это не решило
>Вспомните еще старые истории про jit и почему рн не юзает его на ios.
Тащемта, уже второй год как ему ничего не мешает юзать любой движок с жидом или без. Лагать будет однохуйственно.
>>1949651
>И как так вышло что апи metal не совместима на фундаментальном уровне с движком флаттера
1) Схуяли он не совместим если совместим https://github.com/flutter/flutter/wiki/Metal-on-iOS-FAQ
2) Как разрабы флаттера архитектуру заложили — так и работает, лол. Почему-то у в сотни раз более сложных проектах вроде UE/Unity таких проблем нет.
1) Ты работаешь на митоле или просто подрачиваешь его в свободное время?
Если всё таки работаешь:
2) Что надо +- знать чтобы вкатиться? Прям выдрачивать линал, или это только для совсем тридешников?
3) Как я правильно понимаю — 95% работы это редакторы изображений/видео?
4) Плотят как — по рынку или выше?
Реальная разница в зп есть у вкатышей (как раз из-за порога входа), начиная с мидлов уже почти не заметно, потом уже все зп — кто как умеет торговаться, продавать себя и в какой сфере работает.
Мидл+/синьйор-андроид-разраб который будет крутиться в финтехе будет иметь заметно больше чем аналогичный айосер в какой нибудь унылой тырпрайз залупе средних размеров, а перекатываться с даунгрейдом когда ты уже можешь себе позволить и макбук и айфон — нихуя не разумно, лол.
Да, пиздец лагает. Стоит посмотреть например их демку flutter gallery или google pay.
1. по работе кое-что делаю на нём.
2. Хорошо знать язык, платформу, линейную алгебру на уровне 3Blue1Brown c ютуба.
3. Если галеры то да
4. Плотят хуёво, пушто особо никто не понимает что это и зачем.
>пиздц, будут как в Андроиде потом переделывать в constraints layout
Тащемта, по открою тебе секрет — потом будут валить с констрейнтов обратно на флексбоксовые колонки/строки, что и произошло в айоси с опережением в несколько лет, лул.
Всем привет
Нужна помощь по жизненному циклу активити и приложения в целом
Короче, я свернул приложение в телефоне
Я открываю список работающих приложений и свайпом закрываю его (как бы это корректнее сказать: выключаю его в фоновом режиме"). Мне необходимо, чтобы некоторые действия делались при этом (запись статистики)
Я попробовал писать в override fun onDestroy(), но это работает, когда активити закрывается,но приложение не свернуто (когда выполняется finish() ), а в таком формате - нет
Реально ли такое провернуть? В какую сторону смотреть? Как такое хотя бы гуглить?
Не удалось проверить удостоверение личности
Не удалось проверить ваше удостоверение личности, поэтому вы не сможете публиковать приложения в Google Play из этого аккаунта.
Идея кажется хорошей, но немного избыточной для меня
Не могу понять, как мне сделать. Типа если приложение становится foreground, то его destroy со всеми вытекающими?
https://stackoverflow.com/questions/27301586/repeat-pulse-animation
Тут описано, как сделать элемент пульсирующим
Запускаем это scaleDown.start()
А как это остановить? =) Ну, т.е. как вернуть первоначальный элемент?
.cancel() и .end() не работают
Больше никаких вариантов логичных и нет в предложенном списке вариантов
Нет, это задание со Степика..
Нужно чтобы при нажатии на textView считалось количество нажатий. Смысл как сделать понял, но ни .text не .setText не дают этого сделать. Ошибку синтаксиса вызывает.
Я не эксперт, но попробую подсказать. Примерно так:
https://pastebin.com/qCYh3yVu
В примере используется constr, но ты догадаешься, как использовать текствью
никаких
Есть одна анимация, которая просто переставляет картинки в определенной последовательности спустя определенное время.
Для наглядности
https://pastebin.com/QrW42yzH
Хочу сделать, чтобы при нажатии, пока палец на картинке, анимация прекращалась, а потом продолжалась
По идее нужно юзать onTouchListener, вот только что дальше (как описать это условие, да и как стопануть данную анимацию - хз). Анончики, подскажите, путь укажите.
Был бы у него setFrame, то можно было бы делать getFrame stop, а потом setFrame start.
А так только кастомный дровабл пилить.
Чем тебе Koin не нравится?
alt+f4
Подскажите в одном вопросе. Я увидел, что AsyncTask, deprecated поэтому хз как обращаться к базе данных.
Я думаю использовать пикрил. Правильно ли это?
Объекты db и Dao лучше получать отдельно в методе onCreate в основном потоке, а все операции нужно выполнять уже в отдельных потоках. У тебя утечка памяти может быть, когда AppContext вызываешь. Тут нужно контекст активити брать и желательно не использовать из в многопоточности. Почитай про утечки памяти.
Ну и вообще правильно использовать RXJava или вот так еще:
https://developer.android.com/guide/background/threading#java
Понимаю, что платиновый вопросс, но все же.
Хочу вкатиться в анроид разработку. Есть пару лет опыта автоматизатора на джаве. Кор более-менее неплохо знаю.
Слышал, что в разработке на вердре существует много подходов и сложно сказать какой из них наибоее верный. Поэтому интересует то, что на данный момент наиболее актуально.
Нужен ли Котлин или достаточно голой Джавы? Посоветуйте какой-то курс, чтобы не для нулёвого прям.
из- за того, что есть много подходов, будь готов знать все.
нужна джава (многопоточка обязательно) и котлин. учи стек для обоих языков.
для разминки пройди уроков 100 на startandroid (~2 недели).
курсы- нахуй. изучай android sdk.
изучай архитектуру (MVP, MVVM, Clean Architecture- минимум).
такой список мне подогнали после одного из собесов:
Dagger2, okHttp3, ButterKnife, Firebase, Picasso, Glide, Mokito, Biometric, Retrofit 2, AAC, Coroutines -
почти всё из этого знать надо обязательно. что необязательно- поймёшь сам.
сделай приложения с разными подходами и технологиями.
как созреешь для поиска работы, используй:
https://medium.com/@veselinazatchepina/а-ты-готов-или-о-том-как-удачно-пройти-собеседование-на-позицию-android-developer-4c42a888f288
больше половины вопросов из статьи попадались на собеседованиях.
С явой учти, что
>Android Gradle plugin 3.0.0 and later support all Java 7 language features and a subset of Java 8 language features that vary by platform version.
Котлин знать надо - да и его несложно будет освоить после явы. По котлину неплохо читать официальные доки. Есть неплохая вводная серия микро-упражнений, которые знакомят с разными фичами - https://play.kotlinlang.org/koans/overview . Уроки на StartAndroid хорошие, но много устаревшего. Есть серия codelabs от гугл, для начала сойдет - https://developer.android.com/courses/fundamentals-training/overview-v2
@emfry
Что если я при старте экрана, начну в фоне долбить какой-нибудь урл, этакая атака ддос. Может ли гугл меня за это забанить? Как он узнает, что я этим промышляю, если урл буду со своего сервера подтягивать?
Че по вебсокетами и реалм? Часто сталкиваетесь аноны? А то пару раз видел в требованиях.
Ты не разбираешься в вопросе
Ну так пусть лагает. Бабло стричь это не мешает.
>На смартфоне не лагает
На айфонах лагает точно так же, а попытки переехать на митол и обещания 300фпс закончились крашащимся нестабильным говном.
Простые как палка технологии, если не можешь осилить — время перекатываться в грузчики.
Я не спрашивал насколько они простые, и не просил советов о переквалификации. Я спрашивал насколько часто сталкиваетесь.
не стоит сомневаться по мелочам,
если к вершине у горного храма ведут несколько путей, глупо спускаться одолев половину одного, чтобы начать восхождение по другому.
It's not deprecated!
This was a mistake in the platform build tooling (and yes, it's my fault, it's a bug in code I wrote -- https://android.googlesource.com/platform/tools/metalava/+/957c774b622d06b29c4c59e48db59e2e7f2ae734/src/main/java/com/android/tools/metalava/model/psi/PsiModifierItem.kt#230). This also picks up mentions of @deprecated in things like {@code} blocks which it should not. This bug has gone undetected for years... For now it's solved by using escapes to trick metalava into not recognizing @deprecated, but the proper fix will be to properly tokenize the javadoc (which we do in some other places to resolve relative imports for example.)
Оберни sharedPrefernces в LiveData. Легко можно нагуглить, как это делается. Исподьзуй дальше MediatorLiveData и эти 2 сурса
Почему репозитории,а не модели и в чем различие?
Почему до сих пор нет нескольких бэкстеков в jetpack navigation, фрагмент 1.3 уже из беты вышел, а они даже альфу с этим не завезли, или они это и не плавнируют и стоит опять на фрагмент менеджер возвращаться?
Тебе значение слова не понятно?
Пуши могут приходить когда приложение не запущено. В таком случае пуш приходит в системный сервис пушей. Приложение про такие пуши ничего не знает, соответсвенно не отрабатывает коллбэк в твоем коде. Клик по пушу открывает твое приложение с intent, из которого можно достать данные, которые были в пуше.
Когда приложение активно, тогда есть возможность в коллбэке пуш-сервиса перехватить данные по пушу, и например, не показывать пуш уведомление, а сделать какое-то действие в приложении.
Я это все знаю, меня именно "убитое" состояние интересует, т.е. когда юзер или система напрочь убивают (не закрывают) приложение через настройки например
Если force stop то это уже все, до следующего открытия.
stateflow это штука для корутин, для настройки обработки флоу, и с лайвдатой она мало общего имеет.
Все фрагменты на лайвдате и мввм делаются, так что не мучайся.
А нафига тебе несколько бекстеков в navigation?
Если ты боттомбар хотел или там таббар с разными навигационными стеками, то это же давно реализовано, вот пример: https://github.com/ivan200/navigation
Ну вот смотри что гугловский разработчика, например, пишет
> LiveData lives on for apps written in the Java programming language. In Kotlin you can use it for observing from the UI, but with DataBinding now supporting StateFlow, and new extension functions coming soon in AndroidX to make it easier to safely collect Flows from the UI, at some point it's better to just move to Flows all the way.
В новых доках статьях на developers.android уже вроде нету лайв даты, только flowstate. Про датабиндинг
там написано потому что раньше flowstate в связке с ним не работал, но теперь flowstate может полностью заменить лайв дату. Так что тут только вопрос времени когда они начнут прямо рекомендовать использовать flowstate
> А нафига тебе несколько бекстеков в navigation?
> Если ты боттомбар хотел или там таббар с разными навигационными стеками, то это же давно реализовано, вот пример: https://github.com/ivan200/navigation
Ну это на нескольких navhostfragment'ах,, я так понимаю, мы сейчас так и делает. При необходимости открыть, допустим, третий таб и на нем открыть какой-то экран вечно какие-то траблы возникают, поэтому думал что с выходом нового фрагмента, они из коробки уже бэкстэки сделают.
А если нужно открыть экран на котором нет нижней навигации лучше сделать как:
1. Открыть активити(сейчас делаю так, но хотелось бы от этого уйти)
2. Открыть экран, но скрыть нижнюю навигацию
3. Сделать ещё один navhostfragment, в котором будет фрагмент с нижней навигацией и фрагменты без нее, но так уже 3 navhostfragment будет
Что можно использовать для создания определённых сценариев по типу: такая-то надпись появилась в приложении, соответствующая условию — мне приходит уведомление (или она тапается)?
Нужно ли в API ковыряться? Как и где писать скрипты, которые можно использовать в сторонних приложениях на ведре?
Если из другого приложения данные брать, то только через Content Provider или Broadcast Receiver. Еще можно к bound services подключиться, но это только если позволяет разработчик приложения. Ну и вариант вот еще
https://itnext.io/android-receiving-data-in-2-steps-21c49920172d
https://developer.android.com/training/sharing/receive
Посоветуйте какой сделать проект, чтобы использовались все технологии
rx java + MVP + realm + Hilt + wevSockets
Реально через тулзу автоматизации UIAutomation или AccesabilityService, но их придется пердолить руками. Хотя мб найдешь какое-нибудь готовое говно.
Комрады, есть простой код который грузит контент из интернета в папку, которую выбирает пользак посредствам action_open_document_tree. Все выглядит вот так:
-пользак выбирает, что хочет загрузить
-выбирает куда, посредствам action_open_document_tree
-мы получаем treeURI-объект и отдаем его по интенту сервису
-далее, врубается foreground service и начинает все грузить с уведомлениями в трее.
Все это прекрасно работает на ведре с 6 по 10. На 11 ведре, если убить основное приложение, то сервис падает с ошибкой отсутствия прав на запись. Как я понял, ведро ебанное "убивает" объект treeURI ну или анулирует выданные права, который мы получаем от action_open_document_tree. Пока приложуха не закрыта ее можно свернуть, главное не закрыть сервис работает. Как только приложуху убить, сервис падает сразу. Другие фореграунд сервисы из этой приложухи, которые не пишут файлы, робят нормально в фоне.
Можно как-то пофиксить подобное поведение уебанского ведра№11?
Пробовал FLAG_GRANT_PERSISTABLE_URI_PERMISSION? Заодно проверь этот флаг после получения интента с ури.
Либо эвристика попалит при проверке маловероятно или просто кто-нибудь стукнет на твое приложение что наиболее вероятно
Да. Первым делом заюзал этот костыль. Но не работает. Я, блядь, никак не могу сформулировать норм запрос всезнающему гуглу , лол. Уже все что можно перегуглил
Вот такую ошибку срет, когда убиваешь основное приложение и сервис падает:
W/DocumentFile: Failed query: java.lang.SecurityException: Permission Denial: reading com.android.externalstorage.ExternalStorageProvider uri content://com.android.externalstorage.documents/tree/primary%3ADownload%2F123/document/primary%3ADownload%2F123/children from pid=14340, uid=10157 requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs
W/DocumentsContract: Failed to create document
java.lang.SecurityException: Permission Denial: writing com.android.externalstorage.ExternalStorageProvider uri content://com.android.externalstorage.documents/tree/primary%3ADownload%2F123/document/primary%3ADownload%2F123 from pid=14340, uid=10157 requires android.permission.MANAGE_DOCUMENTS, or grantUriPermission()
Т.е. по логу видно, что у кода сервиса напрочь пропадают права на соответсвующий каталог после остановки основного приложения.
Пока приложуха висит в фоне, то и сервис отрабатывает нормально
вот хуй пойму, че эти ебаные тухлодырые индусы из гугла там наговнокодили и какого хрена эти выблядки нигде ничего не указали???
bump
Бляяя....
Анон, цистерну чая тебе!
Пересмотрел свой говно код ебучий а понял, что я делаю getContentResolver().releasePersistableUriPermission но не делаю getContentResolver().takePersistableUriPermission...
Мозг поплыл и глаз замылился, короче. Пиздец, пол дня ушатал на это. Поправил, теперь все работает =) Спасибо, за наводку.
а ебаным индусам из гугла полную жопу тухлых бананов за то, что нислова не написали про эту особенность для ведра№11
stoßen
Погуглил, пишут что 70% смартфонов состоит в ботнетах, так что думаю схема рабочая
Ну если есть варик зарегать акк в гугль плэй по левым данным, то флаг в руки
Какая "левая" иконка? Ты о чем вообще?
Приложуху можно свернуть, закрыть. У активити приложухи есть жизненный цикл. В соответствии с ним, активити получает ряд колбэков. Гугли жезненный цикл активити в андройд, если ты про это
Не знаю как она называется, вроде карусель когда выводит все открытые приложухи в виде превью с возможностью переключиться на другое или выбросить его из каруслеи. Это одна из трех кнопок рядом с кнопками назад и хоум.
В том и вопрос, что точно она делает? Если переключиться с одного приложения на другое через эту карусель а потом так же вернуться видно что приложение не перезапускается (например если оно было забаговано и висело, лол). А если свайпом выбросить из карусели, при последюущем запуске видно что оно долго с нуля загружается, отсюда и вопрос какие именно коллбэки оно вызывает когда убираешь приложение свайпом.
>>1962878
Вот, палю годноту. Я сегодня добрый
https://itsobes.ru/AndroidSobes/activity-zhiznennyi-tsikl/
У меня в ConstraintLayout лежит EditText. При повороте экрана этот паскудный EditText берет на себя автофокус и открывает клавиатуру. Как отучить его от этого?
Мужчины со StackOverflow советуют впихнуть перед ним LinearLayout и параметрами
android:focusable="true"
android:focusableInTouchMode="true"
Но мне не хочется пихать в лейаут по сути бесполезные элементы. Нет ли человеческого способа отучить EditText брать автофокус?
Какой же я еблан. Надо научиться думать прежде чем идти плкаться на двач.
У меня в манифесте уже было android:windowSoftInputMode="adjustResize"
Вспомнил что там можно комбинировать параметры и сделал так android:windowSoftInputMode="stateHidden|adjustResize"
EZ Clap
Чет глянул демку после новости о 2.0 флаттера, и как-то не оч. Мне кажется в KMM допилят и композ в него затащат, чем этот до ума доведут
Тебя скоро уволят
Могу соврать, но мне кажется что если один человек отправляет деньги другому напрямую, без прослойки (тебя), ты никак не узнаешь о результатах.
Подскажите как спарсить отсюда - https://www.cbr-xml-daily.ru/daily_json.js все валюты (объекты внутри "Valutes")
Изначально я собирался делать как на пике, но получил это -
Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 6 column 16 path $.Valute
А все потому что Valutes в этом json-е - это не массив, а объект.
Как можно вытащить оттуда данные о валютах?
Ну так замени List на Map, или HashMap, не помню. А если все таки в список хочешь вытащить пиши адаптер сам
Спасибо анон, уже вчера догадался сам, но все равно спасибо
Хочется сделать так, чтобы это всё работало само и на как можно более низком уровне. Почитал и пришёл к выводу, что надо делать отношение many to many. Или оно про другое? Потому что нигде не нашёл в примерах именно список в столбце БД.
Это один ко многим, глянь @Relation, по примерам поймешь
Хочу написать полноценную игру на Flutter, естественно, там будет анимация. Какой из способов анимации порекомендуете?
Объекты должны по команде одновременно перемещаться на определённое расстояние. Для каждого объекта расстояние и пункт назначения может быть разным
рекомендую стандартные способы анимации
можеш вот глянуть https://github.com/flame-engine/awesome-flame
еще видел там какие-то фреймворки для анимаций
а почему решил флаттер, а не юнити?
В юнити мне показалось сложным сделать интерфейс.
Плюс всратая заставка в самом начале.
К тому же там должна быть имитация чата, так что flutter всем лучше получается
За Flame спасибо, не сталкивался ещё с ним. Только я не могу найти его преимущества над другими движками
ну вот я сейчас как раз делаю простую игру, но дажу в моем случае нашлись косяки во флаттере, от которых у меня бомбит.
В следующем проекто попробую юнити, хотя до этого все писал нативно, потому что у меня анимаций очень мало.
Вот у меня УЖЕ жопа горит от того, что я создал новый проект, и при попытке запустить на эмуляторе, он выдаёт мне гору ошибок. Хотя флаттер доктор всем доволен, я ничего особо не менял, не добавлял. Проект новый, в конце концов
Если кому надо: помогла команда в терминале, не помню какая, но что-то связано с лицензиями. Хотя doctor утверждал, что всё чётко.
Или что-то другое помогло, хуй его знает этого ебаного флатера, пошёл он в жопу
Такое бывает, через раз отваливается
doctor --android-licenses? Доктор надо с флажком --verbose запускать, тогдо видно что и где не так.
Начал осваивать ретрофит и возникла проблема
Написал интентСервис, который запускается по нажатию на кнопку и служит для того, чтобы запросить - получить респонс, а дальше передать данные в другую активность.
Нюанс в том, что я хочу сохранить инстанс респонса в поле сервиса, и судя по всему, из за того, что onResponse выполняется асинхронно в отдельном потоке, response, полученный в качестве параметра в методе onResponse, не получается присвоить полю сервиса. Есть какие нибудь идеи, как сохранить инстанс response из onResponse в поле, тк я хочу дальше использовать его в других методах сервиса, например передавать отдельные данные респонса в новую активность разными методами при надобности? При этом если я передаю все что нужно из респонса в активность, прописывая это внутри onResponse, то все работает отлично.
Стэковерфлоу завален нерабочими вариантами(
Пояснение к вопросу.
Я в onResponce получаю респонс, в котором есть например все валюты. Приходится внутри onResponce передавать их другой активности путём интента.
А хочу сохранить респонс в поле, чтобы внутри сервиса написать методы, которые будут брать по отдельности из экземпляра респонса доллары, рубли, евро и тд. Вот для этого мне и нужен этот экземпляр в поле. А не выходит(
Но я никак не могу проверить что мой ворк сработал потому что у PeriodicWork нет нормального WorkInfo, у него либо ENQUEUED, либо RUNNING.
А мне бы что-то типо if SUCCESS. Подскажите, как можно провернуть подобное?
Из мобильщика перекатиться можно только в могильщика. А потом и в трупа.
Логика должна быть такая:
Когда есть подключение к интернету -> получить данные с сервера и записать в бд, после чего отобразить в UI.
Когда интернета нет -> загрузить последние данные из бд и отобразить их в UI.
Делаю так:
1. Включаю интернет. Запускаю приложение. Данные загружаются с сервера, записываются в бд (судя по инспектору) и отображаются в UI.
2. Отключаю интернет. Перезапускаю приложение. Данные не загружаются. Инспектор показывает что база закрыта (closed около названия).
Аноны, что за дела? Почему Room работает только при наличии интернета?
Ну Database Inspector в Android Studio. Типо если запускаю приложение без интернета, то база не поднимается
Т.е. хочешь, чтобы оно само как-то ходило в базу напрямую, когда офлайн, а ты нихуя не делал?
Почему нихуя? Я запрос к базе делаю. Просто если я без интернета пускаю запрос, то получаю в ответку no such table и иду нахуй. А если включаю интернет на устройстве, то запрос нормлаьно проходит. Хотя база-то вроде как локальная должна быть и не зависеть от подключения.
Прости анон, я идиот.
Я пытался проверить если ли что-то в моей LiveData и на основе этого делать запрос.
Проверял я, разумеется как даун - if LiveData.value != null лол. Как оказалось обращаться к лайвдате по value бессмысленно, он всегда null. Надо через observer только
Молю, накидайте примерных тем, вопросы по которым стоит ждать на собеседовании.
Напомню, это не позиция джуна, а просто неоплачиваемая стажировка, а значит и требования ниже.
Понятно что про жизненный цикл спросят, про ооп, про паттерны и архитектуру.
Чего ещё ждать?
Спасибо. Тонны нефти вам.
игры, всякая мелочь, типо пазлов
он вроде как deprecated в апи 23, у меня как раз 23 стоит, и раньше, логично, что при попытке его использовать он ругался, что метод deprecated, но совсем недавно я его случайно заюзал и обнаружил, что у него теперь нет аннотации deprecated, и на разных апи приложение норм работает с ним, че за хуйня-то?
Почему так не объясню, но может ContextCompat.getColor - то, что тебе нужно
Просто учебники указанные в шапке
>Head First Java Kathy Sierra
>Thinking Java 4th Bruce Eckel
безнадежно устарели, по крайней мере Head First что я попробовал не дает мне скомпилировать программу в класс, заявляя, что код скопипасченный из книги изобилует ошибками. При этом, первый попавшийся хелло ворлд в интернете на изи скомпилировался.
>print_I_n
>Print_l_n
Бляяядь, это я тупой, вместо l писал i. Извиняюсь, в первый раз пробую.
Поставь себе хотя бы какой-нибудь шрифт, в котором единица и л отличаются.
Ну и это, немного побалуешься - и давай переходи в иде вместо блокнота.
но она нам как раз
>Поставь себе хотя бы какой-нибудь шрифт, в котором единица и л отличаются.
Так они и отличаются. Это скан книги такой, пикрил. Невозможно понять, l там, i, или же вообще 1.
Используй Bundle, закатывай в него свою парашу если она parcelable or serialisable, пихай в интент и передавай хоть на юпитер
Для начала вдумчиво прочитать тут
https://developer.android.com/topic/libraries/architecture/workmanager/how-to/states-and-observation
Было бы логичнее, если бы он был вводом как cin в cpp, где вывод - cout. А так, printlnline - тот же print, только возвращает arg+"\n" для переноса строки, куда уж логичнее.
Анон. Мне нужно достать исходники из .apk одной игры, отредактировать, запаковать и использовать. Вроде как любая параша может реверсить apk, даже всякое говно на телефоне.
Так вот, на Android Studio можно ли это сделать? А если нельзя, то что посоветуете?
На новых процессорах есть такая возможность, только нужно в биос галку поставить.
А чё, есть варианты? Ну Амазон попробуй
Получается варианта проверять каждый заход совсем нет?
Пока что делаю вот так
if (workInfo.state == WorkInfo.State.ENQUEUED)
Но подобная штука срабатывает при запуске приложения, так как изначально work начинается уже в enqueued.
Ну в документации написано же, есть только одно конечное состояние - canceled. Так же ничего не мешает проверять состояние running или завести переменную состояния где нибудь в SharedPreferences или еще где, куда будет срать твое говно в воркере при запуске. Короче, есть хуйлион способов удостовериться в том, что твое говно отработало
> If you were to start learning android development today, Kotlin should be your language of choice.
А вот это адекватный подход
> Roadmap анона из предыдущего треда:
>
> Основы программирования, логические операции -> Джава(базовый синтаксис и особенности языка) -> ООП -> особенности различных версий Джава -> алгоритмы и структуры данных -> многопоточность -> дженерики -> функции высшего порядка -> Котлин -> Android SDK(UI, версии и различия, особенности оси на уровне работы виртуальной машины) -> работа с БД, CRUD(можно и на этапе знакомства с алгоритмами) -> git -> networking/REST API/JSON/сериализация -> актуальные фреймворки зачем и почему, спойлер: экономия времени -> архитектура, зависимости, инверсия контроля -> ?..
https://tproger.ru/articles/java-vs-kotlin/
https://habr.com/ru/post/461877/
Как вы делаете нормальные интерфейсы своим приложениям? Хуярите его на XML просто?
sddf
Пишу на флаттер
Все свои приложения написал на Java. Доволен. Брата нет. Зависимость стойкая С трудом понимаю невероятные волны хайпа вокруг котлиновского сахарка. В итоге один хрен выходит тот же байт код для JVM... Спарашивается, начерта мне пердолинг с хитровыебанным синтаксисом и сокращениями + пойди найди решение той или иной траблы для сахарка, один хрен будешь перепердоливать джавовский рецепт под сахарный. Котлин хорош для быстрого запиливания какой-то поделки на коленке. Громоздкие вещи я предпочитаю писать на тру Java тем более новая версия языка уже включает все сахарные фишки Котлин. Вопрос, конечно, когда ее завезут в ИДЕ. Это мое исключительное ИМХО
Всегда хуярю на XML. Никогда не использую конструкторы интерфейсов и прочее. Да, это сложно, но тогда реально можно замутить охуевший и юзабельный интрефейс
>В итоге один хрен выходит тот же байт код для JVM
В любом яп высокого уровня ты работаешь с сахарком, количество которого не может нести вред по определению, потому что это сэкономленное время, которое ты не тратишь на написание условных типовых подпрограмм. Образно говоря, ты всегда можешь написать собственную сортировку, не используя сахарный built-in.
>решение той или иной траблы для сахарка
Натыкаясь на ошибку, она будет иметь одну и ту же причину в Джаве и Котлине, если это не синтаксическая ошибка.
>Котлин хорош для быстрого запиливания
Быстрого запиливания как такового, потому что с ним возникает меньше проблем. А если они и возникают, они очевидны, что позволяет не тратить лишнее время на поиск решения. Экономия времени существенна, моё личное наблюдение.
>Громоздкие вещи я предпочитаю писать на тру Java
Разница лишь в том, что ты напишешь больше кода. Если нравится печатать, почему бы и нет.
Джаву действительно стоит использовать, к примеру, в Спринговом стеке, где можно взять ломбок и 15 джаву, либо в легаси модулях, дабы не тащить лишнее, либо для задач уровня jvm, но писать на ней приложения нет никакого смысла. В плане необходимости её теснит даже cpp, потому что он позволяет писать нативные модули, а она не даёт ничего - никаких плюсов, ради которых стоило бы тратить лишнее время.
Короче, Котлин - модная хрень для смузихлебов. Знать нужно, но использовать не обязательно. Преимущество в сокращении нахуяривания кода - такое себе, т.к. основная работа любого кодера проходит на stackoverflow и подобных ресурсах, методом кописпиздинга с перепердолингом под свои нужды и не надо тут размусоливать про тру ориджинал код, ибо за пиздабола сойдете сразу. Да и Джава не ограничивается онли разработкой под ведро в отличии от Котлина нативный Котлин говорите? Ну ка список серъезных проектов где его хоть как-то используют не на уровне, а вот есть такая модная херь, давайте заюзаем?
Сдох у телефона экран. Решил использовать его для баловства - поставил SimpleSSHD и Termux, коннечусь на него через putty.
И в результате получилось говно. Обмазался скриптами. Конечно же Midnight Commander поставил. И наконец clang. Ну ёбана, оказывается он заточен под другой ARM и хуячит исполняемые файлы, которые работают, но, бля, при запуску срут в консоль замечание, мол, одна из секций неверно определена. А если поставить поверх gcc-8, то эта сука ругается на ошибку в хидерах.
При том, что botbrew, который работал как швейцарские часы, усрешно сдох.
Ах да, вы ж тут на Java пишите. Да похрен. Я просто хотел экзотический Linux поиметь нахаляву из поломанного телефона, но вижу что получается говно. К тому же забавно что на этом телефоне ядро с патчами selinux, Такой-то пиздец. Монтируешь /system как rw, а через секунду он опять ro. Т.ч. если что-то надо поместить в /system, то только из скрипта и никак иначе.
И ещё ядро скомпилировано без поддержки модулей. А я всего лишь не хотел дрочить флешку и подмонтировать nfs. А такой возможности нет. А мне нужно именно nfs, ибо я на трубе я собираюсь компилировать десятки мегабайт исходников.
ПОМОГИТЕ УМОЛЯЮ
Суть в cadtView никак не хочет менять свой фон ни через xml, ни программно.
адаптер - https://pastebin.com/95RjkM4h
>Ну ка список серъезных проектов
https://habr.com/ru/search/?target_type=posts&order_by=relevance&q=kotlin+multiplatform&flow=
Как я могу эмулировать шаги? Нужно взломать вк шаги, чтобы телефон виртуально ходил и я смог сбежать от хозяина в приложении рабство
Пиздец чел, просто убейся
Два года назад в айос пытался вкатиться, по вакансиям в миллионнике Украины хуй что было, в итоге блять на заводе сижу
В ведро сейчас на Джуна получится, или рыночек насыщен?
Получится, если есть знания и готов работать за еду.
WorkManager не везде работает
А фореграунд использовать чтобы чисто токен продлевать в фоне? Как-то глупо, не?
Начнем с того, что какой вопрос такой и ответ, лол
Ясен хуй токен в форе не продлеваюрт, ибо по определению фора намекает на взаимодействие с пользователем. Для периодических задач однозначно созданы периодические ворк реквесты в воркманагере. можешь алармманагер заюзать по старинке Кури документацию лучше по этой тематике
Единственная причина выбора Kotlin гуглом это терки с Oracle - патенты хуенты. Индусы (гугл) пытаются слезть с этой оракловской иглы
какой мудила писал этот текст?
Пиздец. Работаю две недели, сначала дали проект, который не обновлялся с сентября и который даже не билдится на градле. Благо кинули на другой проект новый. Но теперь приходится пилить мультиприложение в соло. Я охуеваю с задач просто. Приходится чуть ли не переписывать библиотеку на реакте, хотя я блядский андроид разработчик с опытом, меньше месяца. Думаю в iOS перекатиться ибо ну его нахуй. С этим градлом и тонной либ дрочиться такое себе. Меняешь две строчки и 5 минут молишься в ожидании того, что градл ошибку не ебнет очередную. Но в проекте dataBinding, поэтому хуй там плавал. Нака тебе парочку ошибок в стиле cannot find implementation. И соси хуй.
Куда вкатываться тогда?
Вкатываюсь в андроид студию, подскажите плиз, где можно найти инфу о том, как сделать объекты сеткой (в два ровных столбика) как на скрине. 10000 тыщ всяких лайаутов на стеках, все кривое, нихера не понятно, хелп
Gridview, recyclerview, через linearlayout, возможно через relativelaoyout задав невидимый центр, написать custom вьюху на основе например frameview, ну или мб через новый constraints layout, хз
Самый простой способ: берешь, например Constraint layout за основу, в него кладешь Linear layout с вертикальной ориентацией в него кладешь два таких же но с горизонтальной ориентацией. Наполняешь каждый из них CardView. Профит. Пердолинг с вложеностями, но чито поделать Есть и другие варианты естественно
Потому что модно, блядь
Так это must have от разрабов. Constrain layout существенно упрощает жизнь при запиливании разметки для различных ориентаций экрана. Пилишь один раз и копипастишь, все. Он потом сам автоматом масштабирует все дерьмо внутри, если все правильно сделал. Очень удобный layout
Я конечно старовер, и это говно не изучал, но разве его смысл не в том, чтобы вложений не было? Нахуй он тогда вообще нужен
мимо
ты шиз? Я говорю тебе о том, что некоторые оболочки убивают процесс и не позволяют работать воркменеджеру после закрытия приложения, так то я это говно реализовал
Ты не понимаешь, что конкретно в этом случае, Constraint лишний? Он будет грузить вьюху, при этом не будет давать никаких преимуществ.
Вопрос. У меня есть FragmentActivity со своим лейаутом, который я не могу никак трогать. Но мне нужно наложить на него кнопки и т.д. Желательно через свой лейаут. Для этого нужно использовать Layout inflater или другой вариант есть?
Ну тык ты даёшь, там же сложно, надо на textureView опенжл ебашить , чтобы 60 фпс было, ну или surface view хотяб, лучше сразу на флаттер ебашит или юнити
Если есть дебилы по типу тебя среди вендоров, которые нарушают требования API Android, то земля им стекловатой как и тебе
Во первых, это был простейший пример для понимания подхода. Ясен хрен, что в constraint это можно все сделать без nested layout, но это явно не про реквестора сказ, т.к. он даже не смог в официальную документацию по Android. Во вторых, слабо представляю, как constraint нагрузит вьюху? Сразу чувствуется макак-формошлеп в тебе, ололош
В Room у меня примерно такой запрос:
SELECT FROM Apples
WHERE id IN (:ids)
И метод соответсветнно:
getApples(ids: Array<Long>?)
Но эта хуйня не работает если передавать пустой массив ids.
Как получить РАЗМЕР передаваемого массива в sqlite хотя бы?
На данный момент у меня максимально пидорский солюшен:
SSELECT FROM Apples
WHERE
(:ids) = (-1)
OR
id IN (:ids)
и я передаю arrayOf(-1) когда мне не надо фильтровать.
Застрял с этой хуиткой блядь!
Товарищ, вы какую разработку учили? Уж не ту самую?
https://medium.com/@denisgolubev1999/сравнение-constraintlayout-с-другими-viewgroup-и-когда-от-constraintlayout-стоит-отказаться-1878460ed3af
https://karishma-agr1996.medium.com/linear-layout-v-s-constraint-layout-6b64e7a08ed7
https://xakep.ru/2016/11/02/constraintlayout/#toc07.
Я просто могу читать официальную документацию и отделять зерна от плевел, ололош
даже в твоем высере со статейками сто летней давности, явного указания на ущербность Constrain layout нет. Просто есть намек на использование его подстать задаче
Расскажи, где работаешь?
И почему везде рекомендуют не использовать основную карту вообще? Её же можно отвязать
Так я и юзаю Surface View, даже отрисовываю через SurfaceHolder в отдельном потоке, даже с аппаратным ускорением, один хуй когда дело доходит до анимаций фпс падает.
Значит херово рисуешь
Ну или я не понял, чего ты хочешь или как это работает. Уже давно не юзаю рх. Въеби boolean subject, который будет стопить первый concat пока clean не прошёл
дропаю работу и выкатываюсь из СЕО, выбираю между мл и Андройд разработчиком
Он откомпилен под андроид и работает, но не у меня.
При запуске выдает:
soinfo _relocate (linker.cpp 987): cannot locate symbol "_strchr_chk"
Откуда оно берет этот _strchr_chk? Из ядра? Из so модулей?
В репозитории ничего нет.
За анал
>За сколько реально вкатиться
С такими вопросами смело нахуй. Срок вката - от 2 месяцев, если ты Ньютон новый до никогда нахуй, ибо ты туп и на рынке сейчас 99 человек рядом с тобой на место.
Ну че, как там вкатывается сосется? Видео нужно дослушать до слов 1.5 года опыта
При билде содержимое этого ифа убирается из исходников, таким образом, декомпиляция не дает увидеть текст логов. А так - стринги не обфусцирются.
Так что ответ отрицательный. Ебать ты!
1. Жека для кого тимбер делал?
2. Про убирается из исходников ты напридумывал, просто в недебажном билде DEBUG = false, поэтому Log.d не выполнится
1. Там все равно не так просто все. Все эти тимберовские логи остаются в билде, просто не высираются в логкет, если прогвардом не режешь. Но прогвардом можно и обычный андроид.лог резать.
2. Компилятор умнее тебя. Он убирает из билда ветки которые заведомо (константно) недостижимы.
Все получилось, сделал через RecyclerView и грид менеджером.
Теперь у меня другой вопрос. У меня есть еще одно окно в котором тоже нужен контейнер с картинками в 2 столбика, но кроме него, еще есть элементы которые должны быть над ним, т.е. длинное окно со скрол вью. Проблема в том, что контейнер ресайклер вью скроллится отдельно от родительского скролла, и врап контент на него не работает. Как я понял, не следует использовать контейнерные вью чисто для того что бы их ширина/высота регулировалась лайаутом, или я что-то не так понимаю вообще?
И если так, то как это следует делать? (не костылями типа в коде переписывания высоты ресайклера)
делаю читалку для хентай манги, не бейте
Пруфов не будет, но это так.
Можно костыльнуть через proguard, но там пиздец и можно удалить только все логи. А некоторые могут понадобится на проде.
Нужна просто длинная страница со скролл вью. Просто дело в том, что я рассчитывал на ресайклер вью как чисто на контейнер который поможет мне выровнять элементы. А в итоге оно функционирует как вложенный контейнер со своим отдельным скролл вью.
А на сайте тип это все одна длинная страница
В юнити если знаешь, грид лайаут накинул, и все выровнялось
PB:https://pastebin.com/1Dwy377b
Так убери скрол вью у контейнера, в чем проблема?
БМП
Как то делать было не хуй, решил запилить смотрелку мемасов с различных агрегаторов. Запилил. Продержалась она в гугль плее ровно 5 дней и ее забанили и удалили на первом же меме про америку, лол. причем, как я понял, забанил робот, т.к. прилетел скриншот с конкретным мемом в пояснении Так что, анон, твое поделье может ждать та же участь, если удумаешь публиковать в плей маркете
И как оно? Я вот ошибку допустил, начал вкатываниея штудент с флаттера. Так и не додрочив его, вернулся к джаве. Пока в процессе. Ваканский на стажировку, смотрю, нихуя нет.
Вакансий на флаттере, я имел в виду.
Ну бля, если ты работку ищешь, то хз. Я же от нехуй делать решил флатера колупать, чтобы свое супер игры сразу на 2 платформы релизить
Эти цифры обычно зависят от библиотек которые ты применяешь в своем поделье и сами по себе не добавлюят в программу никаких функций. Хз где можно найти описание всего дерьма, что добавили во все многообразие существующих либ для ведра в новых версиях API
анон, а ты выпускал свои приложения? получилось что-нить заработать? запилите кулстори для мотивации!
Вчера залил свою хуйню. Жду апрува! Скоро в миллиардеры, эхх. А если серьезно - там нихуя не заработать, если у тебя именно полезное приложение. Бабки выкачиваются вским говном типа донатских игорь.
У меня супер профитная ниша, пару лет в проде, полляма заработал
Но я в упор не понимаю MVVM
Насколько я понял - реализация такая - Во View лежит VM, который возвращает данные из MODEL в виде условного Observable.
Т.е. во вью я беру эти данные и подписываюсь на них (привязываю вьюхи к данным). Но блять у меня вопрос - нахуя тут VM, если он просто ретурнит данные из Model! Типа ладно бы Model возвращал данные в виде калбека, а VM мапил их в Observable и кидал дальше. Но ведь никто не запрещает Model возвращать данные в виде того же Observable. Так нахуя нужен VM? Все же мапить в Observable, если этого не сделано?
Запилил одну простую прогу. Добавил туда мелкий банер рекламы. Забыл про нее, а потом и забил. Пол года валялалась программа в гугл плэй. Потом начали ее устанавливать. Сейчас к первой тыще установкам подползает, лол. Активных установок, конечно, совсем слезы :D Прога невероятно узкопрофильная и не всем нужна, да и рекламу я, естетственно, никакую не делал ей совсем. Когда вспомнил про нее, посмотрел, ад сенсе, а там 3 бакса заработок, да и то списали за некорректную настройку рекламной сети, лол. Поправил все, как надо. Решил не удалять. Но у проги все, как положено, есть сайт, мануалы, на отзывы отвечаю. Вот апдейты начал делать для нее. Посмотрю, что дальше будет xD
заработать можно запилив что-то мега хайповое, игру какую-нибудь и продавая ее или внутри нее, например. Но это невероятная задача для одного человека. Самый простой способ - пилить какой-то мега нужный инструмент, запихивать туда рекламу и лутать с рекламы за просмотры. Но пойди угадай что нужно всей этой толпе ебанатов, которые юзают андройд и прочее мобильное дерьмо
Погоди. На Андроиде полно бесплатных программ, которые казалось бы очевидные проблемы пытаются решать, но делают это крайне хцево. Глюки, куча рекламы и т.п.
Вот для таких бы пилить нормальные аналоги и всё.
На лбу у себя напиши
Это один из способов, согласен. Я так с музыкальными всякими прогами делаю, отыскал наиболее популярные, выудил их косяки и запилил свою версию без этих трабл. Добавил пару фишечек от себя. Пока в стадии тестирования висит моя версия. Может скоро опубликуюсь
Никак, а нахуя. Вот мое висит на 4pda, кто-то там не лениться, выпускает иногда без рекламы. Но мне похуй
Если основы, не связанные с ведром, то очевидно в идее, чтобы ранить консольные приложения, а не юнит тесты в андроиде.
интересно
я вот думаю, стоит ли всерьез рассматривать плеймаркет как площадку для заработка, тут нужно сказать пару слов что я перекатываюсь из сервар-сайд разработки, пока читал книжки по джаве, возникло пару годных идей на нативных библиотеках,
но да - ощущение что плей маркет захвачен играми для аутистов.
с др стороны начал подумывать о такой схеме - разработка приложения - далее пилить к нему сервак и это уже будет целый йоба-сервис с блекджеком и шлюхами, сириус бизнес короче..
я бы ещё почитал мнений о заработке как инди разраб, насколько реально и тп, может есть faq на эту тему?
ps в джава ветке одни озлобленные школьники, лучше здесь посижу.
>стоит ли всерьез рассматривать плеймаркет как площадку для заработка
Индустрия мобильных игр приносит сумасшедшие деньги, просто чудовищные объемы бабла там крутятся
>ощущение что плей маркет захвачен играми для аутистов
Среднестатистическому пользователю мобилы больше ничего и не надо
>разработка приложения - далее пилить к нему сервак
Стоит любыми способами избегать подобных схем при соло разработке, ибо это чревато бескрайними просторами граблей и прочей хрени
>о заработке как инди разраб
Ну если ты чтец, жнец и на дуде игрец, с колоссальным опытом в смежных профессиях для этого и неограниченной возможностью не спать сутками, то можешь трайнуть, лол
Я уже палил свою историю успеха, повторять из треда в тред не вижу смысла
Не стоит всерьез рассматривать, процент прихода к успеху там гораздо меньше даже чем при венчурных инвестициях в стартапы. Можешь конечно попробовать взять количеством, каждый месяц штампуя прилаги на хайповые темы, но такое себе. Без серьезных ресурсов, ты не продвинешь свое говно, чтобы его установил кто-то кроме тебя с 5 акков.
>Стоит любыми способами избегать подобных схем при соло разработке, ибо это чревато бескрайними просторами граблей и прочей хрени
Это да, скорее всего придется арендовать где-то облако, чтобы покрыть приличную нагрузку (в случае "УСПЕХА"), то есть бабки нужны будут практически со старта.
>>1985213
у меня нет никаких хайповых тем, просто есть идеи полезных приложений(или мне так кажется) и в общем-то мне дико доставляет сам процесс, есть причины почему не хочется работать в найме, это не так весело, как работать над своей идеей, с самодисциплиной проблем нет, еда тоже пока есть.
Как думаете, есть шанс генерировать хотя бы >1к в месяц с нескольких приложений?
Мне кажется, на рекламе много не заработаешь, покупки внутри приложения представляется более профитным, опять же зависит от самого приложения...
>генерировать хотя бы >1к в месяц
Анон, ты пойми, основные потреблядки контента на мобильной параше - это всякая разновидность тупорылого зумерья и маргиналов. А что они больше всего любят? Игори, слушать музыку, смотреть видосы, сидеть на говнодосках по типу этой. С игорями все ясно, тут соло затащить практически нереально. Музыка... забей. Там авторское право. Видосы, там тикток и прочие гиганты. А для говноборд, ну еще одного тухлого клиента там конечно же не хватает без тебя, лол. И что остается в итоге? Ровным счетом нихуя, только поиск узкоспециализированных ниш и перепил имеющегося говна на адекватные лыжи
>у меня нет никаких хайповых тем, просто есть идеи полезных приложений(или мне так кажется)
Тогда вообще без шансов почти. Твои приложения никому не упали, чел >>1985506 примерно описал. Это не 2009-2010 год, все ниши заняты гигантами, юзеры сидят почти все время в топ 10 прилагах. Игры в этом плане перспективнее, но тут берешь юнити и ебошишь, отношения к мобильной разработки это не имеет
Но ты ведь даже не пытался, но уже в теме и все знаешь, и других поучаешь
Всегда софт для конечного пользователя это крохоборство и потраченные нервы.
>>1985514
Понятно, спасибо анон что пояснил, значит пилить своё ПО для мобилок тухлая затея, всё это маняфантазии... придётся в кровавый интерпрайз закатываться.
Алсо, в андроиде почти нихуя не понимаю, начал вникать в специфику - и как же у меня подгорает от того, как все уебищно реализовано, от православной джавы почти ничего не осталось, везде какие-то обёртки, чтобы реализовать даже примитивную штуку приходится писать простыню кода. Короче бомбит. В каком-то смысле даже рад что не придется копаться в этой параше.
ушёл в офисные планктоны на зарплатку
но если у кого-то другое мнение насчёт рынка (я просто хуею от самой возможности запилить апп, который будет виден миллионам), тоже отпишитесь
в интернетах конечно полно саксесс стори, но возможно это и правда не акутально на 2021
>чтобы реализовать даже примитивную штуку приходится писать простыню кода
Есть такое. Андроид фрейморк будто бы создавался с целью искусственно усложнить и продлить разработку, чтобы разрабы могли сосать побольше бюджета бизнеса. Юайная задача, которую фронтендер сделает за день - на андроид минимум неделя
Очень хочу переквалифицироваться в мобильного разработчика, но не понимаю, с чего начать путь
Чё там с кроссплатформой? Она действительно убога, или нейтивы пытаются засрать цепляясь за мелкие недостатки этого, чтобы сидеть на своей жопе спокойно и не изучать ничего более. Ответьте будучи честным перед собой.
p.s. Выбираю между RN/Flutter/Kotlin
Последний вариант, конечно, на мой взгляд совсем другой мир. Другие же, как-то более интуитивно понятны с учетом моего фронтового опыта (особенно RN, конечно)
Ну так ты хочешь в натив или кросплвтформу, определись уже. Тебе быстрее будет вкатиться в RN само собой, но что ты хочешь я хз
а что такое рн? жаваскрипт?
ну я как нано-джавер сказал бы, что нативка важна в том случае, если ты хочешь разраб что-то связанное с датчиками, с железками, Но вроде как все оптимизируют и скорее всего большинство функций будет и на кроссплатформе рано или поздно (по сути рыночку требуется одна и та же поебень)
на месте фронтендера я бы 100% топил за кроссплатформу
флаттер выглядит сексуально сейчас
Сильно вообще отличаются компоненты и паттерны между двумя платформами?
Имеет ли смысл дрочить swift или проще сразу пилить на flutter/RN?
(и потом и вовсе отказываться от нативного приложения под андроид)
Когда там что будет? В стандартных возможностях RN нихуя нет. На каждый пук ставь пакет от ноунейма, который уже несколько лет не обновляется и естественно не работает. Так что сука бери и пиши на джаве или котле. Что сука, нужной функциональности нет на иосе, потому что она анально ограничена? Твои проблемы, тебя нанимали делать кросплатформу, вот и делай!
Зависит от приложения. Простое что-то достаточно легко переносится, а если у тебя много всякого, сложная логика или анимации, то уже трудно. Свифт похож на котлин.
ну если гугол продолжит топить за флаттер и такой сорт разработки, то может и с производителями мобилок договорятся, чтобы дарт пахал как надо
С яблоком невозможно договориться
Не жаву, шиз, а всего лишь не проследует на бутылку за использования жава апи в андройд
Я тоже фронтендер, который перешёл на андроид. Сначала топил за рн, но я хз, все как-то костыльно на нем. А флаттер мне не нравится Дартом. В общем после пары небольших проектов на рн теперь топлю за Котлин
Так а разработка IOS, получается, тебя обходит стороной. Только на andorid специализируешься?
Мне до сих пор кажется, это сильно странным, что на эти платформы сильно разные инструменты для разработки
Дык уже достаточно давно реализована поддержка 8 жабы в ведре. А котлин - это синтаксический сахарок, который отдельно от жабамашины попросту не существует в андройде
Пока да.
С котлин платформой у меня есть три пути
1. Писать андроид ui и общую логику на обе платформы
2. Писать только общую логику
3. Писать ios и android ui с общей логикой
Я пока стремлюсь к 1, но хочу 3
> без лямбд
Лямбды очень давно были доступны через ретролябмду. Потом в дешугар стандартный добавили.
да легаси джава заебись, как вы не поймете.
единственная полезная фича была в 1.5, когда добавили трай виз ресурсес, остальное хуита, я бы и на 1.2 сидел спокойно и не рыпался.
Я только вкатываюсь, делаю три в ряд на джаве, и прикидываю смогу ли хотя бы 300$ в месяц иметь. Не хочется снова идти продаваном работать.
делаю 300 в день
вангую нихуя ты не заработаешь, т.к. лезешь в жанр в котором 100500 приложений и конкурируют ребята, которые сливают на рекламу 300$ в сек
>>1988869
Про оверконкурентный жанр я согласен. Ориентируюсь на топ 3 этого жанра. По сути просто копирую игровые механики, благо они достаточно простые.
В плане графики мне помогает мой скилл дизайнера, все интерфейсы у меня уже отрисованы и выглядят на уровне топ3 а в чем то даже лучше( в графическом дизайне и UX/UI, есть опыт комерческих разработок, могу хоть завтра идти джуном-макакой в дизайн-студию, но в моем зажопинске платить будут максимум 400$).
В рекламу я планирую вкладываться. По планам на релизе влить 10к рублей и посмотреть на результаты. Если установки будут окупаться, то у меня есть пара человек, которые готовы будут вливать денег в рекламу на моих условиях. Где то по 100к рублей можно будет закупать.
Ну если игра совсем не взлетит то буду искать менее конкурентные жанры, или пойду устроюсь гречневым рабом и вечерами буду спамить ебучие кликеры.
чел.
может у меня какой-то топ другой, но даже если забить на рекламу и инсталы, ты уверен, что сможешь в одиночку хотя бы просто клонировать? да там одних художников команда нужна, ты какой-то поехавший
Ну пока получается, правда очень медленно. Два месяца я уже над игрой работаю, до релиза еще два, как я думаю. Правда уровней в релизе будет не >1000 как у топов, а около 100, но я думаю хватит, если взлетит можно будет в обновлениях уровни завозить.
Но почему по запросу в гугол мне выдают такую инфу?
>"With that said, 16% of Android developers earn over $5,000 per month with their mobile apps, and 25% of iOS developers make over $5,000 through app earnings. So keep these figures in mind if you're only planning to release on just one operating system."
Не слушайте никаких хуесосов, просто делайте.
> синтаксический сахарок
> охуенно экспрессивный язык с дохуялионом фич
Вот это "уровень" андроид-макаки, вот ета даааа
Сахарок, даун, сахарок и ничего более. Угомони свою шизу
Нет, но уже с 4 версии AGP можно подрубить coreLibraryDesugaring и юзать стримы, пакет time, опшеналы, util.Function и вот это все. Конечно на фоне того, какие там версии жабы сейчас выходят? звучит смешно, но для андроидеров и это прогресс
правильно ли я понимаю, что теперь гугл не будут ебать за использование джавовских jdkшек, и тем самым получается что и котлин им уже нахер не всрался, можно продолжать пилить \ улучшать нативную экосистему андроид?
А котлин по-твоему не использует джавовские jdkшки?
Да, теперь крайне вероятно, что гугыль может эпично переобуться в прыжке и послать на хуй джедбрайн с их унылым подельем, дабы не хуевертить очередную костыльную среду под этот шлак, и, наконец, допилить имеющеюся и завести поддержку последних версий жабы в ведройд
Первое апреля давно прошло
Нет
Ну мобилки это для самых отсталых. Примерно на уровне вротенда, но во вротенде хотя бы нужно шевелиться, чтобы поспевать за фреймворками, то есть нужно быть хотя бы не полностью овощем
Бамп вопросу. А то тут видимо шиз завёлся, ибо сказать, что вротенд сложнее мобилки может только совсем идиот сказать. Ты ещё про 1с скажи. Всё ещё жду ответов в надежде на адекватов в треде...
https://insights.stackoverflow.com/survey/2020#salary
Маня, плез.
И еще как-то смешно, что в твоем представлении популярная ниша не может быть для умственно отсталых, хотя как раз наоборот.
Объясняю на пальцах, почему я считаю, что фронт сложнее мобилок.
Возьми типичный скрин андроид приложения, и сравни его с типичным скрином веб страницы. В первом в 2-3 раза меньше различных элементов, т.е. он визуально проще.
Но фронтендер свой скрин сделает быстрее, чем андроидер. Это обусловлено излишней сложностью, кривостью и нагруженностью нативного андроид фреймворка. Можно вдаться в подробности, но не будем этого делать (ебанутый жизненный цикл, ебанутая иерархия вьюх на наследовании, и т.д.)
На фронте менее развит тулинг, поэтому фронтовикам приходится больше ебаться с этой темой самостоятельно. Они с раннего времени концептуально понимают, что они делают. В то время как андроиде человек открывает студию и может вообще не знать, ни как собрать апк из терминала, ни подрубить гит, ни adb, нихуя, это просто кнопкодав, который в 99% времени использует только . Некоторые отбитые даже хмл в гугловском обоссаном визуальном редакторе перетаскивают.
Слабая технологическая емкость. Краеугольный камень андроид прилаг это отображение обоссаных списочков. Если о ужас даже нужна пагинация (!), то это уже пиздец, тут явно работка для синьора подвалила. Кастом вью? Не, ну это мидл минимум. Espresso тесты? Ну это мидл+ а на самом деле на проекте хорошо если юнит тесты есть, а про ui тесты речь вряд ли идет Вот такие охуительные задачи приходится решать. Ну бывает работа с картами, графиками еще, но там все из готовых компонентов из либ ебошится. Что там еще, многопоточность? На клиенте в принципе все ограничивается асинхронностью, так что ненужна в подавляющем большинстве случаев. Локальный sqlite? Тоже достаточно редкий кейс, если использовать чисто для кеширования - то оверкилл, да и по секьюрности можно проебаться, и в целом чем меньше хранишь на девайсе - тем лучше. Чем больше логики на серваке - тем лучше. Все идет к тому, что клиенты становятся тупыми вьюшками для бэка, и в этом ничего плохого нет. Хуже, когда вся "умность" клиента заключается в том, что ему приходится комбинировать дохуя данных из сетевых запросов, когда бэкендеры не хотят делать логику на своей стороне и просто плюются данными из бд или респонсами от других сервисов.
Как уже сказал, фронтендерам приходится больше учиться, так как технологии быстрее меняются. В андроиде на фоне этого ничего не меняется. Конечно сейчас могут повылазить сениоры пиздаболы с воплями, что у них kmm проект с многомодульной архитектурой и UDF на мультиплафторменном компоузе в проде 5 лет, но давайте на чистоту: все, что светит подавляющему большинству людей в ближайшие 2-5 лет - clean + mvp(moxy)/mvvm(aac) + dagger + rxjava2.
Объясняю на пальцах, почему я считаю, что фронт сложнее мобилок.
Возьми типичный скрин андроид приложения, и сравни его с типичным скрином веб страницы. В первом в 2-3 раза меньше различных элементов, т.е. он визуально проще.
Но фронтендер свой скрин сделает быстрее, чем андроидер. Это обусловлено излишней сложностью, кривостью и нагруженностью нативного андроид фреймворка. Можно вдаться в подробности, но не будем этого делать (ебанутый жизненный цикл, ебанутая иерархия вьюх на наследовании, и т.д.)
На фронте менее развит тулинг, поэтому фронтовикам приходится больше ебаться с этой темой самостоятельно. Они с раннего времени концептуально понимают, что они делают. В то время как андроиде человек открывает студию и может вообще не знать, ни как собрать апк из терминала, ни подрубить гит, ни adb, нихуя, это просто кнопкодав, который в 99% времени использует только . Некоторые отбитые даже хмл в гугловском обоссаном визуальном редакторе перетаскивают.
Слабая технологическая емкость. Краеугольный камень андроид прилаг это отображение обоссаных списочков. Если о ужас даже нужна пагинация (!), то это уже пиздец, тут явно работка для синьора подвалила. Кастом вью? Не, ну это мидл минимум. Espresso тесты? Ну это мидл+ а на самом деле на проекте хорошо если юнит тесты есть, а про ui тесты речь вряд ли идет Вот такие охуительные задачи приходится решать. Ну бывает работа с картами, графиками еще, но там все из готовых компонентов из либ ебошится. Что там еще, многопоточность? На клиенте в принципе все ограничивается асинхронностью, так что ненужна в подавляющем большинстве случаев. Локальный sqlite? Тоже достаточно редкий кейс, если использовать чисто для кеширования - то оверкилл, да и по секьюрности можно проебаться, и в целом чем меньше хранишь на девайсе - тем лучше. Чем больше логики на серваке - тем лучше. Все идет к тому, что клиенты становятся тупыми вьюшками для бэка, и в этом ничего плохого нет. Хуже, когда вся "умность" клиента заключается в том, что ему приходится комбинировать дохуя данных из сетевых запросов, когда бэкендеры не хотят делать логику на своей стороне и просто плюются данными из бд или респонсами от других сервисов.
Как уже сказал, фронтендерам приходится больше учиться, так как технологии быстрее меняются. В андроиде на фоне этого ничего не меняется. Конечно сейчас могут повылазить сениоры пиздаболы с воплями, что у них kmm проект с многомодульной архитектурой и UDF на мультиплафторменном компоузе в проде 5 лет, но давайте на чистоту: все, что светит подавляющему большинству людей в ближайшие 2-5 лет - clean + mvp(moxy)/mvvm(aac) + dagger + rxjava2.
Нахуй ты тогда на двачах выебываешься перед отсталыми, умник? Тут же все долбаебы, съеби на хабр или где ты там обитаешь
Ах, вот что. Ну если этот чел хорош, то он твои высеры оценит по достоинству, так что я спокоен
А что мне делать то во что вкатываться? Фронтом я позанимался уже как-то. Пару проектов наебнул, Но фронт мне вообще не зашёл. Крайне унылая история.
Осилятор андройдного простейшего говна думает, что он освоил что-то недоступное человеку с iq 80, спешите видеть
Чет орнул с тебя, шиз. Тут наоборот все заебись - не надо каждые пол года учить очередной фреймоворковысер очередной кучи пизданутых индусов, потому что твоя чмо контора решила податься в модные тренды говноразработки на новом хайповом говне, лол. Можно спокойно сосредоточиться на запиливании охуенно эффективной архитектуры приложения для мобилы а кривизна и костыльность есть на любой платформе Все гениальное просто
Не, просто ору с дебила ИТТ, что в год зубрит с десяток новомодных нахуй никому ненужных кривых индуских фич для своей фронтенд параши и одновременно бугуртит про сложность, кривость и нагруженность единственного фреймворка для андройд, лол
> Но фронтендер свой скрин сделает быстрее, чем андроидер. Это обусловлено излишней сложностью, кривостью и нагруженностью нативного андроид фреймворка. Можно вдаться в подробности, но не будем этого делать (ебанутый жизненный цикл, ебанутая иерархия вьюх на наследовании, и т.д.)
Согласен, надеюсь компоус поможет
> На фронте менее развит тулинг, поэтому фронтовикам приходится больше ебаться с этой темой самостоятельно. Они с раннего времени концептуально понимают, что они делают. В то время как андроиде человек открывает студию и может вообще не знать, ни как собрать апк из терминала, ни подрубить гит, ни adb, нихуя, это просто кнопкодав, который в 99% времени использует только.
Тут что на фронте, что на мобилках одно и то же. Ты думаешь нет фронтендеров которые по гайду минимальную конфигурацию вебпака сделают и так и ебашат?
> Слабая технологическая емкость. Краеугольный камень андроид прилаг это отображение обоссаных списочков. Если о ужас даже нужна пагинация (!), то это уже пиздец, тут явно работка для синьора подвалила.
Не согласен, на фронте тоже есть пагинация и виртуализация списков, и много кто о ней даже не слышал.
Мне как андроид джуну и мидлу давали такие задачки.
> Кастом вью? Не, ну это мидл минимум.
Вот тут согласен, я так даже и не разбирался с этим. Ждём все тот же компоус
> Espresso тесты? Ну это мидл+ а на самом деле на проекте хорошо если юнит тесты есть, а про ui тесты речь вряд ли идет
Чувак, тоже самое на фронте, это не специфика мобилок
> Вот такие охуительные задачи приходится решать. Ну бывает работа с картами, графиками еще, но там все из готовых компонентов из либ ебошится.
Библиотеки везде используются
> Что там еще, многопоточность? На клиенте в принципе все ограничивается асинхронностью, так что ненужна в подавляющем большинстве случаев.
> Локальный sqlite? Тоже достаточно редкий кейс, если использовать чисто для кеширования - то оверкилл, да и по секьюрности можно проебаться, и в целом чем меньше хранишь на девайсе - тем лучше.
На фронте тоже есть бд и тоже редко используется
> Как уже сказал, фронтендерам приходится больше учиться, так как технологии быстрее меняются. В андроиде на фоне этого ничего не меняется. Конечно сейчас могут повылазить сениоры пиздаболы с воплями, что у них kmm проект с многомодульной архитектурой и UDF на мультиплафторменном компоузе в проде 5 лет, но давайте на чистоту: все, что светит подавляющему большинству людей в ближайшие 2-5 лет - clean + mvp(moxy)/mvvm(aac) + dagger + rxjava2.
Я может уже отстал от фронтендерской жизни, но по-моему там та же картина уже лет 5. В топе реакт, вью и ангуляр немного позади, но новых достойных конкурентов нет и не предвидится. Ну и ssr к ним. Сам реакт, например, при это не сильно эволюционировал за последние годы, функциональным компонентам уже года два, но наверняка много кто ещё на классах пишет. Даже саспенс наверно ещё не релизнули.
Так что во фронте ваш стэк на следующие 2+ года: реакт + редакс, как и предыдущие 2+ года
Субъективный вывод:
Фреймворки фронта сейчас проще чем андроидовский, но в основном из-за объема и нагруженности последнего. А в целом по сложности области примерно одинаковы. И там и там обитают как и интересные проекты и хороший код, так и скучные проекта и плохой код.
А ты, анон, похоже выгорел из-за монотонных задач.
Мимо фронтендер перекатившийся в андроид
> Но фронтендер свой скрин сделает быстрее, чем андроидер. Это обусловлено излишней сложностью, кривостью и нагруженностью нативного андроид фреймворка. Можно вдаться в подробности, но не будем этого делать (ебанутый жизненный цикл, ебанутая иерархия вьюх на наследовании, и т.д.)
Согласен, надеюсь компоус поможет
> На фронте менее развит тулинг, поэтому фронтовикам приходится больше ебаться с этой темой самостоятельно. Они с раннего времени концептуально понимают, что они делают. В то время как андроиде человек открывает студию и может вообще не знать, ни как собрать апк из терминала, ни подрубить гит, ни adb, нихуя, это просто кнопкодав, который в 99% времени использует только.
Тут что на фронте, что на мобилках одно и то же. Ты думаешь нет фронтендеров которые по гайду минимальную конфигурацию вебпака сделают и так и ебашат?
> Слабая технологическая емкость. Краеугольный камень андроид прилаг это отображение обоссаных списочков. Если о ужас даже нужна пагинация (!), то это уже пиздец, тут явно работка для синьора подвалила.
Не согласен, на фронте тоже есть пагинация и виртуализация списков, и много кто о ней даже не слышал.
Мне как андроид джуну и мидлу давали такие задачки.
> Кастом вью? Не, ну это мидл минимум.
Вот тут согласен, я так даже и не разбирался с этим. Ждём все тот же компоус
> Espresso тесты? Ну это мидл+ а на самом деле на проекте хорошо если юнит тесты есть, а про ui тесты речь вряд ли идет
Чувак, тоже самое на фронте, это не специфика мобилок
> Вот такие охуительные задачи приходится решать. Ну бывает работа с картами, графиками еще, но там все из готовых компонентов из либ ебошится.
Библиотеки везде используются
> Что там еще, многопоточность? На клиенте в принципе все ограничивается асинхронностью, так что ненужна в подавляющем большинстве случаев.
> Локальный sqlite? Тоже достаточно редкий кейс, если использовать чисто для кеширования - то оверкилл, да и по секьюрности можно проебаться, и в целом чем меньше хранишь на девайсе - тем лучше.
На фронте тоже есть бд и тоже редко используется
> Как уже сказал, фронтендерам приходится больше учиться, так как технологии быстрее меняются. В андроиде на фоне этого ничего не меняется. Конечно сейчас могут повылазить сениоры пиздаболы с воплями, что у них kmm проект с многомодульной архитектурой и UDF на мультиплафторменном компоузе в проде 5 лет, но давайте на чистоту: все, что светит подавляющему большинству людей в ближайшие 2-5 лет - clean + mvp(moxy)/mvvm(aac) + dagger + rxjava2.
Я может уже отстал от фронтендерской жизни, но по-моему там та же картина уже лет 5. В топе реакт, вью и ангуляр немного позади, но новых достойных конкурентов нет и не предвидится. Ну и ssr к ним. Сам реакт, например, при это не сильно эволюционировал за последние годы, функциональным компонентам уже года два, но наверняка много кто ещё на классах пишет. Даже саспенс наверно ещё не релизнули.
Так что во фронте ваш стэк на следующие 2+ года: реакт + редакс, как и предыдущие 2+ года
Субъективный вывод:
Фреймворки фронта сейчас проще чем андроидовский, но в основном из-за объема и нагруженности последнего. А в целом по сложности области примерно одинаковы. И там и там обитают как и интересные проекты и хороший код, так и скучные проекта и плохой код.
А ты, анон, похоже выгорел из-за монотонных задач.
Мимо фронтендер перекатившийся в андроид
> быдло фронтендер перекатившийся в быдло андроид
Своим ответом ты частично подтвердил его слова. Не скажу о фронте, но в ведре ты очень плох
Ну ок, учитывая, что я про андроид 2 слова написал, это о многом говорит
А что, есть возражения?
На джаву. В чем-то на свифт
Как вообще таски интересные? По деньгам как вообще в индустрии вашей? Сложно перекат из другой сферы ит организовать?
Последние так 100 постов это как раз и обсуждают. Скроль тред вверх и не еби мозг. Там все ответы на твои вопросы
Вот я писал, читай: >>1988498 >>1988988
По срокам еще месяца за два я думаю доделать.
В сумме получится 4 месяца на разработку, при том что я полный ноль в программировании. По началу работал в режиме 5 минут кодинга/час на гугление почему нихуя не работает. Сейчас уже более менее разобрался с логикой языка и самой Android Studio, пишу в десятки раз быстрее. Стараюсь не сбавлять темп, даже в выходные по паре часов уделяю своему проекту.
В чем профит использовать потоки через Сервисы?
Почему нельзя просто стартануть поток и где-нибудь в @onStop его зарезать, в чём тут подводные камни?
Переформулирую: через чо щас потоки прокладывают для сетевой i/o-bound хуиты??7
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
ПЕРЕКОТ https://2ch.hk/pr/res/1994880.html (М)
Слабо понимаю с чего это сервисы стали вдруг устаревшими вы, мил государь, часом не путаете их с AsyncTask? Помимо сервиса и его производных, как такового, есть WorkManager/AlertManager, Firebase. На основе этого всего, при должном понимание процессов, можно решить практически любую задачу по пропердоливанию своего говна в фоне в свои же говнобазы/сайты
Попутал с интентсервисом, гугол предлагает юзать WorkManager or JobIntentService
Ладно спс за наводку.
Опубликовал свои объявления везде, где смог hh, vk, reddit, но отклик слабый. Только доебывают рекрутеры, которые пишут мне с фулл-тайм работой, когда я однозначно указал в резюме только парт-тайм.
Интересует в контексте андроид/иос кросплатформы под энтерпрайз
Это копия, сохраненная 25 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.