М.Двач / Программирование

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

677 Кб, 900x660

Разработка под Android тред №26 27 Авг, 22:22 #829054 В конец треда | Веб

Гугл выпускает Android 7, а мы продолжаем обсуждать разработку под самую популярную ОС для всего подряд.
Предыдущий тред: >>814733 (OP)

Коротко о главном:
1) Мобильная разработка - это весело.
2) Android Studio & Java - легитимный набор, проверенно временем и поддерживается гуглом.

А также о неглавном:
3) PhoneGap/Ionic/Titanium/ReactNative - имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити.
4) Xamarin - мультиплатформенная разработка. Попытка серебряной пули на C#. Довольно популярный. Куплено Microsoft. Теперь есть бесплатная версия.
5) BugVM (RIP RoboVM) - идейный наследник ксамарина, а теперь уже и его часть но на Java. Учитывая что Microsoft убила RoboVM, встречаем опенсорсный BugVM.

Отдельного упоминания стоят:
1) Kotlin - Java от JetBrains, новый и стильный язык, куча синтаксического сахара прилагается, есть стримы и делегаты. Хотите писать на котлине? Добро пожаловать в JetBrains и Avito.

Где брать инфу:
Интернет-ресурсы
1) http://developer.android.com/index.html
Наша библия. Документация/небольшие примеры/гайды. Но только на инглише, но это плюс. Минус в том, что это все таки документация с небольшими примерами и гайдами и искать там реализацию чего-то хоть немного сложного нету смысла. Раздел Training как раз для старта.
2) http://stackoverflow.com/
Пользуюсь чаще чем первым сайтом. Можно найти практически все.
3) Есть два вполне вменяемых русскоязычных ресурса. Для старта подходят очень даже.
http://startandroid.ru/
и
http://developer.alexanderklimov.ru/android/
Второй еще и условно бесплатный. Главный плюс - это русский язык, простые гайдики, но переводы классов иногда заставляют фейспалмить.
4) http://habrahabr.ru/ - редко но метко, можно найти годные статьи по каким-то реализациям, или переводы с developer.android. Хотя чего тут объяснять.
5) https://www.udacity.com/ - в треде очевидцы говорили что есть годный курс, но я лично не смотрел.

Книги, их никто не читает, но все советуют только одну
1) The Busy Coder’s Guide to Android Development - в отличии от остальных книг она обновляется, а так как ведро не стоит на месте а хуярит семимильными шагами, то я бы и не советовал другие книги.

А теперь, так как заебали уже всех, гайд для:
>"Я хуярил на делфи 5 лет назад а теперь хочу вкатится в андроид":

Чтоб быстро хоть как-то вникнуть в джаву берешь и гуглишь javarush или codingbat.com.
Можно Эккеля "Философия java" почитать.
Или Хорстманн "Java. Библиотека профессионала" до 7 главы.

Что тебе нужно понять в самой жабе.
Энтри лвл.
1) ООП - сам принцип нужно именно понять, так как ооп язык.
2) Типы данных. Примитивы и ссылочные.
3) Структуры данных - Массивы/коллекции - без них никуда. Полезно почитать про алгоритмы работы коллекций и их сложности.
4) Дженерик типы, они как раз юзаются в коллекциях.
5) Классы/интерфейсы и все вытекающие.
Уже можно быдлокодить потихоньку и учить андроид параллельно с тем что ниже.

Дальше
6) Потоки ввода/вывода (streams). Не путать с тредами(threads).
7) Threads, особо не нужно вникать(в java.util.concurrent можно не лезть, в ведре все равно особо не пригодится), но нужно понять как работает многопоточка и что такое Runnable.
8) Прочитать про паттерны что-то. Начать с listener, adapter, singleton, iterator так как на каждом шагу. Ну и по накатанной.
Уже сделаешь что-то нормальное.

Дальше.
9) Работа с Sqlite, нужна будет в любом случае.
10) Работа с json.
Привет клиент-серверка.

Ответы>>829601>>830004>>830082>>830134>>833886>>835376>>837084

27 Авг, 22:24 #2 #829056

Какие подводные камни у ксамарина ?

Ответы>>829062>>829080

27 Авг, 22:32 #3 #829062

>>829056
Пацаны в треде засмеют.

27 Авг, 22:57 #4 #829075

Дублирую

Анончики, кто юзвет StorIO? Мне надо положить в бд два разных объекта, т.е. сделавть два put'a с разными классами, но надо чтобы они были в транзакции. Это делается через lowlevel? Т.е. например:

lowlevel().beginTransaction();

storIOSQLite.put().object(firstObject)...//First class
storIOSQLite.put().object(secondObject)...//Second class

lowlevel().setTransactionSuccessful();
lowlevel().endTransaction();

Правильно?

Ответы>>829086

27 Авг, 23:13 #5 #829080

>>829056
ДАЖЕ НЕ ДУМАЙ

Ответы>>829291

27 Авг, 23:26 #6 #829086

>>829075
Всё верно.

28 Авг, 01:01 #7 #829120

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

Ответы>>829132

28 Авг, 01:27 #8 #829132

>>829120
System service Connection manager

28 Авг, 08:55 #9 #829291

>>829080
Ок

28 Авг, 17:26 #10 #829601

>>829054 (OP)
Привет, анон.

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

Что использовать в качестве ключа, варианты:
- hardwareid
- mac adress
- imei
- что-нибудь еще?

Google не рекомендует использовать ни один из них:https://developer.android.com/training/articles/user-data-ids.html

Суть в том, чтобы не допустить такую ситуацию:
"Вася купил платный контент и выложил файлы на 4pda, написав в какую директорию их положить, шоб всё бесплатно работало".

Ответы>>829623>>829635>>829639>>829849>>833314

28 Авг, 18:01 #11 #829623

>>829601
И еще вдогонку: как лучше всего аутентифицировать пользователя без необходимости ему вводить логин и пароль?

Ответы>>829639

28 Авг, 18:21 #12 #829635

>>829601
А если к email юзера привязаться?
Тогда и тот, кто купил будет доволен, что у него на нескольких девайсах работает и халявщики с 4pda немного поебутся.

Ответы>>829652>>829661

28 Авг, 18:25 #13 #829639

>>829623
Гуглологин, есть еще анонимная авторизация от фаирбейза.

>>829601
Вообще
> Because the Google Play client now caches In-app Billing information locally on the device, you can use the Version 3 API to query for this information more frequently, for example through a getPurchases call. Unlike with previous versions of the API, many Version 3 API calls will be serviced through cache lookups instead of through a network connection to Google Play, which significantly speeds up the API's response time.
Так что дефолтное поведение - ты можешь спрашивать у сервисов, купил человек что-то или нет у сервисов оффлайн.
Если у тебя есть бэкенд, то лучше привязываться к нему, ибо на бэкенде будешь валидировать покупку и отмечать у юзера, какой контент ему доступен. Тогда к мылу привяжешься.

Ответы>>829666>>829696>>829864>>830567

28 Авг, 18:40 #14 #829652

>>829635
На 4pda есть программа для смены hardwareid. Исходя из этого, можно предположить, что программы для смены (чтобы приложение так видело) email аккаунтов гугл также существуют, но их я еще не видел. Вариант развития событий:
"Вася говорит какой email вбить в утилитку."

Ответы>>829692

28 Авг, 18:45 #15 #829661

>>829635
А вообще привязка к аккаунту и поддержка нескольких девайсов будет. Еще есть вариант собрать всю возможную информацию об устройстве пользователя, склеить её в строку и зашифровывать так. В итоге для того, чтобы нелегально установить платный контент, придется каждый раз спец. утилитами менять информацию о девайсе, перед юзером будет выбор: заплатить 100р или затрахаться, (но зато запустить нелегально)

28 Авг, 18:48 #16 #829666

>>829639
Спасибо тебе, посмотрю. Чуть позже отпишусь

63 Кб, 659x494

28 Авг, 19:05 #17 #829692

>>829652
Да забей. Халявщиков немного. Люди уходят из форумов.

28 Авг, 19:07 #18 #829696

>>829639
> анонимная авторизация от фаирбейза.
Можно поподробнее?

другой анон

Ответы>>829746

28 Авг, 20:09 #19 #829746

>>829696
Я не юзал
https://firebase.google.com/docs/auth/android/anonymous-auth

Ответы>>829864>>829875

28 Авг, 21:54 #20 #829849

>>829601
Ебать я твой платный контент на раз два выкуплю через freedom. Попробуй защити.

Ответы>>829858

28 Авг, 22:05 #21 #829858

>>829849
И на коллбек на моем сервер от имени Google Play запрос пошлешь через freedom?

28 Авг, 22:08 #22 #829864

>>829746
>>829639
Что в нём особенного? Ведь можно вручную это сделать, используя собственый сервер, или нет?

Ответы>>829872

28 Авг, 22:18 #23 #829872

>>829864
Можно, только зачем?

28 Авг, 22:23 #24 #829875

>>829746
Спасибо за ссылку.

5 Кб, 267x168

28 Авг, 22:26 #25 #829877

Где правильно инжектить зависимости во фрагменте?

Когда вызывать
((MyApp) getActivity().getApplication()).getMyComponent().inject(this); ?

В интернете пишут, что нужно делать в onCreate(), но ведь тогда есть шанс словить NullPointer, ведь activity может быть еще не создана. Делать в onActivityCreated() ?

Кто как делает?

Ответы>>829879>>830105

28 Авг, 22:27 #26 #829879

>>829877
PS. Речь про Dagger 2, конечно же.

28 Авг, 23:12 #27 #829938

анончики, а вот подскажите плз че делать
вроде нормально изучал ООП и джаву в частности
писал примитивные задачки под андроид(калькулятор на 2 числа, простенький список с чекбоками и переходом на другое активити)
че мне делать дальше? мб какие то курсы от гугла проходить или делать свое приложение, но уже боле сложное?
че посоветуете?

Ответы>>829939>>829947>>830088

28 Авг, 23:14 #28 #829939

>>829938
android developer nanodegree (стоит дохуища денег, но все материалы бесплатные)

там будет задание - написать приложение

Ответы>>829953

28 Авг, 23:19 #29 #829947

>>829938
да, пили более сложные приложения
как выше посоветовали, можешь пройти курсы на udacity: бесплатный developing android apps и платный nanodegree (ищи на торрентах)

Ответы>>829949>>829953

28 Авг, 23:20 #30 #829949

>>829947
> платный nanodegree (ищи на торрентах)
Так там платная только поддержка инструкторов и код-ревью. Какие нахуй торренты?

Ответы>>829964>>829965

28 Авг, 23:21 #31 #829953

>>829939

ну вот а в плане там устроиться на работу?
надо же какое то портфолио хотя бы 1-2 приложения вывложенных в плей маркете
и хватит ли знаний, полученных от курса юдасити, что бы претендовать хотя бы на джуниора андроид дева?

>>829947
а какое более сложное? вот например. просто я даже не представляю что надо делать?

Ответы>>829958>>829966

28 Авг, 23:26 #32 #829958

>>829953
> хватит ли знаний, полученных от курса юдасити, что бы претендовать хотя бы на джуниора андроид дева?
Если не тупой, то хватит.

> какое более сложное?
Клиент для Двача.

28 Авг, 23:29 #33 #829964

>>829949
А, да? Прямо на их сайте проходишь, как и бесплатные? Заебись, я думал они сразу данные карточки просят ввести.

Ответы>>830120

28 Авг, 23:30 #34 #829965

>>829949
чето я не нашел как там бесплатно смотреть видосики и тд?

28 Авг, 23:32 #35 #829966

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

Ответы>>829968

28 Авг, 23:34 #36 #829968

>>829966
что имеется ввиду под материалом дизайном?

Ответы>>829973

28 Авг, 23:38 #37 #829973

>>829968
https://material.google.com
гайдлайны Гугла по дизайну андроид приложений

Ответы>>829988

29 Авг, 00:02 #38 #829978

я так и не понял как смотреть бесплатно курсы от юдасити?

29 Авг, 00:17 #39 #829988

>>829973
окей посмотрел анимашки, почитал статьи
но как это в коде реалтизовывать?

Ответы>>829996

29 Авг, 00:33 #40 #829996

>>829988
Если делаешь на активити, то с пятого андроида куча всяких новых классов для этого появилась. Если нет - ручками, наследуешь View, переопределяешь onDraw().

29 Авг, 00:48 #41 #830004

>>829054 (OP)
аноны, я опять со storio, я юзаю его вместе с rx, и там при каждом обновление таблицы емитятся данные, но мне это не надо, остается только юзать first()?

Ответы>>833401

29 Авг, 01:21 #42 #830022

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

Ответы>>830027>>830028

29 Авг, 01:30 #43 #830027

>>830022
Чего ты нас-то спрашиваешь? Тебе интересно делать приложение погоды? Если да, пили, тут кроме дефолтного REST можно ещё поучиться работе с БД (ну там сохранять города, например), графону (визуализировать погоду), дерзай.

29 Авг, 01:34 #44 #830028

>>830022
Для учёбы любое пойдёт, а погодное приложение это классика. Его же кстати пилят и в бесплатном курсе на udacity, developing android apps который.

29 Авг, 01:41 #45 #830031

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

Ответы>>830033

29 Авг, 01:46 #46 #830033

>>830031
Нет, пишут. Если тебе нужно K P A C U B O, то у тебя два варианта: первый - это на активити, на что заточен Design Framework гугла, второй - ты учишься делать как в телеграме стек View. Сложно, не для энтри левела и вообще к такому стоит подходить постепенно. Да, ты можешь скипнуть построение приложений на активити и сразу на фрагментах шлёпать (сами фрагменты, кстати, тоже по сути вьюшками являются), понять, в чём минусы и попробовать как-то эти проблемы решать.

Ответы>>830035>>830039

29 Авг, 01:46 #47 #830035

>>830033
ну по крайней мере я именно через недостатки фрагментов пришел к подсмотренному в телеграме концепту "стек вью"

Ответы>>830059

29 Авг, 01:51 #48 #830039

>>830033
ну вот я просто до этого все примитивные приложухи делал в активити
весь фукционал и примитивную графику
стоит ли заниматься фрагментами или сделать все в активити, а потом уже изучать фрагменты или стек вью вот эти о которых ты сказал

Ответы>>830046

29 Авг, 02:09 #49 #830046

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

29 Авг, 04:11 #50 #830059

>>830035
Млкобуква поясняет за НИНУЖНОСТЬ ФРАГМЕНТОФ. Классика.
(Автор этого поста был забанен. Помянем.)

29 Авг, 06:40 #51 #830082

>>829054 (OP)
Ведрач, шарполох пришел к вам за советом. Появилась необходимость запилить софтину на ведро, но Xamarim - гора костылей и не нужен. Поэтому буду на нормальную JVM вкатываться. Но от жабы у меня появляются рвотные позывы. А вот Котлин вполне годно. Главный вопрос - я с ним не сосну? А то может там еще больше костылей, чем Xamarin. Если все плохо, то я жабу перетерплю, только скажите.

Ответы>>830084

29 Авг, 07:06 #52 #830084

>>830082
100% interoperable with Java™
Котлин (в отличие от xamarin) запускается на той же вирт. машине что и java.
Он компилируется в обычный java-bytecode и использует java библиотеки.

Ответы>>830093

29 Авг, 07:10 #53 #830088

>>829938
>вроде нормально изучал ООП и джаву в частности
>че мне делать дальше?
Функциональное программирование + котлин

Ответы>>830093

29 Авг, 07:33 #54 #830093

>>830088
>>830084
Котлиноеб, на вопрос про di ответь.

Алсо вот есть
((MyApp) getActivity().getApplication()).getMyComponent().inject(this);

Нету ли лучше варианта чтобы инжектить? Такая то монструозная конструкция.

Ответы>>830105

29 Авг, 08:33 #55 #830105

>>829877
>нужно делать в onCreate(), но ведь тогда есть шанс словить NullPointer, ведь activity может быть еще не создана
Как если onCreate() вызывается после onAttach()?
https://developer.android.com/guide/components/fragments.html#Creating

В доке говорится что ты не должен обращаться к ее UI
> Note that this can be called while the fragment's activity is still in the process of being created. As such, you can not rely on things like the activity's content view hierarchy being initialized at this point. If you want to do work once the activity itself is created, see onActivityCreated(Bundle).

>>830093
>((MyApp) getActivity().getApplication()).getMyComponent().inject(this);
В чем проблема?, делаешь extensions-function к фрагменту

29 Авг, 09:51 #56 #830120

>>829964
Да нет, ты просто смотришь, какие курсы входят в нанодигри и сам их проходишь. Все нанодигри состоят из набора курсов, которые доступны бесплатно. (материалы)

29 Авг, 10:26 #57 #830134

>>829054 (OP)
Проебался с перекатом, спасибо.

Ответы>>830137

29 Авг, 10:42 #58 #830137

>>830134
Без тебя перекат получился лучше.

Ответы>>830708

29 Авг, 10:42 #59 #830138

Бля, каждый божий день заходя в pr я вижу этот тред и понимаю что нужно начать учить андроид. Но почему-то всё время забрсываю. Есть ли тут те кто сидел в энтерпрайзе? Как вы себя мотивировали?
мимо-2-года-в-энтерпрайзе

Ответы>>830144

29 Авг, 10:50 #60 #830144

>>830138
Да забей, иди лучше блинов наверни и зависимости для спринг-бута настрой.

Ответы>>830146

29 Авг, 10:52 #61 #830146

>>830144
>спринг-бута
Хуйня какая-то. Никогда ею не пользовался.
чего ты такой злой?

Ответы>>830160>>830184

29 Авг, 11:12 #62 #830160

>>830146
Не спрингбут, тогда что?
play-framework?

Ответы>>830162

29 Авг, 11:13 #63 #830162

>>830160
Автоконфигами не пользовался.

29 Авг, 11:33 #64 #830184

>>830146
> 2 года фиксил баги в богом забытом тырпрайзе
> думаешь либо выпиливать либо перекатываться в мобайл
кому ты нужен со своей жабкой?

Ответы>>830193>>830203

29 Авг, 11:43 #65 #830193

>>830184

Пора репортить котлиноебов

29 Авг, 11:59 #66 #830203

>>830184
> в богом забытом тырпрайзе
Взлольнул. Такие-то надежды.

29 Авг, 15:08 #67 #830357

Это уже, наверное, платина, но все же. Xamarin сильно хуже родной Java? C# знаю и вкатываться в Java как-то не хочется. Или все же придется?

Ответы>>830372>>830378

29 Авг, 15:19 #68 #830372

>>830357
Сильно. Но твой мозг уже деформирован шарпом, тебя уже всё равно не исправить.

Ответы>>830378

29 Авг, 15:26 #69 #830378

>>830372
> деформирован
А от жавы совсем разжижение видимо, ведь шарп как язык лучше.
>>830357
Перешел с шарпы на джаву даже ничего не читая.

29 Авг, 15:33 #70 #830386

здравствуйте анончики
короче сегодня встал и как и говорил начал писать клиент для опенвезермапс но столкнулся с такой проблемой
приложуха будет выглядеть как список, в котром первый айтем большой и показывает текущую погоду, а под ним обычный список с кратким описанием прогноза на некст дни
также при клике на любой айтем, открывается новое активити, в котором более детально это все описывается
так вот какие проблемы:
1) использую RecyclerViewADapter хочу сделать первый айтем списка отличным от других, почитав кучу статей в гугле пришел вот к такому коду - http://pastebin.com/dCugi1Qv
но почему то подчеркивает ViewHolder и просит заменить его на RecyclerView.ViewHolder
и так же подчеркивает мои кастомные холдеры в onCreateViewHolder(то есть вот эти return new FirstViewHolder(firstView);)

2) скиньте гайд как обрабатывать клики в ресайкл вью, а то я чето пытался, но вроде не то делаю.

Ответы>>830454

29 Авг, 15:55 #71 #830413

Аноны, вот у меня есть retainfragment в нем у меня presenter для этого фрагмента, допустим я начал запрос, свернул приложение и его тут же убил андройд, что будет с методом который выполняет запрос? Он просто оборвется или что?

Ответы>>830670>>830681

29 Авг, 16:44 #72 #830454

>>830386
Итак, давай по порядку.
У тебя от чего наследуется?
>extends RecyclerView.Adapter<MyAdapter.ViewHolder>
Дженерик - это как раз твой вьюхолдер, то есть у тебя внутри MyAdapter должен быть
>public class ViewHolder extends RecyclerView.ViewHolder.

>как обрабатывать клики в ресайкл вью
У тебя ссылки на View внутри ViewHolder'а есть, itemView - это, по сути, основной элемент. Можешь на него onClickListener повесить, позицию возьмешь из getAdapterPosition().

Ответы>>830457

29 Авг, 16:45 #73 #830457

>>830454
Не дописал про вьюхолдеры: если ты хочешь несколько разных сделать, то отнаследуй свои FirsViewHolder и NormalViewHolder от того, что я тебе сказал.

Ответы>>830491

29 Авг, 17:19 #74 #830491

>>830457
а что тогда в дефолтном вьюхолдере писать?
ну тот который >public class ViewHolder extends RecyclerView.ViewHolder.

Ответы>>830496

29 Авг, 17:24 #75 #830496

>>830491
Я тут сам чутка проебался, это если тебе есть что общего вынести. Если нет, все вьюхолдеры отнаследуй от RecyclerView.ViewHolder и в дженерике пиши extends RecyclerView.Adapter<RecyclerView.ViewHolder>.
Вот тебе пример из своих проектов: http://pastebin.com/qpXdKEw1

Ответы>>830501

29 Авг, 17:31 #76 #830501

>>830496
а вот какая разница в этих дженериках
типо если я напишу
extends RecyclerView.Adapter<RecyclerView.ViewHolder>.

или RecyclerView.Adapter<MyAdapter.ViewHolder>.

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

Ответы>>830507

29 Авг, 17:35 #77 #830507

>>830501
https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
Возьми и почитай код класса Adapter, сразу всё поймёшь.

Ответы>>830529

29 Авг, 18:01 #78 #830529

>>830507
а насчет обработки кликов
я в коде все верно сделал?
типо создать интерфейс сначала надо, потом повесить онКлики, и в активити где этот ресайкл вью уже прописывать функционал, верно?

29 Авг, 18:18 #79 #830537

Да, это у тебя верно.

29 Авг, 18:32 #80 #830539

А можно ли с помощью Dagger2 сделать так, чтобы можно было использовать скажем набор А методов заинжекченного класса из одного класса, набор Б - из другого, при условии что наборы А и Б не совпадают. Т.е. разделить методы по группам. Зачем мне это нужно ? У меня есть синглтон менеджера API, но было бы неплохо запретить например подгружать новости на экране регистрации, или регистрироваться на экране новостей. Заранее спасибо.

Ответы>>830542>>830563

29 Авг, 18:36 #81 #830542

>>830539
> но было бы неплохо запретить например подгружать новости на экране регистрации, или регистрироваться на экране новостей
Как насчет того, чтобы ПРОСТО не вызывать эти методы?

Ответы>>830544

29 Авг, 18:37 #82 #830544

>>830542
я их и не вызываю, но вроде как не комильфо, когда есть ненужные методы где-то, не ?

Ответы>>831619

29 Авг, 18:43 #83 #830546

А если мне из вьюхолдера по клику нужно сделать запрос к сети, то где отписываться от результата, или даже сам процесс подписки должен случится вне холдера?

29 Авг, 18:57 #84 #830555

Анонимусы, решил узнать, с кем и сколько я пизжу.
Реально ли сделать приложение, которое будет записывать:
1. кому звонил
2. сколько болтал

?
Ткните в пример кода, чтоб я понял, как перехватить вызываемый номер.

Спасибо. с меня 100500 нефти

Ответы>>830561>>830582

29 Авг, 19:08 #85 #830561

>>830555
Бля, да это же можно просто выцепить из журнала звонков. Нахера что-то перехватывать?
мимо-из-энтерпрайза

Ответы>>830582

29 Авг, 19:08 #86 #830562

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

Ответы>>830566

29 Авг, 19:08 #87 #830563

>>830539
Ты хуйню какую-то придумал. DI это вообще про другое.

29 Авг, 19:09 #88 #830566

>>830562
Это значит что нужно читать писать делать клиент серверка готовый для онлайн сервисов.

29 Авг, 19:09 #89 #830567

>>829639
Возможно ли сделать авторизацию с Google +, без необходимости для пользователя вводить пароль, или даже email?

Ответы>>830569

29 Авг, 19:10 #90 #830569

>>830567
Да. Главнео чтобы аккаунт гугла был подключен в телефоне.

Ответы>>830573>>830592

29 Авг, 19:13 #91 #830573

>>830569
А как это сделать?

Ответы>>830580

29 Авг, 19:16 #92 #830580

>>830573
Смотри какая прикольная хуйня в интернете хранится
https://developers.google.com/identity/sign-in/android/start-integrating

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

Ответы>>830586>>830592

29 Авг, 19:20 #93 #830582

>>830555
Вот этот энтерпрайз-господин >>830561 прав, андроид предоставляет доступ к журналу вызовов:
https://developer.android.com/reference/android/provider/CallLog.Calls.html

29 Авг, 19:23 #94 #830586

>>830580
Зачем?

Ответы>>830588

29 Авг, 19:24 #95 #830588

>>830586
Всю жизгь будешь спрашивать на дваче как заимплементить %фича_нейм%?

Ответы>>830595>>830601

29 Авг, 19:25 #96 #830592

>>830569
>>830580
Благодарю
легитимный анон

Ответы>>830599

29 Авг, 19:27 #97 #830595

>>830588
Да, а что?

Ответы>>830599

29 Авг, 19:28 #98 #830599

>>830592
Не за что, няш.

>>830595
Всё ок.

29 Авг, 19:29 #99 #830601

>>830588
Бляяя, чот представил как анон на собеседовании строчит в программач и спрашивает ответы.

Ответы>>830604

29 Авг, 19:34 #100 #830604

>>830601
Всегда так делаю.

Ответы>>830605

29 Авг, 19:35 #101 #830605

>>830604
Это ты ОП "Мы вам перезвоним" треда?

Ответы>>830606

29 Авг, 19:36 #102 #830606

>>830605
Я эйчар.

Ответы>>830610

29 Авг, 19:41 #103 #830610

>>830606
Червь-пидор > Соискатель, спрашивающий ответы в программаче на собеседовании > Эйчар, спрашивающий ответы в программаче на собеседовании.

Ответы>>830611>>830623

29 Авг, 19:43 #104 #830611

>>830610
> ты

Ответы>>830615

29 Авг, 19:44 #105 #830612

Котаны, каким место в MVP приходится адаптер от RecyclerView?

Ответы>>830614

29 Авг, 19:46 #106 #830614

>>830612
View

29 Авг, 19:47 #107 #830615

>>830611
Ну да, ты, всё правильно.

Ответы>>830616

279 Кб, 512x512

29 Авг, 19:48 #108 #830616

>>830615

29 Авг, 19:59 #109 #830623

>>830610
>Червь-пидор > Соискатель, спрашивающий ответы в программаче на собеседовании > Эйчар, спрашивающий ответы в программаче для собеседования > Эйчар, спрашивающий ответы в программаче на собеседовании.

Ответы>>830629

29 Авг, 20:01 #110 #830629

>>830623
> Червь-пидор > Соискатель, спрашивающий ответы в программаче на собеседовании > Эйчар, спрашивающий ответы в программаче для собеседования > Эйчар, спрашивающий ответы в программаче на собеседовании > программист на Котлине

Ответы>>830631>>830637

29 Авг, 20:03 #111 #830631

>>830629
А чего все хейтят котлин?

Ответы>>830635

29 Авг, 20:06 #112 #830635

>>830631
1. "Вы просто ненавидите всё русское"
2. Говно без задач

Ответы>>830637>>830642

29 Авг, 20:08 #113 #830637

>>830629
У вас же даже нет причин хейтить котлин. Если бы не шизик, возможно хотя бы попробовали.
>>830635
> Говно без задач
Таки приятный язык с меньшим количеством шелупони.

Ответы>>830643>>830659

29 Авг, 20:12 #114 #830642

>>830635
>2. Говно без задач
Типо непопулярный? Так таких сейчас очень большое количество.

29 Авг, 20:13 #115 #830643

>>830637
Чтобы понять, что говно - это говно, необязательно его пробовать.

>приятный язык
Да хоть идеальный. Без инфраструктуры, сообщества, развитой среды, легаси, поддержки со стороны крупного бизнеса, удачи и прочего это ничего не значит. А для себя я могу и на D писать.

Ответы>>830895

29 Авг, 20:22 #116 #830647

> 2016
> Не писать на Котлине

Ответы>>830648>>830650

29 Авг, 20:24 #117 #830648

>>830647
> 2016
> Писать на Котлине

Ответы>>830650

29 Авг, 20:24 #118 #830650

>>830648
>>830647

> 2016
> Писать

Ответы>>830651

29 Авг, 20:25 #119 #830651

>>830650
> 2016
>

Ответы>>830682

29 Авг, 20:28 #120 #830655

>2016
>на носу уже ява 9
>уже есть и экспериментальная жим с набросками явы 10
>на андроиде не завезли нихуя кроме шестерочки))

Ответы>>830656>>830659

29 Авг, 20:28 #121 #830656

>>830655
>жим
жвм*

29 Авг, 20:32 #122 #830659

>>830637
>Если бы не шизик
Ты кого назвал шизиком?

>>830655
Ташема 8 ява уже есть, а 9ку постоянно откладывают на декстопе при том что фичафриз уже был

Ответы>>830661

29 Авг, 20:35 #123 #830661

>>830659
Ты жопой читаешь?

Ответы>>830665

29 Авг, 20:38 #124 #830665

>>830661
Ты всегда отвечаешь вопросом на вопрос?

Ответы>>830667

29 Авг, 20:38 #125 #830667

>>830665
А почему ты спрашиваешь?

29 Авг, 20:40 #126 #830670

>>830413
бамп

29 Авг, 20:49 #127 #830681

>>830413
Проделай эксперимент.

29 Авг, 20:49 #128 #830682

>>830651
>

29 Авг, 21:09 #129 #830700

Подскажите тупому васяну, где скачать вот тут
https://github.com/akexorcist/Android-RoundCornerProgressBar

С библиотеками не работал ещё, а с гитом подавно. Хотя нет, пикассо юзал, поэтому и ищу кнопку скачать.
ТАм просто jar файл кидал в папку библиотек и менял слегка манифест, а где тут - хуй знает.

Ответы>>830705>>830887

29 Авг, 21:16 #130 #830705

>>830700
https://github.com/akexorcist/Android-RoundCornerProgressBar#installation

Ответы>>830706

29 Авг, 21:17 #131 #830706

>>830705
я видл. то есть, качать не надо?

Ответы>>830709

29 Авг, 21:19 #132 #830708

>>830137
А ты не охуел?

Ответы>>830723

29 Авг, 21:20 #133 #830709

>>830706
https://developer.android.com/studio/build/build-variants.html#dependencies
Включай мозг иначе тебе в js тред

29 Авг, 21:30 #134 #830723

>>830708
С рождения. Завидуешь?

Ответы>>830733

29 Авг, 21:34 #135 #830733

>>830723
Будто что-то хорошее быть охуевшим козлом.

Ответы>>830735

29 Авг, 21:34 #136 #830735

>>830733
Будто что-то хорошее, вниманиеблядстовать на программаче.

Ответы>>830736

29 Авг, 21:36 #137 #830736

>>830735
Кто тут вниманиеблядствует? Сказать спасибо вниманиеблятство?

Ответы>>830741

29 Авг, 21:38 #138 #830741

>>830736
Ты акцентировал внимание на своей личности, давая понять, что ты — ОП-хуй предыдущего треда. На анонимной борде. Тут за это обоссывают, привыкай.

Ответы>>830745

29 Авг, 21:40 #139 #830745

>>830741
Ты какой-то долбоеб если честно.

Ответы>>830756

29 Авг, 21:45 #140 #830756

>>830745
Очень содержательно.

Ответы>>830760

29 Авг, 21:47 #141 #830760

>>830756
Ну сам подумай, доебался до меня что я акцентировал внимание лол сказав спасибо, но сам акцентируешь внимание на том что ты создатель этого треда.
Вообще это второй тред который создан не мной вроде бы.
И вниманиеблядство это немного другое, раз на то пошло нуфаня.
И наверное на этом и закончим.

Ответы>>830778

29 Авг, 21:50 #142 #830770

>Google разработал целое руководство по наименованию переменных. Например, закрытая переменная на уровне класса должна начинаться с символа m (member), а далее идёт понятное название с заглавной буквы
Где об этом можно почитать полностью?

Ответы>>830774

29 Авг, 21:52 #143 #830774

>>830770
Не верь хуйне. Это стайл-гайд для исходников ОС Andoid. В приложениях это не используй. http://jakewharton.com/just-say-no-to-hungarian-notation/

Ответы>>830777

29 Авг, 21:54 #144 #830777

>>830774
>В приложениях это не используй.
А вот и хомяки вортона подбежали.
м в контроллерах - удобно.

Ответы>>830781>>830782>>830891>>830950

29 Авг, 21:54 #145 #830778

>>830760
> сам акцентируешь внимание на том что ты создатель этого треда
Ёбнутый? Где я это говорил? Чини детектор.

> И наверное на этом и закончим.
Закончим на том, что что я пошлю тебя нахуй.

29 Авг, 21:55 #146 #830781

>>830777
Какое аргументированное мнение. Тебя то нам в треде и не хватало!

Ответы>>830785

29 Авг, 21:55 #147 #830782

>>830777
> в контроллерах
Это где? У меня презентеры.

Ответы>>830785

29 Авг, 21:56 #148 #830785

>>830781
Ну так аргументируй свое мнение, потом я аргументирую свое.

>>830782
Ну раз ты даун и не знаешь что презентер разновидность контроллера, то кто тебе доктор? Зато вортона цитировать мастак.

Ответы>>830789

29 Авг, 21:57 #149 #830789

>>830785
Аргументировал тебе за щеку. Проверяй.

По ссылке сходи и прочитай, даун.

Ответы>>830794

29 Авг, 21:59 #150 #830794

>>830789
Я как раз читал, там нету аргументов против, просто хуйня в стиле "ну ебать венгерская нотация плохая" хуй пойми почему.
Главное как пишет коммьюнити, а она так пишет, и это достаточно удобно когда читаешь код.
Вот приставку s сам никогда не юзал, так как в контроллере статик поле это фу.

Ответы>>830800>>830801

29 Авг, 22:03 #151 #830800

>>830794
> Главное как пишет коммьюнити, а она так пишет
Не пизди. Почти ни одно топовое опенсорсное приложение/библиотека не использует венгерскую нотацию.

> "ну ебать венгерская нотация плохая" хуй пойми почему
Тяжело тебе.

Ответы>>830812

29 Авг, 22:03 #152 #830801

>>830794
Так а где об этом почитать можно?

Ответы>>830803

29 Авг, 22:05 #153 #830803

>>830801
Тебе уже дали ссылку. Нигде.

There is no such thing as an Android Java style guide that provides any guidance on how you should write Java code. Most people referencing this non-existent style guide are referring to the style guide for contributions to the Android Open Source Project (AOSP).

You are not writing code for AOSP so you do not need to follow their style guide.

29 Авг, 22:06 #154 #830805

Гугловский конфиг checkstyle кстати тоже против венгерской нотации https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml

Ответы>>830817

29 Авг, 22:11 #155 #830812

>>830800
>Тяжело тебе.
Это тебе тяжело мозгов своих не иметь.

29 Авг, 22:13 #156 #830817

>>830805
Тыкни пожалуйста носом в нужную строку.

30 Авг, 00:25 #157 #830887

>>830700
Пиздец, не либа, а говно какое-то.

30 Авг, 00:34 #158 #830891

>>830777
Просто добавляй "_"

30 Авг, 00:44 #159 #830895

>>830643
> Без инфраструктуры, сообщества, развитой среды, легаси, поддержки со стороны крупного бизнеса, удачи и прочего это ничего не значит.

Дурашка, можешь отрицать реальность сколько угодно, пока тебя не раздавит ее катком.

Давай разберем поподробнее:

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

>сообщества
ну ты почитай форум блять или реддит, зайди на стековерфлоу посмотри вопросы по тегу kotlin, или наконец в слэк, где 4K человек постоянно что-то обсужают.

>легаси
это-то тебе нахуя? Пройдет время появится и легаси неизбежно. До тех пор можно радоваться что все стильно, модно и по-хипстерски

> поддержки со стороны крупного бизнеса
jetbrains поддерживает, гугл палки в колеса не ставит, gradle пилит дсл для своих билд-скриптов

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

Ответы>>830899>>830909>>830955

30 Авг, 01:01 #160 #830899

>>830895
FUN

30 Авг, 01:37 #161 #830909

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

Да и зачем котёл, если каждый уважающий себя джавист и так знаешь скакалку[/spoller]

Ответы>>830911

30 Авг, 01:45 #162 #830911

>>830909

До россиюшки все не скоро доходит, что поделать.
Вот тебе вакансия c required skills Android Developer TDD Kotlin Java CI 600£/day в UKшке, подрочи на нее (я уже)
http://www.reed.co.uk/jobs/android-developer-banking-600-per-day-java-tdd-ci/30132691

Ответы>>830946>>831055

30 Авг, 06:10 #163 #830946

>>830911
Так это же ТАМ.
Им не всрался рандомный хуй из русского мухосранска.

30 Авг, 06:36 #164 #830950

>>830777
>м в контроллерах - удобно.

>2016
>хранить состояние в объектах
>писать стейтфул контролеры

30 Авг, 06:40 #165 #830952

Есть такая штука: фрагмент - список устройств UPNP. Что внутри: биндинг сервиса, коллбеки на 200 строк, recycler adapter.
Что будет лучше:
1. Сделать через MVP
2. Написать в один файл (ну а чё, а чё)

Ответы>>830975

30 Авг, 06:55 #166 #830955

>>830895
>слэк, где 4K человек постоянно что-то обсужают.
Кстати, последователи Вортона могут там с ним пообщаться, он постоянно там отвечает по android или rx.

30 Авг, 08:06 #167 #830975

>>830952
>коллбеки на 200 строк
У тебя дохрена связывающего кода - стоит над архитектурой подумать:
- вынеси бизнес-логику в сервисы на уровень модели (не android сервисы)
- вынеси UI код в кастомные контролеры
- юзай более выразительный язык
После того как размер фрагмента уменьшиться до ~100 строк, подумай еще разок.

Ответы>>830976>>831009>>831089

30 Авг, 08:08 #168 #830976

>>830975
>кастомные контролеры
контролы (view)

30 Авг, 09:37 #169 #831009

>>830975
Это приведёт к увеличению кол-ва кода в несколько раз и усложнению архитектуры.
Не имеет смысла.

Ответы>>831011

30 Авг, 09:40 #170 #831011

>>831009
> Любитель спагетти рассуждает об архитектуре
Погугли Single Responsibility Principle
Я тебе даже помогу: https://www.youtube.com/watch?v=Gt0M_OHKhQE

Ответы>>831082

30 Авг, 11:02 #171 #831048

Смотрите какая хуйня происходит на каком-то ссаном Леново:

final HandlerThread thread = new HandlerThread(TAG, android.os.Process.THREAD_PRIORITY_BACKGROUND);
thread.start();
mBackgroundLooper = thread.getLooper();
mWorkerHandler = new Handler(mBackgroundLooper, new BillingCallback(this));
mMainHandler = new Handler(Looper.getMainLooper(), this);

В результате thread почему-то не живой (!isAlive()) и getLooper возвращает null, соответственно мой хендлер для бэкграунда валится с нуллптр в конструкторе.

Есть какой-то вменяемый способ это предотвратить? Или же нужно расширять HandlerThread, у него переопределять onLooperPrepared и только после этого переводить мой класс в инициализированное состояние?

Ответы>>831116

30 Авг, 11:23 #172 #831055

>>830911
>xx
>reed.co.uk
Ну ты понял, что обосрался, да? Да и в той вакансии требуется УЖЕ знать жабу. А ты предлагаешь пробовать котлин новичкам без знания жабы? Всякие котлы со скакалками востребованы обычно только в контексте с жабой, поэтому нехуй новичками советовать своё протухшее говно.

30 Авг, 11:48 #173 #831075

Есть несколько RadioButton, допустим hui, pizda и custom, и ещё есть куча Checkbox, допустим, 1-10.
Надо сделать следующее: при выборе hui, все чекбоксы делаются неактивными и отмечаются чекбоксы 1-5, при выборе pizda то же самое, только 6-10. При custom можно выбирать какие хочешь.
Думаю сделать один обработчик на все чекбоксы, включать-выключать их программно в обработчике RadioButton.
Однако, у меня при любых изменениях в этих настройках текущий объект сохраняется в бд: поменял галочку - объект пересохранился, соответственно это сохранение находится в обработчике чекбоксов.
Получается, когда я выбираю варианты hui или pizda, я программно буду менять состояние чекбоксов, и получу как миниум пять последовательных сохранений объекта в бд.
Выглядит как-то уж очень уродливо. Есть ли способ программно поменять чекбокс без вызова его обработчика onChanged? Или может можно как-то отложить сохранение модели в бд до того момента, когда в ней "накопятся" изменения?
Или и так сойдёт, и я занимаюсь переоптимизацией?

Ответы>>831079>>831085>>831092

30 Авг, 11:56 #174 #831079

>>831075
Меняй сначала бд, обсерви ее изменения, а когда чет поменяется отображай новое состояние из бд.

Ответы>>831085>>831086

30 Авг, 12:00 #175 #831082

>>831011
Спагетти - это вкусно.

30 Авг, 12:01 #176 #831085

>>831075
Из-за того что у тебя кнопки работают пол разному, это >>831079 без толку, так как при выборе третьей кнопки изменения вносятся от каждого чекбокса отдельно, тут или кнопка confirm и только потом общая запись в базу. Или оставляй вставки по чекбоксам как есть, для первого и второго радио баттона можешь сначала отключить лситенер на чекбоксах, записать в базу, выставить все чекбоксы и потом вернуть старый лситенер.
http://stackoverflow.com/questions/15523157/change-checkbox-value-without-triggering-oncheckchanged

Ответы>>831090>>831188

30 Авг, 12:02 #177 #831086

>>831079
Не понял зачем мне это, мне нужно новое состояние загрузить в бд, а не из бд.

30 Авг, 12:03 #178 #831089

>>830975
Мне нужно забиндить сервис и приделать ему коллбеки.
У меня есть 4 коллбека, при их вызове надо добавлять и удалять устройства из списка.
Что здесь есть бизнес логика?

30 Авг, 12:05 #179 #831090

>>831085
Костыльно, но лучше чем всякие confirm с точки зрения удобства. Так и сделаю, наверное, спасибо.

30 Авг, 12:06 #180 #831092

>>831075
>Есть ли способ программно поменять чекбокс без вызова его обработчика onChanged?

Да, есть. Поставь ему null вместо листенера, потом поменяй состояние и верни листенер. Как приеду домой - поищу более красивое решение, оно у меня было где-то.

Ответы>>831111>>831188

30 Авг, 12:28 #181 #831111

>>831092
>более красивое решение
Через рефлексию что ли?

31 Кб, 582x256

!!Z/WDZI.xDE 30 Авг, 12:33 #182 #831116

>>831048
Будет работать если заменить на new HandlerThread(TAG); ?

А такой (пик 1) android-тест пройдет?

Ответы>>831129>>831130

30 Авг, 12:49 #183 #831129

>>831116
Нет, такой тест не пройдёт. Он даже не скомпилится.

Ответы>>831248

30 Авг, 12:50 #184 #831130

>>831116
Не думаю что смена приоритета так сильно повлияет. Бэкграунд имеет приоритет чуть ниже чем дефолтный.
За ~год этот краш случился только на одном устройстве.

Сейчас проверю. Но все таки HandlerThread серьезно отличается от обычного Thread'a.

Ответы>>831148>>831165

30 Авг, 13:05 #185 #831148

>>831130
То что после start() у тебя isAlive() возвращает false это бага прошивки или сайд эффект другой ошибки.
Может в тот момент у тебя закончилась память или было превышено кол-во одновременных тредов.

Если это воспроизводится не постоянно, я бы вообще забил бы на это.

Ответы>>831154

30 Авг, 13:09 #186 #831154

>>831148
Я примерно так и сделал, если лупера нет, то ничего просто работать не будет.

30 Авг, 13:22 #187 #831165

>>831130
> За ~год этот краш случился только на одном устройстве.
Есть решение: положить хуй. Абсолютно серьезно. Если на каком-то ноунейм бленово вдруг впервые за год происходит принципиально невозможная ошибка — это проблема этого самого бленово и его владельца. Завтра у него getResources активити будет null возвращать, а послезавтра у сервиса onBind перестанет вызываться. Никогда не ориентируйся на таких, просто совет не будущее.

Ответы>>831184>>832781

30 Авг, 13:29 #188 #831184

>>831165
Кстати насчет ресурсов, на разных устройствах(леново, хуйвей и лж), некоторые даже с шестеркой периодически вылетала такая хуита:
Fatal Exception: android.content.res.Resources$NotFoundException: Plural resource ID #0x7f0c0000 quantity=32 item=few
at android.content.res.Resources.getQuantityText(Resources.java:290)
at android.content.res.Resources.getQuantityString(Resources.java:397)

Но блять у меня что в values, что в values-ru указано значение для few. В итоге просто поставил туда try...catch который в случае падения ставил строку для few.

30 Авг, 13:31 #189 #831188

>>831092
>>831085
Короче, в документации андроида в лайаутах используется android:onClick атрибут, значением для которого является метод c сигнатурой void(View).
Этот метод используется как общий метод когда дохуя чекбоксов или радиокнопок (как у меня).
В итоге, когда программно меняешь чекбокс, этот метод НЕ вызывается. Сделал всё на этих методах - на каждое изменение, будь то выбор радиобаттона, меняющего целый набор чекбоксов, или же один чекбокс приходится одно сохранение в бд (просто обновляю в методе объект, сохраняю, потом обновляю UI).
Подводные камни?

Ответы>>831251

91 Кб, 858x492

30 Авг, 15:03 #190 #831248

>>831129
Всем все скомпилилось.

Ответы>>831264

30 Авг, 15:09 #191 #831251

>>831188
Хуита какая-то с этим onClick будет бля буду.

Ответы>>831260

30 Авг, 15:29 #192 #831260

>>831251
Ну единственное что зашквар, так это то, что активити должна иметь этот метод. А вообе хуле эти черти в документации про него пишут тогда?

48 Кб, 644x374

30 Авг, 15:33 #193 #831264

>>831248
Слыхал про лигатуры?

Ответы>>831278

30 Авг, 15:44 #194 #831272

привет, анончики
я все тот же поц, который решил делать кдиент для опенвезермапс
возник вопрос при написании адаптера
а вот как мне в onBindViewHolder() заполнять айтемы данными, если у меня эти данные появятся только после парсинга джейсона и получения из него значений? или я чето не понимаю?
вот код адаптера - http://pastebin.com/XpFK7TPC

Ответы>>831278>>831280>>831281>>831386

30 Авг, 15:55 #195 #831278

>>831264
Што? Ты про стрелочки, ну хуй знает, может у тебя так в котлине заменяет, не ебу. У меня и пререндер для 24 апи не работает, пишет кококо запусти меня с 8 джавой, ты сука и так с восьмой запущен.
>>831272
Он не будет байндить если не уверен что на данной позиции у него что-то должно быть, если ты не указал в getItemCount() константный размер то он и байнд вызывать не будет. Ты должен создать/заполнить адаптер, только после получения данных.

30 Авг, 15:58 #196 #831280

>>831272
ааа, кажись дошло
это типо мне надо все пропарсить, занести в лист, а в onBindViewHolder() вызывать геетеры
что то типо такого
WeatherForecast forecast = forecasts.get(i);
holder.country.setText(forecast.getCountry());
holder.temperature.setText(forecast.getTemperature());
?

Ответы>>831399

30 Авг, 16:03 #197 #831281

>>831272
Я так делал.
http://codepen.io/Zeronsul/full/grEGor

30 Авг, 18:44 #198 #831386

>>831272
Как получишь данные и вобьешь их в провайдер, в адаптере вызови notifyDataSetChanged() или аналогичный.

30 Авг, 19:06 #199 #831399

>>831280
Нет. Ты неправильно понимаешь очень многие вещи. Пройди бесплатный курс от Гугла на Юдасити и твои вопросы отпадут. На этом курсе как раз показывают, как разработать погодное приложение.

Ответы>>831403

30 Авг, 19:08 #200 #831403

>>831399
Че за юдасити?

Ответы>>831404

30 Авг, 19:09 #201 #831404

>>831403
Udacity загугли

30 Авг, 20:25 #202 #831457

Кто-нибудь уже опробовал RxJava 2 ?

Ответы>>831470

30 Авг, 20:44 #203 #831470

>>831457
Недавно щупал, там нет ничего интересного для андроид.

Все полезное уже перенесли в rx 1.1.X

30 Авг, 21:01 #204 #831477

Как думаете, сколько бабла рубит Уортон?

Ответы>>831490>>831491>>831562

148 Кб, 809x809

30 Авг, 21:15 #205 #831490

>>831477
Ты бы отсосал ему?

Ответы>>831508

30 Авг, 21:15 #206 #831491

>>831477
Немного, косарей 150-200. Сам бы хотел такого работника, который дохуя времени пишет левый код, катается с докладами, пиарится, еще и в чатиках зависает?

Ответы>>831507>>831525

30 Авг, 21:26 #207 #831507

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

А если он ещё и занимается самопиаром - его хотят очень многие кроме меня.

30 Авг, 21:26 #208 #831508

>>831490
Он всрат вроде

30 Авг, 21:36 #209 #831520

Кто юзает crashlytics от fabric? Он бесплатный или там какой то бесплатный период?

Ответы>>831526

30 Авг, 21:39 #210 #831525

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

30 Авг, 21:39 #211 #831526

>>831520
Бесплатный. Подводные камни - нельзя отдельно записывать обрабатываемые исключения. Только в общий лог.

Ответы>>831601>>831625

30 Авг, 22:07 #212 #831562

>>831477
Кто это?

Ответы>>831570

30 Авг, 22:13 #213 #831570

>>831562
местный хуесос из тредика

Ответы>>831595

30 Авг, 22:43 #214 #831595

>>831570
Сам ты хуесос. Я няша.

мимо Уортон

30 Авг, 22:56 #215 #831601

>>831526
У них пометка non-fatal, так что все норм.

30 Авг, 23:29 #216 #831619

>>830544
>вроде как не комильфо, когда есть ненужные методы где-то, не

не

мимо-написал либу с сотней методов из которых реализуются 20 потому что насмотрелся такого на тырпрайзной работе-крокодил

30 Авг, 23:34 #217 #831625

>>831526
Можно, просто это надо специально прописывать. А так — то, что надо, краши может тебе даже на e-mail отсылать.

43 Кб, 100x110

31 Авг, 07:53 #218 #831748

Аноны, поясните за Android Annotations.

Чем они плохи? На первый взгляд, они делают то же самое, что Butterknife + Dagger 2 и еще несколько приятных мелочей. Некоторые вещи реализованы проще (но это субъективное ощущение).

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

Ответы>>831838>>831850

31 Авг, 11:25 #219 #831838

>>831748
это то говно, которое генерирует _MainActivity ?

Ответы>>831850

31 Авг, 11:40 #220 #831850

>>831838
Да, оно самое.

>>831748
В основном все сводится к блядской генерации наследованных классов.
> Butterknife + Dagger 2
в этом плане лучше. Ну и часть, которая касается асинхронки, что-то уровня иннер асинктасков.

31 Авг, 13:10 #221 #831904

1. У меня есть RecyclerView, который я заполняю в onPause, чтобы отразить изменения которые я мог внести в другой активити. Соответственно, скролл сбивается. Сохраняю состояние LinearLayout в onSaveInstanceState, работает во время смена конфигурации, но когда я редактирую итем в другой активити и возвращаюсь - скролл на первом элементе.
Можно это как-то исправить? Может не стоит заполнять в onPause?
2. git commit --amend полностью убирает промежуточную версию? У меня там нежелательные фразы были внутри файла, я их исправил амендом.
grep -lri "pizda" .git/* вроде ничего не показывает.

Ответы>>831938>>831941>>831957>>831960>>832466

31 Авг, 14:22 #222 #831938

>>831904
amend это то же самое что git reset --soft HEAD^ + git commit. да.

31 Авг, 14:30 #223 #831941

>>831904
Как ты его заполняешь? Создаешь новый адаптер или переиспользуешь?

Ответы>>832002

31 Авг, 14:56 #224 #831957

>>831904
Конечно не стоит заполнять его в onPause. Ты вообще понимаешь, когда и зачем вызывается этот метод?

Ответы>>832002

31 Авг, 14:57 #225 #831960

>>831904
И как у тебя коммуникация между активити / фрагментами сделана? Сто процентов через жопу, раз тебе такие кульбиты выполнять приходится.

Ответы>>832002

31 Авг, 16:12 #226 #832002

>>831941
создаю новый :^)
>>831957
в onResume, оговорился
>>831960
Фрагменты решил не использовать, есть две активити: лист и детейл. Обычный круд, читается и пишется в базу. Коммуникации толком никакой нет - передаю id в детейл, когда вызываю, назад ничего не передаю.
Назад перехожу кнопкой бэк, по-видимому onCreate может не вызваться, может поэтому я запихнул в onResume. Не помню нахуя я его туда сунул.
К тому же я хотел добавить сортировку, а значит редактирование потенциально может наебнуть порядок элементов.
Мне показалось проще просто наебнуть всё, и загрузить по новой из базы чем передавать всякую малафью туда-сюда, во-всяком случае для прототипа сойдёт и так.
Master-detail тоже не планирую, хуй знает нужна ли мне вообще какая-то коммуникация?

Ответы>>832078>>832458>>832470

14 Кб, 320x480

31 Авг, 16:47 #227 #832037

Кто-нибудь реализовывал кнопку закрытия приложения в Navigation Drawer? Перепробовал все, что нашел на стековерфлоу:
} else if (id == R.id.nav_exit) {
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
getApplication().onTerminate();
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
System.exit(0);
}
Ни один из вставленных выше методов не работает, ни по отдельности, ни вместе.

Ответы>>832116>>832175

31 Авг, 17:23 #228 #832078

>>832002
И нахуй ты создаешь новый?

Ответы>>832092

31 Авг, 17:40 #229 #832092

>>832078
Ну тогда мне придётся делать из него поле типа mAdapter и инициализировать его в onCreate. Но инициализировать без данных его нельзя, значит придётся совать данные в onCreate, делая реквест к бд, и потом сразу делать ещё один реквест в onPause и обновлять их через notifyChanged.

Ответы>>832097

31 Авг, 17:48 #230 #832097

>>832092
Сделал короче ещё поле mHuitaList, в onCreate() инициализировал его как пустой ArrayList, обернул адаптером и сунул в RecyclerView. В onPause - mHuitaList.clear(); mHuitaList.addAll(db.getAll());
Выглядит говняно, но работает как я хочу.

Ответы>>832127

26 Кб, 521x519

31 Авг, 18:07 #231 #832116

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

31 Авг, 18:18 #232 #832127

>>832097
> Выглядит говняно
Оно работает так, как должно, а не через блядское пересоздание адаптера.

Ответы>>832264>>832381

31 Авг, 18:38 #233 #832144

Не уверен туда ли пишу, но вроде больше некуда. Интересует прошивки ядра: что это, как это делается, где почитать наиболее популярноя человек далекий, только вчера возился с рут правами, до сих пор не понимая что и зачем. Еще слышал про утилиту фастбут и адбэто насколько я понял плагин для тс. Что это и для чего? Про .imq и как его юзать тоже интересно.

Ответы>>832147

31 Авг, 18:40 #234 #832147

>>832144
Очень надо разобраться до завтра с этим, а почитать на будущее я уже в шапке поищу.

Ответы>>832168

31 Авг, 19:02 #235 #832168

>>832147
http://xda-university.com/as-a-user/android-flashing-guide

Если совсем вкратце, то ядро лежит в разделе boot, который прошивается boot.img; замена ядра, соответственно, подразумевает прошивку нового boot.img. Раз ты это спрашиваешь, то, скорее всего, ядро c boot.img тебе придётся брать готовые.

Прошивается обычно из рекавери (режима восстановления), который запускается специфичной для твоего девайса комбинацией кнопок при загрузке либо командой adb reboot recovery. В рекавери заливается твой пакет обновления (zip с boot.img и скриптом установки) через adb push myyobakernel.zip, после чего устанавливается из интерфейс рекавери можно и через sideload.

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

Ответы>>832628

31 Авг, 19:11 #236 #832175

>>832037
В Android нет такого паттерна как "выход из приложения". Угомонись.

Ответы>>832179

31 Авг, 19:17 #237 #832179

>>832175
Дауны заказчики к сожалению так не считают.

Ответы>>832185>>832187>>832457

31 Авг, 19:26 #238 #832185

>>832179
Твоя задача как разработчика аргументированно объяснить им всё это, а не безвольно плодить говно-UI.

31 Авг, 19:27 #239 #832187

>>832179
И если тебе вдруг интересно, то у тебя иконки в дровере говно. А от пунктов "LogIn" и "LogOut" вообще себя медведям скормить хочется.

31 Авг, 20:48 #240 #832264

>>832127
Просто раздражает куча полей в активити почему-то. Энивей, спасибо.

Ответы>>832413

31 Авг, 22:11 #241 #832381

>>832127
Мне казалось, что намного лучше инкапсулировать коллекцию в адаптер, что бы всякие операции add/addAll/clear/set/remove вызывать на адаптере и сразу вызвать соответственные notify*.

Ответы>>832714

31 Авг, 22:35 #242 #832413

>>832264
а писать говнокод не раздражает, найс

31 Авг, 23:19 #243 #832457

>>832179
Попроси их найти выход в приложениях гугла, Вконтакте, телеграме, вотсаппе — том, чем они пользуются.

Ответы>>832611

31 Авг, 23:19 #244 #832458

>>832002
>во-всяком случае для прототипа сойдёт и так.
Ты и в продакшен будешь такой же говнокод пихать, идиот.

31 Авг, 23:25 #245 #832466

>>831904
Сохраняешь в onPause (а именно в это состояние у тебя перейдет фрагмент/активити, когда уйдешь с него) текущую позицию, а в том месте, где биндишь адаптер к RecyclerView, проверяешь: если есть данные и в позиции положительное число (каждый раз, когда обновляешь данные, можешь затирать отрицательным) — скроллишь recyclerview туда.

31 Авг, 23:27 #246 #832470

>>832002
>onCreate может не вызываться
Уход на другую активити, расположенную впереди, не является поводом для пересоздания активити, андерстенд? Кажется, на каждом углу вешают пикчи с activity lifecycle, из которой очевидно, когда что вызывается.

01 Сен, 09:00 #247 #832582

Хочу вкатиться в андроид разработку, но люто не хочу программировать на java, что посоветуете? Xamarin или React Native? Есть ли у кого-нибудь опыт в разработке реальных приложений с помощью этих иструментов? И завезут ли таки Swift?

Ответы>>832585>>832615>>832625>>832629>>832861

01 Сен, 09:15 #248 #832585

>>832582
> не хочу программировать на java
Мало ли что не хочешь.
> Xamarin или React Native
Сорта говна.
> И завезут ли таки Swift
Да, можешь начать изучать, через 3 месяца подкатят девтулзы, будешь на коне.

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

Ответы>>832601>>832625

01 Сен, 10:13 #249 #832601

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

01 Сен, 10:23 #250 #832611

>>832457
кому-то захотелось именно как 2гисе, лол

Ответы>>832616>>833022

01 Сен, 10:28 #251 #832615

>>832582
Пошел ты нахрен, козел!

01 Сен, 10:28 #252 #832616

>>832611
Ну так узнай как в 2гисе, там конечно qt, скорее всего, но это не важно.

Ответы>>832954

01 Сен, 10:39 #253 #832625

>>832582
>Xamarin или React Native
Попробуй Xamarin.Native если только под Android или Xamarin.Forms если в кросплатформу хочешь.
С формами будешь меньше верстать (это самое уеб### в мобайле), а больше код писать.

>>832585
>Пора бы из шапки пидорнуть всю хуйню про замарин с реактом. Котлин можно оставить
Тебя блин забыли спросить. В шапке ровно пару строк для информации.

местный котлин-фаг

01 Сен, 10:43 #254 #832628

>>832168
Бут заливается скриптом из пк? Или скрипт на пк, а Бут на смарте как при установке суперсу или аналога? Где брать скрипт, если есть готовый Бут?
>adb push myyobakernel.zip
Что это?

какой же я тупой

Ответы>>832653

01 Сен, 10:45 #255 #832629

>>832582
Кстати, можешь попробовать Flutter https://flutter.io/
Это проект разработчиков из гугл для создания кросплатформенных (android/ios) приложений в material-design.
Основной язык там Dart, а для UI используется подход из ReactJS/Native.

Ходят кстати слухи что на его базе и будут писаться нативные приложения для новой ОС от гугла (fuchsia).

01 Сен, 12:08 #256 #832653

>>832628
>Бут заливается скриптом из пк?
push или sideload выполняешь с пека, да. Всё как при установке SuperSu, но только если boot.img зазипованный, а в META-INF/com/google/android лежит скрипт для его прошивки
> Где брать скрипт, если есть готовый Бут?
Если зазипованного нет, то adb reboot bootloader; fastboot flash boot boot.img

Ответы>>833342

01 Сен, 13:33 #257 #832714

>>832381
Ты изобрёл ArrayAdapter.

Ответы>>832747

01 Сен, 14:06 #258 #832747

>>832714
Для RecyclerView его нет.

01 Сен, 15:04 #259 #832781

>>831165
Каков уровень пиздежа здесь по шкале от 0 до 10?
http://4pda.ru/forum/index.php?showtopic=763533

Ответы>>832786>>832796

50 Кб, 1440x364

01 Сен, 15:12 #260 #832786

>>832781
Он сам себя что ли на собеседовании опрашивал? Вон, и пять лет разрабатывал (и никаких гитхабов хоть с хелловорлдом или "гитхаб по запросу"), и промоутером был (кто о его приложениях слышал? Работ нет), и одновременно и во всех областях (битуби, битуси) поработал. 8 из 10.

01 Сен, 15:22 #261 #832796

>>832781
если все это было правдой, он бы не искал работу

01 Сен, 16:32 #262 #832861

>>832582
Могу посоветовать Haskell. Очень легко и приятно будет писать на нём после Swift'а https://github.com/neurocyte/android-haskell-activity/blob/master/src/HaskellActivity.hs

01 Сен, 18:48 #263 #832954

>>832616
знаю что кутэ, может поэтому выход там и реализован, но сейчас уже похпоказал заказчикам ваши ответы, лол, угадайте где работаю))

Ответы>>832961>>832975>>832983>>833065

01 Сен, 18:55 #264 #832961

>>832954
Ты еще и работаешь?

01 Сен, 19:20 #265 #832975

>>832954
>угадайте где работаю))
Нигде?

01 Сен, 19:27 #266 #832983

>>832954
судя по тому скриншоту, нигде

Ответы>>833009

01 Сен, 19:50 #267 #833009

>>832983
неплохая дедукция, но я не настолько дебил чтобы скринить не из песочницы

179 Кб, 1080x1920

01 Сен, 19:57 #268 #833022

>>832611
И где здесь выход из приложения? Тут только разлогинится, это разные вещи.

Ответы>>833026>>833304

01 Сен, 19:58 #269 #833026

>>833022
А у меня другой 2Gis

Ответы>>833054

01 Сен, 20:08 #270 #833054

>>833026
Он сам из маркет обновился, закинь скрин.

Ответы>>833060

35 Кб, 720x1280

102 Кб, 720x1280

01 Сен, 20:16 #271 #833060

>>833054

Ответы>>833064>>833066

01 Сен, 20:17 #272 #833064

>>833060
И где тут выход?

01 Сен, 20:19 #273 #833065

>>832954
В/На Украине?

Ответы>>833353

01 Сен, 20:20 #274 #833066

>>833060
Ну старая версия.

Ответы>>833071

01 Сен, 20:22 #275 #833071

>>833066
А обновление-то не прилетело. Я проверил только что.

Ответы>>833074>>833075

01 Сен, 20:25 #276 #833074

>>833071
На external SD небось приложение перенес, вот и не прилетело.

Ответы>>833078

01 Сен, 20:25 #277 #833075

>>833071
Это то самое обновление, которое не устанавливается у пидоров просто.

Ответы>>833076>>833079

01 Сен, 20:26 #278 #833076

>>833075
У тебя тоже не установилось?

Ответы>>833081

01 Сен, 20:26 #279 #833078

>>833074
Как это влияет на обновления из стора?

другой анон

Ответы>>833101

01 Сен, 20:27 #280 #833079

>>833075
>кнопка выхода
>для пидоров
Ебаааать.

Ответы>>833082>>833083

01 Сен, 20:27 #281 #833081

>>833076
Так ты еще и тупой? У меня то установилось, я же скрин показывал.

01 Сен, 20:27 #282 #833082

>>833079
>не для пидоров
быстрофикс

01 Сен, 20:28 #283 #833083

>>833079
Ты тупой? Думаешь, здесь только двое вас — ты и тот даун с кнопкой выхода?

79 Кб, 1080x1216

01 Сен, 20:31 #284 #833091

Аноны, какое крутое приложение (не игру), использующее Bluetooth, можно сделать?

Ответы>>833116>>833129

01 Сен, 20:36 #285 #833101

>>833078
Может не обновляться.

Ответы>>833121

01 Сен, 20:45 #286 #833116

>>833091
Может за тебя еще и код написать?

Ответы>>833123

01 Сен, 20:49 #287 #833121

>>833101
Пруф.

87 Кб, 750x883

01 Сен, 20:50 #288 #833123

>>833116
Можешь мне яйца полизать, если хочешь.

01 Сен, 20:50 #289 #833124

Как Retrolambda установить на последнею Android Studio? Хули официальная инструкция из гитхаба не работает?

Ответы>>833131>>833140

01 Сен, 20:53 #290 #833129

>>833091
Посмотрел на твой пик и придумал fleshlight с блутусом, детектит вхождение твоего члена и посылает сигнал на десктоп / мобилку, на десктопе же 3д порно игрушка, ну и понятно, что fleshlight по сути манипулятор типа мышь.
Тащем-то если приспособиться то и в шутеры какие-нибудь можно играть.

01 Сен, 20:54 #291 #833131

>>833124
Всё работает, не пизди.

345 Кб, 637x614

01 Сен, 21:00 #292 #833138

Аноны, доставьте гайд/пример, как писать резюме.

Ответы>>833141

01 Сен, 21:00 #293 #833140

>>833124
K O T L I N
O
T
L
I
N

48 Кб, 604x427

01 Сен, 21:01 #294 #833141

>>833138

Ответы>>833143

01 Сен, 21:02 #295 #833143

>>833141
Нисмишно же

Ответы>>833144

01 Сен, 21:02 #296 #833144

>>833143
Иди нахуй с такими вопросами в android-треде.

Ответы>>833145>>833150

01 Сен, 21:04 #297 #833145

>>833144
Почему такой злой?

Ответы>>833150

01 Сен, 21:07 #298 #833150

>>833145
Потому, что см. >>833144

49 Кб, 465x604

01 Сен, 22:00 #299 #833188

Котаны, подскажите новичку насчёт архитектуры приложения.
Это будет приложение для bluetooth устройства.
Всего несколько экранов: 2 экрана где отображаются параметры устройства. Переключение между ними производится свайпом и один экран с настройками этого самого bluetooth устройства.

Как я понял мне нужен будет сервис, где буду получать информацию от BT девайса. Но как весь этот UI организовать?

Ответы>>833239

01 Сен, 22:45 #300 #833227

Есть соурс код программы, нужно скомпилировать апк файл, сам пытался но туплю чет, сделайте пожалуйста кто сможет
http://rgho.st/82HhSdffd

Ответы>>833246>>833253>>833255

01 Сен, 23:00 #301 #833239

>>833188
Берёшь и организуешь. Можно ViewPager и два лэйаута, можно два фрагмента.

01 Сен, 23:05 #302 #833246

>>833227
Ну и какая тебе нахуй Scheme, если ты даже код на C скомпилировать сам не можешь?

01 Сен, 23:08 #303 #833253

>>833227
Там deprecated NDK используется. Хуй знает, как его сейчас скомпилировать. Много чего менять и заново настраивать придётся.

Ответы>>833299

01 Сен, 23:11 #304 #833255

>>833227
30 секунд в Гугле: http://www.freeapkdownloader.com/apps/org.keithflower.gambit,170250/

Ответы>>833297

60 Кб, 1080x1920

02 Сен, 00:33 #305 #833297

>>833255
Не работает

Ответы>>833304

02 Сен, 00:35 #306 #833299

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

02 Сен, 00:59 #307 #833304

>>833022
>>833297
У меня всё работает. http://rgho.st/8N62TcZmq Сам не запускал.

Хули у тебя все скриншоты в розовых тонах?

Ответы>>833394>>833523

02 Сен, 01:57 #308 #833314

>>829601
Лучше свой "пердак хохла via edition " доделать попробуй, а не занимайся хуйней со своим ниебаццо элитным контентом. Копираст мамкин, блядь.

02 Сен, 05:48 #309 #833342

>>832653
Благодарю.

02 Сен, 07:49 #310 #833353

>>833065
нет

Ответы>>833380

02 Сен, 09:31 #311 #833380

>>833353
Пидора ответ.

02 Сен, 09:57 #312 #833394

>>833304
Ты к разным аноним обращаешься. Лично у меня стоить Twilight, постепенно глушить экран и холодные цвета.

02 Сен, 10:13 #313 #833401

>>830004
Ну,сначала да

02 Сен, 14:15 #314 #833522

Пытаюсь въехать в dependency injection, mvp и лоадеры. Правильно ли я понимаю, что мне нужно создать лоадер в активити который создаст мой презентер и в случае переворота экрана будет брать презентер из кеша? Что в таком случае делать с сетевыми запросами? Нормально ли будет их просто вызывать из презентера?

Ответы>>833526

02 Сен, 14:23 #315 #833523

>>833304
> AIO Downloader
Найс наебка, не знал что тут такие пидоры сидят. Сколько платят?

Ответы>>833868

02 Сен, 14:34 #316 #833526

>>833522
Loader'ы говно предназначенное что бы по жидкому ходить в бызу данных или кеш. Если хочешь что бы все лежало в одной посуде то откажись от лоадеров в пользу Rx (c cache() и сохранением от поворотов в RetainFragment'e/Singleton'e)

Ответы>>833534>>833544

02 Сен, 14:45 #317 #833534

>>833526
Уже давно хотел посмотреть Rx, похоже настало то самое время.

02 Сен, 15:12 #318 #833544

>>833526
Сразу вопрос возник - подойдёт ли мне RxJava если мне нужно работать с сокетами?

Ответы>>833570>>833633

02 Сен, 15:40 #319 #833570

>>833544
Тупой вопрос можно, но это несвязанные темы.
RX решает конкретную пробелему http://www.reactive-streams.org

02 Сен, 15:55 #320 #833585

А есть компилятор на русском языке?

02 Сен, 16:55 #321 #833633

>>833544
http://stackoverflow.com/questions/34254565/rxjava-observing-messages-emitted-from-a-socket

Прийдется поебаться.

02 Сен, 20:29 #322 #833851

Аноны, собираюсь делать анализ трафика звонков для себя. Как получить доги вызовов и длительность входящего и исходящего звонков разобрался. Вопрос: как будет лучше складывать длительности?в коде Активити типа вызов равно a+call length, или для каждого контакта лучше создать sql базу?

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

Ответы>>833869

02 Сен, 20:45 #323 #833868

>>833523
Пошел нахуй. Я писал, что сам не запускал. Анон писал, что у него сайт не работает. Я скачал апк и перезалил в другое место. Всё остальное меня не ебёт.

02 Сен, 20:47 #324 #833869

>>833851
> для каждого контакта лучше создать sql базу
Прочитай про нормализацию.

А вообще, лучше тебе начать с официального курса Гугла на Юдасити. Многие твои вопросы отпадут.

Ответы>>833873

02 Сен, 20:50 #325 #833873

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

Ответы>>833879

02 Сен, 20:55 #326 #833879

>>833873
Там все курсы бесплатные. А ревью платные.

Я про продвинутый курс говорю, где погодное приложение создают.

11 Кб, 250x250

02 Сен, 21:01 #327 #833886

>>829054 (OP)

Нюфани с платиной "Как мне вкатиться в Джаву?", вам сюда: https://stepik.org/course/Java-Базовый-курс-187/

170 Кб, 914x417

02 Сен, 21:40 #328 #833936

Колтинофаги опять соснули https://artemzin.com/blog/kotlin-val-does-not-mean-immutable-it-just-means-readonly-yeah/

Ответы>>834008>>834127>>834148

02 Сен, 22:49 #329 #834008

>>833936
Просто юзвери мудаки, очевидно что val это то же самое что и final. Иммутаьельность что бы совсем как const const * ты в джавке никак не имплементируешь.

03 Сен, 07:39 #330 #834127

>>833936
Молодец, аноняшь, давай больше статей для нюфагов по котлину

03 Сен, 09:08 #331 #834148

>>833936
> val does not mean immutable, it just means readonly
А это было кому то не очевидно? Достаточно доки открыть.

> https://kotlinlang.org/docs/reference/properties.html
> These can be declared as mutable, using the var keyword or read-only using the val keyword

Ответы>>834183>>834408

03 Сен, 09:39 #332 #834152

Котаны, как понять, что пора юзать MVP и от этого будет только польза?

Ответы>>834184

03 Сен, 10:36 #333 #834183

>>834148
Так было не всегда. https://github.com/JetBrains/kotlin-web-site/commit/b4476b50950dcbfcc3f05dc92cef63e71535eccb

Ответы>>834218

03 Сен, 10:37 #334 #834184

>>834152
Раз ты задаёшь такие вопросы, то не пора.

03 Сен, 10:37 #335 #834185

Признавайтесь, это один из вас наговнокодил? https://toster.ru/q/350340

Ответы>>834193>>834201

03 Сен, 10:58 #336 #834193

>>834185
Не, не думаю что такие ебланы есть в нашем треде. Разве что с кнопкой выхода.

Ответы>>834202>>834398

03 Сен, 11:17 #337 #834201

>>834185
Пароль же можно хранить в шифрованном виде, даже расшифровывать не нужно.

Ответы>>834202>>834408

03 Сен, 11:18 #338 #834202

>>834193

-> >>834201

А ты говоришь, что нету...

Ответы>>834203

03 Сен, 11:19 #339 #834203

>>834202
Может аргументируешь?

03 Сен, 11:23 #340 #834204

Короче поясняю для даунов ИТТ.
Если юзать односторонее шифрование для пароля то хранить ты его в зашифрованном виде можешь хоть на экране телефона, правда немного с алгоритмом повыебыватся нужно.
Как оно работает. Человек вводит пароль, ты его шифруешь и на выходе сравниваешь с тем что у тебя в шаредах сохраненно.

И да, так просто никто твой пароль не расшифрует, как и ты сам впрочем.

Ответы>>834206>>834408

03 Сен, 11:26 #341 #834206

>>834204
Какое нахуй "одностороннее шифрование"?
Ты вообще вопрос по ссылке читал, болезненный? Ему этот пароль нужно для АПИ дропбокса передавать.

> Короче поясняю для даунов ИТТ.
Даун поясняет для даунов. Так и живём.

Ответы>>834212

03 Сен, 11:31 #342 #834212

>>834206
Таки проебался и читал в пол силы, все таки утро субботы.
Извините.

03 Сен, 11:37 #343 #834218

>>834183
>Так было не всегда
Так было всегда.

Это называется "исправить неоднозначности в документации".

Ответы>>834220

03 Сен, 11:43 #344 #834220

>>834218
Никогда такого не было, и вот опять!

> исправить неоднозначности в документации
> А это было кому то не очевидно?

03 Сен, 13:53 #345 #834355

Анон, сколько времени может занять путь с 0 до андроид джуна, если ты человек со средними способностями и тратишь на это примерно 4 часа в день?

Ответы>>834371>>834379

03 Сен, 14:09 #346 #834371

>>834355
Джва года.

03 Сен, 14:14 #347 #834379

>>834355
Тебе лет то сколько, стажерик?
Вкатывайся лучше в js/php или тестирование, на это способная любая макака с улицы.

Ответы>>834388>>834391>>836297

03 Сен, 14:25 #348 #834388

>>834379
31

03 Сен, 14:27 #349 #834391

>>834379
21
В общем лучше не выебываться и идти в верстка-тред?

Ответы>>834396

03 Сен, 14:36 #350 #834396

>>834391
Держи гайд, может поможет http://lj.rossia.org/users/lorp/68799.html?thread=478399#t478399

03 Сен, 14:37 #351 #834398

>>834193
Что плохого то?
У меня например foreground сервис завершается из уведомления или через кнопку "завершить" в приложении.
Ей кстати довольно ребко пользуются, но все равно она нужна.

Ответы>>834408

03 Сен, 14:47 #352 #834408

> Не, не думаю что такие ебланы есть в нашем треде

И после этого сразу же перепись ебланов в ответах >>834201 >>834204 >>834148 >>834398

03 Сен, 14:54 #353 #834417

Двачаны, реально ли запилить лэйаут активити где-нибудь в облаке?
ЧТоб xml файл внешнего стиля приложухи хранился где-то типа на дропбоксе.

Вдруг, например, я решу в приложение вкатить баннер рекламный, тогда мне обновлять не придётся его в плэймаркете, а просто файлик в онлайне добавлю имэджвью

Ответы>>834422>>834449

03 Сен, 14:59 #354 #834422

>>834417
Перепись ебланов продолжается.

03 Сен, 15:37 #355 #834449

>>834417
Можно воспользоваться xml парсером, и вызывать программное создание вьюшек при парсинге файла, прямо как андроид и делает. Но идея дерьмо, апрув в маркете очень быстрый, никуда твой баннер не убежит. Тем боеле тебе всерано нужно будет поставить галочку что в приложении есть реклама, что бы тебя не пидорнули.

03 Сен, 15:41 #356 #834452

Сука! Создал Вьюпейджер, чтобы свайпать фрагменты, теперь хуй прикрутишь стандартными методами переходы автоматические. ебанутые фрагменты, блять. Гугл не подумал, что они хоть и стильные, но костыльные пиздец?

Вернусь на активити, ну их нахуй с этим вьюпейджером не поддерживающимся ничем

Ответы>>834454

03 Сен, 15:43 #357 #834454

>>834452
Всё там работает, scrollToPosition().

Активити-то тут причем, какая связь с ViewPagerом, ты ебанутый?

Ответы>>834455

03 Сен, 15:44 #358 #834455

>>834454
он у меня в фрагментах.
ненавижу, блять, работать с фрагментами.
То ли дело с активитями и переключаться между ними и данные передавать. Всё просто и удобно.
а тут блять говно собачье сука.

нет бы просто по клику интент(эта активити, нужная активити).
рисуй блять говно

Ответы>>834458

03 Сен, 15:46 #359 #834458

>>834455
Ты точно ёбнутый.

03 Сен, 20:51 #360 #834668

Посоны, я вам опенсорса принёс. http://pastebin.com/ytLnbAxw
Всё для анона.

22 Кб, 400x400

03 Сен, 21:28 #361 #834704

Аноны, а что по поводу вот этой хуйни думаете? https://github.com/yigit/android-priority-jobqueue

Её автор на последнем I/O выступал.

Годная вещь или нет?

03 Сен, 21:33 #362 #834709

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

Ответы>>834712

03 Сен, 21:35 #363 #834712

>>834709
Не перестал, ужас как всё уёбищно.

А вот формочки на JS писать - одно удовольствие! Сходи в JS-тред, тебе раскажут.

Ответы>>834723

03 Сен, 21:45 #364 #834723

>>834712
ну у меня на гуглплей две проги, одна на кут, вторая на хтмл5+яс, на этом я послал андроид нахуй.

Ответы>>834728

03 Сен, 21:50 #365 #834728

>>834723
Правильно сделал, теперь оставь тред помирать спокойно.

Ответы>>834744

03 Сен, 22:12 #366 #834744

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

03 Сен, 22:50 #367 #834806

Хочу сделать свою либу для bluetooth low energy, чтобы упростить обмен данными до: le.write(deviceAddr, char, data, CALLBACK);
Но как предотвратить вызов коллбека, который был создан в активити, которая уже уничтожена к хуям?

Ответы>>834824>>835840

03 Сен, 23:03 #368 #834824

>>834806
1) Возми за основу пример из Android SDK с CancellationSignal
https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#rawQuery(java.lang.String, java.lang.String[], android.os.CancellationSignal)
2) Возращай объект к которому можно подписаться или отписаться. Отписывайся в onDestroy()
Посмотри как это реализовано в Observable<T> в библиотеке RxJava

Ответы>>834853>>834862

03 Сен, 23:04 #369 #834827

Авторитетное мнение из жаба-треда:

>>834810

Ответы>>834838

03 Сен, 23:09 #370 #834838

>>834827
Толсто

03 Сен, 23:22 #371 #834853

>>834824
Вот кстати в моём случае нужно отписываться только от тех коллбеков, которые используются в активити, которую хотят уничтожить.
Остальные при этом трогать не нужно.

Пойду потискаю кунца и спать. Завтра почитаю.

Ответы>>834862

03 Сен, 23:40 #372 #834862

>>834853
Несколько правок по >>834824

Ссылка на первый пример с rawQuery
https://d.android.com/reference/android/database/sqlite/SQLiteDatabase.html#rawQuery(java.lang.String, java.lang.String[], android.os.CancellationSignal)

Пункты 1 и 2 это альтернативы, а не последовательность действий

Подписывание в RxJava идет через вызов метода subscribe(параметр: лямбда-колбек).
Это метод возвращает объект Subscription у которого можно вызвать метод unsubscribe() что бы отписаться.

Кстати в RxJava 2.0 они немного изменили название классов, можешь сравнить с версией 1.x.

Ответы>>834938

03 Сен, 23:48 #373 #834867

Кто-то копался как работает FacebookSDK, вот я недавно копнул и сука блять боже мой что за говно нахуй! Короче что бы получать результат, например логина, нужно зарегать колбек в колбек-менджере. Но вот беда, когда ты регаешь колбек он добавляется в СТАТИЧЕСКИЙ Map, то есть если ты сделал колбек анонимным классом то все, активити будет висеть и никто его не уберет. А метода отписки они не сделали, ну как так можно, или может я что-то путаю и зря плююсь?

Ответы>>834869>>834942

03 Сен, 23:53 #374 #834869

>>834867
У фейсбука весь софт говно. Их опенсорсные библиотеки такие же. По возможности избегай.

04 Сен, 07:05 #375 #834938

>>834862
Посмотрел - идея понятна.
Только отписывание подписок здесь выглядит красиво, пока этих подписок мало.
Если их дофига наверное проще сделать в onDestroy: foreach(Subscription s : subscriptions) if(!s.isUnsubscribed()) s.unsubscribe();

Ответы>>834954

04 Сен, 08:05 #376 #834942

>>834867
Я тебе даже так скажу: там колбэк дергается в onActivityResult, можно было оставить обработку там (или просто вызов метода), но нет, надо было захуячить туда колбэк. Нахуя? Да просто))
Вксдк страдает той же сранью, но хотя бы ссылку не держит.

Ответы>>834947>>834985

04 Сен, 08:36 #377 #834947

>>834942
Вообще то если у тебя залочен поворот, то в 99% случаев никакого пересоздания активити быть не может.
Тем более у fb окно показывается с прозрачностью, а в таком состояние android не имеет право удалять нижележащие активити.
А код в итоге получается куда как проще.

Недавно делал игру под андроид, там было только одно активити и то всегда в лендскейпе.
Вот тут пришлось поебаться с VK что бы переделать это:
1) вызови VK.login
2) в активти переопредели метод onActivityResult
3) в нем обработай нужный результат и вызови сохраненные где-то колбеки

на один метод
AuthService.login(): CompletableFuture<User>

Ответы>>835024>>835050

04 Сен, 09:14 #378 #834954

>>834938
Для этого есть CompositeSubscription в который можно сложить все подписки и одним методом отписать сразу все

04 Сен, 10:57 #379 #834985

>>834942
Да, про это я в курсе, действительно вк в этом плане посиупила лучше. Увы что там что тут костыли.

04 Сен, 12:38 #380 #835024

>>834947
> CompletableFuture<User>
Эт чо, Guava?

Ответы>>835182

04 Сен, 13:20 #381 #835050

>>834947
> А код в итоге получается куда как проще

Ну да. Дернуть onActivityResult + дернуть колбэк проще чем просто дернуть onActivityResult, ага.

Ответы>>835182

04 Сен, 16:28 #382 #835182

>>835024
https://github.com/streamsupport/streamsupport

>>835050
> 2016
> хранить бизнес логику в активити

Ответы>>835324

04 Сен, 17:59 #383 #835324

>>835182
Кто тебе мешает из активирезульта дергать метод презентера с передачей результата?

Ответы>>835355

04 Сен, 18:42 #384 #835355

>>835324
1) приходится повторять это глупый код из презентера в презентер (если авторизация есть на нескольких окнах)
2) логика размазывается по множеству разных классов (а нужно ее инкапсулировать)
3) она становится хреново НЕ кросплатформенной, а писать тупо под Android уже давно наскучило.

В той же iOS я просто дергаю метод с колбеком (или промисом) и все работает асинхронно.
В Android же мне приходится ебаться с "жизнеными циклами" и переоределением методов внутри активити.

Надеюсь в своей новой ОС гугл исправит эти недостатки.
Вроде бы уже заняли 90% рынка, теперь пора делать по нормальному.

Ответы>>835431

04 Сен, 19:05 #385 #835376

>>829054 (OP)
Вечер в хату, боги кодинга! Взломайте бота, аноны: http://travibot.com/ru/

Ответы>>835386

04 Сен, 19:12 #386 #835386

>>835376
Сюда ли ты зашёл, пацанчик?

Ответы>>835395

04 Сен, 19:19 #387 #835395

>>835386
В чем проблема, ты только в хеллоуворды умеешь?

Ответы>>835504

04 Сен, 19:47 #388 #835431

>>835355
> в новой своей ОС
Какой же ты долбоеб.

Ответы>>835499

sage 04 Сен, 20:41 #389 #835499

>>835431
>Какой же ты долбоеб.
Эх люблю сосач, такие то аргументированные беседы :3

04 Сен, 20:48 #390 #835504

>>835395
Да.

05 Сен, 12:38 #391 #835840

>>834806
Ояебу. Видимо будет у меня куча HashSet'ов.
К примеру в андроиде есть один большой коллбек на ~10 методов, типа onWrite, onRead и оттуда надо будет дернуть listener, от соответствующего устройства. Ну да пох, это та самая "низкоуровневая" прослойка, которая должна работать. А как она реализована - пох.

Идея с subscription в стиле RxJava крайне хороша и пока не видно недостатков.
Подразумевается ли, что после вызова unsubscribe() произойдет не только отписка коллбека, но еще и отмена той самой асинхронной операции?

Ответы>>835841

05 Сен, 12:41 #392 #835841

>>835840
Нет, вызов unsubscribe только отпишет подписчика.

05 Сен, 13:56 #393 #835880

Антуаны, звонил коллега с Рязани. Спрашивали погромиста для разработки приложений на ведро и ios. Мне нахуй ничего не надо, я от этого далёк, но мож кому работа нужна. Если что напишите на bi@x/tardenkoANUSyandCqWexPUNCTUMr=9>u я контакты скину и тех задание там.

Ответы>>835881>>835892

05 Сен, 13:57 #394 #835881

>>835880
По удаленке сессно.

05 Сен, 14:11 #395 #835891

Есть ли возможность хранить состояние системы в сервисе, или это костыли и антипаттерн?
У меня есть sticky сервис, который должен иметь опредлённое состояние, которое ему дают при инициализации. Также мне нужен доступ к этому сервису из любой точки программы.
Сделал синглтон, в нём создаю сервис через bindService, и соответственно имею на него ссылку mService.
Я ожидал, что синглтон будет жить всегда, и хранил в нём состояние, а сервис просто пересоздавался.
Однако, если убить программу, то уничтожаются все мои объекты, а сервис потом просто пересоздаётся самостоятельно, естественно, без старого состояния. Потом подумал хранить ссылку на синглтон в сервисе, а а синглтоне на сервис (пиздец, можно так вообще делать?), но это всё равно не помогает.
Пока писал, ещё кое-что понял: для меня sticky сервис это то же что и вечно работающий демон, не зависящий от окошек программы. По-видимому андроид иного мнения, и я не должен ожидать ничего долгоживущего. Может стоит сохранять состояние в shared prefs в onDestroy, если сервис нормально не просили завершиться через соответствующий метод? onDestroy гарантировано вызывается?

Ответы>>836027

05 Сен, 14:13 #396 #835892

>>835880
А на чем нужно писать можно на котлине?

Ответы>>836042

05 Сен, 14:49 #397 #835918

Какую лучше ORM использовать для SQLite? И стоит ли вообще использовать ORM?

Ответы>>835920>>835928>>836043>>836056>>836150

05 Сен, 14:54 #398 #835920

>>835918
Стоит. Какая тебе больше подходит и нравится.

05 Сен, 15:09 #399 #835928

>>835918
Стоит или не стоит это вто выбор. Я напрмиер и голым SQLiteOpenHelper'ом и Realm'ом пользовался, вот сейчас StorIO ваще нормас. А с ОРМ как-то не сложилось.

05 Сен, 15:46 #400 #835946

Простите, а СторИО не ОРМ? Часто слышу о ней. Она действительно годная?

Ответы>>835975

05 Сен, 16:22 #401 #835975

>>835946
Нет не ОРМ, это удобный фасад который закрывает от тебя кишки SQLiteDatabase и ContentResolver'a. Реактивный и вообще заебись с rx идет.

05 Сен, 16:40 #402 #835993

Помогите нюфагу
Вот ак я передаю значения с едитТекста в другую активность

EditText editText = (EditText)findViewById(R.id.editText);

Intent intent = new Intent(MainActivity.this, GraphActivity.class);

intent.putExtra("ALPHA", editText.getText());
startActivity(intent);

А вот так я его принимаю:

double alpha = getIntent().getExtras().getDouble("ALPHA");

Но почему-то не работает, я подозреваю, что вторая активность принимает null, т.к. если я задам значение вручную то все работает, а если через интент - не работает.

Ответы>>836013

05 Сен, 16:54 #403 #836013

>>835993
>активность
Не надо так.
Задумайся что возвращает getText(). Праивльно, оно возвращает Editable, но никак не double, а ты пытаешься достать именно дабл. Ты сможешь достать оттуда CharSequence. Но дабл не сможешь, так как там даже в логе видно класс каст эксепшн.

Ответы>>836018>>836025

05 Сен, 17:05 #404 #836018

>>836013
А как мне тогда передать дабл в другую активность, использовать другой вью?

Ответы>>836025>>836149>>836202

05 Сен, 17:11 #405 #836025

>>836013
Благодарю анон, сделал через decimal editText, сработало.

>>836018

Ответы>>836149

05 Сен, 17:16 #406 #836027

>>835891
Вообще попробовал разное, оказалось у меня sticky сервис вообще не перезапускается.
Раньше я создавал сервис в активити, а сейчас создаю в обычном классе, использую applicationContext. Если убить приложение, то onDestroy не запускается и сервис не перезапускается.
Что делать?

Ответы>>836050

05 Сен, 17:43 #407 #836042

>>835892
Котлин под ios? Ты даун?

Ответы>>836048

05 Сен, 17:45 #408 #836043

>>835918
Не стоит. SQLite и StorIO - выбор настоящих мужчин.

05 Сен, 17:48 #409 #836048

>>836042
>Котлин под ios?
Няшь, хули ты лезешь в тему в которой не разбираешься?

Ответы>>836053

05 Сен, 17:50 #410 #836050

>>836027
блядь, дело даже не в контексте. Если создавать сервис в активити, то каким-то магическим образом он получает возможность пересоздаваться. Кормил ему application context, всё равно перезапускается. Хуйня какая-то.

05 Сен, 17:51 #411 #836053

>>836048
Разобрался тебе за щеку.

Да хоть на Хаскелле пиши. Мне так-то поебать. Я просто считал кое-что.
eblansCount++;

05 Сен, 17:52 #412 #836056

>>835918
Можешь попробовать greenDAO, у неё минимальный оверхед за счёт генерируемого по схеме кода.

05 Сен, 20:20 #413 #836149

>>836025
>>836018
Почему бы тебе просто не передавать Double.parseDouble(str)?

05 Сен, 20:21 #414 #836150

>>835918
Может в твоей задаче ORM и не нужна.
Есть к примеру cupboard - он генерит таблицы из классов.

Ответы>>836159

05 Сен, 20:38 #415 #836159

>>836150
Так любая орм поступает

05 Сен, 21:22 #416 #836202

>>836018
оставить putExtras() и, как выше сказали, преобразовать строку в double.

05 Сен, 22:01 #417 #836230

Чуваки, что в андроиде с картинками для разных разрешений мутить?

Ну типо мне
1) Делать штук по 6 копий одной картинки для разных dpi от ldpi до xxx_super_pooper_hddpi?
2) Хранить один здоровый пикч, но юзать уменьшенную битмапу?
3) Забить на все и сетать один большой пикч как есть, в заданный размер ImageView (типо 20dp на 20dp) - и бояться что когда-нибудь апа начнет жрать под 100 оперативки?

Само собой я успешно внедрил 3й вариант. Но все же, как правильней?

Погодное приложение, мучу иконки (дождь там, снег, град). Примерно 1/6 экрана пикча занимает.

Ответы>>836234>>836236

05 Сен, 22:07 #418 #836234

>>836230
Используй вектор. Есть отдельная библиотека для SVG.
Если картинка у тебя не векторизуема, значит у тебя устаревший не материал дизайн.

Ответы>>836239

05 Сен, 22:09 #419 #836236

>>836230
https://habrahabr.ru/post/183836/

Ответы>>836241

05 Сен, 22:13 #420 #836239

>>836234
Не, не, все должно хорошо в вектор зайти, я и сам хотел спросить.

Можешь подсказать чем в вектор превращать (не в ручную ведь, надеюсь?). И хорошую библиотеку для работы с svg?

Ответы>>836246

05 Сен, 22:15 #421 #836241

>>836236

Спасибо, ознакомлюсь

05 Сен, 22:18 #422 #836246

>>836239
Лучше что я встречал это Adobe Illustatror, там есть векторизация картинок.

Хорошей не знаю, последний раз интересовался этой темой года 3 назад.
Юзал эту либу (вроде) https://github.com/japgolly/svg-android

Вот кстати интересный сайт для перевода SVG -> Android VectorDrawable

Ответы>>836248>>836250>>836251

128 Кб, 340x340

05 Сен, 22:18 #423 #836247

Юнит-тесты в блядском Ксамарине

Аноны, как правильно настроить проекты для юнит-тестирования приложения? Есть проект, состоящий из трёх "подпроектов" MyApp (shared code, MVVM), MyApp.iOS и MyApp.Android.
По идее, чтобы всё это дело можно было протестировать, нужно создавать отдельные тестовые подпроекты это ж надо было такую хуйню сделать, а?. Типа так: MyApp.Test, MyApp.iOS.Test и MyApp.Android.Test.

Только что-то не работает нихрена. Постоянно разные ошибки, код из shared-части не находится, или не инициализируются сервисы. Версии NUnita нужны разные у разных подпроектов (NUnit, NUnit Lite и NUnit Xamarin Runner), тоже не совмещаются вместе..

Есть тут кто-то, кто смог сконфигурировать всю эту хуиту вместе? Или хотя бы, есть какой-нибудь пример? На гитхабе пусто. Есть только две куцые статьи, которые не сильно помогают https://developer.xamarin.com/guides/ios/deployment,_testing,_and_metrics/touch.unit/
https://github.com/nunit/nunit.xamarin

Ненавижу это говно

Ответы>>836255

05 Сен, 22:19 #424 #836248

>>836246
http://inloop.github.io/svg2android/

Ответы>>836251

05 Сен, 22:20 #425 #836250

>>836246
Это хуйня из прошлого века.

Поддержка векторной графики есть в Support Library начиная с версии 23.2. Вот как пользоваться: https://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-91cbafa87c88

Но! Не стоит злоупотреблять векторами. Их отрисовка на слабых устройствах может занять ощутимое время.

Ответы>>836251>>836265

05 Сен, 22:23 #426 #836251

>>836246
>>836248
>>836250
Большое спасибо парни.

>>836250
Хм, а я чот думал что вектор наоборот производительней будет.

05 Сен, 22:24 #427 #836255

>>836247
Недавно ебался, вроде жить можно.
Правда у меня unit-тесты только на бизнес логику (и "andorid"-сервисы я не юзаю).
Для интеграционного тестирования у меня UITests.

Ответы>>836259

05 Сен, 22:30 #428 #836259

>>836255
Не посоветуешь ничего? Статьи, доки, примеры? Или свой опыт, может есть секреты какие?
Я уже что-то долго с ним ебусь, но успехи пока не очень.

Ответы>>836364

05 Сен, 22:37 #429 #836265

>>836250
А можно просто включить генерацию из вектора пнгшек, чтобы не лагало.

Ответы>>836270>>836271

05 Сен, 22:40 #430 #836270

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

Ответы>>836290

05 Сен, 22:42 #431 #836271

>>836265
Это как, не подскажешь?

05 Сен, 23:01 #432 #836290

>>836270
Тем, что тебе не надо самому подготавливать все эти hdpi, mdpi.
К тому же, вектор изменяется прямо в студии, если тебе нужно поменять цвет иконки например, тебе не надо лезть в редактор, изменять и создавать под каждый dpi.
И генерация пнг довольно быстрый процесс, куда быстрее того же minifyEnabled'a.
Также, тебе в этом случае не надо использовать srcCompat, а пользуешься обычным src как всегда.

05 Сен, 23:10 #433 #836297

>>834379
> Вкатывайся лучше в js/php или тестирование, на это способная любая макака с улицы.
В разработку под мобилки — тоже, лол.

Ответы>>836346

05 Сен, 23:55 #434 #836346

>>836297
Чет я не видел девушек-мобильных девелоперов (ладно одну видел, но она была очень слабой).
А вот фронтендщицы/тестировщицв валяются на каждом углу.

06 Сен, 00:10 #435 #836364

>>836259
Да ХЗ, я вообще начинал с UITest'ов и уже после того как закончил всю программу.
У меня большой плюс что после первой версии дизайн слабо менялся, но при этом я мог как угодно рефакторить код.
Буть у меня изначально юнит-тесты, это был бы большой геморрой, менять их после каждого рефакторинга (а я эт дело люблю).

Сейчас сам вляпался, когда оказалось, что нужно протестировать работу WebView через AndroidTest.
Вот это жопа, NUnitLite хреново работает с async/await, на форуме писали о багах, но походу фиксить пока не собираются.
Как вариант там предлагают альтернативную библиотеку, но она конфликтует с моей версий AndroidSupport.
По этому я решил написать своей мини-фреймворк для этой одной задачи.

Ответы>>836588

131 Кб, 1330x534

124 Кб, 1330x522

06 Сен, 11:26 #436 #836475

Мда, просто мда. Я тут пару тредов назад писал что у меня превью для 24 не рендерится, мол запустите с 8-й джавой, она у меня указано дефолтной, еще и STUDIO_JDK прописал, ну короче нашел я корень зла. На маке, если студия видит 6-ю джаву, она будет работать на ней, что бы ты не делал. Сравните скрин с 6-й джавой, и с 8-й.

Ответы>>836511

92 Кб, 879x515

06 Сен, 13:31 #437 #836510

Поясните пожалуйста за rx-овский zip:
1) Правильно ли я понимаю, что в коде на пике zip работает следующим образов: идет асинхронное выполнение запросов, после чего идет ожидание того, пока придут оба ответа, или же запросы выполняются поочередно ?
2) Как преобразовать стремный if-пиздец на пике ( с response/result ) во что-то красивенькое ?
3) При использовании zipWith сначала выполнятся запросы до него, а после этого запрос, присоединенный zipWith, или же нет ?

Ответы>>836512>>836545>>836663

06 Сен, 13:32 #438 #836511

>>836475
Пользуюсь маком, стоит и 6 и 7 и 8, студия видит 8 и отлично работает

Ответы>>836519

06 Сен, 13:34 #439 #836512

>>836510
p.s. Так как требуется добавить еще один запрос после выполнения предыдущих, который юзает те же входные данные, уточняю за zipWith, в коде его нету, ваш Кэп

06 Сен, 13:42 #440 #836519

>>836511
Ну и как ты это сделал? Как только я удаляю шестую она переключается на 8, как возвращаю ее из корзины - сразу на нее садится. Но дело в том что на 6-й шрифт лучше.

06 Сен, 14:40 #441 #836545

>>836510
http://rxmarbles.com/#zip

1) да

2) использовать RuntimeException'ы.
retrofit.update().doOnNext(x-> if (x == null) throw new RuntimeException(ERROR_UPDATING))

Хотя есть мнение, что такое нужно делать через
retrofit.update().flatMap(x-> if (x == null) Observable.error(new RuntimeException(ERROR_UPDATING)))
else Observable.just(x)

3) Хуй знает, но судя по картинке, поведение то же самое
http://reactivex.io/RxJava/javadoc/rx/Observable.html#zipWith(rx.Observable, rx.functions.Func2)

Алсо, нахуй ты из сабскрайба зовешь другой сабскрайб, если у тебя есть божественный flatMap.
Оберни getAuthData в Observable.create, в котором ты вызовешь subscriber.onError при unathorized exception.

06 Сен, 16:32 #442 #836588

>>836364
Слушай, а можешь показать содержимое своего MyApp.Android.Test/packages.config?

06 Сен, 16:42 #443 #836594

Можно как-то спиздить элементы из PreferenceFragment? Чтобы всё так няшно было с разделителями, диалогами итд, но чтобы с данными я самостоятельно работал?

Ответы>>836634

06 Сен, 17:58 #444 #836634

>>836594
Можно

Ответы>>837155

06 Сен, 18:59 #445 #836663

>>836510
А что ты делаешь c Subscrption которые кладешь в subscrption?

06 Сен, 19:06 #446 #836665

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

нашел один общий, который гуляет по интернету - скопипастил его, ну ок,чо.
один из бомжей талдычит, мол существует всего 4 основных файла, которые должны быть в проекте: gradlew, gradlew.bat, и еще какая то залупа со второй на пару. первый служит запускатором скриптов gradle для юниксоподобных систем, второй для винды, другие два чесн, не помню что делают, потому что проверив эту уебскую теорию и залив на гит свой проектик - gradlew.bat взял и обновился, будто я внес ему какие то изменения. ну я ахуел, думаю - идите вы нахуй, пидарасы.

и дальше в последствии несколько часов еще беспрестанных поисков, нашел ток вот это, вроде самая логичная хуйня, только объяснил бы мне кто где, какие Gradle файлы НУЖНЫ в проекте, а на какие можно класть хуй

.gradle
/local.properties
.DS_Store
/build
gradle.properties
.idea
.navigation
/captures
*.iml
gradlew
gradlew.bat

имл файлы - файлы моего интеллижа, ок - нахуй не нужно, так же как и папка идеи.

вот с остальным я хз

Ответы>>836725>>836740

06 Сен, 19:28 #447 #836677

http://openweathermap.org/ теперь требует авторизацию?

Ответы>>836728

06 Сен, 20:18 #448 #836725

>>836665
Ты долбоёб?

https://github.com/github/gitignore/blob/master/Android.gitignore

Ответы>>836741>>836965

06 Сен, 20:19 #449 #836728

>>836677
Там написано. Получаешь api key и вперёд, можешь снова пердолить свой велосипед.

06 Сен, 20:31 #450 #836740

>>836665
> gradle.properties
Можешь оставить, можешь убрать
> gradlew
> gradlew.bat
Должны быть в репозитории.

Выше уже скинули ссылку на стартовый набор.

Ответы>>836742>>836809

06 Сен, 20:32 #451 #836741

>>836725
>Ты долбоёб?

>только объяснил бы мне кто где, какие Gradle файлы НУЖНЫ в проекте, а на какие можно класть хуй

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

Ответы>>836756

06 Сен, 20:32 #452 #836742

>>836740
Спасибо

06 Сен, 20:53 #453 #836756

>>836741
Почитай, что такое gradle wrapper, долбоёб. Файл у него сам по себе обновился.

Ответы>>836758

06 Сен, 20:57 #454 #836758

>>836756
спасибо, спесивый долбоёб

06 Сен, 21:05 #455 #836760

> 2016
> использовать git

Ответы>>836804

06 Сен, 21:56 #456 #836804

>>836760
Любитель меркуриала или VCS-нинужнопетух?

06 Сен, 21:58 #457 #836809

>>836740
>> gradle.properties
>Можешь оставить, можешь убрать
Там же параметры для скрипта сборки и ключики для релизов, точно не в гит.

Ответы>>836948

07 Сен, 00:23 #458 #836948

>>836809
> ключики для релизов
Их там нет. Если у тебя есть, то ты сам их туда добавил. Следовательно, сам долбоёб.

Ответы>>836955>>837087

07 Сен, 00:43 #459 #836955

>>836948
Ну прям вечер срыва покровов - везде одни долбоёбы, оказывается

07 Сен, 01:19 #460 #836965

>>836725
С ndk не заработает. Говно.

Ответы>>836971

07 Сен, 01:28 #461 #836971

>>836965
Кому твой NDK нахуй сдался?

Ответы>>836977>>836978

07 Сен, 01:42 #462 #836976

Сильный ли Java отличается от ActionScript 3?

07 Сен, 01:43 #463 #836977

>>836971
Любому андроид-разработчику, претендующему на снятие ярлыка «днище».

07 Сен, 01:44 #464 #836978

>>836971
Когда H.264 или opus на киткате и ниже понадобятся, вспомнишь про NDK.
на самом деле никому кроме телеграма нахрен скорее всего не сдался opus-кодек

Ответы>>836979

07 Сен, 01:47 #465 #836979

>>836978
> на киткате и ниже
Никогда не понадобится. Я что, ёбнутый поддерживать киткат и ниже?

Ответы>>837127

07 Сен, 10:58 #466 #837084

>>829054 (OP)
Парни, у меня жопа горит, потушите плез.
Это говно не видит мой девайс. Скачаны всевозможные апишки, дебаг мод он, куда только не втыкал. перезапускал, 100500 драйверов скачал, а пидорас все равно не видит.
Через панель управления если заходить, то пишет 'нет данных'-это типа комп сам не особо видит девайс?
И как его заставить видеть тогда, я уже заебался, чес слово. Каждый раз вставляешь, тыкаешь, оповещение об 'установке драйверов для устройства' иии все.

Телефон хуавей4с, не гугл нексус.

Ответы>>837090

07 Сен, 11:01 #467 #837087

>>836948
А куда ты их записываешь, в переменные среды, или прямо в билд скрипте оставляешь, лолка?

Ответы>>837151

07 Сен, 11:02 #468 #837090

>>837084
Соси китайское говно.
Ты на телефоне то все включил? Он сам блочить подключение может. Сначала добейся что бы его комп видел, а потом приходи жаловаться на adb.

Ответы>>837095

07 Сен, 11:09 #469 #837095

>>837090
Да, все. И тыкал переключение между фотками и папками(ptp mtp).
Комп его вроде видит, постоянно файлы перекачиваю.

Ответы>>837100

07 Сен, 11:19 #470 #837100

>>837095
Ну тогда попробуй adb devices

07 Сен, 11:24 #471 #837104

Парни, минимальные навыки в программировании, последний раз что-то делал на паскале. Хочу научиться программировать на java , и срубать потом бабла с кейсов.

1) Кто с чего начинал, можно ли самому освоить java и научиться писать проги под андроид ?
2) Сколько времени это у вас заняло ?
3) С чего начать мне, какие сайты , книги очень доступно и что самое главное оптимально (без хуйни) научат меня программировать ?

Ответы>>837107>>837126>>837178

07 Сен, 11:27 #472 #837107

>>837104
1)Нет, тебе не обойтись без документации.
2)пару недель, и то, потому что я много сериалов смотрел
3)шапку, значит, читать мы не умеем

Ответы>>837112>>837172

07 Сен, 11:31 #473 #837112

>>837107
>Нет, тебе не обойтись без документации.
Что за документация ?
>шапку, значит, читать мы не умеем
Читал, там-то про делфи а не про паскаль написано )

Ответы>>837128

07 Сен, 12:16 #474 #837126

>>837104
Очередной вкатывальщик. Пройдите пожалуйста в js/php тред, они специально для вас

07 Сен, 12:16 #475 #837127

>>836979
minSdk 21 ставишь? Хуя ты везунчик.

07 Сен, 12:21 #476 #837128

>>837112
Слишком толсто

07 Сен, 12:31 #477 #837131

Может кто привести пример кода, в котором просто показывается использование субкомпонентов в dagger2 ? Не совсем уверен что правильно понимаю, где они должны инициализироваться

Ответы>>837154

07 Сен, 13:19 #478 #837151

>>837087
Что-то в local.properties, что-то в ~/.gradle/.gradle.properties, что-то в отдельных файлах.

07 Сен, 13:21 #479 #837154

>>837131
Субкомпоненты не нужны. Используй кастомные scopes.

Ответы>>837257

07 Сен, 13:22 #480 #837155

>>836634
Как?

Ответы>>837193

07 Сен, 13:24 #481 #837156

Ребят, что сначала нужно для успеха:
Научиться программировать на Java или Придумать приложение, которое ты собираешься сделать для андройд чтобы срубать с него бабла ?

Ответы>>837169>>837247

07 Сен, 13:45 #482 #837169

>>837156
>срубать с него бабла ?
Ты не соберешь бабла с одного приложения.

Ответы>>837171

07 Сен, 13:48 #483 #837171

>>837169
Почему ? А как же реклама и все такое

Ответы>>837174

07 Сен, 13:48 #484 #837172

>>837107
И что ты смог после этих 2 недель и какой до этого был бэкгроунд?

Ответы>>837176

07 Сен, 13:50 #485 #837174

>>837171
>реклама
Пшик, деньги делают те, у кого полная экосистема - мобтльные приложухи, серваки, вебприложения, те у кого есть сервис, и контент.

Ответы>>837182

07 Сен, 13:51 #486 #837176

>>837172
бэкграунд

fixed

07 Сен, 13:53 #487 #837178

>>837104
заебс я значит этому в политехе 4 года учиться должен, а тут тип за месяцок освоить без хуйни хочет, ну ты смешной)

Ответы>>837315

07 Сен, 13:56 #488 #837182

>>837174
>мобтльные приложухи, серваки, вебприложения, те у кого есть сервис, и контент.
Т.е. надо все это иметь вместе чтоб бабло рубить ?

Ответы>>837189

07 Сен, 14:00 #489 #837189

>>837182
Надо мозги иметь и не задавать тупых вопросов.

07 Сен, 14:05 #490 #837193

>>837155
Не слишком ли много вопросов?

3 Кб, 294x19

07 Сен, 14:20 #491 #837207

Котлинобоги, как правильно написать лямбду, чтобы из неё вернуть значение? Пикрилейтед.

Ответы>>837210>>837251

07 Сен, 14:26 #492 #837210

>>837207
{ true }

Ответы>>837223>>837251

7 Кб, 258x112

5 Кб, 147x107

3 Кб, 269x18

07 Сен, 14:37 #493 #837223

>>837210
Не работает. Return тоже. Единственное, что заработало - последний пик, но это пиздец.

Ответы>>837228

07 Сен, 14:43 #494 #837228

>>837223
Значит true без return работает только в многострочных лямбдах, когда он идет последней строкой.

Ответы>>837232

4 Кб, 233x112

07 Сен, 14:53 #495 #837232

>>837228
Бля, там просто надо было без скобок. После шарпа думал, что без скобок только одну строку можно.

07 Сен, 15:14 #496 #837247

>>837156
Попробуй начать с изучения Kotlin https://kotlinlang.org/

На нем любое приложение приносит на 78% больше денег,
даже на РБК писали http://www.rbc.ru/politics/07/09/2016/kotlin-prinosit-ogromniy-dohod.html

мимо живу на доход с одного приложения

Ответы>>837255

07 Сен, 15:16 #497 #837251

>>837207
onTouch { view, motionEvent -> true }

>>837210
Параметры нельзя опускать если их больше одного

07 Сен, 15:20 #498 #837255

>>837247
Круто, опиши свою историю успеха

07 Сен, 15:20 #499 #837257

>>837154
вопрос не в этом, я понимаю что разницы не то чтобы много будет. Скажем у меня есть AppComponent, View1Component и Presenter1Component. Скажем нужно добавить еще слой, с дочками View1Component и Presenter1Component. В таком случае где должны инициализироваться компоненты и как их оттуда вытягивать, чтобы инициализировать дочерние ?

21 Кб, 822x313

07 Сен, 15:30 #500 #837261

Двач, помоги пожалуйста. Пытаюсь разобраться с этим SQLite. Сделал по этому гайду http://developer.alexanderklimov.ru/android/database.php . Мне надо просто вывести данные в TextView, но просто не понимаю как. Перелазил весь гугл, каждый гайд ебаный ListView, а простого примера с выводом в TextView нет.
Подскажите почему не получается вывести?

И есть ли у кого-нибудь сурскод подобного?

Ответы>>837264>>837266>>837432

07 Сен, 15:36 #501 #837264

>>837261
Это все все равно тебе не понадобится, так что забей

07 Сен, 15:39 #502 #837266

>>837261
>Двач, помоги пожалуйста. Пытаюсь разобраться с >Обращение к статической ридонли переменной через объект
>квери в главном потоке
Пизда тебе. Попробуй cursor.moveToFirst. Поставь вместо заполнения логирование этих самых штук, у меня ощущение что у тебя в while не заходит, возможно результат пустой. Посмотри cursor.getCount

Ответы>>837268

07 Сен, 15:43 #503 #837268

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

Ответы>>837276

07 Сен, 15:44 #504 #837270

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

Ответы>>837278>>837279>>837315

07 Сен, 15:59 #505 #837276

>>837268
Я злой прост, сроки горят. Ну я ему намекну что в вайл нихуя не заходит.

07 Сен, 16:01 #506 #837278

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

07 Сен, 16:01 #507 #837279

>>837270
Изи:
Трекер расходов. (усложнение: синхронизация между устройствами)
Очередное приложение о погоде.
Средне:
Музыкальный плеер. (усложнение: с музыкой из ВК)

07 Сен, 16:29 #508 #837315

>>837178
>>837270
Клиент для двача пиши. Все профессионалы с этого начинали.

Ответы>>837317>>837322

07 Сен, 16:30 #509 #837317

>>837315
И заканчивали.

Ответы>>837436

07 Сен, 16:35 #510 #837322

>>837315
Что такое клиент ?

Ответы>>837331>>840700

07 Сен, 16:44 #511 #837331

>>837322
https://ru.wikipedia.org/wiki/Клиент_(информатика)

Ответы>>837335

07 Сен, 16:47 #512 #837335

>>837331
Т.е. мы пишем соощения тут, они тут же отправляются на сервер, а чтобы посмотреть сообщения программа выгружает их с сервера на экран, так примерно ?

Ответы>>837343

07 Сен, 16:54 #513 #837343

>>837335
Примерно, программа по сути показывает данные с сервера, проводит над ними некоторую обработку, может изменять данные на сервере, добавлять новые.

07 Сен, 18:21 #514 #837432

>>837261
> null столбиком
Жги дальше.

07 Сен, 18:24 #515 #837436

>>837317
проиграл

07 Сен, 22:30 #516 #837667

заюзал
minifyEnabled true
useProguard false
и что бы вы думали? апп падает

Ответы>>837677

07 Сен, 22:34 #517 #837677

>>837667
Ну ты определись используешь ты прогврад или нет, да?

Ответы>>837908

08 Сен, 00:07 #518 #837751

Аноны, поясните за такой момент. Могут андроид девелопера курнуть с проекта, допустим, когда будет полностью написано приложение?

Ответы>>837841>>837909

08 Сен, 03:29 #519 #837841

>>837751
Могут.

08 Сен, 10:58 #520 #837908

>>837677
лошара, стрипать код можно без прогарда

Ответы>>837927

08 Сен, 11:00 #521 #837909

>>837751
ага, кидают разработчика который написал норм апп, и нанимают на поддержку индуса за 2$/h

Ответы>>837948

08 Сен, 11:48 #522 #837927

>>837908
Чет не видал такого, как ты без правил прогварда будешь код обфусцировать?

08 Сен, 11:49 #523 #837928

http://hannesdorfmann.com/android/adapter-delegates
Мне очень понравилась лирическая часть, особенно про рекламку, какие же имеющиеся решения говно.

Ответы>>838490

08 Сен, 12:13 #524 #837948

>>837909
Поэтому надо на писать на Котлин, где ты индуса на замену найдешь?

Ответы>>837949>>838337

08 Сен, 12:14 #525 #837949

>>837948
В /pr/ в треде борщехлебов.

08 Сен, 19:39 #526 #838320

Аноны, делаю очень специфическое приложение. Мне нужно заводить будильники на разное время, иногда первый будильник должен сработать через 3 секунды, как я запускаю, и после него опять будильник через 3 секунды. В таком случае первый будильник приходит с опозданием на некоторых телефонах, а на некоторых все ок. Я так думаю все зависит от конкретной прошивки. Юзаю setExact с api 19. Можно ли как то это пофиксить и добиться одинакового поведения везде? Может стоит юзать не AlramManager, а что-то другое?

08 Сен, 19:57 #527 #838337

>>837948
Тогда уж на Haskell

08 Сен, 22:18 #528 #838490

>>837928
Запилите перевод, пожалуйста.

509 Кб, 1000x970

08 Сен, 23:49 #529 #838602

ПЕРЕКАТ https://2ch.hk/pr/res/838598.html (М)

ПЕРЕКАТ https://2ch.hk/pr/res/838598.html (М)

12 Сен, 17:37 #530 #840700

>>837322
тот кто платит твоей маме

Тред утонул или удален.
Это копия, сохраненная 29 сентября 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion