Программирование

Ответить в тред Ответить в тред
Android Development thread 2021 /android/ Аноним 12/01/21 Втр 13:07:34 19081851
1.jpg 4Кб, 250x125
250x125
2.jpg 5Кб, 250x176
250x176
3.jpg 2Кб, 250x140
250x140
4.jpg 4Кб, 250x138
250x138
Android Development Thread #1 в 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
Аноним 12/01/21 Втр 13:23:56 19081982
>>1908191 →
Не сказал бы, асинктаски были очень даже популярны (особенно среди нубов). Даже сейчас, например в этом тредике, можно наблюдать вкатунов которые по каким-то устаревшим гайдам тащат себе в код депрекейтед асинктаски.
Аноним 12/01/21 Втр 13:27:08 19082003
>>1908198
Я нубас, почитав шапку и чуть прогуглив, не увидел некоторых технологий которые видел в гайдах, давольно старых, старьё не стоит изучать для вкатуна?
Аноним 12/01/21 Втр 13:31:33 19082024
У вас шапка старая
Аноним 12/01/21 Втр 13:32:38 19082045
Аноним 12/01/21 Втр 13:35:09 19082056
Чуваки, напишите мне простую прилагу с рисованием чего нить на surfaceview, с pipeline-ом, обработкой нажатий от пользователя, такой задел для игры
Аноним 12/01/21 Втр 13:36:10 19082067
Аноним 12/01/21 Втр 13:40:12 19082128
>>1908200
Ну на старых проектах можно офк встретить и старье, но учить прежде всего нужно новое и актуальное. Старое спецом учить очень сомнительно, нужно будет - нагуглишь.
Аноним 12/01/21 Втр 13:40:53 19082149
>>1908205
Зачем писать игру на чистом андроиде?
Аноним 12/01/21 Втр 13:41:01 190821510
Аноним 12/01/21 Втр 13:52:16 190822011
>>1908214
Зачем вообще писать игр для мобилок?
Аноним 12/01/21 Втр 13:55:30 190822312
>>1908220
Чтоб заработать. А вот зачем в них играют - для меня загадка. Дерьмо же полнейшее, но тем не менее. Лично знаю одного дядьку под 60 лет, который лежит по пол дня на диване и строит ебучие замки в Guns of Glory со своего некро-сяоми. Лучше уж бы танки скачал, как нормальный подпивас....
Аноним 12/01/21 Втр 14:07:35 190822913
>>1908197 →
Я начинал карьеру в апворк-шлюпке (сейчас чекнул, по итогу 20к+ заработано, 1100 часов, 90% джоб саксесс) и как по мне апворк это самое днище мира разработки. Все друг друга хотят наебать, рейты мизерные, код говно, сами проекты впрочем тоже. Если даже работать напрямую самому не отдавая % конторе - как по мне это очень сомнительная затея.

Ей богу, лучше сидеть в офисе, получать свои 3-4 килобакса чем участвовать в этой драке с индусскими бомжами за каждую сотню баксов.

Хочешь работать на себя - лучше тогда самому снять подвал, взять несколько вкатунов посмышленнее, втюхать их как мидлов кому-то, присматривать за ними чтоб код был не полное говно и иметь с этого профит.
Аноним 12/01/21 Втр 14:09:39 190823214
Аноним 12/01/21 Втр 14:37:55 190825215
Аноним 12/01/21 Втр 14:41:40 190825916
>>1908229
Просто ты неосилятор. С индусами конкурировать - себя не уважать. Белый человек может сразу 30$ за час просить
Аноним 12/01/21 Втр 14:49:04 190826417
>>1908259
Белый человек найдет нормальную удаленку на $3-$5к.
Аноним 12/01/21 Втр 14:56:34 190827218
Аноним 12/01/21 Втр 16:42:54 190832219
>>1908205
На чистом ведре игры пишут?
Удобно?
Аноним 12/01/21 Втр 17:24:46 190833820
Тупой вопрос от вкатыша-нюфага

Поч в TextView нету выравнивания текста по ширине?
На стаковерфлоу пишут что только через костыль WebView либо отдельную либу подключать

Там какой то подводный камень есть, или почему гугл это сделать не может? Тогда почему либа смогла такое реализовать а гугл нет?

или всё таки я в глаза ебусь?
Аноним 12/01/21 Втр 17:25:08 190833921
на JS можно писать приложения?
Аноним 12/01/21 Втр 18:44:18 190844022
>>1908338
>Поч в TextView нету выравнивания текста по ширине?
Есть, android:gravity="center_horizontal"
Аноним 12/01/21 Втр 18:55:33 190845023
>>1908440
Это разве выравнивает текст? Он же просто за позиционирование внутри отвечает, а мне надо было чтобы просто текст и слева и справа был выровнен

Всё таки я в глаза ебался, не знал что Justify и означает то что я ищу, сразу бы решение нагуглил

вот решение которое нашел textView.justificationMode = JUSTIFICATION_MODE_INTER_WORD
только оно андройд 8 версии требует, как я понял




Аноним 12/01/21 Втр 20:27:54 190855324
>>1908185 (OP)
Привет, аноны! Скажите по своему опыту, в мобилки же не возьмут вкатыша без высшего образования, будь у меня хоть десяток приложений в портфолио?
И еще, все эти игры в топе гугл плея пишутся не на котлине, а на решетках или плюсах?
Аноним 12/01/21 Втр 20:36:43 190856025
>>1908553
Я вот пытаюсь вкатиться с гуманитарной вышкой.
Аноним 12/01/21 Втр 20:39:08 190856326
>>1908560
Мне осталось 7 месяцев до 21 года. Тогда у всех моих одногодок уже будет образование, а мое резюме с 11 классами образования будет отлетать автоматически в корзину.
Аноним 12/01/21 Втр 20:41:18 190856427
>>1908563
Серьезно думаешь, что наличие гуманиторной корочки для программиста так уж лучше, чем отсутствие корочки вообще?
Аноним 12/01/21 Втр 20:44:38 190856628
>>1908564
Абсолютно. Отец говорит (у него 20 лет опыта в менеджменте), что любой бакалавр маркер того, что человек не конченный долбаеб.
12/01/21 Втр 21:33:43 190862229
Аноним 12/01/21 Втр 22:08:08 190865530
>>1908185 (OP)
Всех с перекатом, ну и с грядущим старым новым годом!

Назрел вопрос, андроидинисты
Хочу, чтобы у меня на заднем фоне картинка динамически менялась.
И у меня это получилось!
https://pastebin.com/nHgNFdXq
Но возникло два вопроса
1) Как избавиться от deprecated, есть ли какой-то "бестпрактис" на этот счет
2) и самое важное: Я проворачиваю такое с картинками, а есть вариант провернуть аналогичное с текстом? Речь про то, что есть поле с текстом, которое будет динамически каждую секунду меняться, текст беру все так же из object
AnimationText нет, ничего подобного нет, инторнет молчит
Аноним 12/01/21 Втр 22:53:43 190871231
>>1908655
2) Сделай флоу, который будет с задержкой в секунду выдавать значения из твоего списка, после чего вызывай flow.collect { textView.text = it }
Аноним 12/01/21 Втр 23:27:31 190875332
>>1908712
А есть работающий простой (относительно) пример этого flow?
Раньше подобным не занимался
На каком-то сайте нашел, он мне все красным подчеркивает, и ничего не предлагает импортировать
Слова flow и asFlow студия у меня не знает.
Аноним 13/01/21 Срд 07:26:08 190886333
>>1908185 (OP)

планирую в будущем написать несколько приложух и тута вопрос, чем какой-нить котлин\джава будут лучше react native + django\flask\express, в каких случаях используют одно, а в каких другое?
Аноним 13/01/21 Срд 09:00:54 190887734
>>1908753
Ладно, давай без флоу.
В build.gradle добавь зависимость для корутин (кстати, именно поэтому у тебя не работал флоу - ведь флоу часть корутин)
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2'
https://pastebin.com/aM1dz0SU
Аноним 13/01/21 Срд 09:05:08 190888035
>>1908655
По поводу первого вопроса - в самих доках написано, что использовать вместо deprecated -
This method was deprecated in API level 22.
Use getDrawable(int, android.content.res.Resources.Theme) instead.
Аноним 13/01/21 Срд 11:56:05 190893236
>>1908863
У кроссплатформы пизда с отзывчивостью интерфейса
Аноним 13/01/21 Срд 15:28:10 190904037
>>1908553
>не возьмут вкатыша без высшего образования
Зависит от тебя и твоих знаний, придется с большим усердием доказывать свою компетентность.
>игры в топе гугл плея
Юнити
>>1908564
>так уж лучше, чем отсутствие корочки вообще
Если у человека есть любое высшее образование, значит есть вероятность, что он либо способен обучаться, либо имеет иные полезные качества, которые позволили ему получить его. Не важно, является оно техническим или гуманитарным, важен сам факт его наличия.
>>1908566
Он прав, это своеобразный фильтр
Аноним 13/01/21 Срд 16:11:12 190907738
>>1908553
>не возьмут вкатыша без высшего образования
ни разу нигде не спрашивали про диплом
всем плевать. смотрят на навыки
Аноним 13/01/21 Срд 16:51:36 190910939
А андроид-разработка сильно отличается от веб-фронтэнда?
Просто я когда смотрел про фронтэнд обучалки мне он не зашел. И приятель есть фронтэндер-джун. То что он делает на работе по его рассказам какая-то мудота унылая. Куча танцев вокруг гуя и самая капелька логики.
Сейчас учу джаву. Думаю куда после кора в спринг или в андроид. Мне казалось, что в андроиде логики побольше, но намного ли? Ну в типичных задачах имеется ввиду.
Аноним 13/01/21 Срд 17:44:15 190914740
>>1909109
Что iOS, что Android те же танцы вокруг гуя, но интереснее и на более приятных ОО языках. Как по мне то лучше. Сам я перекатился с фронтенда.
Аноним 13/01/21 Срд 17:53:53 190915541
>>1909147
Ну и логики все же на порядок больше чем во фронте
Аноним 13/01/21 Срд 18:03:28 190916342
>>1909155
Я просто сейчас статью на хабре наискосок про переписывание приложухи втб пролистал и мне показалось, как будто статья про фронт.
Аноним 14/01/21 Чтв 08:16:47 190967643
>>1908264
Чем она лучше, чем фриланс?
Если нет цели заработать все деньги.
Аноним 14/01/21 Чтв 16:23:20 190991244
Откуда лучше кодить на андроид, из под линукса или винды?

Гуглю, везде первой системой упоминается линукс.

Значит ли это, что с линукса удобнее кодить под андроид?
Аноним 14/01/21 Чтв 16:29:20 190991745
>>1909912
Макось винда тоже норм
Аноним 14/01/21 Чтв 16:42:23 190992446
>>1909917
А если собираюсь заниматься портированием прошивок, то что лучше выбрать?

В гайдах по портированию чаще юзают командную строку линукс и вводят линуксовые же команды
Аноним 14/01/21 Чтв 18:23:33 191000147
>>1909912
Под чем хочешь
На винде сейчас все равно есть WSL
Аноним 14/01/21 Чтв 19:25:59 191006748
Котаны, а как лучше общую для нескольких фрагментов ViewModel прокинуть внутрь фрагментов?
Можно ли использовать даггер2 выбрав ActivityScope?
Аноним 14/01/21 Чтв 20:56:01 191012749
>>1909040
>Юнити
Это же на C#, не? И ему нет альтернатив как я понял.
Аноним 14/01/21 Чтв 21:29:03 191017250
>>1910127
>C#
Да.
>нет альтернатив
UE, GoDot, Cocos3d, LibGDX. Ты спросил об играх в топе. Учитывая то, что Юнити используется чаще, топовых игр на нём больше.
Аноним 14/01/21 Чтв 21:46:07 191019351
>>1910172
Юнити пустой апк весить 20мб. Хотя в развитом мире это мб и не важно
Аноним 14/01/21 Чтв 21:47:46 191019652
>>1910172
Это был другой Анон.
Но мне тоже интересно, юнити, имеет большое сообщество, кроссплатформенность и возможность в будущем делать не только говноигры для гугл плея, но и говноигры для стима.
Есть смысл использовать для мелких проектов, что-то еще?
Аноним 14/01/21 Чтв 22:54:51 191025253
>>1910196
Нужно учитывать, что Юнити-проекту свойственно полностью зависеть от движка, из-за чего он не может быть сегментирован. Написал на Юнити, собрал, выпустил. В тех случаях, когда эта сегментированность необходима и в приложение хочется впилить кусок "игрушечной" интерактивщины, хорошим вариантом, позволяющим абстрагироваться от низкоуровневой реализации, является LibGDX. В этом плане он довольно гибкий.
Аноним 15/01/21 Птн 00:37:37 191034754
Что побудило разработчиков андроида использовать в нём убогий jvm, из-за которого у всех поголовно теперь интерфейс лагает?
Аноним 15/01/21 Птн 03:30:33 191041755
>>1908566
В средних университетах вообще же нихуя не надо делать, чтобы не вылететь
Аноним 15/01/21 Птн 04:49:43 191042656
Аноним 15/01/21 Птн 10:01:45 191047957
>>1910347
Вот был у меня телефон с 512мб озу, тогда лагало, поменял на 4гб - ничего не лагает. Классическое решение проблем с явой - просто поддай озу! А если серьезно, то что бы ты предложил использовать?
Аноним 15/01/21 Птн 11:30:40 191051058
>>1910347
Желание как можно быстрее забить стор миллиардом приложении
Аноним 15/01/21 Птн 13:38:32 191060459
>>1910479
> А если серьезно, то что бы ты предложил использовать?
А в чем проблема использовать обычные скомпилированные приложения?
Аноним 15/01/21 Птн 13:46:00 191061060
Сап
~Год назад перевели с фронтенда на андроид.
За это время был на поддержке нескольких проектов, еще несколько сделал с нуля.
В целом научился делать приложения так, как у нас их делают в компании(java, moxy, без rx'a). Еще понял, что похоже на андроиде есть миллион способов сделать что-то, и никто не знает как сделать лучше, поэтому каждый костылит как может(например навигация).
В общем реквестирую эталонных по вашему мнению более-менее современных проекты на гитхабе, с разными подходами к разработке.

>>1908863
Нативная против react-native(django\flask\express - это бекэнд, к мобилке не относится).
Выбирай rn, если:
- ты уже знаешь js и react
- тебе не важен размер приложения и скорость его запуска
- тебе нужна кроссплатформа
- тебе не нравится нативная разработка, но ты хочешь сделать приложение
В остальных случаях натив
Аноним 15/01/21 Птн 14:38:07 191066561
>>1910610
>как у нас их делают в компании
>java
плохо
>moxy
плохо
>без rx'a
джава без rxa? Ребят, вы из 2015 капчуете?

С таким стеком в 2021 году вам в айти нечего делать имхо. Изучай и посоветуй всем своим мввм, котлин, корутины, livedata. То, что ты перечислил для нынешнего времени - это катастрофа.
Аноним 15/01/21 Птн 14:44:39 191066762
>>1910665
> java
> плохо
На котлин уже переходим со следующего проекта

> >moxy
> плохо
Почему? Чем mvvm лучше mvp?

> rx
Я rx еще на фронте не понимал, хотя там с асинхронщиной проще. Но все-таки зачем он? Мы просто коллбэки в моделе используем...
Аноним 15/01/21 Птн 14:48:47 191067063
>>1910667
>Почему? Чем mvvm лучше mvp?
тем, что recomended by google. А также тем, что позволяем легко обрабатывать ситуации с поворотами экранов и переходом по фрагментам, когда вьюшка предыдущего убивается, но ты можешь на него вернуться. Да и просто мвп уже сам по себе морально устарел.

>Я rx еще на фронте не понимал, хотя там с асинхронщиной проще. Но все-таки зачем он? Мы просто коллбэки в моделе используем...
Многопоточность, паттерн обсервер, который ты можешь заюзать в куче мест. А колбек-парадигма как бы тоже устаревает. Обсерверы ты можешь красиво вязать между собой, а с колбеками, когда у тебя множество независимых операций, в коде становится нечитабельный ад.
Аноним 15/01/21 Птн 14:56:16 191068264
>>1910670
> коде становится нечитабельный ад.
У нас обычно становится менее читаемым из-за MPV, на по сути одну операцию может быть несколько отображений, несколько отображений ошибок и несколько оторажения загрузок, из-за этого в презентере становится много кода и его тяжело переиспользовать.
Понял, посмотрю. Спасибо
Аноним 15/01/21 Птн 16:31:26 191076665
>>1910670
А чем паттерн обсервер отличается от колл бэков? И там и там участок кода выполняется после триггер же
Аноним 15/01/21 Птн 19:41:28 191099166
>>1910766
разница в семантике, даже если реализация похожа. Всегда разница в семантике.
семантика калбэка - быть вызванным в конце операции или многократно в ее процессе с целью сделать что-то дополнительное.
семантика обсервера - вызываться на событиях, вызывающий код не ждет никакого результата от калбэка, а также обсервер может быть в любой момент отписан и переподписан и код об этом знает.
Аноним 15/01/21 Птн 19:44:24 191099667
>>1910667
>Почему? Чем mvvm лучше mvp?
Как паттерн - отвязка от гуи. вьюмодель меняет только свое состояние и в ус не дует, что там где чего рисуется. Ну а биндинги довершают дело, позволяя декларативно соединить вид с вьюмоделью.
Аноним 16/01/21 Суб 03:25:52 191146168
>>1910610
спасибо, не понял по поводу
> django\flask\express - это бекэнд, к мобилке не относится

я за архитектуру приложений мобильных не шарю, но чо ваще реакт может без бекенда? А если надо чо-то из бдшки прочитать, или я хочу встроить какую-нить мл модельку, реакт это может? Жс понятно может, но с бекендом как-то логичнее все, не?
Аноним 16/01/21 Суб 06:55:58 191148369
>>1911461
> реакт может без бекенда
В теории все то же, что и нативное приложение

> А если надо чо-то из бдшки прочитать
Также как и для натива, есть локальные бд: realm, watermelondb, sqlite и т.д.

> я хочу встроить какую-нить мл модельку
Тут не скажу, но раз говоришь жс сможет, значит и на рн получится

> но с бекендом как-то логичнее все
Нужен бекенд или нет зависит не от технологии на фронтенде, а от бизнесовой задачи.
Например, два анона решили сделать приложение с тудушками:
Один хранит тудушки локально, сохраняет в sqlite, ему понятно бекенд не нужен
Второй захотел чтобы тудушки синхронизировались между устройствами, значит для двух условных устройств нужен один источник данных, локальная бд уже не подойдет, поэтому анон пишет сервак, создает в бд пользователей и тудушки, делает между ними связь, пишет апи для клиента
Аноним 16/01/21 Суб 09:14:08 191149870
>>1911483
спасибо ра разъяснение, крч как я понял если приложение не веб типа блога бекенд не нужон
Аноним 16/01/21 Суб 17:00:54 191194571
Здесь есть мидлы?
В приложении несколько источников данных внутри foreground service, нужно сделать переключение между источниками. Далее эти данные отображаются в UI.

Планирую создать repository с application scope, внутри которого буду подключать к MediatorLiveData тот источник данных, который мне нужно использовать в данный момент, а к MediatorLiveData уже подписываться внутри ViewModel тех фрагментов, где эти данные нужно отобразить.

Нормально ли решение?
Аноним 16/01/21 Суб 19:49:36 191210972
.PNG 31Кб, 826x346
826x346
Кто пояснит, что здесь происходит?
Аноним 16/01/21 Суб 19:55:44 191211873
>>1912109
Мсье открыл для себя рекурсию? Сия функция углубляется внутрь себя до тех пор, пока не дойдет до конца массива, после чего возвращается максимальное целое число. Потом рекурсия начинает раскручиваться - на каждой "раскрутке" сравнивается текущее значение массива и результат рекурсии - и возвращается на предыдущий уровень меньшее значение.
Аноним 16/01/21 Суб 21:46:06 191220374
>>1911945
По красоте слой данных (репозиторий) не должен содержать платформо-зависимого кода (андроидовской лайвдаты, например). Лучше используй корутиновский флоу и посылай в него то, что тебе надо, а обрабатывай для гуя этот флоу уже лайвдатой
Аноним 17/01/21 Вск 06:07:15 191242775
Аноним 17/01/21 Вск 15:02:15 191272576
Котаны, а зачем обязательно нужна ViewModel, если на источник данных можно подписаться непосредственно внутри Fragment?
Аноним 17/01/21 Вск 18:24:21 191296177
>>1912725
Разнести логику, стейт и представление. Сохранять состояние и данные при пересоздании ui компонентов.
Аноним 17/01/21 Вск 18:51:29 191301378
АРазнести логику, стейт
Аноним 17/01/21 Вск 20:17:05 191324479
>>1912725
Обычно внутри viewmodel находится логика преобразования данных для представления. Хотя бы по этой причине стоит использовать viewmodel.
Аноним 18/01/21 Пнд 10:02:14 191388780
Кто-нибудь в соло зарабатывает на приложухах или играх под андроид, выкладывая их в гугл плей? Какие подводные? Насколько тяжело зарабатывать на этом хотя бы прожиточный минимум?
Аноним 18/01/21 Пнд 10:20:57 191389881
>>1913887
Я, зарабатываю 300к\сек, довольно просто
Аноним 19/01/21 Втр 12:07:27 191496982
>>1911945

Удваиваю вопрос, схожая задача и у меня и я нихуя пока не придумал годного
Аноним 19/01/21 Втр 14:07:16 191516083
>>1913244
По-хорошему эту логику в маперы выносят
Аноним 19/01/21 Втр 17:16:13 191532384
>>1908185 (OP)
Сколько примерно это изучается?
>Roadmap анона из предыдущего треда:

>Основы программирования, логические операции -> Джава(базовый синтаксис и особенности языка) -> ООП -> особенности различных версий Джава -> алгоритмы и структуры данных -> многопоточность -> дженерики -> функции высшего порядка -> Котлин -> Android SDK(UI, версии и различия, особенности оси на уровне работы виртуальной машины) -> работа с БД, CRUD(можно и на этапе знакомства с алгоритмами) -> git -> networking/REST API/JSON/сериализация -> актуальные фреймворки зачем и почему, спойлер: экономия времени -> архитектура, зависимости, инверсия контроля -> ?..

>Вот примерный флоу, которому я бы следовал, если бы учился сейчас
Сейчас начал изучать Java. Я понимаю что всё зависит от меня, но всё же школьник 10 класс
Аноним 19/01/21 Втр 19:15:34 191550585
>>1915323
.Охуенные у тебя вопросы. Ну если ты мотивирован, а не ленивое хуйло, то за 2-3 года все это на среднем уровне изучишь.

Однако это при условии, что через год уже пойдешь РАБотать.И еще через год сменишь свой бодишоп на другую контору
Аноним 19/01/21 Втр 19:24:04 191551586
Аноним 19/01/21 Втр 19:49:49 191553787
image.png 66Кб, 736x551
736x551
>>1915515
Литерали первый пост
Аноним 19/01/21 Втр 20:41:56 191559288
Почему android, а не веб с пва/мобильной версией в браузере?
Аноним 19/01/21 Втр 20:53:01 191560389
>>1915592
Не удобно
Манипулировать несколькими такими приложениями как минимум
Ну и они быстрее и отзывчивее
Так же есть полезные штуки как сервисы и тд
И в целом намного легче работать с файловой системой
Аноним 19/01/21 Втр 21:31:23 191566190
Аноним 19/01/21 Втр 21:49:31 191567791
>>1915661
Проснись маня, для бизнеса важно чтобы:
@ работало
@ как можно скорее запиливалось и приносило бабки.

Конечно, если у тебя в разработчиках гений, готовый ебашить сутками и всегда разобраться в собственном говне
Аноним 19/01/21 Втр 21:53:21 191568792
>>1915677
>Конечно, если у тебя в разработчиках олимпиадники
Пофиксил. Эти ребята где-то там даже свой xml изобрели лол
Аноним 19/01/21 Втр 22:05:57 191570993
Аноним 19/01/21 Втр 22:09:24 191571894
>>1915661
В конце января у них будет тестовое задание на аутсорс на анимации по Андройду.
Аноним 19/01/21 Втр 22:13:06 191572495
>>1915718
судя по всему, им понравится мой код лол
Аноним 20/01/21 Срд 01:25:47 191593196
>>1915323
> Джава(базовый синтаксис и особенности языка)
> особенности различных версий Джава
Нахуя, если потом пересадка на Котлин?
Аноним 20/01/21 Срд 08:48:19 191607997
>>1915931
Ты же не думаешь, что на работе тебе дадут с нуля писать прогу на котлине? Дохуя легаси кода осталось на жабе и его нужно поддерживать.
Аноним 20/01/21 Срд 14:56:16 191627598
Котаны, а как сделать по MVVM следующее?
Есть repository, который предоставляет доступ к LiveData<UPNPState>, далее внутри ViewModel через map трансформируем в LiveData<ViewState>, но в процессе трансформации используются настройки из SharedPreferences, и нужно чтобы map вызывался не только при изменении UPNPState, а еще и при изменении SharedPreferences.
Как это правильно сделать?
Аноним 20/01/21 Срд 21:15:18 191663399
Аноним 21/01/21 Чтв 13:10:42 1917038100
ЕОК.
Есть один ключ. Его надо где-то хранить, чтобы не спиздили. По крайней мере максимально заморочились, чтобы спиздить. Есть 2 варианта:
1. В приложении в стриговых ресурсах с обфускацией.
2. В наружи в фаербейсе.
Где лучше и почему? Есть ли варианты получше?
Аноним 21/01/21 Чтв 14:17:57 1917091101
>>1917038
В гредл файле, там где buildTypes. Гредл не будет вскрыт никакой обфускацией.
Аноним 21/01/21 Чтв 14:24:43 1917100102
152011965514007[...].jpg 30Кб, 552x360
552x360
Аноним 21/01/21 Чтв 14:52:31 1917115103
>>1917091
Почему не будет вскрыт? Поясни? 1 раз слышу, что в градле что-то можно хранить, но уже вижу по гуглу, что там пытаются хранить api ключи.
Аноним 21/01/21 Чтв 15:08:19 1917125104
>>1917038
Зашей в ресурсы неприметную картинку в которой по фиксированному смещению будет зашифрованы номера пикселей, в которых зашифрован ключ.
Аноним 21/01/21 Чтв 15:11:25 1917127105
>>1917115
Также декомпилится и вскрывается.
>>1917125
Можно из /fur что-то притащить для отвлекающего маневра.
Аноним 21/01/21 Чтв 15:50:22 1917175106
>>1917127
>Можно из /fur что-то притащить для отвлекающего маневра.
Бля)))
Аноним 21/01/21 Чтв 16:44:58 1917228107
>>1917175
А что, хуй догадается зачем там это.
Будут думать, что это пасхалка..
Аноним 21/01/21 Чтв 17:13:22 1917252108
>>1917228
Возьму, декомпильну, забью название файла и посмотрю что происходит. По опыту, сложнее всего декомпилять so шки нативные. Ну или мне просто лень было разбираться
Аноним 21/01/21 Чтв 17:35:53 1917274109
>>1917228
Декомпилится же легко всё сейчас или нет?
Аноним 21/01/21 Чтв 17:59:24 1917308110
Шиш(кукиш,дуля,[...].jpg 151Кб, 1632x1224
1632x1224
>>1917252
Вот туда зашей запороленный архив в const массив с PNG следующего содержания.
Аноним 21/01/21 Чтв 19:20:44 1917405111
image.png 104Кб, 270x480
270x480
Screenshot58.png 96Кб, 271x475
271x475
Аноны, подскажите по библиотекам для редактирования изображений.

Мне нужно взять фото (снять или выбрать из галереи), отправить его в редактор, где можно было бы применить фильтры, обрезать. Не обязательно дохуя фильтров, но чтобы были базовые.

Я не могу найти такую библиотеку - везде предлагают только API чтобы программно примеить фильтр и прочее, и нигде нет уже готового UI редактора.

Самое нормальное что я нашел - https://github.com/burhanrashid52/PhotoEditor

И там есть скриншоты UI, хотя по факту это видимо лишь пример какой UI возможен. (или я нихуя не понял)
Аноним 21/01/21 Чтв 19:23:27 1917410112
>>1917405

Еще забыл - оч годно выглядит вот это: https://photoeditorsdk.com/mobile-sdk

Но оно, сцуко, платное, а у меня нон-профит прожект по сути, не оче хочется ПЛОТИТЬ. Хотя если ничего не найду подобного то придется.
Аноним 22/01/21 Птн 11:38:32 1917910113
>>1917127
>Также декомпилится и вскрывается.
Впервые слышу, похоже на пиздешь. Возьми с маркета любую апкшку и вытащи из нее гредл файл. Как уже заметил анон выше, нормальная практика хранить с нем ключи и пароли для подписи апк файлов, а также всякие переменные с эндпоинтами и апикеями, их ты никаким образом не вытащишь.

Аноним 22/01/21 Птн 12:01:08 1917923114
>>1917910
И че эти ключи потом в приложении не оказываются если там используются? С подписями и т.п. понятно, но тут же надо спрятать ключ, который в самом приложении используется
Аноним 22/01/21 Птн 20:31:52 1918347115
>>1917910
Челик просто не шарит, прям вообще не шарит, но советы раздавать горазд
Аноним 22/01/21 Птн 20:42:24 1918354116
>>1917910
Ой бля, так ты тоже нуб
>, их ты никаким образом не вытащишь.
Пиздец, ну и довены тут сидят, надеюсь вы все ждуны?
Хотя это же заебись, мне легче при необходимости в чужих апк ковыряться
Аноним 23/01/21 Суб 00:37:50 1918646117
Кто-нибудь использует сишку или плюсы с проектами для Андроида? Для оптимизации, геймдева, Qt или просто как другая серверная часть проекта? Каково это, стоит ли, часто ли применяется?
Аноним 23/01/21 Суб 07:54:01 1918895118
>>1918646
>часто ли применяется
Не часто, в 90% случаев хватает жавы/котлина
>геймдева
Вот тут используется обычно юнити/анреал

Аноним 23/01/21 Суб 11:33:13 1918933119
image.png 20Кб, 487x176
487x176
как без помощи мышки закрывать вот эти объявления в сутдии?
Аноним 23/01/21 Суб 13:08:37 1918985120
Screenshot20210[...].jpg 420Кб, 1080x2340
1080x2340
Почему приложение Тинкова такое говно?
Стоит переключить вкладку, как начинается загрузка всего говна по новой. Все постоянно прыгает куда-то, обновляется у меня на глазах. Угаманись, сука! Чё ты там грузишь и обновляешь постоянно? Ты мог все скачать за 1 секунду загрузки при запуске.
Ну и опять в чате вместо пишет мне null%
Спасибо хоть не крашнулось.
Это типа сейчас норм так делать? У Сбера такое же говно. Как будто одна контора делала.

А вот у Рокетбанка мне нравится. Только они закрываются.
Аноним 23/01/21 Суб 13:16:00 1918992121
Screenshot20210[...].jpg 211Кб, 1080x2340
1080x2340
При переключении с вкладки сервисы на платежи иконки "По номеру телефону" моргают так как будто их нажали. Отрабатывает анимация нажатия, короче. Вот сами проверьте.
Аноним 23/01/21 Суб 13:18:37 1918993122
Screenshot20210[...].jpg 367Кб, 1080x1908
1080x1908
При открытии Настроек там генерируется какой то пункт меню и тут же исчезает. Второй по списку. И это на глазах у меня. Стоит перейти на главный экран, а потом вернуться к настройкам и они будут грузиьться как первый раз.
Аноним 23/01/21 Суб 13:22:17 1918996123
Уведомления при оплате приходят как будто их только из базы вытащили. Все латиницей какие-то числа непонятные, код магазина или ещё чего-то.
Аноним 23/01/21 Суб 14:48:42 1919056124
>>1918996
Ты думаешь, что в здесь сидят разрабы того приложения, что ты постишь все это?
Аноним 23/01/21 Суб 15:19:28 1919092125
>>1919056
Ну надо же было где-то это запостить.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов