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

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

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

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

131 Кб, 1797x1055

Разработка под Android тред №20 # OP 22 Май, 19:44 #750609 В конец треда | Веб

Перекатываемся на Firebase и начинаем использовать Constraint Layout.

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

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

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

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

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

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

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

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

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

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

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

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

Ответы>>751946>>754132>>755966>>756275>>758823>>762040

22 Май, 19:50 #2 #750617

Перекат вышел прямо как любая прога под ведро: со второго раза и с дерьмовой картинкой

Ответы>>750619

22 Май, 19:50 #3 #750619

>>750617
Годная картинка, не пизди.

Ответы>>750621

22 Май, 19:51 #4 #750621

>>750619
из 18 треда one love

Ответы>>750625

102 Кб, 458x500

22 Май, 19:55 #5 #750625

>>750621
Как знаешь.

Ответы>>750629>>750631

22 Май, 19:57 #6 #750629

>>750625
merci ^_^

22 Май, 19:59 #7 #750631

>>750625
>этот нос
я думал она няша

Ответы>>750637>>750642

22 Май, 20:03 #8 #750637

>>750631
Ракурсы, бро, ракурсы.

22 Май, 20:05 #9 #750642

>>750631
блять, ну испортил все, падла. Не замечал ведь :D

Ответы>>750644

22 Май, 20:06 #10 #750644

>>750642
Теперь признаешь что оппик лучше?

Ответы>>750664

22 Май, 20:18 #11 #750664

>>750644
Частично

22 Май, 21:49 #12 #750781

Сабж: почему в AS показывается в сумме allocated + free memory раза в два меньше чем в сраном диспетчере задач в ведре ?

Ответы>>750782

22 Май, 21:50 #13 #750782

>>750781
И чему верить

Ответы>>750934

22 Май, 23:42 #14 #750934

>>750782
Своему сердцу, очевидно же.

23 Май, 11:19 #15 #751263

В файербейсе пуши платные выходит, да еще и GCM. Удачи короче.

Ответы>>751876

23 Май, 11:33 #16 #751267

Сап аноны, говнокодер просит вашей помощи. Мне нужно в приложение добавить смену языка на выбор пользователя, код ниже меняет язык только одного активити, а мне нужно на все приложение. Подскажите как выйти из этой ситуации.
http://pastebin.com/h3tpfsTb
З.Ы. Гуглил решения, но ничего не понял

Ответы>>751286

23 Май, 11:51 #17 #751286

>>751267
После этого кода ощущение будто в говно наступил,
кем же надо быть что бы так делать...

23 Май, 12:04 #18 #751300

Потихоньку вкатываюсь в андроид и возник вопрос насчет sqlite и recycleview. Щас я загружаю данные в базу, оттуда их возвращаю в arraylist и сую их в адаптер, все отображается нормально. Но тут погуглил и наткнулся на CursorAdapter и его кастомные реализации и несовсем понял принцип. В случае курсор адаптера данные напрямую из базы идут собственно в адаптер и там отображаются так? И получается первый подход это говнокод или я делаю тоже самое только с лишним шагом в виде эррэйлиста? В общем поясните как правильно дергать данные из базы в recycleview

Ответы>>751302

23 Май, 12:05 #19 #751302

>>751300
Ты знаешь что такое курсор?
Если нет то сначала изучи это вопрос, потом приходи снова.

Ответы>>751333

23 Май, 12:46 #20 #751333

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

Ответы>>751353

23 Май, 13:30 #21 #751353

>>751333
"Не учатся ничему некоторые и учиться не хотят. Кина про фрилансеров с 300k насмотрелись..." (c)
> CursorAdapter = Cursor + Adapter
> Не понял как знание курсора влияет на вопрос.
Ну вот как с тобой разговаривать?

Курсор и курсор адаптер это механизм отображения данных из базы времен CPU 300 МгЦ и 128 MB RAM.
Его плюс что данные он хранит в памяти компактно одним куском (тк написал большей частью на нативном коде).
(Еще и подгружать их может постепенно, но не в случае RecycleView/ListView)

Так что сейчас использовать его есть смысл только если ты юзайешь SQLite и упираешься в производительность.

P.S.
Старайся либо писать компактные предложениями, либо делать перенос после 80-150 символов.
Иначе ужасно неудобно читать, особенно на FullHD мониторе.

Ответы>>751370>>751375>>751402

23 Май, 13:36 #22 #751354

Посоны, что делать после того как я закончил раздел "Getting Started" на developer.android.com? Идти по остальным разделам или лучше начать выполнять какой-нибудь мелкий проэктик? Посоветуйте задание (или откуда его взять) во втором случае?

23 Май, 14:02 #23 #751370

>>751353
Спасибо за ответ, просто при поиске sqlite+recycleview по тому же стаковерфлоу
выдаются ответы типа этого
http://stackoverflow.com/questions/32101607/populate-recyclerview-with-a-sqlite-database
где ответ примерно с такой же реализацией как у меня, а комент к нему наоборот советуeт
реализовывать курсор адаптер типа этого https://gist.github.com/Shywim/127f207e7248fe48400b
и вот и возник вопрос как собственно народ запихивает данные в recycleview

23 Май, 14:06 #24 #751375

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

23 Май, 14:36 #25 #751402

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

Ответы>>751455

23 Май, 15:13 #26 #751455

>>751402
Если ты делаешь просто moveToNext(), то курсор грузить данные из базы постепенно, увеличивая в размере свой буфер.
Чтобы ты мог сделать moveToPrev() или moveToFirst() быстро, без запроса к базе.
Кстати данные из базы грузит не построчно, а большими кусками и еще есть ограничение на размер его буфера (CursorWindow).
Но это уже нереливантные подробности, которые можно изучить если посмотреть его исходники.

НО для правильного отображения скролбара, ListView дергает -> Adater.getCount() -> Cursor.getCount().
А курсор может рассчитать getCount(), только если проитерируется по всем данным -> в итоге все данные загружаются разом в память
(в пределах максимального размер CursorWindow).

Именно поэтому CursorLoader вызывает явно getCount() у курсор (во время его асинхронно загрузки).
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/content/CursorLoader.java/#68

Ответы>>751775

23 Май, 19:00 #27 #751775

>>751455
>(в пределах максимального размер CursorWindow)
ну так не все ж данные

23 Май, 20:32 #28 #751876

>>751263
Это схуяль платные пуши?

23 Май, 21:23 #29 #751946

>>750609 (OP)
Есть какой нибудь толковый гайд по адаптивной вёрстке? на дев андроид есть только какая то мелкая херня.

Ответы>>752000

23 Май, 21:45 #30 #752000

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

Ответы>>752041>>752044

23 Май, 22:18 #31 #752041

>>752000
окей, не верстке, а созданя адаптивного ui, так лучше

Ответы>>752082

23 Май, 22:20 #32 #752044

>>752000
Кхм-кхм, а в React Native-то на flexbox-е всё верстается.

Ответы>>752048

23 Май, 22:22 #33 #752048

>>752044
че ты несешь, поехавший

Ответы>>752052

23 Май, 22:30 #34 #752052

>>752048
Специально для тебя:
React Native - фреймворк для разработки iOS и Android приложений, использующий нативные виджеты и анимацию, контроллируемые JS кодом с помощью библиотеки React.
Использует систему лэйаута flexbox, позаимствованную из веба.
https://facebook.github.io/react-native/
https://css-tricks.com/snippets/css/a-guide-to-flexbox/

Ответы>>752089>>752094

23 Май, 22:59 #35 #752082

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

23 Май, 23:02 #36 #752089

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

Ответы>>752126

23 Май, 23:04 #37 #752094

>>752052
Ебитесь-ка в жопу джаваскриптом где-нибудь еще.

23 Май, 23:21 #38 #752126

>>752089
Вообще-то в плане адаптивности бутсрап - это жалкие костыли по сравнению с флексбоксом.
Какая фича бутстрапа тебя интересует? Responsive grid? Так на флексбоксе он гораздо более responsive, чем бустраповские костыли в стиле "col-xs-6 col-sm-4 col-lg-3 col-xl-2".
Не хочешь чтобы айтемы двигались в новый ряд? Ставь им всем 'flex: 1' и фигачь в один горизонтальный контейнер - будут ужиматься, сколько бы их там не было (но это уже не responsive grid, с точки зрения терминологии)

Ответы>>752171>>752527

23 Май, 23:54 #39 #752171

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

Ответы>>752217>>752958

133 Кб, 1300x975

24 Май, 00:07 #40 #752195

ОХ СУКА КАК ЖЕ Я ЗАЕБАЛСЯ!!

Вот почему дизайнер такой пидор?

> 2016
> Андрейд
> 3Д карусель

Этот пидор не хочет делать отдельный дизайн для ведроида, этот пидор сделал дизайн для iOS.

И там эта блядская карусель. Собственно вопрос:

Как сделать вертикальную карусель чтоб как в iCarousel?

Ответы>>752221

24 Май, 00:18 #41 #752217

>>752171
После джавы/котлина (перед ксамарином) есть еще Qt.

> моча
А это что?

Ответы>>752226

24 Май, 00:19 #42 #752221

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

Ответы>>752232

24 Май, 00:21 #43 #752226

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

Моча была показательной границей ваябл технологий.

Ответы>>752237

10 Кб, 674x142

24 Май, 00:26 #44 #752232

>>752221
Да вообще охуеть. Я вот только работать устроился. Летом подработать. И вот дали проект. Офигеть. Я чота застремался менеджеру сказать, что нихуя не получается карусель делать. Да там куча всякого iPidor-ского говна в дизайне. Ну и такой диалог с менеджерем был
— Ок. А андроид дизайн где?
— Лан, с дизайнером побазарю
… неделя
— А андроид дизайн когда выйдет? а ассеты скинете? где?
— Дизайнер сказал, что этот норм на андроиде выглядить будет. Можешь блюр убрать

Ну чо за хуйня?

Ответы>>752245>>752246

24 Май, 00:28 #45 #752237

>>752226
На Qt написано, например, приложение 2ГИС. Посмотри, если не видел.
> есть возможность писать практически на всем
Я в курсе, спасибо. Только вот Qt в отличие от "всего" действительно используется и распространён.

Ответы>>752251

24 Май, 00:32 #46 #752245

>>752232
чот я подумал. надеюсь эти ребята здесь не сидят))

Ответы>>752247

24 Май, 00:33 #47 #752246

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

Если же говоришь с дизайнером.
- Братишь, что за говно ты мне подкинул? Это не по материал дизайну. Реализаций инструмента нету, я могу сам сделать но это займет овердохуя времени, а сроки то жмут. Переделывай, ну и желательно посматривай на материал гайды, так как они не просто так созданы.

Главное правило ГОВОРИТЬ ЧТО ТЫ МОЖЕШЬ ЭТО СДЕЛАТЬ но долго, ГОВОРИТЬ ЧТО ТЫ ЗНАЕШЬ КАК СДЕЛАТЬ БЫСТРЕЕ.
Удачи.

Ответы>>752256

24 Май, 00:34 #48 #752247

>>752245
Дизайнер и менеджер в разработке под ведро?

Ответы>>752252>>753429

24 Май, 00:36 #49 #752251

>>752237
>распространён
Да конечно блять, распространен. Удачи с поиском работы.

Ответы>>752255

24 Май, 00:37 #50 #752252

>>752247
наверн они. просто менеджер вот точно поймёт, что это я.

Ответы>>752257

24 Май, 00:38 #51 #752255

>>752251
Блядь, ты жопой читаешь?

Ответы>>752258

24 Май, 00:38 #52 #752256

>>752246
Спасибо. Прям мозги на место мне поставил. Так и напишу завтра.

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

Я вообще, можно сказать, что на удалёнке. В соседнем городе работаю. Связь по интернету.

Ответы>>752262

24 Май, 00:38 #53 #752257

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

Ответы>>752259

24 Май, 00:40 #54 #752258

>>752255
Что ты сука зеабывешь, иди в свой сраный 2гис и сиди там нахуй, куча долбоебов написавших на некроплатформедля ведроида уж точно апу. Успех блять.
Чем они мотивировались то?

Ответы>>752261>>752263

24 Май, 00:41 #55 #752259

>>752257
Я ему сам случайно сказал, что всё уже чики-брики и в дамках будет.

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

Я думал меня на изи фигню поставят, а они во как…

Ответы>>752262

24 Май, 00:42 #56 #752261

>>752258
не знаю почему, но засмеялся, что даже соседа разбудил

24 Май, 00:42 #57 #752262

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

Но со временем пройдет.

Ответы>>752269

24 Май, 00:42 #58 #752263

>>752258
ну сдк любых карт почти всегда написаны на ndk, видимо пидоры из 2гис решили просто хуячить сразу на qt

Ответы>>752267

24 Май, 00:44 #59 #752267

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

Ответы>>752275

24 Май, 00:45 #60 #752269

>>752262
Стоит говорить что-то вроде "я короч пытался поискать готовые вьюхи, нихуя не нашёл. Показать нечего, я бэкенд фигачил. Пусть нормально для ведра рисует!"?

Ответы>>752279

24 Май, 00:47 #61 #752275

>>752267
Ты не понимаешь, о чем говоришь?

> Дали поддержку ндк
Eclispe NDK сейчас deprecated, а альтернативу ему гугл уже два года выкатить не может
> не давай пердолится в жопу и писать все на плюсах
Ээ, а NDK по-твоему на чем написан?

Ответы>>752278>>752281>>752293

24 Май, 00:51 #62 #752278

>>752275
>Eclispe NDK сейчас deprecated, а альтернативу ему гугл уже два года выкатить не может
вот вчера только выкатили вроде. на io сказали, вроде

Ответы>>752290

24 Май, 00:51 #63 #752279

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

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

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

Ответы>>752282

24 Май, 00:54 #64 #752281

>>752275
На ндк писать можно, что ты тут пытаешься втюхивать я не пойму?
>Ээ, а NDK по-твоему на чем написан?
Очевидно что на пизде твоей мамаши на плюсах, хватит меня за долбоеба держать правда бесит, анон сказал про карты на плюсах, так сделайте вы карты на плюсах а все остальное на жабе, благо так можно делать. Дальше понятно?

Ответы>>752283>>752287

24 Май, 00:54 #65 #752282

>>752279
Отлично. Спасибо большое! Грамотно расписываешь.

Ответы>>752289

24 Май, 00:54 #66 #752283

>>752281
>Под ндк
фикс если честно хуй знает как правильно сказать

Ответы>>752284

24 Май, 00:55 #67 #752284

>>752283
по днк

24 Май, 00:55 #68 #752287

>>752281
> Дали поддержку ндк, не давай пердолится в жопу и писать все на плюсах
> Противопоставляет NDK и плюсы
> хватит меня за долбоеба держать

Ответы>>752292

24 Май, 00:57 #69 #752289

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

24 Май, 00:57 #70 #752290

>>752278
Что-то я такого не видел. Есть ссылка?

Они интегрировали CLion в Android Studio и новый декомпилятор, но про NDK я ничего не видел нового

Ответы>>752291

24 Май, 00:58 #71 #752291

>>752290
А, я сам не знаю. Краем уха слышал как ребята на перемене в столовке обсуждали

24 Май, 01:00 #72 #752292

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

Еще вопросы будут?

Ответы>>752298

24 Май, 01:02 #73 #752293

>>752275
Мне всё ещё еклипс больше нравится.

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

Ответы>>752295

24 Май, 01:03 #74 #752295

>>752293
>Мне всё ещё еклипс больше нравится.
Ну и пушка. Каких говнарей в тред занесло.

Ответы>>752296>>752297>>752532

24 Май, 01:05 #75 #752296

>>752295
Ладно, я начинаю понимать, что мне студия больше нравится.

Но Jetbrains — пидоры. IDE платными делают. Пиздец. Вот еклипс — бесплатный

Ответы>>752298>>752301

24 Май, 01:06 #76 #752297

>>752295
>Помню в старых версиях студии на хоткей, который текстовое поле показывает…

Так вот в еклипсе Ctrl+n ваще классно работает

24 Май, 01:07 #77 #752298

>>752296
>>752292

Блядь, с кем я сижу в одном треде...

Ответы>>752301

24 Май, 01:09 #78 #752301

>>752298
С адекватами которые рушат твой манямир?

>>752296
Потому что они делают иде у которой практически и конкурента нету, а эклипс говно устаревшее, его никто никогда не купит.

Ответы>>752302

24 Май, 01:12 #79 #752302

>>752301
Так его никто и не продаёт.

Ответы>>752303>>752304

24 Май, 01:13 #80 #752303

>>752302
Все так говорят, а ты купи еклипс

24 Май, 01:16 #81 #752304

>>752302
В это и смысл. Спрос и предложение.

24 Май, 10:27 #82 #752476

Аноны, как нормально выйти из приложения не из главного активити в андройде 5 и выше? System.exit(0) нормально работает на версиях ниже. А лоллипоп ужде не сохраняет параметры

Ответы>>752528

24 Май, 11:53 #83 #752527

>>752126
что ты забыл в моем треде блять! какой js блять!
давай выпиливайся отсюда!

Ответы>>752961

24 Май, 11:56 #84 #752528

>>752476
finish()

24 Май, 12:01 #85 #752532

>>752295
> говнарей
Значение знаешь?
Алсо, андроид студию не люблю из-за системы сборки. С одной стороны, это круто и удобно, с другой — невероятно медленно. Сидишь по 20 секунд ждёшь, пока приложение сбилдится после смены 1 строчки кода.

Ответы>>752566

24 Май, 12:54 #86 #752566

>>752532
аа, в еклипсе ant юзаешь? я тож люблю, еще maven норм. а ентот градле, ну его, хистерская хуйня

Ответы>>752576

24 Май, 13:08 #87 #752576

>>752566
Нет, без анта, встроенным билдером.

24 Май, 13:48 #88 #752624

Попробовал запустить хеллоу ворлд в студии на своем немного старом ноуте, он 5 минут потупил и вылетел с ошибкой о недостатке памяти. Есть какие нибудь варианты для днищ со слабым железом?

Ответы>>752639>>752647

24 Май, 14:07 #89 #752639

>>752624
IDEA Community?

Ответы>>752642

sage 24 Май, 14:09 #90 #752642

>>752639
Что то же самое?

Ответы>>752645

sage 24 Май, 14:10 #91 #752645

>>752642
Нет другое

Ответы>>752662

24 Май, 14:11 #92 #752647

>>752624
блокнот + консоль

sage 24 Май, 14:26 #93 #752662

>>752645
Android Studio — это IDEA CE с другим сплэшскрином.

Ответы>>752673

sage 24 Май, 14:35 #94 #752673

>>752662
А где инстант-ран, поддержка байдингов, редактор строковых ресурсов, редактор тем?

Ответы>>752733

24 Май, 16:15 #95 #752733

>>752673
В пизде Android Studio, вместе с ConstraintLayout-ом.

Ответы>>752803

sage 24 Май, 17:34 #96 #752803

>>752733
В этом и суть

24 Май, 18:31 #97 #752858

Антуаны, кто нибудь пользовался связкой retrofit + rxandroid? Я нихуя понять не могу как это всё работает. Гляньте, я для поиска юзеров на гитхабе правильно сделал интерфейс и класс?
http://pastebin.com/NUaSrwDa

Пример запроса —https://api.github.com/search/users?q=поисковыйзапрос

Пример ответа сервера:
{
"total_count": 7498,
"incomplete_results": false,
"items": [
{
"login": "liblfds",
"avatar_url": "https://avatars.githubusercontent.com/u/2772362?v=3",
"html_url": "https://github.com/liblfds",
и т.д...
},
{
"login": "zensh",
"avatar_url": "https://avatars.githubusercontent.com/u/863754?v=3",
"html_url": "https://github.com/zensh",
и т.д...
},
и т.д.
]
}

Ответы>>752878>>752900>>753429

24 Май, 18:43 #98 #752878

>>752858
Observable<Github>

Ответы>>753430

24 Май, 19:03 #99 #752900

>>752858
Нету сеттеров.
Попробуй запусти, че раньше времени спрашиваешь?

24 Май, 20:29 #100 #752958

>>752171
> самую мощную технологию веба на данный момент в адаптивности - т.е. бустрап
Можешь дальше не обсираться, ты и так уже по уши в говне.
Бутсраповский грид - это костыль для браузеров, не поддерживающий 'display: flex' и 'display: grid'.
В отличии от тебя, я умею верстать и могу сделать аналог бутстраповского грида на CSS без помощи интернета. Я понимаю как он работает и понимаю его ограниченность.
А для тебя вёрстка кажется магией, поэтому ты дрочишь на популярные фреймворки.
Ты ещё, блять, скажи, что jQuery - это самая мощная технология веба на данный момент в селекторах и ajax-запросах.

Ответы>>753061>>753066

24 Май, 20:36 #101 #752961

>>752527
У вас React Native в шапке есть, вот и зашёл.

24 Май, 21:50 #102 #753061

>>752958
Фронтенд макака ворвалась и решила пояснять за жизнь?

Ответы>>753117

24 Май, 21:52 #103 #753066

>>752958
>это костыль для браузеров, не поддерживающий 'display: flex' и 'display: grid'.
>костыль для браузеров
Мне кажется просто твоя технология говно раз не поддерживается 3 - 5 браузерами?

Ответы>>753114

24 Май, 22:16 #104 #753114

>>753066
Не умеешь пользоваться caniuse?
Давай помогу:
http://caniuse.com/#search=flexbox

Ответы>>753152

24 Май, 22:19 #105 #753117

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

Ответы>>753150

24 Май, 22:54 #106 #753150

>>753117
Без вида эксперта, но даже не спорь, бустрап сейчас юзают все фронтендщики.

Ответы>>753200

24 Май, 22:55 #107 #753152

>>753114
>Не умеешь пользоваться caniuse?
Нахуй оно мне?

24 Май, 23:48 #108 #753200

>>753150
На предыдущей работе делал UI для системы мониторинга, верстал все на flexbox, ибо требовалась поддержка только Chrome и Firefox.

Далее, если ты погуглишь, то найдешь много блогпостов на тему того, что бутстрап не нужен т.к. определяет слишком много глобальных стилей (в отличии от foundation который можно использовать через sass миксины или модульного basscss).

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

Ответы>>753213>>753344

24 Май, 23:56 #109 #753213

>>753200
съебите уже в жс тред

25 Май, 05:28 #110 #753344

>>753200
>Бустрап
>Ангулар
>Ньюфаги
ты толстишь откровенно

25 Май, 08:56 #111 #753429

>>752247
про дизайнера: а кто по-твоему все ебаные размеры в dp должен указывать ? Не программисту же этой ебалой заниматься ?)>>752858
Что именно ты не можешь понять ? Ты получаешь не Call<NonameClass> , а Observable<Ressponse<NonameClass>> ну или Observable<NonameClass> и работаешь дальше с этим

25 Май, 08:56 #112 #753430

>>752878
Удобнее все же использовать Observable<Response<GitHub>> для того чтобы можно было юзать .code() и не париться с получением кода ошибки

25 Май, 09:08 #113 #753437

Аноны, а какие сегодня (в 2016-м) альтернативы AsynkTask'у?

Ответы>>759486

34 Кб, 375x159

25 Май, 09:42 #114 #753454

Аноны, что за хуйня, помогите, будьте добры.
Клонирую проект с гитхаба, делаю пару изменений в коде, а потом возникает пикр при отправке апк на приложение. Студия самая последняя, со всеми обновами, с Canary. В чём проблема?
А ещё в чём проблема грэдла на 2 минуты?
P.S. Буквально 2 недели назад такого не было.

Сам грэдл - http://pastebin.com/hypVVjPK
Лог ошибки
$ adb shell pm install -r "/data/local/tmp/com.huy.pesda"
pkg: /data/local/tmp/com.huy.pesda
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

Installation failed since the APK was either not signed, or signed incorrectly.
If this is a Gradle-based project, then make sure the signing configuration is specified in the Gradle build script.
Error while Installing APK

P.P.S. У ТЕБЯ ВИСНЕТ и все подобные ответы не принимаются, у меня макбук про, студия не виснет тут.

Ответы>>753457>>753458>>753731>>754355>>755132

25 Май, 09:49 #115 #753456

Есть ли какой-то способ в кастомной view напрямую инициализировать гугл v2 карту ?

Ответы>>753460

25 Май, 09:49 #116 #753457

>>753454
> Installation failed since the APK was either not signed, or signed incorrectly.
> If this is a Gradle-based project, then make sure the signing configuration is specified in the Gradle build script.

Ответы>>753471

61 Кб, 459x497

25 Май, 09:50 #117 #753458

>>753454
> com.huy.pesda
Ну что за быдло здесь сидит.

Поставь стабильную версию студии

Ответы>>753471

25 Май, 09:52 #118 #753460

>>753456
Есть MapView, который можно пихать в любой контейнер. Только события лайфцикла передавать не забудь.

Ответы>>753462>>753463

25 Май, 09:54 #119 #753462

>>753460
Хмм, а пример не подкинешь ? У меня почему-то MapView нуль вместо карты выдавал при использовании getMap()

Ответы>>753466

25 Май, 09:55 #120 #753463

>>753460
И да, а что ему в onCreate то передавать ? т.е. он хочет Bundle

Ответы>>753467

25 Май, 09:58 #121 #753466

>>753462
Потому что getMap deprecated. getMapAsync

Ответы>>753470

25 Май, 09:59 #122 #753467

>>753463
Продублируй методы жизненного цикла в свою кастомную вьюху, а оттуда вызови их у MapView.

Ответы>>753472

25 Май, 10:02 #123 #753470

>>753466
Спасибо, щас на эмуляторе забью свой гугл плэй аккаунт, посмотрим что будет

25 Май, 10:03 #124 #753471

>>753457
Ну и нахуй ты это переслал?
>>753458
Тупо заменил свои названия. Стабильную версию студии ставить не комильфо, там нет ConstraintLayout, а я уже использую его в другом проекте.

Ответы>>753481>>753592

25 Май, 10:03 #125 #753472

>>753467
я onCreate каким макаром могу в чем-то унаследованном от View сделать ?

Ответы>>753480>>753483

25 Май, 10:10 #126 #753478

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

25 Май, 10:21 #127 #753480

>>753472
Он имел в виду конструкторы

Ответы>>753484

25 Май, 10:22 #128 #753481

>>753471
Дурачок какой

25 Май, 10:28 #129 #753483

>>753472
Берешь и в onCreate своей активности вызываешь onCreate у MapView. В чем твоя проблема?

Ответы>>753484

25 Май, 10:31 #130 #753484

>>753480
>>753483
В том что нужно внутри View это делать. Не внутри активности

Ответы>>753486

25 Май, 10:33 #131 #753486

>>753484
А ты у своей вьюхи не можешь создать метод onCreate?

Ответы>>753497

25 Май, 10:59 #132 #753497

>>753486
а что из этого onCreate мне передавать в onCreate mapView то блять ?!

Ответы>>753501

25 Май, 11:06 #133 #753501

>>753497
Сейв бандл активности или фрагмента

Ответы>>753503

25 Май, 11:13 #134 #753503

>>753501
Ты тупой или что ? Сука, говорю тебе, все должно быть во View. Хули ты такой непробиваемый то

Ответы>>753508

25 Май, 11:15 #135 #753506

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

Ответы>>753515

25 Май, 11:19 #136 #753508

>>753503
Если ты такой пиздатый, расскажи это гуглам, чтобы они убрали onCreate, onPause, onResume, onLowMemory и др. из MapView.
А сейчас, либо прокидываешь вызов этих методов, либо идешь нахуй.

Ответы>>753511

25 Май, 11:21 #137 #753511

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

Ответы>>753517

25 Май, 11:23 #138 #753515

А, вроде как нашел косяк по причине которого >>753506
onResume по завершению коллбэка нужно делать

25 Май, 11:26 #139 #753517

>>753511
У тебя блять есть кастомная вьюха, в чем твоя проблема добавить в нее onCreate(Bundle) и вызвать этот метод в onCreate активности?
Нет, буду вонять и нести хуйню, что все не то, и все не так.

Ответы>>753521

25 Май, 11:41 #140 #753521

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

Ответы>>753522

25 Май, 11:45 #141 #753522

>>753521
> В том что вьюха полностью абстрагирована
Потому что ты так захотел? Гуглы захотели по другому, и причины на то у них были.
> public class MapView extends FrameLayout
> Users of this class must forward all the life cycle methods from the Activity or Fragment containing this view to the corresponding ones in this class. In particular, you must forward on the following methods:

> onCreate(Bundle)
> onResume()
> onPause()
> onDestroy()
> onSaveInstanceState()
> onLowMemory()

Либо делай фрагментом, либо прокидывай жизненный цикл. Другого не дано.

Ответы>>753528

318 Кб, 245x130

25 Май, 11:54 #142 #753528

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

Да и вообще это же полная хуйня их onPause/onResume и тд - хочу встроиться в жизненный цикл фрагмента,
так надо делать касмтомные классы на всех гребанные реализации (Fragment, DialogFragment, MapFragment, BottomSheetDialogFragment и тд).
Нет чтобы сделать события Resume/Pause... что бы откуда угодно можно было приатачиться.

Ответы>>753531

25 Май, 11:59 #143 #753531

>>753528
MapFragment на то и Map, что там уже это реализовано. Ну и никто тебе не мешает обмазываться нестед фрагментами

Ответы>>753698

97 Кб, 1959x1959

25 Май, 14:08 #144 #753592

>>753471
>Тупо заменил свои названия. Стабильную версию студии ставить не комильфо, там нет ConstraintLayout, а я уже использую его в другом проекте.
Д - долбоеб.

Ответы>>753719

25 Май, 16:39 #145 #753698

>>753531
только вот MapView нифига не MapFragment, а коли уж я flow-блядина, то мне MapFragment использовать ne cocher. В итоге поебавшись сделал нормальную отработку жизненного цикла, пришлось маленько абстракцией пожертвовать но хуй бы с ней, работает и на том спасибо

Ответы>>753703

25 Май, 16:44 #146 #753703

>>753698
Карты юзают плейсервисы, а они в себе могут юзать хоть небо хоть аллаха, потому и не сделали как обычную вьюху.
А лайфсайкл нужно соблюдать на уровне ОС.
Так что так.

Ответы>>753730>>754629

25 Май, 16:56 #147 #753719

>>753592
Адекватные советы по теме будут? Или это всё, на что тебя хватило?

Ответы>>753726

25 Май, 17:02 #148 #753726

>>753719
Не устанавливай превью билды блядь и тем более не юзай в продакшене, самый адекватный совет. Лучше не будет.

Ответы>>753989

25 Май, 17:07 #149 #753730

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

Но что бы это работало актитити и фрагменты должны:
1) Либо реализовывать единый интерфейс, типа такого
interface LifecycleManager {
void addOnResume(Runnable callback);
void remvoeOnResume(Runnable callback);
...
}

2) Либо хранить его инстанц внутри (как на FragmentManager или LoaderManager) и возвращать ссылку на него
public LifecycleManager getLifecycleManager();

Ответы>>753733>>753736

25 Май, 17:08 #150 #753731

>>753454
>у меня макбук про
Выебнулся так выебнулся, это жи самая мощная машина в мире.

25 Май, 17:10 #151 #753733

>>753730
Охуеть, ньюфажина рассуждает о проектировании сдк.
Если серьезно, то если сделали значит по другому их костыли не работают.

Ответы>>753765

25 Май, 17:11 #152 #753736

>>753730
Вместо одного класса теперь два, и по отдельности они не работают.
Годно придумал.

Ответы>>753765

25 Май, 17:33 #153 #753765

>>753733
То что они костыли делают для меня не новость, все такие over 3 года в Android деве

>>753736
В этом и суть Single Responsibility Principle

Ответы>>753773>>753792

25 Май, 17:38 #154 #753773

>>753765
>over 3 года
ахах, показатель, да

Ответы>>753778

sage 25 Май, 17:45 #155 #753778

>>753773
Как ни крути на 2 года 11 месяцев больше твоего

25 Май, 18:01 #156 #753792

>>753765
>В этом и суть Single Responsibility Principle
Вообще-то нет, МапВью имеет одну задачу, работа с картой, то что карта в себе требует лайфсайкл уже другой вопрос.
Да и этот принцип довольно уебищным и гибкий когда абстракция на высоком уровне.

119 Кб, 1280x611

25 Май, 18:07 #157 #753800

У меня огромный 5 летний проект с миллионом настроек и конфигураций с кучей намешанного дерьма которое чуть потянешь не в ту сторону и все рухнет нахуй. На тестирование забит болт, так как ЗА СТАБИЛЬНОСТЬ И СКОРОСТЬ РАБОТЫ НЕ ПЛАТЯТ, А ПЛАТЯТ ЗА ФИЧИ, меня это бесит и мне кажется что я деградирую копаясь в этом кале. Посоветуйте где посмотреть как пишут код под андроид настоящие профи, чтобы все было чистенько-аккуратненько с линтом, прогуардом, без текущих активити, интентов, аллаха и мультидексов.

Ответы>>753814>>753862

25 Май, 18:23 #158 #753814

>>753800
>У меня огромный 5 летний проект с миллионом настроек и конфигураций
Такое бывает на ведре?

Ответы>>753824

25 Май, 18:32 #159 #753824

>>753814
Ну так B2B, не всем же чатики и просмотрщики сайтов и картинок писать.

Ответы>>753852

25 Май, 18:48 #160 #753852

>>753824
Если этой хуйне 5 лет то там пиздос должен быть, столько инструментов появилось даже на уровне сдк.
Что с рантайм пермишенами?

Ответы>>753856

25 Май, 18:51 #161 #753856

>>753852
>Если этой хуйне 5 лет то там пиздос должен быть, столько инструментов появилось даже на уровне сдк.
Ну так а я про что, пиздос лютейший. Я внедряю кончено моднявые штучки иногда в новых вичах, но это как мертвому припарка.
>Что с рантайм пермишенами?
Забил на них, поставил targetSdk 22

Ответы>>753857

25 Май, 18:52 #162 #753857

>>753856
Сочувствую. Надеюсь хоть зп и офис норм.

25 Май, 18:56 #163 #753862

>>753800
Работал на таком проекте пару лет, ну и сам во многом создатель этого пиздеца.
В итоге уволился (и тебе советую) и оставил разгребать это каким-то джунам :)

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

Ответы>>753877

25 Май, 19:07 #164 #753877

>>753862
говоришь такой, плюс 50% к зп, или я ухожу
если говорят уходи, говоришь такой, когда поймете что все плохо, позвоните мне, но тогда будет + 100%
профит

Ответы>>753885

25 Май, 19:19 #165 #753885

>>753877
Берут тебя на +50% на два месяца и дают джуна подручного.

25 Май, 20:49 #166 #753989

>>753726
Я не в продакшне, а для себя.

3 Кб, 254x381

25 Май, 23:01 #167 #754096

Джентельмены, как такую штуку реализовать?

Есть тулбар, есть лист и под ним ещё лист.

Я не знаю какие элевейшены задавать.

По гайдлайнам toolbar elevation — 4dp.
Я хочу чтобы, допустим, у белого листа было 16dp сколько поставить?. Получается, что мне надо тулбару выставить 16dp + 4dp, белому 16dp, серенькому 0dp?

Тогда ещё вопрос, тулбар в отдельный xml файл вынес и потом его инклудаю в активитях. В xml указал элевейшен. Как мне его переопределить, когда я его инклудаю?

Ответы>>754124>>754141

25 Май, 23:51 #168 #754124

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

Никак.

Ответы>>754126>>754133

25 Май, 23:51 #169 #754126

>>754124
елевейшены а не падинги

25 Май, 23:55 #170 #754132

>>750609 (OP)
Анон, есть проблема. Не добавляет данные в listview. Я просто уже не знаю где рыть. Проблема в методе listenNewMessages(), метод displayMessage(chatMessage). В остальных местах все работает как надо. Хелп.
http://pastebin.com/tMphiKxP

Ответы>>754134>>754292

25 Май, 23:56 #171 #754133

>>754124
Мне нравится как на пике. Плюс, пик с гугловских шайдлайнов

25 Май, 23:59 #172 #754134

>>754132
может у тебя в 137 строке надо вывести ex?

26 Май, 00:03 #173 #754141

>>754096
если надо 4dp - ставь 4dp, если 16 - ставь 16, в чем проблемы? Ничего высчитывать, складывать не надо

Ответы>>754143>>754144

26 Май, 00:03 #174 #754143

>>754141
но да elevation работает только с лолипопа

Ответы>>754145

26 Май, 00:03 #175 #754144

>>754141
Если я беленькой поставлю 16, а тулбару 4, то тулбар тень на беленькую не отбрасывает

Ответы>>754149

26 Май, 00:04 #176 #754145

>>754143
< Loli не нужны

Ответы>>754150

26 Май, 00:07 #177 #754149

>>754144
ну офк, потому что он выше тулбара получается, на пике вроде и у того, и у того 4dp

26 Май, 00:07 #178 #754150

>>754145
Это всё я же.

Почему все не обновятся до нормальной версии?

Ответы>>754153

26 Май, 00:09 #179 #754153

>>754150
спроси это у производителей, даже гугл поддерживает свои мобилки ~2-3 года и потом кладет хуй, аппл в этом плане молодцы

Ответы>>754174

26 Май, 00:40 #180 #754174

>>754153
Пидоры. Мне теперь свой второй нексус 7 менять надо будет с приходом 7 андроида =(((((

Ответы>>754794

26 Май, 07:12 #181 #754292

>>754132
:237 ты создаешь адаптер, но не присваиваешь его ListView

12 Кб, 476x364

26 Май, 08:17 #182 #754307

кароч если в студии создать активити с drawer из дефолтных шаблонов, то в сгенерированном коде можно увидеть пикрелейтед
absolutely disgusting

Ответы>>754315>>754516>>754797

26 Май, 08:50 #183 #754313

ОП, сука, еще 10 тредов назад просил добавить в шапку годную книгу для начинающих. "Head First. Программирование для Android"

Ответы>>754424

26 Май, 08:55 #184 #754315

>>754307
Альтернатива switch или Map<Int, ?> ?

Ответы>>754345>>754410>>754516

26 Май, 09:56 #185 #754345

>>754315
switch

26 Май, 10:28 #186 #754355

>>753454
Бамп вопросу.
Теперь я уверен, что дело не в Canary билде. Пробовал удалять приложение с телефона, чистить, ребилдить проект. НЕ ПОМОГАЕТ. Молю о помощи, ананасики.
И да, ОП-хуй, добавь в шапку ссылку на единственную конфу по андроиду в телеграме - telegram.me/AndroidChan

Ответы>>754356>>754357>>754363>>754800

sage 26 Май, 10:34 #187 #754356

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

Ответы>>754365>>754717

sage 26 Май, 10:35 #188 #754357

>>754355
Пускай тебе в твоей сраной конфе и поясняют, хули ты сюда приперся

Ответы>>754365>>754717

26 Май, 10:49 #189 #754363

>>754355
>И да, ОП-хуй, добавь в шапку ссылку на единственную конфу по андроиду в телеграме - telegram.me/AndroidChan
Она не единственная.

Ответы>>754717

26 Май, 11:00 #190 #754365

>>754356
>>754357
Двачую этих и конфа у вас типичное унылое говно про то, кто как посрал и как добавить кнопку в лейаут.

4 Кб, 150x150

Русские мобильные конференции 26 Май, 12:07 #191 #754399

Чет гляну программу очередной русской конфы по мобилками http://mobiusconf.com/#schedule

Боже как это банально, избито (было уже на Google IO):
"как правильно делать очередную-хуйню-View" и "как обойти эти костыли в Android/iOS".

Единственное интересное это про Scala/Kotlin, да и там будет "введение в язык" (чего на ютубе и так полно).

26 Май, 12:16 #192 #754410

>>754315
> Map<Int, ?>
Никогда так не делай, если тебе не важен порядок хранения.

Ответы>>754417

26 Май, 12:24 #193 #754417

>>754410
Дай угадаю "стажер" ты на это наткнулся в своем коде надо было сначала книжки читать?

А вообще как думаешь для switch и if из примера важен порядок?

Ответы>>754439

26 Май, 12:41 #194 #754424

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

26 Май, 13:17 #195 #754439

>>754417
> Дай угадаю "стажер" ты на это наткнулся в своем коде надо было сначала книжки читать?
Что?
> А вообще как думаешь для switch и if из примера важен порядок?
При чём здесь тот пример? Я сказал, что не стоит использовать Map с Integer в качестве ключа вообще.

Ответы>>754443

26 Май, 13:21 #196 #754443

>>754439
Стажер мы это и так знаем, тк книжки читаем.

Ответы>>754446

26 Май, 13:23 #197 #754446

>>754443
Судя по тому посту — нет, не все.
Кстати, я не стажёр.

Ответы>>754451

26 Май, 13:25 #198 #754451

>>754446
> Кстати, я не стажёр
Ну простите "сремящийся-в-стажеры школьник".

Ответы>>754453

26 Май, 13:27 #199 #754453

>>754451
Опять мимо. У тебя осталась одна попытка.

Ответы>>754470

sage 26 Май, 13:43 #200 #754470

>>754453
ОК, теперь я тебя буду звать просто:

НУФАНЯ
У
Ф
А
Н
Я

Ответы>>754490

43 Кб, 604x452

26 Май, 14:12 #201 #754490

>>754470
Снова промахнулся. Но не расстраивайся, держи утешительный приз.

26 Май, 14:36 #202 #754516

>>754307
В этом нет ничего плохого.
>>754315
>Map<Int, ?>
В этом тоже.

Ответы>>754589

26 Май, 16:00 #203 #754589

>>754516
Это нелогично, не ? Хотя в исключительных ситациях м.б. Но они пиздец какие исключительные

Ответы>>754593

26 Май, 16:06 #204 #754593

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

Ответы>>754698

26 Май, 16:51 #205 #754629

>>753703
По итогу просто сделал при том или ином триггере лайфцикла запись/получение/чистку данных о карте и соответственно теперь просто в onMapReady ставлю сохраненную CameraPosition

26 Май, 17:43 #206 #754698

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

Ответы>>754783

26 Май, 17:55 #207 #754717

>>754356
>>754357
Сём, хватит.
>>754363
В телеге - единственная, другой я не нашёл.

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

Ответы>>754720

26 Май, 17:57 #208 #754720

>>754717
Ты указал signingConfig в градле?

Ответы>>754722

26 Май, 17:59 #209 #754722

>>754720
http://pastebin.com/hypVVjPK

Ответы>>754725

26 Май, 18:00 #210 #754725

>>754722
key.jks по какому пути лежит?

Ответы>>754761

26 Май, 18:44 #211 #754761

>>754725
app/

26 Май, 19:23 #212 #754783

>>754698
Блять, сделай помимо апликухи еще встраиваемый модуль. Проджект стороний. Хз как тебе еще сказать.

Ответы>>754788

26 Май, 19:30 #213 #754788

>>754783
при чем тут if ?

Ответы>>754822

26 Май, 19:43 #214 #754794

>>754174

CyanogenMod же

26 Май, 19:44 #215 #754797

>>754307
НожДляМасла поможет

26 Май, 19:46 #216 #754800

>>754355
> добавь в шапку ссылку на конфу в телеграме
Это говно здесь не нужно.

26 Май, 20:23 #217 #754822

>>754788
При том что свитч с ресурсами не работает в модулях.

Ответы>>754851

26 Май, 20:56 #218 #754851

>>754822
а if с ресурсами работает, да?

Ответы>>754945

26 Май, 22:00 #219 #754945

>>754851
Ты для начала прочти как свитч работает и как иф.
Да иф с ресурсами работает.

Ответы>>754987

26 Май, 22:51 #220 #754987

>>754945
проиграл с дауна в голос

Ответы>>755004

26 Май, 23:22 #221 #755004

>>754987
С себя что-ли?
С какими долбоебами в треде сижу, не понимают что пиздят, какие-то блять мапы суют.
Сука ну и даунята.

Ответы>>755012>>755015

26 Май, 23:34 #222 #755012

>>755004
найс манёвры

Ответы>>755026

26 Май, 23:38 #223 #755015

>>755004
Ты можешь нормальный пример привести?
Тоже не понимают чем switch хуже.

другой анон

Ответы>>755026

26 Май, 23:52 #224 #755026

>>755012
Маневры у тебя в жопе тупоголовый.
>>755015
Блять, он не хуже, он не работает если сделать свитч с R.id.что-то там и поместить код не в главный проект, а в дополнительные модули - читай либу.

Ответы>>755030>>755033

27 Май, 00:04 #225 #755029

Тем временем гугл выиграл суд у оракла.

27 Май, 00:04 #226 #755030

>>755026
поехавший, свич у него не работает, а иф работает, пиздец просто

Ответы>>755032

27 Май, 00:08 #227 #755032

>>755030
Как оно быть твердолобым уебаном?
http://stackoverflow.com/questions/8476912/menu-item-ids-in-an-android-library-project

Ответы>>755034>>755234

27 Май, 00:09 #228 #755033

>>755026
Ну емое, ты мог сразу объяснить что не работает тк:

"В доп. модулях поля в сгенеренном классе R.id не final, а switch работает только с константами".

P.S. А вот switch (when) в Kotlin работает и с такими полями.

Ответы>>755035

27 Май, 00:10 #229 #755034

>>755032
норм

27 Май, 00:11 #230 #755035

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

27 Май, 09:06 #231 #755132

>>753454
Бамп вопросу.
http://pastebin.com/9pPafJJ4
Новый грэдл, убрал оттуда скам всякий, нихуя не взлетает. Пробовал подписывать вручную, удалять debug.keystore, даже .jks пересоздал - не помогло. Какие ещё варианты, ананасы?

Ответы>>755138>>755139

27 Май, 09:22 #232 #755138

>>755132
Убери вообще signing, пусть твоим дефолтным подписывается.

Ответы>>755149

27 Май, 09:23 #233 #755139

>>755132
версия градла

Ответы>>755149

53 Кб, 708x353

27 Май, 09:30 #234 #755149

>>755138
Убрал, смотри пасту.
>>755139
пикр

Ответы>>755161

27 Май, 09:43 #235 #755161

>>755149
это плагин, даун.
тебя про версию gradle спросили

Ответы>>755164

20 Кб, 309x139

27 Май, 09:45 #236 #755164

>>755161
Простите аутиста.

Ответы>>755198>>755220

27 Май, 11:35 #237 #755198

>>755164
Откатывай плагин до стабильного: 2.1.0

Ответы>>755231

27 Май, 12:07 #238 #755220

>>755164
И саму студию тоже

Ответы>>755231

27 Май, 12:19 #239 #755231

>>755220
>>755198
Не прокатило. Я уже откатывался до старой студии.

Ответы>>755236>>755243

27 Май, 12:32 #240 #755234

>>755032
как там в 2011?

27 Май, 12:34 #241 #755236

>>755231
переставь винду

Ответы>>755259

27 Май, 12:40 #242 #755243

>>755231
А плагина в buid.gradle?

Ответы>>755259

27 Май, 12:57 #243 #755258

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

Ответы>>755262

27 Май, 12:57 #244 #755259

>>755236
У меня мак
>>755243
Вместе со старой студией был старый грэдл. Не помогло.

Ответы>>755260>>755278

27 Май, 13:03 #245 #755260

>>755259
дык на мак же ставится винда

Ответы>>755264>>755301

27 Май, 13:06 #246 #755262

>>755258
В lint есть проверка на используемость ресурсов.

27 Май, 13:16 #247 #755264

>>755260
Вот этого двачую. Уверен, что это решение поможет

27 Май, 13:58 #248 #755278

>>755259
Скриншот сюда давай, что было там видно:
1) что старя студия
2) что в build.gradle/dependencies стоит 2.1.0
3) ошибка

Ответы>>755301

27 Май, 15:27 #249 #755301

>>755260
Но нахуя она там нужна?
>>755278
Опять это говно ставить?

Ответы>>755304

27 Май, 15:31 #250 #755304

>>755301
а другие проекты собираются?

Ответы>>755309

27 Май, 15:41 #251 #755309

>>755304
Да, все.

Ответы>>755316

27 Май, 16:05 #252 #755316

>>755309
ну почисти проект, еба

Ответы>>755333

27 Май, 16:43 #253 #755333

>>755316
Чистил и ребилдил. Это уже было.

Ответы>>755375>>755627

27 Май, 17:40 #254 #755375

>>755333
Винду перестанови

Ответы>>755453

27 Май, 20:00 #255 #755453

>>755375
Просто иди нахуй.

28 Май, 00:13 #256 #755627

>>755333
фоткай своё очко, я смогу помочь

28 Май, 12:24 #257 #755837

Обязательно ли название приложения в маркете должно один в один повторять название в манифесте?

28 Май, 13:29 #258 #755874

Где и как хранить Map<String, Set<Long>>? Ключей штук 10, значений в наборе ~10-200. Нужно просто не терять между запусками приложения. Для sql мелковато, для sharedprefs жирновато.

Ответы>>755889

28 Май, 13:49 #259 #755889

>>755874
Сериализуй и сохрани в виде бинарника.

55 Кб, 730x450

28 Май, 15:25 #260 #755966

>>750609 (OP)
Какими технологиями для отрисовки графики обычно пользуются успешные Android разработчики?
Не одними же Layoutами всё верстают, например, пикрелейтед.

Ответы>>755976>>755986

28 Май, 15:31 #261 #755976

>>755966
NDK + OpenGL.

Ответы>>755979>>755995

28 Май, 15:33 #262 #755979

>>755976
NDK для меня не вариант, пишу на Java. Иные варианты?

Ответы>>755999

1038 Кб, Webm

28 Май, 15:38 #263 #755986

>>755966

Ответы>>755988

28 Май, 15:39 #264 #755988

>>755986
Что не так?

28 Май, 15:46 #265 #755995

>>755976
разве то что на пике не луще через какой-то движок написать?

Ответы>>756013

28 Май, 15:52 #266 #755999

>>755979
В порядке убывания:
LibGdx / Slick2D / LWJGL
Последний - API к OpenGL

Ответы>>756001>>756004

28 Май, 15:53 #267 #756001

>>755999
>LibGdx / Slick2D / LWJGL
Это, как я понимаю, фреймворки и сторонние движки, верно? Этого бы мне не хотелось.
А вот OpenGL отличный вариант, но как в него вкатиться?

Ответы>>756168

28 Май, 15:55 #268 #756004

>>755999
>Последний - API к OpenGL
Вулкан?

28 Май, 16:00 #269 #756013

>>755995
Конструкторы игр? В /pr/?
Уёбывай в /gd/ в свой Unity-тред.

Ответы>>756015

28 Май, 16:01 #270 #756015

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

26 Кб, 604x316

Крепитесь 28 Май, 16:06 #271 #756022

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

28 Май, 17:41 #272 #756155

Сейчас заметил только, сдк занимает 30 гиг. Это норм?

Ответы>>756169>>756254

28 Май, 17:50 #273 #756168

>>756001
http://www.startandroid.ru/ru/uroki/vse-uroki-spiskom/397-urok-168-opengl-vvedenie.html

28 Май, 17:51 #274 #756169

>>756155
Много хуйни ненужной установлено.
У меня 9.8 Гб.

Ответы>>756243

28 Май, 18:49 #275 #756225

сап анон. крч пишу некую хуйню, и столкнулся просто с пиздец проблемой. есть listview или recyclerview, похую, в нем карточки, в карточке ебаных штук 40 TextView. вся это ебала листается пальцем вниз. и на отрисовке каждой карточки сука ебучая тормозит. заполнение карточки значениями я выпихнул в ASyncTask, стало тормозить меньше, но один хуй тормозит. кароч чо делать чтоб оно плавно листалось.

Ответы>>756249

28 Май, 19:07 #276 #756243

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

28 Май, 19:09 #277 #756249

>>756225
Сразу пример кода адаптера кидай.
Можно еще пример иксемельки если итем большой.

Ответы>>756259

28 Май, 19:19 #278 #756254

>>756155
У тебя там образов эмуляторов дохуя просто.

Ответы>>756258>>756265

28 Май, 19:24 #279 #756258

>>756254
я с нуля сдк поставил, как почистить тогда?

28 Май, 19:24 #280 #756259

>>756249
это адаптер listview
<script src="/http://ideone.com/e.js/wbgv45" type="text/javascript" ></script>

это асинктаск
<script src="/http://ideone.com/e.js/s37c3D" type="text/javascript" ></script>

это xml карточки
<script src="/http://ideone.com/e.js/y1UMzu" type="text/javascript" ></script>

Ответы>>756269>>756274>>756276>>756278>>756284

28 Май, 19:28 #281 #756265

>>756254
Внезапно папка system-mages 30 гиг. 20 гиг на версию 23, и 10 на пререлиз Н.
Спасибо, удалил нахуй это говно.

28 Май, 19:33 #282 #756269

>>756259
Используй RecyclerView.

Ответы>>756271>>756272

28 Май, 19:34 #283 #756271

>>756269

использовал. никакой разницы

Ответы>>756273

28 Май, 19:35 #284 #756272

>>756269
там затычка проявляется в момент отрисовки нового cardview

28 Май, 19:35 #285 #756273

>>756271
Значит дело в твоём говнокоде

32 Кб, 604x372

28 Май, 19:36 #286 #756274

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

28 Май, 19:36 #287 #756275

>>750609 (OP)
X

28 Май, 19:37 #288 #756276

>>756259
Нахуя тебе инфлейтер в адаптере? Конечно, у тебя всё тормозить будет. Убирай его.

Ответы>>756279>>756281>>756283

28 Май, 19:37 #289 #756278

>>756259
мне кажется, проблема в этой поеботе - ru.workcal.ExpGridView

28 Май, 19:37 #290 #756279

>>756276
а куда его запхать?

28 Май, 19:38 #291 #756281

>>756276
Ты что псих? Несешь херню.

Ответы>>756282>>756286

28 Май, 19:39 #292 #756282

>>756281
А теперь увидел, нахер после консруктора еще инфлейторы создавать хуй знает.

28 Май, 19:40 #293 #756283

>>756276
Хуйню сказал и рад, пиздец.

Ответы>>756285>>756286

28 Май, 19:40 #294 #756284

>>756259
Блядь, ты еще и в асинктаске всё это делаешь. Ты ебанутый?

28 Май, 19:40 #295 #756285

>>756283
У него инфлейтер и в конструкторе и в гетвью создается.

Ответы>>756289

28 Май, 19:41 #296 #756286

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

Ответы>>756288>>756290

28 Май, 19:42 #297 #756288

>>756286
это не я писал :)

28 Май, 19:43 #298 #756289

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

Ответы>>756291

28 Май, 19:43 #299 #756290

>>756286
Инфлейтер в конструкторе сделать норма.

28 Май, 19:44 #300 #756291

>>756289
Да похуй, можно получить и в конструкторе и реюзать его везде.
А вот как это работает я хз, возможно там не просто ссылка.
LayoutInflater inflater = (LayoutInflater)ctx .getSystemService(Context.LAYOUT_INFLATER_SERVICE)

Ответы>>756292>>756359

28 Май, 19:45 #301 #756292

>>756291
> возможно там не просто ссылка.
А код глянуть, нет?

Ответы>>756293

28 Май, 19:47 #302 #756293

>>756292
Мне впадлу, я сериал смотрю.

28 Май, 19:47 #303 #756295

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

28 Май, 20:47 #304 #756359

>>756291
> LayoutInflater inflater = (LayoutInflater)ctx .getSystemService(Context.LAYOUT_INFLATER_SERVICE)
Палю вин
LayoutInflater inflater = LayoutInflater.from(ctx)

> А вот как это работает я хз
Один из паттернов же не помню какой. В контексте висит карта<string, object> со всеми сервисами, и ты по имени получаешь нужный.

Ответы>>756366>>756555

28 Май, 20:56 #305 #756366

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

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

looking for a job offer 28 Май, 21:41 #306 #756386

анончики подкиньте работы за еду. Моей зарплаты не хватает нихуя. Могу по вечерам и по выходным. В принципе плаваю как рыба в технология типа рхджавы, даггера батеркнайфа и ретрофита etc. Делаю все в MVP. Могу даже поучить по скайпу нубасов. Оставляйте контакты что ли...

Ответы>>756391>>756392>>758507

28 Май, 21:45 #307 #756391

>>756386
upwork.com для даунов придумали, няш?

Ответы>>756411

28 Май, 21:46 #308 #756392

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

Ответы>>756411

looking for a job offer 28 Май, 21:59 #309 #756411

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

Ответы>>756415>>756417

97 Кб, 1959x1959

28 Май, 22:01 #310 #756415

>>756411
>а че там сложного то лол?
>Ровная архитектура с абстракциями.
>Депенденси инжекшн, особенно в виде даггера где куча всяких фич.
>АрИкс - функциональщина внедряемая в ооп.
>че там сложного

28 Май, 22:03 #311 #756417

>>756411
асинктаск сложно? Соболезную.
Тест на сколько баллов? И гп сюда вкинь. Ты сам должен подавать заявки на предложения заказчиков.

Ответы>>756419>>756493

28 Май, 22:05 #312 #756419

>>756417
Не корми зеленного. Я получаю свои 1200 и на еду хватает, нихуя из его перечня как следует не юзаю.

Ответы>>756421

28 Май, 22:07 #313 #756421

>>756419
Тебе сколько? Как работу нашёл? На собесах что спрашивали?
17-лвл студент(скоро бывшим буду), пашущий на дядю по знакомству за 25к.

Ответы>>756443

28 Май, 22:37 #314 #756443

>>756421
Лол, первый курс не школота?
23 уже, работать начал в 22 на 4 курсе, прогу учить целенаправленно но спустив рукава начал на 3 курсе, факультет итшный.
Что спрашивали не скажу так как спрашивают начиная от джавы заканчивая сервисами, но ничего сверхъестественного.

Ответы>>758502

28 Май, 23:56 #315 #756493

>>756417
>асинктаск сложно? Соболезную.
>Тест на сколько баллов? И гп сюда вкинь. Ты сам должен подавать заявки на предложения заказчиков.
Ну я кинул уже 10 и пока что пусто. Ну мб не как рыба но я знаю эти технологии и успешно их применяю. Гп кидать не буду ибо дианон. Теста на 3.15 но он не решает нихуя

29 Май, 03:42 #316 #756555

>>756359
> Один из паттернов же не помню какой. В контексте висит карта<string, object> со всеми сервисами, и ты по имени получаешь нужный.
Не совсем, там какая-то хуерга для ленивой инициализации, но если упростить — то можно считать, что там просто ассоциативный массив.
А LayoutInflater так вообще как поле класса хранится.

29 Май, 11:09 #317 #756630

HashMap<String, Long> map = new HashMap<>();
...
map.put(key, Long.valueOf(0))

Почему линт подсвечивает с unnecessary boxing? Нельзя же просто нуль передать?

Ответы>>756633

29 Май, 11:20 #318 #756633

>>756630
Ты в курсе что начиная с Java 1.5 есть АВТОБОКСИНГ?

Ответы>>756635

29 Май, 11:29 #319 #756635

>>756633
Да, в курсе. Но он не находит put(String, int), если просто ноль дать. Мне как-то особым образом инициализировать нужно?

29 Май, 11:40 #320 #756641

О, все, нашел - map.put(key, (long) 0).

Ответы>>756645

29 Май, 11:46 #321 #756645

>>756641
Еще можно: map.put(key, 0L)

Ответы>>756651

29 Май, 11:49 #322 #756651

>>756645
О, спасибо.

29 Май, 17:33 #323 #756847

Cherry Perry, если мы выпилим движущихся тянок, ты к нам вернёшься? Просто мне самому начал надоедать такой "динамический" концепт, согласно которому мы пилим всякую хуйню, которая придёт в голову. И да, у нас появился опытный и классный дизайнер.

Ответы>>756896>>757097

29 Май, 18:27 #324 #756896

>>756847
У вас деньги есть?
Могу присоединиться я.
другой анон

Ответы>>756935

29 Май, 19:02 #325 #756935

>>756896
Денег нет. Но в далёких планах запилить краудфандинговую кампанию.

Ответы>>756995

29 Май, 19:54 #326 #756995

>>756935
Расскажешь что вы пилите?
dlnam{c*usicANUS'+ayaPUNCTUM\f+ru

Ответы>>757088

29 Май, 21:44 #327 #757088

>>756995
Проверь почту.
}D wt.......ANUSgmq;AailPUNCTUMcb\$om

29 Май, 21:58 #328 #757097

>>756847
Еще один довод почему ненужно идти в чат в телеграмме.

30 Май, 07:39 #329 #757319

Мне нужно по данным с сервера генерировать относительно стабильные long айдишники (для адаптера). Элементы обязательно имеют одно уникальное поле, но оно строка (20-25 символов юникод) и не обязательно представляет собой число.

Я думал посимвольно сдвигами сделать, но что-то таксибе вариант. Порезанный SHA/MD5? CRC32? Присваивать самому и хранить мне лень. Как лучше?

Ответы>>757321>>757322>>757335

30 Май, 08:00 #330 #757321

>>757319
hashcode?

Ответы>>757328

30 Май, 08:11 #331 #757322

>>757319
Можно лонги рандомайзером генерировать.

30 Май, 08:24 #332 #757328

>>757321
Вроде подходит, спасибо.

30 Май, 08:38 #333 #757335

>>757319
Если айдишники уникальны во время выполнения — завести переменную и инкрементировать её. Если всегда уникальны — порезанный md5/sha или вообще самому считать хэш строки. Вариант с отсутствием уникальности уже предложили.

30 Май, 10:11 #334 #757374

Есть пакет common, в нем лежат пара абстрактных классов и интерфейсов. Нужно создать util пакет со всякими статиками, адекватно ли будет положить его в common?

30 Май, 10:19 #335 #757377

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

Ответы>>757379

30 Май, 10:31 #336 #757379

>>757377
> все пошло по пизде
Информативненько.

Ответы>>757381

30 Май, 10:34 #337 #757381

>>757379
java.lang.IncompatibleClassChangeError: The method 'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' was expected to be of type virtual but instead was found to be of type direct

На стек не посылай, я думал здесь кто-то сталкивался с таким. Не хочу под firebase все в мыле переделывать.

Ответы>>757387

30 Май, 10:44 #338 #757387

>>757381
9.0.1 поставь, исправили

Ответы>>757389

30 Май, 10:47 #339 #757389

>>757387
Кхм, попробуй, спасибо.

30 Май, 19:19 #340 #757753

уважаемые хипстеры, поясните пердуну что там с gcm/fcm.
могу ли продолжить юзать gcm, и забить на новомодный firebase? зачем он нужен вообще?

Ответы>>757757>>757881>>757909

30 Май, 19:23 #341 #757757

>>757753
файрбейз круче чисто внешне, да и кода поменьше будет. Всё интуитивно.

30 Май, 20:33 #342 #757815

Господа, я правильно понял суть SharedPreferences?
Я могу иметь несколько разных файлов(настроек) SharedPreferences для всего приложения и иметь к ним доступ из любой активити или фрагмента. А так же иметь несколько разных файлов(настроек) SharedPreferences для любого конкретного фрагмента или конкретной активити.

Ответы>>757881>>757921

30 Май, 21:49 #343 #757881

>>757753
Уважаемый пердун напомните мне про GCM:
1) Можно ли рассылать пуш всем юзерам, без указание конкретных senderId (или как там)?
2) GCM может сам показывать нотификаций "по умолчанию" или нужно обязательно Notification создавать и вызывать NotificationManager.show(...)?
3) Насколько увеличивается размер APK?

>>757815
SharedPreferences уникальны по имени в рамках одного приложения.
Формально это xml файлы в папке /data/data/<package name>/shared_prefs/ с именами которые ты передаешь в getSharedPreferences(...)

Ответы>>757917>>757921

30 Май, 22:12 #344 #757909

>>757753
По хардкору.
Теперь немного меньше кода.
Все остальное такое же примерно.
ГСМ работает как и работал.

Даже сделали миграцию с ГСМ на файербейс.

30 Май, 22:19 #345 #757917

>>757881
1. Шлёшь на адрес "/topics/global"
мимокрок-школьник

30 Май, 22:22 #346 #757921

>>757815
>>757881
Как правило, getDefaultSharedPreferences() достаточно, а что-то более сложное хранится в бд.

31 Май, 01:04 #347 #758085

У меня тоже вопрос по SharedPreferences.
Сохранение в них идет последовательно или параллельно?
Например, у меня есть такой некий код, который где-то в сервисе шлет через PendingIntent сообщение, а потом в onActivityResult оно обрабатывается так:

if(requestCode==ACTIVITY_AGENT_CODE && resultCode==KILL_PROCESS_CODE)
{
SharedPreferences.Editor editor= prefs.edit();
editor.putBoolean(IS_ACTIVITIES_ALIVE,false).apply();
editor.putBoolean(YPS_KILL_ORDER,false).apply();
android.os.Process.killProcess(android.os.Process.myPid() );
}

В результате IS_ACTIVITIES_ALIVE и YPS_KILL_ORDER часто так и остаются true, а вместо xml файла лежит такой же, только bak.
Как мне сделать, чтобы данные таки сохранялись в SharedPreferences перед killProcess? (его убирать нельзя, он нужен)

А еще, какая разница между
android:process=".updater"
и
android:process=":updater"
в манифесте? Вроде, и то и другое сделает сервис отдельным процессом. Или нет?

Ответы>>758134>>758466

31 Май, 03:51 #348 #758134

>>758085
> Как мне сделать, чтобы данные таки сохранялись в SharedPreferences перед killProcess?
Использовать commit вместо apply.

31 Май, 15:02 #349 #758466

>>758085
Есть какой-то смысл делать apply несско раз друг за дружкой?

> android:process=".updater"
Там как-то не совсем понятно про процесс с двоеточием. Мне видится так: двоеточие делает новый процесс приватным для твоего приложения. То есть если ты делаешь какую-то вундервафлю из разных приложений, которые шарят между собой процессы, :update запущенный в одном не будет пересекаться с :update запущенным в другом. В рамках одного приложения я даже не знаю есть ли практическая разница, но гугл советует ставить двоеточие. Позапускай и посмотри как оно распределяется по пидам или вроде того.

Ответы>>759248

31 Май, 15:44 #350 #758502

>>756443
а сервисы типа дофига экзотика ?

31 Май, 15:46 #351 #758507

>>756386
липовый скайп слеплю вечерком, поучишь ?) Я бы не отказался от небольшого пояснения за mvp и за пару тонких на мой взгляд моментов

31 Май, 17:07 #352 #758591

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

31 Май, 17:50 #353 #758627

Есть ли гайды на тему: создание API для взаимодействия с Bluetooth LE устройствами?
Ясен фиг, что полно туториалов на тему BT LE, но всё это только для приложений уровня hello world годится.

31 Май, 18:11 #354 #758660

Как забиндить сервис синхронно?
К примеру есть у сервиса метод do_action(), который юзер вызывает по нажатию кнопки и в итоге, если сервис еще не забиндился - получим NPE или не произойдёт ничего.
Как с этим бороться?

Ответы>>758663>>758717

31 Май, 18:16 #355 #758663

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

31 Май, 18:26 #356 #758672

Котаны, не подскажете, как выпилить из realm скажем все объекты класса A у которых поле b имеет определенное значение c ? realm.clear(classname.class) не позволяет, а цикл, на каждой итерации делающий result.removeFromRealm(); походу просто не пашет.

Ответы>>758676>>758679

31 Май, 18:39 #357 #758676

>>758672
Не юзать реалм.

31 Май, 18:43 #358 #758679

>>758672
Попробуй так:
final RealmResults<A> result = realmInstance.where(A.class).equalTo("b", c).findAll();
realmInstance.beginTransaction();
result.clear();
realmInstance.commitTransaction();

Ответы>>758682

31 Май, 18:46 #359 #758682

>>758679
> clear
Выпилен с первой версией. result.removeAllFromRealm() или как то так.

Ответы>>758696

31 Май, 19:00 #360 #758696

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

31 Май, 19:24 #361 #758717

>>758660
Расскажите, а как такое возможно, что сервис при нажатии на кнопку не будет забинден? Если я бинд делаю в onCreate, запуск и соединение — быстрая операция, сервис 100 раз успеет забиндиться, прежде чем пользователь нажмёт на экран. За исключением, быть может, ситуаций, когда сервис в другом процессе находится, но тут я понимаю уже.

Ответы>>758724

31 Май, 19:36 #362 #758724

>>758717
Ну вот googleApiClient хоть и не сервис (но внутри то там он есть), но как-то коннект не иногда происходит, возможно и у сервиса тоже что-то такое может случится.

Ответы>>758738

31 Май, 20:01 #363 #758738

>>758724
Ну, этот сервис в другом процессе находится, поэтому соединение может долго происходить.

31 Май, 20:51 #364 #758795

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

Ответы>>758801>>758924

31 Май, 21:03 #365 #758801

>>758795
> новых версий сдк с чейнджлогами, новых версий популярных библиотек
https://github.com/ben-manes/gradle-versions-plugin

Ответы>>758805

31 Май, 21:08 #366 #758805

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

Ответы>>758806

31 Май, 21:09 #367 #758806

>>758805
Заходишь на гитхаб своей либы, открываешь CHANGELOG.md и радуешься жизни.

Ответы>>758807

31 Май, 21:13 #368 #758807

>>758806
Щас бы чейнджлоги каждый день по двадцать минут читать, в которых инфа о том, что теперь функция, которую ты не использовал, может принимать в качестве параметра новый объект, о существовании которого ты не догадывался. Или пытаться, например, понять по чейнджлогам, чем же ретрофит 2 выгодно отличается от предыдущей версии.

138 Кб, 347x329

31 Май, 21:18 #369 #758808

Что можно почитать хорошего про многопоточность в андроиде? Что бы объяснялось что лучше и когда использовать.
Читаю сейчас Java Concurrency in Practice 2006 года. Еще туторилы здесь http://docs.oracle.com/javase/tutorial/essential/concurrency , но дошел до использования всяких java.util.concurrent.locks.ReentrantLock, Executor Interfaces и охуел, мне кажется такое уже надо всяким мидлам и сеньорам знать.

Ответы>>758811>>758813

31 Май, 21:21 #370 #758811

>>758808
Посмотри курсы вандербильтского университета на курсере, можно не все, а первые 4-5 лекций. Каждая по полтора часа где-то.

Ответы>>758820

31 Май, 21:24 #371 #758813

>>758808
Алсо, жабадоки тут нерелевантны, потому что чистая жавамногопоточность в андроиде вообще не используется, максимум - простенький new Thread(new Runnable()).start(); А для многопоточности используются Handler+Message или AsyncTask

Ответы>>758821

31 Май, 21:41 #372 #758820

>>758811
Скинешь ссылку на курс? Что-то не могу найти

Ответы>>758822

31 Май, 21:43 #373 #758821

>>758813
> для многопоточности используются Handler+Message или AsyncTask
Как там в 2010-м?

Ответы>>758822

31 Май, 21:46 #374 #758822

>>758820
https://www.coursera.org/course/posaconcurrency
https://www.youtube.com/channel/UCt-Wvc_ojTzGLpjhruIXYSw/videos - поиск по Concurrency
>>758821
>Как там в 2010-м?
А что у тебя, в 2016м? Rx? Так это сторонняя либа.

Ответы>>758829

31 Май, 21:47 #375 #758823

>>750609 (OP)
Аноны, опять про MVP, допустим есть типичный пример: список итемов и детализация, т.е. активити с двумя фрагментами в ландскейпе, и с одним в портретной ориентации.
Как лучше реализовать тут MVP? Два презентера под каждый фрагмент? Тогда как заменять фрагменты? Сделать, чтобы фрагменты вызывали сами методы активити, и она уже сама решала че делать, это норм вариант? Или один презентер под активити, который будет отвечать сразу за два фрагмента?

Ответы>>758832

31 Май, 21:55 #376 #758828

Как можно сделать finish() для top-Activity в static контексте? Есть плохой вариант писать
static Activity activity=this;
где-нибудь в onCreate... Но после того как многократно поймал так NPE, больше не хочется.

Суть вообще такова, что есть BroadcastReceiver, который принимает 2 сообщения. Поймав первое он должен будет сделать finish, чтобы потухло на экране приложение и создалась видимость мгновенного его завершения. Второе сообщение уже будет немного позже (0.1 .. 2 секунды), и его обработка будет уже реально завершать работу. Но чтобы receiver пережил finish, он должен быть static, а в static нет доступа к activity. Вот эта рефлексия:
http://stackoverflow.com/questions/11411395/how-to-get-current-foreground-activity-context-in-android/28423385#28423385
выдает пустой Map, например. Но должен же быть какой-то менеджер или еще что-то, чтобы получить доступ к стеку, правда же?

Ответы>>758832>>758833>>758837>>758939

56 Кб, 466x604

31 Май, 21:56 #377 #758829

>>758822
Ну хоть бы в early access

31 Май, 21:59 #378 #758832

>>758823
Слишком абстрактно расписал давай конкретнее. Так могу только сказать, что два презентера не нужны по определению MVP.
>чтобы фрагменты вызывали сами методы активити
Только если коллбэки. Фрагмент не должен иметь доступ к родительской активити.
>>758828
А если не статик ресивер сделать (бля, что это вообще за чудо), а просто интентсервис запускать? Он сделает работу, какую надо, и умрёт. А активити завершишь сразу, на это пофиг.

Ответы>>758836>>758837>>758838

31 Май, 21:59 #379 #758833

>>758828
Ты хуйню какую-то нагородил.

31 Май, 22:00 #380 #758836

>>758832
> два презентера не нужны по определению MVP
Что ты несешь, больная скотина?

Ответы>>758837

31 Май, 22:02 #381 #758837

>>758832
>>758828
А, жопой прочёл вопрос, сорри. Пробовал регистрировать бродкастресивер не в контексте активити, а где-нибудь ещё? Или в манифесте, или сделать сервис долгоживущий?
>>758836
Сосни хуйца, ты не понимаешь сути мвп.

Ответы>>758849>>758875

31 Май, 22:02 #382 #758838

>>758832
>два презентера не нужны по определению MVP
почему?
мне понравился ответ тут https://toster.ru/q/225663 с двумя презентерами, что скажешь?

Ответы>>758843

31 Май, 22:05 #383 #758843

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

130 Кб, 587x538

31 Май, 22:08 #384 #758849

>>758837
А ты понимаешь? Что-то не похоже.

У каждого View должен быть свой Presenter.

Ответы>>758851>>758853

31 Май, 22:15 #385 #758851

>>758849
>каждого View
Ну что давайте хуярить для всех вьюх по презентеру? Для каждого текствью?
Чего еще, добавить даже не не знаю.

Ответы>>758852>>758854

31 Май, 22:17 #386 #758852

>>758851
view в MVP != View в андроиде

Ответы>>758856

31 Май, 22:18 #387 #758853

>>758849
Ммм, бесполезные классы, вкуснаа. У меня сейчас проект на 50к строк, всё запихано в один презентер класс (строк 800 где-то), и при обновлении данных он просто уведомляет подписавшиеся на обновления фрагменты (просто паттерн обсервер с регистрацией на onAttach). Далее фрагменты получают уведомления, вместе с int кодом, который определяет, что именно было изменено, и если полученный код им важен, то они обновляют соответствующие вьюхи. У меня сейчас порядка 30-40 разнородных фрагментов и все они прекрасно работают по такой системе. Если бы я для каждого фрагмента делал бы презентер, я бы застрелился.

Ответы>>758857>>758860>>758861>>758868

31 Май, 22:18 #388 #758854

>>758851
Ага, вот стало и понятно, в чем твоя проблема: ты не отличаешь View как компоненты архитектуры от класса android.view.View.

Ответы>>758856

31 Май, 22:19 #389 #758856

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

>>758854
Детектор чини.

Ответы>>758862

31 Май, 22:20 #390 #758857

>>758853
Ну и нахер тебе Presenter тогда? То, что ты делаешь, это не MVP.

Ответы>>758865

31 Май, 22:21 #391 #758860

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

31 Май, 22:21 #392 #758861

>>758853
Я другой анон, так а куда ты вынес запросы например? Фрагменты же юзают разные запросы например по нажатию на кнопку а у тебя выходить один презентер со всеми листенерами?

Ответы>>758865

31 Май, 22:24 #393 #758862

>>758856
Какие еще фловы? О чем ты, болезненный?

Ответы>>758866

31 Май, 22:26 #394 #758865

>>758857
Бля, ладно. Разрешаю тебе ебаться дальше с кучей презентеров, а сам пойду попрограммирую вслать на полуавтоматизированном коде.
>>758861
Фрагменты по нажатию на кнопку отправляют каллбэк в активити, и та что-то делает. Либо формирует запрос на сервер (я использую ретрофит, запрос по коллбэку обычно обновляет мой не-презентер класс, который в свою очередь обновляет фрагменты), либо показывает другой фрагмент и активити (тут вообще не нужно никакого взаимодействия). Напрямую из фрагментов делать вызовы в презентер - зашквар, потом никогда не разберёшься, что откуда вызывается. Максимум - чтение данных из презентера, без изменения оных.
Ящитаю, что в идеале фрагменты должны вообще иметь ноль логики и управляться только за счёт вызовов родительской активити, но у меня в силу некоторых причин (отсутствие дизайна в начале проекта) не получилось это реализовать.

Ответы>>758874

31 Май, 22:27 #395 #758866

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

Ответы>>758871

7 Кб, 130x128

31 Май, 22:28 #396 #758868

>>758853
>всё запихано в один презентер класс (строк 800 где-то)
Ты сейчас жалуешься или хвастаешься?

Ответы>>758870

31 Май, 22:29 #397 #758870

>>758868
Показываю, какой у меня толстый презентер Это 800 строк простых геттеров-сеттеров.

Ответы>>758873

31 Май, 22:30 #398 #758871

>>758866
>начнешь пилить без фрагментов
не начну

Ответы>>758876

31 Май, 22:31 #399 #758873

>>758870
ну не переживай, потом отрефакторишь, когда время будет, станет нормальная архитектура

Ответы>>758878>>758885

31 Май, 22:32 #400 #758874

>>758865
>Фрагменты по нажатию на кнопку отправляют каллбэк в активити, и та что-то делает. Либо формирует запрос на сервер (я использую ретрофит, запрос по коллбэку обычно обновляет мой не-презентер класс, который в свою очередь обновляет фрагменты), либо показывает другой фрагмент и активити (тут вообще не нужно никакого взаимодействия).
Рили у тебя не мвп, у тебя своя архитектура, твой презентер это практически ивентбас.
>Напрямую из фрагментов делать вызовы в презентер - зашквар, потом никогда не разберёшься, что откуда вызывается. Максимум - чтение данных из презентера, без изменения оных.
Слишком сильное заявление, тебе не кажется? Но так работает mvc если что.

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

Ответы>>758885

31 Май, 22:32 #401 #758875

>>758837
не пробовал... Я пока не очень хорошо с ними знаком вообще. Знаю, что где-то должен лежать зареганный объект, принимать intent-ы и чего-то с ними делать. И что работает он по фильтру-по action. Погуглю манифест, спасибо. Только пока не понимаю как можно откуда-то издалека будет управлять этим Activity.
Все это вообще нужно было, чтобы пока сервис сделает все свои дела, отправит запросы о закрытии приложения и статусы, показать пользователю, что приложение потухло. Это не так, и после того как сервис все отработает, в контексте MainActivity еще надо было штуку одну сделать, но его живой объект уже не требуется. Просто не хочется, чтобы приложение тухло долгое зависящее от соединения время

31 Май, 22:32 #402 #758876

>>758871
В любом случае твой подход становится от этого не менее хуевым.

Ответы>>758881

31 Май, 22:33 #403 #758878

>>758873
Никогда

31 Май, 22:35 #404 #758881

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

Ответы>>758886

31 Май, 22:38 #405 #758885

>>758873
Ну давай, расскажи, как же мне отрефакторить? Неужели разбить на десяток классов, которые будут иметь такую же логику?
Ай в пизду, ты вообще, похоже, не понимаешь в программировании.
>>758874
>Слишком сильное заявление, тебе не кажется
Не кажется. Активити - вью компонент для связи с презентером. Если С презентером связана не только активити, но и фрагменты - это лишние связи в архитектуре.
>Рили у тебя не мвп, у тебя своя архитектура, твой презентер это практически ивентбас.
Хуй с ним, я, конечно, могу спросить, почему мвп исключает ивентбас, но только мне похуй. Я чистую реализацию ивентбаса никогда в жизни не видел и не собираюсь смотреть.

Ответы>>758889>>758890>>758893

31 Май, 22:38 #406 #758886

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

31 Май, 22:42 #407 #758889

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

Ответы>>758894

31 Май, 22:42 #408 #758890

>>758885
>Не кажется. Активити - вью компонент для связи с презентером. Если С презентером связана не только активити, но и фрагменты - это лишние связи в архитектуре.
Из активити тоже нужно выносить логику, я об этом. А у тебя она как раз в активити.
Просто можно делать мвп с одной активити и кучей фрагментов, тогда презентеры будут работать с фрагментами но это похуй.
>>758885
>Хуй с ним, я, конечно, могу спросить, почему мвп исключает ивентбас, но только мне похуй.
Почему исключает, нет. Просто ты ивентбас презентером называл.
>Я чистую реализацию ивентбаса никогда в жизни не видел и не собираюсь смотреть.
А это ты зря, ладно тут анонимный форум, но в реальности такие слова отметка долбоеба до конца жизни.

Ответы>>758894

31 Май, 22:44 #409 #758893

>>758885
Это ты не понимаешь в разработке приложений. Прочитай про SOLID на досуге, много нового узнаешь.

Ответы>>758894

31 Май, 22:46 #410 #758894

>>758889
Вы не правы, всего доброго.
>>758890
>А у тебя она как раз в активити.
Ну, я вынес все вызовы к серверу в отдельный класс. В активитях остались только сотни коллбэков от фрагментов, которые обрабатываются в 1-3 строчки.
>>758893
Читал, сложна без примеров. Похоже на пердёж в лужу, который неприменим в реальной жизни.

Ответы>>758896>>758897>>758899>>758906

31 Май, 22:47 #411 #758896

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

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

Ответы>>758905

31 Май, 22:48 #412 #758897

>>758894
эталонный дегенерат

Ответы>>758905

31 Май, 22:49 #413 #758899

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

Ответы>>758905

31 Май, 22:51 #414 #758905

>>758896
>>758897
Научите солиду, посоны. Киньте примеров. Я вообще-то сюда и зашёл первый раз за дохуя месяцев, чтобы узнать, что там нового в андроиде вышло.
>>758899
Потому что это будет слишком большая паутина и трудноисправляемая вызовов. Активити сравнительно мало (штук 10), фрагментов же штук 50. А если мне захочется один из вызовов как-то поменять?

Ответы>>758913

131 Кб, 474x700

31 Май, 22:51 #415 #758906

>>758894
> SOLID
> пердёж в лужу, который неприменим в реальной жизни.
Понятно. Можешь не продолжать.

Ответы>>758910

31 Май, 22:53 #416 #758910

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

Ответы>>758913>>758915>>758919

31 Май, 22:54 #417 #758913

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

Ответы>>758920

31 Май, 22:55 #418 #758915

>>758910
Объясняю: проблема не в том, что ты не знаешь SOLID. А в том, что ты называешь его
> пердёж в лужу, который неприменим в реальной жизни
А на все несогласия со своей архитектурой отвечаешь
> МНЕ ТАК УДОБНО, А ВЫ НЕПРАВЫ

Ответы>>758920>>759050

31 Май, 22:58 #419 #758919

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

31 Май, 22:59 #420 #758920

>>758913
Бля, я когда работу искал, прочитал сотню книжек, прошёл курс по agile, читал и про solid, и mvp учил, и в жопу носорогу заглядывал. Да только вся инфа, которую я нашёл - субъективна и подходит только в конкретных случаях для маленьких приложений.
>>758915
> пердёж в лужу, который неприменим в реальной жизни
>Читал, сложна без примеров. Похоже на

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

32 Кб, 296x218

31 Май, 23:01 #421 #758922

Вас как почитаешь, вспоминается только это

31 Май, 23:02 #422 #758924

>>758795
Бамп.

31 Май, 23:33 #423 #758939

>>758828
Ну ладно, а если отвлечься от receiver-а и прочего. Разве нет какого-то обращения к системе, чтобы получить back-stack или объекты Activity? Мне кажется, это настолько же естественное действие, как получить какой нибудь очередной системный manager

31 Май, 23:48 #424 #758950

ДА ИДИТЕ ВЫ ВСЕ В ПИЗДУ СО СВОИМ МОДНЫМ MVP! КАК БЛЯТЬ ВОБЩЕ МОЖНО ЧТОТО ГОДНОЕ КРОМЕ ХЕЛЛОВОРЛДА НАПИСАТЬ С ПОМОЩЬЮ ЭТОЙ ПАРАШИ!? ВОТ НАПРИМЕР У МЕНЯ ЕСТЬ АКТИВИТИ С ВЬЮФЛИППЕРОМ И МНЕ НУЖНО ПЕРЕКЛЮЧАТЬ ЕГО СОСТОЯНИЯ ПО НАЖАТИЮ НА КНОПКУ, КАКИМ БЛЯТЬ ХУЕМ Я УЗНАЮ ИЗ ПРЕЗЕНТЕРА КАКОЙ ЧАЙЛД СЕЙЧАС ОТОБРАЖАЕТСЯ (ПОДСКАЗКА: НИКАКИМ БЛЯТЬ! НЕЛЬЗЯ УЗНАТЬ, ПОТОМУ ЧТО ПРЕЗЕНТЕРУ ДОЛЖНО БЫТЬ СТРОГО ПОХУЙ НА ВЬЮ) И КАК В ТАКОМ СЛУЧАЕ ХОТЬ ЧТОТО АДЕКВАТНОЕ ПОСТРОИТЬ ИЗ ЭТОГО ГОВНА И ЭТИХ ПАЛОК?! НАСЛУШАЮТСЯ НА СВОИХ КОНФЕРЕНЦИЯХ ГОВНА И ЕБУТСЯ ПОТОМ С НИМ!

Ответы>>758956>>758969

01 Июн, 00:08 #425 #758956

>>758950
Тут явно нужно объединить ViewFliper+Button в какую-то кастомную View.

Ответы>>758965

01 Июн, 00:18 #426 #758965

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

01 Июн, 00:26 #427 #758969

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

Ответы>>758974

01 Июн, 00:37 #428 #758974

>>758969
https://www.youtube.com/watch?v=00AKKn0XVxw

01 Июн, 07:56 #429 #759050

>>758915
вот вкотился в IT мир, и понял что это какая болезнь в этой сфере. Люди ну прям очень трудны в общении, что-то сказать другое, что не соответствует мнению человека невозможно. Шлют сразу нахуй, начинают обсмеивать. Эта некая свобода собенно фрилансеров просто губид пиздецки. Твой пост идельно всё описывает. Вобщем схоронил скрин...

01 Июн, 08:17 #430 #759051

Можно как-то в студии указывать в тудушке к какому таску она относится? Вроде
// TODO remove this stub when #taskref is done
и чтобы студия это как-то понимала, автодополнение там или еще чего.

Ответы>>759052

01 Июн, 08:45 #431 #759052

>>759051
Плагин поищи. Думаю есть такой с синхронизацией с джирой.

01 Июн, 10:47 #432 #759105

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

Ответы>>759123

01 Июн, 11:12 #433 #759123

>>759105
Ты вообще уверен что тебе нужен фрагмент?
Как ты вообще его показываешь/скрываешь?

Ответы>>759144

01 Июн, 11:49 #434 #759144

>>759123
Нет, думаю не нужен. Я в общем более-менее разобрался.

01 Июн, 14:12 #435 #759248

>>758466
Я плохо помню свои мотивы. Обычно я использую эту строку, чтобы одно значение написать. А тут два пришлось, так что было ctrl-c/ctrl-v
Вообще надо получше понять разницу между commit и apply, потому что внедрив это, у меня и проблемы с многопоточностью решились, хотя целый день до этого пиал обходные пути по этой причине. Спасибо, кстати, большое

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

Ответы>>759251>>759408

01 Июн, 14:15 #436 #759251

>>759248
> Вообще надо получше понять разницу между commit и apply

Commit сразу пишет в файл, apply не сразу.

01 Июн, 15:42 #437 #759337

Ощущение, что сообщения от PendIngIntent приходят через раз. То летят, то не летят. Может такое быть?

01 Июн, 17:21 #438 #759408

>>759248
> Вообще надо получше понять разницу между commit и apply, потому что внедрив это, у меня и проблемы с многопоточностью решились, хотя целый день до этого пиал обходные пути по этой причине. Спасибо, кстати, большое
Прочитай джавадок и поймёшь в чём разница. Один метод — синхронный, другой — нет.

Ответы>>759415

01 Июн, 17:25 #439 #759415

>>759408
О, спасибо!

Ответы>>759417

01 Июн, 17:25 #440 #759417

>>759415
С третьего раза только, дэ?

01 Июн, 17:41 #441 #759432

Посоны а можно на ведре пользоваться управляемыми контейнерами с cdi? Какие реализации есть?
Мимо энтерпрайз-примат

Ответы>>759443

01 Июн, 17:46 #442 #759436

Ну тип хочу что то уровня манаджедбинов с их инжекцией в контроллеры

Ответы>>759443

01 Июн, 17:50 #443 #759443

>>759436
>>759432
Никогда такой хуйни в ведре не встречал.

Ответы>>759455

01 Июн, 17:58 #444 #759455

>>759443
Ух епт.
А как вы с сервисами работаете? Через статические классы чтоли ?

Ответы>>759492

01 Июн, 18:02 #445 #759460

Например я запилил бин для каких то целей.
Мне в каждом контроллере его вручную инстанцировать? А если мне синглтон нужен. Или это фабрика

Ответы>>759465

01 Июн, 18:09 #446 #759465

>>759460
Тебе что-ли нужно Dependency Injections?
Тогда бери Dagger2, Dagger или RoboGuice если он еще жив.

Ответы>>759466

01 Июн, 18:11 #447 #759466

>>759465
Ага.
Спс

01 Июн, 18:53 #448 #759486

>>753437
А зачем ещё что-то? Я себе сделал в несколько строк обертку чтобы тайм-аут был и все

Ответы>>759497

01 Июн, 19:08 #449 #759492

>>759455
Ты про системные сервисы, которые возвращает getSystemService, или android.app.Service, или о чем-то другом?

01 Июн, 19:10 #450 #759497

>>759486
хватит траллить

02 Июн, 12:24 #451 #759921

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

Ответы>>759941

02 Июн, 13:05 #452 #759941

>>759921
чем меньше ваш код выполняется, тем лучше чувствует себя батарея.
ваш к.о.

Ответы>>760007

sage 02 Июн, 14:22 #453 #760007

>>759941
Чем меньше включен экран тем меньше тратиться батарея. Для этого асинхронщина.

Кто мутит проект и нужны люди? 02 Июн, 14:23 #454 #760009

У кого проект и нужны люди?

Ответы>>760011>>760027

02 Июн, 14:27 #455 #760011

>>760009
Шо на каникулах нечем заняться?

02 Июн, 14:38 #456 #760027

>>760009
Пиздуй в фурряч.

02 Июн, 15:43 #457 #760078

Антон, покритикуй - https://github.com/pacodelavega/GithubDemo

Я никогда не устраивался и не работал андроид-разработчиком и не знаю, как там всё принято.

Тестовое задание:
Необходимо сделать приложение для поиска пользователей на github (https://developer.github.com/v3/search/#search-users)
Дизайн как в гугл плей, т.е плавающее окошко поиска в верхней части экрана, которое уезжает по свайпу вниз и выезжает по свайпу вверху (независимо от уровня прокрутки вниз, см. гугл плей). Внизу recyclerview с списком найденных пользователей. Поиск из плавающего окошка, по мере ввода символов.
Желательно использовать следующие инструменты и библиотеки: RxJava, Retrofit, Support library, Realm

Ответы>>760084>>760140

02 Июн, 15:48 #458 #760084

>>760078
На джуна сойдет.

Ответы>>760224

02 Июн, 16:53 #459 #760140

>>760078
Неплохо, но ничего особенного.
Хотя лично мне нравиться такая компоновка model/service/activity.

Я еще модельки сделал бы immutable (раз делаешь с упором на функциональщину).
Вот https://timboudreau.com/blog/json/read сайт генерит Java класс из JSON без сеттеров.
Ну и написал бы на котлине конечно.

Из минусов: нет обработки ошибок, нет обработки слишком частого ввода нет realm, хотя в пизду его.

Ответы>>760224

02 Июн, 16:58 #460 #760144

А как вы обычно хуярите класс предоставляющий функционал ретрофита, с возможностью выйти из сессии и начать новую? Синглтон? Или может создавать в Application.onCreate, а потом инжектить?

Ответы>>760147

02 Июн, 17:01 #461 #760147

>>760144
Что значит выйти из сессии?

Ответы>>760251

02 Июн, 18:48 #462 #760224

>>760084
>>760140
Спасибо за отзывы, обработку ошибок добавил. В таком задании ожидаются подробные комментарии и юнит тесты? Хотел добавить, но толком и нечего комментировать и тестировать.

>нет обработки слишком частого ввода
Это как реализовать? Я RxAndroid не пользовался никогда до этого. Добавить в:

users.subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber<Users>()

строчку:
.throttleLast(500L, TimeUnit.MILLISECONDS)

Чтобы обрабатывал последний запрос после которого прошло 500мс?

Ответы>>760235

02 Июн, 19:10 #463 #760235

>>760224
Тебе нужен либо PublishSubject c debounce, в который ты будешь передавать текст из колбэка, либо использовать RxSearchView с тем же debounce.
Да и хули ты тупишь, это самый каноничный пример использования Rx, хоть копипасти себе весь проект у какого-нибудь хипстера на medium.com

02 Июн, 19:47 #464 #760251

>>760147
Ну вот пусть у меня был токен ZW1haWw6IG11ZGFrQG1haWwuY29tIHBhc3M6IHBvYzEzNGF6YUxPWA==, с ним я делал всякие запросы, отправлял его в хедерах, а потом юзер нажал logout, значит надо перестать этот токен сувать в хедеры. Значит надо его стереть, вот и возникает вопрос - где и как его хранить, цеплять то понятно что в билдере прицепить интерсептор.

Ответы>>760254

02 Июн, 19:57 #465 #760254

>>760251
В шаред преференсах, в файле с синхронной обреткой.

Ответы>>760258

02 Июн, 20:10 #466 #760258

>>760254
Что-то как-то сомнительно, если так, то interceptor'у нужен будет доступ к SharedPreference. Не будет ли он с диска каждый ебаный запрос читать? Оно-то конечно в отдельном потоке, но все же.

Ответы>>760260>>760264>>760274

02 Июн, 20:17 #467 #760260

>>760258
Зато не сотрётся при закрытии процесса приложения. Я сделал так, мне норм.
А для реализации подобной фигни в ретрофите (а точнее в OkHttp) нужно сделать кастомный CookieStore и установить его в сессию через функцию setCookieJar.
мимо

Ответы>>760264>>760267

02 Июн, 20:21 #468 #760264

>>760258
>>760260
Вообще, если напрячься, то можно сделать что-то типа подгрузки из sharedPreferences при иниализации сессии и дальнейшее хранение в переменной типа Map (как в дефолтной реализации CookieStore), если смущает постоянное обращение к SharedPreferences (хотя я не пойму, чего в этом плохого)

Ответы>>760267

02 Июн, 20:25 #469 #760267

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

Ответы>>760269

02 Июн, 20:28 #470 #760269

>>760267
Сорри, я тупанул немного. Мне почему-то показалось, что ты в кукисах токен передаёшь. Если он отдельным хедэром, то можно в интерсептере передавать, как ты и делаешь, просто стирать при логауте из преференсов.
Просто в OkHttp в интерсепторах нельзя передавать кукисы, они перезаписываются, поэтому мне пришлось велосипедить. К тебе это не относится, забудь.

02 Июн, 20:34 #471 #760274

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

Ответы>>760291

02 Июн, 21:00 #472 #760291

>>760274
Тогда заебись вообще.

19 Кб, 508x325

02 Июн, 22:46 #473 #760397

Аноны, есть один старый проект, который юзает карты. import com.google.android.maps. почему то не находит, хотя подключил google-play-services.jar из того самого проекта. Но странно, что он находит вот это - import com.google.android.gms.maps., но там измененные классы и мне не очень хочется все переписывать

Ответы>>760476

03 Июн, 03:39 #474 #760476

>>760397
Очень старые сервисы у вас батенька. Уже 9 вышли. Боюсь проект нужно переделывать под новые. Но тут я смотрю вообще говно динозавра, если обратить внимание на способ подключения facebook'a и actionbarsherlok/

03 Июн, 16:53 #475 #760708

Нуб. Нужно вытащить 1-50 записей из базы, зная их айдишники (уникальные поля). Лучше делать один селект с WHERE IN (id, id...) или много селектов? Какой вариант хуже и насколько?

Ответы>>760713>>760727>>760733

03 Июн, 16:54 #476 #760713

>>760708
Я считаю, лучше один, чем несколько.

Ответы>>760720

03 Июн, 17:01 #477 #760720

>>760713
Ящитаю тоже, но основу для этого не имею, точнее имею, но учитывая мое незнание того как на самом деле работают базы, эта мысль вряд ли верна.

03 Июн, 17:04 #478 #760727

>>760708
Один конечно, так как один реквест к базе.

Ответы>>760730

03 Июн, 17:07 #479 #760730

>>760727
Окей, спасибо.

03 Июн, 17:12 #480 #760733

>>760708
Можно создать временную таблицу, заполнить ее айдишниками и SELECT... JOIN...

Ответы>>760749>>760824

03 Июн, 17:43 #481 #760749

>>760733
И это 100% лучше чем where in?

Ответы>>760762

03 Июн, 17:58 #482 #760762

>>760749
42% Я ебу что ли ты задачу вообще не описал.
Только учти что у SQLite есть ограничение на размер текста запроса.

Ответы>>760773

518 Кб, 2500x1443

03 Июн, 18:04 #483 #760765

Господа, а знание какого еще языка будет очень полезным для андроид разработчика? Может кто пояснить? В голову приходит C, C++, так как сам андроид на них написан. Ну Kotlin еще.

Ответы>>760772>>760774>>761442

119 Кб, 788x443

03 Июн, 18:11 #484 #760772

>>760765
Clojure оффкозз, в будущем все будем писать под мобилки на ClojureScript + ReactNative

Ответы>>761005

03 Июн, 18:11 #485 #760773

>>760762
А задача важна? Ну записей ~500 с 7 полями, айдишники в них это BaseColumn._ID primary key, как-то получаю список 10-50 этих айдишников, и нужно вытащить что-то с данными сделать.
Я уже решил делать на where in, но если джоином 100% лучше, то запомню на будущее.

03 Июн, 18:20 #486 #760774

>>760765
Haskell, Perl, Verilog. Так или иначе пригодится.

03 Июн, 18:21 #487 #760775

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

Ответы>>760781

03 Июн, 18:29 #488 #760781

>>760775
Не связывайся ты с Android "сервисами" пока этого явно не потребует бизнес-задачи.

Меньше нахлебаешся с фрагментированностью/"изменением поведения" его API.

03 Июн, 19:41 #489 #760824

>>760733
Вот так майндфак ты тут разводишь.

217 Кб, 1159x1654

03 Июн, 23:07 #490 #760946

Че вы книг в шапку не добавите? Думал, что кроме The Busy Coder’s Guide to Android Development нихуя книг нормальных по андроиду и нет. А тут порылся, а их не так уж и мало, накачал вот, сижу читаю.
Bill Phillips, Chris Stewart, Brian Hardy, Kristin Marsicano - Android Programming: The Big Nerd Ranch Guide (2nd Edition) - 2015 - Вот эту прям вообще все хвалят, добавьте в шапку, если кто читал и может подтвердить, годно или нет.

Ответы>>760958

03 Июн, 23:22 #491 #760958

>>760946
Ну давай расскажи чем это лучше d.android.com/training

Ответы>>761081

04 Июн, 01:25 #492 #761005

>>760772
Нахуй такое будущее.

Ответы>>761085

04 Июн, 09:58 #493 #761081

>>760958

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

Ответы>>761085

04 Июн, 10:15 #494 #761085

>>761081
> неосилил
Печаль, я думал там что-то интересное чего нет офф. доках.

>>761005
> Нахуй такое будущее.
Чому?
Clojure язык богов + в ReactNative работаешь с нативным UI (это тебе не парашный фонгап с JS).

Ответы>>761102

04 Июн, 11:01 #495 #761102

>>761085
>офф. доках
>Clojure язык богов + в ReactNative работаешь с нативным UI (это тебе не парашный фонгап с JS)
А вот и илита /pr подъехала, с охуительными историями, ясно.

04 Июн, 15:24 #496 #761239

Кто знает как получить папку карты памяти? Я написал приложение, использовал Environment.getExternalStorageDirectory(), и уже думал, что справился, но вчера дал другу потестить. Говорит, что да, он открывает ExternalStorage, но он не равен sd-карте. Рылся в гугле, пытался понять. Нашел, что есть какой-то SecondaryStorage, но что-то уже голова кипит от всех этих неожиданных знаний.
С другим другом общались, он сказал, что то у первого телефон странный, херня какая-то. Ну, я написал тогда такой код:
http://pastebin.com/PziFL1s2
Просто чтобы проверить что прочитается. На одном моем устройстве работает хорошо. На другом выдает или карту памяти, или другое хранилище, если карта отсутствует. А друг так вообще сказал:
"крешится при открытии"
Нихрена не понимаю в чем дело

Ответы>>761244>>761410>>761934

04 Июн, 15:27 #497 #761244

>>761239
У меня 2.3.3
Второй 4.1
У друзей 5.1, но разные устройства

04 Июн, 15:49 #498 #761260

Есть фрагмент во вьюпейджере, onCreateView фрагмента создает какие-то вьюхи, типа mTextView = (TextView)...
После onDestroyView мне о созданных вьюхах нужно забыть? Или стоит делать if (mTextView == null)... в onCreateView?

Ответы>>761309

04 Июн, 16:53 #499 #761309

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

@Inject{R.id.textview}
TextView mTextView

и чтобы этим функционалом всё и ограничивалось.
>>761260
Быстрее самому затестить:
if (mTextView == null)
Log.i(TAG,"обнуляется");
else
Log.i(TAG,"не обнуляется");

и попрыгай по вьюпейджеру

Ответы>>761312>>761316>>761375>>761597

04 Июн, 16:54 #500 #761312

>>761309
>самый компактный и удобный фреймворк для автоматического определения вьюшек
Butterknife

@Bind(R.id.huy)
Huy pesda

в onCreate
ButterKnife.bind(this);

Ответы>>761313

04 Июн, 16:56 #501 #761313

>>761312
Спасибо.

04 Июн, 16:59 #502 #761316

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

Ответы>>761318

04 Июн, 17:02 #503 #761318

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

Ответы>>761325

04 Июн, 17:11 #504 #761325

>>761318
Анон, я все стадии логировал, обычный (не StatePager) адаптер просто делает onDestroyView табам, которые дальше +1 с обеих сторон. Думаю все же можно реюзать созданные вьюхи, ведь пересоздавать стоит только когда это имеет смысл для логики фрагмента.
Просто боюсь если вдруг не знаю какую заковырку, которая потом встанет боком.

Ответы>>761356

04 Июн, 17:51 #505 #761356

>>761325 Ага, все, нашел по теме:
http://stackoverflow.com/questions/18637134/fragment-should-i-reuse-view-in-oncreateview-and-how-should-i-do-that

04 Июн, 18:07 #506 #761375

>>761309
Android DataBinding, мне зашло на отлично.

04 Июн, 19:02 #507 #761410

>>761239
> Кто знает как получить папку карты памяти
Просто забей. Это анальная боль еще та, ведь то, что возвращается Environment.getExternalStorageDirectory() задается производителем девайса. Если он ленивый ублюдок и сделал еще внутренней памятью первый слот под флешку а второй доступен для пользователя, то тебе будет возвращаться именно первая внутренняя память.
И лечится это только костылями уровня проверки монтированных каталогов в /mount.
А на 4.4 ты вообще туда хуй че запишешь.

Ответы>>761429>>761594>>761745

04 Июн, 19:12 #508 #761429

>>761410
Ну с китката уже завезли документ провайдер, а на лолипопе он уже вменяемый. Только вот на некоторых китайцах его нет, такой-то лол. А до него только ебля: http://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0

04 Июн, 19:14 #509 #761434

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

Ответы>>761440

04 Июн, 19:16 #510 #761440

>>761434
Сделай, хули.

Ответы>>761445

04 Июн, 19:19 #511 #761442

>>760765
Asm, brainfuck, f#

04 Июн, 19:21 #512 #761445

>>761440
У меня нет возможность такое как следует оттестировать. Не то чтобы я собирался.

Ответы>>761459

04 Июн, 19:30 #513 #761459

>>761445
Никто не хочет давать не гарантированное решение, потом еще хуями закидают.

04 Июн, 20:11 #514 #761554

Как совместить VK SDK с RXJava?

Ответы>>761562>>761570

04 Июн, 20:16 #515 #761562

>>761554
что тебе именно надо совместить?

04 Июн, 20:19 #516 #761570

>>761554
Берешь и оборачиваешь колбэк в Observable.create.

04 Июн, 20:57 #517 #761594

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

12 Кб, 724x316

9 Кб, 481x320

04 Июн, 21:01 #518 #761597

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

Что же вы юродивые какие, на вот мой (написал за 5 минут):
пик 1 - фреймворк
пик 2 - пример использования (просто тип и типов в дженерике)

Писать надо на нормальных языках.

Ответы>>761601

04 Июн, 21:04 #519 #761601

>>761597
Нормальноязычный, у тебя же есть kotlinx.android.synthetic

Ответы>>761608

04 Июн, 21:10 #520 #761608

>>761601
Это как пример захотелось самому такой написать.

Для себя я юзаю собственный DSL для связки UI и MVVM, общий для Android/iOS.
В итоге кода получается столько же как с кодогенераторами.

Ответы>>761612>>761661

04 Июн, 21:11 #521 #761612

>>761608
Ты себе не представляешь, как ты меня бесишь этим италикболдом. Перекатывай тред давай лучше

Ответы>>761621

04 Июн, 21:16 #522 #761621

>>761612
Я тебе сейчас перекачу, будет:

Разработка на Kotlin под Android тред №21

Ответы>>761748

04 Июн, 22:01 #523 #761661

>>761608
А как ты под гейос ебашишь?

04 Июн, 23:05 #524 #761727

посоны, реально ли в ведре юзать svg для иконок? сервер хочет присылать, но чет я погуглил, svg походу только можно сконвертить в vector-drawable, которые завезли только в lollipop

Ответы>>761737>>761986

04 Июн, 23:18 #525 #761737

>>761727
>Сервер
>присылать svg-картинки
Вы там ебнулись? Нихуя у тебя работать не будет. Если это иконки действий то засунь из сразу в апк. И студиия сможет сконвертить их в png, сможешь ограниченно пользоваться ими почти как vector-drawable до лолипопа. Но смысл в том что она сгенерит фолбэк из пггшек при сборке, а никак не в рантайме.

04 Июн, 23:26 #526 #761745

>>761410
> Просто забей. Это анальная боль еще та, ведь то, что возвращается Environment.getExternalStorageDirectory() задается производителем девайса. Если он ленивый ублюдок и сделал еще внутренней памятью первый слот под флешку а второй доступен для пользователя, то тебе будет возвращаться именно первая внутренняя память.
Это нормальная ситуация. External Storage был картой памяти лет 5 назад, сейчас это всегда внутренняя память для свободного использования.

04 Июн, 23:29 #527 #761748

>>761621
> Разработка на Kotlin под Android тред №21
Охуенно. Там и сиди только.

05 Июн, 05:13 #528 #761934

>>761239
Продолжение истории.
Прошлый код хорошо пошел на моих устройствах, на устройстве первого друга выдал внутреннюю память, а еще у троих тупо вылетел и не стал запускаться.
Я взялся воплощать понятный моим мозгам способ:
http://stackoverflow.com/a/19831522
В результате, на моих оно по прежнему работает, у первого друга вылетает с ошибкой, а от второго ответа пока нет. Ошибка в последнем коде у первого друга совпадает с ошибкой в первом коде у остальных:
java.lang.NullPointerException: Attempt to get length of null array
http://pastebin.com/hAq7yuAm
Т.е, я получил Environment.getExternalStorageDirectory(), который был не null
Потом я получил его родителя rootFile, файл по которому существует и не является файлом. Однако rootFile.listFiles() возвращает null, потому что...
>Returns an array of files contained in the directory represented by this file. The result is null if this file is not a directory.
Значит rootFile не файл, не папка. Но что это, мать вашу, такое вообще? Как такое может быть?

Ответы>>761978

05 Июн, 08:23 #529 #761978

>>761934
> Environment.getExternalStorageDirectory().getParent();
Плохая идея.
> Но что это, мать вашу, такое вообще?
https://en.wikipedia.org/wiki/Inode

05 Июн, 09:11 #530 #761986

>>761727
> реально ли в ведре юзать svg для иконок
Реально, но лучше не надо.
compile com.caverock:androidsvg

05 Июн, 10:54 #531 #762030

Привет, андроиды.
Меня интересует вопрос, можно как-нибудь захватить изображения с телефона и передать на компьютер, без установки на компе IDE?
Что-то не гуглится ничего по этому поводу.

Ответы>>762033>>762034

05 Июн, 10:56 #532 #762033

>>762030
Сделать скриншот - обычно кнопка питания + кнопка громкости вниз.

05 Июн, 10:57 #533 #762034

>>762030
https://developer.android.com/studio/command-line/shell.html?hl=ru#screencap

Качаешь отдельно adb и делаешь.

05 Июн, 11:06 #534 #762040

>>750609 (OP)
ПЕРЕКАТ
https://2ch.hk/pr/res/762039.html (М)
https://2ch.hk/pr/res/762039.html (М)
https://2ch.hk/pr/res/762039.html (М)
https://2ch.hk/pr/res/762039.html (М)

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

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion