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

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

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

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

112 Кб, 1280x853

Разработка под Android тред №21 05 Июн, 11:06 #762039 В конец треда | Веб

Вот бы в отпуск съебаться.

Предыдущий тред тут:
https://2ch.hk/pr/res/750609.html (М)

Коротко о главном:
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.
Привет клиент-серверка.

Пишите в треде что добавить

Ответы>>762062>>763905>>765344>>765739>>768192>>770470>>773148>>774089>>774617>>774896

05 Июн, 11:16 #2 #762046

>>762034
Там про запись видео, а в реальном времени можно?
Как при отладке приложения через Android Studio.

Ответы>>762064

05 Июн, 11:52 #3 #762062

>>762039 (OP)
> Вот бы в отпуск съебаться.
Так съебись, в чем проблема?

Какого черта это первое предложение шапки? ОП, ты совсем охуел?

Ответы>>762146

05 Июн, 11:53 #4 #762064

>>762046
В реальном времени нельзя, только с задержкой.
Хочешь в реальном — используй эмулятор.

Ответы>>762115

05 Июн, 12:25 #5 #762083

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

Ответы>>762086>>762122>>762141

05 Июн, 12:28 #6 #762086

>>762083
Использовать вьюстейт как прослойку между презентером и вьюхой.

05 Июн, 13:16 #7 #762115

>>762064
А как можно на эмулятор, Genymotion, например, установить мой .apk минуя Android Stdio? Или скопировать устройство с установленным приложением на другой компьютер с эмулятором?

Ответы>>762118

05 Июн, 13:19 #8 #762118

>>762115
Drag'n'drop апкшки в эмуль.

Ответы>>762318

78 Кб, 844x468

86 Кб, 847x470

05 Июн, 13:23 #9 #762122

>>762083
Тоже около 4 лет, сдается мне что лучше вообще не обрабатывать явно, а использовать нотификации.

1) запустил синхронизацию, без сохранения явной ссылки
2) крутишь экран, после поворота берешь данные из локально базы (только чтение)
3) на onResume подписываешься на нужные оповещения, на onPause отписываешься
...
4) фоновый процесс записал данные в базу, кинул бродкаст что изменил базу
5) в активити/фрагменте/конроллере/вьюмодели ловишь бродкаст и перечитываешь базу

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

Вот видосик с последнего Google IO, может он подкинет пищи для размышления:
https://www.youtube.com/watch?v=70WqJxymPr8

Ответы>>762158

05 Июн, 13:41 #10 #762141

>>762083
rxjava (оператор cache) + loader (или статик поле, ретеин фрагмент, че угодно), так делают чуваки из elegion, мне понравилось

Ответы>>762149

05 Июн, 13:48 #11 #762146

>>762062
Лето же. Да и свежих новостей не заметил.

05 Июн, 13:50 #12 #762149

>>762141
Есть примеры? А то что-то я хз как ровно подвязать лоадер к пресентеру.

Ответы>>762155>>762160

05 Июн, 13:58 #13 #762155

>>762149
Да я тоже хз, видимо как хочешь, так и подвязывай

Ответы>>762160

05 Июн, 14:03 #14 #762158

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

Ответы>>762172

05 Июн, 14:06 #15 #762160

>>762155
>>762149
Хотя не вот вспомнил https://github.com/googlesamples/android-architecture/tree/todo-mvp-loaders/

05 Июн, 14:19 #16 #762172

>>762158
Ну так ты на onResume должен не только подписываться, но и делать запрос к базе.
Лоаедеры так и работают (может исходники CursorLoader посмотреть).

Шо поделаешь, это андроид (на ios/wp страница не разрушается на повороте).
Не хочешь ебать мозги - отключай поворот.

Ответы>>762180>>762362>>762692

05 Июн, 14:22 #17 #762180

>>762172
лоадеры подписываются/отписываются в onStart/onStop

Ответы>>762184

05 Июн, 14:28 #18 #762184

>>762180
Ну это конечно ничего не меняет, но спс за инфу

05 Июн, 16:46 #19 #762318

>>762118
Прикольно. Спасибо за помощь!

05 Июн, 17:26 #20 #762362

>>762172
> Не хочешь ебать мозги - отключай поворот.
Это не поможет. Кроме смены ориентации есть еще куча других событий config chages.

Ответы>>762367>>762398

05 Июн, 17:31 #21 #762367

>>762362
И щас к ним прибавится изменение размера окна из-за многооконности.

Ответы>>762691

05 Июн, 17:59 #22 #762398

>>762362
> Кроме смены ориентации есть еще куча других событий config chages
По моему опыту, в конечном итоге на все config-change кроме поворота окна можно забить хуй (типа смены языка).
Слишком редко они происходят, в отличие от поворотов, которые могут вызывать config-change каждую секунду.

Раньше было мерзкое событие "выдвижeние физической клавиатуры" (motоrola milеston),
но такие девайсы не получили распространения и хyй с ними.

> изменение размера окна из-за многооконности
Сам уже проверял?

Ответы>>762459>>762464>>762667

05 Июн, 18:44 #23 #762459

>>762398
лейауты должны меняться, конечно будет пересоздаваться

05 Июн, 18:51 #24 #762464

>>762398
https://medium.com/google-developers/5-tips-for-preparing-for-multi-window-in-android-n-7bed803dda64#.hztmtq4vm

> The default case is that your whole activity is destroyed and recreated, restoring any state you saved in onSaveInstanceState() and reloading all of the resources/layouts. This has the nice property that you know everything is consistent with the new configuration and that every type of configuration is handled.

29 Кб, 512x384

05 Июн, 19:56 #25 #762546

Програмач, помоги. Установил Android Stidio, захотелось поизвращаться, покрутить код на Java и т.д. Но сразу же столкнулся с проблемой дебаггера. Я создал кнопочку, к примеру, на неё повесил обработчик события, чтобы при нажатии в соседнем TextView появлялся текст типа: "Hello, world!". Но когда я изменил код этого самого метода onClick, чтобы она писала другой текст, затем скомпилировал и запустил (запускал я всегда на своём телефоне), то та же самая кнопка писала не новый текст, а всё тот же старый, который я уже давно стёр. В чём проблема? Почему дебаггер так криво работает? Я потом ещё пробовал поменять фоновый цвет приложения, скомпилировал, запустил, и цвет, на удивление, поменялся, а кнопка всё равно работала по-старому. С кнопкой я привёл пример для наглядности. Что я делаю не так, посоны?

05 Июн, 20:20 #26 #762566

Помощь с регистрацией и смс!
telegram.me/AndroidChan
telegram.me/AndroidChan
telegram.me/AndroidChan
telegram.me/AndroidChan
telegram.me/AndroidChan
telegram.me/AndroidChan
telegram.me/AndroidChan
telegram.me/AndroidChan

Ответы>>762675

05 Июн, 23:17 #27 #762667

>>762398
> можно забить хуй
Тебе в php-тред.

sage 05 Июн, 23:32 #28 #762675

>>762566
Зарепортил уёбка.

06 Июн, 00:12 #29 #762691

>>762367
> И щас к ним прибавится изменение размера окна из-за многооконности.
Поворот экрана это тоже смена размера окна: ширина и высота меняются местами.

06 Июн, 00:15 #30 #762692

>>762172
> Не хочешь ебать мозги - отключай поворот.
При этом не меняется размер тулбара он меньше в ландшафтной ориентации и максимальное число кнопок в меню. Если второе не очень критично, то первое просто отвратительно с эстетической точки зрения.

Ответы>>762767

06 Июн, 08:25 #31 #762767

>>762692
Кстати, на айфонах в 99% приложений есть только портретная ориентация.
Там то понимают как всех бесит когда решил прилечь с телефоном, а он экран начинает вращать.

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

Ответы>>762790>>762970

06 Июн, 10:28 #32 #762790

>>762767
Не очень умно не понимать то, что нельзя уйти от пересоздания активити, хотя бы потому что сам андроид может убить активити. Плюс если у тебя хоть какое то нормальное приложение, а не твой список дел, который работает без интернета, то у тебя будут разные лейауты для разных размеров. Если ты не хочешь это понимать, то пиздуй в ios, там делается просто 2 разных приложения под телефон и планшет, что пиздец

Ответы>>762813

45 Кб, 604x554

06 Июн, 10:49 #33 #762793

Ребят, может завалялся у кого пример кода загрузки изображение в альбом или на стенку пользователя vk sdk android?

Ответы>>762794

06 Июн, 10:57 #34 #762794

>>762793
У вк же охуительная документация, или ты хочешь, чтобы за тебя сделали?

Ответы>>762796

06 Июн, 11:08 #35 #762796

>>762794
Никак нет. Я так понял, что нужно использовать что-то вроде этого, но затрудняюсь реализовать getPhoto. Получается я должен дать путь к изображению в ресурсах моего проекта? Или это все дописывать в поле request.executeWithListener(....) или использовать другие методы из vk api?
final Bitmap photo = getPhoto();
VKRequest request = VKApi.uploadWallPhotoRequest(new VKUploadImage(photo, VKImageParameters.jpgImage(0.9f)), 0, 60479154);

Ответы>>762834

06 Июн, 11:45 #36 #762813

>>762790
> в ios, там делается просто 2 разных приложения под телефон и планшет, что пиздец
Уже пару лет как там "по умолчанию" общая верстка для iphone/ipad.

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

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

Ответы>>762973

06 Июн, 12:43 #37 #762834

>>762796
В чем твоя проблема? Ты в параметрах одного метода запутался? У тебя же есть VKApi.uploadWallPhotoRequest(File, long, long).

Ответы>>762837

06 Июн, 13:13 #38 #762837

>>762834
Проблема getPhoto(), что подразумевается под этим? Да, я похоже даун, ну что-то переклинило. Или мне все это что я писал выше не использовать, а то лишь VKApi.uploadWallPhotoRequest(File, long, long), если да, то как дать ссылку на файл?

Ответы>>762908

06 Июн, 15:30 #39 #762908

>>762837
Под этим подразумевается твой способ получения битмапки фото. Но ты можешь использовать и не битмап.

Ответы>>762948

06 Июн, 16:25 #40 #762948

>>762908
Я хотел узнать, что он подразумевает в плане реализации. Вот пример кода http://pastebin.com/v6WtTeQA , но я получил ошибку после прохождения авторизации
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=10485, result=-1, data=null} to activity {com.example.molodec.vktest/com.example.molodec.vktest.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference

Ответы>>762955

06 Июн, 16:30 #41 #762955

>>762948
Ну а хули, ты читать не умеешь? Там же написано что ему нудна не нулевая битмапка, НАЧАЛЬНИК С КЕМ МЕНЯ ПОСАДИЛИ.

Ответы>>762965>>762978

06 Июн, 16:59 #42 #762965

>>762955
Вообще-то они должны были вставить assert на NULL вначале метода API.

Эх, писали бы на котлине, не было бы таких левых ошибок.

Ответы>>762968>>762971>>763042

06 Июн, 17:01 #43 #762968

>>762965
Ну или аннотацию @NotNullable на аргумент метод поставить было можно.

Ответы>>762971>>762972

06 Июн, 17:05 #44 #762970

>>762767
> Не понял, а зачем он вообще должен менять размер и кол-во кнопок (экран то остается в портретном режими)?
Условно числа из головы, в портетной ориениации высота тулбара — 72 dp, максимально помещается 3 иконки. В ландшафтном — 64 dp и 5 иконок. Когда ты поворачиваешь экран, тулбар создается заново и эти параметры обновляются. Если включить обработку смены конфига — они не будут обновляться и высота тулбара будет зависеть от того, в какой ориентации приложение было запущено. Число иконок — тоже.
Так понятнее?
Хотя я понял, ты предлагаешь отключить автоповорот, записав ориениацию в манифесте, а не включить обработку смены конфига.

06 Июн, 17:05 #45 #762971

>>762965
>>762968
А чем им ассерт бы помог? Вывалилось бы с точно такой же ошибкой. Чувак должен убедится что битмапка не ноль и не пихать туда и все.

Ответы>>762981

06 Июн, 17:06 #46 #762972

>>762968
@NonNull, а аннотации тащат зависимость к appcompat.

Ответы>>762981

06 Июн, 17:06 #47 #762973

>>762813
> когда работаешь над серьезными проектах пару/тройуку лет
ну это точно не про тебя максимум списки покупок

06 Июн, 17:15 #48 #762978

>>762955
Можно тогда пример как ее нужно было обозначить?

Ответы>>762998

06 Июн, 17:18 #49 #762981

>>762971
Чувак, ну это же мувитон для БИБЛИОТЕКИ не проверять аргументы.
И исключение было бы понятно даже для даунов ArgumentNullException("Argument photo is null, GFYS faggot");

>>762972
Есть сторонние библиотеку для @Null/@NotNull (котлин и скорее всего IDEA/AS много чужих поддерживает).
Хотя я так подумал это бы не особо то и помогло.

06 Июн, 17:43 #50 #762998

>>762978
Больше чем на псевдокод не рассчитывай ок?
1) Получить переменную битмапки;
2) Проверить что она не null;
3) Если не null то начать отправку в ВК;
4) Иначе думай в чем проблема, почему null;

06 Июн, 18:25 #51 #763042

>>762965
assert на android? really?

Ответы>>763047>>763718

06 Июн, 18:29 #52 #763047

>>763042
бля ну не добывайся до мелочей, я имел просто проверку на null:
if (arg == null) throw new ArgumentNullException("arg");

06 Июн, 18:40 #53 #763063

Посоны где вы купили свои андроид девайсы? Хотел купить нексус 5х но в моей стране гугл магазин не работает. Хочу купить в интернете потому что в магазинах наценка около 200 бачей, так что пусть они идут нахуй

Ответы>>763069

06 Июн, 18:48 #54 #763069

>>763063
Nexus5X на Google Play еще по предзаказу, через бандерольку.
Но тебе лучше пройти в /mobi/nexus тред.

Ответы>>763072

06 Июн, 18:49 #55 #763072

>>763069
Спасибо братан

06 Июн, 19:13 #56 #763090

Двач, привет! У меня вопрос к работающим анонам и фрилансерам.

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

Скажи, сколько просить денег за это? Скрины показать не могу, но стиль выдержан заебись(как приложуха хабра).

50к хватит за онли андроид версию?
Или просить 50 за андроид + айос портированную?

Какие цены вообще на такие вещи?

Ответы>>763130

06 Июн, 20:05 #57 #763121

Бери 50к за андроид версию.
Не потому что дорого или дешево, а потому что продавать сразу две версии как-то не солидно. Выглядит как "2 по цене 1"

Ответы>>763125

06 Июн, 20:14 #58 #763125

>>763121
а сколько вообще подобные штуки стоят?

Мне кажется, что 50 тысяч - это как-то дохуя, но я открыл разные "ПО на заказ" и там вообще чуть ли не в 500к выходит корпоративное говно.
Причём сроки там адовые, например, 13-17 недель.
Что они там столько времени делают - хуй знает.

Ответы>>763128>>763859

06 Июн, 20:18 #59 #763128

>>763125
> Что они там столько времени делают - хуй знает.
Делают архитектуру например, а не хуяк-хуяк и в продакшн.
> 50 тысяч - это как-то дохуя
Нет, это норм за такое приложение, если ты не индус за еду.

38 Кб, 604x389

06 Июн, 20:23 #60 #763130

>>763090
> Сначала сделал, потом денег просит
Вопрос уже в том насколько там щедрые дяди.

> айос портированную?
Как ты на iOS портировал то (или собираешься)?

06 Июн, 21:06 #61 #763175

анасы, поясните за собеседования.
спрашивают ли сейчас новомодные rx. dagger, mvp и т.д.
я ж старпер, нихуя не знаю из этого
реально ли без этой хуйни хотяб тыщ на 130?

Ответы>>763185>>763186>>763405

06 Июн, 21:19 #62 #763185

>>763175
Да, знание асинктаска достаточно для 150к-200к

Ответы>>763188

06 Июн, 21:20 #63 #763186

>>763175
За Котлин дают +100k

Ответы>>763488

06 Июн, 21:21 #64 #763188

>>763185
ну у меня щас 100, я этого не знаю всего

Ответы>>763199

06 Июн, 21:30 #65 #763199

>>763188
Ну молодец, работаешь в быдлоконторе

Ответы>>763211

06 Июн, 21:40 #66 #763211

>>763199
лол, работаю кстати в конторе от которой местные аноны кипятком ссут. особенно доставляет читать маняфантазии, дескать вот там охуенно работать

Ответы>>763216>>763218

06 Июн, 21:41 #67 #763216

>>763211
Похоже на то, что маняфантазии у тебя

06 Июн, 21:44 #68 #763218

>>763211
Ссу пока только елегиона и роботов. Но ты вангую работаешь каком-нибудь говнояндексе.

Ответы>>763415

07 Июн, 06:58 #69 #763395

Ловите presenter cache.
http://blog.bradcampbell.nz/mvp-presenters-that-survive-configuration-changes-part-1/

07 Июн, 07:39 #70 #763405

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

sage 07 Июн, 08:12 #71 #763415

>>763218
> елегион
Сраные полуебки, так и не прислали мне мой диплом за их поганый тест.

Ответы>>763421>>763505

07 Июн, 08:48 #72 #763421

>>763415
Да этот диплом нахуй не нужен, а тест говно ну хоть в офисе гугла побывал

07 Июн, 11:15 #73 #763488

>>763186
За Хаскелл дают +300k

07 Июн, 12:08 #74 #763505

>>763415

А мне прислали даже в украху.

07 Июн, 14:59 #75 #763627

Ананасы, кто-нибудь под NDK что-нибудь пилил?
Какого это?
Есть желание и возможность запилить игорь под Андроид, но вот Джаву не знаю.

Ответы>>763635>>763649

07 Июн, 15:06 #76 #763635

>>763627
Соблаговолите пройти в /dev/Unity тред и перестать отвлекать нас от серьезных беседъ

https://2ch.hk/gd/res/262023.html (М)

Ответы>>763649

07 Июн, 15:17 #77 #763649

>>763635
>Как_сделать_клиент_серверку_без_костылей_2016
>серьезные беседы
>>763627
На голом NDK ты далеко не уедешь. Хочешь сосать плюсы - используй Cocos2dx, хочешь сосать жабу - libGDX, хочешь шарпы - Unity

Ответы>>763689

07 Июн, 16:24 #78 #763689

>>763649
> как сделать клиент серверку без костылей
> все еще нет ответа

Ответы>>763763

07 Июн, 17:22 #79 #763710

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

Ответы>>763711

07 Июн, 17:23 #80 #763711

>>763710
А, всё, нашёл. В глаза ебусь

07 Июн, 17:31 #81 #763718

>>763042
а что не так с ассертами? вот студия советует ей проверять как вариант

Ответы>>763764>>763833

07 Июн, 18:18 #82 #763763

>>763689
Это философский вопрос.

07 Июн, 18:19 #83 #763764

>>763718
Из релизного кода они будут выкинуты. Раньше так было.
http://stackoverflow.com/questions/6176441/how-to-use-assert-in-android

07 Июн, 19:31 #84 #763833

>>763718
далвик не понимает их, хз как art

07 Июн, 19:54 #85 #763859

>>763125
если с мессенджером и лк - 150+, без - порядка 60-120 в зав-ти от наглости

636 Кб, 1967x1235

07 Июн, 20:35 #86 #763905

>>762039 (OP)
Сегодня попробовал сделать то приложение, которое мы пилим на фонгапе, сделать на джаве и кончил радугой, годнота лол.

07 Июн, 21:45 #87 #763994

устроился android junior в стартап, что почитать для прокачки скила? паттерны, блох или busy coder сойдет?

Ответы>>763997>>764320

07 Июн, 21:47 #88 #763997

>>763994
> в стартап
За еду?

Ответы>>764002>>764005

07 Июн, 21:50 #89 #764002

>>763997
За 25к.
Другой анон.

Ответы>>764331

07 Июн, 21:51 #90 #764005

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

Ответы>>764103

07 Июн, 23:09 #91 #764103

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

08 Июн, 09:57 #92 #764320

>>763994
какой нормальный стартап будет набирать джуниоров?

08 Июн, 10:08 #93 #764331

>>764002
Многовато, я бы больше 15к не дал. А в стартапах вообще принято работать за доширак и обещания процентов от продаж, КОГДА ВСЕ ЗАРАБОТАЕТ.

08 Июн, 13:20 #94 #764493

Вот подкачал я свои скилы в джаве и андройде но опыта коммерческого нету, как искать работу? Во все компании отсылать резюме? Или по компании и ждать ответа? На позицию джунов нет вакансии(

Ответы>>764523

08 Июн, 13:51 #95 #764523

>>764493
презентуй себя как мидла
кидаешь ссылки на своичужие аппы в сторе
приписаваешь себе опыт в noname конторефрилансер

Ответы>>764538

08 Июн, 14:04 #96 #764538

>>764523
> приписаваешь себе опыт в noname конторе
Двачую этого комбинатора. "Работал удаленно, было несколько заказчиков, сейчас всех уже не помню, код показать не могу - коммерческая тайна"
Если есть свои нормальные проекты (грамотная архитектура, паттерны, тесты, доведены до конца и работают) на github/bitbucket - будет звучать убедительнее. Если есть приложения в Google Play - еще убедительнее (но там надо 25$ за регистрацию вроде).

Ответы>>764820>>764863

Кто делал получение пушей из VK SDK 08 Июн, 14:37 #97 #764576

и у кого это прямо сейчас работает?

08 Июн, 18:55 #98 #764820

>>764538
>(грамотная архитектура, паттерны, тесты, доведены до конца и работают)
Половина мидлов этого не умеет.

Ответы>>764863

08 Июн, 19:48 #99 #764863

>>764820
>>764538
Чем определяется джуниор или мидл?

Ответы>>764923

08 Июн, 20:45 #100 #764923

>>764863
Опыт работы = знания реальных проектов = практический навык.

Ответы>>764935

08 Июн, 20:57 #101 #764935

>>764923
Все равно что-то не то. Можно 3 года на иннер асинктасках все писать.

Ответы>>764943

08 Июн, 21:03 #102 #764942

Аноны, поясните за mosby, какой профит юзать его, а не делать свой mvp с нуля?

Ответы>>764969

08 Июн, 21:03 #103 #764943

>>764935
Можно, но смысл ведроида даже не в архитектуре, а в знании костылей.
Архитектуру на ариксе можно выучить на неделю.

08 Июн, 21:44 #104 #764969

>>764942
> какой профит
То, что не делаешь свой мвп с нуля?

Ответы>>764995

08 Июн, 22:14 #105 #764995

>>764969
так я не понимаю, в чем сложность mvp с нуля? И чем этот фреймворк помогает

Ответы>>765016

08 Июн, 22:35 #106 #765016

>>764995
А в чем сложность написать свой ретрофит?

Ответы>>765062

08 Июн, 23:12 #107 #765059

В MVP колбеки от вьюх хранятся внутри ViewImpl и вызывают методы презентера?

Ответы>>765248

08 Июн, 23:14 #108 #765062

>>765016
короче ладно, ты сам не знаешь, видимо, ещё ни разу не писал ничего по mvp

Ответы>>765066

08 Июн, 23:15 #109 #765065

Котаны, как в google maps работает accuracy circle?
Написано, что его радиус равен двум СКО. Но почему он тогда не меняется при движении, когда разброс координат увеличивается?

08 Июн, 23:15 #110 #765066

>>765062
Ебанаты, вокруг ебанаты.

09 Июн, 07:11 #111 #765248

>>765059
Да.

09 Июн, 12:12 #112 #765344

>>762039 (OP)
Поясните за охуительные анимации, куда копать?

09 Июн, 13:11 #113 #765383

Есть таб с галерей картинок которые подгружаются глейдом в ImageView (штук 20 на большом дисплее). При первом переходе на этот таб анимация viewpager'a немного притормаживает. Можно как-то сказать глейду, чтобы он как-то сбалансированно подгрузил видимые картинки при инициализации фрагмента во вьюпейджере?

09 Июн, 14:23 #114 #765438

Кто-нибудь пробовал используя Espresso открывать drawer и кликать по итему ? Никак не вдуплю, хули оно с дефолтными итемами пахать не хочет, добавленными через меню

Ответы>>765465

09 Июн, 14:59 #115 #765463

765438-ананас, заработало с поиском по id-шникам итемов в меню, я доволен

Ответы>>765465

09 Июн, 15:00 #116 #765465

>>765463
> >>765438-ананас

09 Июн, 15:10 #117 #765469

К слову, о том же Espresso, ни у кого не возникало сложностей при вводе текста в android.support.v7.widget.SearchView ? Требует, гад такой, android.widget.SearchView...

Ответы>>765530

09 Июн, 16:41 #118 #765530

>>765469
Парниша, ты вообще о чем?

2 Кб, 262x139

09 Июн, 17:47 #119 #765593

Каким образом правильно делать тени вьюхам? Вот растягивающаяся плашка, цвет обводки и задника задаются темой. Обводку/задник делать из шейпов, а тень из 9patch? Elevation это же только lolipop+ да?

Ответы>>766855

09 Июн, 19:49 #120 #765695

Как получить координаты MotionEvent в обход этого?
https://code.google.com/p/android/issues/detail?id=72746

Есть ли еще способы получения координат нажатия из сервиса?

09 Июн, 20:20 #121 #765739

>>762039 (OP)
Как правильнее написать API, которое дергает сервер и возвращает результат? Сделал пока несколько AsyncTask-ов в отдельном package, с setCallback-ами - при onPostExecute, вызывается этот callback.

Джавы не знаю, буду рад совету как это делать канонично.

Ответы>>765827

09 Июн, 20:22 #122 #765745

Такая проблема, есть один onClick (выставлен в layout-файле):
http://pastebin.com/Ng7QTRAJ
если закомментировать блок условия, то всё работает, иначе выдаёт IllegalStateException

Ответы>>765824

09 Июн, 21:32 #123 #765812

аноны, надо сделать такое приложение, где в начале получаю инфу в сплеш скрине и на этом всё. Нормально ли будет хранить ответ в аппликейшене, или есть варианты лучше?

Ответы>>765865

09 Июн, 21:52 #124 #765824

>>765745
> IllegalStateException
Стактрейс где?

Ответы>>765838

09 Июн, 22:00 #125 #765827

>>765739
R E T R O F I T

Ответы>>765927

09 Июн, 22:22 #126 #765838

>>765824
http://pastebin.com/WDviMWqN
name и password -- строки, объявленные как package-local поля класса. Алсо, эксепшен возникает при любой попытке досупа к ним.

Ответы>>765863

09 Июн, 22:57 #127 #765863

>>765838
Caused by: java.lang.NullPointerException at takheer.ru.passworder.LoginActivity.toRegistration(LoginActivity.java:44)

И в чем твоя проблема?

Ответы>>765870>>765880>>766066>>768605

09 Июн, 23:00 #128 #765865

>>765812
Твое приложение умирает в фоне и пользователь восстанавливает его на внутреннем экране. Что будешь делать?

Ответы>>765883

09 Июн, 23:07 #129 #765870

>>765863
>И в чем твоя проблема?
Я хочу, чтобы оно работало, а оно не работает. В этом проблема

Ответы>>766066

09 Июн, 23:20 #130 #765880

>>765863
Я понял твой вопрос. Моя проблема в том, что я плохо понимаю суть NullPointerException.
Создал я два поля, проинициализировал их в onCreate, попытался в других методах эти поля прочитать. Вылез NPE. Предлагаешь тупо обернуть в try-catch?

Ответы>>765913>>766066

09 Июн, 23:26 #131 #765883

>>765865
сосну хуйца, как лучше сделать?

Ответы>>765921

09 Июн, 23:39 #132 #765896

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

09 Июн, 23:40 #133 #765898

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

67 Кб, 700x700

09 Июн, 23:50 #134 #765913

>>765880
> 2016
> NullPointerException

Ответы>>765944>>766342

09 Июн, 23:57 #135 #765921

>>765883
или как насчет передавать везде parceble и сейвить его в бандл, так лучше?

Ответы>>766051

10 Июн, 00:02 #136 #765927

>>765827
>R E T R O F I T
Охуенно, спасибо.

32 Кб, 501x639

10 Июн, 00:40 #137 #765944

>>765913
> 2016
> Kotlin

Ответы>>766052

10 Июн, 07:22 #138 #766051

>>765921
Можно еще проверять, если поле с твоими данными занулились, отправлять юзера на сплешскрин.
Ну а по хорошему бд конечно или хотя бы файл. Гуглы не советуют использовать бандлы для хранения данных.

10 Июн, 07:57 #139 #766052

>>765944
Уноси своего братишку с сладким хлебушком, поехавший.

10 Июн, 08:49 #140 #766066

>>765863
>>765880
>>765870
Просто я дурной и забыл, что формочка для ввода текста это EditText, а не TextView.

10 Июн, 15:07 #141 #766307

Аноны, как правильно хуйнуть вьюпейджер внутрь ресайклвью. Делаю новый адаптер в онбинде, но не сохраняется страница пейджера, если перейти вниз ресайклвью и потом обратно. Как быть?

Ответы>>766308

10 Июн, 15:10 #142 #766308

>>766307
Сохранять позицию пейджера для каждого id модели в карте?

10 Июн, 16:01 #143 #766342

>>765913
Очередной хипстерский тренд, который никому нахуй не нужен.

Ответы>>766368>>766395

10 Июн, 16:45 #144 #766368

>>766342
Хипстерский тренд это:

ClojureScript + ReactNative

, а котлин уже рабочая лошадка.

Ответы>>766423

10 Июн, 17:23 #145 #766389

Посоны, подскажите, как эту парашу еще можно сократить? Я уверен, что тут можно вобще в три строчки ебануть http://pastebin.com/XQsQmBTX

Ответы>>766394>>767070

10 Июн, 17:27 #146 #766394

>>766389
Сабскрайбера можно определять отдельными action1. Передаешь 2 таких в subscribe и сокращаешь за счет лябдопреобразования.

И хули у тебя не через flatMap сделано?

Ответы>>766402

10 Июн, 17:30 #147 #766395

>>766342
RX тоже хипстерский тренд, но он взлетел. Котлин тоже может взлететь, но на это ему нужно еще года полтора точно.

10 Июн, 17:37 #148 #766402

>>766394
ок, я уже поменял subscribe на flatMap, получилось почти то же самое, но вот насчет того, как сабскрайбера отдельным action сделать вобще не ебу, буду признателен за пояснение, если тебя не затруднит

Ответы>>766409

10 Июн, 17:45 #149 #766409

>>766402
я напиздел, нихуя с flatMap не получилось, cyclic inference выдало и нахуй меня послало

10 Июн, 18:13 #150 #766423

>>766368
Твоя рабочая лошадка хотя бы в 2-3 процентах коммерческих приложений используется?

Ответы>>766446

10 Июн, 18:54 #151 #766446

>>766423
> В сторе >1kk приложения,
> языку меньше год,
сам то как думаешь?

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

182 Кб, 720x1280

10 Июн, 18:59 #152 #766449

Аноны, а как сделать скроллбар толстым, чтобы им можно было прокручивать список? Как в стандартном приложении "контакты" или как в dashchan.

Ответы>>766855

10 Июн, 19:58 #153 #766487

Сабскрайбы на топики пушей работают независимо? Т.е. я могу подписаться на топик не запрашивая токен, просто вызвав FirebaseMessaging.subscribe?

11 Июн, 12:20 #154 #766855

>>765593
Юзай cardview, там есть elevation. Просто любую вьюху оборачиваешь в кардвью, сам так делаю, зависимость есть, брат жив.
>>766449
Не совсем понял, но если понял правильно, то гугли scrollbar styling.

Ответы>>766909>>767660

11 Июн, 13:24 #155 #766909

>>766855
Я думаю он про то, как сделать что бы по этому бару можно было быстро скролить, как в adobe pdr reader'e например. Или в контактной книжке по буквам.

Ответы>>766920

11 Июн, 13:39 #156 #766920

>>766909
> Или в контактной книжке по буквам
https://github.com/krimin-killr21/MaterialScrollBar
Вот например.

Ответы>>766932

11 Июн, 13:52 #157 #766932

>>766920
Надо будет поковырять что бы для всего можно было применять.

11 Июн, 16:58 #158 #767070

Уважаемые синьоры, пишет вам >>766389 -кун, я переделал (с горем пополам) на флет мапы, но возникла проблема http://pastebin.com/rT0280mW как сделать, чтобы foo было доступно оттуда, где мне надо взять его айдишник и засунуть в новый объект?

Ответы>>767141

11 Июн, 18:25 #159 #767141

>>767070
Во flatMap вторым аргументом можно передать функцию агрегатор, которая должна либо запихнуть bar в foo (или наоборот), или составить из них Pair<Foo,Bar>.

Ответы>>767162

11 Июн, 18:44 #160 #767162

>>767141 Спасибо, анон, читал об этом, но как-то не доходило, что нужный мне айдишник можно просто подсунуть в объект который пойдет дальше, а пары составлять уж совсем не хотелось.

11 Июн, 18:50 #161 #767172

Аноны есть кардвью и внутри неё вьюпейджер http://pastebin.com/9wMb07fj Если ставлю онкликлистенер на карточку, то она кликается, если не задан адаптер у вьюпейджера, иначе итем вьюпейджера, как бы перекрывает карточку, как мне обрабатывать клик по карточке?

Ответы>>767683

11 Июн, 19:55 #162 #767251

Суп ребят! я воооооооооооообще не могу в java и учить её мне страшно со строк паблик класс майн активити Майн кококок.кококо{
Но я слышал о NDK и наслышан что телефонки умеют попиленый openGL с шейдерами и ништяками.

Ответы>>767253

11 Июн, 19:56 #163 #767253

>>767251
вопрос забыл Чё мне почитать?

Ответы>>767285

sage 11 Июн, 20:23 #164 #767285

>>767253
«Триумфальную арку» Ремарка

Ответы>>767315

11 Июн, 20:57 #165 #767315

>>767285
че ты вот зеленишь?
я достаточно хорошо умею cpp и GLSL но на пеки. что по ndk и gles в одной связочке есть?

Ответы>>767355>>767690

11 Июн, 21:53 #166 #767355

>>767315
пройди плиз в /gamedev/ или c++ тред, тебе здесь не помогут

Ответы>>767462

12 Июн, 00:01 #167 #767462

>>767355
а что вы тут тогда обсуждаете?
я нюфа у вас

Ответы>>767465

sage 12 Июн, 00:17 #168 #767465

>>767462
«Триумфальную арку» Ремарка

12 Июн, 00:22 #169 #767471

Короче пацаны! Решил запилить примитивную приложуху что то на подобе справочника. На первом экране список всякой ебалы. При тапе на элементе списка вызывается второе активити с более детальным описанием и видюшкой из ютуба. Вопрос вот в чем: предполагается, что данных будет много, поэтому каким способом лучше хранить данные, на СД карте или как то через БД?

Ответы>>767475

sage 12 Июн, 00:26 #170 #767475

>>767471
Много — это сколько?
Данные — это в что и в каком формате?

Ответы>>767482

12 Июн, 00:30 #171 #767482

>>767475
Около 500 записей.
Все в текстовом виде, только видосик с ютуба отличается. Ну мб еще какая то картиночка в пункте списка

Ответы>>767486

sage 12 Июн, 00:34 #172 #767486

>>767482
Пиши в БД.

Ответы>>767487

12 Июн, 00:36 #173 #767487

>>767486
Окей, спс.
Сажа то зачем?

12 Июн, 07:40 #174 #767589

Парни. опытные разрабы. Подскажите, как грамотно распланировать задачи?
Я пилю приложуху, но всё происходит как-то без плана.

Есть план того, как приложение должно выглядеть.
С чего надо начинать?
Вот смотрите.

Там будет сплэшскрин.
Потом открывается спарсенные заголовки.
По клику на эти заголовки открывается статья.
Сверху над заголовками есть кнопка, которая показывает другие жанры(переход на новую активити).

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

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

Как быть?

Ответы>>767592>>767595>>767613

12 Июн, 08:08 #175 #767592

>>767589
А что, добавить новую активити для сплешскрина и установить для неё интент фильтр - не вариант?

Ответы>>767594

12 Июн, 08:09 #176 #767594

>>767592
запутался, говорю ж(

12 Июн, 08:13 #177 #767595

>>767589
> Это меня выбесило и я снёс к хуям весь проект ,потому что запутался. Не могу работать, когда не понимаю, что и где лежит и всё перепутано.
Проиграл. Но все же ты продержался дольше чем многие другие. Тебя еще ждет замечательный мир несортируемых по папкам лейаутов и дроваблов.

Ответы>>767687

12 Июн, 09:40 #178 #767613

>>767589
https://ru.wikipedia.org/wiki/Git

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

12 Июн, 11:38 #179 #767660

>>766855
Спасибо.

12 Июн, 12:11 #180 #767683

>>767172
Бамп

Ответы>>767688

12 Июн, 12:17 #181 #767687

>>767595
до этого я делал рабочую приложуху, всё было хорошо и результат заказчка устроил.

но меня не устроила эта богомерзкая мусорка в папках и подпапках.
Ты просто не можешь представить себе, Анон, как я ненавижу, когда всё разбросано в хуевых непонятных местах.
Ненавижу блять

Ответы>>767693

12 Июн, 12:19 #182 #767688

>>767683
Слушай клики в айтемах вьюпейджера, прокидывай выше.

Ответы>>767700

12 Июн, 12:29 #183 #767690

>>767315
>я достаточно хорошо умею cpp
Если Java тебя напугала - то недостаточно хорошо.

Ответы>>767948

12 Июн, 12:33 #184 #767693

>>767687
> как я ненавижу, когда всё разбросано в хуевых непонятных местах.
Кстати, никто не встречал сервиса что бы перегнать PNG (xxxhdpi) -> Vector Drawable?
Заебали эти подпапки под разные разрешения, сил уже нет.

12 Июн, 12:49 #185 #767700

>>767688
Ну это костыль, я уверен, что можно пофиксить

12 Июн, 15:27 #186 #767794

Напишите пожалуйста в каком городе/сколько получаете, и какие приложения пилите.
Пилю сейчас одно приложение в софтверной компании, которая вообще не занимается написанием приложений для конченого пользователя, отлично знаю что это приложение не отобьет мою зарплату, лол.

Ответы>>767815>>767816>>767826>>767840>>768631

12 Июн, 16:10 #187 #767815

>>767794
Мск. Корпоративные приложения. 250к

12 Июн, 16:10 #188 #767816

>>767794
Может, у тебя какое-то приложение по заказу от какого-нибудь банка, например, и им похуй на окупаемость, лишь бы отчётность была?

sage 12 Июн, 16:27 #189 #767826

>>767794
С какого хуя я тебе это писать должен...

12 Июн, 16:47 #190 #767840

>>767794
Мухосранск-миллионник. Разные приложения на заказ. 120к

12 Июн, 17:15 #191 #767864

Вопрос по асинктаску. Только не начинайте.
Адекватно ли, если результат какой-то сложный или несколько разных, присваивать это в приватные поля таска и в онПостЭкзикют доступаться вместо жирного дженерика?

Ответы>>767869>>767882>>768079>>768091

12 Июн, 17:17 #192 #767869

>>767864
Алсо, я запятые правильно расставил?

Ответы>>767882

sage 12 Июн, 17:20 #193 #767882

>>767864
>>767869
Вы здесь что, ангельчане? Вот и уёбывайте в своё Чикаго.

Ответы>>767883

sage 12 Июн, 17:21 #194 #767883

>>767882
Не попал по пехтонотреду, не серчайте.

12 Июн, 17:26 #195 #767887

Вопрос по асинкзадаче. Только не начинайте.
Адекватно ли, если результат какой-то сложный или несколько разных, присваивать это в частные поля задачи и в наПослеВыполнения доступаться вместо жирной конструкции обобщения?

12 Июн, 18:18 #196 #767948

>>767690
ну в цпп не видел овер 120 символов в строке. пиздец напугало

Ответы>>767960

12 Июн, 18:32 #197 #767960

>>767948
В хорошем жабокоде тоже не увидишь.

Ответы>>767965

12 Июн, 18:35 #198 #767965

>>767960
стандартный конструктор апки андройд ебашит кучей страшных овер9000 символов строк. Это типо мне не надо?

Ответы>>767970

12 Июн, 18:39 #199 #767970

>>767965
Выражайся нормально, я тебя не понял в полном объеме. особенно эту часть: "кучей страшных овер9000 символов строк"
Да конструкторы вьюшек в андроиде большие, но андроид это один большой костыль. А насчет сигнатуры метода - ставишь перенос стоки после запятой и все, теперь строка не 120 символов а 80, все по канону.

168 Кб, 635x598

12 Июн, 18:54 #200 #767982

Сап ведрач! Меня забанили на Гугле и теперь один вопрос не даёт мне покоя.

Можно ли из приложения менять приоритет выполнения остальных программ или даже заставить систему схибернейтить их на время выполнения моего важного приложения? Или не стоит вскрывать эту тему?

Ответы>>767983>>768031

12 Июн, 19:00 #201 #767983

>>767982
Все что угодно, с рут доступом.

12 Июн, 19:36 #202 #768031

>>767982
Любое foreground приложение имеет более высокий приоритет выполнения.

12 Июн, 19:41 #203 #768040

ну ладно.. с андройдами ты меня успокоил. то-есть мой план -- подучить java.. собрать конструкторец GL и на NDK в стандартные функции GL конторах

Ответы>>768045

12 Июн, 19:43 #204 #768045

>>768040
ссоре не туда вставил конторах..
хотел сказать описываю на NDK геймплей

12 Июн, 20:08 #205 #768079

Самая популярная хуитка на андроидах и никто не ответит? >>767864

Ответы>>768104>>768572

12 Июн, 20:20 #206 #768091

>>767864
Нет.

Ответы>>768092

12 Июн, 20:21 #207 #768092

>>768091
Почему?

Ответы>>768116

12 Июн, 20:34 #208 #768104

>>768079
Популярные они были во времена 1.6, сейчас все на RX

sage 12 Июн, 20:48 #209 #768116

>>768092
Не слишком ли много вопросов на сегодня?

Ответы>>768119

12 Июн, 20:50 #210 #768119

>>768116
Че сагаешь меня? Просто хочу знать чем это плохо (помимо самого асинктаска).

12 Июн, 21:16 #211 #768147

Retrofit (2.0.2) + gzip делали? Везде пишут, что при подсовывании okhttp, он сам разруливает и добавляет в accept-encoding gzip. Но логи говорят о том (logging-interceptor), что нихуя он не добавляет. Я забыл что-то включить, или все-таки надо собственный интерсептор для всего этого писать?

Ответы>>768477

12 Июн, 22:03 #212 #768192

>>762039 (OP)
Аноны, у меня есть фрагмент с вьюпейджером, страницу вьюпейджера пишу в бандл, когда перехожу в другой фрагмент из этого и возвращаюсь вьюпейджер становится на первую страницу, при перевороте всё ок

Ответы>>768195>>768218>>768277>>768637

12 Июн, 22:04 #213 #768195

>>768192
как собственно сделать, чтобы при возвращении из другого фрагмента там была та же страница, что и раньше?

Ответы>>768200

12 Июн, 22:12 #214 #768200

>>768195
Делай через активити

Ответы>>768207

12 Июн, 22:21 #215 #768207

>>768200
нету другого выхода?

12 Июн, 22:36 #216 #768218

>>768192
Если никто не ответит, я завтра вечером из интереса попробую тоже.

12 Июн, 23:47 #217 #768277

>>768192
А как ты заменяешь фрагменты? Если каждый раз делаешь новый фрагмент и реплейсишь, то конечно не будет ничего запоминаться. Попробуй вместо этого записывать фрагмент под конкретным тагом и в случае реплейса делать fragmentManager.findFragmentByTag() и делать новый только если старого не существует. Если не получится, то FragmentInteraction.replace делать fragmentinteraction.detach+attach.

Ответы>>768281>>768288

12 Июн, 23:48 #218 #768281

>>768277
>то FragmentInteraction.replace делать fragmentinteraction.detach+attach.
то вместо FragmentInteraction.replace попробуй делать fragmentinteraction.detach+attach.

12 Июн, 23:53 #219 #768288

>>768277
при возврате делаю popBackStack()

104 Кб, 720x583

105 Кб, 606x516

13 Июн, 10:25 #220 #768477

>>768147
> при подсовывании okhttp, он сам разруливает и добавляет в accept-encoding gzip.
> Но логи говорят о том (logging-interceptor), что нихуя он не добавляет
Ты куда-то не туда смотришь (или твои логи показывают не все).
Вот обычный OkHttp 3.2.0 и GitHub API - из запросе и в ответе прописывается gzip.

Ответы>>768518

13 Июн, 12:21 #221 #768518

>>768477
А с rx адаптером добавляет?

Ответы>>768547

137 Кб, 839x743

94 Кб, 543x502

13 Июн, 13:09 #222 #768547

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

13 Июн, 13:23 #223 #768554

как в сраном d.android.com поставить англ язык, и что бы он бляц автоматом не ставился в рус? как же меня бесит эта хуйня

Ответы>>768555

13 Июн, 13:28 #224 #768555

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

13 Июн, 13:53 #225 #768572

>>768079
>Самая популярная хуитка на андроидах
>асинктаск
лол

Ответы>>768581

13 Июн, 13:58 #226 #768581

>>768572
Нуу.. она популярна.

Ответы>>768589

13 Июн, 14:06 #227 #768589

>>768581
ахахаха

13 Июн, 14:18 #228 #768595

Какие требования для миддла?

Ответы>>768596

13 Июн, 14:19 #229 #768596

>>768595
Знать и уметь асинктаск.

Ответы>>768597

13 Июн, 14:20 #230 #768597

>>768596
>асинктаск
ахахаха, лол

44 Кб, 604x604

13 Июн, 14:37 #231 #768605

>>765863
> package tahreer.ru.passworder
Ты новенький?

13 Июн, 15:45 #232 #768631

>>767794
700к сити, клиент-серверное приложение, 15к

13 Июн, 15:52 #233 #768637

>>768192
мб сохранить текущую позицию вьюпейджера и засетать при резюме?

Ответы>>768652

13 Июн, 16:36 #234 #768652

>>768637
Ну я теперь храню страницы в переменной класса и подставляю её во вьюпейджер, вроде всё работает

13 Июн, 17:09 #235 #768678

Во фрагменте, который setRetainInstance(true), качаю видосики с дропбокса с помощью dropboxAPI+rxjava. subscribeOn в новом потоке. Зачем кешировать обсервер, и отписывать/подписывать перед/после поворота? Запрос и без этого не прерывается. Ведь я правильно понимаю: тк объект фрагмента не уничтожается-->новый поток который мы вызвали тоже не прерывается. В onCompleted с UI нет никаких взаимодействий.
Поворот обрабатываю не в ручную офк.

Ответы>>768693

13 Июн, 17:24 #236 #768693

>>768678
Стоит в сервис с нотификашкой вынести, так как грохнет кто-то твою активити и видосик не скачается, ставлю 1 звезду.

13 Июн, 19:40 #237 #768773

Сеньоры, это норм, что при тыкании моего приложения оно разрастается до 55-60мб, а при инициации gc в студии оно становится сначала 32, а потом опять при инициации 22, это мой быдлокод или всё ок?

Ответы>>768777>>768787>>768800>>769440

13 Июн, 19:43 #238 #768777

>>768773
не ок.

Ответы>>768778

13 Июн, 19:45 #239 #768778

>>768777
почему?

13 Июн, 20:02 #240 #768787

>>768773
А мне кажется все ок, если ты конечно не ловишь OME, возможно стоит добавить всяких освобождений в onTrimMemory

13 Июн, 20:25 #241 #768800

>>768773
Какое у тебя разрешение экрана и сколько всего памяти на устройстве?

Ответы>>768802

13 Июн, 20:27 #242 #768802

>>768800
1280x720
1 Гб
И да, в приложении много картинок, юзаю Picasso

Ответы>>768808

13 Июн, 20:48 #243 #768808

>>768802
В onDestroy (не очень много смысла) или onTrimMemory (а тут уже больше смысла, лови кейз TRIM_MEMORY_UI_HIDDEN) своей активити и чисти кеш картинок. http://stackoverflow.com/questions/22016382/invalidate-cache-in-picasso

Ответы>>768826

13 Июн, 21:14 #244 #768826

>>768808
спасибо, но я думаю пока не приложение не падает, оставлю так

Ответы>>768834

13 Июн, 21:24 #245 #768834

>>768826
>не приложение
Оговорки по Фрейду.)))....)

13 Июн, 22:52 #246 #768869

Приветик. Я тут хочу написать приложение, но останавливает отсутствие вменяемой java-библиотеки для существенной части функционала. Конкретно - парсинг abc-нотации и генерация изображения с нотами. Нашел однако примерно то, что мне надо на js - https://github.com/paulrosen/abcjs . Эта библиотека делает все что мне нужно, но заточена она под веб, svg выплевывается в dom-элемент. Есть ли способы как-то засунуть все это в андроид-приложение? Т.е. загружаем библиотеку в какой-нить javax.script , выполняем, это все я себе еще более менее представляю, но вот как перехватить svg изображение и например передать во вьюху, м?

Ответы>>768919

14 Июн, 00:20 #247 #768919

>>768869
WebView, там все удобно.

Ответы>>768922

14 Июн, 00:24 #248 #768922

>>768919
Смешно.

Ответы>>768934

106 Кб, 600x1953

14 Июн, 00:43 #249 #768934

>>768922
Кто тут шутит — пишешь html+js в ассетах, загружаешь в WebView и пишешь @JavascriptInterface

Ответы>>768947

14 Июн, 01:05 #250 #768947

>>768934
Потом удивляешь, почему всё работает через жопу и жутко медленно.

Ответы>>769147>>769925

14 Июн, 02:00 #251 #768958

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

Ответы>>769013>>769048

14 Июн, 07:30 #252 #769013

>>768958
У апбарлейаута есть листнер на скролл.

Ответы>>769075

14 Июн, 09:25 #253 #769048

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

Ответы>>769075

14 Июн, 10:05 #254 #769075

>>769013
>>769048
А там на всех девайсах будет одинаковое значание в лисинерах?

Ответы>>769078

14 Июн, 10:09 #255 #769078

>>769075
Нет, там оффсет отдается в пикселях.

14 Июн, 12:47 #256 #769147

>>768947
Ой все, у меня на трехлетнем теле летит приложение с такой вьюхой, и норм.

14 Июн, 14:49 #257 #769223

AccountManager еще используется или он как AsyncTask? Как вы вообще по-пацански делаете аутентификацию юзера, и сохранение токена?

Ответы>>769253>>769386

14 Июн, 15:20 #258 #769253

>>769223
Я бы предложил OAuth2 и хранение токена в дефолтном KeyStore андроида.

14 Июн, 17:49 #259 #769386

>>769223
Конечно используется. И именно его и нужно использовать.

14 Июн, 18:25 #260 #769403

А можно сделать чтобы диалог (Dialog()) не блочил активити? В смысле если я нажал куда-то помимо окна диалога, ивент дошел бы до нижележащей активити.

Ответы>>769552>>769606

14 Июн, 19:18 #261 #769440

>>768773
> Сеньоры
сеньеров полон тред

14 Июн, 21:54 #262 #769552

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

14 Июн, 21:59 #263 #769554

Сап, делал я значит список с автоподрузкой и тут опана:
Caused by: rx.exceptions.OnErrorNotImplementedException: Only the original thread that created a view hierarchy can touch its views.
Код добавления элементов:
public static void fake_loadNewsUsingAdapter(int position, SimpleBindableAdapter<NewsItem> adapter, String lorem) {
/NewsItemObservableEmulator.getFakeNews(lorem)
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(Schedulers.io())
.flatMap(newsItems -> Observable.from(newsItems.getNews()))
.subscribe(newsItem -> adapter.add(new NewsItem(newsItem.getTitle(),
newsItem.getDescription())), e -> {e.printStackTrace(); adapter.setItemsLoading(false);},
() -> adapter.setItemsLoading(false));/
NewsItemObservableEmulator.getFakeNews(lorem)
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(Schedulers.io())
.map(newsApiObject1 -> newsApiObject1.getNews())
.map(newsApiItems1 -> translateFromApiDataToNormal(newsApiItems1))
.subscribe(newsItems -> {adapter.addAll(newsItems); adapter.setItemsLoading(false);});
}

что то, что закомменчено, что то, что не закомменчено вызывает эту ошибку. Что собсна с ней делать ?
При этом если добавить в onError что-нибудь типа e -> e.printStackTrace(); то будет выскакивать такая ошибка только на первом элементе из "порции", да притом не со 100% шансом. Почему эта фигня вообще происходит и как ее исправить ? Подумываю вот увеличить расстояние до конца подруженной части списка после прохождения дальше которого инициируется подгрузка

Ответы>>769555>>769559

14 Июн, 22:01 #264 #769555

>>769554
Пардон, звездочки бли зверско скушаны, очевидно перед NewItemObservableEmulator и после setItemsLoading(false)); должны стоять звездочки

14 Июн, 22:08 #265 #769559

>>769554
упс, то я дурак, .subscribeOn(AndroidSchedulers.mainThread()) нужно юзать , а не .observeOn(AndroidSchedulers.mainThread()) ;
Придумали же епт, названия

Ответы>>769560

14 Июн, 22:19 #266 #769560

>>769559
> subscribeOn сетевой запрос на главный поток
Разберись с этими операторами полностью, ты опять делаешь не так.

Ответы>>770200

14 Июн, 23:39 #267 #769606

>>769403
С точки зрения UX, так делать не стоит.

15 Июн, 09:20 #268 #769812

Сап, братишки, нужна ваша помощь.

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

Как это можно сделать?

Сейчас разбираюсь с драйв api, но как-то все мутно, не до конца понимаю как все работает. Получается, что я могу только создать файл в облаке, а потом побайтово скопировать содержимое своего файла туда, все правильно понял?
И можно это делать не только для .txt, а для любых форматов?

Ответы>>769834

15 Июн, 09:40 #269 #769824

Аноны как сделать, чтобы кнопка меняла иконку после нажатия, а то сейчас я это в коде делаю

Ответы>>769839

15 Июн, 09:58 #270 #769834

>>769812
Firebase storage для файлов, а ссылки на файлы хранишь в Firebase database.

Ответы>>769876>>769901

15 Июн, 10:00 #271 #769839

>>769824
Toogle button как вариант.

15 Июн, 10:41 #272 #769862

Как гуглить туториал про просмотр картинок, как в вк или других приложениях, т.е. когда картинку можно смахнуть вверх или вниз и она вернется на свое место?

Ответы>>769869

15 Июн, 10:54 #273 #769869

>>769862
Открываешь код вк или чего-то там и смотришь. Названия пакетов не обфусфируются полностью, если атм какая-то либа нагуглишь по ней, иначе посмотришь принцип.

15 Июн, 11:19 #274 #769876

>>769834
>Firebase sterage
Это ведь не бесплатно?

Через drive никак не получится?

Ответы>>769882

15 Июн, 11:25 #275 #769882

>>769876
Я думаю тебе 1 гб бесплатной версии хватит.

Ответы>>769892>>769904

15 Июн, 11:38 #276 #769892

>>769882
Боюсь, что может и не хватить много пользователей

Есть помимо офф сайта годные туторы как с этой firebase работать?

15 Июн, 11:48 #277 #769901

>>769834
Зачем использовать датабазу? Одного сторадж недостаточно?

Ответы>>769907

15 Июн, 11:51 #278 #769904

>>769882
Расскажи там 1 GB на всех юзеров или на каждого?
Если на всех, то как там разруливать кому какие данные принадлежат?

Ответы>>769907

15 Июн, 11:57 #279 #769907

>>769901
>>769904
Firebase storage не может в списки файлов, только доступ по названиям. Для этого у нужен database, чтобы запоминать, у какого юзера какие файлы есть.
Разруливание прав происходит через firebase auth и правила описываемые в storage.

5 GB на всех. Но если мало, то google drive офк.

Ответы>>769912

15 Июн, 12:06 #280 #769912

>>769907
>5 GB на всех. Но если мало, то google drive офк.

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

Ответы>>769916

15 Июн, 12:13 #281 #769916

>>769912
А как ты хотел? Ты скачиваешь файл побайтово и выгружаешь в облако тоже побайтово. Другое дело, что в sdk может быть обертка, в которую можно запихнуть io.File, и она сделает все сама.
Можно для любых форматов.

Ответы>>769933>>769958

15 Июн, 12:31 #282 #769925

>>768947

На виндофоне, да ни к ночи будет он помянут, треть программ написаны на html + js, никаких лагов.

Ответы>>769951

15 Июн, 12:42 #283 #769933

>>769916
А что лучше под это использовать? Google Drive Api for Android или Google Drive REST Api?

Ответы>>769978

15 Июн, 12:59 #284 #769951

>>769925
Это там калькулятор даже на десктопе стартует по 10 сек.
Недавно увидел это в живую охуел, сам то на маке сижу.

15 Июн, 13:05 #285 #769958

>>769916
>Можно для любых форматов.

А как эти любые форматы запилить?
Файл создается через MetadataChangeSet.Builder(), там есть .setMimeType("") куда нужно пихнуть тип файла. Список типов вот https://ru.wikipedia.org/wiki/Список_MIME-типов - он достаточно ограничен.

Можно это как-нибудь обойти?

Ответы>>769978

15 Июн, 13:22 #286 #769978

>>769958
Есть такая штука
MimeTypeMap.getSingleton().getMimeTypeFromExtension

Если она вернет null, ты можешь попробовать задать application/x-binary.

>>769933
Ну, я бы в первую очередь все-таки попробовал Api for Android, чем самому писать все запросы.

Да и я вообще с Drive не работал.

15 Июн, 16:53 #287 #770129

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

15 Июн, 18:25 #288 #770200

>>769560
хер его знает, ui не фризит, не ругается, сам был удивлен

15 Июн, 18:38 #289 #770212

Антош, у меня org.junit.Assert.fail прерывает тестирование и остальные тесты не проходят. Как сообщать в тесте о том что этот тест не прошел, но не прерывать все тестирование? JUnit 4.12

Ответы>>770217

15 Июн, 18:44 #290 #770217

>>770212
test {
abortOnErrors = false
}

Ответы>>770226

15 Июн, 18:53 #291 #770226

>>770217
Куда это пихать? Запихнул в build.gradle он говорит что "Gradle DSL method not found: 'test()'"

118 Кб, Webm

15 Июн, 19:13 #292 #770233

Не анимирует последние of type виджеты внутри PreferenceFragment. На эмуляторе nexus7 api22 тоже. Что-то очевидное упускаю? В чем может быть дело?

SettingsActivity.java http://pastebin.com/7QKSmc3y
preferences.xml http://pastebin.com/kFJCcrwR
activity_settings.xml http://pastebin.com/rBg10mz3

Ответы>>770280

15 Июн, 20:39 #293 #770280

>>770233
> android.preference.PreferenceFragment
v7, v14 тоже не работают? Да и в них вроде материал дизайн завезли.

Ответы>>770322

15 Июн, 21:24 #294 #770322

>>770280
Спасибо, с v14 заработало (v7 не смотрел). А что не так со стандартным может быть, не представляешь?

587 Кб, 852x477

Фрагменты НЕ нужны 15 Июн, 21:26 #295 #770325

https://www.youtube.com/watch?v=jl1HRiCaAP4

Эти ребята прямо про меня рассказывают, готов подписаться под каждым словом.

TL;DS
SOLID + Kotin + Reactive programming = Рулят

Ответы>>770367>>770507>>771960

15 Июн, 22:01 #296 #770358

Аноны, почему может не вызываться onDestroy у фрагмента, после инициации gc, этого фрагмента уже нет на экране офк?

Ответы>>770369

15 Июн, 22:08 #297 #770367

>>770325
Код где? К чему мне твой треп на пол часа.

Ответы>>770422

15 Июн, 22:09 #298 #770369

>>770358
Он застрял во фрагмент менеджере. addToBackStack например. onDestoy вызывается не из-за сборщика мусора, его вручную вызывает фрагмент менеджер же, не?

15 Июн, 22:11 #299 #770373

Такс, котаны.
Есть foreground сервис в котором находится объект-БТконтроллер внутри которого крутится обмен данными с Bluetooth LE устройством.
В активити биндится сервис и таким образом через ссылку на сервис любые фрагменты, наследованные от BaseFragment получают ссылку на БТконтроллер.
Проблема в том, что эта сцука, БТконтроллер не зануляется при уничтожении нахуй, всего. И сервиса и активити.
Что с этим делать?

Ответы>>770431

621 Кб, 847x472

15 Июн, 22:43 #300 #770422

>>770367
> Код где?
Какой тебе еще код?.. думаешь так просто "слез с фрагментов точеных, запрыгнул на flow дроченый".
Нет, няш, тут думать надо над чистой архитектурой и правильно разделять UI на custom views.

Еще кстати хорошая идея выноса чистого Java/Kotlin код в отдельный модуль без Android API зависимостей.

Вообще очевидные вещи раскатывают, один хрен года за 3 до этого доходишь сам.

Ответы>>771961

15 Июн, 22:54 #301 #770431

>>770373
ЕЛКИ ПАЛКИ!
Ссылка на сервис была с модификатором static.

15 Июн, 23:24 #302 #770457

Сколько будет жить отдельный поток вызванный из приложения, если юзер закроет его нажимая кнопку назад, а не через swipe task? До тех пор пока не завершит свою работу? Или это нихуя не безопасно и система может грохнуть его в любой момент?

15 Июн, 23:45 #303 #770470

>>762039 (OP)
Какого хуя LeakCanary не работает? Просто ничего не происходит, юзал её месяца два назад, она постоянно брала дамп и анализировала его, щас нихуя

15 Июн, 23:58 #304 #770486

Имеет ли смысл искать альтернативу localbroadcast, если объемы передаваемых данных примерно такие: каждые 2 сек 2-3 интента суммарно с 60 байт extra. Всего 10 типов интентов?

Ответы>>770497

16 Июн, 00:07 #305 #770497

>>770486
ПРОФАЙЛЕРОМ померь

16 Июн, 00:18 #306 #770507

>>770325
Говно рассказывают.

> SOLID + Kotin + Reactive programming = Рулят
Это и так очевидно.

Ответы>>770668

67 Кб, 225x400

16 Июн, 00:31 #307 #770516

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

Ответы>>770685

114 Кб, 489x930

16 Июн, 08:28 #308 #770668

>>770507
> Kotin
> Это и так очевидно.
Не всем

Кстати, это "полный жизненный цикл фрагмента" (пикрил) еще на Google IO показывали.
https://www.youtube.com/watch?v=k3IT-IJ0J98 (╯°□°）╯︵ ┻━┻
Видео с IO дает как-раз лишний повод задуматься о том что фрагменты зачастую избыточны.

16 Июн, 08:46 #309 #770685

>>770516
Retrofit + SimpleXMLConverter + http://pojo.sodhanalibrary.com (что-бы сгененировать JAVA классы из XML) + Picaso/Volley/Glide (для картинок)

Ответы>>770791

16 Июн, 12:05 #310 #770791

>>770685
Спасибо, но это и так понятно, а вопрос
>какой именно новостной сервис использовать, чтобы был весь вышеперечисленный контент.

Ответы>>770807

16 Июн, 12:19 #311 #770807

>>770791
Ну если ты в /pr/ пришул с таким вопросом, то очевидно что

http://www.gay.ru/news/rainbow/rss.xml

Ответы>>770976

16 Июн, 15:02 #312 #770976

>>770807
title, pubDate, description это не все что надо, должна же быть еще картинка, потом подробное описание и фото/видео галерея

Ответы>>770988>>770991

16 Июн, 15:18 #313 #770988

>>770976
Няшь, тебе сюда https://2ch.hk/b/ (М)

16 Июн, 15:20 #314 #770991

>>770976
Создай сам, захости на firebase свой xml и не еби мозги с хуйней, никто тебе здесь не будет искать rss.

Ответы>>771244

16 Июн, 16:48 #315 #771083

https://youtrack.jetbrains.com/issue/KT-12015
Эй котлиноблядь, они там че объебались? Как я блять без бандлов буду?

Ответы>>771210

202 Кб, 500x500

16 Июн, 16:55 #316 #771104

Посоны, как такую вьюху запилить? Все пнгшки есть, но если их кидать даже на Relative Layout, то с кнопками, которые указывают по диагонали получается проеб

Ответы>>771150>>771210

16 Июн, 17:26 #317 #771150

>>771104
Рисуй на канвасе повернутые битмапки, обрабатывай onTouch всей вьюшки. Или сделай прямоугольные кнопки которые друг на друга накладываются, но это может привести к хуите.

Ответы>>771155

16 Июн, 17:31 #318 #771155

>>771150
Спасибо, анон. Я думал может есть способ попроще без изъебов, но видимо нет.

Ответы>>771192

16 Июн, 18:02 #319 #771192

>>771155
Увы.

Ответы>>771246

22 Кб, 480x800

86 Кб, 680x494

117 Кб, 560x561

16 Июн, 18:15 #320 #771210

>>771083
Ну так нафиг ты юзаешь EAP, у меня на 1.0.2-1 все OK
Будешь обзываться, не буду отвечать.

>>771104
На Android 4.1 (скорее всего) и выше можно что-то похоже сделать через: ViewGroup + View.setRotation
Код: http://pastebin.com/uHaUGcXs

Ответы>>771215>>771246>>771270>>771800

16 Июн, 18:27 #321 #771215

>>771210
Я использовал 1.0.2 это разве early?

16 Июн, 18:55 #322 #771244

>>770991
кстати, а как в firebase просто сделать запрос за данными, без взякой хуйни типо подписка на изменения

Ответы>>771746

37 Кб, 791x178

16 Июн, 18:56 #323 #771246

>>771210
>>771192
Пиздец я даун, посоны, тут в 5 строк это все сделалось.

Ответы>>771321

16 Июн, 19:26 #324 #771270

>>771210
> Будешь обзываться, не буду отвечать.
Пиздец неженка, смотрите ка, на анонимной борде слегка его оскорбили.

16 Июн, 20:46 #325 #771321

>>771246
Ну вот ты отрисовал с помощью поворотов, теперь лови клики. Ах да, твои нажатия не выглядят по человечески. Нет красивой анимации нажатия.

Ответы>>771344

16 Июн, 21:02 #326 #771344

>>771321
Я пока их еще не начал делать, но смотри как я думаю. Я по нажатию буду делать invalidate и запоминать координату нажатия, потом я по координате определю куда юзер ткнул и уже в onDraw буду подменять битмап на нужный в определенный момент, как-то так. А когда юзер уберет палец с экрана снова перерисую, только все битмапы одинаковыми будут. Как-то так.

Ответы>>771350

16 Июн, 21:05 #327 #771350

>>771344
Да, по другому никак, сделаешь xml аттрибуты для нажатой битмапки и не нажатой, будет норм.

17 Июн, 08:05 #328 #771729

Можно в студии быстро прыгнуть к android.R ресурсу? Типа курсор на android.R.layout.somelayout, ctrl+key -> открылся иксемель.

Ответы>>771747

17 Июн, 08:42 #329 #771746

>>771244
Есть метод что-то типа requestSingle, который отписывается после первого вызова.

Я тебе про firebase hosting говорил, заливаешь xml/json/любое говно и выкачиваешь по прямой ссылке в приложение.

17 Июн, 08:44 #330 #771747

>>771729
На маке cmd+клик по имени ресурса. На винде возможно через ctrl.

Ответы>>771753

17 Июн, 09:00 #331 #771753

>>771747
А, точно. Меня просто иногда кидает на сгенерированный R класс. Например v7.preference.R.layout.preference xml можно найти в ресурсах, но студия не понимает. Это как-то фиксится?

17 Июн, 09:42 #332 #771763

почему setImageBitmap(null) не работает на android 5.0+ ?
(память не вычищяется)

Ответы>>771782

17 Июн, 10:25 #333 #771782

>>771763
Иди гугли "как работает Java GC"

Ответы>>771953

17 Июн, 10:40 #334 #771800

>>771210
Ангел?

17 Июн, 11:00 #335 #771821

Писать на Qt на ведре не зашквар?
Maemo-dev ITT

Ответы>>771826

17 Июн, 11:03 #336 #771826

>>771821
Писать под ведро вообще зашквар, независимо от того, как писать.

Ответы>>771899

17 Июн, 12:13 #337 #771899

>>771826
Толстяк в треде, все в инкапсуляцию.

Ответы>>772208

17 Июн, 13:36 #338 #771953

>>771782
да там вообще не вычищается, или что я там должен вычитать про GC что в лолипопе он не работает?

17 Июн, 13:47 #339 #771960

>>770325
что ты несёшь кретин? При чем тут SOLID?
Давай, расскажи мне про OCP,LSP,ISP.
Как у тебя это всё реализуется. Каких-то базвордов понахвотался, шёл бы ты отсюда.
PS А чё, Java+SOLID не рулит?

Ответы>>771969

17 Июн, 13:49 #340 #771961

>>770422
Короче ты кретин.
Любое говно + SOLID рулит.
А ты дегенерат который котлину приписывает вещи которые были придуманы за 20 лет до него

Ответы>>771969

736 Кб, 300x300

17 Июн, 14:11 #341 #771969

>>771960 >>771961

Ответы>>772398

любитель flow вернулся в тред 17 Июн, 17:59 #342 #772199

Таки в итоге я допер, что при триггере onPause activity не рушится, но по какой-то неведомой причине умирают массово view-шки, прикрепленные flow. Решение как два пальца - брать и отлавливать при onPause все состояния дочек view, ждать onResume и после ВНЕЗАПНОЙ (и неадекватной) попытки KeyChanger-а пересоздать текущий view, передаем в нее лежащие в Activity данные. Ура, товарисщи, теперь проблем-то с Flow и не осталось :D

Ответы>>772212

17 Июн, 18:04 #343 #772208

>>771899
Ни разу не толстота же.

17 Июн, 18:07 #344 #772212

>>772199
Ну раз пришел, ответь как на вопросы:
1) что там mvc/mpv/mvvm?
2) что там с поворотами?
3) есть ли там какой-то аналог биндинга (как в mvvm)?

Ответы>>772220>>772243

17 Июн, 18:16 #345 #772220

>>772212
1) Я делаю по mvp все, и мне более чем нравится. Для mvvm извольте юзать data-binding или что-либо наподобие, ибо у этой либы цель вообще иная.
2) Не смотрел, но коли могу манипулировать State-ами вьюх, то и повороты обрабатывать не то чтобы сложно было. Если интересно - могу завтра попробовать и отписать.
3) см п1. Хочешь связывание - используй другие библиотеки, эта сделана не для того, чтобы биндить данные.

Ответы>>772247

17 Июн, 18:34 #346 #772243

>>772212
P.S. Но только учти, что будет очень непривычно :)

17 Июн, 18:37 #347 #772247

>>772220
Кудани (на pastbin) пример идиоматичного презентера и вьющки

Ответы>>772250

17 Июн, 18:39 #348 #772250

>>772247
Если не возражаешь - завтра, я просто уже посидел часиков 10 в кафе за компом и у меня рвотный рефлекс на создание вьюх ^_^

Ответы>>772254

17 Июн, 18:41 #349 #772254

>>772250
OK, заодно и про повороты выясни :)

Ответы>>772266

17 Июн, 18:54 #350 #772266

>>772254
заметано

69 Кб, 600x600

17 Июн, 19:49 #351 #772319

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

Ответы>>772349>>772378>>772402

17 Июн, 20:04 #352 #772344

Андроиданы, в приложении нужна функция перевода с одного языка на другой. Где можно взять годный переводчик?
Бегло порылся в google.translate API, он вроде присобачивается только к сайтам для перевода оных. Есть какие-нибудь встраиваемые базы, которые можно использовать в своих приложениях? Онлайн/оффлайн не так важно, главное достаточная гибкость и уже не готовое отдельное приложение.

Ответы>>772367

17 Июн, 20:10 #353 #772349

>>772319
Как порешает тогда и приходи.

17 Июн, 20:25 #354 #772367

>>772344
> он вроде присобачивается только к сайтам для перевода оных
https://cloud.google.com/translate/v2/translating-text-with-rest#translating-a-single-string

Ответы>>772379

17 Июн, 20:38 #355 #772378

>>772319
да вот нихуя, приложения в цене только растут, пряморуких кодеров все меньше и меньше, спрос на услуги все больше и больше ( живу в ДС, опыт - год, работу предлагали трижды, сейчас на аутсорсе в веб-студии, средняя цена проекта ios + android + backend - 300-450к )

17 Июн, 20:38 #356 #772379

>>772367
Спасибо. Вероятно что-то пропустил, пойду перечитаю более вдумчиво.

17 Июн, 20:59 #357 #772398

>>771969
Я с ним отчасти согласен.
Ладно бы были трюки с делегатами, дак нихуя этого нету. А так однохуйственно что ваши вары/валы, что свойства класса из коробки.

Ответы>>772400

17 Июн, 21:01 #358 #772400

>>772398
Да и багов однохуйственно

Ответы>>772403

17 Июн, 21:02 #359 #772402

>>772319
Ну это относится ко всему ИТ.
Но когда вижу какие рахиты входят в ит то немного успокаиваюсь. Они никак не повлияют и не задемпингуют мой ценник, ибо они не могут сделать то что я.
Да и советую смотреть на индусов, они самые дешевые, но с ними работают один раз, первый и последний.

17 Июн, 21:03 #360 #772403

>>772400
Что?

17 Июн, 22:31 #361 #772490

Статья для новичков про архитектуру MVP и сохранение презентера при повороте экрана.
https://github.com/konmik/konmik.github.io/wiki/Introduction-to-Model-View-Presenter-on-Android

Ответы>>772558>>772756

17 Июн, 23:09 #362 #772558

>>772490
Спасибо.

18 Июн, 02:48 #363 #772756

>>772490
Почему не по русски? Я не буду такое читать

Ответы>>772822>>772953

18 Июн, 08:57 #364 #772796

Передавать 3 листа строк (~100 элементов, <100 символов) в интенте это оукей?

Ответы>>772822

18 Июн, 09:58 #365 #772822

>>772756
:^)
>>772796
Пахнет неприятно, может быть лучше БД?

Ответы>>772829

18 Июн, 10:06 #366 #772829

>>772822
Активити берет из бд, показывает элементы. Клик на элемент -> другая активити показывает выбранные первой из бд элементы в пейджере. Первая не следить за апдейтами бд, поэтому если во второй брать из бд, ей могут прийти другие данные.

Ответы>>772831

18 Июн, 10:09 #367 #772831

>>772829
Как они будут другими, если у них айдишники одинаковые будут? Или у тебя там в фоне еще кто-то может выбранным данным что-то поменять, ну тогда здесь флоу какой-то не правильный, нельзя менять выбранные данные, если так пойдет то ты можешь получить выбранные и измененные данные, может какую-то блокировку на изменения вешать?

18 Июн, 12:54 #368 #772953

>>772756
Можно кстати перевести. В целом, статья годная, всё просто и по делу.

18 Июн, 12:58 #369 #772955

Котаны, подскажите как сделать такую вещь:
Есть StartActivity, оно запускается при старте приложения.
Если запущен сервис - то в oncreate или в onstart StartActivity произойдёт переход на MainActivity.
Как мне уничтожить к хуям StartActivity после перехода на MainActivity, чтобы юзер по нажатию на back button не попал обратно на MainActivity?

Ответы>>772960

18 Июн, 12:59 #370 #772960

>>772955
После startActivity(new Intent(StartActivity.this, MainActivity.class) вызови StartActivity.this.finish();

Ответы>>772965

18 Июн, 13:06 #371 #772965

>>772960
Вызов this.финиш после startactivity не помогает.
У меня StartActivity с флагом singleinstance, т.к. два инстанса мне не нужно.

Ответы>>772974

18 Июн, 13:15 #372 #772974

>>772965
Такс! Это мой баг. Вызова finish действительно не было там, где он должен быть.

73 Кб, 384x640

18 Июн, 14:51 #373 #773070

Привет. Подскажите из-за чего после закрытия Activity при помощи кнопки back, из task manager'a эта активити открывается после второго нажатия.
По первому нажатию активити в такс менеджере подсвечивается, но ничего не происходит. По второму нажатию активити запускается.

Почему не по первому нажатию?
ОС: Android 6.

Ответы>>773086

18 Июн, 15:08 #374 #773086

>>773070
На картинки явно не 6 андроид, а максимум 4

Ответы>>773095

18 Июн, 15:13 #375 #773095

>>773086
Так вот в чем проблема! Проблема в картинке.

Ответы>>773142

18 Июн, 16:23 #376 #773142

>>773095
Хоть я и проиграл, но иди нахуй шутник хуев.
Тащи давай флаги с которыми открываешь активности.

Ответы>>773166>>773215

18 Июн, 16:29 #377 #773148

>>762039 (OP)
Хочу разрабатывать под ведро на питоне. Какие подводные камни?

Ответы>>773150>>773167

18 Июн, 16:31 #378 #773150

>>773148
1) Хуй тебе, а не гайды;
2) Хуй тебе, а не производительность;
3) Хуй тебе, а не защита кода;

Ответы>>773173

18 Июн, 16:42 #379 #773166

>>773142
> активности
Не надо так.

18 Июн, 16:43 #380 #773167

>>773148
Дополню коллегу:

4) Хуй тебе, а не вакансии
5) Хуй тебе, а не советы в этом треде

Ответы>>773173

18 Июн, 16:46 #381 #773173

>>773150
>>773167
>1) Хуй тебе, а не гайды;
Ну, у kivy таки есть доки. Но в остальном да.
После питона у меня ява совсем не идёт, а в мобильную разработку хочется.

Ответы>>773179

18 Июн, 16:51 #382 #773179

>>773173
Попробуй Хаскелл. https://github.com/neurocyte/android-haskell-activity/blob/master/src/HaskellActivity.hs

Ответы>>773186>>773191

18 Июн, 16:55 #383 #773186

>>773179
Ох, лол, я уж лучше go подожду. Хотя за хаскель я в своё время брался, но не нашёл ему применения.

18 Июн, 16:58 #384 #773191

>>773179
>Haskell
Фу, только Lisp спасет ведро.

Ответы>>773193

18 Июн, 17:01 #385 #773193

>>773191
Лисп - позапрошлый век, пролог - наше всё.

Ответы>>773201>>773207

18 Июн, 17:05 #386 #773201

>>773193
Только APL

Ответы>>773209

55 Кб, 500x435

18 Июн, 17:10 #387 #773207

>>773193
Снимаю шляпу.

18 Июн, 17:12 #388 #773209

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

Ответы>>773213

626 Кб, 795x444

Where We Stand and What’s Next 18 Июн, 17:16 #389 #773210

Раз такое дело, пора вбросить последние новости про Kоtlin

https://blog.jetbrains.com/kotlin/2016/06/kotlin-night-recordings/

https://www.youtube.com/watch?v=POZmfjRHdfE

Ответы>>773246

80 Кб, 960x720

18 Июн, 17:20 #390 #773213

>>773209
Зачем клавиатуру, шорткатов понаделай. Или с тачпада можно.

Ответы>>773321

18 Июн, 17:25 #391 #773215

>>773142
Флаги не использую, launchmode = "singleInstance", AppCompatActivity.

Ответы>>773303

41 Кб, 487x540

18 Июн, 17:29 #392 #773218

Ананасы, сап. Как убрать вот эти белые пробелы?

вот код:
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="0dp"
android:id="@+id/icon"
android:src="@drawable/lightblue"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textStyle="italic"
android:paddingTop="0dp"
android:paddingRight="50dp"
android:id="@+id/Itemname"
/>

что дописать?

Ответы>>773230

18 Июн, 17:34 #393 #773230

>>773218
Ты покажи xml ячейки с этой хуйней, небось там паддинг.

Ответы>>773232

20 Кб, 321x276

18 Июн, 17:39 #394 #773232

>>773230
http://pastebin.com/dRq6CN40

это весь код.

Прикрепил. паддинга нет.

Ответы>>773235

18 Июн, 17:43 #395 #773235

>>773232
вылечил. вместо src заюзал background

Ответы>>773253>>773255

18 Июн, 17:51 #396 #773245

Раз такое дело, пора вбросить тебе за щеку.

Ответы>>773246>>773254

sage 18 Июн, 17:52 #397 #773246

>>773210
>>773245

18 Июн, 17:58 #398 #773253

>>773235
Ты понимаешь что это неправильно? Сделай картинке wrap_content что бы не было белых полос, так у тебя картинка будет хуевится. И да, вместо fill_parent поставь match_parent, не тащи старье.

Ответы>>773255

18 Июн, 17:59 #399 #773254

>>773245
Чо Вам так с него бомбит, он вроде мирный.

Ответы>>773274

18 Июн, 18:00 #400 #773255

>>773235
>>773253
Или поставь scaleType="fitXY"

Ответы>>773257>>773277

18 Июн, 18:01 #401 #773257

>>773255
это уже лушче

Ответы>>773277

18 Июн, 18:13 #402 #773274

>>773254
Фанбои никому не нравятся.

18 Июн, 18:14 #403 #773277

>>773255
>>773257
Будут проблемы с производительностью на больших изображениях.
Вместо этого, лучше использовать fitCenter() или centerCrop() у Picasso/Glide.

Ответы>>773292

18 Июн, 18:22 #404 #773292

>>773277
>лучше использовать fitCenter() или centerCrop()
Они разніе вещи делают. Что значит лучше?

Ответы>>773308

18 Июн, 18:32 #405 #773303

>>773215
> singleInstance
Это и есть флаг. А он тебе нужен, или ты его просто как написал? У меня были проблемы с ним, когда я открывал хром табы и пытался перейти назад. Мне не давало и выкидывало обратно в хром.

Ответы>>773330

18 Июн, 18:37 #406 #773308

>>773292
Я в курсе.
Значит, что не будет проблем с производительностью.

Ответы>>773471

18 Июн, 18:48 #407 #773321

>>773213
Я на самом деле от математики далёк, так что мне ни APL, ни фортран не понадобятся никогда.

18 Июн, 18:55 #408 #773330

>>773303
Мне не хочется, чтобы активити в которой биндится сервис и производится всякая ресурсоёмкая залупа была создана в двух экземплярах, а это вполне возможно сделать пользователю.
При помощи singleInstance это исправляется.
Даже с launchmode="standard" ничего не меняется.
У меня кстати на MainActivity сделан переход с IntroActivity, которая в манифесте помечена как android.intent.action.MAIN.

Ответы>>773332

18 Июн, 18:57 #409 #773332

>>773330
Заметил сейчас, что иногда MainActivity с первого прикосновения открывается из TaskManager. Но обычно с двух. Причем после первого прикосновения никаких методов никаких активити не вызывается. Со второго - как и положено onCreate и далее всё работает так, как и предполагалось.
Мистика какая-то. Уже выкидывал весь код из onCreate, из onDestroy, из OnBackPressed - не помогает. Не пойму где спрятался косяк.

18 Июн, 20:09 #410 #773410

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

Но я хочу, например, не знать количество строк и циклом заполнить массив картинок. Куда писать цикл?

Думаю, код поможет понять мою идею.

В onCreate если пишу цикл for, то вылетает. если делаю Integer[]someName(){
}и return, то тоже вылетает.

Подскажите, как забить циклом картинок по количеству строк?

Ответы>>773411>>773419>>773426>>773435>>773482>>773556>>773588

18 Июн, 20:09 #411 #773411

>>773410
проебал код
http://pastebin.com/tQ7tJ52F

18 Июн, 20:12 #412 #773419

>>773410
Если айдишники забивать, то никак.

Ответы>>773421>>773423

18 Июн, 20:16 #413 #773421

>>773419
А какой есть ещё вариант?

18 Июн, 20:20 #414 #773423

>>773419
такой вариант сработает?
ImageView whoamiwith = (ImageView)findViewById(R.id.whoamiwith)

и потом в цикле Integer=whoamWith;

Сработать должно?

Ответы>>773426

18 Июн, 20:23 #415 #773426

>>773423
>>773410
Нахуй и впизду!
Что ты хочешь на выходе получить?

Ответы>>773427

18 Июн, 20:24 #416 #773427

>>773426
чтобы было столько картинок, сколько строк

Ответы>>773556

18 Июн, 20:33 #417 #773435

>>773410
>Но я хочу, например, не знать количество строк и циклом заполнить массив картинок. Куда писать цикл?
И как ты узнаешь размер массива картинок?
Я посмотрел код, и нихуя не понял. Что вообще за тупость происходит? Тебе нужно как-то раскрасить листвью что ли? Тогда используй recyclerview и itemdecorator. Не хочешь делать так, а хочешь просто сделать красивое чередование картинок? Сделай массив из все картинок, у тебя это будет
Integer[]imgid = {
R.drawable.lightblue,
R.drawable.gray,
R.drawable.blue,
}
и получай нужную картинку просто по imgid[position % imgid.length]

Ответы>>773905

18 Июн, 20:59 #418 #773471

>>773308
Блять, ты долбоеб? Может у тебя еще суммирование лучше умножения так как быстрее?

Ответы>>773580

54 Кб, 678x445

18 Июн, 21:09 #419 #773482

>>773410
Если ты хочешь избавиться от ручного заполнения массива imgid, то
1) переименовываешь нужные картинки в image_0.png, image_1.png и тд
2) В цикле вызываешь getIdentifier (возвращает ID ресурса по его имени) подставляя имена картинок, типа:
getResources(). getIdentifier("image_"+i+".png","drawable",getPackageName());

https://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String, java.lang.String, java.lang.String)

Ответы>>773485

18 Июн, 21:13 #420 #773485

>>773482
Если честно хуевый подход. Непонятно по имени ресурса что за картинка и тд.

Ответы>>773495

18 Июн, 21:23 #421 #773495

>>773485
ну тогда называй картинки "опасные новости.png" "сверхопасные новости.png" и
в getIdentifier подставляй words.toLower()+".png"

Ответы>>773500

18 Июн, 21:28 #422 #773500

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

Ответы>>773508>>773556

10 Кб, 320x300

18 Июн, 21:35 #423 #773508

>>773500
Спасибо у меня все хорошо, держи подарок.

Ответы>>773512

18 Июн, 21:37 #424 #773512

>>773508
Себе можешь забрать, как раз подойдет под размер твоего ануса, может говно в тред перестанет вылетать.

18 Июн, 22:23 #425 #773556

>>773427
>>773410
Какой вопрос

>>773500
Такой и ответ. Хуярь эти картинки как-нибудь сам.

18 Июн, 22:47 #426 #773580

>>773471
Ну, если при умножении у тебя всё будет виснуть, а сложение будет работать нормально, то да, сложение будет лучше.

Ответы>>773603

18 Июн, 22:50 #427 #773588

>>773410
Я бы сделал два массива ресурсов.
Один с заголовками, другой с идшками картинок.
И будешь получать R.array.my_titles и R.array.my_images

18 Июн, 22:58 #428 #773598

Антон, где я проебался с разметкой, в этом ли трабол?
Как такое фиксится?

Ответы>>773600>>773601

21 Кб, 328x612

18 Июн, 22:59 #429 #773600

>>773598
пикчефикс

Ответы>>773601>>773604>>773607

18 Июн, 23:00 #430 #773601

>>773598
>>773600
Ну и где твоя разметка, даун?

18 Июн, 23:01 #431 #773603

>>773580
Пизди хуйню расти дибилом.

Ответы>>773608

18 Июн, 23:01 #432 #773604

>>773600
> Решено?
Охуенный UI.

18 Июн, 23:02 #433 #773607

>>773600
Что у тебя с тулбаром?

Ответы>>773609>>773626

18 Июн, 23:02 #434 #773608

>>773603
Твоё мнение очень важно для нас, школьник.

Ответы>>773610

18 Июн, 23:03 #435 #773609

>>773607
Хуйня.

18 Июн, 23:03 #436 #773610

>>773608
Да успокойся уже и хватит советовать хуйню.

Ответы>>773614

18 Июн, 23:04 #437 #773613

Ой я ебал, началось лето и это пиздец. Нестерпимое желание укатить из треда.

Ответы>>773620

18 Июн, 23:04 #438 #773614

>>773610
Да говна пожуй, дурачок.

Ответы>>773618

18 Июн, 23:05 #439 #773618

>>773614
Что говоришь? Твоих советов пожевать? Нет спасибо.

18 Июн, 23:06 #440 #773620

>>773613
Так бери и уёбывай, вместо того, чтобы плач Ярославны тут устраивать.
Скучать не будем.

Ответы>>773621

18 Июн, 23:06 #441 #773621

>>773620
Ну конечно, вы тут ковровую бомбардировку говносоветами устраиваете и сами себя в нем топите.

Ответы>>773623

18 Июн, 23:07 #442 #773623

>>773621
И один лишь ты в белом плаще стоишь красивый?

Ответы>>773625

18 Июн, 23:09 #443 #773625

>>773623
Нет, нормальные люди в вашем метании говном просто не участвуют, я просто решил немного образумить.

Ответы>>773629

18 Июн, 23:09 #444 #773626

>>773607
Уже пофиксил, спасибо, адекват. А то понабежало тут школоебов.

Ответы>>773627>>773632

18 Июн, 23:10 #445 #773627

>>773626
Так ты его руками делал чтоль?

Ответы>>773630

18 Июн, 23:11 #446 #773629

>>773625
> Двач
> нормальные люди

Ответы>>773634

18 Июн, 23:11 #447 #773630

>>773627
А чем его еще делать?

Ответы>>773636

18 Июн, 23:12 #448 #773632

>>773626
> Спрашиваешь, что не так с разметкой, не показывая разметку
> Кругом школоебы

Ответы>>773635

18 Июн, 23:13 #449 #773634

>>773629
Понятно. Так на будущее, в нормальных тематиках сидят нормальные люди. Вообще удобнее форума не найти.
Но вот залетевшие школотроны из б засирают все, благо им в тематиках особо не интересно.

Ответы>>773637

18 Июн, 23:13 #450 #773635

>>773632
Подумал, что тут очевидно всё, местные помогут хуй

Ответы>>773640

18 Июн, 23:14 #451 #773636

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

Ответы>>773639

18 Июн, 23:14 #452 #773637

>>773634
> Двач
> Форум

Ответы>>773642

18 Июн, 23:15 #453 #773639

>>773636
> реализовать через лейауты
> готовую вьюху - тулбар
Так это одно и то же ведь, не? Или что ты имеешь в виду?

Ответы>>773641

18 Июн, 23:15 #454 #773640

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

18 Июн, 23:17 #455 #773641

>>773639
Ладно, похуй, просто забей.
Юзай Toolbar и AppCompatActivity

18 Июн, 23:17 #456 #773642

>>773637
Анонимный форум, что тебе не нравится?

18 Июн, 23:57 #457 #773678

Стоит вас на минуту оставить и тред сразу скатывается в говно.

Ответы>>773681

18 Июн, 23:58 #458 #773681

>>773678
Слава богу, ты вернулся!

Ответы>>773693

19 Июн, 00:03 #459 #773693

>>773681
Ну а как иначе? Не могу же я вас бросить.

19 Июн, 07:39 #460 #773905

>>773435
Спасибо, друг. не знаю, кто в треде отписывался - это был не я. Твой совет помог. Прям то, что надо!

700 чаёв с меня

19 Июн, 09:16 #461 #773941

При обновлении приложения SQLite база не будет заново создана, если версия её не изменилась?

Ответы>>773962>>773977

19 Июн, 09:53 #462 #773962

>>773941
Ты о чем вообще?
Если ты про sqliteopenhelper, то он никогда не ПЕРЕСОЗДАЕТ базу,
он может только ее проапдейтить

19 Июн, 10:09 #463 #773977

>>773941
Только если ты сам в онАпгрейд/онДаунгрейд такое не сказал делать.

19 Июн, 10:15 #464 #773981

Скажите, дизайнером в студии кто-нибудь реально пользуется? Вообще, что думаете про него?

Ответы>>774010

19 Июн, 11:04 #465 #774010

>>773981
Что за дизайнер?

Ответы>>774014

19 Июн, 11:05 #466 #774012

В архитектуре MVP где нужно размещать асинхронный код (AsyncTask):
1) Прямо в моделе и далее вызывать методы презентера по результату выполнения асинхронной задачи?
2) В презентере. В моделе при этом реализовать синхронный доступ к данным?

Ответы>>774100

105 Кб, 504x612

19 Июн, 11:06 #467 #774014

>>774010

Ответы>>774020>>775035

19 Июн, 11:09 #468 #774020

>>774014
90% верстаю мышкой.
Остальные 10% через XML.
При этом в custom view делаю так, чтобы в редакторе они отрисовывались точно также, как и в приложении.

11 Кб, 485x124

19 Июн, 11:47 #469 #774042

Сап, двач! Можно ли как-то в GridLayout сделать divider, подобные LinearLayout?

У меня есть три кнопки, между ними - пустошь. Вот пустошь в линеар можно забить либо бэкграундом, либо сделать android:divider и даже сделать divider_height и цвет.

Как сделать divider(или его подобие) в GridLayout?

Ответы>>774046>>774055

19 Июн, 11:53 #470 #774045

Используй recyclerview с gridlayoutmanager, там декораторы можно любые ставить.

Ответы>>774046

19 Июн, 11:53 #471 #774046

>>774042
>>774045

19 Июн, 12:14 #472 #774055

>>774042
А если у тебя три кнопки, то просто сделай LinearLayou с orientation: horizontal

Ответы>>774057

19 Июн, 12:18 #473 #774057

>>774055
там ведь есть дивайдер, да?

Ответы>>774059

22 Кб, 400x338

19 Июн, 12:25 #474 #774059

>>774057
Я никогда не использовал android:divider. Но если ты использовал его в LinearLayout и хочешь сделать что-то подобное в горизонтальном лэйауте, то очевидно,что нужно использовать тот же самый LinearLayout, просто с другим параметром ориентации (горизонтальная вместо вертикальной).

Ответы>>774065

19 Июн, 12:35 #475 #774065

>>774059
Я ошибся. я юзал его в листвью

Ответы>>774071

19 Июн, 12:42 #476 #774071

>>774065
Тогда попробуй обернуть кнопки в фреймлэйауты, ставь нужные маргины кнопкам внутри фреймлэйаута, а уже фреймлэйауты разукрась, как хочешь. Между фреймлэйаутами вроде не будет пустоты. А сами фрейм лэйауты запихни в горизонтальный линеарлэйаут. Можешь заменить фреймлэйауты на кардвью, если хочешь элевэйшн и красивые уголки, можешь заменить фреймлэйаут на релативлэйаут, если хочешь сделать дивайдеры какими-то особенными вьюшками.
Если хочешь какой-то простенький бэкграунд, типа однотонного цвета сзади, то обойдёшься без фреймлэйаутов, просто линеарлэйаут, оборачивающий кнопки, с нужным тебе бэкграундом.
Ну и вариант с ресайклервью с гридлэйаутом и статическим списком объектов и кастомным декоратором. Дохуя кода, сложная обработка кликов по кнопкам, но зато все дизайнопроблемы кладутся на совесть андроида.

Ответы>>774073

19 Июн, 12:43 #477 #774073

>>774071
>с ресайклервью с гридлэйаутом
>с ресайклервью и гридлэйаутменеджером*

19 Июн, 12:54 #478 #774089

>>762039 (OP)
Хуя там подбородок у трапа

19 Июн, 13:02 #479 #774100

>>774012
Во времена android 1.6 писал и так и эдак, в любом случае с asynctask получалась полная лажа.
Хотя для моделей без asynctask было проще писать тесты.

В любой подходе mvc/mvp/mvvm юзать asynctask это устаревший подход.

Asynctask это api-костыль что внести в java 1.6 работу с асинхронными очередями команд как и handle/looper.
x) AsyncTask нельзя нормально зачейнить,
x) для них нужно порождать подклассы либо погружаться в колбек-хел,
x) ну и конечно там много бойлерплейта (особенно если пишешь в стиле java 1.6).

Используй RxJava, это сразу снимет большинство головной боли.
Там и асинхронность будет и тесты легко писать.

Ответы>>774105>>774128

19 Июн, 13:08 #480 #774105

>>774100
Вот допустим, у меня сейчас есть проект, довольно большой, в нём я использую асинктаски для одной цели - конвертации изображений (из файловой системы или в виде массива байтов) в битмапы. Соответственно, в асинктаске тупо пять строчек кода декодирования BitmapFactory с нужными параметрами, плюс абстрактный коллбэк в UI, чтобы я реализовал его в нужном месте и сделал с битмапом необходимые действия. За несколько месяцев разработки не сталкивался ещё со случаем, когда этот механизм меня подвёл бы. RxJava не умею. Вопрос: стоит ли прямо сейчас попытаться заменить этот асинктаск на RxJava-аналог или я не получу никакой выгоды от этого?

Ответы>>774137

19 Июн, 13:14 #481 #774128

>>774100
У меня задачка по-проще, думаю не стоит усложнять применяя всякие сторонние библиотеки.
Мне нужно выбрать через contentResolver некоторые данные по медиатеке пользователя.
Нашел AsyncQueryHandler - кажется это то, что надо.
Получается максимально простое взаимодействие с моделью:
//вызов из Presenter
model.getArtistsList(AsyncQueryHandler callback);

Ответы>>774136

19 Июн, 13:18 #482 #774136

>>774128
А через Loader нельзя это сделать?

Ответы>>774139

19 Июн, 13:18 #483 #774137

>>774105
Усложнение - это путь в никуда.
У меня тоже есть одно место, где используется AsyncTask - внутри Loader для загрузки данных из кэша и апдейта кэша. Работает мегастабильно, при том, что сделано очень просто.

Ответы>>774170

19 Июн, 13:20 #484 #774139

>>774136
Хм, точно. Это можно сделать через CursorLoader.
Пока не знаю что из этих трёх способов лучше.
Вариант с AsyncQueryHandler выглядит самым компактным.

Ответы>>774160

19 Июн, 13:28 #485 #774160

>>774139
Делай через Loader, пусть это и гряный код, пушо придётся имплементить коллбэки непосредственно во View, зато это рекомендуемый способ работы с БД.

19 Июн, 13:37 #486 #774170

>>774137
А зачем загружать данные (из сети) прямо внутри Loader'a?
Я всегда по-другому делаю: Loader загружает данные только из БД. Сервис получает данные из сети, сохраняет их через ContentResolver в БД. После этого, Loader автоматически получает notification, что данные были изменены и сам их перезагружает.

Ответы>>774173

19 Июн, 13:39 #487 #774173

>>774170
Я думаю твой вариант хорош, когда загрузка данных из сети длится достаточно долго.
Кстати, а как правильно: в случае с MVP получать от модели уже ГОТОВЫЕ данные или что-то промежуточное, к примеру Cursor с некоторыми полями, что далее уже преобразуется в объект, который лежит внутри ListAdapter?

Ответы>>774178

19 Июн, 13:42 #488 #774178

>>774173
У меня всегда адаптеры работают с Cursor'ами. Именно поэтому обновление данных так удобно и происходит (CursorLoader + ContentResolver).
А если ты будешь сохранять свои элементы как массив/список/что-то еще, то тебе самому нужно будет реализовывать механизм оповещений и обновлений.

19 Июн, 16:24 #489 #774444

Парни, глупый вопрос, конечно, но скажите: 10 активити в приложении - это не дохуя?
Может, для памяти плохо или ещё что?

Ответы>>774471>>774491>>774557

19 Июн, 16:36 #490 #774471

>>774444
не дохуя

19 Июн, 16:44 #491 #774491

>>774444
От проекта зависит. Для хэллоуворлда 10 конечно дохуя. Для серьезного проекта уже нормально.

19 Июн, 17:10 #492 #774557

>>774444
А фрагментов сколько?

19 Июн, 17:41 #493 #774617

>>762039 (OP)
Как сделать полупрозрачный фрагмент с вьюпейджером, где будут картинки (т.е. обычная галерея). И ещё, как сделать transition анимацию из вьюпейджера в вьюпейджер? transition name вешал и на картинки во вьюпейджерах, и на сами вьюпейджеры, но че то не получается.

Ответы>>774673

sage 19 Июн, 18:34 #494 #774673

>>774617
> Как сделать полупрозрачный фрагмент с вьюпейджером
Так же, как и сделать полупрозрачный фрагмент без вьюпейджера.
> как сделать transition анимацию из вьюпейджера в вьюпейджер
Что?

Ответы>>774684>>774685

19 Июн, 18:46 #495 #774684

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

Ответы>>774685

19 Июн, 18:47 #496 #774685

>>774684
>>774673
Как я понимаю, он хочет сделать анимаци перехода между фрагментами во вьюпейджере.

Ответы>>774692

19 Июн, 19:04 #497 #774692

>>774685
есть фрагмент с информацией о чем-то, там в коллапсинг лейауте маленький вьюпейджер с картинками, по клику на картинку в этом маленьком вьюпейджере должен открываться фрагмент, но уже с большим вьюпейджером, с теми же картинками. И при открытие фрагмента должна происходить вот такая анимация https://guides.codepath.com/android/Shared-Element-Activity-Transition

Ответы>>774892>>774894

19 Июн, 23:24 #498 #774892

>>774692
Это большая и сложная задача. За тебя её тут никто решать не будет. Гугли разные варианты, пробуй.

В любом случае, делать анимации под android - это боль. Что-то более-менее нормальное можно сделать только для api >= 21. И то, очень много проблем. На последнем IO был пример с похожим поведением, что тебе нужно.

19 Июн, 23:28 #499 #774894

>>774692
Проще выбить дизайнеру зубы. А то открывать в вьюпейджере фрагмент с вьюпейджером попросто хуйня.

19 Июн, 23:34 #500 #774896

>>762039 (OP)
Перекат
https://2ch.hk/pr/res/774895.html (М)
https://2ch.hk/pr/res/774895.html (М)
https://2ch.hk/pr/res/774895.html (М)
https://2ch.hk/pr/res/774895.html (М)

20 Июн, 10:20 #501 #775035

>>774014
никогда не юзаю, я олдфаг?

Тред утонул или удален.
Это копия, сохраненная 12 июля 2016 года.

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion