Этого треда уже нет.
Это копия, сохраненная 8 декабря 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Android Development Thread /android/ 1270595 В конец треда | Веб
Android Development Thread

Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.

> Хочу вкатиться в разработку под Android! С чего начать?


С видеокурсов от Udacity. Они бесплатны и затрагивают основы разработки даже если не умеешь писать на Java.
https://www.udacity.com/course/android-development-for-beginners--ud837
Для тех, кто не хочет учиться по юдасити существует скучный кат от гугла: http://developer.android.com/training/index.html

Так же есть книга, которая затрагивает основы разработки и имеет 2-е издание с 2017 года: https://www.amazon.com/Head-First-Android-Development-Brain-Friendly/dp/1491974052

Большинство приложений написано на Java, необходимо понимать что ты пишешь, в уме достаточно знать базовый Core т.к. 90% времени придется тыкаться в Android SDK. Полезные обучалки от анона:
https://habr.com/company/golovachcourses/blog/215275/ - смотри Головача
https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208 - книжка для ньюфагов. Хорошо заходит.
https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486

Неплохим вариантом для изучивших джава будет книга https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997

Алсо можешь читануть паттерны, рано или поздно все равно базовое знание понадобиться https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124

Существует два текстовых ресурса для закрепления андройда на русском. Первый - несмотря на старость описывает базовые вещи, на которых построены мощные либы, второй - продавшийся говноед с котиками http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
https://commonsware.com/Android/ - толстая книга для гиков.

Так же можешь смотреть видосики от Mail.Ru
https://habr.com/company/mailru/blog/345252/
https://github.com/ybereza/technotrack-resources - ресурсы к лекциям

Или от Яндекса. В некоторых моментах спикеры рассказывают важные детали, которые кроются в мелочах:
https://www.youtube.com/watch?v=5EvxWifIgro&list=PLQC2_0cDcSKBNCR8UWeElzCUuFkXASduz

В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.

> Я прошел курсы Udasity, а дальше что?


После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http, Json, SQLite.
Дальше закрепляешь знания путем просмотра видосов выше +
Написание парочку приложений на свой вкус. Так же стоит уделить внимание BroadcastReceiver, IntentService, поиграться с Loader's, хендлерами, Contest providers и прочее.

>Хочу изучать популярные либы и не быть говноедом!


Если ты сразу после курсов переползаешь сюда - будь готов, что ты не будешь знать как это делается под капотом.
Retrofit - стандарт для взаимодействия с сетью. Вместе с ней можешь изучать либу okhttp3. Так же для справки можешь гуглить volley.
RxJava - тяжеловесная либа. Одно из решений для выполнения кода в бекраунде.
[YouTube] KotlinConf 2017 - RX Java with Kotlin in Baby Steps by Annyce Davis - rxJava с нуля
[YouTube] RxJava доставляет Артём Зиннатуллин - на русском
[YouTube] Managing State with RxJava by Jake Wharton - rxJava
[YouTube] Making Retrofit Work For You by Jake Wharton - retrofit

Неплохо было бы и изучить MVP. Для самообразования можно написать его голыми руками или прогуглить, как это делается.

https://github.com/ArturVasilov/AndroidSchool - здесь рассматривается архитектура, и как ее ели с 2011 года.

MVP:
https://javarush.ru/groups/posts/505-mvp-v-android-dlja-samihkh-malenjhkikh - для понимания
https://github.com/Arello-Mobile/Moxy - плюшка для поворотов экрана
https://github.com/sockeqwe/mosby - англоязычная плюшка

MVVM - костыли от гугла:
Для нормального понимания желательно знать AAC.
https://startandroid.ru/ru/courses/architecture-components.html - свежие уроки от Димона
https://proandroiddev.com/the-missing-google-sample-of-android-architecture-components-guide-c7d6e7306b8f - для продвинутых

Пример MVVM
https://github.com/ericmaxwell2003/MvvmTipCalculator

Это всего лишь обертки, чтобы вынести логику из views. Для более углубленно изучения можно попробовать почитать
this: https://habr.com/company/mobileup/blog/335382/

Пример на котлине:
https://github.com/hitherejoe/GithubTrending

> Хочу анимировать мои говноподелки!



https://www.youtube.com/watch?v=dzB-1VlHJW8

Онли теория. Первые двадцать минут покрывают больше половины статей, которые можно найти на медиуме и т.д.

Здесь побольше практики на любой вкус: https://labs.ribot.co.uk/exploring-meaningful-motion-on-android-1cd95a4bc61d

Так же можно подробно почитать про смены сцен: https://blog.prototypr.io/applying-meaningful-motion-on-android-a271a873bd78

> Не хочу писать на Java!


- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17.05.2017 поддерживается официально.

[YouTube] Лекция 1. Kotlin 101[РАСКРЫТЬ] - свежие лекции на русском
https://www.amazon.com/Kotlin-Action-Dmitry-Jemerov/dp/1617293296 - библия
https://kupdf.com/download/kotlin-for-android-developers_59a05e2ddc0d60992a18496b_pdf - Kotlin for Android

https://www.udacity.com/course/kotlin-for-android-developers--ud888 - курсы Udacity

> Есть что-то кроме нативных приложений на Java/Kotlin?


- Flutter - кросс-платформенный фреймворк от Google. Js с аля строгой типизацией. Если совсем поехавший можешь начинать с него.
https://flutter.io/docs/ - документация
https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity
Остальные:
ReactNative — мочаскрипт во всей красе.
- PhoneGap/Ionic/Titanium — имя им мочаскрипт-младшие, принципы у них разные, первые три попытка в кроссплатформенность одного кода. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.

> Хочу писать игры!


LibGDX - слишком медленная параша для больших проектов, но познакомится можешь. Unity - для адекватных, Corona SDK, LOVE, Defold и другие. Спрашивать в /gd/.

> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?


Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии, shared preferences, SQLite, Handlers, Executors, Content-Providers), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам), понимания СОЛИД и других паттернов проектирования. И хотя бы несколько готовых приложений.

Полезные ссылки:
https://www.youtube.com/channel/UCSwuCetC3YlO1Y7bqVW5GHg - канадский челик, поясняет за архитектуру и отвечает на разные вопросы на стримах.
https://github.com/toddmotto/public-apis - бесплатные API для создания приложений.
https://github.com/AlexeyZatsepin/Android-ORM-benchmark - бенчмарки на вопросы о том, какую БД выбирать.
2 1270597
3 1270614
Сап, аноны. Этим утром удалили одно из моих старых приложений из google play. Написали мол реклама нарушала правила. Пользовался в данном приложении сервисом Appodeal. На других приложениях уже давно перешел на admob от гугла.
Итак вопрос? Сильно ли это плохо для аккаунта? Притом что у меня очень давно блокировали приложение за неприемлемый контент.
Бля, если аккаунт забанят, то новый потом и не создать и хуй че докажешь этим гуглам.
Очень страшно, живу онли на доход с игор.
4 1270640
>>270614
Причем здесь твои сраные игры и гугол?
image.png21 Кб, 588x331
5 1270643
Как вам?
6 1270654
>>270640
Андроид приложения где публикуют?
7 1270686
>>270654

>Андроид приложения где публикуют?


Причем здесь это? Если ты делаешь игры - пиздуй в соседние треды.
8 1270699
Вопрос по даггеру.

Допустим, есть app компонент - базовый. От него идет First SubComponent - а от него идет SecondSubcomponent. Я прочитал статьи, и соответственно когда у нас активи, например, закрывается, то чистим нам First SubComponent.

У меня вопрос:
Нужно ли когда-нибудь чистить SecondSubcomponent и в каких случаях?
9 1270996
>>270686
Это где такие?
10 1271060
Почему моя апшка не устанавливается, после generate signed apk? Если я протяну это через usb и закину в download папку - то она установится.
12 1271286
13 1271558
>>271286
>>270699
Да. Принцип такой же, как и у гцшки - видим ненужную ветку, чистим ненужную ветку.
14 1272227
Анон, дай правильное направление мысли...
https://pastebin.com/6N7qVrVa
Создаю класс видео плеера ExoPlayer. С использованием DI Koin делаю этот класс синглтоном и инжект во врагменте. Передаю в метод ссылку на видео и view плеера. Запускаю аппу все работает. Делаем поворот экрана и получаю наложение звука, т.е. у нас создался еще один экземпляр плеера. Сейчас сижу и думаю, что проебался где-то на элементарной хуйне, но хз как гуглить.
15 1272243
>>272227
Ты нахуя ExoPlayerFactory.newSimpleInstance вызываешь каждый раз? Не забывай, тебе ему еще release нужно не забыть вызвать, когда все отыграешь.
16 1272260
>>272227

>Делаем поворот экрана и получаю наложение звука, т.е. у нас создался еще один экземпляр плеера.


Пхахахахах. Проиграл
2776660original.jpg41 Кб, 604x453
17 1272385
начал изучать rxJava
делаю запрос в сеть,подписываюсь
.subscribe
(s->temp=s.getValue().get(symbols).toString()) ;
return temp;

получаю результат. НО получаю старый,то есть обновляется ,тогда когда делаю повторный запрос.Как сделать что б сразу получать результат. Как исправить ,плиз.?
18 1272400
>>272385
Используй сабжекты.
19 1272433
>>272385
Запрос в сеть - получаешь старый результат? Что ты там вообще делаешь?
20 1272448
>>272433
private Observable<Change> request(String name, String name2){
return Network.getService().getDara(name,name2)
.subscribeOn(Schedulers.single())
.observeOn(AndroidSchedulers.mainThread());
}
21 1272574
>>272448
Кэш http настрой правильно
22 1272575
>>272448
Очень многое говорит.
А словами нет? Это странно конечно, может чекнуть как анон выше написал. Или кешировать в рх да.
23 1272590
>>272574
>>272575
ок,спасибо ,буду пробовать
24 1272594
>>272575

>А словами нет?


Как обычно:API=>JSON=>gson converter(retrofit)
25 1272605
>>270643
Как земля
Снимок экрана - 01.10.2018 - 08:35:18.png100 Кб, 1241x881
26 1272658
Что делать вот с такими крешрепортами, когда непонятно что и где происходит? Валятся такие у единичных юзеров, как-то фиксить такие проблемы можно?
27 1272665
Поясните за CI для мобильных платформ. Для каждой платформы делается отдельно или есть универсальный механизм для этого?
28 1272680
>>272665
В смысле универсальный? Можно один сервер использовать на макмини, и разные конфигурации иос/ведро.
29 1272697
>>272658
Глянуть все 17ые строки где фигурирует TextView, похоже ты без сапортной либы пытаешься что-то новое в xml сделать. Посмотреть версии и прошики, сохранять кастомные ключики типа емэйла или userId (если есть) в крашлитику, возможно что бы связаться с юзером.
30 1272707
>>272658
Добро пожаловать в прекрасный мир андроида.
31 1272809
https://www.opennet.ru/opennews/art.shtml?num=48991
Есть ли смысл вкатываться с нуля для долгосрочной перспективы?
32 1272817
>>272809
Уже нету.
33 1272890
>>272809

>вкатываться с нуля для долгосрочной перспективы?


Да. А что? Все равно не вкатишься, если будешь руководствоваться такими суждениями.
34 1272965
>>270614
Привет, можешь дать телегу если ещё чекаешь тред, лол? Помню твой тред на б, хотелось бы пообщаться, вкатываюсь во все это.
photo2018-09-3018-10-19.jpg156 Кб, 537x1280
35 1273118
Почему использовать логи для дебага полохо?
36 1273247
>>273118

>использовать логи для дебага полохо?


Когда ты войдешь в андройд дебаг, логи писаться не будут. Хуй знает как на других платформах, т.к. сижу онли на андройде.
37 1273250
>>273247
Что? У меня все пишется вроде.
>>273118
Тут я бы больше поставил акцент на 'printf' - вообще никакое не решение, ни тебе тегов, ни контекста, ни в файл записать, без буфера и тд.
Ну и вообще ты заебешься собирать проект после добавления каждой строчки логов.
чем негодила светлая тема - не понимаю, раньше сидел на темной, сейчас на светлой, биг дил бля
38 1273286
>>273250

>Что? У меня все пишется вроде.


Application terminated ставится. Ало. В ране ничего не найдешь.
39 1273293
>>273286
Для дебага же, а не в дебаге.
Безымянный.png235 Кб, 688x1088
40 1273403
я даже не знаю как это гуглить.
AVD пробовал обновить, безрезультатно
41 1273463
>>273403
Лол
42 1273506
>>273403
Обновить как? удалить и поставить новый?
Никогда с этим не сталкивался, я бы еще переустановил андройд, если не помогает. В настройках еще посмотри, когда создаешь авд, мб что там есть.
43 1273555
Привет, антоны. Хочу сделать себе йоба-галерею с ресайклером и пейджером в детальном просмотре. Нашел работающий гугловский пример - https://github.com/google/android-transition-examples/tree/master/GridToPager. Вот только я уже 3 раза пытался его реализовать в своей приложухе, и каждый раз там что-то не работает что-то разное (а то и вообще падает с ебанутым НПЕ из недр андроида), да и к тому же приходится нуллить адаптер ресайклера, иначе выскочит ООМ. Может, кто-нибудь знает пример получше?
инб4 неосилятор
44 1273591
>>273555

>каждый раз там что-то не работает что-то разное


Берешь и идешь по шагам. Проговариваешь - так эта фоточка идет сюда, здесь сохраняю - а здесь получаю пизды.

>Может, кто-нибудь знает пример получше?


Все примеры идут из доков или же от умных людей, которые набили шишку. Но они как правило чсвшные. Можешь этот брать. Или код скинуть сюда, хотя бы в пастербине.

Кстати, я тут очень занят, как все сделаешь - проверь работу не с фрагментом, а с dialog fragment. Будет ли туда эта параша передаваться или нет?
45 1273595
>>273591

> 2018


> фрагменты

46 1273601
>>273595

>> 2018


>> фрагменты


Тебе что-то не нравится? Я тоже могу пиздеть, 2018 - переворот активити. 2018 - дохуя либ, которые гугол рекомендует, чтобы покрыть костыли. Андройд вообще параша, что тут говорить. До 6.0 используется интент сервис, с 6.0 джоб, и то, он ПРОСТО так крашится с НПЕ в любом случае. с 8.0 work manager и прочая хуйня.

С октября месяца чтобы релизнуть апп нужно поставить мин сдк что-то там 24 что ли или что-то вроде того.

Вышел из приложения, постоял 20 минут - зашел - активити убито и тупо все данные улетели. Ничего не работает нормально.

Я тоже могу расписывать, а не решать проблемы, так что соси хуй. Я не жалуюсь на фрагментах, я же не делаю одно активити, если бы делал, то взял бы цицероне.
20181003064610edited.mp41,5 Мб, mp4,
640x400, 0:14
47 1273707
>>273591
Да я вроде все по гайду делаю, но бага очень маленькая и из-за этого не поддается дебаггингу. Дело в том, что анимация первого элемента всегда "мерцает" (видеорилейтед), хотя в примере все нормально работает.
Вот ссылки на пастебин:
GridFragment - https://pastebin.com/kvxtQEig
RecyclerAdapter - https://pastebin.com/AhxXdpL0
ImagePagerFragment - https://pastebin.com/UiMwJ80Z
ImageFragment - https://pastebin.com/2Ad1FDbB
48 1273730
Нужно высрать андроид версию для говноедов, куда смотреть чтобы было показаны различия разработки и подводные относительно айос?
49 1273752
>>273707

>первого элемента всегда "мерцает" (видеорилейтед),


Попробуй android profiler. Мне кажется это из-за инджекта андройда.
50 1273764
>>273752
Ну инжект в аттаче, он вообще лишь раз вызывается. И, кстати, я для DI не только даггер использовал, и все равно результат тот же. Но окей, попробую ручками все заинжектить, спасибо за идею.

А насчет профайлера - что конкретно профайлить?
51 1273779
>>273752
>>273764
Проинициализировал презентер вручную, бага не исчезла. Так-то мне кажется, тут где-то собака зарыта в маппинге элементов, но вполне вероятно, что я ошибаюсь.
52 1273785
>>273707
Тебе не влом каждый раз писать AndroidSupportInjection? Можно же DaggerFragment использовать.
53 1273787
>>273779

>Так-то мне кажется, тут где-то собака зарыта в маппинге элементов,


Ну я тоже так думаю. Посмотри момент в коде, как закрывается, у тебя image view исчезает.
54 1273798
>>273785
Не знал о таком, но выглядит хорошо. Спасибо, буду его использовать.

>>273787
Понял, попробую разобраться. Хотя, по идее, там чистая копипаста с работающего примера...
55 1273823
>>273798
Ебаный ЧТО
Бага пофиксилась после того, как я задал ресайклеру атрибут paddingStart. Пиздец. Сач плезантли девелопинг, со мач документед.
56 1273841
>>273823

>Бага пофиксилась после того, как я задал ресайклеру атрибут paddingStart. Пиздец


Что? На что это повлияло? Как атрибут в разметке может помочь, кек.
57 1273855
>>273841

>Что?


Первый элемент грида с этого >>273707 видоса теперь нормально анимируется.

>Как атрибут в разметке может помочь, кек.


Вот и тоже охуел.
58 1273896
>>273855

>Вот и тоже охуел.


Не, мне очень интересно. Скинь разметку recycler view пожалуйства.
59 1273899
>>273823
Лол, не пытайся использовать падинги для красоты в ресайклере. Маржины в элементах иногда можно, но лучше конечно ItemAnimator, хотя у вот как-то повторял айсовский механизм инсетов для ресайклера и наблюдал крайне странное поведение из-за которого пришлось частично вернуться к маржинам в элементах.
>>273896
Возможно из-за того что анимация по координатам не сходится.
60 1273915
>>273896
Держи. https://pastebin.com/g43KQXZk
Паддинги вынес в димены, чтобы глаза не мозолили (задал им 1dp).

>>273899
Так я и не пытаюсь, у меня просто анимация из-за этого не работала. Да и вообще, для красоты можно использовать. ItemAnimator и ItemDecoration.
61 1273930
>>273899

> ItemDecorator


Срань, начинаются анальные боли, когда тебе нужный разный отступ в зависимости от предыдущего или следующего элемента. Например, от хедера тебе отступ не нужен, а от другого такого же элемента нужен. Если у тебя хедер ремувится, то тебе нужно явно вызывать notifyItemChanged элементу, у которого динамический отступ, иначе он не пересчитается.
62 1273941
>>273930
Оо, да ты шаришь. Работаешь где-то?
63 1273942
>>273930
У меня там была какая-то хрень что отступы заданные через ItemDecorator влияли на внутренние констрейнты во вьюхе холдера.
Ну вообще разве DiffUtil не решит той проблемы что ты указал?
64 1273949
>>273942
Нет, там же у элемента за хедером не вызовется notifyChanged. Он же не поменялся, а просто хедер был удален, кроме notifyRemoved ничего не будет.

Я сейчас в итоге необходимость отступа формирую на уровне презентера и пишу в поле элемента списка. А сам отступ паддингом или марджином элемента, в зависимости от внешнего вида. Тогда это поле учитывается в диффутилах и все нормально нотифаится. ItemDecorator соотвественно не использую.
65 1273950
>>273930
Еще вспомнил кейс, полный анальной боли.

Берем обычный гридлейаутменеджер. По материал сетке, там слева 4 дп, между элменетами 4 дп и справа 4 дп. В итоге в getItemOffsets можно это нормально просчитать через view.layoutParams as GridLayoutManager.LayoutParams, благо там эта информация есть. В итоге пихаем такие самому левому лево 4дп право 2дп, центральные 2дп, самый правый 2пд и 4 дп.
Удаляем элемент из списка, делаем notifyItemRemoved, а у остальных отступы нихуя не пересчитались, и все едет по пизде.
66 1273954
>>273950
Андройд - это как веб. Значит, ты макака и опущенец.
67 1273966
>>273950
Я бы задал холдерам по 2дп, и самому ресайклеру еще 2дп сверху.
68 1273975
>>273966
Контент при скролинге будет преждевременно уходить за падинг
69 1273987
>>270595 (OP)
Анчоусы, недавно вкатился в офисную разработку под ведро. До этого ток для себя писал

И это какойто ПИЗДЕЦ, блять, такое говно, просто яебал

Джун тащит в проект любую бяку, какую найдет и даже не может нормально реализовать. Уже втащил MVP, DAGGER, RX и нихуя из этого нормально не сделано. Полное говно.
70 1273991
>>273987

>Уже втащил MVP, DAGGER, RX и нихуя из этого нормально не сделано. Полное говно.


Ну ты же сам джун, если недавно вкатился. И тащемпа у всех по говнястому реализовано. Там же заказчики сроками ебут. Вот у меня на работе - я сам и дизайн делаю и сам пишу в одиночестве.
71 1273993
>>273991

>Ну ты же сам джун, если недавно вкатился


Я не с нуля вкатился

Ну так если бы не было MVP, Daggerа и RX было бы намного чище
72 1274004
>>273993
А если вообще всё прилодение в одном классе написать, то была бы 100% чистота. Но ебаный андроед не позволяет этого сделать.
73 1274009
>>273966
Ну я так и сделал в итоге в кейсе с гридом. Но осадочек остался.
74 1274010
>>274004
Можно в одном файле.
75 1274011
>>274004
Context - это God Object, так что хуле вы
76 1274016
Перестал работать линк на R, при этом проект собирается и все работает, клин\ребилд\инвалидейт+рестарт не помогают. Студия 3.2. Как починить, кто сталкивался?
77 1274048
>>273993

>если бы не было MVP, Daggerа и RX было бы намного чище


ПХАХАХАХХА. Я знаю как чище. Берешь. отрубаешь orientation в каждом активити. Пишешь все инстансы ретрофита хуита в Апп, а остальное говно в активити. Это как раз называется у даунов МВС. Вот тогда ЧИЩЕ.
78 1274052
>>274048

>ЧИЩЕ


Ага, и гордо всем гвооришь, что у тебя ЧИСТАЯ архитектура.
79 1274054
>>274016
Блять, моя жопа в огне. Теперь еще и все импорты отвалились, я ебал так жить. Пойду на 3.1 откачусь
80 1274055
>>274054

>Теперь еще и все импорты отвалились, я ебал так жить.


рофлишь что ли? Все нормально работает. Хотя поначалу когда я вкатывался тоже горел со всей этой хуйни.
81 1274059
>>274011
Контекст прекрасно абстрагируется от бизнес логики.
82 1274068
>>274054
Удали папку libraries в .idea
83 1274085
>>274068
>>274055
>>274054

Короче, нашел в чем трабл.
com.android.tools.build:gradle:3.3.0-alpha07 все ок
com.android.tools.build:gradle:3.3.0-alpha12 все пидорасит
84 1274089
>>274085

> сидит на альфе


> удивляется ошибкам

85 1274160
Можно ли как-то вставить фрагмент в методе
public View getView(int position, View convertView, ViewGroup parent)
всяких адаптеров?
86 1274161
Пацаны, что там с фрилансом на андройде? Кто-нибудь реально фрилансит? Что за задачи? Как оплачиваются?

Имеет ли смысл вкатываться в андроид ТОЛЬКО ради фриланса? Не загнется ли завтра тема?
87 1274166
>>274160
Посмотри реализацию FragmentPagerAdapter.
88 1274168
>>274160
Можно, но не нужно. Почитай про ViewHolder pattern и используй ресайклер. А для общения с контейнером ресайклера используй интерфейсы.
если все же хочешь упороться - делай через пустой FrameLayout, в который пихаешь фрагмент через транзакцию
89 1274170
>>274161
Выучи - расскажешь. Я видел таски для андройда на фрилансе. Можно все так-то. Только защеку схватишь.
90 1274182
>>274161
И сколько нужно вкатываться в среднем, чтобы можно было фрилансить хотя бы на 500 баксов в месяц?
91 1274202
>>274182

> чтобы можно было фрилансить хотя бы на 500 баксов в месяц?


ПХАХААХАХАХА
92 1274305
Сап. Гугол выкатил новый виджет BottomAppBar. В гайдлайнах к нему идёт красивый drawer, а как его нормально запилить найти не могу.
https://material.io/design/components/app-bars-bottom.html#behavior
Если кто-то делал - поделитесь плз.
BottomDialogFragment имеет конченную анимацию (или можно как-то сделать плавно?)
BottomSheetBehavior - впринципе можно использовать, но придется его перепиливать, тк задуман он для другого.
93 1274317
>>274305
На медиума есть серия из трёх статьей по нему. Плюс на гитхабе есть примеры.
94 1274359
>>274305

> BottomSheetBehavior - впринципе можно использовать, но придется его перепиливать, тк задуман он для другого.


С чего ты взял?
Да и у фрагмента фиксится анимация, нужно просто сделать свой диалог фрагмент, выключить ему анимацию, и боттомшит, который там используется инициализировать с состоянием хидден, а в онстарте перевести в экспандед.
95 1274394
>>270595 (OP)
Что вообще в ведре по отладке чужих апк? Есть вообще нормальные дебаггеры, чтоб я мог как на винде ида про/x64dbg взять и поковырять что хочу?
96 1274438
>>274394
Frida вроде.
97 1274538
>>274202
ну каждому свое же, мне хватит 500
98 1274593
Как называется штука, которая при внутренних ошибках открывает окно пишет например емайл, логи что произошло и отправляет.
99 1274622
>>274593
Есть штука которая автоматически скидывает логи, без окон. Называется crashlytics
100 1274639
>>274622

> автоматически скидывает логи


Зонды, ряяяяя!
101 1274645
>>274593
ACRA вроде так умеет, но зачем тебе это? Используй крашлитику и не еби мозги.
102 1274700
Зачем вы пишите что то? Фуксия скоро убьет андроид и оставит вас без работы
103 1274707
>>274700

>Зачем вы пишите что то? Фуксия скоро убьет андроид и оставит вас без работы


Зачем ты живешь вообще? Человек существует около 70 лет на этой земле и дальше растворяется на атомы, а там и на более мелкие частицы. Зачем ты каждый раз встаешь по утрам? Зачем ты вообще что-то делаешь, если скоро сдохнешь?
104 1274720
Найс сравнение, у тебя там нпе в мозге вышибло? Не удивительно тогда что ты не понимаешь скорого нашествия фуксии и смерти андроида
105 1274721
106 1274723
>>274700
Перекатимся туда, делов то.
107 1274730
>>274700
Не оставит. Вот поэтому пора учить Dart.
108 1274738
>>274730
Нет. Ты что, вон дауны котлин учат и похуй.
109 1274898
>>274738
Ты опять за свое? Котлин же экономит кучу времени.
110 1274900
>>274898
Зачем мне экономить время? У меня оплата почасовая
111 1274901
>>274900
Вот поэтому рашка и в говне...
112 1274915
>>274898

>Ты опять за свое? Котлин же экономит кучу времени.


Пока ты учишь котлин, дарт встает на ноги и даст пососать уже через год-два. Гугол бросит всех разрабов, тогда андройд рухнет и очень много людей пострадает от этой хуйни.
113 1274916
>>274915
Скорее всего будет плавное переползание, не более того.
114 1275601
Разобрался до конца в handlers, runOnUiThread. И у меня вопрос. Почему люди отказались от них? В большинстве случаев приходится лишь обрабатывать ответ с сервера или постить данные. Почему ими уже никто не пользуется? Какие нетривиальные задачи нельзя ими разрешить?
115 1275629
>>275601

> Разобрался до конца в handlers, runOnUiThread.


Если б разобрался, не спрашивал бы.
116 1275646
>>275629

>Если б разобрался, не спрашивал бы.


Просто так спросил, чего плеваться-то. Я уже и сам понял. Через полгода пора бы выучить котлин и на корутины пересесть.
117 1275657
>>275646
Зачем корутины когда есть rx?
118 1275671
>>275657
Зачем rx когда есть корутины?
119 1275672
>>275646

> Через полгода пора бы выучить котлин и на корутины пересесть


Посмотрел видосик про курутины от е-легиона. Просто пиздец, нахуй так жить?
Ну да, можно некоторые вещи писать в императивном стиле, только при этом ты теряешь всю мощь рх, даже блять банальный дебаунс нужно самому велосипедить. Есть рх, дефакто стандарт индустрии, нет, не хотим, хотим хуйню.
120 1275675
>>275672

> только при этом ты теряешь всю мощь рх,


А в чем эта мощь? Если ты обволакиваешь целые проекты реактивщиной, то нечего и переживать. Люди, которые втягивают такую либу ради гет пост запросов - ну такое себе.
121 1275680
Вы дауны, кто сравнивает rx и корутины, это разные уровни абстракции и разные области применения. Новая версия rx, кстати, будет реализована на корутинах.
122 1275690
>>275675

> Люди, которые втягивают такую либу ради гет пост запросов - ну такое себе


Только потом твои гет пост запросы потом становится легко использовать в более сложных кейсах.
>>275680
Хуякции. Их сейчас форсят именно как замену рх.

> Новая версия rx, кстати, будет реализована на корутинах.


Пруфс?
123 1275762
Есть ли возможность сделать transition на dialog fragment? Мне важен переход image view в этот DF. На стековерфлоу один ответ и то, даунский - смотреть примеры от гугла. Я применил их. Отличие в том, что, если показывать DF - то нужно объявить метод show у него, в гугле же все делается через getSupportFragment(), я делал через последний и у меня диалог фрагмент превращался в обычный, но мне нужно чтобы был именно диалог. В какую сторону копать?
124 1275938
>>275762
Емнип, в метод show() можно передать либо саппортФрагментМенеджер, либо саму транзакцию. Можешь попробовать запихнуть туда транзакцию с транзишном и посмотреть, что получится. Кстати, если получится, то отпиши итт, мне интересно, но проверить времени нет.
125 1275948
>>275938

>можно передать либо саппортФрагментМенеджер


Нет, я пробовал. Привязывал к диалог фрагменту setSharedElementEnterTransition, после всех аниманий вызываю show и передают туда тракзакцию свою. В итоге ничего не крашится, но диалог показывается как обычный диалог без всяких пистелок свистелок, который были добавлены в транзакцию.
126 1275951
>>275948
Значит сделай обычной фрагмент.
127 1275968
>>275951

>Значит сделай обычной фрагмент.


Тогда как мне объединить в viewPager методы addPagerChangeListener и onTouchListener в view Pager? Сейчас думаю, что нужно перелистывание реализовать в onTouch только хуй знает как это делать пока.
128 1275983
>>275968
А нет, это я понял. Меня больше интересует, можно ли fragment сделать transparent? Диалог конечно же можно. Там просто getDialog.getWindow устанавливается бекграунд и рутовый леяут устанавливается в определенную альфу. Пытался такое провернуть с фрагментом - не получилось.
129 1276112
>>275983

> fragment сделать transparent


Конечно можно, рутовой вьюхе фрагмента не задавай фон и все будет ок.
130 1276116
>>276112

>Конечно можно, рутовой вьюхе фрагмента не задавай фон и все будет ок.


Думаю это не подойдет. Я уже нашел ответ.
131 1276209
Паскудная хуестудия после обновления до 3.2 вынесла к хуям с тулбара кнопки Undo и Redo, оставив вместо них бесполезную хуйню Back и Forward.
Как сделать обратно? Тыкать шорткаты на клаве не предлагать.
132 1276210
>>276209
Я даже не знаю про что ты говоришь. Они действительно так важны?
133 1276211
>>276210
Да, чертовски важны. Особенно, когда накодил хуйню, и понял это только после того, как уже переписал кусочек. А переписывать его по памяти лень или чревато багами.
Или переписал, и засомневался, не лучше ли было оставить старое?
Впрочем, я уже вернул как было. Хз, зачем гугломразям было их убирать.
134 1276212
>>276211
Погоди, это ctrl + z что ли и ctrl + shift + z? Возвращая старое. Алсо, можешь тогда подсказать гле это, я тоже посмотрю.
Screenshot 2018-10-07 at 23.55.47.png109 Кб, 718x146
135 1276213
А нашел. Странный ты.
136 1276214
>>276211
Да и банальнейший пример - выделил кусочек в порыве страсти, он оказался большим чем нужно примерно на пол класса, и был нечаянно удален. Делать мне вот больше нехер, выплясывать на клаве шорткаты, чтобы вернуть все на место. Хочу давать пальцам хоть иногда отдых, а не воспоминать пердолево в cmd.
1.png8 Кб, 636x49
137 1276217
>>276213
Предлагаешь лезть в менюшку за этим, когда раньше было прям на тулбаре?
Новые хромотренды ебучих дизайнеров, прятать все в 100500 подменюшек, чтобы все охуели, как могут.
А возвращается так
ПКМ на тулбаре - Customize Menus - Main Toolbar - Add After - Main Menu - Edit - Undo/Redo
138 1276219
>>276217
Предлагаю использовать кнтр зет.
139 1276221
>>276219
Нажать две кнопки на клаве или одну на мышке? Да еще и в зависимости от того, Undo или Redo - нужно жать две или три кнопки на клаве для совершения, в общем-то, идентичных действий.
Интерфейс не один и тот же выходит ведь, контракт нарушен.
sage 140 1276286
>>276221
Двигать ебаную мыш, в поисках кнопки через весь монитор, вместо того, чтобы быстро нажать на клаве 2 кнопки, когда рука уже лежит на клаве - страдай, хуле
141 1276347
>>276212
ctrl z
142 1276945
Здравствуйте. Затупился в одном моменте. Использую в приложении какое-то 3rd-party говнище на базе ImageView, но только с ресайзом. Хочу по лонг клику вызывать контекстное меню, но не выходит. Вроде выяснил, что все дело в GestureDetector, который там что-то перехватывает, чтобы я не мог тупо registerForContextMenu()
Попытался просто через setOnLongClickListener сделать, но не взлетело. Никак не гуглится способ вызвать контекстное меню без override onCreateContextMenu()

Щито делать?
143 1276947
>>276945

>Щито делать?


Не использовать какое-то 3rd-party говнище на базе ImageView
144 1276948
>>276947
Но мне очень ннада. Не хочу же я велосипедить ресайз по двум пальчикам
145 1276970
>>276948
Ну значит форкнуть и доделать в кишках.
146 1277005
Как можно определить, что два телефона находятся очень близко? Не требуется знать их координаты, нужно просто определить, что два телефона находятся на расстоянии 50см и меньше ну или хотя бы меньше метра.
Может для этого нужно использовать звук? Тип один телефон издаёт звук и если другой телефон его услышит, то тип близко находится. Или "выцепить" этот звук из окружающего шума не реально?
147 1277029
>>277005
N F C
F
C
148 1277037
>>277029
По блютузу не выйдет. Мощность сигнала сильно варьируется от устройства к устройства и по мимо этого есть ещё куча параметров, которые влияют на мощность сигнала.
149 1277145
>>277037

> По блютузу не выйдет.


Nfc - не блютуз, почитай про него.

>Мощность сигнала сильно варьируется от устройства к устройства и по мимо этого есть ещё куча параметров, которые влияют на мощность сигнала.


Ну а это вообще пушка. Знаешь ответ на вопрос, сколько требуется программистов, чтобы вкрутить лампочку в люстру?
150 1277161
>>277145

> Знаешь ответ на вопрос, сколько требуется программистов, чтобы вкрутить лампочку в люстру?


Ноль, т.к. нужен один офис-менеджер.
>>277029
НФЦ же до 20 см, так и нет поддержки большинства девайсов, особенно любимыми в нашей стране ксяоми. Хотя задача у него довольно специфичная, может там под заказ мобилки будут.
151 1277179
>>277161
Ну так и я о том же, если проблема аппаратная, то решает ее не программист. Ты говоришь, что сделал обнаружение устройств с использованием технологии, разразработанной именно для этой задачи, и тебя не ебет, что дальше. Да и вообще, что за хуйня, искать устройства рядом по звуку? Это как будто хранить 10к записей в SharedPreferences вместо SQLite.
А если менеджеры начнут доебываться что устройства с нфц ДОРАХА то скажи им чтобы попробовали абак вместо экселя, хуле, функционал схожий.
152 1277218
>>277179
>>277005
https://habr.com/post/347954/

Ну или вот амазоновская кнопка (ты покупаешь кнопку для порошка и когда нажимаешь ее возле телефона она связывается с твоим аккаунтом и регается в вайфае) тоже по звуку конектится к девайсу.
153 1277369
>>277145
Хорошо, прочитаю про Nfc, но 20 см - это слишком мало для моей задачи.
>>277161

>НФЦ же до 20 см, так и нет поддержки большинства девайсов, особенно любимыми в нашей стране ксяоми. Хотя задача у него довольно специфичная, может там под заказ мобилки будут.


Нет, мобилки у меня абсолютно обычных людей. У меня в планах разработать игру, для которой мне требуется определить, что два человека находятся очень близко.
>>277218
Читал эту статью. Их проект, насколько я знаю, сейчас закрытый и его можно использовать только на коммерческой основе. Мой проект бесплатный. Кроме того, их метод обнаруживает в радиусе 5 метров, а мне нужно сделать проверку в радиусе 50-100см.
Про кнопку в первый раз слышу. Будет ли она работать при окружающем шуме? Моё приложение должно работать в торговом центре, где, обычно, стоит гул.
154 1277377
>>277369

>Хорошо, прочитаю про Nfc


Я сейчас работаю с нфс, и сразу могу сказать, что это не то, что нужно.

> У меня в планах разработать игру


Особенно для этой параши.

> что два человека находятся очень близко.


Для этого существует интернет или блютуз, недоразвитый ты наш малыш.
155 1277384
>>277369

>Про кнопку в первый раз слышу. Будет ли она работать при окружающем шуме? Моё приложение должно работать в торговом центре, где, обычно, стоит гул.


Хуй знает, на ведре она работала через nfc/блютус, а через звук на iOS, ну мы впринципе были в небольшой комнате, обычный разговор выдержала. Там же звук совсем на других частотах, ей скорее какие-нибудь траснформаторы бы помешали наверное.
156 1277444
>>277377
Выше уже писал, что по блютузу тяжело судить о том, насколько близко находится человек
>>277384
Я, наверно, хуйню спрошу, но можно ли создать на телефоне такой звук, который человек не услышит?
157 1277461
>>277384
Есть какая то статья, в которой расписано, как правильно подловить звук, который издаёт одно устройство.
158 1277479
>>277461
Вряд ли, я не гуглил, не думаю что слишком сложно, нужно записывать семплы микрофоном с каким-то интервалом который раз в десять (пусть с гаком) больше длины сигнала. И так пару раз послушать. Потом сравнить с эталоном.
>>277444
Ну хз, вроде как аудитрек достаточно низкоуровневый, может даже в нативщину не придется лезть, в крайнем случае можно его скачивать/бандлить с девайсом. Вон на телеках/рекламных стендах всяких прошаренных во время рекламы звуки проигрывают, а сдкашки на телефонах их ловят.
159 1277499
>>277479

>Вряд ли, я не гуглил, не думаю что слишком сложно, нужно записывать семплы микрофоном с каким-то интервалом который раз в десять (пусть с гаком) больше длины сигнала. И так пару раз послушать. Потом сравнить с эталоном.


До этого я и так догадался. Проблема в том, как выделить звук на фоне окружающего шума.
>>277479

>Вон на телеках/рекламных стендах всяких прошаренных во время рекламы звуки проигрывают, а сдкашки на телефонах их ловят.


Шо? Чёт первый раз про такое слышу
160 1277538
>>277444
Ты занимаешься хуйней. Игры не стреляют, либо ты вкатываешься, либо дрочишь какую-нибудь парашу. Более чем уверен, что ты даже писать ничего не начинал.
162 1277851
>>277538
У меня и нет планов, что бы это выстрелило. Пусть даже её вообще никто не скачает. Мне просто нужно написать игру.
Собственно, да, ещё не начинал, потому что пытаюсь понять, реален ли этот проект и стоит ли его вообще начинать.
>>277569
Спасибо
163 1278044
>>277851
Я тебе сразу говорю не стоит, поздно или рано ты это поймёшь. Занимайся более нормальными вещами, вон, кодить попробуй.
perdol.png4 Кб, 383x90
164 1278092
Внезапная пердоль!

Есть код в активити сразу после setContentView():

>Perdol.start() //да, без аргументов, без передачи активити/контекста


Задача: вызовом этого статического метода start() детектить эвенты тапов на view И получать поля этих view (например, текст, если это button или просто id).
Как бы вы это сделали?
165 1278119
>>278092
на context ссылка есть?
166 1278122
>>278119
Явной нет.
167 1278157
>>278092

>вызовом этого статического метода start() детектить эвенты тапов на view


Слушатель что ли? Так это, разные способы есть.
168 1278158
>>278157
Ну вот я не понял, как это сделать, не имея даже контекста.
169 1278161
>>278158
Так это, клик листенер и касти свои объекты.
170 1278162
>>278161
А на что вешать клик листенер в статическом методе?
171 1278169
>>278162
Мне не понятно, для чего тебе получать с каждого события событие по тапу. Зачем тебе это все?
cpointers.png136 Кб, 500x653
172 1278180
>>278169
Нужно получать каждое событие тапа (или хотя бы ACTION_DOWN). Это нужно например чтобы знать, куда пользователь кликает.
Но нужно сделать это не просто ручным навешиванием листнеров на все view, а единственным вызовом в активити метода

>Perdol.start()


внутри которого происходит аркейн-магия, которая позволяет видеть (в logcat'e, например) все тапы и инфу о view, на которую тапнули.
173 1278188
>>278092
Никак.
Ты же у мамки хакир и не научился нормально работать со smali, чтобы инжектить что-то кроме статических вызовов без параметров? Иначе твоя задача вообще не имеет смысла в такой формулировке.
174 1278190
>>278188
Ничего инжектить не требуется, требуется вызвать в своём коде Perdol.start() и начать видеть все тапы (или хотя бы часть?).
Сейчас не важно, имеет ли смысл задача, сейчас важен способ её выполнения. И то что это сделать возможно - инфа 100%, вопрос КАК
175 1278256
>>278122
Смотри сорцы UxCam, они вроде как-то получают
176 1278258
>>278256
Можно через content provider application ещё получать, это если ты в манифест его прописать можешь
177 1278281
>>278044
Почему нет?
178 1278323
>>278281
Потому что блять. Вангую что ты ребенок дауненок.

>>278190

> и начать видеть все тапы


Задавай вопрос на реддите. Как узнаешь что, можешь сюда отписаться. Мне интересно, но чекать сам конечно же не буду.
179 1278326
>>278092
Если в метод start() нельзя ничего передавать, то его пердоль нужно оформить синглтончиком со ссылкой на контекст приложения, а затем с помощью контекста вешать лисенеры на все вьюхи. Если передавать можно, то передавай контекст или, лучше, рутовый леяут, затем получай список детей и рекурсивно по ним проходись, если ребенок - вьюгруппа.
1520104171988.jpg557 Кб, 2000x1530
180 1278337
>>278326
оформить синглтончиком со ссылкой на контекст
В том-то и суть, что нельзя ссылку на контекст ему давать. Должен быть исключительно голый Perdol.start() и ни намёка на передачу параметров.
Хитрые еврейские ребята из appsee так сделали, чем лишили меня сна. Мало того, что у них все тапы, свайпы по всем вьюшкам детектятся одной единстивенной(!) строчкой кода Appsee.start(), так они ещё и видео и скриншоты приложения делают. А исходников нет, они всё обфусцировали вжопень.

И единственное до чего я дошёл, так это до анальных контузий с MainLooper'ом и рефлексией, которой, отсеивая тонны сообщений лупера, можно поймать такие сообщения, которые содержут в себе ссылки (естественно непрямые, там тоже попердолиться рефлексией пришлось) на активити, которая породила это сообщение.

Но это очень нездровая ситуация, хотелось бы верить, что хитрые евреи сделали что-то по-проще.
181 1278350
>>278337
Иди нахуй
182 1278352
>>278350
почему
не понел, пояснил за предъяву
183 1278362
>>278337
Прыгай от com.appsee.bb класса. Потыкай туда брейкпоинты.
Там как минимум работа с определением нажатой вьюхи и выковыриванием атрибутов из нее.
184 1278370
>>278362
Охуенно, спасибо. Они, оказывается, вешали Window.Callback, а не на каждую вью листенер. Но остаётся вопрос, как именно они получили этот window из статического класса без ссылок на контекст.
185 1278373
Полистал я гугл плей и увидел дохуя откровенно плохих и бесполезных приложений, которые неплохо так скачивают. Тесты какой ты ободок от унитаза, блядь, иконы, всратые поздравления.

Есть ли смысл выкатывать подобное говно в маркет? Или получу 0 скачиваний и буду сидеть грустный?
Можно ли завести несколько аккаунтов разработчика? Один под откровенное говно, другой под продукты за которые не стыдно.
186 1278375
>>278373

>несколько аккаунтов разработчика


Будешь за них платить - хоть сотню. А так да, удивляет обилия говна, за которое даже платят.
187 1278392
>>278370
ContentProvider
188 1278484
>>278375
Слышал, что если забанят один, все остальные тоже забанят. Так ли это?
189 1278503
>>278484
Так.
190 1278574
>>278323

>Потому что блять. Вангую что ты ребенок дауненок.


Ну вот и иди нахуй.
191 1278650
>>278574
Сам иди нахуй. Это ты к нам пришел, а не мы к тебе, ублюдок.
sage 192 1278749
>>278650
ты за всех то не отвечай, мудила
193 1278774
>>278749
Ваня, опять ты вылез, сукин сын. А ну полезай назад!
194 1279035
Насколько разумно пилить UI нативного приложения для ведра на React Native или Flutter? И если хоть немного смысла это имеет, то что всё же лучше учить начинающему разработчику?
195 1279043
Почему react-native - мочаскрипт? Flutter лучше? Чем?
196 1279046
>>279035
>>279043
Всё говно и кроме как для поиграться не нужно. Учите основы, а в модных свистоперделках потом разберётесь, если вообще это когда-то понадобится.
197 1279093
>>279035

> то что всё же лучше учить начинающему разработчику?


Что хочешь то и учи. Реакт никогда не взлетит, кто бы что не говорил. На флуттер смотреть еще рано, пусть еще 2 года пройдет и посмотрим. Еще годик два можно вкатываться в андройд, а дальше нельзя.
198 1279098
Up
199 1279183
Во сколько бы оценили по времени и деньгам это: https://play.google.com/store/apps/details?id=com.loyaltyplant.partner.fudklub&rdid=com.loyaltyplant.partner.fudklub
200 1279196
201 1279215
Какие, кроме jdeferred, есть варианты для запихивания результата асинхронной херни в объект? Ещё нужно чтобы была возможность скомпоновать несколько таких результатов в один - типа как settle в jdeferred или Promise.all в жс.
202 1279227
>>279183
Они еще шторку не показывают. Ну здесь работы на неделю + 2-3 дня.
203 1279228
>>279215

>Ещё нужно чтобы была возможность скомпоновать несколько таких результатов в один


rx java zip

>типа как settle в jdeferred или Promise.all в жс.


Что это такое? Дждеферед, промисе жс? Ты из макакинга сюда подался?
204 1279245
>>279183
часов 80, моя ставка 30$/hr
205 1279282
>>279227
В смысле шторку?
206 1279310
>>279282
Левая выдвижная панель дурачок.
207 1279405
>>279310
Сказал бы drawer. Я б сразу понял.
208 1279412
>>279310
Шторкой всегда назыали то что сверху (с нотификациями), впервые слышу что бы НАВИГАЦИОННУЮ ПАНЕЛЬ называли шторкой.
209 1279595
>>279093
Из-за выхода фуксии? Тогда разве не стоит всерьёз заняться flutter потому что в фуксии dart будет активно юзаться?
210 1279612
>>279595

>Тогда разве не стоит всерьёз заняться flutter


Если бы мне было 12 лет я бы занялся, в чем проблема? 5 лет это очень долго, даже Вартон не занимался дартом. А мне уж и тем более это нахуй не сдалось. Вон умеешь клепать на андройде и иосе - и норм. Если андройд закроется - просто перекатишься в иос и потом подучишь дарт (если это конечно же будет очень важно) и все.
211 1279614
>>270996
Какого типа игры делаешь, на чем пишешь?
212 1279617
>>272965
Я не он, но тоже вкатываюсь, можно обмениваться инфой machinalol
213 1279625
>>279617
Кстати всегда хотел для себя игрушку, рисовать умею. Если я хочу визуальную новеллу бахнуть на чем лучше то делать и проще?
214 1279656
>>279625
Если знаешь только джаву, то наверное libGDX, но я сам ноль, лучше погугли
215 1279676
>>279614
пазлы, android ios
216 1279690
>>279676
Неужели с пазлов кто-то ещё умудряется получать доход
217 1279808
>>274916
Не будет, не думаю что kotlin-native успеет и не думаю что гугл будет добавлять jvm в дистрибутив как бы весь поинт как раз слезть с jvm

И даже если kotlin-native успеет, то он будет ограничен своим текущим синтаксисом, создаваемым по сути для jvm и IDE.
Что выглядит все больше как фикс-джавы, чем полноценный native язык.

Другая проблема, которая в корне зарешает, это то, как вообще обучать народ котлину, если предварительно человека надо вкатить в джаву, в его инфраструктуру и прочее - это мега оверхед

Я бы ставки делал на js, может даже dart, в край ts.
218 1279809
>>279808
Я бы вообще все заняшил на питоне, так как для дрочки на UI и с десяток строк для CRUD, строгой типизации хватит
219 1279810
>>279808
Но не скрою, поддув от котлина сильный, даже народ сердечки рисует что конечно пиздец и вызывает только испанский стыд, но заливают его хорошо что лично у меня вызывает больше остороженность к хайпу

Что вообще котлинконф годного принес в этом году? На радио-т что-то ржали про анонс целой веб-странички, а реально какие-то движения есть?
220 1279816
Нужно провернуть такой кейс: есть переменная play = true. Когда у нас происходит изменение конфигурации(поворот экрана) эта переменная должна оставаться в том же значении. Когда активность приостановлена и не в фокусе, то переменная принимает значение play = false.
Что пробовал сделать и почему мне нужно реализовать первый кейс: когда в onPause выставляю значение переменной play = false, а при возврате в активное состояние в onResume true, то при повороте экрана идет небольшая задержка и звук приостанавливается, пока повторно не вызовется метод onResume.
222 1279843
>>279690
только с них и живу
223 1279900
какого хуя? обновил as, и теперь при переходе по ctrl+b, ловит фокус панель project (как по alt + 1), и приходится esc жать, что за хуйня??
224 1279910
>>279843
Сколько у тебя показов с самой успешной игры в день?
225 1279915
sage 226 1279917
>>274738

>вон дауны котлин учат


Зачем учить котлин, если до этого писал на джаве, а тем более на 8 с ее элементами ФП? 400 страничной книги от разрабов языка хватает, чтобы вкатиться.
sage 227 1279919
>>274700

>Фуксия скоро убьет андроид


Так скоро это когда? Мне 3 года сидеть на жопе и ждать ее релиза, вместо того, чтобы перекатиться с андроида? Ты дурак?
image.png19 Кб, 200x218
228 1279959
>>279919
флаттер уже существует и на нем уже пишут
229 1279964
>>279959
Причем тут флаттер, флаттер это второсортный фреймворк для ведра и айоси. Или под эту вашу фуксию будет тот же флаттер?
Есть разница между конкретно флаттер и дарт.
sage 230 1279966
>>279959
На PhoneGap тоже пишут. Дальше то че?
231 1279970
>>279964
Флаттер будет основным фреймворком новой ОС. Попробуй сложить "2+2" в своей головушке
232 1279974
Xtend кто-нибудь юзал? Зачем он вообще нужен, киллер фичи какие-нибудь есть?
233 1279978
>>279910
показов рекламы? ~50k
234 1279980
>>279970
Новая ОС может и не взлететь, а Андроид так просто не уйдет - всякие самсунги и хуявеи так просто свою дойную корову на колбасу не пустят и вполне могут продолжить разработку. А вообще, жс всех переживет, конечно.
235 1279986
>>279824
Спасибо, сделал мой день.
236 1279987
>>279980

>А вообще, жс всех переживет, конечно.


Жс не знаю, но джава точно еще будет лет 20 существовать.

>>279974

>Xtend


зачем, если есть котлин, причем пердолиться даже не нужно.
I want.png38 Кб, 600x582
237 1279999
Короче, на стартовом экране есть список созданных документов. Мне нужно, чтобы помимо списка была маленькая кнопочка, которая открывает меню настроек.

Абсолютно все туториалы/примеры/документация рассказывают, как прилепить на экран здоровенную конскую ебанину по типу той, что слева на пикрелейтед. Она мне нахуй не упёрлась, от неё мне нужна только маленькая кнопочка.

Короче, нужно сделать как справа. Как это делается лучше всего?

Делать тулбар прозрачным нельзя - мне нужно, чтобы элементы списка оставались кликабельными и не перекрывались тулбаром. Плюс мне нужно, чтобы иконка была на фоне кружочка, а не висела в воздухе просто так.
Делать кнопку через FloatingActionButton нельзя - гайды по материал дизайну советуют помещать только одну такую кнопку на экран (а одна такая кнопка у меня уже есть, в правом нижнем углу).

Какие ещё варианты есть?
238 1280001
>>279980
так флаттер и под старый андроид работает.
239 1280015
>>279999

>Какие ещё варианты есть?


Сделать простой баттон и впихнуть ему в background shape? Зачем столько расписывать.
240 1280043
>>279978
Сколько за 1к выходит центов?
241 1280046
>>280015
Погоди, и она сможет просто вот так висеть где нужно?
242 1280052
>>280046
Ну а почему бы и нет, просто сам дашь ей позицию в лэйауте.
243 1280095
>>280043
т.к. аудитория снг, то в районе 1$, с англоязычной версией ~5-6$ (но там показов намного меньше)
у самого то как успехи?
244 1280106
>>280046

>Погоди, и она сможет просто вот так висеть где нужно?


Пора бы выучить матчать расположения вьюшек на экране.
245 1280109
Решил вкатиться в программирование с Flutter'a, пилил проекты в надежде на небольшой доход для поддержания жизни, не взлетели. Попытался найти фриланс - тут то я и обосрался. 2-3 проекта в день на апворке с охуевшими требованиями, ±0 проектов в месяц на РУ биржах.
Не повторяйте мою ошибку, учите джаву или котлин.
246 1280159
>>280109

>Решил вкатиться в программирование с Flutter'a


Prove It.
247 1280164
>>280109
Надо было вкатываться в программирование с jquery!
248 1280177
>>280001
Но не под старые устройства.
249 1280181
>>280109
Как-то решил вкатиться в хаскель, но гопники с улицы меня избили, назвали борщехлебом и заставили писать все на php
250 1280201
>>280159
Не понял что тут пруфать.

>>280164
Хочу делать мобильные приложения.

>>280181
Брул стори ко.
251 1280226
>>280201

>Не понял что тут пруфать.


То, что пиздишь пруфай. Кинь мне свой гитхаб с нормальным приложением на флаттере, иначе тут и нечего говорить
252 1280230
Что-то не выкупаю как простую штуку на rx замутить.
Нужен такой Observable который при каждом следующем запросе на эмит либо возвращает уже существующий успешный результат запроса, либо делает запрос, запоминает его результат (успех или ошибка) и пробрасывает дальше.
То есть состояния такие:
initial (I) - начально состояние
error (E) - была ошибка, придется провести запрос еще раз
success (S) - збс, запрос завершился успешно, впредь всегдва возвращаем только это значение.

Я в принципе вижу как это можно сделать на Observable::generate, но ведь там внутри generate нужно все синхронно провести, а я хочу воспользоваться обсерваблом из ретрофита.
253 1280233
>>280230
делаешь через subject за 5мин, и идешь чилить
с observable будешь долго ебаться
254 1280239
У котлинистов есть ру-чат, не в телеге?
255 1280240
https://www.twitch.tv/deadigle
Котлин, сейчас, твой
256 1280246
>>280226
Для начала давай определимся что такое нормальное приложение. Делал например приложение с аудиокнигами - наебался всласть с плеером. пофиксить никак, на джаве же всё блять. Прикрутил туда фаербейз, какую-то анимацию, адмоб. Короче пытался скил немного прокачать. Делал проекты по заказам от знакомых - простые контентные, где-то json спарсить, где-то прикрутить формы. Короче ничего сверхъестественного, но обратного я и не утверждал.
257 1280303
>>280106
Я ж для себя приложение пишу, а тонкости осваиваю по необходимости.

В последний раз писал в 2016, а до этого в 2014. Много поменялось с тех пор.
258 1280349
>>279999
Добавляешь в макет свою кнопку, присваиваешь ей висабилити. И по условию проверки показывается у нас тулбар или нет меняешь ее видимость.
259 1280360
>>280303

>В последний раз писал в 2016, а до этого в 2014.


Земля тебе пухом. За 4 года люди становятся мидлами как минимум.
260 1280448
>>280095
А я только допиливаю аппку, готовлюсь иметь 1 показ в месяц.
261 1280492
Парни, насколько реально сейчас иметь хоть какой пассивный доход с приложений? можно ли как-нибудь получать стабильно 500-700 долларов?
262 1280494
>>280492
Если твое приложение выстрелит как angry birds, то да.
Иначе даже 25$ за аккаунт разработчика не окупятся.
263 1280506
>>280492
Сколько раз говорить одно и тоже. Если ты разрабатываешь все что угодно под андройд - ты подписываешься на бесплатность. Сколько раз еще можно это говорить? Все андройдеры бомжи, не имеющие деньги. Бомжоящере. Бомжы!

Весь доход идет с иос и только с него, ибо там привыкли жрать говно!
264 1280508
>>280492
>>280506
Просто нужно понять, что разрабатывать приложения под андроид - это один скилл.
А создавать прибыльные продукты - это совершенно другой навык.
И они никак не связаны. Умеешь делать первое - найди работу и спокойно пиши код за деньги, не парься над продвижением, законами, бухгалтерией, налогами.
Умеешь делать второе - найми разработчика и не еби никому мозг.
265 1280512
>>280508
Ну вот насколько реальный сценарий: допустим я пишу оч удобное приложения для будильника, или погоды, похуй. Естественно я ориантируюсь на западный рынок, но в моем приложении будет кнопочка, где я расписал пасту, которая вызывает скудную слезу у клиентов и они могут придонатить мне 1-5 доллара-евро за бесплатность приложения, такое имеет право на жизнь?
266 1280519
>>280512

>кнопочка, где я расписал пасту, которая вызывает скудную слезу у клиентов и они могут придонатить мне 1-5 доллара-евро за бесплатность приложения


Ты 1-5 долларов и получишь. Суммарно.

Лучше воткнуть рекламу и/или премиум версию замутить и не изобретать велосипед.

>я пишу оч удобное приложения для будильника, или погоды, похуй.


За время написания и отладки "оч удобного будильника" можно разгрузкой вагонов заработать в 50 больше чем ты поднимешь с маркета.

А с учетом что будильников или погодных виджетов там миллионы, то ты либо выкладываешься в продвижение и уходишь в минуса, либо имеешь 15 скачиваний в неделю.
2018-10-1714-56-59.png1 Кб, 262x172
267 1280520
>>280508
>>280494
все верно, не стоит вскрывать эту тему
268 1280521
>>280512
Ну попробуй, че. Потом поделишься
историей "успеха".
269 1280524
Хз, по мне так если бы действительно все было так хуево, то плей маркет не был бы такой свалкой говна.

Даже конченный дебил клепает простейшие игры для дошкольников/офисного планктона и зарабатывает 500$/наносек.
270 1280553
>>280524

>Даже конченный дебил клепает простейшие игры для дошкольников/офисного планктона и зарабатывает 500$/наносек.


На последнем Гугел ИО говорили, что только 30% всех игр в маркете приносят прибыль.
70% лежит мертвым грузом.
271 1280554
>>280360
Не, а зачем мне вообще делать это профессионально?

Мне понадобился инструмент для решения определённых задач и я решил его написать. То же самое происходило и в 2016, и в 2014. В перерывах между этими этапами мне никакие инструменты нужны не были. Проблемы?
272 1280604
у меня одного стала ключить студия после обновления до 3.2.1 ?
image.png73 Кб, 640x530
273 1280621
Хочу запилить панель поиска как в 2гис или ГуглМапс. Есть главный экран с моей картой/картинкой, наверху поверх картинки - тулбар. При клике на тулбар открывается searchView, но при этом открывается новый фрагмент с предложениями или сохраненками, полностью перекрывающий картинку. А при вводе запроса открывается список предложений.
Это действительно открывается новый фрагмент каждый раз? В таком случае как наладить общение между searchView и фрагментом (по вводу запроса фильтровать suggestions)? Или это кастомная вьюха и не стоит вскрывать эту тему?
274 1280723
>>280621
Мне вообще непонятен весь контекст.

>Это действительно открывается новый фрагмент каждый раз?


Поставь логи в onCreateView or onAttach и узнаешь.
275 1280798
можно ли в firebase залить картинку или файл текстовый на сервер, и потом стащить на девайсе?
276 1280819
>>280520
Это за месяц? Сколько показов рекламы в сутки?
277 1280824
>>280521
>>280519
>>280494
Эх. Двач - это ведро с крабами. Молодых шутливых на дно тянут.
279 1280881
>>280880
Щас бы файлы в бд пихать, когда есть Cloud Storage.
281 1280968
>>280932
Ну да, как ты и говорил, лучше не вскрывать эту тему.
282 1280974
>>270595 (OP)
Cкладывается ощущение, что шапка написана джава-ублюдками. Почему то про ламповые PhoneGap и Angular, на которых делать приложение намного проще и быстрее не упоминаются вообще.
283 1280983
>>280974
хорошая попытка
284 1281135
Посоны, сколько в среднем по времени потребуется перекатиться из вэба в андройд?
285 1281155
>>281135

> из вэба


Твой мозг уже был подвергнут необратимым изменениям. Можно откуда-то перекатиться в веб, но не наоборот.
286 1281166
>>281135

>Посоны, сколько в среднем по времени потребуется перекатиться из вэба в андройд?


3 месяца по 8 часов в день.

>>280974

>Почему то про ламповые PhoneGap и Angular, на которых делать приложение намного проще и быстрее не упоминаются вообще.


Первый раз слышу. А кто-то еще разрабатывает приложения исключая андройд студию? Земля вам пухом.
287 1281205
>>281166
Ебать. Это по 2 часа 12 месяцев. По 3 часа - 9.
288 1281222
>>281166

>Первый раз слышу


Если знаком немного с html и css, то ангуляр и кордова (фонгап) самое то. И не надо ебацца с жабой.
289 1281234
>>281222

>>Самое то, чтобы высрать тормознутое уродливое говно-приложение

290 1281244
>>281234
Ну если у жабо макаки руки из жопы растут то да)
У жс господ все отлично работает без всяких тормозов.
291 1281247
Друзья мои, занимаюсь веб-макакингом шарп два года, хочется попробовать что-то новое, а именно Андроид. Проблема в том, что я аутист, и у меня совершенно нет идей что именно делать. Подскажите пожалуйста.

P.S. Писать планирую на Котлине.
292 1281248
>>281247
Я имею ввиду, идею для проекта, документацию я уж сам нагуглю.

настолько аутист, что даже выразить свои мысли не могу
293 1281249
>>281248

>что


Попробуй для начала просмотрщик картинко с какого-нибудь giphy
294 1281253
Господа. Почему-то AVD крашится и в логе пишет вот это:
https://pastebin.com/DDmRy3hr - в чем может быть проблема?
Пытался запустить эмулятор Pixel 2 API 28 через Hardware.
Остальные устройства на которых можно выставить Software эмуляцию работают нормально и без каких-либо проблем.

Процессор: i7 3770k
В биосе включена виртуализация
На команду kmv-ok выдает:
INFO: /dev/kvm exists
KVM acceleration can be used


т.е все нормально. Добавил своего пользователя в группу kvm (а также в еще какую-то, не помню), как просил установщик. Для установки kvm вводил вот такую команду:
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils ia32-libs-multiarch

Event Log выдает вот это - https://pastebin.com/CktVyWX9
295 1281302
>>281244
примеры хорошего приложения на js в студию!
296 1281543
Сап програмач.
Кто разбирался с правилами гуглплея, есть какой-нибудь краткий вариант того что можно а что нельзя?
Ясен хуй нельзя прон и контент нарушающий авторские права. А что ещё? Что говорит про азартные игры? А про лотереи?
297 1281580
>>281253

>CPU: amd64


>i7


Либо ты пиздишь, либо ты не тот образ запускаешь на эмуляторе.
298 1281596
Ебаный рот этого казино!
Решил вчера поиграться с альфой sqldelight, еле подключил, по ходу дела поставил влагин котлина с rc версией.
Сегодня утром отвалилась половина зависимостей (в основном androidx, но тимбер и rxjava2 тоже, наверняка еще много другого не заметил), студия в упор подчеркивате их красным, мол от них только R файл есть, но собирается все нормально, удалил студию, постарался все от нее удалить - хуй там после переустановки воз и ныне там.

Попробую пока в идее поработать, может кто сталкивался с похожей проблемой?
299 1281600
>>281580
Эээ, братиш, ты не знаешь что весь современный 64-битный интол это amd64 архитектура, или ты о чем?
300 1281602
>>281600
Ты дурачок?

>>281596
Проиграл с дурачка. Проблема не в студии, меньше альф ебаных устанавливай.
301 1281604
>>281580
Ну я сам этого не понял как бы
302 1281606
>>281602
Ну я конечно в ваш вопрос не вникал, я мимо крокодил, но будь так любезен пояснить, почему я дурачок и что тебе не понравилось в сочитании amd64+i7?
303 1281628
>>281600
На самом деле х86_64, а амд64 - синоним, но узнал я это из заголовки википедии.
305 1282096
>>282034
Там о разных вещах идет речь. Я добавил другой плагин к сборке, а не самый основной для ведра, потом убрал, но все похуевилось так что даже переустановка не помогает. Причем после тех же манипуляций в IDEA все норм.
306 1282111
>>282096
А у тебя канарейка или стейбл?
307 1282120
>>282111
Студия стэйбл. Канарейку я всегда отдельно ставлю.
Screenshot 2018-10-21 at 14.08.02.png313 Кб, 1818x1406
308 1282130
309 1282447
>>281580
Бамп, проблема все еще не решена. Может ли быть причина в том, что используемая мной видеокарта это GTX 9800 +, которая не поддерживает DirectX 11? Или в этом деле видеокарта вообще не задействуется?
310 1282470
>>282447
А тебе не кажется что это из за пердолинга с линуксом? Ты чекал на другой оси это дело?
311 1282491
>>282120
Все нахуй, починил, что-то произошло в идеевских файлах. Когда я скачал проект по новой с гита все стало норм, пиздец.
312 1282493
Dagger vs Koin vs Kodein

Давно пользуюсь даггером, но сейчас на одном проекте предыдущая комнада несколько оверинжинирнулась и на каждый фрагмент - компонента с одним модулем, причем все под копирку. Из-за дагера это весьма долго собирается, потому решил глянуть на альтернативы?
Как вижу на первый взгляд koin чисто андроидовсая тема, это meh, но он похоже пиздец простой/легковесный - это +.

Kodein же вроде как везде для котлина сойдет, но какой-то более навороченный, но вроде не навороченней даггера.
313 1282496
>>282493
Koin это не DI, а Service locator. Больше кода руками писать будешь. Но для мелких проектов - это ок.
314 1282502
>>282470
Ну на винде я даже боюсь что-либо тестировать, ибо эта хуйня скорее всего еще хуже будет там работать. Но вообще попробую, спасибо что напомнил.
315 1282528
Есть Room точенный.
Есть primaryKeys в описании Entity дроченном.
Как прописать autoGenerate в эту хуйню?
Чувствую себя говноедом-хипстером с этими ебучими ORMами, честно говоря. Год уже этому Room, и до сих пор нельзя пользоваться INSERT, ну охуеть вообще
316 1282530
>>282528
Точнее, мне нужно сгенерировать уникальный айди для сущности.
А primaryKeys мне нужен, чтобы сделать несколько столбцов уникальными (возможности сделать это по-человечески, как в sql query при создании таблицы - я так и не нашел). И вот через аннотацию @PrimaryKey(autoGenerate=true) я могу это сделать, но ВОТ ЭТО ПОВОРОТ - она может быть только одна на сущность. И никак не одновременно с primaryKeys.
Без названия (3).png4 Кб, 215x234
317 1282541
1) Как установить Samsung Browser в AVD на Nexus5X или Pixel2 (любой девайс с Play Marker) ? Пишет мол это приложение не поддерживается на устройстве, хотя вроде бы на физических девайсах установить можно, но могу ошибаться.

2) Как происходит обработка при Hardware эмуляции? Вся нагрузка идет на процессор или какую-то часть на себя берет видеокарта компа? Потому что сейчас чувствую подлагивания возможно из-за того, что видюха у меня GTX 9800+ (512mb), а процессор i7 3770k (и 16gb озу).

3) Как правильно установить кастомное приложение на эмулируемый девайс? Например если мне нужно потестить Samsung Browser на Android 7, в папке девайса лишь лишь img образ sd-карты.
318 1282548
>>282530

>возможности сделать это по-человечески, как в sql query при создании таблицы - я так и не нашел


Room callbacks гугли.
319 1282549
>>282541

>3


Adb install browser.apk
320 1282554
>>281253
Дело в дровах, было 1 в 1 такое же на старом радеоне. Все потому что пидоры выпилили старый драйвер в замен опенсорс параши.
321 1282911
Наткнулся на множество реализаций в серсисах. IntentService, JobSchedule, WorkManager и так далее. Как их и в каких наиболее частых случаях их используют?
322 1282920
>>282530
Я плохо помню теорию реляционных баз, но ты уверен что то что ты хочешь ей соответствует?
Типа ты хочешь primaryKey не autoIncrement, а какой-то свой, и еще одно поле для обеспечения какой-то дополнительной уникальности? Но ведь у тебя есть primaryKey, зачем еще что-то?

Приведи пример может из пары таблиц.

>>282493
В 2.18 завезли инкрементальную сборку: https://twitter.com/gradle/status/1053387932260679680?s=12, попробуйте.
Ну и dagger более продвинутая штука, думаю. Покрывает больше кейсов, которые могут возникнуть, более стабилен. Зачем менять проверенную тему на хайповую?

>>281596
.idea в проекте попробуй ебнуть
323 1282934
>>282911
>>282911
IntentService это древняя хуйня. По сути сервис который позволяет исполнять задачи в параллельном потоке. Хз зачем он может понадобиться в текущих реалиях, когда твои сервисы убивают нахуй по любому чиху ради экономии батарейки.

JobScheduler это не сервис. JobService -- сервис. Доступен с Android 5 и выше Я точно не помню как это выглядит в API, но суть сводится к тому, что твои джобы будут запускаться не сразу как только ты их задал, а тогда система решит что ее стоит запустить. Ты можешь конфигурировать джобу, например так, чтобы она запустилась только когда появится соединеине с интернетом. Или задать максимальное количество времени, на которое ее можно отложить.

WorkManager это какой-то новый суперкостыль для того чтобы удобно запускать таски вне зависимости от версии ведра на которой в данный момент работает приложение. Если это 5+, то может использоваться JobScheduler. Если меньше 5, то, например, AlarmManager.

Из всего этого, думаю, тебе лучше всего использовать WorkManager, даже несмотря на то, что ты можешь поддерживать только девайсы с 5+. Тебе самому удобнее будет. Потому что мало ли что там будет дальше. Если появится новый велосипед, то он скорее всего тоже будет поддержан этим методом и тебе ничего не придется дописывать.

А вообще посмотри в строну корутин или rxjava, если у тебя стоит задача просто запустить поток параллельно и не нужно что-то делать прям в фоне, типа прослушивания музыки, загрузки какой-нибудь хуйни или еще каких-нибудь gps трекеров.
324 1282957
>>282934
Спасибо большущее, анончик.
325 1282972
Не знаю по адресу я или нет? В общем хочу задать вопрос про кроссплатформенность разработку, вот сейчас модно разрабатывать на reaсt native по тихой народ присматривается к flutter.
Но подскажите, по чему не взлетел QML вообще не слышал чтоб кто-то на нем что либо писал? Покурив и реакт нейтив и флаттер и qml могу сказать, что реакт нейтив выглядит совсем уж костылем. Флаттер относительно не плох, но бесконечно вложенные параметры раздаражают. А вот qml тоже яваскрипт подобный синтаксис, если не хватает его возможностей, можно писать сложные части на c++/qt шустр, билд значительно меньше чем у конкурентов.

Вообще стоит им обманываться? Если мне понравилось с ним работать? Какие по вашему перспективы? И всеже почему никто им не пользуется?
326 1283013
Не хочу учить java, но знаю руби, ruboto сильно ущербный? Только MWWM, MVC не канает? да я рейлс веб обезьяна
327 1283028
>>282920
Так с котлином все равно же не будет работать, т.к. капт это отдельная хуйня, не?
328 1283076
>>282972

> И всеже почему никто им не пользуется?


Итс 2К18 - уже ни кто не пользуется сипипи

> народ присматривается к flutter.


флаттер это мем

> реакт нейтив выглядит совсем уж костылем.


ок

Вот так - ВЫБОРЫ БЕЗ ВЫБОРА!
329 1283127
>>283028
Внятной инфы не нашел, но в release notes явно указан javac, в твиттере тоже пишут что не будет работать. Походу ты прав
330 1283128
>>282972

>Какие по вашему перспективы?



На hh заходишь и смотришь на свое перспективы
331 1283162
Ну бля и параша, нахуй так жить

Сначала блядь должен разобраться в jdk, jre, jvm, sdk, mdk, pnh, gradle, maven, huyaven
Потом выпилить всю хуйню из интерфейса которая высрана по всем краям, отключить все лампочки, выделения, подчеркивания, стрелочки
Потом эта хуйня начинает тупить и лагать, когда ты еще даже ничего сделать и разработка на макпуке не представляется возможной

К слову в ios все работает изкоробки, интерфейс упорядочен и никакая хуйня не мозолить глаза, так сильно не тормозит даже большом проекте
332 1283203
>>283076

>Итс 2К18 - уже ни кто не пользуется сипипи


дак дело в том, что это и не цпп, а некая смесь яваскрипта с цсс, в цпп можно даже не лезть если нет особой нужды
333 1283223
>>283162
Xcode редкостное говнище. Даже лень объяснять, но может если мне бомбанет сильнее распишу.
334 1283228
>>283223
Объяснить? максимум оправдаться. У икскода тоже есть косяки, но по сравнению с этой парашей они вообще не заметны. Я просто физически не могу работать за ноутом на котором икскод летает, что тут можно говорить
335 1283245
>>283228
Что за ноут? У меня древнющий pro late 13. Особых лагов в жетрбейноподелках нет. Икскод конечно тоже не лагает, но устраивает постоянные приколы в духе миграции кода, который уже мигрировали, и от того нельзя мигрировать лол (версии свифта). Иногда хуй знает от чего нет разрешения на файл потому проект билдится но не запускается, "призрачные ошибки" (ее уже исправили но она всеравно светится). Никакующий автокомплит. Недавно еще выловил классный баг, но это навернео компилятор свифта, из-за которого в 4 из 5 случаев один и тот же валидный код не компилился.
336 1283256
>>283162
Зачем нужен мавен, если уже с грэдлом разобрался?
337 1283262
>>283245
У меня 13" 2012 ссд и 16гб, хорошо хоть игральный комп есть чтобы поиграться в андроид на максималках. Все, что ты описал кроме автокомплита случается раз в 100лет и то не точно. И чтобы все это ощутить надо еще постараться, а тут на меня сразу кучу говна вылили и думаю дальше будет только интересней.
338 1283264
>>283262
Не знаю, у меня 8 гб. Призрачные ошибки/варнинги и никакующий автокомплит лично меня уже убивает, и случаются довольно часто.
339 1283267
>>283264

> у меня 8 гб. Призрачные ошибки/варнинги и никакующий автокомплит лично меня уже убивает,


У меня 8 гб. Все работает идеально. Просто не понимаю как можно жаловаться и на студию, и на хкоде. Хотя хкоде по части хот кейс просто ужасен.
340 1283322
студия 3.2, пытаюсь собрать опенкамеру. При открытии не может найти support-v4 (хотя я на сайте мавена его нашёл, хз, где он ищет)
При сборке вообще какую-то ебалу не может загрузить. Что ему надо, где ему почесать, чтобы заработало?
бля, как вы вообще пользуетесь этим говном
341 1283326
>>283322
Покажи какие репозитории подключены. Возможно там проект говно мамонта и не через гугловский репозиторий подключались, а локально через sdk tools.
Хуйни в buildscript и allprojects:
repositories {
mavenCentral()
google()
jcenter()
// все остальное
}
342 1283329
>>270595 (OP)
Какие вообще best practices по обновлению элементов в RecyclerView.
Например, есть плиточка со скачиваемыми элементами: нажимаешь на айтем и начинается скачивание, на элементе показывается процесс в процентах. Есть очевидные notifyItemChanged, но не будет ли нагрузка большая на перерисовку, если дергать часто и разные элементы? Или лучше каким-то хитрым образм во вью холдеры инжектить сущность, которая будет сообщать о изменении прогресса загрузки и ручками обновлять прогресс во вьюшке?
343 1283334
>>283329
Самый простой вариант и при этом не очень муторный - DiffUtil с changePayload. Можешь руками дергать notifyItemChanged, главное дергать его с пэйлоадом. Когда дергаешь с пэйлоадом другой метод адаптера вызвается и ты можешь не полностью вьюхолдер переделывать, будет норм.
Есть Epoxy, может там чето внутри по-лучше.
Хотя можно и инжектить во вьюхолдер, но он тогда пожирнеет, возможно лучше для в таком случае сделать свой презентер, главное его цеплять в onBind, а onRecycled отцеплять.
344 1283339
>>283334

>, главное его цеплять в onBind, а onRecycled отцеплять.


ну вот я сейчас так и делаю, но хочется красивее. Наверное буду на

>notifyItemChanged, главное дергать его с пэйлоадом.


переписывать.

Спасибо
20181023-f81ba.png129 Кб, 1095x914
345 1283345
>>283326

>mavenCentral()


добавил, но не фартануло
346 1283346
>>283203
Попробуй на своём css наливные элементы UI элементы сделать.
347 1283370
>>283345
Иду в сосноль через gradlew, там не находит aapt2-proto сука, ну почему?. В репе, где он ищет, внезапно только pom файлик. А ты ж блять, а на мавене jar есть! Как заставить эту gradle-ссанину юзать мавеновский репозиторий? Или любой другой, где нужный стафф есть?
вообще хуею с этой недоинфраструктуры, какая-то ебаная помойка
image.png61 Кб, 782x225
348 1283372
>>283370
Это не у тебя проблемы.
У меня сейчас тоже CI отвалился
20181023-923d8.png80 Кб, 1248x861
349 1283374
>>283372
Раз в год берусь потрогать ведроид и каждый раз какая-нить залупа. Удалил jcenter и посинкалось - а на хрена тогда там вообще несколько реп, если он автоматом не перескакивает на дополнительные?
350 1283383
>>283322
нихуя непонятно, пропиши в терминале (вкладка внизу рядом с build) "gradlew build" и скинь сюда внятный лог
351 1283387
>>283383
Да всё, разобрался уже, даже apk получил. Проблема в репе jcenter была - удалил и завертелось.
352 1283500
>>283334

> Хотя можно и инжектить во вьюхолдер, но он тогда пожирнеет, возможно лучше для в таком случае сделать свой презентер, главное его цеплять в onBind, а onRecycled отцеплять.


Это кусок говна, не надо так делать. Ты потом будешь туда накидывать все больше и больше и охуеешь поддерживать. DiffUtil с пейлоадами идеальный вариант.
353 1283589
Когда одна таска не проходила нормально нажал на предложение проганть таску с --debug, теперь она каждый раз гоняется с этой опцией, как ее (опцию) отцепить от этой таски?
vlcsnap-2018-09-10-00h35m35s530.png296 Кб, 720x400
354 1283647
>>282502
На линуксах пердоля больше, на винде запускается однокнопочно. А если у тебя амудя, лучше даже не пытайся эмулятор запустить
355 1283648
>>283334

>DiffUtil


Древняя параша, теперь в моде RecyclerView.ListAdapter
356 1283649
>>283374
Потому что ты ньюфак и не знаешь про мой "invalidate caches and restart". Когда студия тупит - тут же инвалидируешь всё к хуям и ребилдишь проект.
vlcsnap-2018-09-30-01h15m21s496.png830 Кб, 1916x1076
357 1283650

>Failed to allocate a 8 byte allocation with 0 free bytes and 4GB until OOM


>OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available


Как?
358 1283691
>>283589
>>283374

Если не поможет .idea ебни
359 1283728
>>283650
А какой тебе стектрейс надо? Это же ООМ, тут профайлить надо
360 1283730
>>283647

> А если у тебя амудя, лучше даже не пытайся эмулятор запустить


На 10ке же завели недавно через хипер-в вроде.
361 1283742
>>283648
А смысл тот же.
362 1283750
>>283742
Да, только RecyclerView.ListAdapter менее гибкий
363 1283792

>>Notice: The Fabric iOS and Android mobile apps will be sunset on November 30, 2018. After this date, you will not be able to log into the apps.


как же я ненавижу гугл, всем сердцем прям, всей душой (но все равно меньше чем apple)
364 1283846
>>283792
А в чем проблема, меняешь артефакт на гугловский и все, нет?
365 1283890
>>283846
Он про мобильные клиенты крашлитики. Хотя не понимаю, нахуя они.
366 1283900
>>283890

>Хотя не понимаю, нахуя они.


Ребенок с петпроджектом в маркете детектед
367 1283908
>>283900
У тебя репорты на почту валятся, тот же самый пуш, что и фабрик дает в приложение. А стактрейсы в нем смотреть я ебал, проще через веб, чтобы сразу если что копипастнуть нормально.
368 1284295
А есть в треде конкретно андройд-фрилансеры?
369 1284380
>>284295

>андройд


нет
370 1284510
Какое же андроид говно, я ебал. Пердолево с плашками занимает больше времени, чем написание бизнес-логики.
Ну какому мудиле в голову может прийти, что фрагмент Б, который был вызван фрагментом А (например, диалог о добавлении записи в список) - будет привязан к активити, а не к создавшему фрагменту? Какого хуя, чтобы получить результаты диалога - нужно создавать вермишель из хуйни, перекидывать результат по цепочке?
Поэтому и архитектура в виде одной базовой активити и кучи сменяемых фрагментов - это БОЛЬ И УНИЖЕНИЕ.
Не говоря уже о архиуебищном способе инициализации фрагментов через bundle, который ебет все ООП в рот.
371 1284512
>>284510
Используй target fragment, одной соплей будет меньше.
372 1284527
>>284512
Не особо. onAttach и тд все равно будут привязаны к активити.
А вместо использования обратного вызова в строк 5 - нужно нахуярить не меньше 20 с onActivityResult и тем же bundle, в который не все положишь, а тронешь в одном месте - отвалится в другом. Не говоря уже о том, что выглядит это все, как нечитаемое и неявное говно с какими-то непонятными кодами.
373 1284531
>>284527
Хотя, может, можно будет избежать этой вермишели, если просто дергать корневой фрагмент через getTargetFragment(), приводить к listener, и вызывать его методы напрямую.
374 1284533
>>284531

> дергать фрагмент через getTargetFragment(), приводить к listener, и вызывать его методы напрямую


Я это и подразумевал.
Вообще сейчас это решается через общую модель, но ты видимо еще до этого не добрался.
375 1284601
>>284510
А ты через какой менеджер фрагментов его добавлял? Обычный саппортный, или через child. Просто в первом случае так и задумано что он к активити прицепится.
376 1284603
>>284533
Это которая новая viewmodel с модными lifecyclами?
377 1284604
>>284603

> viewmodel с модными lifecyclами?


mvvm от гугла больше похожа на костыль самодельный.
378 1284669
>>284510
Ну если ты сам не способен в ведроид и не знаешь о разных фрагмент менеджерах, то не выебывайся. Это как танцор, который пиздит на танец, не выучив все па.
379 1284768
>>284510

>нужно создавать вермишель из хуйни, перекидывать результат по цепочке?


Для этого можно использовать или rx или какой-нибудь bus. Твой гнев не обоснован, школьник. В году так 13-14 была боль и унижение.
380 1284935
>>284669

>разные фрагмент менеджеры


Что уже само по себе индусская говнотектура.
sage 381 1284942
>>284935
Ну возьми и напиши всё с нуля правильно. Займёт это лет 5 и никому нужно не будет.
Сколько уже можно ныть про одно и то же? Да, при разработке было допущено много ошибок, причём до того, как гугл купил ос. Если бы гугл каждый раз ломал совместимость, то ты бы сейчас под андроид не писал, и 70% рынка у него бы не было.
382 1284986
>>284942
Тут сыглы.

>>284935
Любишь только пиздеть, а если возьмешься за что-нибудь, так тут же обосрешься.
383 1285060
>>284986

>пук


Что никак не отменяет того факта, что апи андроида - говнище индусское.
384 1285094
>>285060

>что апи андроида - говнище индусское.


Что есть - то есть. Жс тоже говнище и что?
385 1285208
>>284510
Ну а хуле ты хотел. Андроид это одно большое легаси. И он такой не один. Я не знаю как там на самом деле с JS, но вот >>285094 говорит что все тоже хуево.
Любой старый проект обрастает костылями со временем. Посмотри на какой-нибудь Си с функциями типа "__do_something()", которые так выглядят потому что "_do_something()" и "do_something()" уже deprecated, но легаси код, опять же, никуда не делся.

Сейчас задача разработчика состоит в том числе в том чтобы знать такие костыли и знать как с ними работать и как инкапсулировать все это говно с помощью архитектуры.

Конкретно твой кейс с диалогами мы у себя порешали через лайвдаты. Есть единый метод в BaseFragment, который позволяет показать диалогФрагмент. В нем же происходит подписка на лайвдату, которая лежит в этом диалогФрагменте. Ну и по тычку на "ок" передается эвент, который может в себя включать текст введеный на диалоге/дату из datePicker/любое другое дерьмо.
Никаких проблем с лайфцайклом/утечками и тд нет.
386 1285326
Снова нужна помощь с не очевидным крашем, возникает только на huawei гаджетах и только на androdi 5. Гугл молчит, ну или я не умею им пользоваться. Кто-нибудь фиксил такое?
Снимок экрана - 27.10.2018 - 15:39:03.png114 Кб, 898x933
387 1285327
Снова нужна помощь с неочевидным крашем, возникает только на huawei гаджетах и только на android 5. Гугл молчит, ну или я не умею им пользоваться. У кого-нибудь опыт фикса того есть?
388 1285361
>>285327
Моя кибертелепатия (гугл) говорит, что у тебя используется TextInputEditText без TextInputLayout.
Может хоть layout свой покажешь?
389 1285372
>>285361
Ты видишь где исключение генерируется? Это не мой layout, а приблуда от huawei

com.huawei.android.hwcontrol.HwEditor$HwActionPopupWindow.initContentView
390 1285373
>>285372
Но ведь это твой код стартует дерьмо, которое ломает хуавеи?
391 1285417
>>285373
Нет, я это дерьмо даже палочкой не трогал, не то что у себя использовал. Это внутри прошики хуйавеной что-то сыпется, но проблема распространенная, у меня в консоли дофига крашей фиксирует от счастливых пользователей девайсов от huawei
392 1285466
>>285417
Скорее всего, вываливается на лонгтапе EditText внутри TIL. Ты, случаем, TextFieldBoxes не юзаешь?

У меня была похожая проблема, только вываливалась не на хуавее, а на гнусмасах.
Фикс: editText.setOnLongClickListener { !editText.isFocused }
393 1285829
Хочу запилить следующею игрушку под андроид:
AR-садик. Садишь деревья и растения у себя дома, смотришь, как они растут в реальном времени. Поливаешь их, плоды собираешь, вся хуйня.
Вопрос: насколько сложно это реализовать? AR-приложения ещё никогда не писал. Реально в этом дерьме самому разобраться? И на чём их пишут? На Java?
394 1285831
>>285829

>игрушку под андроид


Если хочешь делать какие-либо игрушки - делаешь на Unity.
395 1285835
Никто не желает делать вместе пет проект? Кодовая база уже присутствует, рх, даггер, ретрофит + архитектура.
396 1285839
>>285831
И на юнити можно писать AR-приложения?
Screenshot 2018-10-28 at 14.35.06.png393 Кб, 1874x1494
397 1285842
>>285839
Я же тебе сказал, игры - берешь Unity.
https://unity3d.com/ru/partners/google/arcore?_ga=2.130877643.534308711.1540722945-1287009715.1540722945

Ты даже нагуглить неудосужился. Вангую, что ничего у тебя и не получится с таким подходом. Иди лучше выпиливайся, няша.
398 1285849
>>285842
Во-первых, про ARcore я уже читал.
Во-вторых, если бы ты вместо того, что бы выпендриваться, сам бы почитал, что кидаешь, то ты бы заметил, что этот самый ARcore работает на крайне узком круге моделей и, увы, у меня нет под рукой Samsung Galaxy S8. У ARcore рили охуенный функционал, но игру, построенную на нём, смогут запустить два с половиной пользователя.
Есть ещё Vuforia, но она работает онли с маркерами, а хотелось всё таки обойтись без них.
Screenshot 2018-10-28 at 15.02.59.png74 Кб, 1712x340
399 1285851
>>285849
Ты, черствый дурачок, думаешь блять запускать свою нахуй никому не нужную игру на 5.0 +? Ты ебанулся что ли? Большинство андройд устройств, даже говнокитайские поделки за 3-4к уже продаются с системой 7.0+ как минимум. ВСЕ ИГРЫ С АР сделаны от маршлелоу. Сука, иди нахуй блять. Вкатывальщик хуев. Ставлю 1к на то, что нихуя у тебя не получится и ты все забросишь.
400 1285868
>>285851
Да что с тобой не так то? Для ARCore нужен не просто мобильник с андроидом 7.0, а мобильник определённой модели. Есть, блядь, даже список моделей, которые поддерживают его.
Алсо, сейчас на своём андроиде 6.0 запустил пару AR-приложений, и все они работали, токсик ёбанный.
401 1285920
Подскажите как по четкому забацать.

Есть субкомпоненты дагера, лениво создаются по требованию, ну то есть создалась активити/фрагмент и дернула апликейшн, и тот создал субкомпоненту для логического скойпа. А когда ее (субкомпоненту) грохать? Не вижу какого-то прямого выхода кроме как во всех точках возврата из логического скоупа грохать субкомпоненту, но выглядит как-то совсем неудобно.

Если бы у меня была сингл активити было бы чуть проще, следил бы за фаргментаи/контролелрами/или что там вместо них было бы. Но у меня 3х летнее легаси которое разваливается, и пока отдельные большие логические скоупы живут в своих активитях.

Сначала подумал можно было бы в onCleared ViewModelи ассоциированной с активити убивать субкомпоненту, но что если я из этой активити перейду вниз по скоупу? Тогда onCleared вызовется, но грохать активити еще не нужно.
402 1285923
Подскажите как по четкому забацать.

Есть субкомпоненты дагера, лениво создаются по требованию, ну то есть создалась активити/фрагмент и дернула апликейшн, и тот создал субкомпоненту для логического скойпа. А когда ее (субкомпоненту) грохать? Не вижу какого-то прямого выхода кроме как во всех точках возврата из логического скоупа грохать субкомпоненту, но выглядит как-то совсем неудобно.

Если бы у меня была сингл активити было бы чуть проще, следил бы за фаргментаи/контролелрами/или что там вместо них было бы. Но у меня 3х летнее легаси которое разваливается, и пока отдельные большие логические скоупы живут в своих активитях.

Сначала подумал можно было бы в onCleared ViewModelи ассоциированной с активити убивать субкомпоненту, но что если я из этой активити перейду вниз по скоупу? Тогда onCleared вызовется, но грохать скоуп еще не нужно.
403 1285925
Упс, дабл пост. Интересно почему форма не чистится по отправке.
404 1285926
Гуглил и удивился, что никто ничего не писал по данному случаю.
Понадобилось иметь одинаковые отступы в RecyclerView перед первым элементом, между элементами и после последнего. Margin и padding у самого листа не подходят, поскольку он будет скроллиться под пару пустых пикселей, а не под другую вьюху ил край экрана. Задал все отступы кроме верхнего в item.xml, а верхний реализовал через ItemDecoration.getItemOffsets у первого элемента. Всё нормально отрисовывается, но теперь при обновлении списка (чистка через notifyItemRangeRemoved) список сначала прыгает вверх (пусть и на пару пикселей) и только потом удаляет элементы. Как я понимаю, сначала удаляется offset и это нормальное поведение. Но выглядит это всё не оче...
Кто-нибудь сталкивался с таким и как решил?
405 1285929
>>285926
Лол, пару тредов назад это обсуждали, я разошелся во мнение с другим чуваком, он предложил использовать дополнитетельные элементы в списке, которые представляют из себя отступы.
Я написал себе декоратор который работает с LinearLayoutManagerом и GridLayoutManagerом (даже с кастомным SpanSizeLookup'ом), но что бы не было описанной тобой проблемы приходится в итем включать его позицию в списке и в DiffUtil.Callbackе либо DiffUtil.ItemCallbackе счиать это одним и тем же элементом, но с изменением и передавать в качестве payloadа сигнал об изменении позиции, тогда DiffUtil нормально выкупит и не просто пересчитает getItemOffsets, но и применит их новые значения.
Сделал маленький проект где показывал эту проблему на примере списка и как оно себе ведет при разных вариантах (notifyItemChanged для всех с заменой списка, swapAdapter, DiffUtil) если меняется порядок. Самое странное что без всяких суррогатных позиций в данных методы декорации вызываются, но не применяются. Так и не дошли руки никуда отправить вопрос баг ли это, уже недельки две как прошло.
406 1286010

>ClickableSpan


>нужно ручками указывать индексы ссылки в строке


Мде, и как вот такое локализовывать? Придумывать свой тег и парсить строку?
407 1286022
>>286010
Именно, причем вроде даже есть встроенная парсилка xml, но из нее хуй достанешь аттрибуты.
408 1286046
>>286022
В принципе, терпимый варифнт. Очко делало жим-жим при мысли, что переводчик (особенно, левый) забудет закрыть непонятный тег или вообще сотрет его, и это распидорасит функционал. Но студия ругается на корявые скобки даже кастомных тегов.
409 1286140
>>285835
А что за проект?
410 1286161
>>286140
Клиент двача
411 1286189
>>285929
Блять, ну пиздец.

>пару тредов назад это обсуждали


Странно, как-то не обратил внимания. Пропустить не мог - читаю этот тред уже год точно.

>использовать дополнитетельные элементы в списке, которые представляют из себя отступы


Это конечно самый простой вариант (и очень даже в духе программирования под андроид), но и так же пять типов элементов для списка с одной моделью.

>приходится в итем включать его позицию в списке и в DiffUtil.Callbackе либо DiffUtil.ItemCallbackе счиать это одним и тем же элементом, но с изменением и передавать в качестве payloadа сигнал об изменении позиции


>Самое странное что без всяких суррогатных позиций в данных методы декорации вызываются, но не применяются.


Не совсем понял идею. Где-нибудь можно глянуть код?
412 1286226
>>286189

>Не совсем понял идею.


Было в списке так напрмиер:
sealed class FeedItem(val id: Long) {
class Image(id: Long, val url: String) : FeedItem(id)
class Text(id: Long, val text: String) : FeedItem(id)
}

стало:
sealed class FeedItem(val id: Long, val order: Int) {
class Image(id: Long, order: Int, val url: String) : FeedItem(id, order)
class Text(id: Long, order: Int, val text: String) : FeedItem(id, order)
}
413 1286256
>>286161
Не, это неинтересно. Есть же опенсорс дашчан, с ним гораздо интереснее возиться
414 1286341
>>286140
Смесь реддита и впараши.
415 1286354
>>286161
Оставь фейкопочту, пожалуйста.
416 1286484
>>286354

>Оставь фейкопочту, пожалуйста.


Ты оставь и поговорим.
417 1286487
>>286341
А вот это уже интереснее. Опиши подробнее, что это, что-то типа соцсети с тредами?
418 1286505
>>286484
nt,tomadANUSay_rgPUNCTUMr|gau
419 1286523
>>286505

>n_FPomadANUSaJ\PgPUNCTUMrtd5u


Тогда мой xupi%isosiANUSagS48PUNCTUMrP\Ru
420 1286524
>>286354

>Оставь фейкопочту, пожалуйста.


ag&%_anonovichANUSlizfastPUNCTUMr&S2u
421 1287134
Аноны, подскажите, что предпочтительнее в андроид-проектах в плане архитектуры - MVP или MVVM и почему?
Сам более года юзал MVP, в ус не дул, все выглядело идеально и логично в плане распределений в коде, но все чаще слышу об MVVM, а в инетике никто толковых аргументов о плюсах и минусах так и не расписал. Стоит ли вообще копать в сторону МВВМ или это юзлесс херня? Через что (какие библиотеки) она реализовывается и можно ли сделать связку с DI?
sage 422 1287166
>>287134
Начнём с того, что это не архитектура.
423 1287234
>>287166
А по делу есть что сказать?
424 1287248
>>287134
МВВМ сосет жопу, без аргументов.
425 1287355
>>287134

>Аноны, подскажите, что предпочтительнее в андроид-проектах в плане архитектуры - MVP или MVVM и почему?


>>287234
Это просто общение вью с презентером и все. Читай про клин архитектуру вместе с инжектингом. Статья в шапке есть, можешь скакать оттуда.

Я бы подождал пока гугол не выкатит нормальные релизы своей мввм, а не багнутые вещи, которые они сейчас пропагандируют.
426 1287366
>>287134

>эмвепэ


>эмвевеэм


Лол, почему сразу не на голом NDK? Не тормози, делай TEA на React-Native + Redux + Redux-Loop. По крайней мере пацанам во дворе не стыдно будет показать.
427 1287439
>>287366
Что за хуйню я сейчас прочитал?
Твой рандомный поток слов тут никому не интересен.
428 1287615
Аноны, выручайте, как подобную хрень реализовать, как тут
https://play.google.com/store/apps/details?id=by.wanna.apps.wnails&hl=ru
?

То есть при наводке камеры на руку детектились нужные части и как-то дорисовывались. Куда хоть копать - в сторону AR или в сторону Firebase Machine Learning?
sage 429 1287618
>>287615
Давай я за тебя напишу сразу, напиши, куда исходники скинуть.
430 1287621
>>287618
Давай лучше на вопрос просто ответишь?
431 1287623
Синьоры и мамкины 300к\с.
Есть проблема с Media Player.
Делаю пока проигрывание во фрагменте, а не в сервисе и возник баг. Если я начинаю проигрывать трек, потом поворачиваю экран то все нормально, фрагмент пересоздается, из savedState берется текущее время проигрывания и звук с небольшой задержкой продолжает проигрываться с того же места.
Однако если перед поворотом я поставлю на паузу, то после поворота meida player выдает отрицательное значение duration. Хотя вызываю его в коллбеке onPrepared(mediaPlayer).
Код фрагмента тут:
https://pastebin.com/cKcdm9aH
Лайвсайкл в обоих случаях одинаковый в логах.
(прикрил 1 и пикрил 2)
В чем может быть проблема?
432 1287660
Аноны, важный вопрос пилю приложение на реакт нейтиве, и добавил в него нативный модуль, для логина через ВК. Он открывает либо приложение вк, либо создаёт новую активити с вебвьюхой. Так вот у этой активити странный баг, ее трясет вверх вниз пока не активирую один из инпутов. Как можно пофиксить?
sage 433 1287690
>>287660

> на реакт нейтиве


После такого каминг-аута тебе тут никто не ответит. Теперь только в js-тред.
434 1287703
>>287615
Кстати, красиво. Копать в сторону вычисления объекта по заданной площади. Как найдешь распиши сюда, тоже почитаю.

>>287660

> Так вот у этой активити странный баг, ее трясет вверх вниз пока не активирую один из инпутов.


classic
435 1287717
>>285929
Ещё проверил: добавил после первых нескольких элементов отступ через ItemDecoration.getItemOffsets. И теперь, при очистке списка этот отступ сначала применяется ко всем элементам.
436 1287753
>>287717
Вообще изначальная проблема:

>Понадобилось иметь одинаковые отступы в RecyclerView перед первым элементом, между элементами и после последнего



>Я написал себе декоратор который работает с LinearLayoutManagerом и GridLayoutManagerом (даже с кастомным SpanSizeLookup'ом), но что бы не было описанной тобой проблемы приходится в итем включать его позицию в списке и в DiffUtil.Callbackе либо DiffUtil.ItemCallbackе счиать это одним и тем же элементом, но с изменением и передавать в качестве payloadа сигнал об изменении позиции, тогда DiffUtil нормально выкупит и не просто пересчитает getItemOffsets, но и применит их новые значения.


Зачем так сложно? Зачем так усложнять? Ты просто создаешь ячейку, допустим, с 60дп, и делаешь высоту еще 60, в итоге у тебя 60 + 60 = 120. Первый и последний это другой вью холдер.
437 1287759
>>287753
Ну например высоты ячеек не фиксированные. Не хочу лишние вьюхи создавать.
438 1287802
>>287753
Просто удивляет, что не работает то, что должно работать
439 1287809
>>287753

> Первый и последний это другой вью холдер


Охуенно. У тебя список из 5 элементов. Последний - другой вьюхолдер с отступом. Докидываешь еще один, диффутила дает тебе только notifyItemAdded. Поздравляю, у тебя 2 элемента с отступом в конце.
440 1287816
>>287809

>диффутила дает тебе только notifyItemAdded. Поздравляю, у тебя 2 элемента с отступом в конце.


Какая нахуй дифутила? Ты о чем вообще?
Ебнул два списка, Set и List

при апдейте ебашишь Set addAll, потом клинишь лист и адд алл так же. У меня проекты не на уровне параши, где заботишься о глобал перфомансе.
441 1287817
>>287816
notifyDataSetChanged? Ну круто, чо.
442 1287824
>>287816

>У меня проекты не на уровне параши, где заботишься о глобал перфомансе.


Какой интересный эфемизм для хеллоувордов.
443 1287883
Использую рум. И категорически не нравится, что при попытке заполнить базу при ее создании через такой способ

https://android.jlelse.eu/pre-populate-room-database-6920f9acc870

регулярно случаются ситуации, что из базы выдергивается значение до того, как оно будет записано в нее на старте.
Есть какой-то способ заблокировать создание базы, пока все значение в нее не будут записаны?
444 1287890
>>287883
Залупа ебаная, нихуя не придумал лучшего, чем самому писать query прямо в бд, которая дается через метод Callback'a
public void onCreate(@NonNull SupportSQLiteDatabase db) {}
и вставлять запись ручками, без ебли с неглавными потоками.
445 1288043
>>287890
гг, меньше туторы от всяких гонзалесов читай
446 1288235
Как дела с андроид фрилансом сейчас обстоят?
447 1288283
>>287824

>Какой интересный эфемизм для хеллоувордов.


Эфемизм? На прошлой работе я спиздел 6 репозиториев и тщательно проанализировал. Ни у одного списка не была реализована дифутила.

Хотя я мб опять прочитаю про нее и попробую. Один хуй ничего не поменяется.
448 1288353
>>288235
двачую вопрос

мимо из джава треда
449 1288405
>>288353
Проще найти удаленку и не париться.
450 1288460
с diffuil лень париться, проще setUniqueIds ебнуть
451 1288480
>>287883
Берешь и без задней мысли копируешь БД файл из ассетсов, потому уже открываешь коннекшн к базе.
452 1288508
>>287623
Бамп, так и не разобрался отчего эта хуйня.
Pekabutthurt.jpg66 Кб, 600x400
453 1288536
СУКА ГОРИТ ПИЗДЕЦ У МЕНЯ РОТ ЕБАЛ
Оказывается ебучий Bundle сам по себе сука сохраняет объект и похуй ему на твои реализации Parceable
То есть сохранил я такой в Bundle свой класс:

public void onSaveInstanceState(Bundle savedInstanceState) {
‌ //Save UserData
‌ savedInstanceState.putParcelable(USER_DATA, userData);
‌ //Call supper
‌ super.onSaveInstanceState(savedInstanceState);
‌}

Ну думаю ша достану его при повторном запуске:

protected void onCreate(Bundle savedInstanceState) {
‌ //Recreate previously saved state
‌ if (savedInstanceState != null) {
‌ ‌ //Recreate userData
‌ ‌ userData = savedInstanceState.getParcelable(USER_DATA);
‌ }
}

И действительно достал.
ТОЛЬКО БЛЯТЬ ЭТО ТОТ ЖЕ ОБЪЕКТ НАХУЙ. НИХУЯ ТАМ ПОД КАПОТОМ НЕ СЕРИАЛИЗОВАЛОСЬ/ДЕСЕРИАЛИЗОВАЛОСЬ
BUNDLE СУКА САМ ВСЕ ПОЛЯ ОБЪЕКТА РЕФЛЕКСИЕЙ СОХРАНЯЕТ/ДОСТАЕТ, РОТ ШАТАЛ ОН ТВОЙ PARCELABLE
ВСЕ ПОЛЯ СОХРАНЯЕТ БЛЯТЬ ДА ЖЕ ТЕ ЧТО НЕ ПРОСИЛ
454 1288593
>>288536

> ТОЛЬКО БЛЯТЬ ЭТО ТОТ ЖЕ ОБЪЕКТ НАХУЙ


Ну да, он так и работает. Он серализует/десериализует только при IPC или смерти процесса. Оптимизации, сэр.
455 1288646
>>287623
Не знаю. Я бы советовал в презентер закинуть, а не ебаться так такими переворотами.

>>288536

>То есть сохранил я такой в Bundle свой класс:


никто в бандле не сохраняет классы. Максимум какое-нибудь стринговое поле.
456 1288710
>>288646

> никто в бандле не сохраняет классы


Именно поэтому он поддерживает Parcelable, Serializable. Я вот только сегодня Uri передавал через него. Надо было к строке приводить? Или разбирать идентифицирующий объект из трех полей в 3 строки вместо того, чтобы студией сгенерить реализацию парселебла и не ебать себе мозгии?
457 1288752
>>288710

>Надо было к строке приводить? Или разбирать идентифицирующий объект из трех полей в 3 строки вместо того, чтобы студией сгенерить реализацию парселебла и не ебать себе мозгии?


Не знаю. Во всех проектах пихаю в презентер важную инфу. Вьюшки тупо рисую и все.
458 1288763
>>288752
У тебя бандл только в сейв инстансе используется? Абсолютно такое же поведение при передаче в интентах и аргументах, и к нему нужно быть готовым.
459 1288900
>>288763

>тебя бандл только в сейв инстансе используется?


В сейв инстансе ничего не использую. Ну бандл иногда, я же написал, по большей части с презентера на презентер кидаю.
460 1289027
>>287134
Читай про MVI у Дорфмана
sage 461 1289038
>>289027
Не нужно.
462 1289290
Попробовал вкатится в этот ваш flutter, получил при сборке hello world:
> Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar

это что вообще такое-то?
463 1289296
>>289290

>Попробовал вкатится в этот ваш flutter


Написано же в шапке, земля пухом таким. Я серьезно.
464 1289299
>>289296
он настолько бета?
465 1289306
>>289299
>>289290
Хуй знает, у меня такой проблемы не было, можнт тебе надо билдтулзы той версии скачать? А лучше поставить в скрипте сборке ту версию что у тебя есть.
466 1289307
>>289299

>он настолько бета?


Да нет, я слышал там в америке запилили апп для театра какого-то на нем. Но всякая кросплфт параша же. Лучше с андройда начинай, а потом и иос выучишь как я.
467 1289312
>>289307

> Но всякая кросплфт параша же


На вид сделали хорошо не трогал. Это же не реактивпараша, которая множит свои баги на баги платформы. Полностью собственная отрисовка и обработка компонентов.
>>289290
Там скорей всего google() в репозитории билд скрипта не вписался.
468 1289424
>>289307
АйОС мне в сраку не упал, нужен Ведроид. Проблема (моя) в том, что Java вызывает лютую тошноту одним своим видом
469 1289584
Как в котлине добавить экстеншенами static метод в java class?
У них нет companion object.
470 1289600
>>289424
Проблема любой кроссплатформенной параши в том, что для того чтобы написать любое более-менее качественное для 2к18 года приложение нужно будет все равно погружаться в особенности платформы. В итоге тебе все равно нужно знать платформы, на которых пишешь + всю ту хуйню, с текущими как суки абстракциями, которыую нахуевертели в фремворке для кроссплатформенной разработки.

Получаем что вместо 2 вещей тебе надо знать 3 + бонусом получаешь снижение производительности из-за многоступенчатой ебли-переебли твоих кроссплатформенных хуиток.

На таком говне хорошо только всякие хеллоуворды и тудулисты выглядят, которыми ее обычно и рекламируют. А когда твоему приложению нужно использовать многопоточку, сеть, анимации, какие-то нестрандартные графические вещи, бд тут сразу твоя кроссплатформа начинает насасывать и ты пишешь еще больше кода, чем если бы написал нативно, на каждую платформу.

Уже блять были Phone Gap, Xamarin, React Native, Appcelerator и куча менее известной параши + всякое пистоно-руби-jsо-говноо для ухода от obj-с/java. Но необучаемые все равно думают что вот сейчас-то очередная параша взлетит ее же гугль делает и всe будут писать на кроссплатформе

Мимо
471 1289618
>>289600
Анон, спасибо тебе и лучшей добра. Поведай мне, что кроме Java и Kotlin мне можно понюхать для вката на ведроид?
Цель: достаточно простые приложения под собственный же сервак, грубо говоря есть 50-150 человек со своими телефонами которые могут посылать некие команды на сервер, получать своё состояние с сервера, возможно как-то взаимодействовать с окружением типа считать QR код.
472 1289625
>>289618

>типа считать QR код.


https://github.com/journeyapps/zxing-android-embedded

>ava и Kotlin мне можно понюхать для вката на ведроид?


Шапку читать, собственный сервак, а читать не научился?

мимо.
473 1289626
Нахуй нужен inflater? я просто добавляю вьюхи через addview?
474 1289644
>>289626

>Нахуй нужен inflater? я просто добавляю вьюхи через addview?


инфлатер же раздувает целый леяут и преобразует в класс один вью, а адд вью ты вынужден писать много раз + перентов еще заебешься включать.
475 1289646
>>289626
Распарсить xml и создать инстансы вьюх.
476 1289856
>>289618
Ну собственно то кроме java и kotlin + документация я бы ничего больше и не советовал.
Можешь сразу с котлина начинать, если знаешь какой-то другой язык на приличном уровне.
Не знаю, даже для простых приложений я бы советовал начинать сразу с нативной разработки т.е. java или kotlin + фреймворк андроида.
Для простых приложений это не сложнее чем какой-нибудь кроссплатформенный йоба фреймворк, а потом гемора будет намного меньше.
477 1289886
>>289584

>Как в котлине добавить экстеншенами static метод в java class?


>У них нет companion object.


>


никак, потому что нет companion object
478 1289889
>>289600
как боженька пояснил
479 1289897
>>289856

>Можешь сразу с котлина начинать, если знаешь какой-то другой язык на приличном уровне.


Да-дада. Больше таких даунов слушай.
480 1289898
>>289644
Короче буду игнорить эти надуватели пока не столкнусь с тем что ты описал

>>289646
Не юзаю xmlы, сразу все в коде накидываю. Такая привычка еще с айоса, там кстати нет разных типов layoutа, вы жонглируете этими relative/constraint/linear? попытаюсь все через constraint пилить
481 1289901
>>289898

>вы жонглируете этими relative/constraint/linear?


Релатив статичен. Констрейн позже появился. С ним анимация идет.
482 1289907
>>289898
Ну StackView в айосе это тот же LinearLayout, так что разные типы и там появляются. А так да, в ведре ConstraintLayout появился не так давно и это закос под систему констрейнтов в айосе. До этого был RelativeLayout с меньшим количеством возможностей, а до него все еще хуже(впрочем как и в яблоке до автолейаута).

Считай что xml макет это .xib. А inflater это аналог Bundle.loadNib который превращает твой xml во view.

Имхо, расставлять все в коде это дич.
483 1289910
>>289907
Ясно, от .xib и Bundle.loadNib я и ios отказался, вот почему и тут не понял смысла.

>Имхо, расставлять все в коде это дич.


Попробуй еще захочешь, vfl и китаец с ютуба в помощь
484 1289917
>>289907

> Имхо, расставлять все в коде это дич.



Не поверишь, но телега именно так сделана.
sage 485 1289921
>>289917
Ну так телега говно и есть.
486 1289933
>>289917
Щас бы телегу как пример хорошего кода приводить.
>>289898

> Такая привычка еще с айоса


Ну блять охуенная привычка. Ты о других то подумай, им потом твое говно разгребать. И че у тебя там по стилям, как с атрибутами темы работаешь?
487 1289964
>>289933

>Щас бы телегу как пример хорошего кода приводить.


Не хороший код. Они там все рисуют на канвасе. Достойно уважения, но это пиздец. Я кстати задумался, рили так делают в других топовых компаниях?
488 1289970
>>289584
Можно расширение на класс повесить:
fun Class<YourClass>.doSomething() { ... }

И потом вот так: YourClass::class.java.doSomething()
image.png345 Кб, 604x604
489 1289972
Как набрать скачиваний? Вроде приложение не хуже конкурентов, а загрузок почти нет. 4 шт Как работает индексация в гугл плее? Почему при смене иконки изменилась вкладка с похожими приложениями?
490 1289975
>>289898
Тогда попробуй anko, так хоть выглядеть будет чуть лучше.
Я тоже в ios вьюхи кодом хуярю, но это из-за ублюдочного сториборда, но в андроиде оно жирнее получится как мне кажется + можно xml вручную рас-рас-рас.
491 1289988
>>289972
могу дать пару советов, мой рейт 100$\hour
492 1290152
Аноны, а HAXM на AMD не запускается, я так понял? Можно ли обойтись без него?
493 1290177
>>289988
Пили
494 1290210
Анон, я ебучий ньюфаг в андроид разработке, так что задам тупой вопрос:
Как можно реализовать в приложении подключение через прокси? Не самой среды и эмулятора, а чтобы пользователь смог в самих настройках приложения, например, все прописать? Да, например как в телеге реализовано.
В какую степь копать?
495 1290245
>>289897
А что не так с Котлин?
496 1290246
>>290152

> Intel® Hardware Accelerated Execution Manager



Да вроде же прикрутили амуде через Hyper-V на винде, там даже какие то баги были, которые исправили. На прыщах не знаю.
497 1290265
>>290210
https://developer.android.com/reference/java/net/Proxy

>>290245
Ты даун что ли?

>HAXM на AMD не запускается, я так понял


Земля тебе пухом
498 1290272
Аноны, помогите. У меня на телефоне прога работает нормально. На эмуляторе нормально. А у друга не вызывается метод onrestart после нажатия стрелочки назад.
То есть вот переходим с 2 экрана на 3 и возвращаемся назад.
У меня вызывается onstop и при возврате onrestart в котором я говорю finish и заново открываю эту активити. Вызывается еще один onstop.
У друга onstop при переходе на 3 экран и еще один onstop при возврате на 2, при этом onrestart не вызывается и хз откуда и почему вызывается onstop вместе orestart. В моем случае понятно, что при закрытии активити и ее переоткрытии.
Что делать, помогите.
1287570778948.jpg84 Кб, 446x599
499 1290284
Хули такие уебанские методы для работы с SQLite:

Для примера:
public Cursor query (boolean distinct,
String table,
String[] columns,
String selection,
String[] selectionArgs,
String groupBy,
String having,
String orderBy,
String limit,
CancellationSignal cancellationSignal)

10 АРГУМЕНТОВ СУКА. ПЕРЕДАЧА ИМЕНИ СТОЛБЦОВ В МАССИВЕ ПО ОДНОМУ.
ЗАБОР ИЗ NULL, NULL, NULL, NULL ПРИ ВЫЗОВЕ ОСОБЕННО КРАСИВ. И ТАКОЕ ПОЧТИ ВСЕ API
500 1290287
На каком варианте бы остановились?
1) Старая добрая рабочая лошадка, почти что джава;
2) Кулхацкер с сахарным диабетом;
3) Взять и поделить;
501 1290288
>>290284
Low level api же, почти что обертка над сосишкой. Не нравится - берешь релм, рум, сторио, склделайт или еще какую орм на свой вкус.
502 1290294
https://androiddev.apptractor.ru/android-dev-podkast-77/

Ну, примерно 18:30 слушать можно. и флаттер и хуяттер. Мб поможет задуматься о жизни.
DSC017720181105214859916.jpg69 Кб, 1280x720
503 1290297
Нужна помощь с сенсорами. Надо определять так называемый pitch, т.е. угол между плоскостью земли шалом шароебам и осью Y девайса.

Легче всего это сделать через задепрекейченный сенсор TYPE_ORIENTATION, там просто сразу этот угол у приходящего в коллбек SensorEvent'а есть. Но он на то и задепрекейчен.

Пробовал еще одним способом через TYPE_MAGNETIC_FIELD и TYPE_ACCELEROMETER, примерно как тут: https://www.ssaurel.com/blog/get-android-device-rotation-angles-with-accelerometer-and-geomagnetic-sensors/

И еще через TYPE_ROTATION_VECTOR, примерно как тут https://github.com/kplatfoot/android-rotation-sensor-sample/blob/master/app/src/main/java/com/kviation/sample/orientation/Orientation.java

Проблема с 2 и 3 вариантами в том, что искомый угол они выдают как на пикрелейтед. Закрашенный прямоугольник - девайс, стрелка - куда его верхушка смотрит. Вроде бы нормально, но мне нужно именно чтоб было отличие по знаку или хоть как угла в I четверти от угла в IV четверти.

Для собственноручной ебли с векторами, матрицами и кватернионами я туповат. Может кто знает, как можно решить вопрос?
504 1290298
>>290288

>релм


>сторио


Вот эти ребята хорошо выглядят. Чаю, анон.
505 1290482
>>289933

>Ну блять охуенная привычка. Ты о других то подумай, им потом твое говно разгребать. И че у тебя там по стилям, как с атрибутами темы работаешь?



Кому им то, кому им? Я один здесь и под ios, и под android. Сегодня понял, что до некоторых вещей через код просто не достучаться, вот и с инфлятором разобрался
cena.JPG24 Кб, 1280x720
506 1290565
>>290482

>Я один здесь и под ios, и под android.


Вас заметили.
507 1290666
>>290482

>Сегодня понял, что до некоторых вещей через код просто не достучаться,


с контекстом у тебя все двери открыты. Дерзай, юный подаван.
508 1290690
Аноны, поясните, вот я пишу ламповый код с архитектурой MVP, код работает идеально, разделение логики во вью и презентере просто перфект. Какого хуя на собеседованиях говорят смотреть в сторону ебучего MVVM, который во-первых усложняет дико всю логику и увеличивает код, а во-вторых вообще юзлесс из-за нечитабельности, в сравнении с тем же mvp.
509 1290691
>>290666

> архитектурой MVP


Это не архитектура

>разделение логики во вью и презентере просто перфект.


Слишком мало кода, поэтому и перфект. Поди еще переворота нет.

>Какого хуя на собеседованиях говорят смотреть в сторону ебучего MVVM


Для общего развития норм.
510 1290694
>>290691

>Это не архитектура


Архитектура. И заебало, что в каждом андроид-треде находится "умник", который только при виде аббривеатур MVC, MVP и т.д. врывется со словами: "Это не архитектура, я скозал, ну не архитектура, ну мааам!"

>Поди еще переворота нет


Есть, чего ж нет.

>Для общего развития норм.


Для общего мейби, а для развития как программиста юзлесс.
512 1295058
архитектура +1
513 1298051
kl
JAck Ma.mp42,4 Мб, mp4,
360x360, 1:00
514 1305475
Сап, андроиды!
Подскажите плез, по поводу работы удалённо с андроидом, реально ли джуном? Я сейчас вкатываюсь в андроид по-фану, леплю лапшичку, разукрашиваю градиентики - вьюшки, всё нравится.
Но вот мой кореш - он же сенсей, говорит что лучше всего в офисе поработать годик - другой, а я последние 3 года на удалёнке работал, уже отвык от офисной педарасни и привыкать назад совсем не хочется.
Может быть есть истории успеха, полностью без личных контактов тру хиккарей?
Тред утонул или удален.
Это копия, сохраненная 8 декабря 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски