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

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

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

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

19 Кб, 600x321

Разработка под Android тред №13 # OP 24 Фев, 21:55 #665510 В конец треда | Веб

Ловим колбеки софткейбоарда.

Предыдущий тред забивает головы ньюфагов котлином тут:
https://2ch.hk/pr/res/647624.html (М)

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

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

Отдельного упоминания стоят:
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.
Привет клиент-серверка.

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

Ответы>>665514>>665814>>670408>>672083>>674048>>676211

67 Кб, 620x620

32 Кб, 693x242

720 Кб, 1723x2280

24 Фев, 21:56 #2 #665514

>>665510 (OP)
Освятил Kotlin - язык 2011 года разработки, 100% совместимый (в обе стороны) с Java
Текущая версия: 1.0
Разработчики: JetBrains (создатели IDEA, на базе которой сделана Android Studio)
Полная поддержка в: Android Studio / IDEA / RoboVM Studio / Eclipse / Gradle / Maven
Сайт: https://kotlinlang.org , http://try.kotlinlang.org

Вот видео (на русском) про язык, от главного разработчика:
https://www.youtube.com/watch?v=wjkaPXT_vY4
https://www.youtube.com/watch?v=9x6utkLDBs8
https://www.youtube.com/watch?v=VU_L2_XGQ9s
https://www.youtube.com/watch?v=018n0aXiljc

https://www.youtube.com/watch?v=mTr8TWj9MUU
https://www.youtube.com/watch?v=-BvN0X5tqjw

Из коробки поддерживает:
• Проперти. Также ко всем Java set/get методам можно обращаться как к свойствам;
• Лямбды. Вызываются они в виде lamba1(...), а не как "функциональный интерфейс" lambda1.call(...);
В Java методы (где требуются ФИ) можно передавать kotlin-лямбды;
• Экстеншен методы (как в C#).
К любому (даже final) классу можно добавлять сторонние методы которые будут доступны через точку;
• Перегрузку операторов (+,- и тд). К примеру можно два BigDecimal складывать через +, а не метод add(...);
• Поддержка неизменяемых коллекций и объектов на уровне компилятора;
• Non-nullable типы, те прощай NullPointerException;
• НЕТ checked исключений (как они всех заебывают внутри лямбд);

В общем похож на Scala, но проще и всего +400kb к размеру APK (с proguard будет меньше).
RoboVM + Kotlin - отличная замена Xamarin

Ответы>>665536

24 Фев, 21:58 #3 #665523

Из архивов предыдущего.

>Пост 1.
Анон, требуется помощь.
Есть активити, унаследованное от FragmentActivity. В нем один viewpager, и ScreenSlidePagerAdapter, в которому в методе getItem() в зависимости от int аргумента страницы возвращается новый Фрагмент. Лэй-аут фрагмента одинаков для всех 7 страниц - два текствью и радиогруп с 3 кнопками. Текст для текствью берется из string-arrays в strings.xml. Вопрос - как правильно организовать отображение текста, правильную отрисовку - и правильной контроль за сбором данных с кнопок? Я пробовал в самом фрагменте определять страницу, и в зависимости от нее выводить текст. Но оно постоянно выводит первый элемент з массива, как бы я не вказал - или там 4 элемент, или 3. Хелп.

>Пост 2
Не ругайте.
http://pastebin.com/SDwdNKFz

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

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

Сам я заебаный и занятый чтоб вникать, сорян.

Ответы>>666113

24 Фев, 22:04 #4 #665536

>>665514
На авитовской конфе в субботу будешь?

Ответы>>665541>>665542

24 Фев, 22:06 #5 #665541

>>665536
А она где будет я из ДС-4?

24 Фев, 22:06 #6 #665542

>>665536
Вы тут еще кроме языка отношения пообсуждайте.
Асечка писечка? Что там еще?

Ответы>>665592

24 Фев, 22:29 #7 #665592

>>665542
> Асечка писечка
Линкедин, гитхабчик

Ответы>>667900

24 Фев, 22:43 #8 #665614

Поясните за The Protocol Buffers.
Или где почитать нахуй они нужны?
Типа оптимизация передачи данных?

Ответы>>665620>>665621

24 Фев, 22:48 #9 #665620

>>665614
Начни отсюда https://ru.wikipedia.org/wiki/Protocol_Buffers

Краткое описание:
1) Ты в специальном формате описываешь пересылаемые данные.
2) Тебе генерируется классы + код серелизации/десерелиазиции на любом языке (java/c/c# и тд)

24 Фев, 22:49 #10 #665621

>>665614
> Типа оптимизация передачи данных
Типа да, но не в хайлоаде нахуй не надо. json в gzip, хуяк хуяк и в продакшн.

Ответы>>665626

24 Фев, 22:52 #11 #665626

>>665621
Почему в хайлоде ненужен?

Ответы>>665631

24 Фев, 22:54 #12 #665631

>>665626
> но не в хайлоаде нахуй не надо
Не в хайлоаде нет необходимости в его использовании.

Ответы>>665645

24 Фев, 22:57 #13 #665638

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

Ответы>>665643>>665645>>665651>>665652

24 Фев, 23:00 #14 #665643

>>665638
Пол треда обсуждаем как бороться с ссаными жизненными циклами и сремся про то, какую орм/бд использовать.
В иосе таких проблем просто не возникает.

Ответы>>665650>>665652

24 Фев, 23:01 #15 #665645

>>665631
Да как же так, неужели весь хайлод сводится, так вот здесь сбалансируем купим еще сервачков и будет нормас? Столько-то трафика можно сэкономить и клиентам и самому себе.
>>665638
Ну я вот с маком, но прогаю под ведроид? У меня сложилось впечатление что iOS ники сильно жадные, то есть сидят два как фуфелы и ни чо не обсуждают. И еще оба велосипеды пилят блять, вам дали гитхаб жрите - нет напишем очередно [*NSSHITLER_HUI_PIZDA....]

24 Фев, 23:04 #16 #665650

>>665643
Вот да, этим и занимаемся, вам бля дали MVC жрите не поперхнитесь. Вам даже не нужно ебаться с китайскими девайсами и васяно прошивками, и версиями ОС которым больше 3 лет. Иногда пичот.

24 Фев, 23:05 #17 #665651

>>665638
Сам удивляюсь, хоть и пишу на маке в основном под Kotlin, но с удовольствием бы потер за Swift.
К сожалению в iOS треде тоже большинство аутиство, до сих пор разрабатывающих на Object-C.

Ответы>>665675

24 Фев, 23:06 #18 #665652

>>665643
Так весело же, если только не про жизненные циклы к чайлд фрагментах.
>>665638
Вот ты мне скажи, как в иосе словить действие открытия клавы?

Ответы>>665659>>665673

24 Фев, 23:06 #19 #665654

Есть обьект А (activity) который использует обьект Б. Обьект Б имеет ссылку на обьект А через интерфейс, листенер типа. ( b.setListener(this) ).
В какой-то момент внутри обьекта А, обьект Б обнуляется (b = null).

Протечет ли обьект А?
Нужно ли обнулить листенер, ссылку внутри Б на А, ( b.setListener(null) ) перед обнулением самого Б?

Ответы>>665659

24 Фев, 23:12 #20 #665659

>>665654
> Протечет ли обьект А?
Ну хуй знает, я не помню, GC ходит восходяще или нисходяще до рута. Так что ориентируемся на то, что протечет, поскольку В удерживает ссылку на А.
> Нужно ли обнулить листенер, ссылку внутри Б на А, ( b.setListener(null) ) перед обнулением самого Б?
Ну если ты уверен, что ссылок на Б больше нет, то не нужно.

Тебе надо в A.onDestory делать всего то b.setListener(null)

>>665652
Да нихуя не весело, я уже заебался с этими циклами.

Ответы>>665690

24 Фев, 23:14 #21 #665664

Вот и стали появляться уебаны, нихуя не знающие ни плюсы, ни джаву, но зато будь здоров пишущие под андроид.

И ещё наверно считают себя пиздец крутыми андроидщиками.

Ответы>>665665>>665668

24 Фев, 23:16 #22 #665665

>>665664
Нахуй мне твои плюсы? Нахуй мне твоя джава, если мне в 90% случаях нужен только ссаный ArrayList и JsonObject?

Ответы>>665669

24 Фев, 23:17 #23 #665666

Про этот kotlin забудьте, умрёт как и swift так и не успев родиться.

Как писали на джава так и пишут, как писали 30 лет на плюсах, так и будут писать. Как писали на Obj-C так и пишут.

Ответы>>665671>>665672>>665676

24 Фев, 23:18 #24 #665668

>>665664
Ты о чем?

24 Фев, 23:18 #25 #665669

>>665665

в приложениях уровня helloworld может и так.

24 Фев, 23:19 #26 #665671

>>665666
Свифт не умрет, потому что его насаждают сами эпл, в отличие от котлина.

24 Фев, 23:19 #27 #665672

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

51 Кб, 668x292

24 Фев, 23:19 #28 #665673

>>665652
> как в иосе словить действие открытия клавы
Держи код на Kotlin под iOS

Ответы>>665677>>665680

24 Фев, 23:20 #29 #665675

>>665651
>до сих пор разрабатывающих на Object-C.
Ты охуел? что с ним не так? Плюс РЫНОК требует, а не сырой свифт, где блядь баг на баге с колбеками даже

24 Фев, 23:21 #30 #665676

>>665666
>умрёт как и swift
О, а вот и маня диванная, свифт ка краз во всю развивается и едет.

Ответы>>665681

24 Фев, 23:21 #31 #665677

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

Ответы>>665679>>665695

24 Фев, 23:22 #32 #665679

>>665677
> Почему тогда на ведре все через жопу?
Потому что писали индусы за еду?

Ответы>>665689

24 Фев, 23:22 #33 #665680

>>665673
Можно даже легче.

24 Фев, 23:22 #34 #665681

>>665676

да да да, и джава скоро умрёт и си с плюсами станут не нужны.

Возвращайся через 15 лет.

Ответы>>665710

24 Фев, 23:24 #35 #665689

>>665679
Так перепишите блять.
У меня порвало жопу, пойду проветрюсь.

Теперь я хочу сьебать в иос.

24 Фев, 23:24 #36 #665690

>>665659
onDestroy() ведь не всегда вызывается, в onStop() тогда.
Ну да, ладно, спасибо.

24 Фев, 23:26 #37 #665695

>>665677
На Android если приложение сдохнет, то потом запустится с предыдущего окна и поведение из коробки.

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

Ответы>>665707>>665708

24 Фев, 23:29 #38 #665707

>>665695
Ради этого засовывать все остлаьное в жопу как-то не оч.

24 Фев, 23:30 #39 #665708

>>665695
>А если хочешь, что бы история экранов восстановилась, придется сильно заморочиться.
Не звезди.

Вывод - ведрокодинг для довнов.

Ответы>>665809

24 Фев, 23:31 #40 #665710

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

к чему ты кресты приплел вообще не понятно, дегенерат ебаный, типичный джаводебилоид.

Ответы>>665816

25 Фев, 00:43 #41 #665809

>>665708
Иди ка ты нахуй с такими выводами.
Я уверен что и на иосе есть говно похлеще прочего.

Лайфсайкл на самом деле норм штука, меня другие вещи бесят.

Ответы>>665830

25 Фев, 00:45 #42 #665814

>>665510 (OP)
Хелп.Объясню ситуацию: есть некоторый класс, которому в конструкторе передается некое число. Обьект этого класса создается в фрагменте. От этого числа зависит то, какой массив строк из ресурсов передастся. Выборка происходит еще на этапе конструктора. Вот в чем недопонимание - в конструкторе оно выбирает верный массив, но метод этого класса возвращает всегда один и тот же массив.

Ответы>>665816

# OP 25 Фев, 00:47 #43 #665816

>>665710
Я хз кто вы и о чем спорите.
Хватит срать на джаву и ведро, сириусли.
Я сейчас зайду в ваш гейосный тред и начну вайнить что вы там дибилы и работаете на говноподелках для даунов. А у нас тут чистый опенсорс и тд.

>>665814
Я добавил твои посты под шапкой, будь внимателен.

25 Фев, 01:08 #44 #665830

>>665809
>Я уверен что и на иосе есть говно похлеще прочего.
Ну давай, найди. Я тебе маффины вышлю.

Ответы>>665838

25 Фев, 01:15 #45 #665838

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

Ответ адекватного прогера не такой, я надеюсь ты и сам это понимаешь.

25 Фев, 02:09 #46 #665863

Уже успели заценить Android Support Library 23.2?
Теперь хоть ресайлервью можно будет юзать в продакшене, ну и слайдингТаб из коробки в придачу.

Ответы>>665872

25 Фев, 02:15 #47 #665867

http://android-developers.blogspot.ru/2016/02/android-support-library-232.html
https://www.youtube.com/watch?v=7E2lNBM38IE

Ответы>>665880

25 Фев, 02:50 #48 #665872

>>665863
а до этого почему нельзя было?

Ответы>>665879

25 Фев, 03:09 #49 #665879

>>665872
Говно не умело в врапконтент.

25 Фев, 03:09 #50 #665880

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

25 Фев, 03:25 #51 #665887

Ананасы, что сейчас нужно, чтобы вкатиться Android джуном или стажером?
Обязательно ли в плей-маркет что-то выкладывать? (это же 25$ и не факт что после этого работать куда-то возьмут).
Какого уровня должны быть готовые приложения? Или даже готовые не обязательно иметь?
Допустим, запилить какой-нить очередной плеер для музяки или мессенджер для впараши. Такое пойдет?

Ответы>>665888>>665939

25 Фев, 03:27 #52 #665888

>>665887
Ну хотя по поводу 25 долларов, еще ладно. Все же не так много. Все равно я перед пацанами хвастаться хотел

63 Кб, 500x497

25 Фев, 07:40 #53 #665939

>>665887
Для стажера хват и торрет-стримера для Android TV, написанного на Kotlin + JNI
(в 2016 начинать новые проекты на Java считается мувитоном).
Конечно должно быть >5k скачиваний и рейтинг >4, иначе даже смотреть не будут.

Сорцы не забудь выложить на github что было сделать ревью кода.

Ответы>>665942>>665943>>665944

25 Фев, 07:54 #54 #665942

>>665939
Двачую, наконец-то годное предложение. На джуна слабовато будет, я бы не взял такого, но для стажёра очень хорошо.

Ответы>>665943

25 Фев, 08:04 #55 #665943

>>665942
>>665939
Вы же тут тралируете меня, я прав?

25 Фев, 08:09 #56 #665944

>>665939
Я пожалуй начну тебя репортить, и остальным советую.

Ответы>>665945>>666070

25 Фев, 08:16 #57 #665945

>>665944
Лучше нуфань неспособных шапку прочитать репорть

25 Фев, 11:51 #58 #666070

>>665944
Поддвачну. Что соседний котлинотред, что этот, забиты откровенной рекламой этой сомнительной обёртки над жабой.

Ответы>>666080

25 Фев, 12:09 #59 #666080

>>666070
Тот тред вообще нелегитимная хуйня, так что я здесь останусь пока.

бессменный автор поста #2

25 Фев, 12:45 #60 #666103

Я не пойму, этому форсеру Котлина платят за это? Адекватный человек такой хуйней бесплатно заниматься не будет.

Ответы>>666110

25 Фев, 12:55 #61 #666110

>>666103
Идеалист

265 Кб, 1920x852

Встреча JUG.ru с разработчиками Kotlin 25 Фев, 12:56 #62 #666112

Скоро выйдет новое видео о языке от его главных разработчиков.

Анонс: https://habrahabr.ru/company/jugru/blog/277871/
На встречи будут няшка Андрей и Дмитрий из команды Kotlin (жалко Светочки не будет)

Ждем видео на этом канале (должно выйти через пару дней):
https://www.youtube.com/channel/UCYrGYT7BswsJGkmG7-IAF8g

Ответы>>666115

25 Фев, 12:59 #63 #666113

>>665523
Ну же, может кто-то подозревает в чем вещь.

25 Фев, 12:59 #64 #666115

>>666112
Чувак, я скоро начну тебя репортить.
Всем похуй на котлин, ладно если бы они на ведре пилили в этом видео. Так нет.
Давай может попиздуешь с котлинотред тред? А то по тематике не подходит.

Ответы>>666120

13 Кб, 267x102

13 Кб, 462x60

25 Фев, 13:05 #65 #666120

>>666115
Мелка ты еба, видео еще не вышло, а ты уже вангуешь что там будет.
На хабре уже давно поняли что Kotlin == будущее Android одни вы аутисты копротивляетесь

Ответы>>666130>>666137

25 Фев, 13:12 #66 #666130

>>666120
Пока гугл не перейдёт на него - никто не перейдёт. Будет пара хипстерских контор которые будут на нем писать.

Ответы>>666133

25 Фев, 13:15 #67 #666133

>>666130
Ну гугл уже подружился с ними, взяв на вооружение андройд студио, основанный на идее

Ответы>>666138

25 Фев, 13:18 #68 #666137

>>666120
Так я не против, но ты видишь у нас кучу видосиков по джаве?
Я в шапку джаву добавил чтоб меньше заебывали "как вкатится".

25 Фев, 13:18 #69 #666138

>>666133
Это будет видно через пол года-год.

Ответы>>666140

25 Фев, 13:22 #70 #666140

>>666138
Даже свифт на иосе так быстро не приживается как хотели создатели, а тут все немного иначе.

Ответы>>666145

25 Фев, 13:26 #71 #666145

>>666140
> а тут все немного иначе.
Почему?

Ответы>>666149

25 Фев, 13:29 #72 #666149

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

Также интересно как там с опенсорсом в котлине? Или мы будем смотреть суды гугла и джетбреинса, если они все же решат?

Ответы>>666154

25 Фев, 13:31 #73 #666154

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

Ответы>>666156>>666159

25 Фев, 13:33 #74 #666156

>>666154
>Гуглу и так норм
>Постоянные суды
>Меняют версию джавы по-сути, или лицензию, ну вы поняли
>Норм

Ответы>>666188

25 Фев, 13:34 #75 #666159

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

25 Фев, 13:38 #76 #666166

Анон, вопрос про support library. Если поставлю эту штуку то смогу, к примеру, на api 15 использовать все фишки более новых версий или есть ограничения?

Ответы>>666168

25 Фев, 13:40 #77 #666168

>>666166
Сможешь юзать все фишки которые есть а компат классах.
Например материал прогрессбара в сапорт либах нету.

Ответы>>666171>>666181

25 Фев, 13:41 #78 #666171

>>666168
Есть же вроде Design Support Library.

Ответы>>666174

25 Фев, 13:43 #79 #666174

>>666171
А где там прогресс бар?

Ответы>>666176

25 Фев, 13:44 #80 #666176

>>666174
Я просто спросил.

25 Фев, 13:49 #81 #666181

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

Ответы>>666185

25 Фев, 13:50 #82 #666185

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

25 Фев, 13:53 #83 #666188

>>666156
Слышал звон, не знаешь где он?
Спор не из-за джавы как таковой, а из-за некоторых ее нешвабодных компонентов. Те же нешвабодные компоненты будут заюзаны и с использованием котлина ибо он идет без собственной жвм.
Сам же гугл потихоньку идет к го.

Ответы>>666195

25 Фев, 13:58 #84 #666195

>>666188
Спор из-за лицензии джавы и не пизди тут.
То что лицензии отличаются внутренними компонентами уже не важно.

Го это что-то уровня ндк, спасибо не нужно.

Ответы>>666205

25 Фев, 14:12 #85 #666205

>>666195
> Спор из-за лицензии джавы и не пизди тут.
Из-за какой лицензии, дебик. Гуглы спиздили куски реализации запатентованной части JDK. С переходом на openJDK проблемы исчезнут.
> Го это что-то уровня ндк, спасибо не нужно.
Без удобных инстурментов разработки конечно не нужно, но сам понимаешь, что списочки на нативной реализации с меньшей вероятностью будут лагать, чем на jvm.

Ответы>>666213>>666232

25 Фев, 14:19 #86 #666213

>>666205
1) Миллионы строк Android API написаны на Java,
2) Миллионы приложений в продакшене написаны на Java
3) 99% девайсов никогда не обновятся даже до 6.0

> списочки на нативной реализации с меньшей вероятностью будут лагать
А ну тогда нахрен все переписываем. Проще новую OS сделать

Ответы>>666215

25 Фев, 14:23 #87 #666215

>>666213
> 99% девайсов никогда не обновятся даже до 6.0
И что? 99% аппаратов на 1.5 не обновились до 4.0 и что?
Выйдут новые.

Ответы>>666222

25 Фев, 14:26 #88 #666222

>>666215
И разработчики будет делать две версии:
1) на Go для Android 2099
2) на Java Kotlin для всех остальных
Фигли ты к первым двум пунктам не придрался, их уже достаточно.

Ответы>>666225

25 Фев, 14:30 #89 #666225

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

Ответы>>666231

25 Фев, 14:38 #90 #666231

>>666225
> Те же иос приложения без проблем на свифт переписывают и ничо
Все я ухожу, ты понятия не имеешь о чем говоришь. Ты же просто жирный.

Swift можно сравнивать только Kotlin, тк у них у обоих есть совместимость на уровне исходников в обе стороны:
Object-C <-> Swift | Java <-> Kotlin

Ответы>>666253

25 Фев, 14:39 #91 #666232

>>666205
>Из-за какой лицензии, дебик. Гуглы спиздили куски реализации запатентованной части JDK. С переходом на openJDK проблемы исчезнут.
Иди почитай про апач гармони рахит.

25 Фев, 14:48 #92 #666240

Майкрософт покупает ксамарин, а с ним и робовм.

Мда блять.

Ответы>>666248

25 Фев, 14:53 #93 #666248

>>666240
Рано растраиваться (хуже уже не будет), а глядишь он опять бесплатным станет.
Да и Intel Multi OS есть, который и сейчас бесплатный.

Хотя они как-то странно задерживают релизу, уже месяц прошел с предыдущего.

Ответы>>666251

25 Фев, 14:56 #94 #666251

>>666248
Да уже можно перекатываться даже не пытаясь вкатится. Потому как майкрософт раули похлеще гуглов.

А интелы пока выкатят, пока развернутся, пока комьюнити появится. Долго. Проще на джаваскрипт вкатится.

25 Фев, 14:57 #95 #666253

>>666231
>Все я ухожу, ты понятия не имеешь о чем говоришь
Все, уходи и не возвращайся, говно.

25 Фев, 16:58 #96 #666382

Жаба-чернь вкатился в тред.

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

Андроид жалуется что у мня нет JVM, типа нот фаунд.
Что за хуйня?

Ответы>>666386

25 Фев, 17:03 #97 #666386

>>666382
Всё,разобрался.
Эта хуйня по умолчанию запускала 64, а мне 32 надо

25 Фев, 18:39 #98 #666467

УХ блять как это днище тупит, почти как смарты на ведроиде.

Блять, на создание проекта ушло минут 15, пока всё прогрузилось, не смотря на то, что на компе 8гб оперативы и адовая видюха с 5м кором.

Ну что за хуйня, как так-то?

Отклик по нажатию на File - секунд 5.
ПОтом New - ещё блять секунд 10.

ЁБаный ведроид, я думал, хоть разработка под него будет приятной

Ответы>>666510>>666564

25 Фев, 19:01 #99 #666510

>>666467
Ты там в эклипсе или в студии/idea?

Ответы>>666545

25 Фев, 19:15 #100 #666527

Есть ли тут абсолютные новички желающие вкатиться? Было бы неплохо скооперироваться и начать ебашить, перманентно подгоняя друг друга и просматривать ошибки друг у друга. Пока ковыряю жаву на уровне Pet myPet = new Pet();

Ответы>>666631

25 Фев, 19:26 #101 #666545

>>666510
Вангую что студия, до этого сам клепал проги в эклипсе, все было шустро. Когда поставил студию все блать собираеся в лучшем случае 30 сек, это притом что я поставил в опциях offline для градла и сборка в фоне, как присоветовали на стековерфлов. До этого вообще пару минут заводилось. Не спорю, студия кошерна, но блядь в эклипсе все работало моментально.

Ответы>>666554

25 Фев, 19:31 #102 #666554

>>666545
Ну у меня все шустро на маке бегает хз куда быстрее.

Ответы>>666614

25 Фев, 19:41 #103 #666564

>>666467
Продай свою "адовую видюху" она конечно же решает в скорости работы иде и купи ссд.

Ответы>>666614

25 Фев, 19:45 #104 #666569

Хлопцы, рисую битмап в методе onDraw(), потом нужно опять нарисовать bitmap но уже в другом месте и чтобы старый тоже остался, как сделать?

25 Фев, 20:10 #105 #666614

>>666554
А на хуяке у тебя ничего там не бегает?

>>666564
Этого двачую.

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

А эклипс конечно быстрее, ты еще в блокноте пиши будет еще быстрее.

Ответы>>666844

25 Фев, 20:20 #106 #666631

>>666527
Есть. Оставь свое мыло, свяжемся.

Ответы>>666644

25 Фев, 20:24 #107 #666644

>>666631
вк /dsmtd

25 Фев, 21:55 #108 #666844

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

Сделал так же - тормозит еще сильнее.
>А эклипс конечно быстрее, ты еще в блокноте пиши будет еще быстрее.
Кроме студии стоит идеа коммьюнити и ультимэйт, даже проекты с кучей либ и сотней классов собиратьются быстрее.

Ответы>>667105

26 Фев, 00:07 #109 #667105

>>666844
>Сделал так же - тормозит еще сильнее.
Какой проц, и ты точно правильно виртуалку настроил? У меня ускорился даже сам запуск студии.

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

Ответы>>667152

26 Фев, 00:32 #110 #667147

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

26 Фев, 00:39 #111 #667152

>>667105
Да проц норм, i5 3210m, памяти хватает, винт не ссд, но шустрый(7200об), вангую что именно из-за градла, но разве его меняют на другие сборщики?
>и ты точно правильно виртуалку настроил?
Отдал половину ресов, уебунта работает без лагов, студия все так же тупит

Ответы>>667163

26 Фев, 00:50 #112 #667163

>>667152
Нужен хороший SSD, у меня на макбуке с 4гб студия просто летает

Ответы>>667182>>667311

26 Фев, 01:06 #113 #667182

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

Ответы>>667376

26 Фев, 07:17 #114 #667311

>>667163
> студия летает на 4 гб оперативки
Пиздабол, либо ничего сложнее хеллоуворлда не писал.
На эире у меня в свопе минимум было 700 мб.

Ответы>>667457

26 Фев, 09:36 #115 #667376

>>667182
А эти проекты тоже был на gradle?
Он сам по себе отдельный процесс сборки в нем нет супер оптимизаций из IDEA.
Для него как-раз важнее быстрый жесткий диск.

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

26 Фев, 11:43 #116 #667443

Сижу на mac mini 2012 i7 под прыщами; поставил 16 Gb ram, но SSD не могу, там нужно его сильно разбирать, а у меня нет таких редких отверток. Тогда, чтобы никогда не свопилось после подгрузки всего в память и дисковые кэши поставил, по-мойму, так: sys.vm.swappiness=10 (прыщеблядикс будет начинать скидывать страницы на диск только когда 100-10=90% физической памяти будет занято)

26 Фев, 11:54 #117 #667457

>>667311
Он не пиздит, у меня на 13 эйре студия тоже летает. Чини свой мак

Ответы>>667511

26 Фев, 12:21 #118 #667478

У меня прошка 15" 13-го года, у второго разработчика эйр 15-го года, я бы не сказал что у него собирается медленнее чем у меня, хотя у него 4 гига, а у меня 8. Вся соль в ссд.

26 Фев, 12:55 #119 #667509

Что-то печет мне от пермишенов, почему не сделали так что бы можно было хотя бы в бандл засунуть актуальные данные, что бы сразу из onPermissionGranted продолжать где остановились, а так приходится ебаланькатся - сохранять в SharedPreference, потом вытаскивать оттуда. Какие бест практисы?

Ответы>>667511>>667516

26 Фев, 12:59 #120 #667511

>>667457
Хуяк. ОС отжирает 1.5гб, хром на 500 минимум, студия жрет 1.5 + градл еще гигабайт. Что-то не сходится в итоге.
>>667509
Что у тебя актуальные данные?

Ответы>>667521

26 Фев, 13:04 #121 #667516

>>667509
0) Пользователь запрашивает функционал для которого нужен runtime-пермишен
1) Вручную чекаешь checkSelfPermission(...)
2) Если разрешено, то все ОК
3) Если не разрешено, то показываешь:
3.1) Тост с объяснением (это не обязательно)
3.2) Диалог запроса requestPermissions(...)
4) Забиваешь хуй на результат. Если пользователю надо, он еще раз сделает пункт (0)

Ответы>>667521

26 Фев, 13:09 #122 #667521

>>667511
Ну вот представь есть 3 социальных кнопки логина, которые при успешном использовании вызовут метод аутиентификации с названием социалки и токеном. И хотелось бы в одном месте получив эти две несчастные строчки перед вызовом охраняемых методов чекнуть и после чека продолжить, но хуй там. А так приходится делать метод проксю, который полезет в переференсы (или еще куда-то), восстановит эти данные и продолжит свое черное дело.
>>667516
Ну это как-то по пидарски.
>>667511
Ну у него в пике выходят все 4 гига, но он не держит одновременно скетч, хром, эмулятор и студию. При сборке эмулятор и студия. Если на телефоне, то без эмулятора и с хромом например. А у меня с эмулятором, студией, хромом (щас сижду на сафари, меньше расход), скетчем и еще хуй знает чем (видимо genymotion срал с virtualbox'ом на пару, благо у второй студии эмулятор шустренький) выходило в пике 7 гигов.

Ответы>>667531>>667532

26 Фев, 13:24 #123 #667531

>>667521
Чет ты хуйню намутил, ты тогда должен в бандл сохранять эти токены в onSaveInstance и восстанавливать их в onRestoreInstance. OnPermissionGranted - обертка над активитирезультом.

Ответы>>667536

26 Фев, 13:25 #124 #667532

>>667521
Ну хули, тогда страдай.
Вот тебе инструкция от гугла http://developer.android.com/training/permissions/requesting.html

Ответы>>667536

26 Фев, 13:27 #125 #667536

>>667532
Вот щас обидно было, думаешь я не читал?
>>667531
Ага, так и думал, то есть теоретически я могу выцепить данные в onCreate'e? Ну ладно, от двух полей активити не загнется.

Ответы>>667547

9 Кб, 500x67

26 Фев, 13:38 #126 #667547

>>667536
А вот для сравнения iOS код сохранения картинки в галерею пользователя.
При его вызове тоже показывается диалог "разрешения доступа к галереи".
Вот только мне не надо по всему контроллеру раскидывать код для обработки результата.

Ответы>>667550>>667575>>668387

26 Фев, 13:42 #127 #667550

>>667547
Знаем, не сыпь соль на рану, вот закончу универ наверно нахуй этот ведроид брошу.

26 Фев, 14:19 #128 #667575

>>667547
Анон, мы уже поняли, что айос лучше. Тут одни нищеброды, которые не могут позволить себе макбук, либо говноеды, которым в кайф жрать говно. Когда мы чуть поднакопим денег/образумимся - безусловно, перейдём на самую лучшую мобильную ОС, и этого треда вообще не будет. А пока съеби плиз, тут тред ведроида.

Ответы>>667607

26 Фев, 14:49 #129 #667607

>>667575
Судя по последним ответам здесь у половины маки , а ты и не замети что код был на Kotlin

Ответы>>667613

26 Фев, 14:54 #130 #667613

>>667607
Не будет на ведроиде эта байда на котлине работать. Сам понимаешь. На чем бы не написал.

26 Фев, 15:15 #131 #667625

Фрагменты-друг-на-друге-после-выхода-из-фона-приложения-кун вернулся.
replace творит ересь и работает из рук вон плохо. Пока придерживаюсь hide/show и пересоздания аппликухи с восстановлением всего что там было через sharedPreferences

Ответы>>667626

26 Фев, 15:19 #132 #667626

>>667625
Мда, а ты в бэкстек их там добавляешь?

Ответы>>667701>>667702>>667723

26 Фев, 15:44 #133 #667654

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

Ответы>>667663

26 Фев, 15:54 #134 #667663

>>667654
Из треда только 1 апологет. Сквэр вон специально делает модульчики для котлина.

26 Фев, 16:22 #135 #667701

>>667626
Нашел косяк. Короче, там onDestroy триггерится через определенное время работы в бэкграунде. Щас чекну за onCreate после перехода после onDestroy-а. Чертов LifeCycle

26 Фев, 16:23 #136 #667702

>>667626
нет, не добавляю. Там не на replace а на hide/show все. Сомневаюсь что бэкстеку есть до этого дело

26 Фев, 16:24 #137 #667707

Да, чекнул, onCreate идет после нового перехода. Бегу обрабатывать такую фигню, хотя идей чет маловато. С какой бы стати в onCreate fragmentTransaction что-то содержать должна. Вроде как все по новой должно пойти с дефолтных значений.

Ответы>>667735

26 Фев, 16:27 #138 #667712

К слову , а как выпилить все фрагменты начисто ? Ну т.е. fragmentTransaction.isempty есть, а вот выпилить все вроде нету :)

Ответы>>667724>>667730

26 Фев, 16:30 #139 #667723

>>667626
вот тоже хотел поинтересоваться чё за код он там прописывает

26 Фев, 16:30 #140 #667724

>>667712
startActivity(getIntent());
finish();

Ответы>>667729

26 Фев, 16:32 #141 #667729

>>667724
а так чтобы юзверь ничего не заметил ?)

Ответы>>667736

26 Фев, 16:32 #142 #667730

>>667712
fragmentManager.popBackStack();

26 Фев, 16:33 #143 #667735

>>667707
А вот и нет, это бай дезайн, стэк фрагментов сохраняется.

26 Фев, 16:33 #144 #667736

>>667729
ovveridePendingTransition(0, 0);

Ответы>>667750

26 Фев, 16:39 #145 #667750

>>667736
не пашет, или я не понял где и как юзать. Фрагменты остаются...

Ответы>>667752

26 Фев, 16:39 #146 #667752

>>667750
Чувак у тебя мозгов как у хлебушка?

Ответы>>667756>>667760

26 Фев, 16:40 #147 #667756

>>667752
Я задолбался возиться с этой хренью уже, недели две не втыкаю что делать.

26 Фев, 16:41 #148 #667760

>>667752
Я хз, фрагменты что ни делай наплывают друг на друга после восстановления после onDestroy-а

Ответы>>667780

26 Фев, 16:47 #149 #667780

>>667760
Код покажешь?

Ответы>>667791>>667793

26 Фев, 16:50 #150 #667791

>>667780
После инициализации:
fragmentTransaction.
add(R.id.content, rentFragment).
add(R.id.content, dialogFragment).
add(R.id.content, loginFragment).
add(R.id.content, preferencesFragment).
add(R.id.content, preferencesMainFragment).
show(loginFragment).
hide(rentFragment).
hide(dialogFragment).
hide(preferencesFragment).
hide(preferencesMainFragment).
commit();
Ну и соответственно show/hide по навигации.

Ответы>>667933

26 Фев, 16:51 #151 #667793

>>667780
вот эту херню в onСreate пихнул:
getSupportFragmentManager().popBackStack();

26 Фев, 17:36 #152 #667880

Проверил бэкстэк на момент onDestroy после очистки, он очищен полностью. С какого фига фрагменты устраивают такое фееричное шоу - непонятно

Ответы>>667897

26 Фев, 17:56 #153 #667897

>>667880
Не проще ли почитать документацию? В бандл все уже сохранилось.

Ответы>>667905

26 Фев, 17:59 #154 #667900

>>665592
>> Асечка писечка
>Линкедин, гитхабчик
>Глик-1, хавчик

26 Фев, 18:06 #155 #667905

>>667897
и как выпилить все намертво, чтобы все, еперный, работало ? Любые костыли, лишь бы работало

26 Фев, 18:39 #156 #667933

>>667791
Это все потому что надо было отдельные окна в отдельные активити рассовать.
А не как этот "вундеркинд" >>665154 не ты ли? советовал в одно активити все запихивать.

Ответы>>668007

26 Фев, 19:41 #157 #668007

>>667933
Оно работает всегда, кроме как после сраного destroy-а активити. И да, я советовал, ибо за этим исключением пашет как часы

26 Фев, 22:09 #158 #668131

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

Ответы>>668156

26 Фев, 22:33 #159 #668156

Moxy уже попробовали?

>>668131
Даже хуже.

27 Фев, 08:58 #160 #668387

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

Ответы>>668565

27 Фев, 10:44 #161 #668426

Короче решил я тут во второй раз попытаться вкатиться в андроид из тырпрайза. Жабу знаю, как выяснилось на собесе, на 3/5, что в общем неплохо. В первый раз изучения андроид заебался разбираться с активити, фрагментами, еще как-то хуйней. В общем вопрос то в чем, а вопрос в том, есть ли вменяемые гайды по всему этому делу, именно по андроидным фишкам, смотрел лекции e-legion – сначала казалось годнота, но хотелось бы буковки почитать, можно и на инглише. Да, и еще чтоб с примерами было. http://startandroid.ru/ru/ - это видел, 170 уроков ебал я, слишком муторно.

27 Фев, 12:05 #162 #668485

Сделал кастомную вьюху-контейнер. Создаю её программно через конструктор. Какого хуя не вызывается onFinishInflate()?

Ответы>>668487>>668566

27 Фев, 12:08 #163 #668487

>>668485
В конструктор конечно же делаю инфлэйт.

Ответы>>668566

27 Фев, 13:18 #164 #668565

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

27 Фев, 13:18 #165 #668566

>>668487
>>668485
Ниче не понятно чувак, что ты где создаешь и зачем.

27 Фев, 15:31 #166 #668706

Всем привет. Сделал приложение, gps-трекер на гуглокартах, всё работает, не крашится, однако есть один баг. Когда запускаешь слежку (пояляется стандартный нотификейшн об отслеживании), сворачиваешь приложение, начинаешь работать с другими приложениями, потом открываешь приложение заново, есть шанс, что текущая активити покрашится. Я бы это списал на стандартное уничтожение процесса, но проблема в том, что нотификейшн отслеживания локации сверху остаётся, при этом однозначно указывает на моё приложение в качестве источника запроса. Соответственно, если я пытаюсь убить процесс через андроид студию, например, то этот нотификейшн сразу исчезает. Делаю вывод, что процесс не уничтожается.
Вопрос: как это дебажить? Может, есть какие-нибудь программы, заполняющие RAM? И в чём вообще может быть проблема? Слежка идёт в отдельном синглтоновом классе и через коллбэки кидается в активити. значит, если бы активити уничтожалась сборщиком, то коллбэки бы давали нулл поинтер эксепшн. Но, с другой стороны, когда происходит эта ошибка, загружается пустая активити, не получающая никаких коллбэков. Значит, коллбэки идут куда-то в ебеня. Есть идеи?

Ответы>>668716>>668745>>668828

27 Фев, 15:36 #167 #668716

>>668706
>потом открываешь приложение заново,есть шанс, что текущая активити покрашится
Не так. Когда открываешь приложение заново, загружается пустая активити, как будто приложение только что запустили, а не продолжили работу. При этом отслеживание локации не прекращается.

27 Фев, 15:57 #168 #668745

>>668706
Слабо че понял, ты скажи, когда ты делаешь локейшнменеджер реквестапдейт и когда ты от них отписываешься и где.

Ответы>>668746

27 Фев, 16:02 #169 #668746

>>668745
По нажатию кнопки регистрирую и отписываюсь. Кнопка нажимается во фрагменте, из которого идёт вызов на работу/останов в написанный мной синглтон-класс MapHelper, который и взаимодействует с ГуглЛокэйшн.

Ответы>>668814

165 Кб, 1399x929

116 Кб, 1395x926

213 Кб, 729x840

27 Фев, 16:27 #170 #668793

Должен открыться слой myscreen, но мне пишет это (3 пик).
Как сделать что бы отображало нормально?

Ответы>>668798

27 Фев, 16:32 #171 #668798

>>668793
э, пасан, logcat пакажы, да

Ответы>>668801

27 Фев, 16:34 #172 #668801

>>668798
внизу на 1 и 2 пике не они?

Ответы>>668807>>668814

27 Фев, 16:36 #173 #668807

>>668801
Нужно смотреть, что в него пишется, когда происходит ошибка.

27 Фев, 16:41 #174 #668814

>>668801
Это ненужное говно, ищи в них краш.
>>668746
> из которого идёт вызов на работу/останов
Это как? Делаешь реквест апдейт и сразу отписываешься?
> синглтон-класс MapHelper
Возможно он еще обновляет в фоне, поскольку висит в статике.

Ответы>>668827>>668828

91 Кб, 1328x694

27 Фев, 16:48 #175 #668825

Вот тут все действия которые происходили в логкате в момент снятия с блокировки и выскакивания этого окошка

27 Фев, 16:49 #176 #668827

>>668814
не особо понимаю где этот краш пока что, второй день пробую кодить под андроид

Ответы>>668830

41 Кб, 1024x800

27 Фев, 16:49 #177 #668828

>>668814>>668706
Вот, нарисовал архитектуру.
>Делаешь реквест апдейт и сразу отписываешься?
Нет. Нажал кнопку старт - реквестапдейт, нажал стоп - отписался.
>Возможно он еще обновляет в фоне
И куда он обновляет? Куда отправляются коллбэки с локациями, которые должны отправиться в активити? Если она уничтожена, то почему нет нуллпоинтера при попытке отправки коллбэков, а если не уничтожена, то почему она не показывается?

27 Фев, 16:52 #178 #668830

>>668827
Ну так разбирайся, лол. Курс на удасити пройди. Недавно проходил курс по грэдл у них, понравилось, объясняют, как для долбоёба. Хотя, конечно, дают только базис, чтоб ты потом сам уже мог изучать.

Ответы>>668833

27 Фев, 16:53 #179 #668833

>>668830
дак я помощи хотел попросить, потому что дальше "обучение" из-за этой ошибки не могу проходить т.е могу, но не буду мало ли что

Ответы>>668838

7 Кб, 774x89

27 Фев, 16:56 #180 #668838

Кстати, про коллбэки. Пасаны, а какие есть альтернативы пикрилейтеду?
>>668833
Так блин, а какой ты помощи хочешь? Я тебе сказал - смотри логкэт, там ошибки пишутся. Сделай крэш и не нажимая ОК смотри, что написалось в логкэт.

Ответы>>668842>>668843

27 Фев, 16:59 #181 #668842

>>668838
Как минимум не использовать фрагменты, где можно обойтись отдельной активити. А события с локации можно спокойно вынести в сервис и отдавать бродкастами.

Ответы>>668843>>668845

27 Фев, 17:01 #182 #668843

>>668842
>можно спокойно вынести в сервис и отдавать бродкастами
вахуе, куда я вообще полез...........
>>668838
так я скинул логкэт что бы подсказали. не знаю что такое крэш, похуй, спать пойду

27 Фев, 17:05 #183 #668845

>>668842
>А события с локации можно спокойно вынести в сервис и отдавать бродкастами
А ты вообще сможешь кастомный класс (Location, хотя бы) в бродкасте передать? И если да, то как?

Ответы>>668846

27 Фев, 17:06 #184 #668846

>>668845
> Location
http://developer.android.com/intl/ru/reference/android/location/Location.html
implements Parcelable

Могу. Пихаешь в бандл и отправляешь.

Ответы>>668854

27 Фев, 17:16 #185 #668854

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

ПАМАГИТЕ Маня 27 Фев, 18:30 #186 #668905

двач ,помагай,пишу я значит одну йобо-прогу и вроде как всё правильно,компилирую и тут вот такая вот параша http://pastebin.com/HJnABu5n я хз чё это,давайте антоши помайте

Ответы>>668906

27 Фев, 18:33 #187 #668906

>>668905
Fragment com.example.zip.grodskiy3.GrodskiyFirstFragment did not create a view

27 Фев, 19:49 #188 #669000

Кто-нибудь юзал yandexmapkit? Можно ли там группировать маркеры из коробки?

Ответы>>669002

27 Фев, 19:50 #189 #669001

Пацаны, а в чём преимущество сервиса перед, скажем, асинктаском в любом классе, не зависящем от лайфцикла активити?

Ответы>>669005

27 Фев, 19:51 #190 #669002

>>669000
> yandexmapkit
Не работает на Marshmallow же.

Ответы>>669006

27 Фев, 19:52 #191 #669005

>>669001
Принцип разделения ответственности.

Ответы>>669007

27 Фев, 19:55 #192 #669006

>>669002
таргет 22 стоит

27 Фев, 19:56 #193 #669007

>>669005
Как будто отдельный класс с асинктаском будет иметь какую-то отличную структуру. Только вместо интента на сервис будет стоять создание экземпляра класса.

Ответы>>669013

27 Фев, 20:02 #194 #669013

>>669007
А как ты результат обратно в активити отправляешь?

Ответы>>669017

27 Фев, 20:04 #195 #669017

>>669013
В постэкзекьют, очевидно. Можно коллбэком, как в баунд сервисе, можно бродкастом, как и в обычном сервисе.

Ответы>>669020

27 Фев, 20:05 #196 #669020

>>669017
Ну тогда не вижу проблем. Контекст туда только от application передавай, если нужно.

Ответы>>669021

27 Фев, 20:07 #197 #669021

>>669020
Ну да, я так и делаю. Только, на самом деле, никогда не сталкивался с проблемой, чтоб что-то пошло не так, если был передан контекст активити, которая потом умрёт. Что там будет, memory leak без краша?

Ответы>>669028

27 Фев, 20:09 #198 #669028

>>669021
Пока будет жив таск - leak, потом таск подчистится и утечка пропадет.

410 Кб, 604x459

27 Фев, 21:19 #199 #669111

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

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

Держите котейку.

Ответы>>669122>>669160

27 Фев, 21:24 #200 #669122

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

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

Ответы>>669125>>669129

27 Фев, 21:27 #201 #669125

>>669122
>fragmentstatepageradapter
Используется совместно с ViewPager?
Можно ли отключить скролл пальцами у ViewPager?

Ответы>>669131

27 Фев, 21:28 #202 #669129

>>669122
Кажется ты перепутал: FragmentPagerAdapter - вот этот не уничтожает соседние фрагменты.

Ответы>>669135

27 Фев, 21:29 #203 #669131

>>669125
> но я не помню какой
setOffscreenPageLimit(int limit)
> Используется совместно с ViewPager?
Да, а ты же так вкладки делаешь?
> Можно ли отключить скролл пальцами у ViewPager?
Вероятней всего можно.

Ответы>>669134>>669136

27 Фев, 21:31 #204 #669134

>>669131
У меня вкладки сделаны при помощи: android.support.v13.app.FragmentTabHost

27 Фев, 21:32 #205 #669135

>>669129
> FragmentPagerAdapter - вот этот не уничтожает соседние фрагменты.
though its view hierarchy may be destroyed when not visible

Хотя сами объекты фрагментов сохраняются полностью.

Ответы>>669137

27 Фев, 21:32 #206 #669136

>>669131
Думаю вариант с ViewPager неплохой.
Спасибо!

27 Фев, 21:33 #207 #669137

>>669135
Интересно как поведет себя фрагмент с com.google.android.gms.maps.MapView внутри?

27 Фев, 21:51 #208 #669156

Сап, ананасы. Не подскажете, есть ли какие-либо способы заставить SupportMapFragment ( или как там у гугла карто-кусок звать ) жрать меньше оперативы ?
И второй вопрос: Какой верхний порог по скушиваемой оперативе вы бы выделили, выше которого ни одной аппликухе лезть не положено ( игры не берем в счет ) ?

Ответы>>669164

27 Фев, 21:53 #209 #669160

>>669111
N кнопок в linear-e и много кода. Фрагменты-в-одной-активити-это-хорошо-кун ^_^

27 Фев, 21:59 #210 #669164

>>669156
Чем он лучше MapView?

Ответы>>669167>>669173>>669175

27 Фев, 22:02 #211 #669167

>>669164
Тем что Compat?

Ответы>>669174

27 Фев, 22:04 #212 #669173

>>669164
Тем что у меня он запахал, а MapView - нет. Переделывать впадлу

Ответы>>669175

27 Фев, 22:04 #213 #669174

>>669167
MapView ты можешь использовать везде: в support fragment, в AppCompatActivity, в обычном фрагменте и в обычной активити.

Ответы>>669175>>669177

27 Фев, 22:05 #214 #669175

>>669173
>>669174>>669164
У меня всё наоборот.

27 Фев, 22:05 #215 #669177

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

27 Фев, 22:17 #216 #669185

> нет FragmentCompat, чтобы из него делать requestPermissions
Пиздос, в рот ебал уебков из гугла.

Ответы>>669186>>669187

27 Фев, 22:18 #217 #669186

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

27 Фев, 22:19 #218 #669187

>>669185
А не, есть. Он прямо в фрагменте.

27 Фев, 22:41 #219 #669217

Вопрос платина, шапку читал.
Действительно ли javarush даст мне понятие по всем темам которые мне нужны для успешного выкатывания из идиота с попутным перекатыванием в программиста (в данном случае андроид дева)? Или же все же лучше книгу?

Ответы>>669225

27 Фев, 22:44 #220 #669225

>>669217
лучше в startandroid и статейки на хабре. Плюс простенькие проектики делать наподобие визиток

Ответы>>669228>>669282

27 Фев, 22:46 #221 #669228

>>669225
У меня в программировании познания уровня /b.

фриланс 27 Фев, 23:24 #222 #669267

Хотел стать андроид разработчиком, но денег не хватит чтобы куда-то понаехать и найти работу джуниора/стажировку.
Знания джава и андроид начальные: пару курсов на курсере, могу сделать laba1, но никогда не делал сложных проектов.
Реально ли угореть дома по андроиду до уровня фриланса и поднять денег на перекат?
В противном случае придётся искать фриланс связанный с вебом, или работать где-то ещё, чего не очень хочется.

Ответы>>669299>>669581

27 Фев, 23:54 #223 #669282

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

Ответы>>669286>>669294>>669298

27 Фев, 23:56 #224 #669286

>>669282
А как делать?

Ответы>>669291

28 Фев, 00:01 #225 #669291

>>669286
читать книжку по джаве, например, философию, а потом вкатываться в андроид, но для андроида можно ёё и не дочитывать

Ответы>>669296

28 Фев, 00:02 #226 #669294

>>669282
пардон, но значит читал невнимательно

Ответы>>669299

28 Фев, 00:03 #227 #669296

>>669291
да да да, вот эта дрисня на папирусе где содержатся гомеопатические дозы знаний

28 Фев, 00:05 #228 #669298

>>669282
в смысле невнимательно? не зная кора ты будешь копировать код, что-то менять, но не понимать, что происходит, только в общих чертах. Да визитки можно сделать, но не больше. И джуном так точно не устроиться.

28 Фев, 00:05 #229 #669299

>>669267
-->
>>669294

28 Фев, 00:06 #230 #669300

Да что блять с харкачем, короче понятно кому я написал

28 Фев, 10:47 #231 #669581

>>669267
отпиши на почту, предлагаю объединить усилия
C%wfillmoreANUSprotonmaiojVlPUNCTUMJ6zch

28 Фев, 11:22 #232 #669602

Какие плюсы и миксы в сравнении с иос дебилоперами?
Джава se, выбираю куда вкатиться: сюда или в сфивт.

Ответы>>669603>>669614

28 Фев, 11:23 #233 #669603

>>669602
Минусы
быстрофикс

305 Кб, 1920x1200

28 Фев, 11:35 #234 #669610

Слышал, что в Android 6.0 разрешения будут запрашиваться во время работы приложения.
Это вообще обязательно?
Смотрю в моем старом приложении все разрешения сразу включены после установки приложения.

Ответы>>669616>>669618

28 Фев, 11:38 #235 #669614

>>669602
Днище что то, что это.
Под андроид приятней писать на котлине.
Под иос ты еще должен быть ололодизайниром, потому что вот эту кнопочку на миллиметр вправо сдвинь.
Еще сервисы гугла намного лучше эпловых работают.

Ответы>>669618

28 Фев, 11:39 #236 #669616

>>669610
Это охуенно, нечего мокрым писькам лезть в контакты, сеть и смс

Ответы>>669618

28 Фев, 11:41 #237 #669618

>>669610
> Слышал, что в Android 6.0 разрешения будут запрашиваться во время работы приложения.
А ты быстрый.
> Это вообще обязательно?
Желательно, иначе неопределенное поведение.
> Смотрю в моем старом приложении все разрешения сразу включены после установки приложения.
Да, при targetSdk < 23. Но я могу их отключить, и тогда краш либо пустые данные.

>>669614
> Под иос ты еще должен быть ололодизайниром, потому что вот эту кнопочку на миллиметр вправо сдвинь.
И? Как будто под андроид нет понятия pixel perfect.
>>669616
> в контакты
Гугллогин требует пермишн контактов.
> сеть
Без отдельного пермишина.

Ответы>>669988

42 Кб, 500x742

28 Фев, 17:11 #238 #669949

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

Ответы>>669979

28 Фев, 17:13 #239 #669952

Ребзи, кто-нибудь пробовал собирать телеграм из исходников мастер-ветки?
Собрал, указав все нужные параметры в buildvars. Запускаю => краш приложухи.
Вот такая же у чувака проблема была - http://stackoverflow.com/questions/32816049/telegram-messenger-running-project-still-met-unfortunately-telegram-has-stoppe
Но у него после оформления билдварс решилось все, а у меня чет нет.
Может кто зачекает? Получить эппиды и забилдить - дело 5 минут.

Ответы>>669957>>669978

28 Фев, 17:27 #240 #669957

>>669952
p.s. если у вас получится собрать так, что крашиться не будет аппка и вы скажете, что я не так делаю(хотя делаю вроде все так), с меня соточка на пивко :)

28 Фев, 17:31 #241 #669961

Народ, как наиболее простым способом поменять размер шрифта и цвет фона во вкладках FragmentTabHost?

28 Фев, 17:56 #242 #669978

>>669952
Я собирал пару недель назад.
Зарегал телеграм аппид, хокей ид, вроде этого хватило.
Потом либы на сях скомпилил и все заработало.

Ответы>>669980

28 Фев, 17:56 #243 #669979

>>669949
Да, он и так переворачивается.

28 Фев, 17:57 #244 #669980

>>669978
так вот я тоже запилил телеграмид, хокей ид и чета нихуя.
а че за либы компилил?

Ответы>>669984

28 Фев, 17:58 #245 #669984

>>669980
Там исходники на с++ есть, вот их нужно скомпилить в файлы и приложуха заработает, на стеке есть ответ от того же индуса.

28 Фев, 18:00 #246 #669988

>>669618
Я из танка.
Так нужно еще и описывать запрос на диалог окно с включением пермишена? Или уже само?
Да у меня нету 6.

Ответы>>669991

28 Фев, 18:01 #247 #669991

>>669988
> Так нужно еще и описывать запрос на диалог окно с включением пермишена?
Да

Ответы>>669993

28 Фев, 18:02 #248 #669993

>>669991
А автоматизировать процесс они не захотели? И так миллиарды колбеков.

Ответы>>669996>>670545

28 Фев, 18:03 #249 #669996

>>669993
> А автоматизировать процесс они не захотели
Нахуя? И так сожрут.

Ответы>>669997

28 Фев, 18:04 #250 #669997

>>669996
Доведут же, уйду в гейос.

28 Фев, 21:01 #251 #670262

http://www.work.ua/jobs/1143902/?utm_source=resume_sent_successfully&utm_medium=email&utm_content=job&utm_campaign=28.02.2016
Кто хочет поржать прочтите.

Ответы>>670337>>670454

28 Фев, 21:58 #252 #670337

>>670262
А с чего надо ржать? С полной занятости студента что ли? Или с Эккеля?

Ответы>>670369

28 Фев, 22:20 #253 #670369

>>670337
С эккеля же.

68 Кб, 1280x720

28 Фев, 22:34 #254 #670408

>>665510 (OP)
Анан, а подскажи - как в мессенджерах типа вотсаппа реализована мнгновенная (мнгновенная, Карл!) передача сообщения между клиентами, а точнее push-уведомление о том, что сообщение пришло, когда приложение киснет в бэкграунде уже хрен знает сколько времени? Сервисы? Ясен пень сервисы, но как именно клиент получаетсамо уведомление? Что это - открытые порты и прямое соединение (которое еще и реконнектить надо, когда сервис перезагружается), проверка клиентом по таймеру наличия новых сообщений, long-polling запросы или же какая-то неведомая йоба-технология? Анан, дай советов мудрых, будь няшей. Бест практисез какие-нибудь там, или чего еще - гугл молчит как молдавский партизан и кроме невнятных догадок ничего не говорит.

Ответы>>670454>>670505>>670857

28 Фев, 22:54 #255 #670454

>>670262
Зарплату не нашел. С Эккеля проиграл, они бы еще вопросы по предисловию задавали.
>>670408
long-polling в сервисе либо GCM c высоким приоритетом.

Ответы>>670461

28 Фев, 22:59 #256 #670461

>>670454
>long-polling в сервисе либо GCM c высоким приоритетом.
Мммм, а что насчет постоянно слушать удаленный порт? Ну, кто-нибудь так делает?

Ответы>>670498

28 Фев, 23:00 #257 #670464

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

Ответы>>670465

28 Фев, 23:01 #258 #670465

>>670464
базиса джавы*
самофикс

Ответы>>670471

28 Фев, 23:04 #259 #670471

>>670465
Можно и Эккеля почитать, а потом сразу в ондроед :3

Ответы>>670474

28 Фев, 23:06 #260 #670474

>>670471
тот, что "Философия Java"?

Ответы>>670479>>670486

28 Фев, 23:07 #261 #670479

>>670474
+

28 Фев, 23:11 #262 #670486

>>670474
Угу. У Ондроеда все равно своя атмосфера, так что не заморачивайся особо на знании джавы - любой базовый курс и вперед. Я, например, Эккеля читал. Сириусли.

28 Фев, 23:23 #263 #670498

>>670461
Мне кажется сокет очень быстро посадит батарейку.

Ответы>>670524

28 Фев, 23:26 #264 #670505

>>670408
>XMPP is how most of the popular chat apps send and receive messages. Some apps like GTalk, Whatsapp etc. depends completely on XMPP protocol. Whatsapp is believed to be using a customized version of aSmack.

Ответы>>670524

5 Кб, 320x170

28 Фев, 23:41 #265 #670524

>>670505
>of aSmack.
Вот, кстати, про aSmack я и забыл совсем, да. Надо бы ее поковырять-посотреть что там и как. А еще в вотсаппе именно кастомайзед aSmack и хуй знает чего они там наворотили еще сами.
>>670498
>Мне кажется сокет очень быстро посадит батарейку
Да тут такое мнение есть:
>here is a resource that's in use continually. It's the listening socket that was opened by the WhatsApp service. It just sits there on your phone waiting for an incoming network connection (see listen(2) for more information). This has essentially no cost in memory, battery power, or anything else.

Отседова: http://android.stackexchange.com/questions/43970/how-is-whatsapp-able-to-receive-messages-when-not-in-use

Вообще, котаны, вопрос в том - как лучше реализовать свой вариант push-нотификаций в андроиде, не используя GCM.

Ответы>>670538>>670709>>670859

28 Фев, 23:48 #266 #670538

>>670524
Мне кажется long-polling твой бро.

Ответы>>670552>>670709

28 Фев, 23:52 #267 #670545

>>669993
Да вообще пиздец, как же жопа от этого говна горит. Вызвал метод — поток завис пока юзер не подтвердил — поток отвис с готовым результатом. Ну почему такого нет? Зачем откровенную еблю устраивать? И так полный пиздец уже.

Ответы>>670709

28 Фев, 23:59 #268 #670552

>>670538
Да мне тоже так все больше и больше кажется, но интересно же: вдруг более годные решения есть, а то лонг-поллинги вроде серверную часть хорошо нагружают, нет?

29 Фев, 00:03 #269 #670558

ёбаный в рот. ЁБАНЫЙВРОТ ПОЧЕМУ ТАК НЕПОНЯТНО СУКУСУКАУСУКА, КЛАССЫЙ ПОДМЕТОДЫ ХУЕПЛЯСЫ ЕБАЫНЕЫЕСУКА !"""""""""""№!!!"!№

Ответы>>670578>>670580

36 Кб, 560x556

29 Фев, 00:12 #270 #670578

>>670558
кек

29 Фев, 00:13 #271 #670580

>>670558
Давай сразу на панель, там все проще.нет не проще

29 Фев, 01:24 #272 #670709

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

>>670545
Рахиты потому что. Мне не впадлу новые колбеки добавить, но и так не код а вермишель получается со всех этих листенеров и тд.

Ответы>>670757>>670763

29 Фев, 01:56 #273 #670757

>>670709
>у ведра ведь есть режим когда даже проц спать ложится.
ЕМНИП, там остается одно ядро активным. Хз, вроде как-то так.

Ответы>>670787

29 Фев, 02:03 #274 #670763

>>670709
>и так не код а вермишель получается со всех этих листенеров и тд.
ЮЗАЙ MVP, БЛЕАТЬ!!!
И возись с 9к интерфейсов и абстракт фактори фактори

Ответы>>670787

29 Фев, 03:05 #275 #670787

>>670763
Каким образом мвп поможет обойти адские колбеки? Ведь именно в колбеке я меняю интерфейс.
Чтоб не путать пример.
Есть интерфейс, есть хттп запрос, и есть контролер.
В контролере запускаем хттп запрос асинххронно само собой, в интерфейсе вешаем прогрессбар, теперь приходит ответ от сервера, срабатывает колбек который убирает прогрессбар. Теперь вопрос, каким образом мне поможет мвп? мввм? Да похуй что на самом деле. Колбеки будут всегда.
Я потому и не сильно понимаю смысла выноса всех запросов в отдельный сервис и потом перекидывания этих сообщений-колбеков через всевозможные костыли.
Но мне не хватает знаний пока что.
>>670757
Ну если так, то видимо начинается дикая борьба за приоритет.

Ответы>>670789>>670792

29 Фев, 03:09 #276 #670789

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

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

29 Фев, 03:13 #277 #670792

>>670787
>поможет обойти адские колбеки
Да не обойти а структурировать и превратить лапшу в 9к строк в аккуратные 9к файлов, описывающих в 100 строк поведение для каждого необходимого коллбека. Убрать их нельзя, но можно причесать, я вот о чем.

Ответы>>670799

29 Фев, 03:51 #278 #670799

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

Ответы>>670833

29 Фев, 07:20 #279 #670833

>>670799
Не совсем пойму о чем ты, но на всякий случай читни тут:
http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/
Он, как по мне слишком усложняет, разделяя дату и домейн аж в отдельные либы, но без этого можно и обойтись (с ебаными божественными объектами ондроеда бывают казусы)

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

https://github.com/android10/Android-CleanArchitecture/releases

Ответы>>670834

29 Фев, 07:23 #280 #670834

>>670833
>версии 5.0
0.5, епта
slffx

29 Фев, 09:25 #281 #670857

>>670408
смею предположить что сервисы на чек поставлены с очень низким периодом проверки, либо же сокет

Ответы>>670922

29 Фев, 09:27 #282 #670859

>>670524
частые проверки, ну раз секунд в 10-20 ?

Ответы>>670922>>671199

29 Фев, 10:37 #283 #670891

И это снова фрагменты-в-активити-после-onDestroy-кун. Помогите пожалуйста с этой проблемкой :)
Вкратце: после триггера onDestroy в фоне и возвращению в приложение фрагменты наползают друг на друга хаотично и жестоко. Что делать - не ебу. С onPause все путем.Фрагментами оперирую с помощью hide/show.

29 Фев, 11:34 #284 #670922

>>670859
>>670857
Вы забываете про режим сна на телефоне.

Ответы>>671085>>671199

29 Фев, 12:09 #285 #670933

Юзаю ретрофит и контентпровайдер.
Вот думаю каким образом сделать асинхронную запись в бд после респонса ретрофита. Что посоветуете?
Обычный тред? Асинктаск? Или обмазатся рхДжавой?
Да я знаю что можно чем угодно, просто думаю стоит ли трогать рхДжаву ради такого.

Ответы>>670939>>671088

29 Фев, 12:15 #286 #670934

Как распарсить gson пикрилейтед? По идее для каждого объекта нужно создавать классы с именем объекта, но они кирилицей.

Ответы>>670935

22 Кб, 584x711

29 Фев, 12:17 #287 #670935

>>670934
быстрофикс

Есть json с массивом объектов с массивами.
Как распарсить при помощи gson пикрилейтед? По идее для каждого объекта нужно создавать классы с именем объекта, но они кирилицей. Как быть ?

{
"Игры": [
{

"category": "Шутер",
"enable_likes": 0,
"icons": [],
"id": "cs",
"name": "Counter Strike",
"pages": 7
},
{
"category": "Шутер",
"enable_likes": 0,
"icons": [],
"id": "bf",
"name": "BattleField",
"pages": 7
}
],
"Статьи": [
{
"category": "Шутер",
"enable_likes": 0,
"icons": [],
"id": "cs",
"name": "Counter Strike",
"pages": 7
}
]
}

Ответы>>670940

29 Фев, 12:25 #288 #670939

>>670933
Если будешь использовать rx, то тогда уж в связке с sqlbrite, тогда и контент провайдер не потребуется.

Ответы>>670950>>671372

29 Фев, 12:26 #289 #670940

>>670935
Кастомизировать gson, или поменять названия с кириллицы на нормальные.

Ответы>>670950

29 Фев, 12:39 #290 #670950

>>670939
>>670940

а подробнее? Я учусь только. приходящий json не изменить. Нужно обработать то что есть

Ответы>>670956

29 Фев, 12:54 #291 #670956

>>670950
Атрибут @SerializedName на нужных полях

Ответы>>670967

29 Фев, 13:11 #292 #670967

>>670956
но мне нужно не поле, а имя Объекта (класса) которое приходит в json кириллицей. Этот атрибут не применим к имени класса

Ответы>>670973

29 Фев, 13:26 #293 #670973

>>670967
Какие еще имена классов, json все равно как они называются.
Вот тебе, ленивая ты ####, готовые классы http://pastebin.com/BkkMEhrM

29 Фев, 15:20 #294 #671085

>>670922
Вроде как можно сделать сервис неубиваемым сном, не ?

Ответы>>671199

29 Фев, 15:21 #295 #671088

>>670933
Вроде как можно Async для таких коротких действий использовать. ИМХО: проще и быстрее склепать асинк

Ответы>>671372

29 Фев, 16:17 #296 #671165

Какую MVP либу юзаете?

Ответы>>671189

29 Фев, 16:38 #297 #671189

>>671165
> 2016
> MVP
Для кого MVVM придумали? Плюс сейчас он из коробки.

Ответы>>671199>>671234

29 Фев, 16:53 #298 #671199

>>671189
>из коробки
Ммм? А подробнее? Чет упустил я по-ходу.
>>670859
Батарея сдохнет. И да, анон прав>>670922
>>671085
Да, но он перезапустится после остановки. Как и при вызове onTaskRemove, что означает в случае сокета реконнект и возможно потерю данных. Хотя, можно подтверждения гонять, да

Ответы>>671205

29 Фев, 17:13 #299 #671205

>>671199
> А подробнее?
https://www.youtube.com/watch?v=NBbeQMOcnZ0
http://developer.android.com/intl/ru/tools/data-binding/guide.html

478 Кб, 862x965

29 Фев, 17:40 #300 #671226

У меня появлиась проблема архитектурного характера которая похоже что упирается в убогость системы типов жабы.
Допустим я реализую Restful библиотеку на Retrofit.

Код такой:

public abstract class ApiResult<T> ...

public class ApiResultSuccess<T> extends ApiResult<T> {
T data;
...
}

public class ApiResultError extends ApiResult {
String errorMessage;
...
}

Допустим в коде сервиса Retrofit:
@GET(/yobas)
Observable<Result<JsonObject>> getYobasInternal()...

И во враппере

Observable<ApiResult<List<Yoba>> getYobas() {
return service.getYobasInternal().map(r->
//парсим r либо в ApiResultError либо в
// ApiResultSuccess<List<Yoba>>
;
}

Но в вызывающем коде мне придется даункастить ApiResult либо к ApiResultSuccess<List<Yoba>> либо к ApiResultError используя пресловутый instanceof. А если бы была какая-нибудь скалка или хаскель то я бы написал вместо всей этой хуйни просто Either (ApiResultSuccess T) ApiResultError и никаких даункастов бы делать не пришлось.

Теперь вопрос, как все эти анальные трюки избежать в жабе 7? Городить на каждую ошибку http свой эксепшн или кидать для http кодов отдельный коллбек вне observable не предлагать. Так как у меня очень сложная обработка критически важной секьюрной информации, а вызовами с коллбеками я наелся уже на старом API.

Ответы>>671231

29 Фев, 17:47 #301 #671231

>>671226
А почему не вынести errorMessage в базовый класс ApiResult?
Ошибка ведь может возникнуть в любом ответе.

Gson (и тп) всеравно проигнорят пустые свойства.

Ответы>>671235

29 Фев, 17:54 #302 #671234

>>671189
Гуглы сами для себя придумали, очевидно же. Все угорают по мвп.
Алсо на винфоне мввм смотрится гораздо приятнее.

29 Фев, 17:54 #303 #671235

>>671231
Нет, json приходит двух типов {data: huita_data} и {error: huita_params}, причем данные внутри и того и того мне важны. Или ты предлагаешь все парсить в один ApiResult и проверять какой-нибудь хуетой типа if(result.isError()) ?

Ответы>>671239>>671260>>671294

29 Фев, 18:00 #304 #671239

>>671235
Бери Kotlin

Ответы>>671240>>671271

29 Фев, 18:00 #305 #671240

>>671239
pas te bin . com/44gnV8g0

Ответы>>671244>>671271

29 Фев, 18:03 #306 #671244

>>671240
open val с default value в базовом классе конечно же (можно было бы и вовсе обойтись без них если ты работаешь с резалтами только через матч по типу)

Ответы>>671271

116 Кб, 396x960

29 Фев, 18:13 #307 #671260

>>671235
Это vk api, не так ли?

Ответы>>671271

29 Фев, 18:21 #308 #671271

>>671239
>>671240
>>671244
Мда, котлин не радует, даже простенького паттернматчинга нет как в эрланге. Но это мне все равно не поможет, так как проект я пишу не для себя а для дядек, которым ОЧЕНЬ не понравится если я притащу в проект еще один "экспериментальный хипсторский язычок".
>>671260
Нет.

Ответы>>671317>>671322

29 Фев, 18:31 #309 #671294

>>671235
> типа if(result.isError()) ?
У тебя будто большой выбор, либо каст либо вынос части логики в базовый класс.
Не пойму что не так, это стандартный подход.

Я бы на твоем месте вообще написал бы аксептер для retrofit, который бы кидал исключение на НЕ 200.
А потом бы обрабатывал бы в onError(...)

Ответы>>671310>>671323

29 Фев, 18:41 #310 #671310

>>671294
Я помню что vk api возвращает ошибки { "error": "yoba" } с кодом 200

29 Фев, 18:43 #311 #671317

>>671271
Классы не обязаны были иметь общего предка для матча по типу; я ввел супертип для удобства, чтобы не приводить к kotlin.Any (java.lang.Object) если тебе нужно передавать результат куда-то, является он ошибкой или нет.

29 Фев, 18:45 #312 #671322

>>671271
Бери тогда ретролямбду, ведь жава 8 одобрена жава-господином и напиши Either.

1018 Кб, 500x281

29 Фев, 18:45 #313 #671323

>>671294
>У тебя будто большой выбор, либо каст либо вынос части логики в базовый класс.
>Не пойму что не так, это стандартный подход.
Ну, наверное ты прав, просто привычка программировать на нормальных языках сказывается. Как на жабе попишу, чувство будто говна пожевал.
>Я бы на твоем месте вообще написал бы аксептер для retrofit, который бы кидал исключение на НЕ 200.
>А потом бы обрабатывал бы в onError(...)
У меня была такая идея, но дело в том что сервер в при ошибке может в json написать причины и прочее, и мне это нужно обрабатывать. К тому же сам JakeWarthon вон https://github.com/square/retrofit/issues/1102
пишет что ексепшн в ретрофите бросается только при IOException, а все остальное гораздо лучше хэндлить в основном потоке.

Ответы>>671327

29 Фев, 18:50 #314 #671327

>>671323
>>639475

29 Фев, 19:27 #315 #671372

>>671088
Да думаю ты прав.
>>670939
>sqlbrite
Я капбоард юзаю и мне норм.

29 Фев, 20:21 #316 #671469

В верстка-треде пишут что, что бы взяли на работу нужно минимум 400+ часов обучения, сколько же тогда нужно потратить времени что бы взяли джуном на Андроид разработку?

Ответы>>671639>>671680

29 Фев, 21:54 #317 #671639

>>671469
>часы обучения
что-то новенькое

29 Фев, 22:13 #318 #671680

>>671469
10000 часов, всем известно же.

29 Фев, 22:35 #319 #671711

Сосаны, давайте напишем зарплаты, ну что бы так примерно чувствовать. А то в стартапчике на пендосов мидлу/синиору предлагали 1500-3000, вот хочу знать скоко нормально, сейчас получаю в месяц по 800 лол.

Ответы>>671764>>671790

29 Фев, 23:18 #320 #671764

>>671711
0

Ответы>>671776

29 Фев, 23:31 #321 #671776

>>671764
Ну ты же не участвуешь в коммерческой разработке, так что в статистику тебе низя.

29 Фев, 23:58 #322 #671790

>>671711
ОП, год опыта(будет в этом месяце кстати), 800.

01 Мар, 02:17 #323 #671943

Студия 1.5.1 и 2 бета 6, уебунта 14.04. Бесконечно крутится ромалка билд гредл в любом проекте. Студию переставлял, бету накатывал - хуй там плавал. На другой пеке та же ось и студия - все работает на ура

Ответы>>671944>>671945>>671995>>672105

01 Мар, 02:17 #324 #671944

>>671943
Чем лечить?

01 Мар, 02:17 #325 #671945

>>671943
Ромашка
Быстрофикс

01 Мар, 07:21 #326 #671995

>>671943
Удалить кэши?

Ответы>>672023

01 Мар, 09:00 #327 #672023

>>671995
Пробовал, толку 0

01 Мар, 10:35 #328 #672083

>>665510 (OP)
NavigationDrawer или TabbedActivity? И в чем суть использовать драверы не от гугла?

01 Мар, 11:10 #329 #672105

>>671943
Запускай таски грэдла в консоли, смотри, где думает. Грэдл последний накати.

01 Мар, 12:05 #330 #672141

Сап, вопрос:
Какая из MVVM библиотек может в работу с recyclerView

Ответы>>672244

01 Мар, 14:00 #331 #672244

>>672141
Вырастили блин поколение, 1-2 класса написать не в состояние.
Сам напиши на Koтлин, заодно и разберешься как биндинг в Androd работает.

01 Мар, 17:48 #332 #672466

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

Ответы>>672469

01 Мар, 17:53 #333 #672469

>>672466
Через observable.

Ответы>>672473

01 Мар, 17:54 #334 #672473

>>672469
Т.е. rx предлагаешь?
Я просто боюсь его в рабочем проекте юзать. Сейчас же в любом случае полезет говно разное.

Ответы>>672475

01 Мар, 17:59 #335 #672475

>>672473
У меня на observable вышло быстрее чем когда в давние времена я пытался вручную управлять пулами тредов. К тому же не вижу никакой разницы с точки зрения конечного программиста
getYobasFromDb(context, new YobaListener() {...
или
getYobasObservableFromDb(context).doOnNext(new Action1() {...

Ответы>>672477>>672487

01 Мар, 18:07 #336 #672477

>>672475
Да я сейчас протестил, нахуярил тысячу эллементов дак ему просто похуй что в юитреде что в отдельном.
Тупо та же скорость и провисание на смене курсора в адаптере.
Сейчас потестим с 10к.

Да просто если уже с rx то делать ровно и переделывать все реквесты. Уже когда буду диплом пилить по "Реактивное программирование в андроид" то поюзаю.

Ответы>>672496

01 Мар, 18:21 #337 #672485

Почитал про суппорт либу 23.2
Я правильно понял, что теперь можно кидать векторные изображения на старые ведра и не ебаться с 15 папками?

Ответы>>672511

01 Мар, 18:23 #338 #672487

>>672475
Ладно, посидел я подумал, завтра начну юзать rx и будь что будет.

01 Мар, 18:33 #339 #672496

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

ListView (GridView и тд) все равно вызовут getCount для расчета высоты скролбара (только уже в главном потоке).

Ответы>>672512>>672516

01 Мар, 18:52 #340 #672511

>>672485
Ты и с gradle plugin 1.5 мог.

01 Мар, 18:53 #341 #672512

>>672496
Ох уж эти sqlitопроблемы.

Ответы>>672516

01 Мар, 18:57 #342 #672516

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

Ответы>>672518

01 Мар, 19:02 #343 #672518

>>672516
> У тебя с твоим реалмом подобный механизм только с бубном поднимается.
Мне нет необходимости заниматься такими вещами. Если список короткий, я могу спокойно сделать copyFromRealm и работать с скопированными в оперативку данными, иначе спокойно работаю с lazy списком.

Ответы>>672521>>672527

01 Мар, 19:10 #344 #672521

>>672518
>Если список короткий, я могу спокойно сделать copyFromRealm и работать с скопированными в оперативку данными,
Нунихуяжсебе, а с скйлайтом это невозможно.
>иначе спокойно работаю с lazy списком.
Я так понимаю это подобие курсора.

01 Мар, 19:15 #345 #672527

>>672518
Достался мне проект с релмом, что за дерьмо, господи, вроде все нормально и тут бац сегфолт, как это вообще понимать?

Ответы>>672529

01 Мар, 19:17 #346 #672529

>>672527
> сегфолт
Что-то где-то в нативе. На постоянной основе?

Ответы>>672532

01 Мар, 19:22 #347 #672532

>>672529
Ага, при попытке почистить табличку. Убрал клир, вроде не падает, но сука какого черта?

Ответы>>672535>>672538

01 Мар, 19:22 #348 #672535

>>672532
Пробовал на пустом проекте с скопированными из основного проекта RealmObject'ами?

Ответы>>672542

01 Мар, 19:25 #349 #672538

>>672532
Еще как вариант, делать пока findAll.clear.

Ответы>>672542

01 Мар, 19:28 #350 #672542

>>672535
Нет.
>>672538
Ну я пробовал через where, возможно сейчас без клира проканает, нов будущем если будем с ними работать нахуй вырежу это.

01 Мар, 22:22 #351 #672720

Что лучше использовать AsyncTask или Threads?
Наверное тупой вопрос.

Ответы>>672726

01 Мар, 22:25 #352 #672726

>>672720
Смотря для чего.

Ответы>>672732

01 Мар, 22:28 #353 #672732

>>672726
Ну например для вытаскивания данных из БД или для обработки JSON. И я так и не понял какое между ними отличие.

Ответы>>672741>>672742>>672748

01 Мар, 22:33 #354 #672741

>>672732
Асинктаском проще делается работа в отдельном потоке с последующей обработкой результата в основном. К тому же обычно асинктаск использует пул потоков, а не создаёт новый поток. Если заняты все потоки из пула, задача встаёт в очередь.

Ответы>>672746>>672748>>672754

01 Мар, 22:33 #355 #672742

>>672732
Асинк таск это всего лишь обертка для работы с тредами. Все упирается в них, но разумеется нет смысла каждый раз создавать новый тред что бы записать в базу, заводят пул тредов, но вариант с асинк тасками некоторые сочтут примитивным, рабоче-крестьянским так сказать. Из альтернатив - свои велосипеды, ORM, Realm и rxJava

Ответы>>672746>>672748>>672757

01 Мар, 22:34 #356 #672746

>>672741
>>672742
Спасибо, вроде понял.

01 Мар, 22:36 #357 #672748

>>672732
Асинктаск имеет колбеки, а так и обычный тред должен подойти.

>>672741
>>672742
Я вот капбоард юзаю да я всех уже заебал с ним, но там не сделали асинк вставку, и теперь хз что делать.

01 Мар, 22:40 #358 #672754

>>672741
> асинктаск использует пул потоков
Starting with HONEYCOMB, tasks are executed on a single thread to avoid common application errors caused by parallel execution.
Так что только при использовании executeOnExecutor

Ответы>>672758>>672764

01 Мар, 22:40 #359 #672757

>>672742
Вообще законно юзать realm без rxJava? А то я относительно недавно вкатился в андроид дев, и не хочу учить пока йоба фреймворки, а реалмом попользовался, он мне оч понравился.

Ответы>>672760>>672763

01 Мар, 22:41 #360 #672758

>>672754
Я знаю няша. Думаешь я ими пользуюсь, асинк тасками?

01 Мар, 22:41 #361 #672760

>>672757
Да, можно, они никак не связаны.

01 Мар, 22:41 #362 #672763

>>672757
> Вообще законно юзать realm без rxJava
Реалм достаточно быстро работает, можно и на главном потоке с ним работать.

01 Мар, 22:42 #363 #672764

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

01 Мар, 23:03 #364 #672787

Как же бомбит от количества вещей, которые нужно знать для разработки. БД, ОРМ, тесты, моки, фреймворки, Джава, тысяча сраных библиотек, написанных непонятно кем, эвент басы, реактивное программирования, теперь ещё и сраный Котлин релизнулся.
Когда это учить-то всё?

Ответы>>672818

01 Мар, 23:23 #365 #672818

>>672787
Кстати ты меня натолкнул на мысль.

Братцы поясните за тесты и моки.
Я их даже не пытаюсь писать, учитывая какая кривая(обычная) у меня архитектура.

01 Мар, 23:31 #366 #672838

Как люди юзают лямбды из 8ой джавы?
Это же импасибру разве нет?

Ответы>>672840>>672843

01 Мар, 23:31 #367 #672840

>>672838
Ну и ретролямбду не предлагать.

01 Мар, 23:32 #368 #672843

>>672838
Вопрос снят, таки в примере ретролямбда, просто они решили позже это сказать.

02 Мар, 00:01 #369 #672901

Все же сложноватый rx, немного голова кругом идет.

Вот пример. В гайде так написано, но я не вижу логики.
myObservableServices.retrieveImage(url)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(bitmap -> myImageView.setImageBitmap(bitmap));
Разве
bitmap -> myImageView.setImageBitmap(bitmap)
Не сабскрайбер? А сабскрайбер у нас не в мейн треде же, следовательно эрор и пиздец.

Ответы>>672907>>673135

02 Мар, 00:05 #370 #672907

>>672901
Он обсервер.

Ответы>>672912

02 Мар, 00:09 #371 #672912

>>672907
Ну тогда я запутался в ебеня.

Метод сабскрайб принимает сабскрайбера внезапно.

Ответы>>672913

02 Мар, 00:10 #372 #672913

>>672912
Значит там сабскрайбер, все будет ок.

Ответы>>672915>>672916

02 Мар, 00:14 #373 #672915

>>672913
Так еще раз, мы сказали что сабскрайбер будет работать в ИО потоке, но в сабкрайбере операция с ЮИ, т.е. доступна только в мейн потоке.

02 Мар, 00:16 #374 #672916

>>672913
Все вроде понял, методы-планировщики вообще не связаны с соответствующими сущностями.

Ответы>>672917

02 Мар, 00:18 #375 #672917

>>672916
Именно

02 Мар, 02:38 #376 #673011

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

Ответы>>673117

02 Мар, 08:41 #377 #673117

>>673011
> Стримы это же попытка в что-то подобное?
Да. LINQ - обертка над IEnumerable, что в Java Iterable, а любой Iterable можно сделать потоком.

Ответы>>673197

02 Мар, 09:41 #378 #673135

>>672901
Смотри есть простое привило:
subscribeOn(...) - в этом шедулере будут исполнятся методы от начала и до subscribeOn позиции.
observeOn(...) - в этом шедулере будут исполняться методы ниже по списку до следующего observeOn

Пример:
1) myObservableServices.retrieveImage(url)
2) .map(s1 -> s1)
3) .subscribeOn(Schedulers.io())
4) .observeOn(Schedulers.compute())
5) .map(s2 -> s2)
6) .observeOn(AndroidSchedulers.mainThread())
7) .map(s3 -> s3)
8) .subscribe(bitmap -> myImageView.setImageBitmap(bitmap));

Будут исполняться в шедулерах:
(1-2) - Schedulers.io()
(4) - Schedulers.compute()
(7-8) - AndroidSchedulers.mainThread()

Несколько subscribeOn и вложенные обсерверы (flatMap(...)) это отдельный вопрос.

Ответы>>673201>>673203

02 Мар, 11:59 #379 #673197

>>673117
Да, но линкью дает возможность делать запросы к бд и тд.

Ответы>>673207

02 Мар, 12:00 #380 #673201

>>673135
>subscribeOn(...) - в этом шедулере будут исполнятся методы от начала и до observeOn позиции
Пофиксил тебя.

Ответы>>673264

02 Мар, 12:02 #381 #673203

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

Ответы>>673264

02 Мар, 12:07 #382 #673207

>>673197
Через соотвествующий фреимворк и парсер дерева выражений linq.
Но таки да, linq все еще лучше стримов.

02 Мар, 12:40 #383 #673233

Такс, у нас есть rxjava, дальше расширение для андроида rxandroid, но что тогда такое rxbindings?

Ответы>>673239

02 Мар, 12:43 #384 #673239

>>673233
Делает из вьюх потоки кликов и других событий

Ответы>>673240

02 Мар, 12:44 #385 #673240

>>673239
Охнихуяжсебе, звучит интересно, но оставим на потом.

02 Мар, 13:02 #386 #673252

Ладно задам еще один вопрос по rx и сьебу чтоб не заебывать.

С сервера прилетает бейсреспонс с статусом, кодами, и самим обжектом ответа, который как раз меняется от запроса к запросу.
Перед тем как достать лист я хочу проверить прошел ли запрос успешно. И потом уже отдать лист во флетмапу и тд.
Как сделать обработку ошибок перед отдачей листа во флетмап? Или просто вытаскивать список, а если схвачу ошибку то в онЕроре выведу код?

Ответы>>673267

02 Мар, 13:25 #387 #673264

>>673201
Да
>>673203
Поправь конкретно где я ошибся, кроме subscribeOn. Не хочу быть в заблуждение.

Ответы>>673280

02 Мар, 13:29 #388 #673267

>>673252
Можешь к примеру, посередке воткнуть onNext(...) там проверять значение и кидать исключение.

Ответы>>673364

02 Мар, 13:54 #389 #673280

>>673264
>(4) - Schedulers.compute()
5

02 Мар, 14:22 #390 #673303

Подскажите как.

Есть БД со списком все СМС с телефона.
Хочу сделать выборку только последних СМС от каждого адресата. Как это лучше сделать? Можно ли написать такой SQL запрос или сразу весь массив запросить селектом в List и из него уже сделать выборку?

Ответы>>673311

02 Мар, 14:27 #391 #673311

>>673303
join + group + order by "Messsage.created" desc

скинь формат базы и формализуй "только последних"

Ответы>>673325

02 Мар, 14:35 #392 #673325

>>673311
>скинь формат базы
Что?
SQLite.
таблица с смс
поля sender(номер телефона), text(сообщение), date

>формализуй "только последних"
Только последний сообщения от каждого адресата.
Я хуй знает это была просьба от тебя в допданных или призыв к действию

Ответы>>673362

02 Мар, 15:25 #393 #673362

>>673325
Ну если тебе нужно только 1 последнее, то

select
from (
select
from sms
order by date
)
group by sender

Ответы>>673411

02 Мар, 15:26 #394 #673364

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

Ответы>>673411

7 Кб, 163x124

02 Мар, 16:39 #395 #673411

>>673362
Забыл про звездочку

>>673364
Похоже на прямое нарушение принципа ед. обязаности.

Была похожая задача, сделал отдельный класс для UI который из исключение генерировала нужное сообщение о ошибке.

Ответы>>673436

02 Мар, 17:08 #396 #673436

>>673411
Ну смотри как вышло пока что.
Первый раз потрогал rx так что не бейте.

http://pastebin.com/e79vjAJS

и вопросы по коду
1)как сделать обработку и споследующим выводом на экран нормально и красиво?
2)Как мерджить флетмап я так и не понял, зипом чтоль? Да и нужно ли если обычный фор менее заебистый.
3)нужно ли делать вставку в бд в ио треде?

Ответы>>673449>>673466

02 Мар, 17:18 #397 #673449

>>673436
опечатка получилась в коде, второй сабскрайбОн, не обращайте внимание.

02 Мар, 17:31 #398 #673466

>>673436
На первый взгляд какая-то жесть :)
Это метод внутри фрагмента?

Ответы>>673472

02 Мар, 17:35 #399 #673472

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

А так спрашивай отвечу что хотел сделать, и спасибо что помогаешь.

Ответы>>673493

02 Мар, 17:37 #400 #673477

Можно ли сделать переключалку табов (TabWidget) без TabHost, как отдельный контрол? Кто-нибудь делал подобное?

Ответы>>673527

02 Мар, 17:52 #401 #673493

>>673472
service это просто ретрофит без локальной логики?

Ответы>>673495

02 Мар, 17:53 #402 #673495

>>673493
Да, сори, забыл уведомить.

Ответы>>673503

02 Мар, 17:58 #403 #673503

>>673495
Ты получается здесь просто данные берешь и сохраняешь их в базу?
Где код который пользователю показывает результат (после сохранения в базу)?

При использования ретрофита без прослоек у тебя апи должно сразу возвращать данные удобные для отображения.

Ответы>>673510>>673602

02 Мар, 18:03 #404 #673510

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

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

02 Мар, 18:19 #405 #673527

>>673477
да, кнопки в linear + немножко ебли и дизайна

Ответы>>673682

02 Мар, 19:16 #406 #673602

>>673503
Ну же не забивай на меня болт, подскажи чего.

Ответы>>673639

02 Мар, 19:45 #407 #673639

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

Ответы>>673667

02 Мар, 20:11 #408 #673667

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

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

Ответы>>673696

02 Мар, 20:30 #409 #673682

>>673527
Так и думал. Спасибо.

02 Мар, 20:44 #410 #673696

>>673667
> Плюс попробуЙ
Плюс попробуЮ

опечатка

Ответы>>673705

02 Мар, 20:56 #411 #673705

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

Апиха у нас не обычный рест, в этом трабла и сосредоточение костылей для распознавания ошибок.
Сервер отдает джейсон, в котором есть статус, код ошибки(если статус фолс) и бади(как раз интересуемый результат, в примере лист). Потому мне приходится перепроверять респонс в онСаксесе(в колбеке ретрофита). И да, эти ошибки я в основном должен выводить в ЮИ.

Дальше на счет самого кода в пастебине
http://pastebin.com/e79vjAJS

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

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

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

Ответы>>674606>>675858>>675897

02 Мар, 22:41 #412 #673815

Кто-нибудь 2 студию юзает? Как она?

28 Кб, 398x290

WrapPanel для Android 02 Мар, 22:42 #413 #673816

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

Типа как контрол WrapPanel для XAML.

Обычно я пишу его сам (из ViewGroup), но чет сегодня мне лень.

Ответы>>673925

03 Мар, 00:02 #414 #673925

>>673816
Если честно я просто пытаюсь не делать такую верстку.
Отступы вон все равно кривые и отцентрировать нужно, в результате говно получится.

Ответы>>674072

03 Мар, 04:12 #415 #674018

1. Чем плохо юзание статических переменных в Андроид разработке? Как самое наркоманское - хранить в активити ссылку на саму себя, чтоб вызывать из фрагментов методы активити.
2. В RecyclerView, что лучше: менять один и тот же список и юзать NotifyDataSetChanged, или можно создавать каждый раз новый, создавать новый адаптер и SetAdapter'ить его? Есть ли разница?

Ответы>>674029

03 Мар, 06:05 #416 #674029

>>674018
>Как самое наркоманское - хранить в активити ссылку на саму себя
Так там уже есть такая ссылка, this называется.
>чтоб вызывать из фрагментов методы активити.
У фрагмента есть гетактивити, в чем проблема?
>Чем плохо юзание статических переменных в Андроид разработке?
Как статические переменные относятся к твоим словам процитированным мною выше?

>2. В RecyclerView, что лучше: менять один и тот же список и юзать NotifyDataSetChanged, или можно создавать каждый раз новый, создавать новый адаптер и SetAdapter'ить его? Есть ли разница?

Смена адаптера это конструктор, это инфлейт новыхВьюх и тд и тп.

Ответы>>674154

03 Мар, 07:27 #417 #674048

>>665510 (OP)
>мобильная разработка это весело
И что же там интересного по сравнению с тырпрайзом?

Ответы>>674053

03 Мар, 07:34 #418 #674053

>>674048
Да даже разглядывать как мухи садятся на говно интереснее энтерпрайзопараши, к чему вопрос? В андроиде тоже программировать удовольствие неважное, но это лучше чем ковыряться в гигантском куске дерьма написаного в девяностых, выполняющего функции 1С.

83 Кб, 600x600

03 Мар, 07:59 #419 #674058

Котаны, почему вместо круга я получаю овал, когда радиус круга 5...8 метров?
Когда радиус больше - овальность менее заметна. Перевод метров в пиксели: meters * mTileSize / 40000000f.
https://github.com/dan-silver/Android-Street-View/blob/master/demo/src/com/google/maps/android/utils/demo/TileProviderAndProjectionDemo.java

Ответы>>675432

03 Мар, 08:32 #420 #674072

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

Ответы>>674089

03 Мар, 09:07 #421 #674089

>>674072
Первый запрос в гугле выдал кучу реализаций для этого под названием flowlayout.

Ответы>>674110

03 Мар, 10:16 #422 #674110

>>674089
Да уже написал сам (50 строчек код)

03 Мар, 11:41 #423 #674154

>>674029
1. Это к чему я: Если у меня активити в единственном экземпляре, и каждый фрагмент в нем - тоже, то вызывать из фрагмента методы активити при помощи getActivity().someMethod() является нормальный практикой, или надо с листенерами ебаться обязательно?
2. Ну гугл говорит, что разницы нет, и там и там все вьюхи с нуля заново рисуются.

Ответы>>674157>>675008>>675031

03 Мар, 11:45 #424 #674157

>>674154
Они заного рисуются, но не инфлейтятся. У ресайклервью есть кэш вьюх.

Ответы>>674159

03 Мар, 11:51 #425 #674159

>>674157
Ок, т.е. даже если список полность обновился, лучше нотифаить и самому скроллить вверх (как я понял, это надо будет делать вручную)?

03 Мар, 12:50 #426 #674188

Есть хороший вариант когда вьюшки и айдишки совпадают использовать swapAdapter(newAdapter, false).

40 Кб, 550x604

03 Мар, 15:34 #427 #674294

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

Ответы>>674309

03 Мар, 15:47 #428 #674309

>>674294
Уже был тут ответ где-то давно.

Ответы>>674316

03 Мар, 15:58 #429 #674316

>>674309
Как делать я знаю, это был вопрос для затравки.
Меня пару тонкостей интересует, но я не уверен что здесь кто-то это вообще делал.

Хотя ладно:
1) Как вы делаете перетаскивание своего окна?
2) Как изменять размер вью (через wm.updateViewLayout(...)) БЕЗ анимации.

Ответы>>674334

03 Мар, 16:05 #430 #674320

короче, юзаю data binding для recyclerview в фрагменте и он занимает не свое место (franeLayout как это делается в транзакции ) а весь, сука, экран . Не подскажете, что можно проверить в таком случае ?

Ответы>>674342

03 Мар, 16:05 #431 #674321

быстрофикс: нужно

03 Мар, 16:09 #432 #674334

>>674316
А как ты саму вьюху делаешь?
Просто интересно

Ответы>>674353

03 Мар, 16:12 #433 #674342

>>674320
примерно как здесь делаю. Предполагаю, что проблема в том, что я передаю контекст активити в linearLayoutManager

https://github.com/radzio/android-data-binding-recyclerview

03 Мар, 16:20 #434 #674353

>>674334
пермишен android.permission.SYSTEM_ALERT_WINDOW
+
WindowManager.addView(View,WindowManager.LayoutParams)
c параметром
http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#TYPE_SYSTEM_ALERT
+
ну и сама вьюха (активити + фрагменты не катят) которую будешь показывать

WindowManager нужно брать (getSystemService()) из Application, тк активити отдают локальные.

03 Мар, 16:49 #435 #674381

Отака хуйня блять, почему не правильно работает количество?
http://pastebin.com/nTExZrdY

Ответы>>674401

03 Мар, 16:59 #436 #674401

>>674381
Вот жеж хуесосы:
http://stackoverflow.com/questions/17261290/plural-definition-is-ignored-for-zero-quantity.

03 Мар, 18:20 #437 #674530

У RecylerView можно в xml задать:
spanCount
reverseLayout
stackFromEnd
У класса Properties есть еще поле orientation, вместе с выше указанными, но в xml его указать не получается.
properties.orientation = a.getInt(R.styleable.RecyclerView_android_orientation, VERTICAL);
properties.spanCount = a.getInt(R.styleable.RecyclerView_spanCount, 1);
properties.reverseLayout = a.getBoolean(R.styleable.RecyclerView_reverseLayout, false);
properties.stackFromEnd = a.getBoolean(R.styleable.RecyclerView_stackFromEnd, false);
Я пробовал и app:orientation и app:android_orientation.

Ответы>>674535

03 Мар, 18:27 #438 #674535

>>674530
В итоге сработает android:orientation="horizontal" ну или vertical

03 Мар, 19:09 #439 #674606

>>673705
Бамп

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

Алсо, нашел вот очень похожий хендлер ероров
https://futurestud.io/blog/retrofit-2-simple-error-handling
Так что думаю мой костыль для обработки ответа с сервера не такой и костыль.

03 Мар, 21:57 #440 #674836

Платина, наверное. Как можно одновременно стримить музыку по url и скачивать ее на диск?

Ответы>>674850>>674887>>675107

03 Мар, 22:06 #441 #674850

>>674836
Лол, уменя такая же задача в будущем может появится, что бы не было прерываний, нужно поднять прокси сервер свой на локалхосте аппарата, и его передать как урл, а ужу он будет скачивать/писать файл и отдавать сокетом инфу медиаплееру. В интернет валяется несколько примеров на гитхабчике.

Ответы>>674864>>674887

03 Мар, 22:13 #442 #674864

>>674850
Даже не думал в эту сторону, спасибо.

Ответы>>674886

03 Мар, 22:26 #443 #674886

>>674864
http://stackoverflow.com/questions/17732190/how-to-record-and-save-as-mp3-online-streaming-audio

http://stackoverflow.com/questions/14055272/android-4-0-ideas-how-to-record-capture-internal-audio-e-g-stream-music/17445153#17445153

03 Мар, 22:26 #444 #674887

>>674836 >>674850
А почему не сделать просто свой MediaDatSource (и передать его MediaPlayer)?
http://developer.android.com/intl/ru/reference/android/media/MediaDataSource.html

Ответы>>674892>>674907

03 Мар, 22:31 #445 #674892

>>674887
Сейчас глянул подробнее, а он оказывается с Android 6.0 :)

Ответы>>674907

03 Мар, 22:39 #446 #674907

>>674887
>>674892
Ну это было довольно предсказуемо.

03 Мар, 22:41 #447 #674909

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

03 Мар, 22:44 #448 #674915

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

Ответы>>674923>>674947

03 Мар, 22:46 #449 #674923

>>674915
Опять ссылку на стрим, только так.

03 Мар, 22:59 #450 #674947

>>674915
Как вариант, попробовать скачивание запихнуть в FileOutputStream, а тот же файл скормить плееру. У самого плеера ловить ошибку считывания файла.

Ответы>>674976

03 Мар, 23:18 #451 #674976

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

03 Мар, 23:39 #452 #675008

>>674154
Бамп, хотя бы первому вопросу.

03 Мар, 23:47 #453 #675031

>>674154
Да нормально, но лучше конечно как-то по красивше.
Модешь дополнить адаптер и уведомить его о том что что-то добавилось, или свапнуть, тогда кэш вьюх останется.

Ответы>>675326

04 Мар, 00:31 #454 #675107

>>674836
Не такая уж и платина. На ум приходит только с нуля делать свой MediaPlayer.

04 Мар, 03:39 #455 #675326

>>675031
Ок, если такой подход норм, то отлично. Потому что все везде EventBus'ы советуют юзать, а смысл, если можно так.

131 Кб, 983x812

04 Мар, 08:36 #456 #675432

>>674058
Это все хуйня.
Делай как в ColoredPolylineTileOverlay:
http://stackoverflow.com/questions/14258830/colourful-polylines-in-android-maps-api-v2

04 Мар, 14:09 #457 #675638

сап, есть ли годные гайды по новомодной хуйне типо rxjava, dagger, flow, mortar и прочей хуйне. Решил тут по собесам походить, так в кое-где уже начинают спрашивать про эту херь.
Смотрел пару примеров по rxjava и dagger, все это конечно потешно, но толи примеры мелковаты, толи я тупой, но не могу понять какие преимущества мне дают эти либы.
Вот например даггер, ну ок, делаю inject я в каждой активити, ну и что, чем это лучше чем простой синглтон. тестировать активити мне сто лет не нужно

Ответы>>675661

04 Мар, 14:21 #458 #675661

>>675638
> Тестировать активити мне сто лет не нужно
Мы вам перезвоним

На днях решил профессионально обмазаться rxjava и выяснил что НЕТ по нему нормально литературы.
Потому что сам по себе она нафиг никому не сдался (за пределами andriod).
Везде бал правит akka и даже для Netflix (которые и делают rxjava) он только база для и библиотеки Hystrix.

Ответы>>675695

04 Мар, 14:51 #459 #675695

>>675661
ну ок, расскажи кейс в котором мне нужно тестить активити

Ответы>>675721

04 Мар, 15:08 #460 #675719

Вопрос по rx.

Пытаюсь сделать репозиторий с хранением данных в оперативке. Вот у меня есть observable с retrofit'a. Мне это говно нужно обернуть так, чтобы:
1. Если даннные уже есть в оперативке, отдать Observable.just
Ну тут ничего сложного, в observable.defer делать проверку и готово.
2. Если данных нет, то начачать загрузку.
По сути отдать обсервабл от ретрофита, но есть сранный пункт 3.
3. Если загрузка уже в процессе, то не начинать ее заново.
Если отдавать всегда обсервабл ретрофита, то ретрофит будет делать запрос заново в onSubscribe. Я хочу чтобы подвязывался к текущему запросу.
4. Добавить во все это подтягивание и сохранение в БД для работы офлайн.
Ну здесь тоже не сложно. doOnError для вытаскивания из бд, doOnNext для сохранения в бд. Главное с потоками разрулить.

Можно сделать на колбэках, тут даже более чем понятно как, но мы же хипстеры на гребне волны технологического прогресса!

Ответы>>675738

04 Мар, 15:09 #461 #675721

>>675695
Нужно если ты активити используешь как презентер.

И ты видимо не в курсе, но инъектить можно не только в активити.
Паттерн такой есть DI, позволят тебе абстрагироваться от реализации более низких уровней.
Плюс на unit-тестах, можешь заменить реализации моками.

Ответы>>675740

04 Мар, 15:18 #462 #675738

>>675719
Те загрузки однажды данные, ты и инет больше не полезешь?

Ответы>>675743

04 Мар, 15:19 #463 #675740

>>675721
но я ведь могу подсунуть моки через конструктор, не?

Ответы>>675744

04 Мар, 15:22 #464 #675743

>>675738
Да. Суть в том, что эти данные нужны в двух местах.

Ответы>>675746

04 Мар, 15:22 #465 #675744

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

service = new A(new B(new C(), new D()), new E(new F(new G())))

и еще редактировать в нескольких местах, если конструктор изменится.

Ответы>>675748

04 Мар, 15:25 #466 #675746

>>675743
А если они устарели и изменились на бэкенде?

Ответы>>675755

04 Мар, 15:26 #467 #675748

>>675744
сомнительное преимущество,
а так у тебя везде появляется inject(this)

Ответы>>675770

04 Мар, 15:27 #468 #675755

>>675746
Они будут меняться крайне редко.

Ответы>>675816

04 Мар, 15:41 #469 #675770

>>675748
Зато все зависимости в одном месте.
Опят таки в реальном проекте будут не A, B, а какие-нибудь AndroidStateChangedAccessibilityService(...).

В общем ХЗ, может это лень со временем приходит,
когда в очередном проекте пишешь один и тот же бойлерплейт.
А dagger2 может тебе бац и нагенерить нужного кода.

Ответы>>675811

04 Мар, 16:09 #470 #675811

>>675770
вот поэтому я и хочу найти более менее крупный пример, так как на мелких не понятен профит

04 Мар, 16:11 #471 #675816

>>675755
почему бы не заюзать тогда стандартный http cache-control и не юзать новомодную хуйню изобретать велосипед?

Ответы>>675839

04 Мар, 16:23 #472 #675839

>>675816
Тогда нужно заново парсить ответ.

4 Кб, 250x250

Андрей Бреслав — Что такое Kotlin? Введение 04 Мар, 16:47 #473 #675857

Новое (от 26.02.2016) видео про Kotlin от главного архитектора.

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

Ответы>>675876>>675882

04 Мар, 16:48 #474 #675858

>>673705
бамп вопросу

Продолжение видео c JUG.ru 04 Мар, 17:16 #475 #675876

>>675857
https://www.youtube.com/watch?v=m5T0M7SnCC0
https://www.youtube.com/watch?v=LWFx4QWrTyo
https://www.youtube.com/watch?v=YOmdOTlhZa8

Если кто хочет побугуртить прошу сюда >>665762 (OP)

04 Мар, 17:23 #476 #675882

>>675857
быдлоклассники проспонсировали котин, хуясе.

04 Мар, 17:42 #477 #675897

>>673705
а в чем вопрос то?

Ответы>>675987

04 Мар, 18:31 #478 #675968

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

Ответы>>675989

04 Мар, 18:37 #479 #675972

Вбросьте в шапку книгу Learn Java for Android developers.
Вот я даже залил её в ргхост - http://rghost.net/8bdkmfjC5

Алсо, есть книги где разбирается андроид-девелопинг на примере Андроид Студио, а не Эклипса?

Ответы>>675979

04 Мар, 18:38 #480 #675977

Аноны, доставьте книгу "Kotlin for Android Developers". https://leanpub.com/kotlin-for-android-developers

Ответы>>675979

04 Мар, 18:39 #481 #675979

>>675972
>>675977
Идите нахуй.

Ответы>>675981>>675982

sage 04 Мар, 18:39 #482 #675981

>>675979
Пиздуй в /b/

Ответы>>675990

04 Мар, 18:40 #483 #675982

>>675979
Почему?

Ответы>>675990

04 Мар, 18:41 #484 #675987

>>675897
Решил я заменить запрос с ретрофитом на Rx.
Результат вот.
http://pastebin.com/e79vjAJS
Там есть комменты что меня смущает.
Также вопросы

1)как сделать обработку данных на неудачный запрос с последующим выводом на экран нормально и красиво?
2)Как мерджить флетмап я так и не понял, зипом чтоль? Да и нужно ли если обычный фор менее заебистый.
3)нужно ли делать вставку в бд в ио треде?

04 Мар, 18:42 #485 #675989

>>675968
Тестировать программы лучше на генимоушн или собственном андроид-телефоне.

04 Мар, 18:42 #486 #675990

>>675981
>>675982
Что значит язык программирования для чего-то? Сириусли? Вы дебилы? Стандартный джавакор, что вам сука непонятного?

Ответы>>675991

04 Мар, 18:43 #487 #675991

>>675990
Есть книга где разбирается Java с расчетом что ты собираешься разрабатывать на Android.

Ответы>>675994

04 Мар, 18:45 #488 #675994

>>675991
Ну убрали оттуда concurrency и книгу теперь выпускать?

Ответы>>676053

04 Мар, 19:05 #489 #676035

Можете пояснить за отличия Picasso и Glide ( и прочих альтернатив, если есть ) ?

Ответы>>676055

04 Мар, 19:13 #490 #676053

>>675994
т.е. под ведро concurrency не нужен? really?

Ответы>>676091

04 Мар, 19:13 #491 #676055

>>676035
пикассо иногда кидает outofmemory
glide тоже, но меньше

04 Мар, 19:24 #492 #676091

>>676053
Ты все равно не будешь юзать всякие экзекутеры и семафоры.

Ответы>>676127

sage 04 Мар, 19:30 #493 #676127

>>676091
Вот это прикол.

Ответы>>676142

04 Мар, 19:31 #494 #676132

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

Ответы>>676165

04 Мар, 19:32 #495 #676142

>>676127
Ну давай, расскажи кейсы когда оно тебе понадобилось.

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

Ответы>>676159>>676291

04 Мар, 19:35 #496 #676159

>>676142
ты бы не задавал такой вопрос, если бы писал что-нибудь сложнее рест клиента

Ответы>>676176

04 Мар, 19:36 #497 #676165

>>676132
>есть пара фрагментов как экраны между которыми я постоянно переключаюсь
>есть пара
Смотрим на принцип работы фрагментпейджерадаптера. Он как раз для этого и создан, и в основном его реализации создают фрагменты в конструкторе, а потом просто крутятся и выводятся.
Потому думаю не критично иметь все, если между ними действительно постоянный перебор, учитывая что создание такого фрагмента доовльно затратная штука.

04 Мар, 19:38 #498 #676176

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

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

04 Мар, 19:50 #499 #676211

>>665510 (OP)
ПЕРЕКАТ
https://2ch.hk/pr/res/676210.html (М)
https://2ch.hk/pr/res/676210.html (М)
https://2ch.hk/pr/res/676210.html (М)
https://2ch.hk/pr/res/676210.html (М)

sage 04 Мар, 20:38 #500 #676291

>>676142
Я не тот анон, просто охуел с пердежа в лужу.
За примером не нужно далеко ходить — асинктаск. Семафоры же помогают там, где не хватает синхронайзд, например.

Ответы>>676311

04 Мар, 20:53 #501 #676311

>>676291
>асинктаск
>2016

Ответы>>676337

sage 04 Мар, 21:07 #502 #676337

>>676311
И какие быдлофреймворки используют в 2016?

Ответы>>676340

04 Мар, 21:08 #503 #676340

>>676337
rx

Ответы>>676344

sage 04 Мар, 21:09 #504 #676344

>>676340
Ясно.

Ответы>>676355

04 Мар, 21:16 #505 #676355

>>676344
Да и еще куча всяких андроидболтсов и тд.
гуглить разучился?

07 Мар, 21:09 #506 #679730

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

15 Мар, 18:19 #507 #689003

Котлинофорсер, сколько тебе платят за один пост?

16 Мар, 18:59 #508 #689934

Аноны, начал учить Java. Какую IDE лучше всего использовать и почему?

Тред утонул или удален.
Это копия, сохраненная 27 марта 2016 года.

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion