Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 505 | 39 | 145
Назад Вниз Каталог Обновить

Официальный Android-тред Аноним 24/07/17 Пнд 11:51:21  1030492  
изображение.png (1620Кб, 1920x1080)
Предыдущий мистическим образом был проебан, перекатиться не успели - перезапускаем.

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

SON YOU ARE A DEVELOPER NOW
Аноним 24/07/17 Пнд 11:56:35  1030496
Котаны, а есть вообще гайды про то, как нормально прикручивать Support-библиотеки от начала и до конца, чтоб и материал и обоссаться современно?

Ожидал нормальной обратной совместимости по графону, но блядь стоит как-то начать кастомизировать дефолтное отображение - всё идёт пиздой и легче реализовать самому (или нет?).

Лайауты ругаются линтом на то что фичи всё равно только с 21й версии, кроме cardLayout, recycleView и fab практически нихуя нет.
Аноним 24/07/17 Пнд 11:58:43  1030497
>>1030496
я имею в виду только графическую часть, с бекендом более-менее ок и понятно.
Аноним 27/07/17 Чтв 21:47:42  1032879
>>1030492 (OP)
Господа, кто-нибудь щупал LambdaNative?
Аноним 28/07/17 Птн 00:32:12  1033004
graph.jpg (102Кб, 1542x540)
>>1032879
Выглядит как наебка.
Уебывай отсюда со своим говном.
Аноним 28/07/17 Птн 01:54:22  1033027
>>1033004
Твоя пикча наебка
Аноним 28/07/17 Птн 02:14:40  1033030
>>1033027
Пикча с сайта лямбданатив.
Аноним 28/07/17 Птн 12:34:11  1033177
>>1033004
Я спрашивал не про исследования хуицитилетней давности, а про опыт использования. Не одной жабой и кутёй сыт же программист.
Аноним 28/07/17 Птн 13:00:59  1033199
>>1033004
почему на твоей пикче нарисованы шприцы наркоманов?
Аноним 28/07/17 Птн 13:05:15  1033203
>>1033004
>>1032879
я бы не стал доверять сайту, для пруфа предлагающему картинку с исследованиями 20-летней давности.

сейчас например каждому школьнику объективно очевидно, что скорость разработки на java выше чем на с/с++. они бы еще асм привели что охуеть скорость.

ну и соответственно, если более свежих пруфов с тех пор не появилось, то идея тухлая.
Аноним 28/07/17 Птн 13:23:02  1033210
>>1033203
Понял, никто из здесь пристутсвующих не щупал. Буду щупать сам.
Аноним 28/07/17 Птн 16:40:32  1033321
123.png (47Кб, 1069x790)
В общем есть в ретрофите функция, пикрелейтед, которая по возвращённому HttpStatus определяет куда этот ответ потом отдать дальше - в onSuccess или в onError. Проблема в том, что мой сервер в случае ошибки вместе со статусом отправляет ещё свой код ошибки, а ретрофит не конвертит тело в случае ошибки (if (code < 200 || code >= 300)). Собственно вопрос - что делать в таком случае? Есть ли какой-то готовый вариант решения проблемы или тут надо делать форк и самому править ретрофит?
Аноним 28/07/17 Птн 17:04:57  1033334
>>1033321
так а чего ты хотел-то? 200е коды http - это успешная операция и не ошибка по статусу.

твой косяк что твой сервер ошибки но кодом 2xx возвращает (это вообще вотзефак).

Аноним 28/07/17 Птн 17:10:12  1033338
>>1033334
Эм не, не так. Вот, например, у меня при регистрации, если логин введён неправильно (без @ или точки), возвращается HttpStatus.UNPROCESSABLE_ENTITY. Тоже самое возвращается, если неправильно введён пароль и ещё один параметр. На клиенте мне надо вывести сообщение об ошибке, но как понять что именно пошло не так, если на три действия возвращается UNPROCESSABLE_ENTITY. По-этому я в дополнение отправляю свой код ошибки, который нужен для вывода сообщения. Можно было бы в onError парсить errorBody, но в таком случае по пиздец идут тесты, так как придётся мокать таким образом, чтобы оно кидало HttpException, а чтобы его заполнить в тесте нужен ретрофит.
Аноним 28/07/17 Птн 17:11:20  1033339
>>1033321
>мой сервер в случае ошибки вместе со статусом отправляет ещё свой код ошибки

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

и не вздумай ретрофит форкать - он всё правильно тебе делает.
Аноним 28/07/17 Птн 17:13:14  1033342
121314.png (44Кб, 986x712)
>>1033339
Аноним 28/07/17 Птн 17:18:59  1033346
>>1033342
а кроме статуса, текст ошибки тебя возвращать не научили?
подсказываю - так можно сделать везде.
Аноним 28/07/17 Птн 17:21:02  1033347
5555.png (29Кб, 1457x341)
686.png (18Кб, 1602x216)
>>1033346
Ну, а почему вместо текста нельзя тогда просто свой код ошибки вернуть?
Алсо, на всякий случай вот ещё код на клиенте и тест.
Аноним 28/07/17 Птн 17:21:37  1033348
>>1033338
>Можно было бы в onError парсить errorBody
ага

>но в таком случае по пиздец идут тесты, так как придётся мокать таким образом, чтобы оно кидало HttpException, а чтобы его заполнить в тесте нужен ретрофит

throw new HttpException ?
чё?)))))
Аноним 28/07/17 Птн 17:23:23  1033353
88888.png (36Кб, 819x675)
>>1033347
То есть получается, мне в тесте, чтобы протестировать ветку onError нужно кинуть HttpException, а для него нужен ретрофит.

>>1033348
>throw new HttpException ?
>чё?)))))
Response нужен ретрофитовский.
Аноним 28/07/17 Птн 17:26:53  1033355
>>1033353
>Response нужен ретрофитовский.
ну дак создай, лалка
Response.error(int code, okhttp3.ResponseBody body)

https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/class-use/Response.html
Аноним 28/07/17 Птн 17:30:14  1033361
>>1033355
О, а вот про это я не знал. Походу это решает проблему, спасибо.
Аноним 28/07/17 Птн 17:31:41  1033362
>>1033353
>Ну, а почему вместо текста нельзя тогда просто свой код ошибки вернуть?

потому что ТАК ПРИНЯТО и написано в стандартах https://tools.ietf.org/html/rfc2616#section-6.1.1 , что 2xx - не ошибка, а информационный статус что всё ок в разных вариациях. Хочешь кидать ошибки - кидай другие статусы.
Аноним 28/07/17 Птн 17:35:19  1033370
>>1033362
Мне кажется мы про разные вещи говорим. Я не кидаю свои коды ошибок вместе с 2хх статусом, я их кидаю вместе с другими статусами (422 в данном случае).
Аноним 28/07/17 Птн 17:45:41  1033380
>>1033370
скорее ты как-то криво выражаешься.

>свои коды ошибок вместе с 2хх статусом, я их кидаю вместе с другими статусами

у одного запроса - один статус (он же код ответа - response code).
как ты можешь несколько статусов одновременно вернуть?
Аноним 28/07/17 Птн 17:47:44  1033384
1234.png (8Кб, 764x188)
>>1033380
Вот что я имел ввиду. Наверно да, хуёво объяснил.
Аноним 28/07/17 Птн 17:55:32  1033395
1234.png (71Кб, 1473x709)
Хмм, ну оно работает, но что-то как-то хуёво выглядит. Не знаю даже. На каждый тест жсон придётся хранить.
Аноним 28/07/17 Птн 17:56:12  1033396
>>1033384
это тело/содержимое ответа, ага.

тем не менее у тебя статус лишний в json-ответе.
правильнее было бы выкинуть его нахуй в случае успеха.
а в случае ошибки получать ОСОБЕННЫЙ json из ошибки - типа как { "error": "error text" }.
Аноним 28/07/17 Птн 18:01:16  1033406
>>1033395
>но что-то как-то хуёво выглядит
потому что ты константы завёл зачем-то, вместо того чтобы в теле теста это писать - с первого взгляда не видно что твои тесты делают, если не вчитываться.

и в данном случае похуй если у тебя значения будут дублироваться в разных тестах. для твоего случае каждый тесткейс должен быть изолирован от другого.
Аноним 28/07/17 Птн 18:07:41  1033415
52523.png (72Кб, 1469x747)
>>1033406
>потому что ты константы завёл зачем-то, вместо того чтобы в теле теста это писать - с первого взгляда не видно что твои тесты делают, если не вчитываться.
Ну это наверно было очевидно, но я совсем недавно начал заморачиваться тестами.

>и в данном случае похуй если у тебя значения будут дублироваться в разных тестах. для твоего случае каждый тесткейс должен быть изолирован от другого.
То есть, вот так?
Аноним 28/07/17 Птн 18:15:54  1033422
>>1033395
уже лучше, но тебе ещё нужно определиться что ты тестируешь, и сделать соответствующий класс и методы.

Типа класс для тестов логина - TestLogin, в котором каждый метод проверяет какой-то отдельный случай. (например методы okayLogin, wrongLogin. wrongPassword итп)

loginRequest_shouldReturnGoodResponse - оч хуёвое название. Оно вместо того что ты тестируешь говорит то что ты должен получить в ответ (а это ты и так проверяешь внутри теста).
Аноним 28/07/17 Птн 18:20:14  1033428
>>1033422
>loginRequest_shouldReturnGoodResponse - оч хуёвое название. Оно вместо того что ты тестируешь говорит то что ты должен получить в ответ (а это ты и так проверяешь внутри теста).
Да, придумывать названия это самая сложная часть программирования.
Аноним 28/07/17 Птн 18:33:23  1033448
>>1030492 (OP)

Кто-нибудь уже на prewiew 3й студии перекатился?

У меня вот регулярно (пару раз в неделю) выдаёт ошибку что не найден AndroidSDK (не отображается logcat). При этом командами грейдла всё собирается и устанавливается ок. А вот запустить на телефоне из студии кнопкой play не выходит.
Потом хуй знает от чего (чищу все кеши, чищу бинарники) оно включается. А иногда всё то же самое делаю и нихуя.

Кто-нибудь мб знает хотя бы, отчего это происходит? В гугле ниче не нашел.
Аноним 28/07/17 Птн 18:36:40  1033456
>>1033448
Хз, пользуюсь со второй канарейки и только проблемы с инстан раном были, а так норм всё.
Аноним 28/07/17 Птн 19:58:07  1033530
>>1030496
Линтер в твоем случае прсото предупреждает что тенюшки/финтифлюшки не будет. Обычно саппортноу библиотеки хватает, но есть случаи когда сторонние лучше, просто пробуешь сапортной, а если не вшыло идешь на Android Arsenal.
Аноним 28/07/17 Птн 20:02:47  1033534
>>1033384
Мне кажется ты вместо например gsonовской фабрики адаптеров вставить свою, и в момент получения выворачивать данные в какую-нибудь структуру вида: Either<Data, Error>, где Data это нормальный тип, а в error ты сваливаешь все данные по HttpException/IOException/JSON своих статусов.
Аноним 28/07/17 Птн 20:53:37  1033576
1234.png (81Кб, 1150x841)
>>1033534
Но ведь GsonConverterFactory не вызовется HttpStatus 422.
Аноним 28/07/17 Птн 20:55:29  1033579
>>1033576
>не вызовется при HttpStatus 422
Аноним 28/07/17 Птн 21:26:49  1033607
>>1033576
Ну значит я обосрался.
Аноним 28/07/17 Птн 21:39:20  1033614
>>1030492 (OP)
Куда шапку проебали?
Аноним 28/07/17 Птн 22:35:51  1033636
>>1033334
>твой косяк что твой сервер ошибки но кодом 2xx возвращает (это вообще вотзефак).
Это норм, если кастомное решение. С таким способом можно вообще довольно годно свои ошибки обрабатывать, написав всего лишь свою обертку над колбеками.
Аноним 28/07/17 Птн 22:38:13  1033638
>>1033614
Нахуй иди со своей шапкой.
Аноним 28/07/17 Птн 23:18:44  1033664
Слава богу больше нет всратой шлюхи на оппике.

Аноны, как обычно кодят такие ситуации, когда можно переключать отображение списком и гридом.
В спиксе у меня номер айтема, описание и еще пару текстовых хуиток, а в гриде только цветной квадрат с номером.
Писать два разных адаптера и переключать их при переключении отображения или есть какой-то более идеоматик путь?
Аноним 28/07/17 Птн 23:57:24  1033676
>>1033664
Используешь RecyclerView, которому можно менять LayoutManager. Вместе с лэйаут менеджером можешь либо адаптер менять (адаптеры с разными вьюхами), либо внутри адаптера предусмотреть логику, что бы по изменению стиля использвоались другие вьюхи, а холдеры анрмиер оставить те же.
Аноним 29/07/17 Суб 00:18:13  1033680
>>1033676
Ясно, в общем я так и думал делать, но на всякий уточнил.
Аноним 29/07/17 Суб 13:18:01  1033820
>>1033638
Нет, ты.
Аноним 29/07/17 Суб 14:40:33  1033881
Анон, я воюю с одним и тем же багом уже недели три, облазил весь StackOverflow в поисках ответа, но ничего не помогает, может хоть ты подскажешь.
Делаю свой простенький браузер чтобы впечатлить hr-ов и заказчиков. Вкладка у меня реализована как фрагмент Tab, где есть TabControlFragment (кнопки назад-вперед, адресная строка) и WebView. Когда я в первый раз вбиваю в строку адрес, он все нормально грузит, но когда я пытаюсь еще раз ввести адрес из строки, то ничего не происходит - текущая страница тупо обновляется, а в логах влезает такое сообщение
W/BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid.
Но самое смешное, что этот баг есть только когда я тестю на устройствах, в Genymotion все работает нормально! Это самый пиздец и самое обидное.
Анон, я правда в отчаянии, помоги.

Вот код на гите
https://github.com/TheKlash/Cherry/blob/master/app/src/main/java/ru/alexeypopov/cherry/presentation/fragment/Tab.java

https://github.com/TheKlash/Cherry/blob/master/app/src/main/java/ru/alexeypopov/cherry/presentation/fragment/TabControlFragment.java

https://github.com/TheKlash/Cherry/blob/master/app/src/main/java/ru/alexeypopov/cherry/presentation/client/CherryClient.java (на всякий случай, свой WebViewClient)
Аноним 29/07/17 Суб 14:51:14  1033884
>>1033881
Да, еще, когда я на устройстве перехожу по гиперссылке, то все ок и все нормально грузится.
Аноним 29/07/17 Суб 19:53:09  1034071
2017-07-2918-43[...].png (18Кб, 479x780)
2017-07-2918-46[...].png (15Кб, 569x435)
2017-07-2918-50[...].png (35Кб, 816x888)
>>1033881
Пиздец у тебя там говнокод. Я удивляюсь, как там вообще хоть что-то работает.

> чтобы впечатлить hr-ов и заказчиков
С этим проблем точно не будет.
Аноним 29/07/17 Суб 20:24:11  1034084
>>1034071
Разбери подробнее, пожалуйста.
Аноним 29/07/17 Суб 22:56:54  1034167
>>1034084
public App getInstance() {
if (instance == null)
instance = new App();

return instance;
}

за такое вообще надо руки отрывать.
1. Application создаётся и пересоздаётся системой, а не тобой. new App - это пиздец на уровне new Activity или new Fragment с параметрами.

2. Application можно всегда получить через getApplication.

в твоём случае при каждом пересоздании Application будет новый, соответственно и "синглтон" instance будет новый (причем не являющийся настоящим application).
Аноним 29/07/17 Суб 23:20:57  1034180
>>1034071
Лол, ты не тот репозиторий смотришь
Аноним 29/07/17 Суб 23:29:14  1034186
>>1034167
>instance = new App();
Вот тут то я и обосрался.
Аноним 29/07/17 Суб 23:30:46  1034188
>>1034167
>>1034084

ещё
в конструкторе ты присваиваешь context = getApplicationContext. если задуматься, что происходит - ты инициализируешь поле класса ссылкой на самого себя (т.к. getApplicationContext и вернёт инстанс твоего Application - лол!). А это эквивалентно context = this, что нахуй не всралось, как и твой метод getContext.

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

C volatile вообще проиграл. Поясни, зачем? зачем ты это сделал? Правда интересно узнать.

Теперь смотри как надо.

Application - синглтон по своей сути. Он всегда живой если у тебя есть хоть чтото в приложении, т.к. он создаётся перед всем остальным (системой, а не тобой, забудь нахуй про new).
Получить его в своём случае ты всегда можешь через (App)getApplication(). Он же является контекстом приложения (разберись мб что такое контекст? андроид с этого начинается.).

От всего твоего App останется:

public class App extends Application
{
private TabsManager tabsManager;

@Override
public void onCreate() {
super.onCreate();
tabsManager = new TabsManager();
}

public TabsManager getTabsManager()
{
return tabsManager;
}
}

Прошёлся по твоим остальным классам - там сходная хуйня (например CherryClient). Вообще это bad practice делать статик-синглтоны в андроиде,т.к. всегда есть Application, и оно для этого. Там же и состояние всего можно загружать из дб или преференсов.
Аноним 29/07/17 Суб 23:35:23  1034191
>>1034188
Мне кажется что в аппликейшене ещё и табманагер не нужен. А всё от чего? От того что ВКАТИТЬСЯ.
Аноним 29/07/17 Суб 23:44:18  1034199
>>1034191
Нет, как раз в апликейшене, я думаю, ему самое место. Раз Application это синглтон сам по себе, то TabsManager, в котором будет храниться состояние вкладок, лучше держать там.
Ну а если я не прав, то тогда где?
Аноним 29/07/17 Суб 23:45:14  1034200
>>1034199
в компоненте даггера.
Аноним 29/07/17 Суб 23:48:27  1034203
14895251097270.jpg (495Кб, 1561x2048)
>>1034191
>>1034199

>в аппликейшене ещё и табманагер не нужен
Ну в лоб варик что аппликейшн и должен это всё хранить. И называться не App, а как-нибудь BrowserApp.

>От того что ВКАТИТЬСЯ.
Пикрил-девелопмент. Особенно клёво когда начинают MVC/MVP делать с таким уровнем.
Аноним 29/07/17 Суб 23:49:13  1034204
>>1034203
я имею ввиду хранить список табов, и менять их.
Аноним 29/07/17 Суб 23:53:45  1034207
>>1034203
я считаю что апликейшн нужен сугубо чтобы инциализировать всякого рода хуйню вроде крашлитиксов, лицокниг и прочих либ которые нуждаются в контексте. А учитывая что этот табманагер не нуждается в контексте, то его можно вынести куда нибудь в компоненту даггера и тупо инжектить синглтоном куда надо.
Аноним 30/07/17 Вск 00:00:57  1034211
>>1034200
>>1034207
Окей, я понял про даггер, спасибо хотел отложить его на попозже, но видимо без него никак
Я пофиксил ненужные синглтоны, но баг все-равно остался. Все так же не хочет менять страницу если вбивать в строку, но по гиперссылкам переходит.
Аноним 30/07/17 Вск 00:06:06  1034213
>>1034211
Делай как хочешь. Я просто даггероёб.
Аноним 30/07/17 Вск 00:22:47  1034217
>>1034211
я твоё этсамое запустил. в 100% случаев ловлю багу в onResume:

07-30 00:13:56.542 24759-24759/ru.alexeypopov.cherry E/AndroidRuntime: FATAL EXCEPTION: main
Process: ru.alexeypopov.cherry, PID: 24759
java.lang.RuntimeException: Unable to resume activity {ru.alexeypopov.cherry/ru.alexeypopov.cherry.presentation.activity.MainActivity}: java.lang.IllegalStateException: Fragment already added: TabControlFragment{77b46fd #1 id=0x7f0b0076}
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3844)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3885)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Caused by: java.lang.IllegalStateException: Fragment already added: TabControlFragment{77b46fd #1 id=0x7f0b0076}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1679)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:726)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2355)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2146)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2098)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2008)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388)
at android.support.v4.app.FragmentActivity.onPostResume(FragmentActivity.java:499)
at android.support.v7.app.AppCompatActivity.onPostResume(AppCompatActivity.java:172)
at android.app.Activity.performResume(Activity.java:7125)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3821)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3885) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6776) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386) 

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

Про даггер - можно и без него, у тебя ща не те масштабы чтобы об этом париться (да и рано тебе явно пока).

Лучше бы про интерфейс запарился - больше бы впечатлило когоугодно, твой код всё равно никто разбирать скорее всего не будет.
Аноним 30/07/17 Вск 00:37:02  1034221
>>1034217
Вообще ни разу этого бага не было. Что ты такое вообще делаешь, что он появляется?
Аноним 30/07/17 Вск 00:45:14  1034222
>>1034221
Приложение без изменений из репозитория - блокирую экран, перезапускаю.

при этом отрабатывают onResume у MainActivity. И как ты мог догадаться (если бы понимал про жизненные циклы компонентов) - создание и onResume текущего фрагмента.

который Tab.onResume:
activity.getSupportFragmentManager().beginTransaction()
.add(R.id.tab_control_container, controlFragment)
.commit();

который уже добавлен. короче еще один метод у тебя, где хуйня написана. непонятно вообще, что оно у тебя в onResume делает.
Аноним 30/07/17 Вск 00:46:04  1034223
>>1034222
>Tab.onResume:
самофикс - создание ИЛИ resume
Аноним 30/07/17 Вск 00:50:16  1034224
>>1034222
Так, эту херню я понял. Её нужно было закинуть в onActivityCreated (я не дурак, знаю lifecycle и то, что onResume запускается при каждом возобновлении, просто я зачем-то это сделал, когда уже начал в бубен бить)
Сделал комит, теперь попробуй
Аноним 30/07/17 Вск 00:55:44  1034225
>>1034224
ага, пофиксил, работает.

теперь поясни ещё раз про свою багу:
>в первый раз вбиваю в строку адрес, он все нормально грузит, но когда я пытаюсь еще раз ввести адрес из строки, то ничего не происходит - текущая страница тупо обновляется, а в логах влезает такое сообщение

точнее, 1. что делаешь. 2. что ожидаешь что произойдёт. 3. что по факту произойдёт
Аноним 30/07/17 Вск 00:58:57  1034227
>>1034225
Сначала я в первый раз ввожу адрес страницы в строку и все нормально загружает. Затем
1) Далее я меняю адрес страницы в строке
2) Ожидаю что загрузится новая страница
3) Загружается та же самая
Аноним 30/07/17 Вск 00:59:37  1034228
>>1034227
> Далее я меняю адрес страницы в строке и жму OK
Фикс
Аноним 30/07/17 Вск 01:17:08  1034234
>>1034211
Какой двач добрый стал, удивительно. Раньше бы его обоссали, а сейчас помогают. Даже в js-тред никто не отправил.
Аноним 30/07/17 Вск 01:25:37  1034236
>>1034227
ну хз, прошёлся отладчиком по твоей схеме на железке - у меня на сосунге гелакси ок всё и с отладчиком и без.

рекомендую и тебе под отладчиком прогнать с точки listener.onAdressChanged(address) и посмотреть чего у тебя там меняется.

вдогонку по коду не понял вообще:
1. зачем тебе CherryClient.shouldOverride.... - ты там нихуя полезного не делаешь кроме дефолтного поведения - может быть потенциальным источником твоей баги. Метод подразумевается что ты как-то иначе будешь со ссылкой работать чем по-дефолту, и возможно по-дефолту там больше делается в итоге чем у тебя. Жопой чую что твоя беда отсюда.

2. зачем не в xml-лайаутах TabControlFragment.onCreateView:
backButton.setText(R.string.button_back); refreshButton.setText(R.string.button_refresh);
forwardButton.setText(R.string.button_forward);
adressEditText.setLines(1);
Аноним 30/07/17 Вск 01:32:35  1034237
>>1034236
Ладно, анон, спасибо что не проигнорил!
Я хз на самом деле, просто и на Galaxy Tab A смотрел и на Xiaomi Redmi 3S смотрел, одна и та же хуйня была, но ты обнадежил что у тебя все работало.
А у тебя какая версия ведра стоит?
Аноним 30/07/17 Вск 01:35:24  1034238
>>1034236
1) Без shouldOverride он при загрузке страницы открывал WebView на полный экран.
2) Я хотел как-то прописать рессурсы с помощью Butterknife, потом понял что так не получится и чот забил.
Аноним 30/07/17 Вск 01:37:57  1034240
>>1034234
сегодня сам поможешь, завтра тебе помогут. да и временами лучше чем картинки скроллить прокрастинируя.

>>1034237
7.0, но ты всёравно отладчиком бы прошёлся.
Аноним 30/07/17 Вск 01:41:30  1034242
>>1034240
Может это немного нагло, но можешь, пожалуйста, стать моим ментором?
Аноним 30/07/17 Вск 01:43:24  1034243
>>1034238
>Без shouldOverride он при загрузке страницы открывал WebView на полный экран.

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

у тебя в итоге от shouldOverride чето неявное происходит, что ты не контролируешь, и в итоге имеешь вероятность новую багу породить закостылив старую. ну а так хзче у тебя на самом деле творится.
Аноним 30/07/17 Вск 01:57:33  1034245
>>1034242
А ты сосешь хорошо?
Аноним 30/07/17 Вск 01:59:55  1034247
>>1034245
В гей-шлюхи мне еще рано, сначала хочу вкатиться
Аноним 30/07/17 Вск 02:01:32  1034248
>>1034247
Скинь свою фотку, я подумаю.
Аноним 30/07/17 Вск 02:06:45  1034249
>>1034242
лолнет, спасибо конечно.

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

>1. Java, самую малость Android.
>2. Закрепить Java, дотянуть Android до джунского минимума, попрактиковаться в гите.

На джунский минимум тебе базу андроида понимать надо на автомате - контексты, жизнециклы, интенты, сервисы. Заебок еще если разобраться тем что на уровне ОС этому соответствует. Ну и жаву чем лучше - тем лучше.
Фреймворки дрочить без понимания этого - путь в никуда.

Олсо в андроиде, уже писал раньше - джуны не нужны, рыночек перегрет вкатывальщиками - либо целишься на мидла с соответствующим уровнем.
Аноним 30/07/17 Вск 02:09:26  1034250
>>1034249
либо ты нахуй не нужен и иди в энтерпрайз жаву, там так-то по сути меньше требований чем на андроиде, и спрос на джунов выше
Аноним 30/07/17 Вск 02:10:20  1034251
Анончик, можно нубский вопрос? В фреймворке есть метод "Class<Base> foo()", мне нужно переопределить этот метод в своем классе так, чтобы возвращать Class<Derived>. Это можно как-то сделать не изменяя код фреймворка?

http://rextester.com/LRA47158
Аноним 30/07/17 Вск 02:11:50  1034252
>>1034250
Вот именно по энтерпрайзу у меня и не горит жопа
Аноним 30/07/17 Вск 02:12:22  1034253
>>1034251
Относледлваться от Base если только.
Аноним 30/07/17 Вск 02:14:22  1034254
>>1034253
так он и отнаследован - см. ссылку на rextester
Аноним 30/07/17 Вск 02:15:40  1034255
>>1034249
А к мидлам какие требования?
Аноним 30/07/17 Вск 02:18:19  1034256
>>1034255
Быть няшным и уметь хорошо сосать.
Аноним 30/07/17 Вск 02:20:54  1034257
>>1034256
А если серьезно? Да, я за пять месяцев не особо продвинулся, но мне деваться некуда уже. Через год я выпускаюсь, а работы до сих пор нет. Если не найду работу до следующей осени, родители обещали выгнать из дома. Так что если мне теперь и идти, то только вперед.
Аноним 30/07/17 Вск 02:27:28  1034258
>>1034257
>>>/pr/1030264
Аноним 30/07/17 Вск 02:36:53  1034261
>>1034255.
я не представляю как можно не вкатившись куда-либо подняться за год до уровня мидла.

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

>Через год я выпускаюсь, а работы до сих пор нет
фрилансуй, бегай по собеседованиям, делай тестовые задания, книжки читай, бухай поменьше, курс по андроиду на курсере пройди все части, что еще сказать.
Аноним 30/07/17 Вск 16:04:14  1034394
>>1034188
>C volatile вообще проиграл. Поясни, зачем? зачем ты это сделал?
Бамп вопросу.

Мимо
Аноним 30/07/17 Вск 17:38:11  1034433
>>1034394
Скорей всего из-за спизженой реализации синглтона, в которой подразумевался доступ из разных тредов. А то что такого по факту здесь нет, и вся работа онли из UI-треда - дак похуй же.

Мимо-2
Аноним 30/07/17 Вск 23:15:12  1034653
>>1034261
>фрилансуй, бегай по собеседованиям, делай тестовые задания
Ви таки говорите будто бы начать фрилансовать на андроед проще чем устроиться джуном.
Аноним 31/07/17 Пнд 14:45:23  1034866
Двач, использую обычный viewpager т.е. он создает вьюхи, а не фрагменты. Как заставить его пересоздать все вьюхи? Т.е. чтобы для каждой вызвался instantiateItem.
Аноним 31/07/17 Пнд 14:50:31  1034869
А на Xamarin у меня получится вкатится в андроид разработку, джаву просто лень учить а сишарп так вроде знаю чутка?
Аноним 31/07/17 Пнд 15:45:05  1034896
>>1034866
Разобрался. Если кому интересно - решается переустановкой адаптера.
pager.setAdapter(null); pager.setAdapter(adapter); Ну и сохранить позицию выбранной вкладки, а потом установить ее опять т.к. обнуляется.
Аноним 31/07/17 Пнд 17:39:55  1034954
>>1034869
Нет.
Аноним 31/07/17 Пнд 17:49:08  1034961
>>1034869
>джаву просто лень учить
>сишарп так вроде знаю
>подразумевая, что с сишарпа переход на жабу будет сложен
Не лезь дебил сука ебаный.
Аноним 31/07/17 Пнд 22:46:12  1035172
>>1034896
а можно вызвать просто notifydatasetchanged
Аноним 01/08/17 Втр 00:00:09  1035251
>>1035172
Нельзя.
Аноним 01/08/17 Втр 01:16:45  1035299
>>1035251
Ещё как можно
Аноним 01/08/17 Втр 09:41:12  1035363
>>1035299
Нет.
Аноним 01/08/17 Втр 13:06:05  1035430
>>1035363
Тяжело, наверное, быть тупым
Аноним 01/08/17 Втр 16:56:18  1035536
Котаны, есть кто на райзене сидит? Как студия себя ведёт? Нету каких-либо значимых проблем?
Аноним 01/08/17 Втр 17:07:30  1035546
>>1035536
На чем?
Аноним 01/08/17 Втр 17:33:01  1035561
Screenshot2017-[...].png (382Кб, 1592x1280)
121314.png (12Кб, 519x199)
При удалении элементов из ресайклервью с notifyItemRemoved(position) не меняется размер ресайклервью. С notifyDataSetChanged() меняется, но пропадают анимации. Как мне заставить ресайклервью уменьшаться при удалении элементов через notifyItemRemoved?
Аноним 01/08/17 Втр 17:57:51  1035579
>>1035546
AMD Ryzen
Аноним 01/08/17 Втр 18:33:12  1035608
>>1035579
Эмулятор тормозить будет
Аноним 01/08/17 Втр 19:22:01  1035651
>>1035608
Лечение есть?
Аноним 01/08/17 Втр 19:49:48  1035672
>>1035651
Есть. Intel
Аноним 02/08/17 Срд 11:09:05  1035990
>>1035430
Да, но нельзя я говорил с позиции того долбобоба который рессетил айтемы в одоптере
Аноним 02/08/17 Срд 11:11:53  1035991
>>1035561
Попробуй requestLayout после обновления списка вызвать. хотя не уверен что поможет
Аноним 02/08/17 Срд 13:15:46  1036048
Пацаны, кто-нибудь в Facebook собесился?
Аноним 02/08/17 Срд 14:12:15  1036068
>>1036048
Нахуя? Чтобы их трехсотмегебайтное говно на react nativ'е ковырять? Тут таких ебанутых нет.
Аноним 02/08/17 Срд 16:35:49  1036146
Есть ли смысл вкатываться(из девопсов) в девелопмент? и Берут ли жуниоров на удаленку?
Аноним 02/08/17 Срд 16:53:13  1036152
Какой сегодня есть человеческий способ послать емаил с вложением, не пердолясь с Intent.ACTION_SEND и "message/rfc822"?
Аноним 02/08/17 Срд 16:54:09  1036153
>>1036152
Конкретно не устраивает, что "message/rfc822" выдает всякие скайпы и блютузы, а Intent.ACTION_SENDTO без этого эффекта не позволяет прикрепления.
Аноним 03/08/17 Чтв 00:40:42  1036487
>>1036146
Нет.
Аноним 03/08/17 Чтв 16:38:27  1036915
>>1034071
Вопрос к местным помидорам.
Адекватно ли джунам на собеседовании давать код как на том пикрилейтеде, чтобы ошибки указывали, или таки перебор?
Спросил напримере у пары знакомых андроид-макакеров - максимум половину проблем выявили.
Аноним 03/08/17 Чтв 17:49:56  1037010
Господа.
Хочу вкатиться в андроед.
С чего начать?
Для простоты предположим, что я знаком с Джавой
Аноним 03/08/17 Чтв 17:52:25  1037012
оп
Аноним 03/08/17 Чтв 18:07:19  1037025
>>1036915
По-моему плохая идея. Это как раз тот случай, когда переписать с нуля самому проще, чем сидеть и пытаться догадаться, что же вообще хотел написать автор.
Аноним 03/08/17 Чтв 21:29:28  1037189
>>1037010
Начни с php
Аноним 03/08/17 Чтв 23:20:09  1037344
>>1037010
Читай шапку, всё написано.
Аноним 03/08/17 Чтв 23:31:57  1037352
>>1037344
))))
Аноним 04/08/17 Птн 00:33:01  1037410
НЕПОНИМАТ

SELECT * FROM table WHERE (column1, column2) = (1, 2)

Почему в JDBC SQL-запрос выполняется успешно, но валится на адроиде с

'near "," syntax error'

?
Аноним 04/08/17 Птн 01:27:35  1037460
>>1037410
Первый раз вижу такой синтаксис.
WHERE column1=1 AND column2=2
При этом эти значения нельзя подставлять тупо через конкатенацию, должна быть либа для prepare stateent
Аноним 04/08/17 Птн 01:50:47  1037473
>>1037460
Про AND я уже понял, хотя и странно, что первый вариант с jdbc работает.

А насчет конкатенации - это проблема, когда подставляются элементы, которые вводит пользователь.
А еще зависит от типа приложения. Кому вот нужно проводить SQL-инъекцию в приложении с календарем бабских мурмусиков?
Аноним 04/08/17 Птн 02:11:31  1037478
>>1037473
А еще в prepare statement нельзя подставлять имена таблиц или столбцов, например.
Так что проблемы инкапсуляции от отличии от простой конкатенации оно не особо решает.
+ в теории может быть более медленным, если используется всего один раз.
А запросов может быть много подряд разных.
Аноним 04/08/17 Птн 14:13:37  1037733
>>1037189
Сходи нахуй.

>>1037344ущий
> Стоим велосипеды на костылях, пока грейдл недовольно урчит, делимся фреймворками. Очкастой бабы на превью больше не будет.
> SON YOU ARE A DEVELOPER NOW
Хорошая шапка. А вкатиться-то как?
Аноним 04/08/17 Птн 15:07:26  1037786
>>1037733
Книг нормальных на русском почти нет - отдельные главы из разных ок, остальное хуйня и старье. Платные курсы по андроиду лично - говно де-факто.
Придётся много шуршать по стековерфлоу, читать гуглогайды и рандомные статьи, пока не привыкнешь и не начнешь думать что так неплохо. Привыкание возможно случится при регулярном обмазывании где-то через полгода - тогда мб чето начнешь понимать чтобы собеседоваться на джуниора.

Можешь еще курсик с курсеры глянуть - на ютубе все видео есть.

Если не пропрёт - это не твоё и не вкатывайся, плес.
Аноним 04/08/17 Птн 15:15:15  1037788
Котаны, очень хочется высказаться, меня в усмерть заебал грейдл.
Выть охота, когда конфигурирую эти ссаные скобочки.
Ни гайдов ни примеров нормальных, нихуя.
На одной версии одно говно, на другой другое, у тебя третье, плагин обновлять, версию писать и ебаная динамическая типизация блядь нахуй нахуй блядь АААААААААААААААААААААААААААААААААА.

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

И вопрос к знатокам - что прописать чтобы запустить таску, чтобы она выполнилась автоматически ПОСЛЕ ВСЕХ выполненных (независимо от того что выполнится) - будь то компайл, билд или клеар или любая другая для данного проекта, например?
Аноним 04/08/17 Птн 15:26:24  1037799
>>1037786
> чтобы собеседоваться на джуниора
Мне нахуй не нужно собеседоваться на джуниора. Я вполне себе сеньор-серверсайд.
Так что интерес скорее "для себя", и мне интересно узнать, какие доки / мануалы / ресурсы смогут объяснить всю эту андроид-джава-инфраструктуру. Желательно без "смотрите, ребята, это называется класс..."
Аноним 04/08/17 Птн 15:43:02  1037818
>>1037799
Так бы и сказал.

На хабре 4 более-менее ок статьи для обзорного понимания концепций.
https://habrahabr.ru/post/140459/
https://habrahabr.ru/post/140655/
https://habrahabr.ru/post/141201/
https://habrahabr.ru/post/141504/

Потом берёшь книжку HeadFirst по андроиду, пропускаешь главы про классы и смотришь только на структуру приложения. Если не дебил - за день пролистаешь и сделаешь первое приложение, потом гуглируешь то что не понимаешь и углубляешь.

А так более основательный обзор с точки зрения ОС:
-Танненбаум - операционные системы поновее издания - глава про андроид.
-Про концепты безопасность в андроидах - книжка - https://www.nostarch.com/androidsecurity

Аноним 04/08/17 Птн 15:48:22  1037826
>>1037818
О. Годнота пошла.
Мне бы еще про работку с графикой, желательно без всяких тяжеловесных юнити. Но это я уже так, вредничаю.
про то как устроен Андроид - интересно, но малополезно. Мне не интересно каким образом там вызовы из Джавы маппятся в сисколлы, сириусли.
Аноним 04/08/17 Птн 15:55:05  1037840
>>1037826
>Мне бы еще про работку с графикой
Для игор и триде я понимаю?

OpenGL из коробки есть https://developer.android.com/training/graphics/opengl/index.html

Лоулвл на C/C++ оптимизируют, если планируешь байтоёбить смотри в сторону Android NDK.
Аноним 04/08/17 Птн 15:56:27  1037843
>>1037840
Первая ссылка отвалилась
https://developer.android.com/guide/topics/graphics/index.html
Аноним 04/08/17 Птн 16:40:50  1037882
>>1037840
Нет, тридэ как раз не нужно. Обычная плоская графика с няшными эффектами.
Но да, спасибо за первую ссылку. Буду вкуривать.
Может, если все пойдет норм, выдам через определенное время простенькую логическую игрулину.
Аноним 05/08/17 Суб 01:42:01  1038265
>>1037799
>сеньор-серверсайд
Так бы и сказал - php-говноед.
Аноним 05/08/17 Суб 01:44:42  1038268
>>1037788
>
https://stackoverflow.com/questions/30857350/gradle-execute-task-after-build
Аноним 05/08/17 Суб 11:20:20  1038373
>>1038268
Как после конкретной таски сделать и так ясно.
Мне не после build'а нужно, а после ЛЮБОЙ таски проекта которая была бы вызвана.
Аноним 05/08/17 Суб 14:12:14  1038469
>>1038373
Нахуя?
Аноним 05/08/17 Суб 18:28:12  1038613
Смотрю темы ведра в исходниках и вот никак не могу понять, где искать описание для всех атрибутов в темах? Вот видишь наример в теме: colorBackgroundFloating, actionModeCutDrawable, или еще какую хуйню. И что делать? Вот тут https://developer.android.com/reference/android/R.styleable.html не все можно анйти например, аттрибута controlBackground там например нет.
Аноним 05/08/17 Суб 21:31:43  1038731
Где-то в официальной документации видел, что создание постоянно висящего и неудаляемого уведомления в шторке - предотвращает убийство свернутого activity.
А сейчас не могу найти ссылку.
Помогите, плиз, котаны.
Аноним 05/08/17 Суб 21:36:09  1038735
>>1038731
Не было такого никогда. Ты с foreground service путаешь.
Аноним 05/08/17 Суб 21:48:35  1038740
>>1038735
>foreground service
Ну да, видимо, оно.
Но вот беда, у меня есть кусок кроссплатформенного кода (таймер, который должен работать всегда).
Кроме службы переднего плана нет иных способов гарантировать, что сворачивание приложения его не прихлопнет?
Аноним 05/08/17 Суб 22:09:14  1038757
>>1038740
Юзай AlarmManager + WakefulBroadcastReceiver (до лоллипопа) / JobScheduler (после лоллипопа)
Аноним 05/08/17 Суб 22:21:18  1038771
>>1038757
Слишком пердольно и вообще не то. Это игра, и через какое-то время должно что-то произойти, причем отсчет ведется визуально. Не хочу пидорасить реализацию, она не должна зависить от платформы. Максимум - запускать пару платформоспецифичных методов.
То есть, сам поток с таймером менять низя.

https://medium.com/google-developers/who-lives-and-who-dies-process-priorities-on-android-cb151f39044f

Вот тут я читаю, что приоритет - не распространяется на отдельные компоненты, но на весь процесс в целом.
Это правда? Если да, то означает ли это, что foreground service повышает приоритет и свернутого activity?
Если так - можно в момент старта таймера запускать этот процесс, который просто делает холостую работу. И по окончанию таймера вырубать.
Аноним 05/08/17 Суб 22:29:15  1038776
>>1038771
https://developer.android.com/guide/components/processes-and-threads.html?hl=ru

>Процесс, необходимый для текущей деятельности пользователя. Процесс считается процессом переднего плана, если выполняется любое из следующих условий:
...
- Он содержит службу Service, которая выполняется "на переднем плане", — службу, которая называется startForeground().
...

То есть, в теории, даже свернутые activity с такой службой - должны выживать.
Аноним 05/08/17 Суб 23:08:12  1038787
>>1038469
чтобы прибить некоторое дерьмо, которое было скопированно на одном из этапов сборки и использовалось на нескольких (разных) местах дальше.

ведь должно же быть что-то типа myOhuennyTask.mustRunAfterAllOthers?
Аноним 06/08/17 Вск 15:05:07  1039053
Аноны, как абстрагируете работу с вьюхами и тулбаром? Во фрагментах куча всякого говна по инициализации, настройке, подготовке всех вьюх, айтемов для тулбара, обработка нажатий, ясное дело что все это выглядит как говно.
Аноним 06/08/17 Вск 15:05:14  1039054
> java.net.SocketException: socket failed: EMFILE (Too many open files)
Что это такое? На чистом ведре UDP работало, на MIUI не хочет. У меня вермишели из RxJava, что там могло пойти не так? Отладчиком прошелся - всё нормально, а пакеты не улетают.
Аноним 06/08/17 Вск 17:03:28  1039128
>>1039053
настройку каждой отдельной хуйни выносишь в отдельный метод и потом просто вызываешь все нужные методы в onCreateView например или ещё где-нибудь, тогда код выглядит довольно таки читабельно, никакой реализации в основных методах фрагментов нет и они получаются короткими и няшными
Аноним 06/08/17 Вск 19:50:07  1039286
>>1039054
может соединений слишком много создается?
graphql Аноним 06/08/17 Вск 20:10:32  1039322
Помогите разобраться с простейшим делом. Есть сервер, на котором имеются видео. Нужно с помощью qraphql брать ссылки на эти видео и подставлять в строковую переменную для дальнейшей обработки. Сервер настроен под данную технологию запросов, т.к. существует вэб-версия, которая работает по этому принципу.
Поскольку я новичок, у меня нет четкого представления для реализации данной задумки. Пока я имею один класс с видеоплеером, чтобы показывалось видео, на данный момент существует строковая переменная, где ручками прописывается ссылка на видео. Дальше я не знаю, создавать отдельный класс для осуществления запросов и получать оттуда ссылку, но как? В гайде от разработчиков я не могу разобраться самостоятельно, может кто подскажет?
Аноним 06/08/17 Вск 20:22:29  1039343
>>1039322
Просто склеивай ссылку с айдишником, или что там. Заем отдельный класс?
Аноним 06/08/17 Вск 20:35:29  1039351
>>1039343
Не хотелось бы все в один класс пихать.

Вот такие данные возвращаются с сервера. Но мне сперва нужно запихнуть ссылку(url) в плеер. Остальное будет реализовываться в дальнейшем, как опыта немного поднаберусь в этом деле.

Данные сервера:
id, originalName, source, hash, views, url, previewUrl, createdAt, updatedAt
Аноним 06/08/17 Вск 20:57:51  1039383
>>1039322
когда научишься нормально проблему описывать, тогда и приходи
Аноним 06/08/17 Вск 22:01:55  1039536
>>1039351
Ну тогда сделай класс модельку в которую парсится респонс со всей этой хуйней и у него метод toUrl
Аноним 06/08/17 Вск 23:27:52  1039636
Нормально ли использовать application object для хранения данных для фрагмента? У меня когда активити создает или реплайсит фрагменты, оно устанавливает на фрагменте некоторые проперти(типа mainActivity.startHueta(Hueta hueta){ HuetaFrag huetaFrag = new HuetaFrag(); huetaFrag.hueta = hueta; fragmenTransaction = .....), но при повороте экрана все идет по пизде и я получаю npe. Не хочу использовать вариант с записью модели в бандл т.к. некоторые модели содержат листы с другими моделями, с парой уровней вложенности и я заебусь реализовывать для них parceable.
Или хранить данные в appication совсем зашквар?

Еще нихуя не понимаю что происходит с фрагментами на бекстеке. Я так понимаю они просто все висят в памяти т.к. все мои фрагменты при возвращении назад нормально отрабатывают, а значит проперти с моделью висело в памяти, но что произойдет при повороте экрана со всеми фрагментами на стеке?
Аноним 07/08/17 Пнд 00:13:50  1039676
>>1039636
совсем зашквар. если у тебя возникают такие проблемы, значит ты делаешь что-то не так
Аноним 07/08/17 Пнд 00:18:17  1039680
А че вы шапку не запилите?
Аноним 07/08/17 Пнд 00:18:20  1039681
>>1039636
Да, это зашквар. Почему бы тебе не использовать SharedPreferences еще более зашкварный вариант, кек если тебя не устраивает бандл?
Аноним 07/08/17 Пнд 00:22:37  1039687
>>1039636
Да, и про твой вопрос с бэкстэком. Когда ты поворачиваешь экран, твоя activity уничтожается и пересоздается, а значит и фрагменты вместе с ними
Аноним 07/08/17 Пнд 00:47:09  1039704
>>1039636
Google на недавнем IO17 выкатили свои рекомендации по архитектуре приложений, в т.к. и хранения данных, лайвциклы. Самое время начать раскуривать их, Антон.

https://developer.android.com/topic/libraries/architecture/guide.html
Переводы на швабре - https://habrahabr.ru/post/334942/
Аноним 07/08/17 Пнд 01:01:08  1039710
>>1039676
>>1039681
Говна наверните, мартыханы. Application - лучшее место для хранения чего-либо нужного много-где.
Аноним 07/08/17 Пнд 02:20:18  1039784
>>1039710
Мы вам перезвоним
Аноним 07/08/17 Пнд 08:58:44  1039843
>>1039636
Попробуй RetainFragment, то есть делаешь отедльынй фрагмент котоырй ретейнится, которому похуй на на повороты, данные пихаешь в него, а потом достаешь.
Но вообще почему бы не записать в базу?
Аноним 07/08/17 Пнд 10:01:50  1039861
>>1039710
А давай ты навернешь. Ему нужно хранить не какие-то глобальные настройки прилодения, а текущее состояние одного единственного фрагмента. А то что он делает - сказочный костыль прямиком из Индии
Аноним 07/08/17 Пнд 10:14:18  1039867
>>1039636
Кстати, еще вариант: храни это все где-нибудь в MainActivity
Аноним 07/08/17 Пнд 10:44:38  1039880
Сосаны, я вот подумул, а на сколько нужно заходить в оптимизации. Вот допустим есть у меня список товаров, ну штук 100. Юзер кликнул кнопочку у товара и количество увеличилось на 1. Надо бы это в базу записать да и карточку товара уобновить. Записываем в базу, потом в другом месте нам прийдет новый спсиок товаров сввапнем адаптер с сохранением вьюшек, или испольузем диффутил, не суть важно. И тут я подумал, а ведь это целые новые 100 объектов, выборка из базы и тд.

Может не стоит так делать (для больших коллекций, например списка меседжей наверное точно не стоит), и нужно просто локлаьный списочек поменять и отнотифаить адаптер? Или это экономия на спичках уровня созданяи вьюх в коде, которая спасет хуй процент батареи, хуй килобайт памяти?
Аноним 07/08/17 Пнд 11:02:38  1039890
>>1039880
а что мешает к уже существующим 100 объектам просто добавить ещё один? не пересоздавая 100 объектов, не очень понятна твоя проблема кароче
Аноним 07/08/17 Пнд 11:49:35  1039921
>>1039890
Та я даун просто, который апи нормально не выкупил. Покопался и нашел что можно не весь список мониторить с определенной выборкой, а изменения по таблицам с кастомными тегами (речь про StorIO). Это сняло весь вопрос, по крайнемере для меня.

Вообще вопрос если его переформулировать и смержить с новыми данными может выглядеть следующим образом:
Как (точнее когда) "лучше" изменять данные в адаптере:
1) Как только пользователь что-то поменял, сохраняем изменения в адаптере и пстфактум пишем в базу;
2) Как только пользователь что-то поменял, пишем в базу, получив результат записи отображаем изменения;
3) Как только пользователь что-то поменял, пишем в базу, в другом месте где обсервим базу получаем информацию об изменениях, достаем из базы как надо и отображаем изменения;

Возможно разница не совсем понятна, попробую привести псевдокод: https://pastebin.com/YLyDJQRp
Аноним 07/08/17 Пнд 12:39:05  1039946
>>1039921
часто писать в базу это дорого по идее, мб лучше записывать в базу уже после того как пользователь всё сделал? а до этого просто писать в адаптер
Аноним 07/08/17 Пнд 14:06:43  1039996
>>1039946
>мб лучше записывать в базу уже после того как пользователь всё сделал
А если нет "конца", вот он закрыл приложуху и что, весь твой адлаптер пропал, нет кнопки сохранить. Почему ты решил что дорого?

Тем более вот другая ситуация, список сообщений в чате, приходят они в сервисе по сокету, соответственно писать ты можешь только в базу, а оттуда уже пихать в адаптер и аллаха.
Аноним 07/08/17 Пнд 19:54:22  1040211
Гайз, подскажите неофиту как можно реализовать передачу статусов смс-сообщений пхп файлу? который потом передаст их в бд
Аноним 07/08/17 Пнд 20:22:52  1040236
>>1040211
1) Получаешь разрешение READ_SMS
2) Читаешь спсиок смск
3) Достаешь их статусы
4) Отправляешь их серваку, дальше пусть сервак ебется с ними
Аноним 07/08/17 Пнд 22:31:35  1040322
Есть какой то встроенный механизм, которым я могу ограничить количество отображаемых символов в текстовых полях чтобы при превышении лимита оставшиеся символы заменялись троеточием. К примеру задаю ограничение на 10 символов и какая-нибудь длинная надпись будет отображаться как "Длинная на..."
Аноним 07/08/17 Пнд 23:12:14  1040347
>>1040322
android:ellipsize
Аноним 08/08/17 Втр 12:01:49  1040571
Привет двощ! Начинаю вкатываться программинг на андроиде, прочитал приличное кол-во мукулатуры, остались вопросы. Можно ли где-то найти годные курсы (на коммерческой основе), с обратной связью, чтобы я мог задать свои глупые нубские вопросики?
Аноним 08/08/17 Втр 12:42:16  1040601
Сап, ебусь в глаза и второй день ебу как перенести это на рельсы RX.
https://pastebin.com/wjbpRK5d
start() - делает запрос в сеть и если все плохо запускает delayedLaunch()
delaySec - сколько секунд выжидать между запросами
Аноним 08/08/17 Втр 12:56:24  1040606
>>1040601
пиздец блять, что за велосипед, не проще это переделать нахуй? если у тебя запрос в сеть, то просто юзай ретрофит, он тебе всё нормально сделает, нахуй тебе эти задержки руками делать?
Аноним 08/08/17 Втр 14:43:32  1040656
>>1040606
Я и переделываю) Ебаный сервак как всегда. Есвенно запросы в ретрофите.
Аноним 08/08/17 Втр 14:45:50  1040658
>>1040656
И плюс надо апдейтить значение секунд во вьюхе
Аноним 08/08/17 Втр 17:08:01  1040776
>>1040601
забей, это не твоё
Аноним 08/08/17 Втр 23:03:24  1041055
Здравствуйте, уважаемые, хочу у вас узнать, есть ли какой-то, грубо говоря, конструктор (по типу C++ builder), хочу запилить для одного сайта маленькую приложуху на телефон. Java знаю на уровне хеллоуворлда, C# знаю средне, так же С++, знаю на достаточном уровне Python.
Аноним 09/08/17 Срд 01:29:41  1041115
>>1040571
На udemy должно быть.
Или взять наставника на фл.ру
Аноним 09/08/17 Срд 10:08:09  1041194
>>1041055
Формочки ты допустим сможешь натаскать в той же Android Studio, но не окунувшись в говно ничего не выйдет.
Аноним 09/08/17 Срд 11:30:35  1041227
>>1040571
https://habrahabr.ru/post/328888/
Аноним 09/08/17 Срд 14:30:22  1041354
Кто-нибудь уже юзает room? Что-то я совсем не понмаю как организовать отношения между сущностями т.е. если какая-то сущность содержит в себе массив других сущностей. Как это реализовать? Хранить в модели массив айдишников этих других энтитес, а в кастомном геттере загружать эти энтитес через dao и опционально кешировать?
Аноним 09/08/17 Срд 14:40:08  1041358
>>1040776
Почему? Мне вожно лишь понять можно ли как то этот кусок: https://pastebin.com/Tcta8aA1 распихать по рх-операторам. Заменить хендлер на Обсервабл с задержкой и самовызовом внутри и мартышка может.
Аноним 09/08/17 Срд 15:46:42  1041412
>>1041358
>этот кусок: https://pastebin.com/Tcta8aA1
если это написал ты, то забей, это не твоё
Аноним 09/08/17 Срд 18:12:51  1041502
>>1041194
> но не окунувшись в дерьмо
Все так плохо, что-ли?
Аноним 09/08/17 Срд 19:01:31  1041532
>>1041502
Ну а ты что хотел? Моб разработка это что-то уровня фронтенда
Аноним 09/08/17 Срд 20:41:50  1041579
>>1041532
Хотел как в питоне. Написал одну строку = сделал запрос на сайт. И прилепить эту строку к кнопке какой-то.
Аноним 09/08/17 Срд 21:30:07  1041606
>>1041579
Не будет, твердо и четко. Здесь не браузер и не бекенд, это вам не скрипты писать. Твои строчки здесь порвут на милионные простыни, это мать ее джава.
Аноним 09/08/17 Срд 21:30:45  1041608
>>1041606
Звучит опасно.
Аноним 09/08/17 Срд 22:13:31  1041626
Короче поябался с room, вроде годная вещь, в сравнении с пердолингом на голых SQLHelperax, но я нихуя не понимаю как смоделировать one to many и many to many.(со сложными, связанными данными не работал)
В примерах @ForeignKey используется для ссылки на одну entity. А что делать если у меня условный класс User cодержит List<Comment> comments, а у другого есть поле Map<User, Role> roles. Как такое мапить?
Аноним 10/08/17 Чтв 01:11:38  1041691
>>1041626
разберись для начала с бд, нарисуй схему, это тебе не ебаный realm
Аноним 10/08/17 Чтв 13:07:28  1041893
>>1041412
Что не так?
Аноним 10/08/17 Чтв 13:15:10  1041894
>>1041893
Если про сам свитч то хуйня, вот повравил. Но один бес, как его можно на операторы рх попилить?
Аноним 10/08/17 Чтв 13:38:24  1041911
>>1041894
Вот поправил: https://pastebin.com/A5FYqNdZ
Аноним 10/08/17 Чтв 16:23:31  1041998
Как более комфортно вкатиться в андройд? Около трех месяцев копаюсь в джаве по классам, исключениям, процедурным и вот начинаю многопоточность, а следом и коллекции пойдут. Стоит ли мне засиживаться на Swing и тому подобных библиотеках и еще более детально прорабатывать сам язык? Или уже стоит после моего мини-курса начинать углубление в андройд, попутно почитывая за чашкой чая Брюса Эскеля?
Аноним 10/08/17 Чтв 17:37:35  1042034
>>1041998
книги не нужны, самый эффективный способ это просто взять и начать писать код, иначе будешь ещё хуеву тучу лет сидеть за своими книжками, а толку нихуя
Аноним 10/08/17 Чтв 17:46:14  1042038
>>1041998
> Или уже стоит после моего мини-курса начинать углубление в андройд, попутно почитывая за чашкой чая Брюса Эскеля?
This.
По яве тебе главное надо знать классы, наследование, интерфейсы, внутренние класы, анонимные реализации. Статик поля\функции. Основные интерфейсы коллекций типа list, map, set и отличия реализаций. Немного io, без сильного углубления в детали. Обработку исключений, и самую базовую многопоточность. Если это более-менее знаешь - можешь закатываться. Кроме явы еще желательно знать что такое колбеки, паттерн observer и singleton, xml, json(без подробностей стандарта, а в общем что такое и как пользоваться.) Немного основ сетей(реквесты, респонзы, http(s), клиент-сервер)

swing тебе нахуй не нужен, даже не притрагивайся. А вообще не знаю какой там у тебя темп, но 3 месяца для классам, исключениям, процедурным(это вообще что?) и вот начинаю многопоточность, а следом и коллекции пойдут это чет дохуя. По нормальному основы java за месяц с нуля осваиваются, если занимаешься хотя бы по 1-3 часа в день.
Аноним 10/08/17 Чтв 17:48:12  1042042
>>1042038
>c нуля без бакгроунда
фиксоуточнение
Аноним 10/08/17 Чтв 17:56:45  1042045
>>1042034
типичный васян из быдлоконторки
Аноним 10/08/17 Чтв 17:58:25  1042050
>>1042045
лол, тогда ты - типичный вкатывальщик с двочей
Аноним 10/08/17 Чтв 18:00:24  1042051
>>1042034
Хз, я перекатывался(до этого знал малось джава кор(олимпиадник), алгоритмы да паттерны) прочитав Head First и Big Nerd Ranch. Правда на это ушло 3 недели во время рождественских а не 3 месяца. Потом пару месяцев кодил всякое и учил фундаментальные либы - рх, даггер и проч. Уже пол года работаю в продуктовой компании на одно маленькое и богатое государство)
Аноним 10/08/17 Чтв 18:03:11  1042056
>>1042050
да ладно тебе, не агрсиь, тупой кодерок
Аноним 10/08/17 Чтв 18:05:01  1042058
>>1042051
ну так блин, одно дело быстренько пролистать какие-то книжки и потом начинать кодить, а другое дело 3 месяца сидеть читая какую-то хуйню и собираться ещё столько же продолжать читать
Аноним 10/08/17 Чтв 18:08:51  1042062
>>1042051
На какую зп вкатился? Сколько проектов было? Город?
Аноним 10/08/17 Чтв 18:20:52  1042066
>>1042062
Зп 250, ДС3, на собеседовании два своих небольших приложения показывал
Аноним 10/08/17 Чтв 18:58:10  1042081
>>1042066
250 долларов?
Аноним 10/08/17 Чтв 19:09:38  1042089
>>1042081
Ударов плетью.
Аноним 10/08/17 Чтв 19:13:04  1042091
>>1042089
Чет совсем маловато, я б уже лучше борщи хлебал. А что за небольшие прилаги были, опиши функционал?
Аноним 10/08/17 Чтв 19:22:01  1042094
>>1042038
спасибо добрый анон.
Аноним 10/08/17 Чтв 19:28:53  1042099
>>1042038
>самую базовую многопоточность.
И как часто многопоточность встречается в андройде?
Аноним 10/08/17 Чтв 19:52:24  1042109
>>1042099
Ну скажем, везде
Аноним 10/08/17 Чтв 19:56:22  1042112
>>1042099
В любом приложении не хелоуворде будет.
Аноним 10/08/17 Чтв 20:26:15  1042127
>>1042099
Везде, но там в большинстве случаев используются свои абстракции и свои "паттерны использования".
Аноним 10/08/17 Чтв 22:37:36  1042206
>>1041691
Так с бд я знаю как это происходит. Если one to many, то в тех entity, которых many создается поле с айдишником родителя. А если many to many - то создается промежуточная таблица с отношениями idEntity1-idEntity2. Но я в room нихуя не понимаю как запихнуть. Все статьи кастрированные с простейшими моделями.
На commonsware судя по заголовкам все что мне надо разбирают, но для полной статьи надо их книга за кровавые доллары.
https://commonsware.com/AndroidArch/previews/room-and-relations

Если у тебя есть какие-нибудь более подробные стати или знаешь опенсурс приложения, которые юзают room - поделись. с меня лучи магии дружбы.
Аноним 11/08/17 Птн 02:02:31  1042292
>>1041412
Но я ради денег, спок
Аноним 11/08/17 Птн 02:05:10  1042294
>>1042066
пиздец, пол года за 250, нахуй так жить
Аноним 11/08/17 Птн 02:38:05  1042299
>>1042206
Снимаю вопрос, все таки набыдлил то что было нужно.
Аноним 11/08/17 Птн 10:28:39  1042394
>>1042066
За 250 пиздабол. Киев, 700, собес был первый вообще в жизни, конкурс после тестового челов 25+
Аноним 11/08/17 Птн 10:29:52  1042397
>>1042062
Я здесь >>1042394
Аноним 11/08/17 Птн 13:04:49  1042490
https://youtu.be/Q_NhEhjkOy8
https://youtu.be/bZKw9rYuMOw
Аноним 11/08/17 Птн 13:05:24  1042491
>>1042490
Пиздец, ебать я не в тот тред запостил
Аноним 11/08/17 Птн 14:08:02  1042540
>>1042299
ну тогда поделись, вдруг кому пригодится
Аноним 11/08/17 Птн 19:05:33  1042700
Господа, поясните нубу как выищете инфу по необходимому вам вопросу?
Вот мне, например, необходимо отправить смс из под моего приложения так, чтобы оно сохранилось в дефолтном смс-менеджере, но информации по этой части нихуя нету ну или я аутист - все попадающиеся статьи, как правило, связаны просто с отправкой смс с помощью метода по типу SmsManager и т.п.
Помогите дауну, плз.
Аноним 11/08/17 Птн 22:07:39  1042842
Привет аноны, у меня давно назрел вопрос о тестировании, и я так и не нашел ответа. У меня есть приложение, которое взаимодействуе с таким же приложением на другом устройстве, то есть Р2Р взаемодействие. Взаимодействий довольно много и я заебываюсь все это тестить вручную, есть ли возможность забацать какие-то тесты - сценарии (наверное два набора, один для сендера и второй для рессивера), на Эспрессо, чтобы они запускались на двух устройствах одновременно и комуницировали между собой, ну и падали если ассершены не сработают. Я понимаю что они будут "флэки", но возможно сделают мою жизнь немножко проще, да и сама идея тестирования Р2Р интересна.
Аноним 11/08/17 Птн 23:51:24  1042887
>>1042700
и н т е н т
н
т
е
н
т

https://stackoverflow.com/questions/2372248/launch-sms-application-with-an-intent
Аноним 12/08/17 Суб 00:15:43  1042905
>>1042842
просто мокаешь второй девайс и тестируешь как нормальный человек
Аноним 12/08/17 Суб 01:38:34  1042939
>>1042540
Да там говнокода много, я потом вкину, когда будет получше. Но суть в том, что все делал вручную. Сначала отрефакторил модель чтобы не было many to many. А там где one to many создавал в модели "many" поле на id "родителя". one to one тоже самое.
И написал функцию в классе базы, которая сохраняет не только родительскую модель, но и все зависимые. И такую же, которая загружает модель, все зависимости, а потом устанавливает эти зависимости.
Причем foreign key применить не получилось потому что есть модели, которые хранят ссылку друг на друга и при сохранении получается этакий deadlock т.к. в базе еще нет нужных айдишников.
Массивы и другие поля с примитивными данными конвертировал в json строку через TypeConverterы и сохранял как текстовое поле, соответственно при загрузке json парситься обратно в нужную структуру.
Доки и примеры везде кастрированные с простейшими моделями. Более-менее нормальные примеры нашел только у commonsware
https://github.com/commonsguy/cw-androidarch
Аноним 12/08/17 Суб 11:20:58  1043038
>>1042905
>просто мокаешь второй девайс
тогда выходит, что я мокаю свой механизм соединения и тестирую только UI, а мне важно протестировать само соединение, что девайсы действительно коннектятся и передают данные друг другу, это наверное было не совсем ясно с мого вопроса.
Аноним 12/08/17 Суб 16:53:11  1043204
Анансы, кто на каких девайсах тестит всю хуйню?
Аноним 12/08/17 Суб 17:01:04  1043210
>>1043204
На самсунге, на хуеми, на мейзу и на леново.
Аноним 12/08/17 Суб 18:20:27  1043249
>>1043204
sony
потому что только они есть
Аноним 13/08/17 Вск 13:48:00  1043679
Какое минимально окружение нужно для сборки приложения?
Есть проект (из студии), его периодически кому-нибудь надо собирать. Собирается gradle и скриптами.
Насколько я понимаю. нужно только сдк. На девелопер.андроид.ком оно только вместе со студией, а она нафиг ее нужна. Как стащить только необходимое для сборки?
С установленным сдк тоже есть проблемы: надо принять лицензионное его соглашение (а гуй в студии) и указать путь к нему в local.properties.
Как это все автоматизировать? CI же наверняка для андроида пилят, как там эти проблемы решают?
Аноним 13/08/17 Вск 14:19:11  1043706
>>1043679
Jenkins
Аноним 14/08/17 Пнд 21:47:27  1044617
До чего ублюдская среда. Ебаный день выпиливаю лампочки, подсветки, полоски, подчеркивания, зачеркивания. Вся суть андройда в официальной ИДЕ
Аноним 15/08/17 Втр 11:09:38  1044804
>>1044617
Раньше было лучше?
Аноним 15/08/17 Втр 13:22:50  1044839
Error:Conflict with dependency 'junit:junit' in project ':app'. Resolved versions for app (4.10) and test app (4.12) differ. See http://g.co/androidstudio/app-test-app-conflict for details.

Анончик, помоги! Нихуя не могу найти, как это пофиксить.

В dependencies build.grandle (Module:app) у меня это:

compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
testCompile 'junit:junit:4.12'

Что это мразоте не нравится и как это обуздать? Откуда вообще это 4.10 говно взялось?
Аноним 15/08/17 Втр 13:25:45  1044841
>>1044839
Хотя, таки нашел.

Нужно добавить
compile 'junit:junit:4.12'
Аноним 15/08/17 Втр 13:32:42  1044847
>>1044804
в еклипсе да
Аноним 15/08/17 Втр 22:46:51  1045126
>>1044841
> compile 'junit:junit:4.12'
Хуевая идея, нахуй тебе в релизе junit?
Аноним 16/08/17 Срд 11:40:21  1045280
Можно как-то сделать чтобы room при ошибках конпеляции показывал в каких файлах эти ошибки?
Аноним 16/08/17 Срд 12:23:43  1045297
>>1045280
как ты заебал со своим румом, нахуй ты его вообще юзашешь если у тебя каждый день какие-то ебучие вопросы возникают? юзай что-нибудь старое, которое уже обсосали со всех сторон пидор блять
Аноним 16/08/17 Срд 14:19:05  1045366
>>1045297
Охуеть у тебя там пекло. 2 вопроса задал всего лишь и на те ты, хуйло, не ответил.
> юзай что-нибудь старое
Ты же мне и по старому не пояснишь, мелкобуква.
А теперь скажи, нахуя мне юзать что-то другое, если room дает полную свободу и контроль без магии над бд как с кастомным sqlitehelperом, но без ебучих портянок бойлеплейта? Потому что хуй с харкача загорелся без причины?

С вопросом я опять таки разобрался без твоих хуегорений, но то, что room при компиляции не показывает в каких dao\entity ошибки - реально неудобно, приходится их все перепидоривать на предмет багов. И есть можно как то эту инфу отображать, мне хотелось бы знать.
Аноним 16/08/17 Срд 15:59:26  1045407
>>1045366
Просто смотри дифф от рабочего коммита. Просто и понятно.
>без магии над бд как с кастомным sqlitehelperом
И какая же там магия?
Аноним 17/08/17 Чтв 12:24:55  1045800
>>1045366
Потому что есть жёсткая привязка к SQLite.
Потому что кастомный хелпер даёт больше возможностей например, сторайошный.
Потому что альфа-версия в продакшене не катит.
Потому что RxJava 2 на продакшене - это уже 2018, а то и 2019.
Потому что убогое говно из нативных запросов не заменено ни каким апи, просто перенесено в аннотации.
Потому что не придумали вменяемого описания агрегирующих функций.
Потому что нет удобного описания таблиц для связей.
Аноним 17/08/17 Чтв 16:17:44  1045895
Сап! Есть желание вкатиться в фриланс под Андроид. Не совсем с нуля. Сам я так-себе вебразраб, недавно студентота, знания кое-какие есть, портфолио толком нет. Под ведро умею делать и делал простенькие проги, вроде распарсить сайтик jsoup'ом, вывести список картинок из инета picasso, вывести маршруты всякие на вебвью из яндекс-карт.

Во фриланс пытался вкатиться уже, но что-то идет туго, без смазки. Подскажи, анон, что надо еще выучить(видел часто упоминания в серьезных заказах о ReactNative, Dagger, Mockito), как надо вкатываться и, главное, куда? Наши биржи или буржуйские(с письменным инглишем более-менее, разговорный сложновато)?

И да, анон, заранее говорю - с подобной работой у меня в городе туго.
Аноним 17/08/17 Чтв 16:48:48  1045911
>>1045895
> вкатиться в фриланс под Андроид
Проиграл.
Аноним 17/08/17 Чтв 18:00:42  1045927
Есть ли альтернатива SqlDroid? Он глючный, я ебал (например, нельзя использовать в разных потоках с setAutocommit(false) без невиданных архиуебищных костылей), и к тому же сдох.
Аноним 17/08/17 Чтв 18:49:11  1045938
У кого есть опыт в написании игр, где будет проще сделать игру: Unity или на чем-то типа LibGDX? Игра 2д с мультиплеером.
Аноним 17/08/17 Чтв 18:56:32  1045940
Быстрее бы уже первое сентября.
Аноним 17/08/17 Чтв 21:13:47  1045984
>>1045940
Так а хуле толку, эти пидоры уже и на уроках с телефона капчуют, а на переменах так вообще собираются и всем классом крутят рулеточку и рофлят со смешных мемчиков. Выродки блять, поколение выблядков и дегенератов.
Аноним 17/08/17 Чтв 22:19:56  1046031
>>1045940
>>1045984

сап посоны, вижу вы опытные ребзи. собрал сегодня первый хеллоуворд. вывел на экран пару мемчиков с оксимороном. есть вопрос: какие вещи в ондройде нужно шарить чтобы устроиться джуном хотябы на 1000-1500 баксов? алсо еще ищу ментора т.к. много чего еще не понимаю(до этого кодил только на турбопаскале) и нужен опытный наставник, с меня сотни нефти нихуя зато вам ценный преподовательский опыт))

также готов поконтрибутить в ваши проектики))

я в этом году пролетел с поступлением и теперь до сентября нужно срочно найти работу.

школьники реально заебали
Аноним 18/08/17 Птн 09:06:30  1046143
>>1046031
>джуном хотябы на 1000-1500 баксов
Интересные у вас джуны...
Аноним 18/08/17 Птн 09:27:50  1046148
>>1046031
Еще один войтивайти услышавший про "длинный рубль". Придется тебе соснуть.
Аноним 18/08/17 Птн 09:36:42  1046151
>>1046031
>какие вещи в ондройде нужно шарить чтобы устроиться джуном хотябы на 1000-1500 баксов?
Тред читал вообще? Хелоуворлд - хуйня. Скорее всего не втянешь и за год без опыта технарской вышки на джуна андроида. Везде подразумевается как минимум знание JavaCore на 100%. Иди в обычную жаву сначала, там у тебя больше шансов.

> с меня сотни нефти нихуя зато вам ценный преподовательский опыт))
Ну и кому ты нахуй сдался учить тебя?


>школьники реально заебали
ой, я у мамы два месяца уже не-школьник
Аноним 18/08/17 Птн 09:39:41  1046154
>>1046031
>>1046151

олсо то что ты пролетел с поступлением намекает что ты не очень умный, не совсем понял что тебе реально нужно, можешь забить нахуй и уйти в жс через 2 месяца и учить тебя пришлось бы проблемнее и дольше.
Аноним 18/08/17 Птн 12:24:50  1046208
57ffa30.jpg (19Кб, 300x210)
>>1046143
>>1046148
>>1046151
>>1046154
Лол, специально же потолще писал.
Аноним 18/08/17 Птн 14:34:16  1046260
>>1045911
не ну, а если серьезно? Мне так то не сильно много и надо пока что. Просто такая цель есть. Анон, дай дельный совет, ну?
Аноним 18/08/17 Птн 15:59:12  1046313
>>1046260
да какой фриланс, под ведроед фриланса нет, забудь
Аноним 18/08/17 Птн 20:54:46  1046483
Почему ORMLITE ебет мне мозги? Делаю все по гуиде, но ему абсолютно насрать на название колонок первичных ключей. Я пишу следующее:

@DatabaseField(columnName = "pizda", generatedId = true)
private int pizda_id;

А он все равно называет эту колонку "id" и жалуется что не может найти колонку с именем "pizda".
Вот ошибка: Unknown field 'pizda' from the Android sqlite cursor, not in:[pizda, ...]

И еще, пытаюсь сделать внешнюю переменную таким способом

@DatabaseField(foreign = true)
private Huy huy;

но он тоже начинает кукарекать, что такой колонки нет (чсх ее и правда нет, потмоу что он не создает колонку huy_id, которую он должен создать).

Класс Huy аннотирован по всем понятиям. Таблицы создаю с помощью
TableUtils.createTable(connectionSource, Huy.class);
TableUtils.createTable(connectionSource, Pizda.class);

Аноним 18/08/17 Птн 20:58:55  1046488
>>1046483
Может он не может нормально создать базу в Андроиде и стоит создать ее отдельно?
Аноним 18/08/17 Птн 22:04:19  1046507
>>1046483
если по гуиде не работает, значит ты делаешь не по гуиде
Аноним 18/08/17 Птн 23:52:24  1046568
>>1046507
Кажется, что ебучий инстант ран опять заглючил и деплоил мне какую то хуйню. Перезапустил студию и все заработало.
Аноним 19/08/17 Суб 00:00:22  1046573
Есть один теоретический вопрос про WebView и фрагменты с ними.
WebView сам по себе асинхронно загружает страницы, это понятно. Но у меня мои WebView находятся в нескольких фрагментах, один из которых в данный момент в состоянии onResume, а все другие - в onPause. Вопрос, будут ли все-равно WebView в фрагментах "на паузе" загружать страницы, если отправить коллбэк из другого класса?
Аноним 19/08/17 Суб 00:05:59  1046576
>>1046573
Да, забыл. Фрагменты у меня из support library, а не стандартные. Каждый WebView содержится в своем фрагменте
Аноним 19/08/17 Суб 01:17:30  1046608
>>1046568
щас бы инстант ран юзать в 2о17
Аноним 19/08/17 Суб 01:19:07  1046611
>>1046573
во-первых, что тебе мешает взять и проверить? а во-вторых, скорее всего - нет
Аноним 19/08/17 Суб 02:50:47  1046636
Как-то можно получить размер Rect'a, который занимает подстрока в многострочном TextView? Я пробовал TextPaint.getTextBounds, но он все считает в одну строчку без учета переносов. Под ios есть NSLayoutManager.boundingRectForGlyphRange который делает именно то, что мне нужно

https://developer.android.com/reference/android/graphics/Paint.html#getTextBounds(java.lang.String,%20int,%20int,%20android.graphics.Rect)
https://developer.apple.com/documentation/uikit/nslayoutmanager/1403255-boundingrectforglyphrange?language=objc
Аноним 19/08/17 Суб 12:17:33  1046761
>>1046568
>инстант ран
Как там в 2015?
Аноним 19/08/17 Суб 13:29:39  1046805
>>1046761
а что тогда юзать?
Аноним 19/08/17 Суб 13:30:46  1046807
>>1046805
JRebel
Аноним 19/08/17 Суб 14:15:44  1046834
Screenshot from[...].png (71Кб, 459x795)
Двач, почему мой констрейнт лайаут идет по пизде?
Стоят привязки все как мне надо, но если слишком большой текст в среднем текствью, то все идет по пизде по пикрилу.
Можно ли сделать так, чтобы текст переносился на две строки, если не влезает в констрейнты?
https://pastebin.com/cfGZAQjX
Аноним 19/08/17 Суб 14:48:45  1046858
>>1046834
юзай барьеры и будет тебе счастье
Аноним 19/08/17 Суб 15:59:54  1046912
Screenshot from[...].png (71Кб, 462x815)
>>1046858
Теперь работает как надо, добра. Странно что по описаниям туторов, барьер - это просто хуитка, которая позволяет задавать констрейнт относительного положения от нескольких вьюх, а не от одной. Что в моем случае не нужно, но без барьера не работает.

Исправленая размета, если кому интересно https://pastebin.com/MJCHtPpn
Аноним 19/08/17 Суб 18:10:36  1046997
>>1046927
продолжу ревью, так уж и быть
-коммит месседжи твои - хуйня, в прошедшем времени никто не пишет, норм пацаны пишут в настоящем типо не added как у тебя везде там написано, а add просто
-всё в одной ветке, я канечно понимаю что ты модешь отмазаться что ты один сам для себя пишешь, но всё же, это очень плохая практика даже когда один пишешь
-структура проекта это просто полный пиздец, в есть пакет ui, но внезапно в пакете settings находишь какую-то активити, какого хуя она там делает? есть пакет utils, но в пакете application какого-то хуя куча утилсов лежат, какого хуя вообще?
-ты нахуя вообще на котлине пишешь? ты блять ебанутый что ли? это пиздец, сука, у меня просто слов нет, нахуй ты все поля объявляешь с помощью вар и нулами их делаешь? блять, просто иди нахуй с таким кодом, я больше не могу на это смотреть
Аноним 19/08/17 Суб 20:37:16  1047058
>>1046997
>всякую хуйню отревьюил, но ни за одно хуевое решение в коде не пояснил
Ты сразу пиши кто сам: андроид-разработчик или менеджеришка-хуесосишка? Чтобы тот анон знал: прислушиваться к твоим советам или так, в пол уха кукареки улавливать.
Аноним 19/08/17 Суб 21:08:20  1047060
>>1047058
а какая разница кто я? советы то максимально очевидны, любой джун согласится с каждым пунктом моего сообщения, а пояснять слишком много придется, пусть для начала исправит то, что я написал, чтобы его код хоть читать можно было, а потом уже и конкретнее можно будет посмотреть
Аноним 19/08/17 Суб 21:10:05  1047061
Ксамарин еще жив?
Аноним 19/08/17 Суб 21:18:11  1047062
>>1047060
Понятно, очередной кукаретик.
Аноним 19/08/17 Суб 21:21:50  1047064
>>1047062
на кукаретика больше похож ты, я хоть что-то по делу говорю, в отличии от тебя
Аноним 19/08/17 Суб 21:47:34  1047073
>>1047064
> ко-ко-ко
Аноним 19/08/17 Суб 21:52:38  1047075
>>1047073
пиздец, с кем я в одном треде сижу
Аноним 19/08/17 Суб 22:14:12  1047082
>>1047075
> пук
Аноним 20/08/17 Вск 13:32:26  1047286
>>1046636
Главный вопрос в том, а зачем? Возможно то, что ты хочешь сделать, можно сделать по-другому.
Аноним 20/08/17 Вск 16:28:41  1047418
Если я создаю обсерваблы в синглтоне, мне ведь по идее не нужно сохранять диспосабл для последующего удаления, да? Так как этот класс один хуй всегда в памяти будет, то течь не должно ничего. Или нет?
Аноним 20/08/17 Вск 16:50:27  1047433
>>1047418
схуяли он всегда в памяти будет? юзер убивает приложение во время того как твой обзервабл че-то там делает и всё, потекла малафья
Аноним 20/08/17 Вск 16:56:58  1047434
>>1047433
Но если приложение убито, то ОС сама всё освободит.
Аноним 20/08/17 Вск 17:10:06  1047440
Кто-нибудь работал с osm на андройд? Что-то я нихуя не понимаю как можно скачать на телефон оффлайн кеш какого-нибудь города, может кто подкинет нужных ссылок?
Да и вообще какого-то целостного понимания нет как оно работает. Я так понимаю сами данные openstreetmap - это просто набор структур типа нод, связей и т.д. с тегами инфорацией и всем прочим для какого-то региона. А тайлсорс - это какой то сторонный сервис, где вся эта поебень отрендерена и когда я устанавливаю в mapView тайлсорс MapInk, он просто качает и отображает картиночки от mapink?
Аноним 20/08/17 Вск 18:44:52  1047519
>>1047434
во-первых ос ничего не особождает, этим занимается гарбаж коллектор, во-вторых даже он не сможет освободить, т.к. у тебя обзервабл будет выполнять какие-то операции и на него будет всегда ссылка. а вообще я не понимаю проблемы, разве так сложно сохранить диспосабл и потом "отписаться" если юзер вдруг всё ебнет?
Аноним 20/08/17 Вск 19:01:45  1047530
123.png (94Кб, 1679x1189)
>>1047519
Ну там проблема в том, что у меня создаются обсерваблы внутри сингла. Я отправляю файлы на сервер и хочу отображать прогресбар загрузки. Это сделано через кастомный RequestBody, который шлёт обсервабл через PublishSubject каждый раз когда в BufferedSink был записан очередной кусок файла точнее там по 3%. Так вот, сингловый диспосабл (который отправляет файлы) я сохраняю для последующего удаления (в onDestroy активити). А в каком моменте мне удалять диспосаблы созданные через PublishSubject не понятно.
Аноним 20/08/17 Вск 19:05:09  1047532
>>1047530
Ебать простыня. А потом удивляется, что у него ничего не работает.
Аноним 20/08/17 Вск 19:08:11  1047533
>>1047532
Так всё работает. Вопрос о другом был.
Аноним 20/08/17 Вск 19:09:27  1047534
>>1047533
> Так всё работает.
Это пока.
> Вопрос о другом был.
Я мимокрок, только пикчу смотрел.
Аноним 20/08/17 Вск 19:30:49  1047543
>>1047519
>во-первых ос ничего не особождает
Всмысле? Система говорит убить приложуху которая валяется в бэкграунде, весь процес грохается, вместе с этим закрываются всякие DbOpenHelper'ы. GC просто не за чем работать, процеса не будет.

>>1047530
Я бы посоветовал тебе сделать сервис, который когда надо запускается и плоказывает твой прогрес бар или что там в нотификации.
Аноним 20/08/17 Вск 19:42:09  1047551
Screenshot2017-[...].png (212Кб, 720x1280)
>>1047543
Я бы посоветовал тебе сделать сервис, который когда надо запускается и плоказывает твой прогрес бар или что там в нотификации.
А если без нотификаций? Это хуёвая идея? Если мне нужно просто заблочить активити от юзера на время пока заливаются изображения на сервер. Пикрелейтед.
Аноним 20/08/17 Вск 19:46:02  1047557
>>1047551
А зачем блочить юзера?
Ну елси хочешь блочить, то можешь сделать активити с темой диалога, и уже там все нормально отписывать.
Аноним 20/08/17 Вск 19:50:52  1047559
123.png (86Кб, 1713x1189)
>>1047557
>А зачем блочить юзера?
Ну, чтобы он не тыкал куда не надо пока заливаются фотки.
В общем вот так решил сделать. doOnEvent должен вызваться в любом случае будь то обсервабл или эксепшон, там можно очистить CompositeDisposable я думаю.
Аноним 20/08/17 Вск 20:56:01  1047608
>>1047530
ебать говнокодище, но одно я могу сказать точно, ты НИКОГДА не хочешь создавать обзервабл внутри обзервабала(сингла), запрос любой сложности можно сделать на стандартных операторах, так что у тебя явно что-то не так
Аноним 20/08/17 Вск 21:12:21  1047617
>>1047608
>ты НИКОГДА не хочешь создавать обзервабл внутри обзервабала(сингла)
Должно быть для этого есть какая-нибудь веская причина? И что значит на стандартных операторах? Я и так только стандартные использую.
Аноним 20/08/17 Вск 21:21:52  1047626
>>1047617
блин, посмотри на свой код со стороны вообще, ты используешь рх, но это ебаное полотно невозможно читать. ребята, которые написали эту либу, специально придумали хуеву тучу операторов чтобы код был МАКСИМАЛЬНО ЧИТАБЕЛЕН, чтобы просто был вызов нескольких подряд операторов и вуаля, они внезапно делают то что тебе надо, твой же код это просто винегред какой-то, с таким же успехом ты мог использовать лоадеры/асинктаски обмазавшись коллбеками и было бы скорее всего даже читабельнее чем то, что ты наваял используя рх, понимаешь?
Аноним 20/08/17 Вск 21:24:10  1047630
123.png (13Кб, 1205x225)
>>1047626
Так лучше стало?
Аноним 20/08/17 Вск 21:25:48  1047633
>>1047630
ну очевидно что да, но я вангую что в функции, в которую ты спрятал всю эту парашу всё осталось так же хуево
Аноним 20/08/17 Вск 21:29:40  1047635
>>1047630
а вообще, я бы на твоем месте всё-таки запарился и нормально переделал, я понимаю, что это сложно, но когда сможешь понять идею, которая стоит за всем этим, то сможешь писать пиздец какой красивый код. попробуй разробрать свой таск на отдельные части и смотря сюда http://reactivex.io/documentation/operators.html написать все чисто на операторах, там есть десижн дерево, оно тебе поможет, состояний кстати внутри желательно тоже не иметь
Аноним 20/08/17 Вск 21:34:07  1047642
>>1047635
>состояний кстати внутри желательно тоже не иметь
Вот без этого я вообще не представляю как жить.
Аноним 20/08/17 Вск 21:36:59  1047645
>>1047642
Тащи состояние через параметры, через zip/flatMap
Аноним 20/08/17 Вск 21:37:40  1047646
>>1047645
Но ведь тогда ещё больше колбаса получится.
Аноним 20/08/17 Вск 21:44:54  1047649
>>1047646
Ну это уже как ты напишешь.
Вот например у тебя допустим инжектится две штуки ApiClient и Dao. Получив результат ыапи ты хочешь засунуть их в дао, получается что-то в духе:
apiClient.getResults().flatMap(this.dao::save)
Не красиво однако, захват переменной и в другом треде, ничего страшного в данном случае, но уже пахнет.
А можно сделать так что бы инжектились Observable<ApiClient> и Observable<Dao>, во-первых не будет тормозов когда это все создается, а во-вторых можно сделать так:
apiClientObs.flatMap(client::.getResults).zipWith(daoObs, (results, dao) -> dao.save(results))
Аноним 20/08/17 Вск 21:49:48  1047653
>>1047649
Хмм, ну вроде я понял о чём ты. Никогда бы не подумал даже инжектить обсервабл для апиклиента. Надо будет попробовать.
Аноним 20/08/17 Вск 21:55:22  1047659
>>1047649
Окей, а если мне нужно отправить запрос А, получить ответ, если в ответе ошибка, то отправить запрос Б и если запрос Б пришёл без ошибки снова отправить запрос А, но с параметром из запроса Б?
Аноним 20/08/17 Вск 21:57:18  1047661
>>1047659
>из ответа запроса Б
Аноним 20/08/17 Вск 22:04:58  1047668
>>1047440
Вроде того. Openstreetmap представляют только данные. Дальше нужно их отрендерить. Обычно есть тайловый сервер, который их рендерит. Это может быть сторонний какой-нибудь, а можно самому поднять. С mapView идут запросы к тайловому серверу, он возвращает картинки.

Второй вариант - рисовать сразу на устройстве в векторе. Так работает maps.me или osmand.
Аноним 20/08/17 Вск 22:20:15  1047679
>>1047659
Если совсем не заморачиваться с publish или connect, то можно так:
Observable<Params> paramsObs;//Observable/.just(params) например
Observable<Result> resultObs = apiObservable.zipWith(paramsObs, (api, params) -> api.doRequestA(params)).share();
Disposable normalSub = resultObs.filter(result::isSuccessful).subscribe(this::processA);
Disposable fallbackSub = resultObs.filter(result -> !result.isSuccessful())
.flatMap(apiObs)
.flatMap(api::doRequestB, Pair::new)
.flatMap(pair -> pair.first.doRequestA(pair.second.params))
.subscribe(this::processA)

Конечно с парой не очень красиво, но это можно опять же заменить на zipWith(apiObs, ...)
Аноним 20/08/17 Вск 22:53:00  1047696
>>1047679
Окей, спасибо.
Аноним 21/08/17 Пнд 02:44:08  1047767
>>1047668
Да, разобрался. В есть йоба загрузчик кеша (CacheManager), просто указывается нужный тайловый сервер(тайсурс), баундинг бокс и zoom уровни. Можно еще ручками нарезать этих кешей и засунуть куда надо. Хотя почему-то дефолтная папка с кешами не меняется. Пробовал и Configuration.getInstance().osmdroidBasePath и tile cache. Один хуй в других папках не подхватывает. Хз, может ночью туплю.
>рисовать сразу на устройстве в векторе. Так работает maps.me
Я так и понял. Уж больно у них маленькие объемы данных для городов загружаются. Да и разные запросы к данным в проге можно делать, т.е. явно не голые картиночки.

Хотел бы я разобраться как они все это делают, но там у них какой-то кордкор на сях и jni. Сложновато для меня.
Аноним 21/08/17 Пнд 08:10:54  1047796
>>1047679
Это так теперь выглядит код на жабе? Пиздец, ебтваюмать.
Аноним 21/08/17 Пнд 08:48:33  1047800
>>1047796
Что тебя смутило? один динозавр ынтырпрайза примерно так же выразился
Аноним 21/08/17 Пнд 13:41:17  1047867
Поясните за xamarin. Я же могу без задней мысли использовать все классы стандартной библиотеки? Или нужно использовать биндинги андроида? Что-то не понимаю, этой инфы нигде нет.
Аноним 21/08/17 Пнд 14:04:36  1047880
>>1047061
Бамп вопросу
Аноним 21/08/17 Пнд 14:17:51  1047886
>>1047867
Бамп вопросу, расскажите за замарин.
Аноним 21/08/17 Пнд 14:55:36  1047905
>>1047886
Видимо никто не пользуется, что странно. Как можно продолжать жрать жабье говно, когда есть божественный C#
Аноним 21/08/17 Пнд 15:17:44  1047911
>>1047905
Как можно жрать майкрософтозамариноговно, если есть нативный фреймворк и котлин?
Аноним 21/08/17 Пнд 15:49:28  1047917
>>1047886
Замарин это и есть биндинги android библиотек на C#. Все классы доступны, названия методов идентичны тем, что в жаве.
Аноним 21/08/17 Пнд 15:57:14  1047923
>>1047911
>котлин
ой лол
Странно, что ты не упомянул REACT NATIVE
Буду есть говно, но никогда не признаю что в майкрософт работают лучшие софтверные инженеры. Никогда не понимал этой упертости некоторых людей.

>>1047917
Ты не понел. Вот например, я создам вебреквест или FileStream. Он будет работать в андроиде как я этого ожидаю или нет. Как вообще моно там прикручен, это типа просто моно для линукса или что, там же наверняка в андроиде есть какие-то различия, где это можно почитать
Аноним 21/08/17 Пнд 16:11:08  1047933
>>1047923
при чем тут реакт? Ты про Леночку, лол?
Аноним 21/08/17 Пнд 16:27:49  1047941
>>1047923
>майкрософт работают лучшие софтверные инженеры
Если у вас такие крутые продукты, то почему ими никто не пользуется? Шамх и мат спермобляди.
Аноним 21/08/17 Пнд 16:30:57  1047944
>>1047923
>Странно, что ты не упомянул REACT NATIVE
>Буду есть говно, но никогда не признаю что в майкрософт работают лучшие софтверные инженеры. Никогда не понимал этой упертости некоторых людей.
Ты ведь не очень умный, да?
Оставим толстоту про "лучших индософтваринжинеров".
Но каким боком ты вообще приплел реакт найтив? Судя ответу ты не очень понимаешь как вообще все это работает, так хуле ты выебываешься, если у тебя даже не хватит знаний понять стоит перед тобой лучший софтвар инжинер или эникей-обрыган?

Основной фрейворк андройда написан на яве т.е. всякие высокоуровневые вещи типа фрагментов, активити, вьюх, активити менеджеров и т.д.
Замарин просто биндит все это на сишарп и тянет дополнительно свой рантайм. И как ты не выебывайся своим шарпом, сверх того что позволяет ява ты не сделаешь т.к. в конечном итоге вся хуйня с фреймворка крутиться на jvm.

А теперь поясняй чем плох котлин? Не ололо, гавно от джетброент, а аргументированно и по пунктам.
Аноним 21/08/17 Пнд 16:37:18  1047946
>>1047944
>а аргументированно и по пунктам
Каких пунктов ты ждешь от спермопетуха? Он скажет в духе: "Ну ита абертка над джавая и ваабще ни как в сисярпе бггг"
Аноним 21/08/17 Пнд 16:57:29  1047958
>>1047944
>А теперь поясняй чем плох котлин?
Тем, что это очередной мертворожденный МОДНЫЙ)) велосипед от васянов. То, что понравилось васяну из jetbrains он добавил, а то, что не понравилось выкинул.

Если уж вам так чего-то не хватает в жаве, почему не сделать какую-нибудь супежаву, как, например, сделали майкрософт с typescript'ом - отличный язык, никто ничего не говорит плохого. Зачем придумывать заново все эти fun))))? ЧСВ заиграло?

Я о котлин не шкварился, и не могу ничего сказать. По пунктам почему kotlin говно можешь почитать в гугле. Например https://kukuruku.co/post/why-kotlin-sucks/
Аноним 21/08/17 Пнд 17:21:44  1047981
>>1047958
>Не читал, но осуждаю
Лол, как я и думал.

https://kukuruku.co/post/why-kotlin-sucks/
Статья - хуйнище полное, для таки вот мимонеписавших, от таких же мимотрихеллоувордаписавших.
Аноним 21/08/17 Пнд 17:29:43  1047994
Кстати, постоянно забавляет что идейные спермопетухи всегда уверены что у майкрософт все сделано лучше, краше и профессиональнее, хотя как правило ничего другого чтобы сравить не юзали(не хотят шкватиться), а все знакомство с другими платформами\технологиями заканчивается статьями вроде "why .net better than jvm".
В то время как у джавабогов/сибогов/плюсобогов обычно гораздо шире кругозор и они всегда могут без идеологического хуеплетства пояснить чем та или иная хуитка лучше другой хуитки, а чем хуже.
Мне было бы интересно узнать как происходит превращение в майкрософтораба. Эту загадку человечеству еще предстоит разгадать.
Аноним 21/08/17 Пнд 18:14:27  1048036
>>1047994
предлагаю тебе на досуге почитать про sdk и API для виндовсфонов приложений. в терминах инженеринга, это как феррари и ваз.
Я конечно понимаю, что в гугле квоты и API пишут негры-трансексуалы, но блять. Нормальным же людям с этим работать.
Аноним 21/08/17 Пнд 18:17:50  1048038
>>1047981
Мне не нужно это читать, чтобы понимать. Я своим опытным взглядом оценил и понял, что это очередная инфантильная забава не стоящая в нее инвестиций. Намешали какой-то неюзабельной хуйни, с какого-то хуя перепасили весь синтаксис с нуля. Учите блять!
Так серьезные люди не поступают. В этом jetbrains какие-то клоуны работают
Аноним 21/08/17 Пнд 18:59:05  1048055
>>1047286
наложить градиент на текст
Аноним 21/08/17 Пнд 19:07:19  1048062
>>1048038
Какие нахрен инвестиции? Прочитал 100 страничную документацию и все. Там нечего учить, если ты не вкатывальщик в ойти.

>>1048036
Маневры пошли. Про хорошесть апи и инструментария разработки на андройд я ничего не писал. Он то как раз, на мой взгляд очень хуевый. Но и это можно понять только попробовав что-то другое, в моем случае ios.
Ну и конечно win32api и исходники xp в терминах инжинеринга и впрямь как феррари и ваз по сравнению с исходниками и api андройда. Андройд - феррари, уточню на всякий, а то мало ли.
Аноним 21/08/17 Пнд 19:40:08  1048072
>>1048062
прочитав 100-страничную документацию ты напишешь только hello world по туториалам. Чтобы нормально писать на языке и понимать его особенности, нужно в нем долго ковыряться.

>в моем случае ios
это ты еще UWP не видел. Это сам боженька сошел с небес и поведал майкрософт как нужно сделать
Аноним 21/08/17 Пнд 20:20:54  1048098
>>1048072
>прочитав 100-страничную документацию ты напишешь только hello world по туториалам. Чтобы нормально писать на языке и понимать его особенности, нужно в нем долго ковыряться.
Если ты знаешь платформу JVM - нет. Натурально взял и пишешь.
Аноним 21/08/17 Пнд 20:33:06  1048106
>>1048072
>Чтобы нормально писать на языке и понимать его особенности, нужно в нем долго ковыряться.
Кардинальных нововведений там нет, если ты знаешь любой оо язык со статической типизацией, то перейти на любой другой оо язык со статической типизацией дело гугления как та или иная фича\концепция делается в новом языке.

>это ты еще UWP не видел. Это сам боженька сошел с небес и поведал майкрософт как нужно сделать
Мне так знакомый макрософтоеб win32api лет десять назад посоветовал для гуев, когда я вкатывался, почти с такой же формулировкой. И я был уверен что так оно и есть, пока не попробовал нормальные вещи вроде qt, а потом и андроида. Так что иди ты нахуй. Слушать советы от майкрософтоебов хорошо если ты такой же зашореный майкроеб. Пройдет 2-5 лет, майки придумают еще какую-нибудь "прорывную" хуитку и будут на всех сайтах писать что сам боженька написал, а про UWP, WPF и прочую парашу все забудут, как это происходит уже давно с каждой их хм-кхм "технологией".
Аноним 21/08/17 Пнд 21:53:08  1048174
>>1048106
>Пройдет 2-5 лет, майки придумают еще какую-нибудь "прорывную" хуитку и будут на всех сайтах писать что сам боженька написал, а про UWP, WPF и прочую парашу все забудут, как это происходит уже давно с каждой их хм-кхм "технологией".

http://russian.joelonsoftware.com/Articles/FireAndMotion.html
Аноним 21/08/17 Пнд 22:05:36  1048185
>>1048106
>про UWP, WPF и прочую парашу все забудут, как это происходит уже давно с каждой их хм-кхм "технологией".
И это хорошо. Когда караван поворачивает назад, впереди всех оказывается хромой верблюд. То, что сейчас виндовсфоны непопулярны, заставлят МС искать новые решения. Когда ты лет через 5 вместо комьпютера будешь использовать свой телефон с андроидом, никто не вспомнит что именно майкрософт были пионерами в этом (континуум).
Так всегда. Майкрософт сеит охуенные технологии опережающие время, а потом остальные собирают урожай.
Аноним 21/08/17 Пнд 22:08:23  1048187
>>1048185
То-то майкрасофт джаву посеял...
Аноним 22/08/17 Втр 01:15:25  1048350
>>1048187
Все, к чему прикасается майкрософт превращается в парашу. Увы, джаву в свое время эта учесть не избежала.
Аноним 22/08/17 Втр 07:11:20  1048419
>>1048350
В том-то и дело, что Майкрософт сделал своюнитакуюкафсе джаву.
Аноним 22/08/17 Втр 16:02:55  1048691
Нормально ли вызывать методы активити из фрагмента? Или есть какие-нибудь другие варианты? Например у меня есть активити и в нём три фрагмента сменяющие друг-друга. В каждом фрагменте нужно заполнить какую-то инфу, и вся эта инфа аккумулируется в активити, а заполняется она вызовами активити методов из фрагментов. Нормальна ли такая схема?
Аноним 22/08/17 Втр 16:04:25  1048693
>>1048691
очень хуёво, но если делаешь какой то пет проджект, то похуй
Аноним 22/08/17 Втр 16:05:37  1048695
>>1048693
А как лучше тогда? Через броадкасты? Через ивентбас?
Аноним 22/08/17 Втр 16:18:07  1048706
>>1048695
через репозиторий
Аноним 22/08/17 Втр 16:19:42  1048707
>>1048706
То есть записать куда-нибудь в бд и потом оттуда прочитать?
Аноним 22/08/17 Втр 16:22:13  1048710
>>1048707
Можно не записывать в бд, если не надо, а в памяти хранить
Аноним 22/08/17 Втр 16:23:26  1048712
>>1048710
Окей, понял.
Аноним 22/08/17 Втр 16:33:35  1048718
>>1048710
А если идел вызов метода, который отображает другой фрагмент и в этот фрагмент передается только айдишники нужных данных, это не зашквар?
Как вообще лучше всего делать роутинг если несколько 3-5 фрагментов, которыми управляет одна активити?

Мимохуй
Аноним 22/08/17 Втр 18:46:43  1048766
>>1048691
Абсолютно нормально. Только не напрямую методы активити дергай, а через интерфейс. Проверяй в onAttachActivity, что активити, к которой прикрепляется фрагмент, действительно реализует этот интерфейс.
Аноним 22/08/17 Втр 18:54:48  1048770
>>1048766
>Проверяй в onAttachActivity, что активити, к которой прикрепляется фрагмент, действительно реализует этот интерфейс.
В смысле? Типа ассерт делать чтоб случайно не тот фрагмент не подключить? Или там какая-то другая причина?
Аноним 22/08/17 Втр 20:29:02  1048810
>>1048766
Сразу видно васяна
Аноним 23/08/17 Срд 00:01:58  1049015
>>1048718
через роутер, есть либа cicerone, но я ее не юзал
Аноним 23/08/17 Срд 16:24:12  1049513
Вкатываюсь в андройд с явы, и нихуя не понимаю, что это за ошибка?
> Error:(23, 24) Failed to resolve: com.android.support.test.espresso:espresso-core:2.2.2
> <a href="install.m2.repo">Install Repository and sync project</a><br><a href="openFile:C:/Users/hp/AndroidStudioProjects/Catalog/app/build.gradle">Show in File</a><br><a href="open.dependency.in.project.structure">Show in Project Structure dialog</a>

Решить-то решил, но теперь в новом проекте снова оно. Что это и откуда?
Аноним 23/08/17 Срд 18:31:37  1049594
>>1049513
Ты знаешь что такое система сборки? Ты умеешь читать ошибки?
Ращберу по частям:
Failed to resolve: com.android.support.test.espresso:espresso-core:2.2.2 - система не нашала данную зависимость
Install Repository and sync project - установи репозиторий (не очень понятное объясненние, но есть только один репозиторий который - саапортный, открой из студии сдк менеджер и установи что надо, или удали зависимость)
Аноним 25/08/17 Птн 02:29:33  1050559
Как приплетать mvp если у меня в фрагменте viewPager?
Pager работает как фильтр т.е. каждая вкладка - это итемы одинаковой категории. Нужно ли выносить его логику в контракт т.е. делать в интерфейсе mvpView методы типа showAllItems, showGovnoItems(), showMochaItems(), а в presenter allTypesClicked(), govnoTypesClicked, mochaTypesClicked() и выносить события из pagerAdapter или все это пускай остается внутри viewPagerа?
Аноним 25/08/17 Птн 03:31:45  1050573
>>1050559
Зависит от того, что тебе надо делать с ними. Если у тебя есть логика взаимодействия вкладок между собой, и остальным экраном - нужно хэндлить события извне.
Аноним 25/08/17 Птн 03:42:04  1050575
>>1048810
Сразу видно долбоёба.
Юзанёшь эвентбасец -> фрагмент будет слишком сильно отвязан от активити, придёт васян и сунет его в другую, потом очень долго копать говно, и почему не работает.
Репозиторий - очевидный оверинжиниринг, если у тебя ни один фрагмент не содержит своей внутренней логики похождений на сервер

В случае, когда у тебя фрагмент играет роль элемента вьюхи - нужно пилить newInstance с интерфейсом
Аноним 25/08/17 Птн 12:20:29  1050677
>>1050575
иди пили свои пет проджекты, а когда у тебя будет реальный проект с поддержкой планшетов, где все разьедется хуй знает как, тогда поговорим
Аноним 25/08/17 Птн 20:21:48  1050945
>>1050573
Ну вкладки между собой не взаимодействуют, при нажатии открывается другой фрагмент с детальной информацией айтема.
Аноним 25/08/17 Птн 21:57:22  1051001
>>1048691
> Нормально ли вызывать методы активити из фрагмента?
Нормально, но в твоем случае нет. Очевидно, что у тебя идет работа данными, а значит кидай в дата слой. Нормально вызывать, когда тебе нужно что-то с активити сделать в качестве вью: коллапсинг лэйаут там отключить, экшнбару тайтл задать и прочее подобное.
Аноним 26/08/17 Суб 03:56:44  1051094
>>1050677
Вася, в чём твоя проблема?
1) Не можешь сверстать макет для планшета с парой контейнеров?
2) Не можешь продумать, что у тебя при любой ориентации можно спокойно держать несколько фрагментов в активити, а как их показывать - вопрос ориентации?

Нет, конечно - на реальном проекте нужны только активити-пустышки-контейнеры для фрагментиков. Что твой фрагмент должен делать, если его вызвали не из того места, и в репозитории нихуя нет? Как на "реальном проекте" откатываешь репу при возврате на предыдущий фрагмент?
Аноним 26/08/17 Суб 13:04:18  1051221
Как запилить кастомный шрифт во всем приложении? Чтоб не только TextView, а везде, чтоб для всех элементов не прописывать вручную.
Аноним 26/08/17 Суб 18:09:59  1051365
1234.png (57Кб, 1138x830)
>>1047530
Wew lad. Шесть дней ушло на то чтобы это переписать. Вроде даже работает.
Аноним 26/08/17 Суб 18:31:09  1051385
>>1051365
Ну вот, это уже хотя бы читается.
Аноним 26/08/17 Суб 19:26:47  1051427
>>1051221
> для всех
Это каких? Calligraphy например.
Аноним 26/08/17 Суб 20:12:04  1051474
>>1051427
Я думаю он еще и про менюшки. В них каллигарфия вроде не влезет сама.
Аноним 26/08/17 Суб 21:10:35  1051502
Аноны, а можно ли сделать приложение, чисто под один сайт?
К примеру, при закрытии сайта в браузере происходит выход из аккаунта на сайте. Наверняка в приложении такого бы не было.
Аноним 26/08/17 Суб 21:22:52  1051505
>>1051502
Чет непонятно чего ты хочешь.
Аноним 26/08/17 Суб 21:24:56  1051506
>>1051505
Приложение-браузер, грубо говоря
Но под один сайт
Аноним 26/08/17 Суб 22:01:12  1051530
>>1051506
Ну можешь сделать конечно. Берешь webvie и раз-раз. Но это тупо, так как просираются все плюсы браузера И все плюсы приложухи нативной.
Аноним 26/08/17 Суб 22:03:27  1051532
>>1051530
> Ну можешь сделать конечно,
Мне бы найти того, у кого эта вся ебала развернута на машине, и который за спасибо сделает два телодвижения. Если не найду, то на досуге попробую сам сделать.
Аноним 26/08/17 Суб 22:31:50  1051568
>>1051532
поссал на тебя за спасибо
Аноним 27/08/17 Вск 00:51:49  1051673
>>1051502
Да, можно.
Приложение вк, фейсбука это и есть приложения под один сайт. Нативные они потому что используют не html странички сайта, а андройд компоненты типа кнопок, листов и т.д. Тебе нужен нормальный rest api к сайту, если сайт генерит странички на сервере то угадай кто сосет.
Конечн можно сделать отдельный вебвью в отдельном приложении специально для сайта, но это какая-то дичь и бессмыслица.
Ну и на два телодвижения даже не расчитывай.
Аноним 27/08/17 Вск 00:55:28  1051675
>>1051673
> Ну и на два телодвижения даже не расчитывай.
Вот обидно то!
И да, я имел ввиду что-то типо
> Конечн можно сделать отдельный вебвью в отдельном приложении специально для сайта, но это какая-то дичь и бессмыслица.
Аноним 27/08/17 Вск 02:26:26  1051693
>>1051675
А в чем смысл такого решения? Я как-то не улавливаю.
Аноним 27/08/17 Вск 10:33:21  1051823
Суть такова. Я люблю обмазываться вёрсткой по гидлайнам и дрочить. Так вот есть один ебаный SearchView, который добавляется в Toolbar в onCreateOptionsMenu. Этот сречьвью когда в активном состоянии выбивается из сетки аж на целых 16dp.
Т.е. у нас есть тайтл в тулбаре который от левой границы экрана находится в 72dp, а ебучая граница начала поля ввода у сречьвью в 88dp! Что пидорасит всю хуйню! Кто знает как победить? Кастомно пихать серчвю в тулбар не хочу.
Аноним 27/08/17 Вск 11:13:28  1051837
>>1051823
Ладно, похуй. Наследовался от серчвю и хакнул его.
Сука, ну что за костыли. Почему нельзя было по человечески сделать?
Аноним 27/08/17 Вск 14:02:28  1051948
>>1051837
потому что серчвью юзают только петухи
Аноним 27/08/17 Вск 14:21:15  1051959
>>1051948
а что юзают не петухи?
Аноним 27/08/17 Вск 14:37:35  1051969
>>1051959
edittext и все анимации делаешь сам
Аноним 27/08/17 Вск 14:41:52  1051973
>>1051969
питушиная работа какая то
Аноним 27/08/17 Вск 14:53:04  1051984
>>1051973
Тебе дали свободу, не хочу, хочу жрать говно!
Аноним 27/08/17 Вск 15:08:44  1051994
>>1051984
Я ж русский.
Аноним 27/08/17 Вск 15:19:33  1052007
>>1051994
Тогда вот твоя бутылка.
Аноним 27/08/17 Вск 15:27:20  1052013
>>1052007
Присел.
Аноним 27/08/17 Вск 17:54:34  1052137
>>1051365
Всё-таки рано я обрадовался. Теперь постоянно откуда-то берётся onComplete ивент из-за которого PublishSubject перестаёт принимать обсерваблы. Хуй вообще знает откуда он берётся и чё с этим делать. Сделал аналог, чтоб потестить - https://pastebin.com/QCCuJ22k

Если в sendRequest передавать GOOD_SESSION_ID, то всё ок, onNext в responseSubject вызывается. Однако, если поменять GOOD_SESSION_ID на BAD_SESSION_ID, то в таком случае после sendRequest сразу откуда-то берётся onComplete. Вот откуда он берётся и как это пофиксить, может кто подскажет?
Аноним 27/08/17 Вск 21:38:38  1052256
>>1052137
Список итемов что ты эмитишь закончился, чего ты ожидал?
Аноним 27/08/17 Вск 21:57:35  1052267
>>1052256
Но почему тогда оно работает с GOOD_SESSION_ID?
Аноним 27/08/17 Вск 22:07:38  1052271
123.png (7Кб, 482x191)
>>1052267
Аноним 27/08/17 Вск 22:55:45  1052297
123.png (9Кб, 731x207)
>>1052137
Окей, кажется нашёл, что вызывает onComplete. Observable.toList()
Теперь, по идее, осталось переписать без использования toList() или любого другого оператора который вызывает onComplete. Возникает вопрос - может есть какой-то оператор для фильтрации ивента onComplete?
Аноним 28/08/17 Пнд 02:53:07  1052365
Котаны, спасайте, затрахался уже с Bluetooth Classic.
Все детали тут: https://stackoverflow.com/questions/45909990/bluetoothsocketconnect-is-locking-the-thread-and-throwing-ioexception-after-whi

Вкратце проблема: что бы я не делал и как бы не ебался - BluetoothSocket#connect() всегда выкидывает такое говно:

java.io.IOException: read failed, socket might closed or timeout, read ret: -1
W/System.err: at android.bluetooth.BluetoothSocket.readAll(BluetoothSocket.java:581)
W/System.err: at android.bluetooth.BluetoothSocket.waitSocketSignal(BluetoothSocket.java:558)
W/System.err: at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:374)

Дедлайн очень и ОЧЕНЬ скоро, а этот проебос мне портит всю жизнь (ога, без подключения то функционал не протестировать особо...). Буду признателен за любую наводку на причину проблемы.
Аноним 28/08/17 Пнд 02:53:37  1052366
>>1052365
p.s. Ебаный блютус, ненавижу, блять, ебаный блютус.
Аноним 28/08/17 Пнд 03:44:53  1052415
>>1052366
Закрыто, девайс не поддерживает Bluetooth Classic с вероятностью 99%
Аноним 28/08/17 Пнд 07:47:01  1052453
Сап программач веб программист с большим стажем, вкатываюсь в ондройд. В связи с этим тупые вопросы:

Вот у меня есть drawlerLayout у него внутри инклудится @layout/app_bar внутри app_bar инклудится @layout/content_main

Дык вот я нажимаю пункт меню в этом самом дравлере и хочу чтобы вместо content_main заинклудилось что то другое.
Как мне это сделать ?
Я могу использовать
setContentView();
но тогда мне придется продублировать @layout/app_bar и корневой drawlerLayout, а я же не совсем дурак понимаю что это плохо.
Аноним 28/08/17 Пнд 08:56:47  1052458
>>1052453
Классчиеский подход в данном случае не икнлюдить мейн контент, сделать там контейнер для фрагментов, и уже их по нажатию менять.
Аноним 28/08/17 Пнд 11:14:13  1052493
>>1052458
Дык вот а как их менять?
Аноним 28/08/17 Пнд 12:22:01  1052518
>>1052493
через FragmentManager, ты бы хоть доку чуть почитал, ну.
Аноним 28/08/17 Пнд 12:26:50  1052522
>>1052518
нет я же и так дохуя умный
Давай ссылку на доку
Аноним 28/08/17 Пнд 12:32:42  1052526
>>1052522
пошел нахуй, долбаеб
Аноним 28/08/17 Пнд 14:53:31  1052611
>>1052297
Разобрался. В общем помогла либа RxRelay.
Apollo Graphql Аноним 28/08/17 Пнд 18:46:39  1052762
Есть ли кто использовал Apollo Android в своих проектах? Нужна помощь в использовании данной библиотеки. Нужно разобраться, как составить файл scheme.json и как его применить. В официальной документации представлена неясная для меня инструкция по созданию необходимого файла.
Аноним 28/08/17 Пнд 19:57:34  1052809
Хочу сделать кастомизацию цветов некоторых элементов интерфейса в настройках приложения. Как это лучше всего сделать? Первое что приходит в голову - это сохранять цвет в преференсес и вместо ContextCompat.getColor() брать из преферес, но не будет ли тут проеб в производительности?
Аноним 28/08/17 Пнд 20:11:10  1052830
>>1052611
естественно, нахуй вникать в суть, можно же либу подключить, которая потом за этот баг еще 10 выдаст.
Аноним 28/08/17 Пнд 20:23:27  1052836
>>1052809
Не будет, но будет неудобно.
Попробуй https://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes
https://stackoverflow.com/questions/3083627/android-reference-the-value-of-an-attribute-in-the-currently-applied-theme-fro/3679026#3679026
Аноним 28/08/17 Пнд 21:13:08  1052872
123.png (50Кб, 1308x802)
>>1052830
Нет, всё-таки обошёлся без либ.
Аноним 28/08/17 Пнд 21:14:41  1052874
>>1052872
Нахуй тебе мерджить первый и второй attempt? Мне чет подсказывает, что ты не вкуриваешь, как это работает.
Аноним 28/08/17 Пнд 21:17:17  1052881
>>1052874
Ну это два разных реквеста (название переменно не поменял прост), но результат будет всего один - либо сразу ErrorCode.OK, либо сначала ErrorCode.BAD_SESSION_ID, затем релогин, вторая отправка запроса, и потом в 99% случаев ErrorCode.OK. Как мне их ещё в один объединить?
Аноним 28/08/17 Пнд 21:18:11  1052882
>>1052881
То есть в конкретно данном случае requestFirstAttempt будет пустой.
Аноним 28/08/17 Пнд 21:19:14  1052887
>>1052881
Лови вот такой псевдокод, думаю, поймешь в чем проблема твоего.

flatMap(req1 -> when {
req1.isSuccessful -> Observable.just(req1)
else -> req2Observable
})
Аноним 28/08/17 Пнд 21:20:24  1052889
>>1052882
А, посмотрел твой код. Это тест что-ли ?)
Аноним 28/08/17 Пнд 21:21:04  1052894
>>1052889
Ну, конкретно этот кусок кода да, это тест переписанный с реального кода.
Аноним 28/08/17 Пнд 21:22:21  1052898
>>1052894
Вот полный код, если кому интересно - https://pastebin.com/3sAqFJg5
Аноним 29/08/17 Втр 20:59:59  1053521
>>1052836
Так это же просто програмный доступ к атрибутам темы, а мне надо чтобы пользователь мог установить свой цвет в настроечках(транспортная прога и в зависимости от типа выбранного транспорта меняются цвета интерфейса, я хочу чтобы пользователь мог менять цвета типов транспортов: троллейбус, автобус и т.д.). Темы я поэтому не использую. Дефолтный айдишник цвета захардкожен в энуме типов транспорта, пока придумал делать что-то типа синглтон прокси класса Colors. Который в onCreate в аппликейшн загружает все переопределенные и дефолтные цвета и отдает переопределенный цвет, если он есть, или дефолтный. А везде где берется цвет транспорта использовать getColor этого класса. Но я не знаю насколько это зашквар. Впрочем каждый раз брать из преференсов думаю было бы еще зашкварнее
Аноним 29/08/17 Втр 23:00:35  1053659
>>1052809
Не будет. У тебя префы грузятся в память полностью и доступ по ключу к мапе.
Аноним 30/08/17 Срд 00:30:25  1053733
>>1053659
> У тебя префы грузятся в память полностью и доступ по ключу к мапе.
Вот этого не знал, спасибо.
Аноним 31/08/17 Чтв 12:20:15  1054666
Что то какой-то вялый тред.
Аноним 31/08/17 Чтв 12:38:02  1054670
Гайз, посоветуйте дауну - как лучше сделать задержку в развитии в асинктаске и не положить основной поток? Обычный "тред.слип" ложит UI, а хандлер ругается, да и можно ли им в асинктаске шурудить?.
Сори за нубство.
Аноним 31/08/17 Чтв 12:47:03  1054675
>>1054670
не особо понял, но попробуй Thread.currentThread().join(1000)
Аноним 31/08/17 Чтв 12:48:44  1054678
Screen Shot 201[...].png (26Кб, 1036x70)
Screen Shot 201[...].png (83Кб, 974x530)
>>1054670
В смысле слип в асинк таске не рабоатет? Какая-то хрень.
Не верю короч. У меня все ок.
Аноним 31/08/17 Чтв 12:52:56  1054685
>>1054666
Еще бы.
https://stackoverflow.blog/2017/08/29/tale-two-industries-programming-languages-differ-wealthy-developing-countries/

https://stackoverflow.blog/2017/08/22/world-mobile-development/
>Android tended to be visited more from lower-income countries than from higher-income ones.
Аноним 31/08/17 Чтв 12:54:38  1054687
>>1054670
>Обычный "тред.слип" ложит UI,
Doing it wrong.
Код кидай живо, блять, щас тут убивать нахуй будем. В doinbackground надеюсь слип вызываешь? runInMainThread внутри используешь?
Аноним 31/08/17 Чтв 12:59:51  1054690
>>1054685
Я думал на гейос больше во всяких муриках разрабатывают, а тут воно оно как, даже рашка и казахи чаще вопросы по тегу гейос ищут.
Аноним 31/08/17 Чтв 13:30:12  1054712
>>1054687
Вот код, только не пиздите плз, правда не работает юи время исполнения.

https://pastebin.com/cWvPkpeY
Аноним 31/08/17 Чтв 14:40:07  1054768
Кто-нибудь работал с блютузом? А именно с bluetooth LE. Нужно как то подключиться к устройствам, что шлют адвертайз пакеты и их распарсить, я чет вообще не могу сообразить как это сделать. Помогите пожалуйста.
Аноним 31/08/17 Чтв 14:57:50  1054782
Антуаны, наверняка ведь есть онлайновые сервисы, которые позволяют потестить свою приложуху на разных железках и осях. Кто пользовался, посоветуйте, плиз. А то меня терзают смутные сомнения насчёт производительности моей нативной либы.
Аноним 31/08/17 Чтв 15:58:42  1054852
>>1054782
https://firebase.google.com/docs/test-lab/
Аноним 31/08/17 Чтв 16:34:41  1054873
asyncget.png (8Кб, 582x235)
>>1054687
>>1054678
>>1054675
Я понял где налюбился.
Гетом пытался получить данные из класса. Как лучше будет получить их?
Аноним 31/08/17 Чтв 16:57:41  1054897
Андроны, в 2017 году как лучше делать разметку для этого пиздец какого огромного кол-ва разных ебанных экранов?
layout-mdpi, hdpi, xxdpi? Так я больше экранов охвачу?
Аноним 31/08/17 Чтв 16:58:04  1054898
>>1054873
сделай нужное поле публичным и получай сколько влезет.
а вообще, ты доки асинктаска читал? где онПостЭкзикьют метод?
и ещё, ты пытаешься получить данные в ui треде, которые обновляются в бэкграунд треде, не думал что это обновление занимает время? и что ui тред когда запросит нужные ему данные обосрется? т.к. там ещё нихуя не будет записано. кароче вам двойка, переделывайте
Аноним 31/08/17 Чтв 16:59:29  1054900
>>1054897
всмысле, ты просто рисуешь всё в денсети индепендент размерах и тебе похуй какой там экран
Аноним 31/08/17 Чтв 17:09:15  1054903
>>1054873
Ебать дичь, иди разбирайся что такое асинхронный вызов и как работает многопоточность.
У тебя в postExecute асинктаск должен делать все, что ты сейчас пытаешься сделать в try потому что когда ты вызываешь execute твой код выполняется в другом потоке и закончит через некоторое время, после чего будет вызов функции onPostExecute в главном(ui) потоке, в котором ты сможешь обновить кекстВью своими охуительными историями.
Аноним 31/08/17 Чтв 17:10:15  1054904
>>1054897
V E C T O R D R A W A B L E
Аноним 31/08/17 Чтв 19:49:36  1055008
>>1054897
Выбирай лэйут по ситуации, шоб все тянулось можно использовать ConstraintLayout, это аналог гейосовского AutoLayout.
Аноним 31/08/17 Чтв 23:52:27  1055201
381 (37).jpg (620Кб, 1680x1050)
Посаны, а есть ли какой-то способ сделать radiobutton c autofit текстом? Для своих textview использовал левую библиотеку, а вот для радиобатанов такого не нашел.
Ситуация такова, есть четыре кнопки с определенной высотой, в них передается текст разной длинны, и в некоторые кнопки он не помещается. Хуита.
Аноним 01/09/17 Птн 11:55:36  1055436
Сап, есть инт обернутый в ЛайвДату. Нужно привязать к нему рх что бы после того как значение не изменялость три секунду емитить его дальше. Как это запилить? Вроде debounce нужен,правильно?
Аноним 01/09/17 Птн 12:47:16  1055468
Анон, вопрос.
Мне надо, чтобы приложение переводило определенную сумму денег с карты одного пользователя на карту другого. In-app billing по этой причине использовать не получится. Есть ли какая-нибудь либа для этого? (Опционально: как ее сдружить с Firebase\Backendless?)
Аноним 01/09/17 Птн 19:17:16  1055697
Вкатываюсь с Qt в андроид разработку. Есть ли между ними какие-нибудь параллели? Что есть почитать/посмотреть для не совсем начинающих?
Аноним 01/09/17 Птн 19:36:49  1055712
Программирую интернет магаз.
Как сделать лучше загрузить сразу с сервака весь каталог товаров около 4к штук при загрузке приложения или загружать товары и категории последовательно при их открытии?
Аноним 01/09/17 Птн 19:45:21  1055717
>>1055201
>Посаны, а есть ли какой-то способ сделать radiobutton c autofit текстом
Чиво блять? В последней сапорт либе есть автосайз для текствью. https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview.html#setting-textview-autosize

>>1055436
Ну типа, debounce ждет 3 секунды, и если нового не пришло пробрасывает дальше, иначе ждет еще.

>>1055468
Какая-то ебала странная, кто тебе даст с карты на карту переводить-то? Этим банки занимаются.

>>1055697
Формошлепстов везде в той или иной степени одинаковое. MVC/MVP/MVVM и ты гуд ту гоу, читать доку: https://developer.android.com/index.html

>>1055712
>при их открытии?
Это. Желательно кешировать на некоторое время.
Аноним 01/09/17 Птн 23:53:03  1055945
yXfE5Fn4.jpg (54Кб, 489x489)
>>1055717
>Чиво блять?
Есть radiobutton с определенной высотой, и есть текст который висит на этом радиобатоне который не влезает на сам батон, а уходит за него.
Спасибо за наводку, но эта хуита для 26-го апи, они ебанулись совсем, такую простую фичу не добавить раньше и для старых апи.
Нашел такую ебань для textview https://github.com/grantland/android-autofittextview . Но для радиобатона, не могу найти.

Вообщем подумав решил сделать через if, else.

> if (RadioButton1.getText().length() > 25) {
> RadioButton1.setTextSize(12);
> }
> else if (RadioButton1.getText().length() < 25) {
> RadioButton1.setTextSize(18);
> }

Теперь возникла другая проблема. Как определенные блоки кода заставить работать на разных Layout'ах? Допустим для xxhdpi, мне нужен больше текст чем для mdpi. Помоги Ананас
Аноним 02/09/17 Суб 00:55:33  1055963
>>1055945
Чукча писатель? Там написано что через сапорт либ это начиная с 14 можно сделать.
Ресурсы можешь указывать так же как лэйауты епт: values-mdpi/dmens.xml, values-xxxhdpi/dmens.xml....
Аноним 02/09/17 Суб 02:16:06  1055969
11231.jpg (48Кб, 635x224)
>>1055963
Спасибо за помощь няша. Пытаюсь заставить это дерьмо работать, но вот какого хуя нету нихуя этих методов ?
>TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType)
>TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)
Аноним 02/09/17 Суб 08:40:31  1055999
>>1055969
А либу-то обновил?
Аноним 02/09/17 Суб 13:39:57  1056083
Screen Shot 201[...].png (87Кб, 1216x202)
Screen Shot 201[...].png (85Кб, 1252x174)
>>1055969
>>1055999
Всем все находится. В какой-то из этих лежит (26.0.0).


Аноним 02/09/17 Суб 13:44:23  1056085
>>1056083
>1 пик
>Эта длина названия метода
А я думал, что про жабу так только шутят
мимо
Аноним 02/09/17 Суб 13:58:48  1056093
>>1056085
Ты еще спринга не видел.
Аноним 02/09/17 Суб 14:32:31  1056108
>>1056085

Шутят те, кто привык писать учебные скрипты по 20 строчек и со сложными системами не работал.
Аноним 02/09/17 Суб 17:08:24  1056184
>>1056085
То ли дело старые добрые strcpn, vssnprintf и mbstowcsI
Аноним 02/09/17 Суб 17:56:21  1056208
Хочу написать приложение с другом. Не подскажете как нам вместе его писать? Чем нужно пользоваться?
Аноним 02/09/17 Суб 18:12:19  1056217
>>1056208
https://www.youtube.com/watch?v=dYBjVTMUQY0
Аноним 02/09/17 Суб 18:24:50  1056225
есть 2 активити, один из них чайлд другого. это указано в манифесте, то есть кнопка назад появляется автоматически, но при нажатии на нее анимация идет не справа налево, а наоборот. при нажатии системной кнопки назад идет правильная анимация. почему так? и чтобы это починить обязательно писать свой xml с анимацией или есть встроенные?
Аноним 02/09/17 Суб 18:25:52  1056227
>>1056225
>идет не справа налево
наоборот, не слева направо.
Аноним 02/09/17 Суб 18:47:39  1056241
>>1056208
Главное яйца побрейте и клизму сделайте.
Аноним 02/09/17 Суб 19:19:50  1056265
>>1056225
какая кнопка назад появляется автоматически? кнопки обычно автоматически не появляются. а если ты хочешь сделать тоже самое что делает системная кнопка, то что тебе мешает вызывать тот же метод, что вызывается при нажатии на системную кнопку?
Аноним 02/09/17 Суб 19:23:08  1056267
в манифесте: android:parentActivityName=".MainActivity"
после этого сама по себе появляется кнопка назад в верхней панели (пикрелейтед)
>>1056265
ничего, просто интересно почему именно такое поведение
Аноним 02/09/17 Суб 19:46:55  1056272
>>1056267
ну да, для таких кнопок обычно руками анимацию прописывать надо, но там вроде не сложно, просто нужно указать откуда куда ехать
Аноним 02/09/17 Суб 22:07:49  1056297
i3zgCRf.jpg (58Кб, 480x640)
>>1056083
>>1055999
Спасибо Ананасы обновился. В support:support лежит.

Но не смог прикрепить ее к радиобатонам, просто напросто нихуя не происходит.
Делал вот так. Хуйня походу. Теперь ищу какое-то другое решение. Если ресурсы указывать через values-mdpi, это же будет тоже самое что я просто укажу размер шрифта в layout-mdpi? Нахуй мне тогда values создавать?

> TextViewCompat.setAutoSizeTextTypeWithDefaults(RadioButton1, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);

Аноним 03/09/17 Вск 02:10:20  1056351
>>1056085
МОЖЕТ СЕБЕ ПОЗВОЛИТЬ.
Нормальная иде покажет нужное автодополнение в 3-4 клика динамико\вимо\емаксопетухам такое и не снилось.
Аноним 03/09/17 Вск 16:18:54  1056577
>>1056297
>Нахуй мне тогда values создавать?
Что бы не делать layout-*, нахуй тебе повторять верстку ради размеров?
Аноним 03/09/17 Вск 22:45:40  1056826
212190522.jpg (191Кб, 1280x800)
Посоветуйте книгу по разработке приложений (не игр) на Java?
Аноним 03/09/17 Вск 23:48:58  1056850
uFprtvC.jpg (191Кб, 850x1028)
>>1056577
А чего повторять? Ну вот у меня допустим layout-mdpi, hdpi,xdpi,xxxdpi, хуйdpi и там в радиобатоне разного размера текст mdpi- 8, hdpi - 12 и так далее епт. И будет у меня value-mdpi допустим. Так там же я буду указывать размер шрифта 8 для моих батонов, так ведь? Так нахуя оно надо?
Я просто не верю что нету адекватного решения для такой простой проблемы как авто фиттинг под размер ебанной кнопки. Ну как так сука? Это же первое что надо было делать, при таком то количестве разрешений, размеров экранов, и прочей ебалы.
Аноним 04/09/17 Пнд 00:02:45  1056854
Двач, почему в нете так много статей про вложенные фрагменты в фрагменты во фрагментах внутри фрагмента и героическое преодоление их проблем, да и в целом вся эта возьня с фрагметами? Что такое может фрагмент, чего не может кастомный view?
Аноним 04/09/17 Пнд 14:28:06  1057008
SDP3qm1veaA.jpg (74Кб, 972x1296)
Есть ли какая-нибудь либа с вьюхой как на пикрил? При клике на центральный круг появляются все сстальные.
Аноним 04/09/17 Пнд 14:32:14  1057009
>>1057008
https://android-arsenal.com/details/1/5697
Аноним 04/09/17 Пнд 15:31:23  1057024
>>1057008
пиши свою реализацию уебок хотя о чем это я, ты же говнокодерок
Аноним 04/09/17 Пнд 17:16:03  1057079
Делаю toolbar вместо actionbar. До этого цвет иконок и текста в панели был белый, теперь черный. Стиль вроде бы тот же. Как эту хуйню покрасить в белый, ананасы?
Аноним 04/09/17 Пнд 17:20:18  1057082
>>1057079
все заработало, просто дизайнер не обновлялся
Аноним 04/09/17 Пнд 17:39:52  1057083
Посоны, подскажите как сделать толковую задержку отправки данных на сервер? Карячу все через HttpURLConnection, так вот setConnectionTimeout не робит.
Аноним 04/09/17 Пнд 17:44:28  1057085
>>1057083
Thread.sleep(5000);
Аноним 04/09/17 Пнд 17:54:39  1057089
>>1057085
А разве это не колхоз? И еще мне требует с довольно точной задержкой отправлять данные, а если ложить поток, то какой-то хуя вылезают расхождения во времени - записи в бд появляются в разный интервал времени, а не в заданный.
Аноним 04/09/17 Пнд 18:01:26  1057092
Screenshot2017-[...].png (26Кб, 543x201)
АНАНАСЫ, как мне обращаться к инклюженному лэйауту? То есть у меня есть toolbar в отдельном лэйауте, я его инклюжу как на пикрелейтед, а потом хочу, чтобы TextView через Constraint привязывалось к его низу. Как такое сделать?
Аноним 04/09/17 Пнд 18:14:40  1057097
пиздец ваш андроид параша по сравнению с qt. constraint layout единственная нормальная вещь.
Аноним 04/09/17 Пнд 18:53:25  1057116
>>1057092
Дай инклюду айдишник и используй его как обычно.
Аноним 04/09/17 Пнд 18:56:07  1057117
>>1057097
Ну так и писал бы приложения на Qt. А мы бы посмеялись с результата.
Аноним 04/09/17 Пнд 20:40:27  1057160
>>1057009
То что надо анон, спасибо.
>>1057024
Ну и чего рвешься? Написал бы, если бы не нашел. хотя о чем это я, ты же хейтящий школьник-мелкобуква
Аноним 04/09/17 Пнд 20:42:36  1057162
>>1057117
Maps.me
Аноним 05/09/17 Втр 10:01:39  1057329
>>1057089
HttpUrlConnection это колхоз
Аноним 05/09/17 Втр 10:02:22  1057331
>>1057092
>обращаться к инклюженному лэйауту
На "Вы"
Аноним 05/09/17 Втр 10:17:54  1057337
>>1057083
Используй rx, быдло
Аноним 05/09/17 Втр 10:58:51  1057356
Сап.
Пилю приложение для смартфонов 4.2+, которое должно взаимодействовать со смарт-браслетом, брать с него данные датчика сердцебиения и выводить на экран. Разобрался как делать блютус-соединение норм, подключаться к устройствам, etc., а вот как с браслетом взаимодействовать хз. Через UUID, по идее?..
Короче, если кто-то кинет чего почитать на эту тему, буду крайне признателен, потому что в гугле какая-то ебола только, а сдавать проект нужно уже завтра.
Аноним 05/09/17 Втр 10:59:19  1057357
>>1048695
Взаимодействие между фрагментом и активити идёт или через коллбэки, или (если у тебя нормальная архитектура) вообще через презентер на уровне "эвент на фрагменте" -> "обработка на презентере" -> "коллбэк с презентера в активити".
Аноним 05/09/17 Втр 11:03:31  1057361
>>1057356
Тащемта, никаких секретов нет, просто берёшь и записываешь в дескрипторы характеристик нужные команды, а потом слушаешь изменение других характеристик. На developer.android.com была подробная статья про BluetoothLeGatt с примером в репозитории.
У всяких таких девайсов есть подробная документация с описанием, какие именно характеристики там есть, что туда можно посылать. Heart Rate Characteristic вообще, если я правильно понимаю, имеет стандартизированный константный для всех девайсов UUID, можешь тупо с гуглосэмпла код копипастить.
Аноним 05/09/17 Втр 11:21:50  1057364
alicemargatroid[...].jpg (236Кб, 700x700)
>>1057361
Огромное спасибо, ты даже не представляешь, как сильно мне помог.
Тем более, что на девелопер-андроиде даже в тестовом проекте почти всё сделано как мне надо, похоже.
Не знаю даже, как тебя отблагодарить, так что вот тебе просто анимешную бабу.
Аноним 05/09/17 Втр 14:21:35  1057414
Чому шапки нет? Мне, как ньюфагу, чтобы тред не засорять, было бы лучше Щ.И.Т.О почитать, да список материалов поглазеть.
Аноним 05/09/17 Втр 15:21:04  1057443
>>1057414
Ньюфаги not welcome here
Аноним 05/09/17 Втр 15:25:21  1057449
>>1057443
Ну, охуеть теперь. Кастовое деление ИТТ.
Аноним 05/09/17 Втр 16:05:14  1057469
>>1057414
В предыдущих тредах была, поищи на архиваче.
Аноним 05/09/17 Втр 20:32:35  1057599
>>1057083
JobScheduler
Аноним 05/09/17 Втр 20:33:45  1057601
>>1057364
>а сдавать проект нужно уже завтра
Избегайте такизх ситуаций.
Аноним 05/09/17 Втр 20:35:02  1057604
>>1057364
>>1057356
В своё время занимался такой хуетой. Суть в перекидывании объекта и телефона посылками, как уже и было сказано. Обычно есть уже все готовые UUID для сердцебиения, температуры, что там ещё.
Пару полезных ссылок у меня осталось, может быть и тебе поможет.
К слову про малое количество информации в сети ты прав.
https://stackoverflow.com/questions/20043388/working-with-ble-android-4-3-how-to-write-characteristics
https://habrahabr.ru/company/mailru/blog/251937/
https://stackoverflow.com/questions/33043582/bluetooth-low-energy-startscan-on-android-6-0-does-not-find-devices
got you fam
Аноним 05/09/17 Втр 20:35:47  1057605
>>1057414
Сделай лучше Сперва добейся Нас вообще долгое время на доске не было, кушайте что есть, шапка ближе к выходным будет. Может прежний ОП умер в зоне ЗАЩО.
Аноним 05/09/17 Втр 22:04:42  1057690

ПЕРЕКАТ https://2ch.hk/pr/res/1057688.html

ПЕРЕКАТ https://2ch.hk/pr/res/1057688.html

ПЕРЕКАТ https://2ch.hk/pr/res/1057688.html
Аноним 05/09/17 Втр 22:05:39  1057691
glasses.webm (1233Кб, 1280x720, 00:00:05)
>>1057605
Не дождетесь!
Аноним 05/09/17 Втр 22:13:23  1057700
Опчик, создай нормальный перекат, без этой всратой шлюхи.
Аноним 05/09/17 Втр 22:15:56  1057703
>>1057700
Создал тебе за щеку, проверяй.
Аноним 05/09/17 Втр 22:27:16  1057712
>>1057703
Спать ложись, а то затра на первый урок опоздаешь.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 505 | 39 | 145
Назад Вверх Каталог Обновить

Топ тредов
Избранное