Сохранен 506
https://2ch.hk/pr/res/902606.html
Домены arhivach.top и arhivach.site временно не функционируют! Используйте домен ARHIVACH.XYZ.
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Android Development Thread 2.0.5

 Аноним 28/12/16 Срд 15:22:10 #1 №902606 
lib.png
Android Development Thread 2.0.5

> Хочу вкатиться в разработку под Android!
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.

> IDE и инструменты?
Android Studio — основной инструмент разработчика. Кроме неё потребуется Android SDK (устанавливается вместе со студией).

> Мануалы?
- Официальная документация: http://developer.android.com/
- Полезный гайд для начинающих и продвинутых: http://guides.thecodepath.com/android
- Бесплатный видеокурс от Google для новичков: https://www.udacity.com/course/android-development-for-beginners--ud837
- Два ресурса, единственный плюс которых — русский язык: http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?": http://stackoverflow.com/

> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.

> Есть что-то кроме нативных приложений?
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия.
- PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.

> Хочу писать игры!
LibGDX или Unity. Спрашивать в /gd/

> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. И хотя бы оно готовое приложение.

Предыдущий тред: https://2ch.hk/pr/res/885914.html
Аноним 28/12/16 Срд 15:40:48 #2 №902619 
SkChaP-5BBc.jpg
Как сделать едитТекст с кнопочками?
Аноним 28/12/16 Срд 15:57:11 #3 №902624 
>>902619
>Как сделать едитТекст с кнопочками?
Никак. Используй композицию.
Аноним 28/12/16 Срд 15:58:01 #4 №902625 
>>902624
Не знаю что это, как гуглить?
Аноним 28/12/16 Срд 16:01:08 #5 №902629 
nuyobanaonizuka.jpg
Господа, подскажите на каких эмуляторах/апи версиях тестировать приложение. Ну я понимаю что вообще вариаций девайс-апи тысячи, но кто реально пилит приложения, на каких вы проверяете перед тем как выложить в гуглплей?

Вообще, мне уже становится страшно от андроида, почти допилил погодное приложение с курса. Решил потестить на разных апи, насоздавал эмуляторов и пиздец. На одном апи какого-то хуя иконка отображается в активити, а в других нет, на моем девайсе share работает, на 23+ апи нет. На 11 апи elevetion у аппбара работает, хотя я явно в коде ее убрал, ну и т.д. Как это все чинить, хуй знает. Кучу костылей городить что ли.
Аноним 28/12/16 Срд 16:10:32 #6 №902636 
>>902629
Вот, это один из самых больших проебов Google, когда они на скорую руки лепили Android.

Надо было всю подсистему отрисовки вынести в библиотеки и оставить один голый OpenGL интерфейс.
Сейчас бы проблем с фрагметацией UI было на порядок меньше.

P.S. Рабочие примеры такого подхода есть:
Гугловский же движок Flutter для кросплат. приложений и тот же LibGDX с их библиотекой контролов.
Аноним 28/12/16 Срд 16:38:15 #7 №902648 
>>902625
Горизонтальный линейный макет в помощь.
Аноним 28/12/16 Срд 16:48:23 #8 №902652 
Призываются андроид-анончики, которые поопытнее и юзали такую либу, как витамио (для проигрывания видео почти любого формата, в частности, .m3u8). У нее проблема, если таргет сдк приложения 23 и выше, приложение при попадании на экран с плеером тупо крешится. Кто-то знает как эту проблему решить? Я не верю, что разработчики Витамио такие уебаны, что просто забили болт на это и кинули на произвол. Билдить в конце 2016 приложении с 22 таргет сдк это бредово ведь.
Так что вопрос - как получилось (если у кого-то получилось) запустить видео плеер витамио в приложении с таргетом >=23
Аноним 28/12/16 Срд 16:52:06 #9 №902655 
>>902619
Cделай RelativeLayout, в нем размести EditText и Buttons как тебе нужно.
Аноним 28/12/16 Срд 17:00:51 #10 №902659 
>>902652
ну же, неужто тут никто не пользовался Vitamio?
Аноним 28/12/16 Срд 17:22:07 #11 №902673 
>>902659
был какой то больной пару тредов назад, подозреваю, что это бы ты
Аноним 28/12/16 Срд 17:30:20 #12 №902678 
>>902673
хз о чем ты. Подобного вопроса не нашел. Так есть решение проблемы или нет?
Аноним 28/12/16 Срд 20:52:40 #13 №902748 
Есть ли способ запретить делать скрины, пока приложение работает?
Аноним 28/12/16 Срд 21:06:18 #14 №902760 
>>902748
>Есть ли способ запретить делать скрины, пока приложение работает?
activity.Window.AddFlags(WindowManagerFlags.Secure);

это Xamarin, но думаю разберешься
Аноним 28/12/16 Срд 22:48:39 #15 №902801 
Анон, я охуел. Оказывается, вкапи теперь не отдает музыку по запросу и я больше не могу синхронизировать свою коллекцию. Есть возможность как-то это обойти и сделать вк думать, что я с пеки, но на самом деле из приложения? Прошу прощения, если тупой вопрос и не к месту
Аноним 29/12/16 Чтв 11:34:06 #16 №902981 
Возможно ли при помощи Store.IO обеспечить хранение объектов одногл типа, но в разных таблицах?
Аноним 29/12/16 Чтв 12:50:04 #17 №903022 
>>902981
Конечно, ты при путе указываешь название таблицы.
Аноним 29/12/16 Чтв 13:12:02 #18 №903030 
>>902606 (OP)
Почему на ОП пике трап?
Аноним 29/12/16 Чтв 13:26:14 #19 №903040 
Поясните за ButterKnife. Начал им пользоваться, и стал ловить очень редкие NullPointerExecption на те вьюхи, которые он биндит через @BindView(R.id.view_id) View view;
При этом, если инициализировать их через него же, но используя View view = ButterKnife.findById(this, R.id.view_id); то все ок.
Я в чем-то накосячил или ButterKnife нестабильный? До инициализация ни одна вью не используется, все проверил.
Аноним 29/12/16 Чтв 13:34:06 #20 №903050 
>>903040
очень хорошая либа, сам ее юзаю уже полгода, не жалуюсь. По поводу твоей проблемы,
если ты работаешь в активити, то сразу после setContentView прописывай ButterKnife.bind(this);
если же ты во фрагменте, то сразу после View topLevelView = inflater.inflate(...); добавь
ButterKnife.bind(this, topLevelView);

и все будет ок.
Аноним 29/12/16 Чтв 13:44:38 #21 №903063 
>>903050
>ButterKnife.bind(this)
>ButterKnife.bind(this, topLevelView);
Так и сделал.
Еще в onDestroy фрагмента вызываю unbinder.unbind(); Может в этом дело?
Аноним 29/12/16 Чтв 15:58:34 #22 №903164 
На С/C++ возможно писать под Android?
Аноним 29/12/16 Чтв 16:22:15 #23 №903172 
>>903164
Можно, но зачастую нет необходимости.
Аноним 29/12/16 Чтв 16:35:56 #24 №903176 
>>903063
>Еще в onDestroy фрагмента вызываю unbinder.unbind(); Может в этом дело?

хз, никогда его не вызывал, даже впервые слышу, ну попробуй удалить)
Аноним 29/12/16 Чтв 16:49:04 #25 №903180 
>>903172
Я могу немного в плюсы есть пара идей для приложений. Не хочу тратить время еще и на изучение джавы.
Аноним 29/12/16 Чтв 16:51:09 #26 №903181 
>>903180
На плюсах ты ток байты ебать можешь. Что-то сложней становится сильно не эффективней.
Аноним 29/12/16 Чтв 16:55:27 #27 №903182 
>>903181
Ты так говоришь "беть байты" словно твоя мамка когда-либо жаловалась
Аноним 29/12/16 Чтв 16:56:02 #28 №903184 
>>903182
"ебать байты" *
Аноним 29/12/16 Чтв 18:10:35 #29 №903220 
>>903182
че?
Аноним 29/12/16 Чтв 20:51:06 #30 №903314 
>>903180
Изучить яву быстрее чем написать приложения для дроида под с++
Аноним 29/12/16 Чтв 21:00:34 #31 №903321 
>>903030
Потому что он не на хуе.
Аноним 29/12/16 Чтв 21:54:28 #32 №903333 
>юзать нож для масла
Шиггидигги?
Аноним 30/12/16 Птн 07:33:01 #33 №903430 
Прошу пояснить. Что лучше писать для работобыдлодателя:
- сервис для видео из дурова, с использованием их SDK и всяких YouTube VideoVie
- аудио сервис для soundcloud, полностью с ручным апи на ретрофите
Аноним 30/12/16 Птн 12:17:12 #34 №903513 
>>903430
2 однозначно. Ретрофит - единственная рассово верная на данный момент самая удобная и практичная технология для сетевых запросов. И если ты что-то сделаешь с ее использованием, то работодатель (шарящий) в любом случае будет таким доволен.
Аноним 30/12/16 Птн 16:35:10 #35 №903649 
Как лучше сделать асинхронную работу с локальной БД?

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

Вьюха начала подтормаживать когда я много значений начал в основном потоке заносить.
sageАноним 30/12/16 Птн 20:13:04 #36 №903803 
>>903513
> Ретрофит
> технология
Аноним 30/12/16 Птн 20:13:40 #37 №903804 
>>903649
StorIO
Аноним 30/12/16 Птн 20:22:44 #38 №903808 
>>903649
https://developer.android.com/reference/java/util/concurrent/CompletableFuture.html

+

Kotlin async/await
Аноним 30/12/16 Птн 21:20:34 #39 №903824 
>>903808
> Added in API level 24

Котлинодауны такие котлинодауны
Аноним 30/12/16 Птн 21:26:13 #40 №903828 
>>903824
Это всего лишь джава8.
Аноним 30/12/16 Птн 21:32:57 #41 №903831 
>>903824
Найс триггернулся, зачод
Аноним 30/12/16 Птн 21:49:11 #42 №903838 
>>903824

> Added in API level 24
Ну а в чем проблемы? Ты что до сих пор старье поддерживаешь?


Ну так держи вот на java 6:
https://github.com/streamsupport/streamsupport

Кстати советую, в паре проектов внедрил уже.
Аноним 30/12/16 Птн 22:23:24 #43 №903856 
>>903803
и? в данном случае понималось использование одного инструмента (определенное библиотеки), которая имеет преимущество перед другими
Аноним 31/12/16 Суб 00:14:34 #44 №903906 
>>903804
>>903808

Можно чо из стандартного?
У меня диплом (сторонние библиотеки лучше не юзать) + сам хотел бы на базовом уровне изучить.

Вот с лоадером так и не понял, стоит ли заморачиваться. Ибо в туториалах асинхи всеравно юзаются, а адаптер у меня и так Array (не на курсорах).
Мне чисто что бы асинхронно работало, но правильно.
Аноним 31/12/16 Суб 00:18:11 #45 №903909 
>>903906
+ API 16. Обратную поддержку вроде не нашел.
Аноним 31/12/16 Суб 00:19:12 #46 №903911 
>>903838
В анус себе внедри.

Кому он нужен, когда есть Rx?
Аноним 31/12/16 Суб 00:22:38 #47 №903913 
>>903906
> У меня диплом
Говно у тебя собачье, а не диплом.

Loader используешь для загрузки данных из БД. Сохраняешь в БД используя ContentResolver (для этого нужно написать свой ContentProvider). Для того, чтобы сохранение в БД выполнялось в другом потоке, используй AsyncTask.
Аноним 31/12/16 Суб 00:27:09 #48 №903915 
>>903913
Вернее, луче не AsyncTask, а AsyncQueryHandler.startInset()

https://developer.android.com/reference/android/content/AsyncQueryHandler.html
Аноним 31/12/16 Суб 00:59:41 #49 №903945 
>>903913
>Говно у тебя собачье, а не диплом.
БД - один из функционалов, а не проект, дурик.

За инфу спасибо
Аноним 31/12/16 Суб 01:52:21 #50 №903960 
>>903913
ох, хуёво стало от твоего поста
Аноним 31/12/16 Суб 04:14:57 #51 №903983 
>>903945
Причем тут БД, даун? Написать мобильное приложение — это не диплом, это хуйня.

>>903960
Ну а хули ты хотел, если никакие библиотеки не использовать? Представь, раньше так и писали. А некоторые и сейчас так же пишут.
sageАноним 31/12/16 Суб 09:29:43 #52 №904016 
>>903911
научись вежливо вести беседу, а пока иди нахуй
Аноним 31/12/16 Суб 11:16:52 #53 №904045 
rue5839cdcab6[1].jpg
>>903983

Молодец, единственное применении твоего диплома - похвалятся им на дваче.
Аноним 02/01/17 Пнд 16:29:55 #54 №904703 
Котаны, как хранить в Realm объекты одинаковых типов но в разных таблицах?
Есть 2 списка в которых содержатся одинаковые объекты, но списке совершенно разные по смыслу. Потому нужно хотябы по таблицам их разнести.
Аноним 02/01/17 Пнд 18:48:09 #55 №904752 
>>904703
1. Хранить в двух разных модулях
2. Создать два одинаковых класса
Аноним 02/01/17 Пнд 20:39:01 #56 №904797 
lynx-wallpaper-background-hd-16430-16949-hd-wallpapers.jpg
Котаны, кажись я нашел очень удобную ORM для небольших проектов: cupboard.
Всякого boilerplate кода очень мало.
Добавил туда еще нотификации об обновлении таблиц при помощи rx java.
Аноним 02/01/17 Пнд 21:11:34 #57 №904813 
В случае с RX Java и Observable в котором выполняется длительная операция, что будет если отписаться во во время выполнения и подписаться уже после выполнения?
Получу ли я результат или надо вызывать метод cache() у observable чтобы оно так работало?
Как тогда перезапустить запрос, если я использую cache()?
Аноним 02/01/17 Пнд 21:22:22 #58 №904817 
>>904813
Гугли cold и hot observables.
Аноним 02/01/17 Пнд 21:51:03 #59 №904830 
>>904817
Нихуя не понял.
Что-то более конкретное можешь сказать?
Аноним 02/01/17 Пнд 23:15:59 #60 №904867 
>>904813
>>904830
> что будет если отписаться во во время выполнения
Выполнение следующей команды в цепочке приостановится. Либо возможно даже отменится текущая команда, если она поддерживает отписывание, как например retrofit.
> подписаться уже после выполнения
Запустится заново. В этом и суть cold observable.
> надо вызывать метод cache()
Надо
> Как тогда перезапустить запрос
Создать новый obserable.
Аноним 02/01/17 Пнд 23:40:04 #61 №904873 
добрый вечер, господа знатоки. Я к вам с таким вопросом
Пишу что-то вроде игры, где геймплей реализован таким образом:
FrameLayout на два кастомных элемента: view стенок (генерируется и рисуется один раз) и подвижная view с перемещением игрока, все такое (перерисовывается регулярно). Все через onDraw и canvas
Проблема в том, что когда стен огромный лабиринт, перерисовка игрока начинает лагать: на 7 сообщений о перерисовке onDraw срабатывает единожды и получаем прыг-прыг-прыг, вместо плавного движения. Сделал слой стен невидимым - плавность вернулась.

Кто-нибудь может мне объяснить почему так происходит и что с этим делать?
Аноним 03/01/17 Втр 00:28:21 #62 №904897 
>>904873
Запости хотя бы свои методы onDraw.
Аноним 03/01/17 Втр 00:39:28 #63 №904902 
>>904897
https://gist.github.com/4c9a88c8228a3e4702d47cd2e2624d2f
https://gist.github.com/CC-Ultra/d32fe949ad9f7e8012825b5e6ef84f8f
Второй тут вряд ли нужен, а первый я упростил дальше некуда
Аноним 03/01/17 Втр 00:44:22 #64 №904903 
>>902606 (OP)
Заебала эта всратая шлюха на оппике, оп ебаный извращенец. Каждый раз противно заходить из-за этой хуйни на картинке, на какой помойке ты ее отрыл?
sageАноним 03/01/17 Втр 04:00:22 #65 №904942 
>>904903
Так не заходи, если противно. В этом и смысл.
Аноним 03/01/17 Втр 05:56:27 #66 №904961 
Сап, аноны. Прочитал первую главу книги Шилдта (полное руководство) и решил вкатиться в андроид. Чекнул вакансии на hh и чет приохуел. 194 вакансии в дс2, часть из которых это шарпеи с ксамарином, а другая часть ебанные курьеры, которым пишут в требованиях андроид смартфон для gps. Реально ли вообще вкатиться во всю эту шнягу совсем без опыта в разработке офк перед этим написав приложеньку и выложить ее в гугл плей?
Аноним 03/01/17 Втр 06:05:49 #67 №904962 
>>904961
Мобильная разработка стремительно умирает, на её место приходит вездесущий веб и html5. Всё больше приложений пишут на ReactNative и подобных. Загугли вакансии на JavaScript и сам увидишь разницу.
Java EE уже давно издохла. Андроид еще жив, но это временно. Те, кто уже вкатились, будут поддерживать старые, как говно мамонта, системы и приложения. Так что, начинать учить Java сейчас — плохая идея.
Будущее за вебом, учи JavaScript.
Аноним 03/01/17 Втр 06:08:15 #68 №904963 
>>904962
ой блять. лет 10 уже это будующее за вебом.
Аноним 03/01/17 Втр 06:09:44 #69 №904964 
Как научиться делать игры для андроид? Заканчиваю девятый класс, хорошо знаю c++ и немного java. Собираюсь после окончания стать работать фрилансером.
Аноним 03/01/17 Втр 06:19:46 #70 №904965 
>>904962
Java EE сдохла потому что это такой же монстр, как с++, но с синтаксисом ябы, а еще потому что ей на смену пришли спринг и хибернейт. И на чем же ту бедешь реализовывать бекенд банков? На жс, или мб возьмешь еще что-нибудь поновее, аля Д или Го? Жаба используется в тырпрайзе потому что штабильность, именно это и нужно большим организациям.
Аноним 03/01/17 Втр 06:24:30 #71 №904966 
>>904965
> Жаба используется в тырпрайзе потому что штабильность
Так я об этом и написал ведь:
> Те, кто уже вкатились, будут поддерживать старые, как говно мамонта, системы и приложения
Если тебе такое по вкусу, то кушай на здоровье, такого у нас много. У некоторых банков до сих пор софт на Коболе. #стабильность же.

Аноним 03/01/17 Втр 06:45:14 #72 №904968 
>>904962
Веб потихоньку насиловал десктоп, андроид его добил.
Веб не убьет смартфоны, пока те поддерживаются яблоком, гуглом и прости господи майкрософтом или им на смену не придет, что-то хайповое а в ближайшее время ничего и не придет, ибо что нужно человеку, кроме компьютера под рукой? Реализовывать еще один вид смартфона где система будет чисто броузер - дерьмо, потому что найух мне не нужен обрезанный дроид.
И люди не будут ждать загрузку сайта + загрузку тысячи фреймворков жабыскрипта для одной херни каждый раз, когда им что-то нужно будет. Ибо вся эта жопа будет грузится пиздец медленно, достаточно посмотреть на уже существующие "интерактивные" сайтики. А грузится они будут медленно, потому что большинство юзверей не покупают новый смартфон каждый месяц и ходят, как раз таки, с железом мамонта, на котором эти интерактивные сайтики открываются по 30 минут. Достаточно зайти в андроид студио и посмотреть сколько юзверей используют старый дроид: 4.0.4 примерно 70%, 5.0 примерно 40%. Что уж говорить об 6 и 7 версии. И проблема не в том, что юзвери не хотят обновляться, проблема в том, что производители дропаю поддержку чуть ли ни в день появления девайся на полках магазина. А еще, если ты хочешь, что бы сайтики с 1000 фреймворками у тебя открывались быстро, то изволь платить по 600 бачей в год на новый смартфон, окей, возьмем два раза в год, 300 бачей в год. А теперь смотри. Есть дядя Ваня из зажопинска и у ниго смартфон он какого-нибудь мегафона за 1990, приложение у него открывается моментально, в сравнении с "интерактивным" сайтиком. Предположим он захотел воспользоваться сервисом для заказа такси. Вопрос, будет ли он ждать 10 минут для показа сайтика, который еще и ебанные странички подгружает должен, или заюзает нативное приложение, где он все это уже сделает, пока будет грузиться мейн пейдж сайта. И соль в том, что таких дядь Вань по миру дохуя и больше и это понимают все, кроме веб макак, которые кудахчат что за вебом будущее.
Да и взяв ваш петушный веб. Еще далеко не большинство сайтов пооддерживают хтмл5, о котором вы так кудахчите. И единственный толчок для того, что бы изменить это недавно сделаль гоголь, удалив поддержку флеша. И проблема в том, что это опять коснеться пользователей, ибо как-так у владельца нет дохуя бабосов на то что бы нанять веб-макаку и все это дерьмо переписать, а после еще и обслуживать.
В общем, заебали вы, веб-макаки петушиные
И нет, стул не сгорел
Аноним 03/01/17 Втр 06:49:30 #73 №904969 
2017-01-0304-48-16.png
>>904968
>4.0.4 примерно 70%, 5.0 примерно 40%
https://developer.android.com/about/dashboards/index.html
Аноним 03/01/17 Втр 06:50:47 #74 №904970 
>>904969
инфу брал из вчерашнего скаченнго андроид студио + обращаю внимания проходя по магазинам типа мегафона, м видео и прочего бреда.
Аноним 03/01/17 Втр 06:54:22 #75 №904971 
>>904970
> ВРЁТИ
Аноним 03/01/17 Втр 07:40:17 #76 №904973 
>>904970
У тебя фейл уже здесь:
70+40=110%
Уж если в таких вещах нескладуха, то текст явно высер самого дешевого бредогенератора, без какой-либо проверки связности.
Аноним 03/01/17 Втр 08:01:28 #77 №904979 
>>904965
>>904966
Реальность такова, что пока альтернативы жабе нету.

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

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

Всякие фреймворки и производные языки даже в расчет не идут - это просто надстройки над жабой. Тут уж на цвет и вкус...
Аноним 03/01/17 Втр 10:21:47 #78 №905000 
>>902652
Проблема из-за text relocations, которое запретили использовать на таргет сдк 23 и выше. Подозреваю, что эта штука использует ффмпег, а там они присутствуют в х86, на армах такого нет. Либо бросай х86, либо собирай ффмпег без textrel. Чтобы это сделать, достаточно отключить использование асма для х86, но производительность упадёт.
Аноним 03/01/17 Втр 10:23:10 #79 №905001 
>>904961
А тебе надо 1к вакансий, йоба? В тырпрайзе больше, да - только хуй ты в него вкатишься, туда и кандидатов толпы и требования выше.

>>904962
Я эту мантру от js-петухов уже лет 5 слышу. На практике, твои ТЫСЯЧИ ВАКАНСИЙ - параша от вебстудий с тонной нативного говнокода за еду.
Как только вводишь ваши реакты - даже в дсах вакансий уже по пальцам пересчитать.
Аноним 03/01/17 Втр 10:43:44 #80 №905005 
>>904902
> Paint paint= new Paint();
Тебе блять даже студия уже подсвечивает.
А по делу хуй знает, вроде ничего такого лагающего нет. Через Method Tracer посмотри.
Аноним 03/01/17 Втр 10:45:17 #81 №905006 
>>904979
> Но решетки - это кастрированная жаба
Что я читаю?
Аноним 03/01/17 Втр 10:46:53 #82 №905008 
>>905006
Ну, в этом он прав, хотя остальное им написанное — хуйня.
Микрософт пытается перевести ынтырпрайз себе в анальное рабство.
Аноним 03/01/17 Втр 11:05:33 #83 №905010 
>>904867
Ага! Во, спасибо! Пойду попробую.
Аноним 03/01/17 Втр 13:29:09 #84 №905075 
>>904942
Ну так сам тред годный
Аноним 03/01/17 Втр 13:59:44 #85 №905093 
Крч, аноны. Такая трабла. Нужно организовать связь устройства с компом по вайфаю. То есть с телефона набираю текст, нажимаю кнопку - на компе в окошке этот текст принимается и показывается. Как это вообще делать? Где рыть инфу?
Аноним 03/01/17 Втр 14:23:11 #86 №905109 
>>905093
Завтра же читаешь книгу Dive into Govnishe. (не Го)
Тут зависит от того насколько сложной должна быть программа на компе. Ну и насколько ты хочешь заебаться. Я бы поднял на компе сервак и к нему бы по http стучался в локалке. А дальше простой http.
Аноним 03/01/17 Втр 15:56:13 #87 №905157 
>>905109
А подробнее о том как поднять сервак и научить тел находить именно его по локалке?
Аноним 03/01/17 Втр 16:26:28 #88 №905175 
>>905157
http://www.javaportal.ru/java/articles/ClientServer.html

Теперь вопрос к анончикам - как научить клиента автоматом находить сервер?
Аноним 03/01/17 Втр 16:42:49 #89 №905190 
>>905175
Делаешь сканилку локальной сети:
http://stackoverflow.com/questions/3345857/how-to-get-a-list-of-ip-connected-in-same-network-subnet-using-java

Дальше по нажатию на конкретный айпишник пытаешься с ним связаться, а дальше твоя фантазия. Я бы не рекомендовал делать все на голых сокетах.
Аноним 03/01/17 Втр 17:59:17 #90 №905255 
>>905250
Репостну сюда свой нубовысер, может Xamarin-бояре пояснят.
Аноним 03/01/17 Втр 18:43:39 #91 №905299 
>>905255
Здесь на Xamarinне пишут.
Аноним 03/01/17 Втр 18:53:05 #92 №905312 
>>905299
А чо в шапке про него указано?
Аноним 03/01/17 Втр 19:02:57 #93 №905319 
>>905312
Там и фонгап указан.
Аноним 03/01/17 Втр 20:52:39 #94 №905388 
аноны, подскажите, в программирование под андройд там нечего не меняется? джава? или вместо джавы что то другое уже на подходе?
Аноним 03/01/17 Втр 21:50:58 #95 №905464 
>>905388
Ничего не меняется.
Аноним 04/01/17 Срд 00:08:10 #96 №905507 
>>905388

--> >>904962
Аноним 04/01/17 Срд 14:00:30 #97 №905733 
Тут многие дрочат на ретрофит. Как вы осуществляете обновление токенов - пилите ручками внутри репозитория? Используете okhhtp интерсептор, каа пишут в гайдах? При втором варианте хуета получается: в shared preferences за токеном лезем хер пойми откуда.
Аноним 04/01/17 Срд 14:24:01 #98 №905748 
>>905733
Я CookieStore использую.
Аноним 04/01/17 Срд 14:25:26 #99 №905751 
>>905733
В смысле обновление? У тебя токен экспайрится? Я к сожалению не работал с экспаришимися токенами на беке, но так-то в интерсепторе лезу в шэред преференсы.
Насчет экспайред токена мне кажется такое решение норм:
На Observable/Single <Response<?>> возвращаемые фабрикой вешать flatMap, который в случае ошибки просроченого токена делал обновление и ретраился, или если не вышло то фейлился бы.
Аноним 04/01/17 Срд 14:52:58 #100 №905772 
>>905751
>У тебя токен экспайрится?
Да. Я немного не то написал, имелось ввиду скорее вот такое https://github.com/square/okhttp/wiki/Recipes#handling-authentication
, а не интерсептор.
Ну спасибо, с ручным флатмапом тоже были мысли.
Аноним 04/01/17 Срд 15:34:48 #101 №905800 
>>905772
Не обязательно ручной, просто кастомную CallAdapterFactory пихай при создании инстанса ретрофита.
Аноним 04/01/17 Срд 16:34:37 #102 №905825 
Дайте годный новичковый тутор по Retrofit
Аноним 04/01/17 Срд 18:05:09 #103 №905884 
>>905825
За щекой же лежит, ну!
https://guides.codepath.com/android/Consuming-APIs-with-Retrofit
Аноним 04/01/17 Срд 18:42:58 #104 №905920 
Аноны, что делать с ситуацией на фрилансе разработчику теплых и ламповых нативных приложений? Сейчас есть растущий тренд середи заказчиков на поиск исполнителей которые сделают им версию сразу под обе платформы, на каком-то гибридном фреймворке. Уже сейчас большая часть заказов на биржах требуют android + ios. Так вот помимо того что на нативщиков спрос падает, так среди них еще и конкуренция выше, потому что те идут кодить в мобайл, они прежде всего зубрят натив, из-за того что все вокруг говорят, что Android это java, а ios objc. Ситуация хренова еще и потому, что в нормальных компаниях нужен только натив, а на фрилансе похоже скоро нужен будет только гибрид. И тут ситуация, либо ты сосешь за лапу на фрилансе, либо лишаешься возможности вырасти из kodemonkey и устроиться в хорошую компанию. Собственно, сабж.
Аноним 04/01/17 Срд 19:07:39 #105 №905946 
>>905884
Ещё надо бы.
Аноним 04/01/17 Срд 19:09:42 #106 №905951 
>>905920
Так выбирай стул.
Аноним 04/01/17 Срд 19:38:57 #107 №905970 
>>905920
Я НЕ вижу проблем.
1) Говноксамарин, или реакт натив можно выучить за пару дней.
2) Если заказ не тривиальный - натива коснешься. Лично я не представляю, как можно писать на всем этом совершенно не зная натива.
3) На собесе можно пиздеть, что писал на нативе

Чем лучше компания/интереснее проект - тем больше вероятность, что все на нативе, и это везде. Так что с ростом ты либо перейдешь на натив, либо устроишься в пейсбук
Аноним 04/01/17 Срд 22:40:14 #108 №906140 
>>905920
Вот я на 4pda написал пост и 2 закпзчика нашли меня. Оба native.
Аноним 05/01/17 Чтв 01:03:36 #109 №906222 
Аноны, вот я написал игрулю на джаве. Как её импортировать на андроид?
Аноним 05/01/17 Чтв 01:26:24 #110 №906239 
>>906222
Переписать на андроид.
Аноним 05/01/17 Чтв 03:47:38 #111 №906273 
Аноны, нужен совет по архитектуре. Переезжаю на Clean Architecture примено по этому шаблону https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029
Но все примеры какие-то примитивные, не завалялось ли применения СА на реальном, достаточно сложном, проекте?
Заранее
Аноним 05/01/17 Чтв 10:04:28 #112 №906315 
>>906222
Переписывай на LibGDX
В /gd/ есть тред про него
Аноним 05/01/17 Чтв 18:11:49 #113 №906549 
>>906239
>>906315
Что значит переписывай? Там вроде то же язык используется? Зачем вообще нужен гдх?
Аноним 05/01/17 Чтв 18:55:01 #114 №906583 
>>906549
Что ты использовал для отрисовки на десктопе?
Аноним 05/01/17 Чтв 18:59:18 #115 №906585 
>>905920
>Не native
Вдруг понадобилось Drive API и тут ПЕРМИШЕНЫ, АККАУНТ ПИКЕРЫ, ПЕРМИШЕНЫ ГУГЛОДРАЙВА, ЭКСЕПШЕНЫ, ОЯЕБУ.
Аноним 05/01/17 Чтв 19:31:38 #116 №906599 
>>906583
Стандартную swing библиотеку. Кнопки, лейблы и форму.
Аноним 05/01/17 Чтв 19:36:23 #117 №906602 
>>906599
Перепиливай весь свинг. Логику оставь если юзал MVC. Если нет - то съеби
Аноним 05/01/17 Чтв 20:03:05 #118 №906617 
>>906599
> игра на swing
Это как? На формочке кнопки двигаешь?
Аноним 05/01/17 Чтв 21:51:54 #119 №906737 
>>906617
Крестики-нолики
Аноним 05/01/17 Чтв 22:17:55 #120 №906776 
>>906599
На андроиде этих классов нет.
Аноним 05/01/17 Чтв 23:12:50 #121 №906827 
>>906549
>Что значит переписывай? Там вроде то же язык используется?
Там нет свинга и вообще свое уникальное API для рисования.

>Зачем вообще нужен гдх?
Это кросплатформенная надстройка над OpenGL с удобными Java классами.
На нем можно легко делать 2D игрули типа "Марио" в принципе и 3D

Там даже есть базовый набор виджетов (кнопки, текстовые поля, списки и тд).
Можешь портануть на него свой Swing код.
Аноним 06/01/17 Птн 01:16:58 #122 №906915 
>>906827
Все, понял. Та же Джава но со своими библиотеками. Окей, пойду разбираться.
Аноним 06/01/17 Птн 11:11:14 #123 №907026 
>>906273
Все тоже самое.
Аноним 06/01/17 Птн 18:27:50 #124 №907220 
>>905000
благодарю
Аноним 06/01/17 Птн 18:35:04 #125 №907224 
>>905000
>Чтобы это сделать, достаточно отключить использование асма для х86
а можешь написать, как это сделать?
Аноним 06/01/17 Птн 19:22:06 #126 №907241 
>>907224
Флаг --disable-asm.
Аноним 07/01/17 Суб 00:06:09 #127 №907425 
>>907241
это в gradle файле проекта?

Ты не подумай, что я нуб какой-то, но подобного вообще не делал просто. Напиши, пожалуйста, поточнее, где и как этот флаг выставить.
Аноним 07/01/17 Суб 00:10:15 #128 №907428 
>>907425
Ааааа.
Надо скачать исходники ффмпега (желательно той же версии, что и в библиотеке), зайти в папку, в консольке ./confugure с нужными ключами (поищи, какие ключи нужны чтобы собрать под андроид с нужной архитектурой), make.
Разумеется, всё это надо делать под линуксами с установленным NDK. А можешь даже поискать репозиторий библиотеки, там наверняка готовые скрипты сборки лежат.
Аноним 07/01/17 Суб 16:56:54 #129 №907666 
Аноны, как называется переключение вида в каталоге? Например со списка на плитку? Не знаю, по какому запросу гуглить реализацию подобного
Аноним 07/01/17 Суб 17:02:18 #130 №907668 
>>907666
Сфоткай, я тебя вообще не понял. Возможно ты имеешь в виду что-то типа перехода с circle reveal, из RecyclerView в другой фрагмент.
Аноним 07/01/17 Суб 18:58:44 #131 №907740 
Screenshot1483804443.jpg
Screenshot1483804448.jpg
>>907668
Имел ввиду как здесь.
Аноним 07/01/17 Суб 19:00:53 #132 №907742 
Здраститя, зашел в /pr и припустил жиденького. В общем, есть желание создать тему на ведроид, но я нихера не знаю как это сделать в программном плане. Если нарисовать иконки и прочее еще возможно, то перед прикручиванием этого к ведру испытываю первобытный ужас. Был в /mobi, но там послали сюда. Подскажите как это сделать или наоборот, отбейте эти глупые мысли нахуй, чтоб ноги моей больше в /pr не было
Аноним 07/01/17 Суб 19:05:34 #133 №907743 
>>907740
Этого можно достичь простой сменой LayouManager'а для RecyclerView. На первой - LinearLayoutManager, на второй - GridLayoutManager со спаном 3.
Аноним 07/01/17 Суб 19:24:32 #134 №907752 
>>907742
пили объявление по типу: "Ищу программиста, работа за идею и будущий процент(нет). С меня иконка с тебя реализация".
А если серьезно, то ты вообще ничего не сказал. Что тебе подсказать? как хеллоу ворлд написать? как адаптер запилить? Мы тут конкретные вопросы рассматриваем, а не абстракции в виде идей.
Если в падлу со всем этим говном разбираться, то вытряси с мамки денег 50-100к(может и больше яж не ебу че там за идея) и найми анона. А если не впадлу, то начинай делать и вбрасывай сюда свои вопросы, которые не гуглятся
Аноним 07/01/17 Суб 19:47:46 #135 №907770 
>>907752
То есть ты говоришь, что это какой то серьезный процесс? Я конечно отрицать не стану, ибо в программировании не смыслю нихуя.
Хотя читал, что создание темы (может эта хуета как то по-особому называется, я не знаю) не так уж и трудоемко. Мол, иконки на свои поменял и все. Но вот я даже не могу понять, как это сделать. Где взять... ну как их... "исходники" что ли? Как вот это вообще делать я неебу в душе. Я не собирался что то неебись амбициозное делать, просто тему небольшую. И все
Аноним 07/01/17 Суб 20:02:43 #136 №907784 
>>907743
Окей, а если айтемы будут отличаться количеством содержащейся информации, например в варианте списка есть название, в варианте сетке его нет. Как это адекватно обработать в адаптере?
Аноним 07/01/17 Суб 20:05:53 #137 №907787 
>>907770
Тебе надо что-то типа такой хуйни: http://www.androidcentral.com/best-android-launchers
?
Аноним 07/01/17 Суб 20:07:15 #138 №907788 
>>907784
Сделать разные адаптеры, или сменить холдеры создаваемые адаптером. То есть по изменению кроме менеджера менять фабрику холдеров для адаптера или сам адаптер.
Аноним 07/01/17 Суб 20:15:03 #139 №907791 
>>907787
Лаунчер? Хмм, эта хуета типо фоном открыта и ты через нее пользуешься телефоном, но если её закрыть, все оформление вернется, так?
Аноним 07/01/17 Суб 20:41:23 #140 №907824 
>>907787
>>907791
А я судя по всему понял, что ему нужно. Темы же пилятся под определенный лаунчер / оболочку. И поставляются в виде apk без активити, только контент провайдер с ресурсами, которые цепляет лаунчер.
Но как их делать нужно смотреть конкретно по каждом отдельно.
Так что хуй знает, нестандартная задача, тут только формошлепы и их сорта.
Аноним 07/01/17 Суб 22:18:52 #141 №907904 
>>907788
> фабрику холдеров для адаптера
Энтерпрайзоблядь не палится.
Аноним 07/01/17 Суб 23:20:22 #142 №907938 
>>907904
Ну а хули, у меня один адаптер на все, а там уже фабрика на основе viewType решает какой холдер создать, по мне так удобно.
Аноним 07/01/17 Суб 23:22:56 #143 №907940 
>>907791
Нет, она работает всегда когда юзер на рабочем столе, и вот она ебется с твоей темой.
Аноним 07/01/17 Суб 23:24:20 #144 №907942 
>>907938
https://bitbucket.org/derekwilson/recommender-android/src/bd122790762c3e56851eb2d2d4f55ea8eb0b91c4/RecommenderAndroidStudio/app/src/main/java/net/derekwilson/recommender/?at=master
Аноним 07/01/17 Суб 23:28:27 #145 №907944 
>>907942
Я до такой жести не дошел.
Аноним 08/01/17 Вск 09:33:15 #146 №908103 
>>907938
Напомни, как в адаптер передать viewType?
Аноним 08/01/17 Вск 13:21:05 #147 №908175 
>>908103
Ты переопредляешь метод в адаптере getItemViewType(int position), там я делаю примерно такое в псевдокоде:
dataList[position].getItemViewType(holderFactory)
holderFactory - интерфейс описывающий паттерн Visitor, то есть внутри всех элементов в dataList есть метод getItemViewType, который получает holderFactory, а на деле просто делает holderFactory.getViewType(this)
Так восстанавливается знание о конкретном классе. Там я обычно отдаю R.layout.item_*
Уже на основе этого значения я с помошью holderFactory в onCreateViewHolder создаю холдер нужный холдер:
view = layoutInflater.inflate(viewType, parent, false);
return holderFactory.createHolder(viewType, view);
Аноним 08/01/17 Вск 14:06:32 #148 №908198 
>>908175
Ебать говнокод
Аноним 08/01/17 Вск 15:04:47 #149 №908232 
>>908198
Это специальное изврщаение что бы избавится от кастов по максимуму.
Аноним 08/01/17 Вск 15:11:38 #150 №908234 
>>908175
В каких случаях стоит юзать разные вьюхолдеры и через viewtype их дрюкать?
Аноним 08/01/17 Вск 15:13:24 #151 №908235 
>>908234
В смысле в каких? Когда тебе надо тогда и используй. Для меня viewType это по сути указание какой класс наследующий от ViewHolder использовать.
Аноним 10/01/17 Втр 16:40:11 #152 №909370 
Возможно ли реализовать в GridView динамическое количество колонок для конкретного ряда? Ну например в первом ряду у нас три элемента, во втором два , в третьем пять и так далее. Пока не могу найти похожих примеров, некоторые советуют использовать GridLayout или TableLayout, но они не поддерживаются адаптерами. В идеале мне нужен аналог ios-овского UICollectionView, там можно было настроить количество строк и количество элементов для конкретной строки.
Аноним 10/01/17 Втр 16:45:27 #153 №909372 
>>909370
RecyclerView, GridLayoutManager, SpanSizeLookup
Аноним 10/01/17 Втр 17:16:01 #154 №909381 
>>909372
Благодарю.
Аноним 10/01/17 Втр 18:26:25 #155 №909400 
>>909372
А есть ли возможность динамически задать количество колонок для GridLayoutManager? Я просто не знаю наперед сколько у меня колонок будет, все в динамике. Тут получается что количество колонок можно задать только при создании менеджера?
Аноним 10/01/17 Втр 21:17:14 #156 №909484 
>>909400
SpanSizeLookup работает прямо во время биндинга.
Аноним 10/01/17 Втр 23:49:55 #157 №909566 
>>909400
LayoutManager в RecyclerView можно менять динамически.
Аноним 11/01/17 Срд 01:17:39 #158 №909586 
Как лучше хранить session id? Стоит ли запрашивать новый request token при каждой попытке логина? Если пользователь выходит из аккаунта, а потом входит в него, нормальная ли практика подсунуть ему айди прошлой сессии или обязательно создавать новое?
Аноним 11/01/17 Срд 08:25:05 #159 №909655 
>>909484
>>909566
Если не сложно, можете пояснить как решить такую проблему. У меня есть массив structure, который хранит объекты типа Section, секция в свою очередь имеет массив elements. В адаптере recyclerView я в методе getItemCount возвращаю количество секций. Потом при помощи mLayoutManager.setSpanSizeLookup в методе getSpanSize я возвращаю количество элементов, layoutManager инициализирован с количеством колонок - 2, ориентация вертикальная. У меня например на данный момент в первой секции один элемент, во второй - 1, в третьей - 2. Я ожидал что вид будет такой:
<element1> // 1 секция
<element1> // 2 cекция
<element1><element2> // 3 cекция

я же получаю вот такой вид:
<element1>// 1 секция <element1> // 2 секция
<element1> // 3 cекция
<element2> // 3 секция

Что я делаю не так?
Аноним 11/01/17 Срд 08:57:21 #160 №909661 
Посоны, пытаюсь разобраться с android. С кодом более-менее понятно, но, блядь, верстка интерфейса это что-то с чем-то. Как принято верстать у труъ-разработчиков? Я наткнулся на какой-то курс, там дядька советовал пользоваться только constraint layout, но он какой-то странный, всё разъезжается, кнопки на разном уровне, несмотря на то, что у одной привязка к baseline другой. Охуеть просто.
Аноним 11/01/17 Срд 10:15:47 #161 №909693 
>>909661
Начни с простого LinearLayout, разберись с ним, что там как, какие поля что делают, потом переходи на RelativeLayout, он посложнее. Потом гугли android layout best practices, почитай что советуют, но учти что единого мнения по этому поводу не будет, то есть никто тебе не скажет что "вот так вот правильно и никак иначе". Я обычно придерживаюсь определенных критериев, например layout не должен быть сильно загружен, не делать овер дохуя вложенностей, и стараюсь организовать его так, чтобы изменить что-либо можно быстро и без боли и унижения. Потом втянешься и у тебя тоже сформируются собственные практики. Алсо, гугли использование тем, стилей, по этому поводу можешь глянуть советы от futurice, так и гугли "futurice best practices".
Аноним 11/01/17 Срд 10:23:19 #162 №909698 
>>909693
А как удобней и лучше делать, рисовать в рисовалке, или в xml? Или, может, лучше в коде всё делать?
Аноним 11/01/17 Срд 10:25:14 #163 №909701 
>>909698
Кому как, вопрос удобства индивидуален, мне удобно в коде, моему напарнику было удобно в рисовалке.
Аноним 11/01/17 Срд 11:19:04 #164 №909724 
>>909586
Если он выходит из аккаунта, ты должен удалить все credentials.
Аноним 11/01/17 Срд 11:19:16 #165 №909725 
>>909661
В каждом случае свое, нужно помнить что на глаз ты скорость отрисовки не определишь, constraint крутой, но все еще бета и я видел неприятные сравнения производительности для него. Я привык текстом в xml хуярить, а рисовалку только ради preview + в constraint она работает с некоторыми багами и неприятными особенностями.
Аноним 11/01/17 Срд 12:14:12 #166 №909752 
Оправдывайтесь https://2ch.hk/pr/res/909309.html
Аноним 11/01/17 Срд 12:56:41 #167 №909771 
Есть либа для просмотра изображений внутри приложения? Простенькая, чтобы кликнуть по пикче и она открылась в фулскрин с кнопкой назад. Или может этого можно достичь используя пикассо?
Аноним 11/01/17 Срд 13:05:37 #168 №909776 
>>909752
Перед формошлепами? Нахуя?
Аноним 11/01/17 Срд 13:39:36 #169 №909794 
layout.png
>>909725
А баги часто встречаются? Я вот не могу понять, это я что-то не то делаю, или что? Пытаюсь сверстать что-то типа пикрилейтед. Пунктирный прямоугольник - вложенный constraintlayout, выставляю связи всех элементов и родительского контейнера, и всё пидорасит нахуй. На блюпринте кнопки снизу выезжают за пределы своего лайаута и наезжают на текствьюшки. А на предпросмотре вообще белый экран, блеать. Я уже и студию перезапускал, и удалял всё нахуй, заново создавал, один хуй. То ли баг такой устойчивый, то ли я что-то в корне неверно делаю.
Аноним 11/01/17 Срд 13:48:49 #170 №909798 
Вот уж не ожидал что RecyclerView окажется таким задроченным.
Аноним 11/01/17 Срд 13:54:39 #171 №909801 
>>909794
Я давно собираюсь начать юзать что-то современное, но в итоге всякие простые разметки делаю на linear layout и framelayout.
Реже беру relative.


Мимо другой анон.
Аноним 11/01/17 Срд 14:07:09 #172 №909805 
>>909794
Не знаю с чем связано, старайся использовать гайдлайны, я знаю два больших бага, которые лично мне мешают:
1) Постоянно как только потрогаешь мышкой блюпринт берет и заменяет @dimen/xyipizda на значение не менее 1dp;
2) Иногда уезжает за экран бесконечно, просто игнорю и сразу закрываю превью когда вижу что все ок;

И да, не надо вложенных констрейнтов, это очень бессмысленно. Так как на каждый лэйаут родителя констрейнт будет делать свой, а он довольно долгий. Попробуй PercentRelativeLayout, работает стабильно и просто.
Аноним 11/01/17 Срд 14:12:29 #173 №909806 
>>909805
>>909801
>>909725
>>909701
>>909693
Спасибо за советы, няши. В общим, с этим constraint ещё разбираться и разбираться, пока что по-проще поковыряю.
Аноним 11/01/17 Срд 14:52:37 #174 №909818 
JL8HsmWA0cc.jpg
Аноним 11/01/17 Срд 18:29:55 #175 №909926 
Вкатывальщику на каком уровне надо "знание популярных библиотек типа Retrofit + Glide/Picasso"? И ещё вопрос про Content provider. Жашквар вместо него юзать опенсурсные либы? Тоже касается геолокации.
Аноним 11/01/17 Срд 19:12:38 #176 №909949 
>>909926
Нативные методы работы с изображениями хуевые, поэтому разберись с ними, и переходи на глайд/пикассо.
Кастомную либу для сетевых запросов в итоге все равно придется юзать, так что разберись с нативными методами и переходи на ретрофит. Говорят, что он работает в ~5 раз быстрее
Аноним 11/01/17 Срд 19:38:28 #177 №909963 
>>909949
На собесе это палить будут? С провайдером и локации та же дичь? Ибо она как то перемудрено там.
Аноним 11/01/17 Срд 19:47:27 #178 №909968 
>>909963
upd: Вообще очень боюсь себеседавания. А жрать то хочеться. Как бы дома кодить поглядывая в гугол нормально получаеться. Но что на собеседываниях бывает - я хз. Вкратце теориию прояснить могу, всякие стороние вещи(алгоритмы, паттерны, прочая вузовская программа), а вот практики во время собеседывания боюсь. Часто тестовое задание на дом дают?
Аноним 11/01/17 Срд 20:03:26 #179 №909983 
>>909968
ну вообще, обычно дают тестовое домой, а потом на собеседование приглашают, если успешно сделаешь. На хардовом собесе не был, так что что-то конкретное не скажу. Меня лайтово пособеседовали, HR общие вопросы про клиент-сервер, пуши и прочее поспрашивал, вообще без конкретики.
Типо можешь сделать это, я такой: Могу.
Он:красавчик.
И открою тебе тайну, все с гуглом кодят, потому что в тз иной раз такая ебень.
Да и вообще не ссы, 10 раз нахуй пошлют, на 11ый возьмут
Аноним 11/01/17 Срд 20:17:30 #180 №909995 
>>909983
В мухосрансках, как правило, количество работодателей ощутимо меньше 10.
Аноним 11/01/17 Срд 20:35:42 #181 №910007 
>>909995
Киев. Вакансий хватает
Аноним 11/01/17 Срд 20:37:44 #182 №910009 
>>909983
А что про клиент-сервер спрашивают. Ибо кроме Ретрофита, Сокетов и базовых принципов с пар сетей я особо не знаю что надо.
Аноним 11/01/17 Срд 20:45:19 #183 №910012 
>>910007
Ну так столица же, какой же это мухосранск?
Аноним 11/01/17 Срд 20:56:12 #184 №910018 
>>910012
Это разные аноны
Аноним 11/01/17 Срд 23:13:02 #185 №910089 
Так, content resolver нужен? Или можно юазть вместо него какие то либы?
Аноним 11/01/17 Срд 23:13:26 #186 №910090 
>>910089
provider*
Аноним 12/01/17 Чтв 02:22:38 #187 №910173 
>>910089
StorIO может с ним работать, но мне кажется, ты не понимаешь зачем нужен content provider
Аноним 12/01/17 Чтв 02:26:58 #188 №910176 
Как правильно сделать так, чтобы при установке приложухе из Google Play с GET параметром ?referrer=.... приложуха получала событие и при первом открытии делала нужное нам действие, например пересылала на нужный "экран". Проблема именно с получением события. Есть ли вразумительный и рабочий пример? Обрывки информации со Стака не помогли. Нужно не мне, а соседу программисту, я бекендом занимаюсь и не ебу в ваши Ресиверы и Интенты.
Аноним 12/01/17 Чтв 07:11:15 #189 №910251 
>>910176
Ну так пусть он и разбирается, ты то че лезешь. Там обычный бродкаст ресивер отрабатывает при первом запуске.
Аноним 12/01/17 Чтв 07:58:33 #190 №910276 
>>910251
А чо за интент посылается при первом запуске?
Аноним 12/01/17 Чтв 08:16:05 #191 №910282 
>>910276
VENDING.что-то там. Первая сслыка в гугле на тему android campaign referal.
Аноним 12/01/17 Чтв 08:47:04 #192 №910289 
>>903040
через View.post и viewTreeObserver работай с нулл-вьюхами
Аноним 12/01/17 Чтв 09:20:08 #193 №910297 
>>910173
Что бы можно было получать данные по URL запросу. Особенно из других прог. Нафиг запариваться с этим джуну если есть этот же storIO. Или джуну это все таки нужно?
Аноним 12/01/17 Чтв 12:18:04 #194 №910385 
>>910173
Документация по StoreIO плохая.
Там до сих пор запросы для создания таблиц и запросы для выборки/вставки/удаления врусную пишут или можно как в cupboard - зарегистрировал тип и таблицы сами создались с нужной структурой?
Аноним 12/01/17 Чтв 12:27:33 #195 №910387 
>>909655
Вроде въехал в то как работают ViewHolder, но по прежнему не могу понять как мне их расположить в нужном мне порядке. Вот допустим у меня в первой секции TextView, во второй TextView и TextField, в третьей три TextField и я их хочу расставить по секциям

1 секция TextView
2 cекция TextView TextField
3 секция TextField TextField TextField

Как это можно нормально реализовать, учитывая что количество элементов динамическое? Я уже думал что возможно придется компоновать все элементы в один ViewHolder и выдавать, но я не уверен правильный ли это путь.
Аноним 12/01/17 Чтв 12:38:40 #196 №910389 
>>910387
Текстфилды вместе или в разных вьюхах?
Если вместе то делаешь три класса холдеров и три viewType. И смазываешь это все LinearLayoutManager
А если нет, тот тут зависит от того являются ли твои текствьюхи в первой колонке одинаковыми по смыслу или нет, тоже самое с текстфилдами.
В худшем случае у тебя получается 6 вьюхолдеров, которые расположены следующим образом:
Type1 TextView width = 3
Type2 TextView width = 1 | Type3 EditText width = 2
Type4 TextView width = 1 | Type5 EditText width = 1 | Type6 EditText width = 1
Аноним 12/01/17 Чтв 12:52:48 #197 №910399 
>>910387
У меня очень сильное чувство, что ты желаешь хуйню и то, что ты верстаешь, верстается на обычной релативке.
Аноним 12/01/17 Чтв 12:52:52 #198 №910401 
>>910389
У меня такая ситуация, я получаю от сервера общий вид документа, который поделен на секции, в секциях есть контролы, они могут быть самые разные и в разном количестве. Поэтому я хочу сделать так чтобы построение документа не зависело от пришедших данных. Но в пределах одной секции в принципе допустимо объединить контролы. То есть насколько я понял, можно взять секцию, перебрать ее элементы, создать их и впихнуть в один ViewHolder.
Аноним 12/01/17 Чтв 12:54:02 #199 №910403 
>>910399
Если бы вид был статичный, я бы уже давно все сверстал, тут вся проблема в том что вид динамический и приходит от серва.
Аноним 12/01/17 Чтв 14:22:43 #200 №910451 
>>910403
Палю годноту: epoxy
Аноним 12/01/17 Чтв 14:30:12 #201 №910453 
>>910451
Спасибо, посмотрю.
Аноним 12/01/17 Чтв 17:09:31 #202 №910535 
govnocode.png
Rx-боги, поясните: как лучше организовать? Желательно, чтобы запросы выполнялись последовательно, да
Аноним 12/01/17 Чтв 18:21:10 #203 №910628 
>>910535
Делай Observable.from(arrayFromDb), потом флетмапь и делай запрос
Аноним 12/01/17 Чтв 18:27:32 #204 №910641 
Screen Shot 2017-01-12 at 18.26.35.png
>>910535
Надеюсь ты поймешь идею
Аноним 12/01/17 Чтв 18:43:41 #205 №910677 
>>910535
Но вобще это хрень какая-то у тебя на мой вкус, я бы вынес все методы, которые возвращают данные (неважно откуда, сеть это или база данных) в отдельный файл, своего рода репозиторий, и потом просто получал нормальный arrayList из этого хелпера(см. dataManager на предыдущем скрине). Так ты размажешь логику по нескольким файлам и в будущем будет немного проще работать с этим кодом.
Аноним 12/01/17 Чтв 19:30:27 #206 №910724 
>>910628
>>910641
Это понятно, что можно превратить курсор в массив, который потом целиком дёргать из базы. Вопрос больше в том, как можно с помощью Rx формировать цепочку обсерваблов циклически, до заданного условия, что-то типа

....toChain(Observable<Mom> currentMom, Observable<Mom> allmoms){
allmoms.flatMap(() -> currentMom);
if(currentMom.isBithch()){
return false;
}
return true;
}

, а потом эту цепочку где-нибудь собирать, и выдавать как Single с одним массивом.
Аноним 12/01/17 Чтв 19:40:02 #207 №910728 
>>910724
Тут я тебе к сожалению не могу помочь. Я бы просто в хелпере базы написал метод, который мне возвращает массив с уже заданным условием, и потом для каждого элемента делал запрос. Есть еще оператор filter для обсерваблов, можешь в его сторону посмотреть, там будет чтото типа Observable.from(list).filter(<условие>).toList() и ниже по цепочке у тебя останется только обсервабл с листом элементов удовлетворяющих условию
Аноним 12/01/17 Чтв 19:51:45 #208 №910742 
>>910724
Да, короче, я тут прикинул, и тебе определенно надо смотреть в сторону фильтра. Тут тонкий момент в понимании всей этой реактивной параши, чтобы начать думать о массиве не как о законченном одном элементе, либо коллекции элементов а как о штуке, которую можно излучать поэлементно и смотреть на каждый элемент, а ты пытаешься применить стандартный джавовский подход к этому.
Аноним 12/01/17 Чтв 23:43:31 #209 №910915 
tools:openDrawer="start"
А если у меня два drawer'a? Как в режим просмотра отобразить оба?
Указать одновременно

tools:openDrawer="start"
tools:openDrawer="end"

нельзя. Какие еще способы?
Аноним 12/01/17 Чтв 23:45:20 #210 №910920 
>>910915
А с другой стороны - они тогда будут перекрывать друг друга. лучше менять ручками по мере надобности.
Аноним 13/01/17 Птн 00:39:04 #211 №910973 
Не совсем понятно мне.
Вот у нас есть класс Main_Activity. Правильно ли я понимаю, что определять в нем "подкапотные" методы внутренней логики некамильфо и затрудняет чтение и поддержку?
Например, нажатие на пункт меню вызывает метод, а его определение занимает несколько десятков строк, и таких методов куча.
Лучше засунуть определения методов в другой класс, а в activity уже просто вызывать?
Вот только куда сунуть этот класс? Норм или не норм мешать в одной папке activity и логику?
Аноним 13/01/17 Птн 01:31:39 #212 №911007 
>>910973
Ты думаешь в очень правильную сторону, анон. Погугли насчет MVP и Clean architecture, суть в том, что у тебя есть презентер, в котором лежит вся логика, а активити реализует интерфейс вьюхи и презентер может дергать этот интерфейс, а в активити лежит экземпляр презентера, методы которого она может вызывать при нажатии на какую-то кнопку. А уж где держать классы это решать тебе, в примере Moxy они отдельно держат презентеры, вьюхи и активити, но мне удобнее в одном пэкедже их держать, например у тебя есть пекедж login, в нем будет лежать LoginView интерфейс, LoginActivity и LoginPresenter, но опять же это все вкусовщина. Общая рекомендация только одна -- вытаскивай бизнес-логику из активити или фрагмента по максимуму, в идеальном случае они просто имплементят интерфейс вьюхи и не знают почему у нее дергаются те или иные методы.
Аноним 13/01/17 Птн 07:18:39 #213 №911070 
>>911007
Кстати, хорошая ли практика переименовывать MainActivity? Вроде где-то читал что не нужно его переименовывать, но с другой стороны если например активити логина идет первым, то называть его MainActivity тоже некошерно.
Аноним 13/01/17 Птн 09:01:10 #214 №911100 
>>910535
Какой пиздец. Батенька у вас rx-головного мозга ю
Аноним 13/01/17 Птн 09:32:59 #215 №911110 
>>911007
>MVP и Clean architecture
>LoginView интерфейс, LoginActivity и LoginPresenter
И так на каждую новую фичу XView+XActivity+XPreseneter (а еще X модель и XService)
А если что-то меняется, то чаще всего редактировать приходится все сразу.

Вот по этому я перешел на функциональное программирование + компоненты.

мимо много лет в андроиде
Аноним 13/01/17 Птн 10:09:11 #216 №911129 
>>911110
Я всегда думал что Activity это контроллер, а вьюха это activity.xml.
Аноним 13/01/17 Птн 10:52:08 #217 №911150 
Есть необходимость создать конфигурационный файл по типу plist в iOS, что для этого можно и лучше всего использовать? Я нашел properties, но пока не понял подходит ли он мне. Я хочу хранить в конфиге макет структуры данных, которую потом буду считывать и заполнять.
Аноним 13/01/17 Птн 11:58:06 #218 №911171 
>>911110
Можешь чуть поподробнее рассказать об этом? Где можно про это почитать?
Аноним 13/01/17 Птн 13:57:15 #219 №911212 
Безымянный.png
Как сделать пикрелейтед вьюху с индикатаром, где можно пролистывать изображения?
Аноним 13/01/17 Птн 14:13:35 #220 №911216 
>>911212
AutoScrollViewPager + CirclePageIndicator
Аноним 13/01/17 Птн 16:02:03 #221 №911280 
sqlite.png
Посоны, в чём причина? Или это нормально?
Аноним 13/01/17 Птн 16:23:21 #222 №911286 
>>911280
Тебе причину IDE выдает, наведи мышкой.
Аноним 13/01/17 Птн 16:28:08 #223 №911292 
DSC0009.JPG
Я конечно извиняюсь, что спрашиваю такое, но тут такая ситуация - я в армии и первый раз цветной телефон с андроидом в руки взял только тут, на такой вот клавиатуре подключённой к телефону и стрёмной ide написал первые небольшие приложения под андроид, лол. Как и чего работает в этом андроиде я пока не понял, да и спокойно почитать всякой документации нет возможности.

В общем, когда музыка играет, и включаешь в другом приложении, скажем, видос, то музыка ставится на паузу на время воспроизведения видоса. Можно как-то из своего приложения ставить на паузу музыку в чужом приложении(а в идеале ещё и включать предыдущий/следующий
трек) ? Какой класс прогуглить?
Аноним 13/01/17 Птн 16:38:56 #224 №911298 
>>911286
Причина "cannot resolve method" и прочая blabla, но вопрос то не в этом. Всё это происходит в библиотеке sqlite, блеать.
Аноним 13/01/17 Птн 17:23:18 #225 №911318 
>>911292
>Можно как-то из своего приложения ставить на паузу музыку в чужом приложении
Нет. Можешь только запустить другое приложение.
Аноним 13/01/17 Птн 17:44:52 #226 №911330 
>>911318
Благодарю. Жаль.
Аноним 13/01/17 Птн 17:53:21 #227 №911333 
снимаюшляпу.jpg
>>911216
Благодарю
Аноним 13/01/17 Птн 19:44:47 #228 №911423 
explicit Intent может использоваться для пересылки инфы из службы в activity?
Все примеры используют его для вызова конкретной службы, но что если я гарантированно не хочу, чтобы intent с инфой мог получить кто-то еще?
Аноним 13/01/17 Птн 20:32:55 #229 №911470 
>>911292
> В общем, когда музыка играет, и включаешь в другом приложении, скажем, видос, то музыка ставится на паузу на время воспроизведения видоса. Можно как-то из своего приложения ставить на паузу музыку в чужом приложении(а в идеале ещё и включать предыдущий/следующий
> трек) ? Какой класс прогуглить?
AudioManager. Методы requestAudioFocus и, кажется, dispatchMediaKeyEvent. Делают совсем разные вещи, но тем не менее.
Аноним 13/01/17 Птн 20:44:55 #230 №911477 
>>911280
Да это нормально, эти сорцы из ..\SDK\sources\android-25\.. только для информирования.
По этому они ни не полные и нигде не используются при сборке.

Android Studio просто не вкурсе что они не используются и пытается разрезолвить их зависимости.
Аноним 13/01/17 Птн 21:04:36 #231 №911493 
>>911423
Как ты хочешь передать explicit Intent из сервиса в активити?
Аноним 13/01/17 Птн 23:27:55 #232 №911566 
2017-01-1321-22-09.png
2017-01-1321-25-39.png
Не могу открыть проект. Уже больше 30 минут Gradle разрешает разные зависимости. Пробовал делать restart & invalidate caches в студии, пробовал удалять проект и заново клонировать его из репозитория. Ничего не помогло.

Со всеми другими проектами таких проблем нет, всё нормально открывается и собирается.

Что можно еще попробовать сделать, чтобы открыть-таки его? В чем может быть проблема?
Аноним 14/01/17 Суб 00:58:08 #233 №911612 
Допустим, есть служба, которая биндится к activity.
И у этой службы есть набор методов, каждый из которых, например, дергает что-то из интернета.
Есть ли какое-то другое решение, чем в каждом методе создавать класс Runnable и пихать его в tread?

И нет, IntentService не предлагайте - служба должна существовать после уничтожения activity.
Аноним 14/01/17 Суб 01:02:03 #234 №911614 
>>911566
а в консоле собирать пытался?

gradlew clean installDebug
Аноним 14/01/17 Суб 02:19:02 #235 №911647 
>>911612
Есть - вызывать метод привязанной службы через AsyncTask.
Потому что:
- Через tread не вытащить возвращаемый результат вызываемого метода
- Через tread/callable/future нельзя изменять что-то в activity.
- callable/future блокируют поток UI.
- Если играться с callable/future в самом вызываемом методе - это не поможет, потому что поток Ui будет заморожен до возврата результата из службы, и это самое хуевое, помимо пердолингов и говнокодов.
Аноним 14/01/17 Суб 04:55:03 #236 №911716 
>>911614
Нашел, в чем была причина.

В секции allprojects { repositories { ... } } были указаны репозитории, которые сейчас недоступны.

Неужели у Gradle нет никакой проверки, доступен ли сейчас хости или хотя бы таймаута?
Аноним 14/01/17 Суб 11:18:08 #237 №911807 
>>911612
Используй rxjava. Например внутри службы subject заюзай для передачи результата в activity, а сам асинхронный код выполняй внутри службы.
В activity: подпиши callback и вызови соответствующий метод, чтобы начать асинхронную задачу.
Аноним 14/01/17 Суб 11:20:07 #238 №911810 
>>911807
Поправка: PublishSubject
Аноним 14/01/17 Суб 14:48:21 #239 №912000 
>>911477
Я то думал, что в библиотеках всё должно быть вылизано от и до, а тут такая хуйня. Спасибо за инфу :3
Аноним 14/01/17 Суб 16:07:30 #240 №912058 
>>911807
Хоспади, какой охуенный совет, если все это правда
http://blog.stablekernel.com/replace-asynctask-asynctaskloader-rx-observable-rxjava-android-patterns/
Где там твой хуй? Дай я его отсосу.
Аноним 14/01/17 Суб 16:54:14 #241 №912097 
>>912058
Всё так. Бери & юзай.
Аноним 14/01/17 Суб 18:54:19 #242 №912148 
Есть какая-нибудь библиотека для представления больших баз данных во всяких ListView?
А то боюсь, тысячи строк на экране устроят лагодром.
Аноним 14/01/17 Суб 20:34:24 #243 №912229 
>>912148
RecyclerView
Аноним 14/01/17 Суб 20:39:19 #244 №912231 
>>912229
>RecyclerView
Чудно. Не придется изобретать велосипед, как в каком-нибудь Qt/
Аноним 14/01/17 Суб 21:19:25 #245 №912259 
14844125427780.png
>>902606 (OP)
Ну что ананасы - у вас начинается новая жизнь.

Настоящий Haskell для JVM скоро и на Android без всяких jni врапперов.

http://eta-lang.org/ http://eta-lang.org/playground.html
Аноним 14/01/17 Суб 21:22:37 #246 №912264 
>>912259
Что опять?

Есть ведь уже https://github.com/Frege/frege

Всё равно, и тем, и другим будут пользоваться полтора калеки.
Аноним 14/01/17 Суб 21:27:00 #247 №912265 
>>912264
> хаскель
> калеки
Ловите очередного глупого неосилятора!
Аноним 14/01/17 Суб 21:30:54 #248 №912268 
>>912265
Причем тут неосилятор? Я на нем пишу в свободное время. Но это не отменяет того факта, что во всём мире вакансий на Хаскелле штук 10.
Аноним 14/01/17 Суб 22:00:33 #249 №912287 
>>912264
Ниет. То что вышло сейчас — полноценный порт хачкелля на жвм, фридж — это просто хачкель-лайк залупа с какими-то там его идеями и все.
Аноним 14/01/17 Суб 23:03:27 #250 №912323 
>>912287
И чем Eta полноценнее Frege?
Что тот, что другой — диалекты Хаскелля, компилирующиеся в jvm-совместимый байт-код.
У обоих есть байндинги к компонентам жабы. Оба могут использовать любые библиотеки.
Аноним 15/01/17 Вск 00:22:40 #251 №912343 
>>912323
Ты сам себе ответил — первое диалект, второе — полноценный порт GHC, совместимый с хачкелем (устаревшей версии уже правда (лол), для поиграться уже не так весело).
Аноним 15/01/17 Вск 01:20:55 #252 №912393 
>>912343
> The Eta Programming Language, a dialect of Haskell on the JVM
Ну даже не знаю.
Аноним 15/01/17 Вск 01:31:33 #253 №912400 
>>912393
Ты главное не прочитал ниже (основное отличие от фриджа):
>compatibility with GHC 7.10.3's Haskell
что как бы двигает эту залупу в разряд имплементаций хачкеля, а не диалектов. Но учитывая, что это жвм, из которой через каждый шаг будут торчать NPE и аннотации компилятору и вм — совместимость будет таки в одну сторону, поэтому таки диалект.
Аноним 15/01/17 Вск 04:26:14 #254 №912461 
Какие вопросы на собесе могут задать по ретрофиту?
Аноним 15/01/17 Вск 05:18:31 #255 №912464 
В чем магия?

File getPath(File directory, String DBName) {

....String name = DBName;

....if (!name.endsWith(".db")) {
........System.out.println(!name.endsWith(".db"));
........name += ".db";
........}

....return бла бла бла

System.out.println(!name.endsWith(".db")); пишет True, но name += ".db" никогда не выполняется, даже если строка не оканчивается на ".db".

Вот тут (!name.endsWith(".db")) name ссылается не на переменную вне if?
}
Аноним 15/01/17 Вск 05:37:11 #256 №912468 
>>912464
Блядь, красноглазый мудак, пора спать, я там обрабатывал DBName вместо name.
Аноним 15/01/17 Вск 10:09:49 #257 №912491 
>>912461
Как ты организуешь работу с куки?
Аноним 15/01/17 Вск 14:55:40 #258 №912600 
>>912464
Что это за дичь?
Аноним 15/01/17 Вск 14:57:36 #259 №912602 
>>912461
Как правильно Authorization header приделать, как выполнять авторизацию по различным протоколам, по компонентам, кастомные парсерам могут прогнать. Хотя вроде могу сказать по-опыту что его знание особо не проверяется (ибо нехуй там проверять, лол)
Аноним 15/01/17 Вск 14:59:07 #260 №912605 
А кто-нибудь здесь игрался со StorIO? Впечатления?
Аноним 15/01/17 Вск 15:31:38 #261 №912623 
>>912605
заебок, но многие почему то думают, что это orm, и удивляются, почему там надо так много писать руками.
Аноним 15/01/17 Вск 15:49:48 #262 №912631 
>>912623
Ну я просто потрогал-потрогал, вроде понравилось, удобнее код структурировать. Единственное "Но" - нужно разобраться как SQLCipher навернуть на нее
Аноним 15/01/17 Вск 16:13:05 #263 №912645 
>>912631
https://github.com/pbochenski/CipherStorIO
Аноним 15/01/17 Вск 16:49:48 #264 №912662 
>>912645
Спасибки, добра тебе ^_^
Аноним 15/01/17 Вск 17:30:03 #265 №912687 
Господа, а может ли кто-нибудь здесь пояснить за кэширование изменяющихся данных (предположим, есть список статей с хабра + комментарии к ним, оба грузятся чанками, то есть конца-края данным не видно с клиента) ? Сейчас есть острая необходимость сделать такое, но после настройки базы, Dao и прочего я впал в ступор, ибо эта хуйня сложновата оказалась, для того, чтобы взять и сделать. Ленивый кэш не подойдет, ибо база не резиновая нихуя.
Аноним 15/01/17 Вск 17:32:12 #266 №912689 
В особенности интересно, пожалуй, как реализовать проверку на то, устарели ли данные, со стороны клиента, а также - как бы сделать принудительное выпиливание всех записей которые отжили свое
Аноним 15/01/17 Вск 17:39:47 #267 №912691 
>>902606 (OP)
Есть где API guide в pdf-форме?
Аноним 15/01/17 Вск 17:53:27 #268 №912697 
>>912687
Ну, это зависит от используемого тобой языка и соответственно наличия более или менее удобных инструментов кэширования.

Также зависит от того, что ты хочешь кэшировать. Если хочешь кэшировать данные из внешнего источника (например из слоя дао), то можешь обернуть слой-источник в декораторы (ооп или аспекты - зависит от языка и конкретных задач), где из параметров будет браться ключ и по нему проверяться наличие в key-value хранилище, и если нет нихуя, то вызвать обернутый слой и при получении данных сунуть в кэш и отдать обратно в сервис.
Само собой у каждого элемента должен быть TTL.

Но вообще наилучший поинт в том, что кэширование должно быть прозрачным для вызывающего сервиса. Это позволит не сильно менять уже работающий код и объебываться с багами и проблемами из-за этого.
Алсо не забывай, что не нужно кэшировать небо - если данные запрашиваются чуть-чуть раз, то кэш будет оверхедом и только жрать ресурсы.
Аноним 15/01/17 Вск 18:00:59 #269 №912703 
>>912697
Данные - список категорий, вопросов в категориях и ответов на них. Все содержит в себе только n-ное количество примитивов и строки. Язык - Java. Думаю также над тем как с точки зрения UI организовать - обновлять данные только при их отсутствии (или истечении определенного срока времени с последнего обновления), а в остальных случаях - использовать кэш или же делать какие-то чек-запросы на сервер с timeStamp-ами, но тогда уже нужно будет смотреть а не менее ли это оптимально чем тупая подгрузка в лоб. Средний объем чанка вопросов - около двух-трех килобайт Категорий и ответов - примерно так же.
Аноним 15/01/17 Вск 18:38:25 #270 №912720 
>>912703
Guava Cache
Аноним 15/01/17 Вск 19:00:45 #271 №912734 
>>912720
> Guava
Щас бы в ведро либы подключать на 15k методов, чтобы билдить с прогвардом/мультидексом по минуте.
Аноним 15/01/17 Вск 19:11:57 #272 №912737 
>>912720
А если все же ручками делать?
Аноним 15/01/17 Вск 20:34:55 #273 №912779 
>>911807
Да нихуя не так!
RxJava господа, как правильно проврнуть сию хуйню?
Аноним 15/01/17 Вск 21:52:29 #274 №912814 
Че так пердольно добавлять элементы в список-то?
В десятки строк сношения с адептерами-хуяптерами и списками, даже если в итоге добавляешь один-два элемента.
В QT пару строк занимает все.
Аноним 15/01/17 Вск 21:58:08 #275 №912815 
>>912814
Рассказывай как там в QT.
Аноним 15/01/17 Вск 22:24:12 #276 №912823 
Антон, надо знать OAuth, RxJava, Dagger 2 и всякие гугловские/соцсетейные API для джуна в Киеве? Ибо пока шудирую сам дроид до Retrofit/Picasso. Кор жабу да всякие алгоритмы и паттерны "знаю" есвенно. На какую зп можно проситься? Это все буду учить чуть позже, а жрать надо сейчас. Что подтянуть на бачей 400?
Аноним 15/01/17 Вск 22:39:34 #277 №912828 
>>912815
Для списков
QListWidget listWgt;
listWgt.addItems(ItemsList);

Поштучно
QListWidget listWgt;
listWgt.addItem(Item);

А можно и через цикл. Для динамической обработки каждого item.

А еще ListView вываливается к хуям вместе со всем приложением, если передать адаптеру пустой список, вместо отображения пустоты.
Что добавляет еще ебли с проверками и затычками.
Аноним 15/01/17 Вск 22:45:31 #278 №912830 
>>912828
А еще ведь адаптеру можно передать только один шаблон item'a для наполнения. А если я захочу вставлять в один список два разных шаблона?
Опять ебаться с индусскими адаптерами.
Аноним 15/01/17 Вск 22:47:33 #279 №912832 
>>912830
Не, для больших и часто изменяющихся элементов это скорее всего очень годно, но для неизменных и некопипастных чет дохуя пердольно.
Аноним 15/01/17 Вск 23:08:14 #280 №912840 
>>912828
>>912814
Покажите мне хотя бы пять приложений на Qt, у которых больше 10000 загрузок в Google Play.
Аноним 15/01/17 Вск 23:35:46 #281 №912848 
>>912840
Первые 5 выдернул из https://showroom.qt.io/

https://play.google.com/store/apps/details?id=net.vplay.demos.Squaby

https://play.google.com/store/apps/details?id=com.imaginando.lk&hl=en

https://play.google.com/store/apps/details?id=com.imaginando.tkfx&hl=en

https://play.google.com/store/apps/details?id=com.musescore.playerlite

https://play.google.com/store/apps/details?id=rs.ignite.lighton


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



Аноним 15/01/17 Вск 23:47:08 #282 №912851 
>>912848
Игры и музыкальные свистоперделки.
Единственное приложение выглядит как хуй пойми что.
Аноним 15/01/17 Вск 23:52:36 #283 №912855 
>>912851
Я тебе в разы больше приложений с нативным ведрокодом могу накидать, которое выглядит в разы хуже, чем хуй пойми что.
Что никак не говорит об удобстве написания.

К тому же их хуевый вид наверняка обоснован общими исходниками с другими платформами.
Кроме кроссплатформы использовать QT на ведре вряд ли есть причины, минусы перевешивают все возможные плюсы.
Аноним 15/01/17 Вск 23:58:33 #284 №912859 
>>912734
> билдить минуту
> минуту
Чем ты недоволен, пидор?

мимокатился из тырпрайз-тренда
Аноним 16/01/17 Пнд 02:27:01 #285 №912916 
>>912855
Кроссплатформа — это миф.
Аноним 16/01/17 Пнд 03:57:00 #286 №912944 
Аноны, есть одно очень кривое апи, в котором два некоторых респонза возвращают значения, отличающиеся на единицу.
Пофиксить его, по некоторым причинам, невозможно. Но встал вопрос: стоит ли фиксить руками на ведроид клиенте значение при десериализации ответа (средствами GSON), или же это делается где-нибудь внутри репозитория?
Аноним 16/01/17 Пнд 09:21:05 #287 №912973 
>>912944
Ещё могу добавить: как вообще работать с апишкой, если у тебя в приложении юзаются не все поля, возвращаемые с сервера? Игнорить при персинге респонза, или получать его полностью, а потом вручную выделять нужное в коде?
inb: yagni
Аноним 16/01/17 Пнд 09:35:49 #288 №912978 
>>912823
Бамп вопроса.
Аноним 16/01/17 Пнд 09:45:12 #289 №912982 
>>912978
>2017
>думать, что можно устроиться джуном в киеве
Ты серьёзно?
Аноним 16/01/17 Пнд 10:55:43 #290 №913003 
>>912982
Ну а как тогда начинать карьеру в моб разработке?
Аноним 16/01/17 Пнд 11:11:49 #291 №913005 
>>913003
Самому задротить и выкладывать своих франкенштейнов в гп, потом идти на мила
Аноним 16/01/17 Пнд 11:14:35 #292 №913006 
>>913003
Никак, также как и с другими направлениями айти. Джуны не нужны для хуяк-хуяк и в продакшен.
Аноним 16/01/17 Пнд 11:19:29 #293 №913007 
>>913005
вот каких франкенштейнов выкладывать? В душе не ебу что делать. На ебаном стартандроиде были примеры тестовых заданий. Не мелковато будет?
Аноним 16/01/17 Пнд 12:12:34 #294 №913036 
>>913007
Стартандроид тебя даже на джуна не вытянет, ебашь rx2, dagger2, retrofit, какую-нибудь ORM-ку. Сделай клиент для двача с пагинацией, возможностью отвечать, переходить по ответам и Real-time обновлениями, работай с кэшем.
Аноним 16/01/17 Пнд 13:17:36 #295 №913067 
>>913036
Больше интересно: что же тогда на миддла? Сложная графика? Вычисления? Дрочка натив либ?
Аноним 16/01/17 Пнд 13:38:36 #296 №913079 
>>913067
анон выше несет херню?
Аноним 16/01/17 Пнд 18:37:55 #297 №913242 
Парни, есть какой-нибудь онлайн-сервис, чтобы захуярили мне простенькое вебвью приложение? Только без рекламы и веса в 10 мегабайт.
Или сделайте мне кто-нибудь. Заплачу за 5 минут работы.
Аноним 16/01/17 Пнд 19:35:21 #298 №913260 
>>913242
Вебвью по какому url показывает? А то есть вероятность, что придётся попердолиться (вместо 5 делать 15 минут), если на странице какие-нибудь ссылки несмешные, вроде номера телефона, по которому нужно звонилку запускать.
Аноним 16/01/17 Пнд 19:40:55 #299 №913264 
>>913260
Да там даже js нет, чистый php+html.
Дай свой контакт. Желательно жабу.
Аноним 16/01/17 Пнд 19:42:10 #300 №913266 
>>913264
> php
?
Аноним 16/01/17 Пнд 19:47:59 #301 №913272 
>>913264
Сорри, мне лень списываться ради такого проекта. Да и жабберов, телеграмов и прочих мессенджеров у меня нет. Может, какой-нибудь джун за крупицу реального опыта и обед в макдаке сейчас зайдёт в тред и подпишется на это.
А вообще, советую тебе самому свой контакт оставить.
Аноним 16/01/17 Пнд 20:27:37 #302 №913317 
А как каждой строкe/item'у, вставляемого в ListView - прикрутить вложенные неотображаемые данные типа переменных?
Аноним 16/01/17 Пнд 20:30:28 #303 №913320 
>>913317
У тебя каждому вставляемому итему соответствует какой-то объект, вот туда и пихай. Или тебе неотображаемые данные именно о вьюшках нужны? Тогда делай вьюхолдеры (вообще >2017 >листвью) и в них храни.
Аноним 16/01/17 Пнд 20:35:27 #304 №913324 
>>913320
Но ведь адаптеру передают xml файл, а потом в методе bindView распихивают по полям представления контент.
Как до самого вставляемого объекта-то добраться?
Нужно, чтобы строчка хранила, например, подкапотные id, и прочие данные, которые потом можно обработать после ее выбора.
Аноним 16/01/17 Пнд 20:39:41 #305 №913329 
>>913324
public void bindView(View view, Context context, Cursor cursor)
Или прям во view поля клепать и прямо в него всталять?
Аноним 16/01/17 Пнд 20:42:50 #306 №913330 
>>913324
>адаптеру передают xml файл
Никогда не видел подобной реализации. Если у тебя входные данные в xml, то сначала их парси в список объектов, а потом уже объекты передавай в адаптер. А то, что ты написал, непродуктивное решение, потому что xml-ка будет парситься каждый раз при перерисовке листвью, и это лишнее действие.
http://startandroid.ru/ru/uroki/vse-uroki-spiskom/113-urok-54-kastomizatsija-spiska-sozdaem-svoj-adapter.html - вот дефолтное использование адаптера.
Аноним 16/01/17 Пнд 20:45:02 #307 №913331 
>>913329
А, так у тебя курсорадаптер. Хуй знает тогда, я с курсорадаптером уже больше года не сталкивался, даже не помню, что там происходит, извини.
Аноним 16/01/17 Пнд 21:03:27 #308 №913338 
>>913272
Жаль, что из всего треда никто не заинтересовался.
Аноним 16/01/17 Пнд 21:08:28 #309 №913341 
>>913330
Не, я про это
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1,
listItems);

android.R.layout.simple_list_item_1 - это же xml файл-шаблон, на основе которого формируется строка в ListView.

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

И я чет уже призаебался искать такую очевидную вещь. Везде одна и та же копипаста.

Ну, грубо говоря, допустим у нас есть список планет. В каждой строке отображается их название. А при выборе предмета нужно чтобы где-то могла отобразиться гравитация планеты, например (а в xml шаблоне нет полей для этого).
Аноним 16/01/17 Пнд 21:23:03 #310 №913350 
>>913341
Ну наконец-то, нашел!
http://stackoverflow.com/questions/10644142/setting-tags-to-each-item-in-a-listview-in-android

.setViewBinder()

Правда, все это пиздец, какой-спагетти код в итоге. Ебаные индусы из гугла.
Аноним 16/01/17 Пнд 21:34:15 #311 №913354 
>>913350
Никто уже давно в листвью не работает, все перешли на ресайклервью.
Аноним 16/01/17 Пнд 21:37:16 #312 №913358 
>>913354
Я читал про него, но пока тренируюсь с азами.
Да и разве там отличается настройка каждого item'a?

В QT вот годнота, каждая строка - экземпляр класса.
Список заполняется непосредственно экземплярами классов.

Никаких "чтобы сходить в туалет возьми одну ногу со шкафа в одной комнате, а вторую - в комнате соседнего дома, потом вернись и держа одну ногу в руках допрыгай до туалета"
Аноним 16/01/17 Пнд 21:48:18 #313 №913368 
>>913358
Я не знаю, что тебе не понятно, но в андроид в самой простой реализации адаптера каждому элементу листа соответствует один и только один объект.
Аноним 16/01/17 Пнд 21:54:20 #314 №913373 
>>913368
В принципе, можно сделать еще и так. И будет очень похоже на то, что нужно.

http://stackoverflow.com/questions/7668495/android-listview-and-tag/7668591#7668591

Вариант с .setViewBinder() уебищный, запутанный, с хуевой инкапсуляцией и выглядит, как говно.

А вот (MyListItem) adapter.getItem(position) совсем другое дело.
Аноним 16/01/17 Пнд 21:54:48 #315 №913374 
>>913358
Твой годный QT судя по всему создаст на 1000 элементов в списке 1000 вьюх, выжрав всю память, охуеть как здорово.
Аноним 16/01/17 Пнд 22:00:35 #316 №913384 
>>913374
Словно ListView их не создаст, в отличии от ресайклвью.
Хотя признаю, такой годноты в QT нет, а делать ее будет весьма пердольно через модели и сношения с позицией ползунка.
Аноним 16/01/17 Пнд 22:03:41 #317 №913386 
>>913384
> Словно ListView их не создаст
Тебе в листьвью convertView просто так последним параметром при биндинге идет, да?
Аноним 16/01/17 Пнд 22:12:40 #318 №913392 
>>913386
Ну да, полезная вещь, вот только сам массив с объектами для заполнения все равно будет в памяти, разве нет?
А если там 40 000 позиций с картинками?

Хотя, это хуевый пример. Саму картинку лучше хранить отдельно и выдергивать из бд прямо во время формирования представления, а не дергать заранее, наверное.
Аноним 16/01/17 Пнд 22:13:39 #319 №913393 
>>913392
>Хотя, это хуевый пример. Саму картинку лучше хранить отдельно и выдергивать из бд прямо во время формирования представления, а не дергать заранее, наверное.
А в массив запихивать только ключи.
Аноним 16/01/17 Пнд 22:14:48 #320 №913395 
>>913392
Ты вообще понимаешь, о чем речь?
1000 объектов в памяти -- вообще не проблема. Проблема в отрисовке всех этих айтемов на экране, а не только тех, которые видны в данный момент.
Аноним 16/01/17 Пнд 22:15:56 #321 №913397 
>>913395
Конечно, понимаю, но даже 1000 объектов может быть весьма тяжеловесной. В памяти не только то, что ты видишь на экране же.
Аноним 17/01/17 Втр 00:30:58 #322 №913505 
>>913067
На миддла NDK, работа со сложной графикой, обработкой видео, изображений, работа с протоколами, телефонией, устройствами. Приложение телеграма как раз такой уровень, даже немного выше.
Аноним 17/01/17 Втр 00:34:30 #323 №913511 
>>913354
Ресайклер переоценён. Совсем не всегда он нужен, обычного списка хватит в 90% случаев.
Аноним 17/01/17 Втр 00:47:11 #324 №913532 
>>913505
только в твоих фантазиях
Аноним 17/01/17 Втр 01:47:53 #325 №913558 
>>913511
только в твоих фантазиях
Аноним 17/01/17 Втр 05:56:31 #326 №913586 
Стандартные классы для управления базами данных у ведра ужасны.
Начиная от того, что без чтения исходников совсем не понятно и не очевидно (без пердолинга и переопределения всех используемых стандартных инструментов) создать бд в нужной директории, ПРОСТО передав строку пути, склеенную вместе с именем, заканчивая тем, что в курсоре захардкоден столб "_d". А если в бд нет такого столба - то приложение крашнется.
Ну что за ебтвою мать? Гугломакаки не знают, что в sqllite есть столбец rowid (вот это вот пиздец вообще, рука лицо блядь стул прожжен, за что им только платят)?
Не догадывались, что их говноклассы могут захотеть использовать с уже готовыми базами данных?

Конечно, можно подкорректировать готовые SQL-строки из других своих проектов, синонимов в запрос добавить (и попрощаться с инкапсуляцией), но чет уже начинает печь от того, сколько костылей приходится писать на пустом месте.
Вот что мешало им обращаться напрямую к rowid? Охуеть вообще.
Аноним 17/01/17 Втр 07:59:03 #327 №913594 
>>913505
>На миддла NDK
Вот тут интересно даже. Назови пример задачи, где нужно пилить своё решение с ндк? Просто, сколько я не читал про NDK, на практике видел только подключение сторонних нативных либ.

>работа с протоколами
Будет при работе с любым сетевым api.

>устройствами
Wat?
Аноним 17/01/17 Втр 10:25:18 #328 №913636 
>>913594
дык анон-нуб много потеряет если прийдет на собеседование без Dagger и Rx? "Жрать хочеться сейчас"
Аноним 17/01/17 Втр 10:33:11 #329 №913638 
>>913636
Когда ходил по собеседованиям на зп 80к, про депенденси инжекшн иногда интересовались (пару раз из пяти собеседований), про реактивщину - ни разу.
Аноним 17/01/17 Втр 11:45:16 #330 №913660 
>>913586
А что они по твоему после insert возвращают если не rowid?
Аноним 17/01/17 Втр 12:26:36 #331 №913678 
>>913636
А вот тут я не имею понятия. Ещё год назад читал кулстори, что юзанье библиотек в портфолио и тестовых считается "не тру". С другой стороны, сейчас большой проект без либ на голых лоадерах и асинктасках будет пилить разве что поехавший
Аноним 17/01/17 Втр 13:56:04 #332 №913700 
>>913638
а что спрашивали? только по самому сдк?
Аноним 17/01/17 Втр 14:34:49 #333 №913711 
2.png
1.png
>>913242
Еще актуально? Я правда только Subshine делал из приложений, но надеюсь тебе не надо MVP или чего-то сложного.
Аноним 17/01/17 Втр 15:24:28 #334 №913734 
Посоны, такой вопрос, я закинул json файл в проект и идеешка показывает его в текстовом виде, может ли Android studio отобразить json файл в виде дерева?
Аноним 17/01/17 Втр 15:30:07 #335 №913738 
>>913586
StorIO
t
o
r
I
O
sageАноним 17/01/17 Втр 15:32:59 #336 №913739 
>>913711
Приложение, состоящее из одной страной WebView, и уже с рекламой. Публикуй скорее в стор, озолотишься.
Аноним 17/01/17 Втр 15:33:47 #337 №913741 
>>913734
Поставь какой-нибудь плагин, 100% есть такой.
Аноним 17/01/17 Втр 15:34:50 #338 №913742 
>>913700
Один раз вообще ничего не спрашивали, посмотрели приложение в гугл плее и дали тест на общие способности, типа математика и SQL
Один раз спрашивали тупо ЖДК, я это завалил. Спрашивают реализацию хэшмап, например, а я не знаю.
Остальные спрашивали какие библиотеки знали, основные компоненты, лайвциклы, сервисы, какие шаблоны проектирования знаю и прочую залупу, уже не помню. Ещё как-то спрашивали прямо по статейке из хабра, где описаны самые основные вопросы, лень её сейчас искать.
Аноним 17/01/17 Втр 15:39:48 #339 №913745 
>>913739
Это всё Абу, открой сайт с мобилы.
Аноним 17/01/17 Втр 15:50:53 #340 №913751 
>>913594
> Вот тут интересно даже. Назови пример задачи, где нужно пилить своё решение с ндк? Просто, сколько я не читал про NDK, на практике видел только подключение сторонних нативных либ.
Вот как раз вышеперечисленное. Сложная работа с видео, графикой, аудио, сетями, байтиками. Причём надо уметь оценивать, несколько целесообразно использовать ндк, в каком объёме выносить нативный код в джаву, и вообще уметь со всем этим работать на среднем уровне. Здесь нужен только опыт, но по сути ничего сверхсложного нет.
> Wat?
Узкоспециализированно, но тем не менее. Связь, юсб девайсы, и так далее. Сюда же можно отнести впн, в какой-то мере. Человек, который с этим работает, знает такие вещи. Это не обязательный критерий, просто как пример привёл.
Аноним 17/01/17 Втр 16:04:55 #341 №913761 
>>913742
Спасибо, а что за математика была?
Аноним 17/01/17 Втр 16:10:19 #342 №913764 
>>913761
Не помню уже. Помню только, что требовали написать алгоритм программы, которая принимает на вход линейное уравнение и две точки и определяет, пересекает ли отрезок, проложенный между этими двумя точками эту прямую.
Была ещё платиновая задача уровня /pr/, где задан массив чисел, в котором все числа, кроме одного, повторяются по два раза. Но эту я за месяц до собеседования как раз в одном из тредов /pr/ видел и решил, лол. В итоге как раз в эту фирму и пошёл. Вот так /pr/ помог мне найти работу.
Аноним 17/01/17 Втр 18:35:06 #343 №913864 
Какой бест практисес для реализации возможности позователям оставлять фидбек внутри приложения?
Аноним 17/01/17 Втр 18:46:51 #344 №913869 
203127482.png
Анон, пытаюсь по startandroid разобраться с древовидными списками. Но там что-то какая-то дичь и содомия ArrayList<ArrayList<Map<String, String>>>(), охуеть вообще. Так и должно быть, или есть реализации проще и изящнее?
Аноним 17/01/17 Втр 18:50:21 #345 №913871 
>>913864
Никто не будет делать этого внутри приложения. Пользователи пойдут ставить тебе единички в Google Play.
Аноним 17/01/17 Втр 19:04:16 #346 №913879 
Платиновые вопросы андроидача
Заебала быдлоработа, всегда нравилось программировать, но как-то не сложилось. Хочу вкатиться. Проблема в том, что опыта, как вы понимаете, нету совсем. Есть несколько прослушанных курсов и запас подкожного жира бабла, чтобы не сдохнуть с голода, так что первое время могу демпинговать, 15к будет достаточно первые полгода-год. Какова вероятность? Город - ДС.
Аноним 17/01/17 Втр 19:13:30 #347 №913887 
>>913764
А опыт какой был? Сколько приложений в гугл плее?
Аноним 17/01/17 Втр 19:33:11 #348 №913913 
>>913879
Работодателю нужно не тело, которому можно не платить, а тело, которое будет решать задачи. Нахуй кому-то брать человека за 15к (да даже за 0к) который по сути будет только мешаться под ногами. Сиди лучше дома и набивай портфолио. Загугли каких-нибудь елегионов и мэдмадроботов на хабре и дрочи на их статьи денно и нощно, эти статьи будут играть роль твоих сеньёров, которые будут показывать разные фишки. И одновременно упарывай какой-нибудь стартандроид (хотя я не вижу смысла в последовательном поедании говна с подобных сайтов, лучше реальный проект делать и гуглить, что непонятно). Как видишь, не жизнь, а малина: сидишь дома, дрочишь и упарываешь, через полгода идёшь на зп выше, чем в среднем по России, ещё через полгода выше, чем в среднем по москве.
>>913887
Два года опыта работы студентом (в трудовой написано два года, а на деле я там работал от силы пару часов в день в среднем, часто неделями дома сидел и ничего не делал). Приложение в гугл плей одно сделал (простенькое, на 3к строчек кода) только когда уже начал искать работу. Сильно помогло, потому что на новом месте мне сказали делать новое приложение с нуля, и я уже был немного готов к полному циклу разработки.
Аноним 17/01/17 Втр 19:47:59 #349 №913929 
>>902801
Удваиваю реквест.
Аноним 17/01/17 Втр 19:55:30 #350 №913939 
>>903649
Попробуй ThreadPoolExecutor заюзать, довольно легко реализуется (несколько строк буквально). На больших объемах данных я его не тестил, но UI у тебя лагать точно не будет из-за этого.
Аноним 17/01/17 Втр 19:57:05 #351 №913942 
>>903983
>Написать мобильное приложение — это не диплом, это хуйня.
>>903983
Проиграл с илитария
Аноним 17/01/17 Втр 20:06:14 #352 №913950 
>>913939
> Попробуй ThreadPoolExecutor заюзать
Зачем, если можно просто вызвать AsyncTask.executeOnExecutor? Асинк таска хотя бы тебе результат на гуй тред вернет.
Аноним 17/01/17 Втр 20:22:59 #353 №913970 
>>911318
Неправда, вот этот >>911470 анон прав

Мимо делал такую хрень
Аноним 17/01/17 Втр 20:33:15 #354 №913981 
>>913871
То есть багрепорты надо искать в отзывах на маркете?
Аноним 17/01/17 Втр 20:40:57 #355 №913994 
>>913950
Так он вроде писал что он хочет заносить данные в бд, а не извлекать, зачем ему гуй тред
Аноним 17/01/17 Втр 20:42:18 #356 №913997 
Как лучше привязать Passport.js к мобильному приложению? Создавать отдельно возможность авторизации с токенами(если да, то какие средства есть?) или городить сессии и все такое, как в браузере?
Аноним 17/01/17 Втр 21:15:37 #357 №914027 
>>913997
Лучше никак.
Аноним 17/01/17 Втр 21:23:28 #358 №914037 
>>913997
А почему лучше никак?
Аноним 17/01/17 Втр 21:26:06 #359 №914041 
>>913981
fabric.io crashlytics, бесплатный сервис, интегрируется за пять строчек, будешь на почту получать сообщения об ошибках со стектрейсом.
Аноним 17/01/17 Втр 21:37:32 #360 №914046 
>>914037
Js-параша всё равно не будет работать как следует.
Аноним 17/01/17 Втр 21:47:19 #361 №914055 
>>914046
Ну вообще пока там я сделал на токенах. Работает, брат жив. Но думал, мб можно как-то еще.
Аноним 17/01/17 Втр 23:58:56 #362 №914178 
>>913994
Ну так в гуй можно выводить плашку об успешности операции для наглядности, например.
Аноним 18/01/17 Срд 00:47:05 #363 №914201 
У меня немного глупый вопрос.
Свой хелоуворлд надо будет релизить под каждую версию Ведра, и Прошивку.
Или например можно сделать релиз под андройд 4.0.0. И он будет нормально зщапускаться на андройдах выше?

Хуячу на ВС Xamarin, кстати.
Аноним 18/01/17 Срд 00:48:42 #364 №914204 
>>914201
Вроде зависит от особенностей хеловорлда. Может норм пойти, а может крашится
Аноним 18/01/17 Срд 00:59:32 #365 №914208 
>>914201
>Или например можно сделать релиз под андройд 4.0.0. И он будет нормально зщапускаться на андройдах выше?
Это. Есть же библиотеки совместимости. Min SDK 14 для ice cream sandvich ставишь, и из библиотеки совместимости разный плюшки из версий выше.
Но не все будут на нем работать, типа раскрываемых уведомлений вроде.
Аноним 18/01/17 Срд 01:16:07 #366 №914217 
Спам Broadcast влияет на производительность?
Какие еще есть альтернативы синхронизировать виджеты, уведомления и Activity с таймером, ведущим отсчет в службе(которая, к слову, может биндиться, хотя это вряд ли поможет с уведомлениями и виджетами)?
Аноним 18/01/17 Срд 01:27:15 #367 №914220 
>>914217
Я спамлю бродкастами, у меня дохуища работы с сетью, и каждый запрос по окончании кидает бродкаст. Провала в производительности не видел. Конечно, хз, как работало бы приложение без этих бродкастов, но оно сейчас довольно пухлое (тысяч на 30 строк) и всё равно нормально катается с бродкастами.
Советуют использовать LocalBroadcastManager, это безопаснее.
Аноним 18/01/17 Срд 01:30:47 #368 №914223 
>>914220
Ок, пасиб.
Аноним 18/01/17 Срд 01:51:29 #369 №914230 
Парни, а фичи восьмой джавы в проектах уже можно использовать без какого-либо гемора или потенциальных проблем или пока рано?
Аноним 18/01/17 Срд 02:38:44 #370 №914245 
14392956802440.webm
Раскидайте за Xamarin на визуал студии.
Кто то хуячит на нем?
Какие камни?
Аноним 18/01/17 Срд 03:30:34 #371 №914258 
>>914230
retrolamblda
sageАноним 18/01/17 Срд 03:30:53 #372 №914259 
>>914245
Просто съеби.
Аноним 18/01/17 Срд 03:46:50 #373 №914266 
>>914258
>
>retrolamblda
Зачем оно мне когда Android n нативно фичи java 8 поддерживает?
Аноним 18/01/17 Срд 03:49:47 #374 №914268 
>>914266
Ну фигач на андроид Н, у которого 20% рынка, тогда. Нахуй спрашивать было?
Аноним 18/01/17 Срд 03:51:46 #375 №914269 
>>914268
Перепутал. Это у М 29 процентов. У Нуги меньше одного, лол.
Аноним 18/01/17 Срд 10:10:00 #376 №914360 
>>914245
>Раскидайте за Xamarin на визуал студии.
>Кто то хуячит на нем?
Я пишу в "Visual Studio for Mac" по факту это Xamarin Studio на макбуке, я же не биллибой какой-нибудь.

Все устраивает, подумываю написать что-нибудь на F#.
Аноним 18/01/17 Срд 10:11:55 #377 №914362 
maxresdefault.jpg
>>914230
>Парни, а фичи восьмой джавы в проектах уже можно использовать?
Да зачем оно надо когда есть Kotlin

Wharton рекомендует
Аноним 18/01/17 Срд 12:36:22 #378 №914435 
>>914201
ставишь таргет сдк и мин сдк и хуяришь и он будет на всех промежуточных сдк запускаться
Аноним 18/01/17 Срд 12:47:08 #379 №914442 
Как вы организуете архитектуру модулей в даггере?
Допустим, есть у нас ряд фрагментов, в каждый инжектится свой презентер, а в него - свой репозиторий. Скоуп один - @PerFragment.
1) Компоненты - каждый компонент на свой фрагмент. Модулей всего 3 и (один общий модуль на весь слой). Внутри модулей конфликты внедрения разрешаются с помощью @Named
2) С компонентами - аналогично, но внутри один общий модуль, где внедряется всё.
Аноним 18/01/17 Срд 13:00:19 #380 №914451 
>>914435
Распиши подробнее.
Аноним 18/01/17 Срд 16:01:32 #381 №914608 
>>914442
Бамп вопросику, анон. Алсо, почему почти не видно гитхабов и статей, где в ведроиде балуются асинхронной инициализацией графа? Боитесь попасть на мультидех из-за гуавы?
Аноним 18/01/17 Срд 19:10:54 #382 №914713 
>>914442
Ориентируйся на mosby/moxi
Аноним 18/01/17 Срд 20:56:10 #383 №914795 
Безымянный.png
Ананасы расскажите как лучше поддерживать размеры экрана? Лучше через layout-normal, large ,etc. или по dpi?
Аноним 18/01/17 Срд 21:32:51 #384 №914824 
>>914795
>Ананасы расскажите как лучше поддерживать размеры экрана?
Через здравый смысл дизайнеров и кастомные контейнеры ViewGroup
Аноним 18/01/17 Срд 21:34:47 #385 №914826 
>>914795
По dpi. Отдельные файлы конфгурации имеет смысл создавать, только если у тебя принципиально разные лэйауты для разных размеров экрана.
Аноним 19/01/17 Чтв 12:48:19 #386 №915095 
Привет всем.
Стоит такая задача: реализовать приложение с поддержкой AR - а точнее, чтоб при наведении камеры на некий объект к нему дорисовывался другой 3д-объект.
Какими средствами\библиотеками\интрументами такое можно реализовать на Андроид-студии? Кто с таким работал, как реализовывали? Желательно конечно, чтоб библиотека бесплатной была, но там уже как получится
Аноним 19/01/17 Чтв 13:12:33 #387 №915104 
>>915095
UNITY
N
I
T
Y
Аноним 19/01/17 Чтв 13:19:52 #388 №915109 
>>915104
не катит, нет времени в нем разбираться. Без юнити можно как-то?
Аноним 19/01/17 Чтв 14:37:49 #389 №915147 
>>915109
Можно конечно, но все равно сложно будет и если бесплатно так не быстрее точно.
Аноним 19/01/17 Чтв 14:38:40 #390 №915148 
>>915147
а какие варианты именно? можно поподробнее?
Аноним 19/01/17 Чтв 14:41:55 #391 №915150 
>>915148
Берешь OpenGL дроченый и рендеришь 3d модельки точеные.
https://developer.android.com/guide/topics/graphics/opengl.html
В лучшем случае сведешь это к библиотеке которая умеет что-то рисовать. Можешь конечно libgdx попробовать, но там полно подводных с ебаными модельками.
Аноним 19/01/17 Чтв 15:21:50 #392 №915172 
А может кто-нибудь тут может назвать best practise по использованию комбинации AccountManager + апишка с Retrofit с рассчетом на то, что каждый запрос к апишке содержит токен в Authorization хэдере?
Аноним 19/01/17 Чтв 15:30:46 #393 №915188 
>>915095
https://www.vuforia.com/
Аноним 19/01/17 Чтв 15:39:56 #394 №915195 
859470.png
Аноны надо сделать календарь, как на пике. Сделал ViewPager и в каждом фрагменте RecyclerView с GridLayoutManager. Но почему то создается по 500-700 viewholder'ов, хотя каждому фрагменту передаю RecycledViewPool с размером 42*3 (в каждом RecyclerView по 42 дня), где я обосрался?
Аноним 19/01/17 Чтв 15:50:05 #395 №915201 
>>915195
У них разные пулы же, а вьюпейжер создает несколько страниц сразу.
Аноним 19/01/17 Чтв 16:56:51 #396 №915248 
Наверняка здесь кто-то боролся с MIUI.
Проблема следующая:
1) В моем приложении есть пуши, когда приложение в форграунде, или в рисентах они честно приходят;
2) Как только я его убираю из рисентов пуши не приходят;
3) Та же проблема с телегой/вайбером;
4) Фейсбук от которого я ебал получать пуши исправно присылает их в любом состоянии, gmail тоже кажется;
Как починить для своего приложения. Используется пока GCM, FCM потом прикручу. MIUI 8.0.5.0 на основе зефирки.
Аноним 19/01/17 Чтв 17:06:30 #397 №915255 
>>915201
У меня один пул в активити, его берет фрагмент в onAttach
Аноним 19/01/17 Чтв 17:15:15 #398 №915261 
>>915248
Вероятней всего никак, зайди в тред вкусного мяумяу в моби, там треть треда про то, что пуши не приходят, и нужно пердолить энергосбережение и "замочки" для каждого приложения.
Аноним 19/01/17 Чтв 17:16:08 #399 №915262 
>>915261
Но для фейсбука же я ничего не делал, и он не вшит в прошивку, значит какие-то костыли есть.
Аноним 19/01/17 Чтв 17:16:52 #400 №915263 
>>915255
Значит этого пула мало, и так как требуется больше холдеров он и создает больше, для всех создавшихся страниц.
Аноним 19/01/17 Чтв 17:22:02 #401 №915265 
>>915262
Нет никакой проблемы зашить com.facebook.android в белый список на уровне ос.
Если бы это было так просто, то вотсапп бы тоже запилил, благо ресурсы у них есть.
Аноним 19/01/17 Чтв 17:22:49 #402 №915266 
>>915265
Фу фу, но это же пиздец.
Аноним 19/01/17 Чтв 19:21:38 #403 №915296 
>>915266
Welcome to the rice fields, motherfucker!
Аноним 19/01/17 Чтв 21:00:10 #404 №915354 
>>914451
заходишь в градл файл приложения и устанавливаешь там minSdkVersion, compileSdkVersion и targetSdkVersion. Ну и все собственно
Аноним 19/01/17 Чтв 21:19:07 #405 №915371 
Посоветуйте Xamarin дебилу минимальный набор СДК и экстры. А то не могу задеплоить прожку нормально.
Аноним 19/01/17 Чтв 21:52:55 #406 №915392 
1231.png
Ананасы, открываю проэкт как нормальный поц, а на выходе получаю говно какое-то. Которое даже компилиться не хочет, что я делаю не так ? И вообще дайте советов мудрых, как сделать волшебную кнопку которая бы отключала у меня в приложении всю рекламу. Это какой-то лютый пиздец, нихуя нормально инфы нигде нету.
Аноним 19/01/17 Чтв 21:59:48 #407 №915398 
>>915392
Попробуй открывать не корневую папку, а непосредственно сам проект. У него в корневом каталоге должен лежать build.gradle и settings.gradle
Аноним 19/01/17 Чтв 22:02:50 #408 №915401 
>>915398
Пробовал, нету у этого васяна нихуя
https://github.com/Suvitruf/Android-sdk-examples
Аноним 19/01/17 Чтв 22:19:10 #409 №915414 
>>915401
Ну и нахуй тебе это говно от васяна? Посмотри на дату, ему больше трёх лет.
Аноним 19/01/17 Чтв 22:27:42 #410 №915416 
123124.png
>>915414
На хабре статью нашел как отключать рекламу - https://habrahabr.ru/post/203368/
Там и пример этого васяна.
Ничего новее и вменяемее не нашел.
Хотя есть еще такой еблан - https://habrahabr.ru/post/233265/
Который вроде как посвежее будет, но его сорсы так же не открываются. Заебали.
Аноним 19/01/17 Чтв 22:34:30 #411 №915421 
>>915263
почему? Если в памяти всегда 3 фрагмента, то есть 42*3
sageАноним 19/01/17 Чтв 22:51:01 #412 №915433 
>>915416
Какая тебе нахуй реклама в приложении, если ты даже зависимости разрешать не умеешь? Съеби в js-тред.
Аноним 19/01/17 Чтв 23:32:46 #413 №915461 
>>915401
Делай не Open, а Import, чтобы сгенерировалась gradle-конфигурация.
Аноним 20/01/17 Птн 06:22:15 #414 №915539 
>>915433 Не неси хуйню долбоеб, моя зависимость у тебя во рту

>>915461 Спасибо ананас
Аноним 20/01/17 Птн 12:51:41 #415 №915656 
Как кодом скрыть клавиатуру от search view виджета экшен бара? Ни один пример из гугла не помог. Клавиатура остается открытый после смены фрагмента, который в свою очередь вызывает invalidateOptionsMenu();
Поисковой виджет является частью меню активити, так что после смены фрагмента он не уничтожается. При этом он ресет в нем происходит - поисковой запрос стирается а сам виджет сворачивается до обычной иконки, а вот клавиатура остается.
Аноним 20/01/17 Птн 12:59:20 #416 №915660 
>>915656
Пробуй лучше, нужно удалить фокус с серча. Может быть перекинуть его на невидимый элемент.
Аноним 20/01/17 Птн 14:31:24 #417 №915705 
В общем, анон виз проблем хир. Мне нужно открывать камеру и каждые, например, 5 секунд автоматически делать снимок и передавать его в мою аппку. Как это можно реализовать? В примерах, которые я находил, описывалось только как открыть камеру, чтобы пользователь сам сделал снимок, а потом этот снимок передался мне, что не есть гуд.
Аноним 20/01/17 Птн 15:16:33 #418 №915716 
>>915705
Значит тебе нужно использовать апи камеры самому.
https://developer.android.com/guide/topics/media/camera.html
Корпоративный чятик в условиях уебанской связи. Аноним 20/01/17 Птн 15:44:02 #419 №915727 
photo2017-01-1713-07-40.jpg
Приветствую, анон. Пишу тут корпоративное приложение, где есть чатик. Казалось бы, в чем вопрос, ведь чатиков на свете - миллионы? Но подъеб-таки есть. Многие сотрудники конторы постоянно находятся в жутких пердях, где мобильный инет - это очень вялый 2G. Из 3000 человек в таких условиях - порядка 2100. То есть очевидно, что с сокетами, которые для чатов - самый типичный метод, будет пичаль-бида. Нормально ли юзать long polling для получения сообщений? Вроде, он сюда подойдет, но как-то непривычно.
Аноним 20/01/17 Птн 15:46:07 #420 №915728 
>>915727
Что не так с сокетами + буферизацией?
Аноним 20/01/17 Птн 15:50:42 #421 №915730 
>>915728
Я не уверен, что хорошо будет работать в условиях, когда отправить 5кб - это достижение. Тот же Телеграм в этих пердях часто ведет себя неадекватно, пребывая в состоянии "Connecting" 3/4 рабочего времени. А вот всякие приложения, где "запрос-ответ" в чистом виде, хоть и со скрипом, но работают.
Аноним 20/01/17 Птн 17:10:05 #422 №915776 
Анончики, подскажите плиз, кто работал с технологией Miracast и внедрял ее в андроид приложения?

Тут такая загвоздка, что не получается добавить кнопку в приложение (MediaRouteButton), при нажатии на которую показывались бы все возможные экраны\телеки, на которые можно транслировать экран устройства.
Аноним 20/01/17 Птн 19:07:16 #423 №915843 
Анончики, кто ковырялся вот с этим
https://github.com/square/okhttp/tree/master/mockwebserver
говном? Как вам удавалось его запустить с OkHttp 3+ с роболектриком?
OkHttp 2 юзать не хочу, т.к. тогда придётся юзать первый ретрофит.
Ну или подскажите, что юзаете для мокинга вебсервера?
Аноним 20/01/17 Птн 19:16:09 #424 №915848 
>>915843
Кастомный интерсептор, который возвращает данные из файлов
Аноним 20/01/17 Птн 19:39:21 #425 №915873 
>>915716
Понял. Спасибо, анон, чекну.
Аноним 21/01/17 Суб 00:02:07 #426 №916017 

Репост из дотнет треда.
Кароче пытаюсь на ксамарине задеплоить прожку на свой телефон, так как эмуляторы проелтают из-за отсуствия апаратной виртуализации на ноуте.
Суть в чем. Прожка деплоится. Билдится. Тут все САЦЕСС.
На телефоне появляется окно только с названием моего хелоуворлда и иконкой. Но кнопки не проприсовываются. Блядь да что не так то? Сука.
Аноним 21/01/17 Суб 00:39:29 #427 №916041 
>>915730
Нормально все будет. Нормальные библиотеки вебсокетов имеют коллбэк, если вебсокет порвался. Можно еще подстраховаться и сделать перезагрузку сокета по получении бродкаста о смене состояния сети, и там уже в случае появления интернета можно опционально стянуть переписку с сервера, дабы проверить целостность.
Аноним 21/01/17 Суб 01:17:34 #428 №916070 
>>916017
> на ксамарине
> что не так то?
Аноним 21/01/17 Суб 07:04:38 #429 №916143 
>>915848
Такой вариант я и сделал. Просто думал, для этого юзают готовую хуйню.
Аноним 21/01/17 Суб 13:24:32 #430 №916243 
>>916041
Какие сокетные ведролибы посоветуешь, как нормальные для указанной задачи?
Аноним 21/01/17 Суб 13:51:16 #431 №916268 
>>916243
Я использовал okhttp-websocket, не жаловался. Тестировал и на хуёвом интернете, и на обрывах сессий со стороны сервера, и на выключении интернета на телефоне. Правда, на одном асусопланшете почему-то при выключении интернета не выдавался коллбэк onFailure, поэтому я нашаманил перезагрузку сокетов при получении бродката о смене интернет-соединения, как указал выше. И ещё у меня чат скачивается с сервера вроде в onStart соответствующей чатактивити, что, возможно, оверкилл. Но с таким решением у меня никогда на продакшене не было проёбов с пропущенными сообщениями.
Аноним 21/01/17 Суб 14:19:52 #432 №916289 
Screen Shot 2017-01-21 at 1.18.39 PM.png
Очень странная лажа со сборкой проекта.
В проекте два модуля - android и core. В core написана всякая libgdx поебень. Если выполнять installDebug/installRelease или полноценную команду заливки на телефон то все ок. Но стоит попробовать выполнить таску clean/assembleDebug/assembleRelease и все. Валится на шаге Calculate task graph. Чо за нахуй? Через консольку то же самое. Ошибка следующая:
A problem occurred configuring project ':android'.
> Could not resolve all dependencies for configuration ':android:_debugApkCopy'.
> Could not find com.android.databinding:baseLibrary:2.2.3.
Searched in the following locations:
file:/Users/anon/Library/Android/sdk/extras/android/m2repository/com/android/databinding/baseLibrary/2.2.3/baseLibrary-2.2.3.pom
file:/Users/anon/Library/Android/sdk/extras/android/m2repository/com/android/databinding/baseLibrary/2.2.3/baseLibrary-2.2.3.jar
file:/Users/anon/Projects/Android/<project_name>/sdk-manager/com/android/databinding/baseLibrary/2.2.3/baseLibrary-2.2.3.jar
Required by:
<project_name>:android:1.0
> Could not find com.android.databinding:baseLibrary:2.2.3.
Searched in the following locations:
file:/Users/anon/Library/Android/sdk/extras/android/m2repository/com/android/databinding/baseLibrary/2.2.3/baseLibrary-2.2.3.pom
file:/Users/anon/Library/Android/sdk/extras/android/m2repository/com/android/databinding/baseLibrary/2.2.3/baseLibrary-2.2.3.jar
file:/Users/anon/Projects/Android/<project_name>/sdk-manager/com/android/databinding/baseLibrary/2.2.3/baseLibrary-2.2.3.jar
Required by:
<project_name>:android:1.0 > com.android.databinding:library:1.2.1
<project_name>:android:1.0 > com.android.databinding:adapters:1.2.1
Аноним 21/01/17 Суб 14:28:23 #433 №916296 
>>916289
а разве assembleDebug/assemblerRelease не являются необходимыми для installDebug/installRelease? Проверь, при инсталле эти таски выполняются?
Аноним 21/01/17 Суб 15:33:05 #434 №916331 
Я какое-то время бугуртел на то что в андроиде нет % как в вебе, вместо них используются dp. Ведь как задавать размеры, если у двух экранов плотность одинаковая, а размеры экрана разные.

Но кажется понял, поправьте. Значит допустим у нас есть Linearlayout и в нем еще 3 linear'а. Мы не задаем размер дочерних layout'ов в dp, а работаем через вес.

А dp нам нужно для всяких отступов, для более тонкой настройки. Так все?
Аноним 21/01/17 Суб 15:36:10 #435 №916333 
>>916296
Я тоже так думал, но вот как-то же выполняется!
Аноним 21/01/17 Суб 15:44:39 #436 №916341 
>>916331
Нет. Ну или не совсем. Вес так себе штука. Тут как в вебе, надо шоб тянулось. Но есть же фиксированные элементы, они задаются через dp, и для несколько отличающихся экранов (количество dp, для планшетов например) могут фиксится. Это снимает с тебя заботу по ебле со скейлингом. Но нужно что бы дизайнер понимал что много чего тянется/сжимается. Есть вменяемые контейнеры, когда не хватает стандартных - PercentFrameLayout, PercentRelativeLayout, GridLayout (есть в стандартной, но лучше из саппортной), ConstarintLayout (beta).
Аноним 21/01/17 Суб 16:12:41 #437 №916358 
Enterprise Android: Programming Android Database Applications for the Enterprise кто-нибудь читал? Оттуда что-нибудь еще актуально?
Аноним 21/01/17 Суб 18:32:10 #438 №916414 
>>916341
Ага, еще фиксированные вью. Спасибо
Аноним 21/01/17 Суб 20:21:14 #439 №916470 
Работал ли кто-нибудь здесь с Layer-овскими WebSocket-ами, реально поднять за три дня на клиенте ?
Аноним 22/01/17 Вск 19:49:15 #440 №917336 
Снимок.JPG
На что эта санина ругается?
Где в этой ИДЕ настройки?
А то мне кажется он старую версию жабы использует. На компе 8 установлено.
Аноним 22/01/17 Вск 20:29:17 #441 №917381 
14387603139630.png
Кароче когда пытаюсь сделать вот такой финт ушами



TextView Vivod = (TextView)findViewById(R.id.textView1);
public void But1 (View view){
Vivod.setText("Вставьте хелоуворлд.");
}

То приложение крашится на деплое.
Если поставить ссылку на TextView1 и Вывод.Сеттекст в коментарии - приложение собирается нормально. Ну макет.
Что я делаю не так?
Как по другому обратиться к текствью для вывода своего текста?
Дебажу на телефоне с андройдом 4.1.2.
Аноним 22/01/17 Вск 20:43:57 #442 №917395 
>>917381
А что при краше пишет-то?
Аноним 22/01/17 Вск 21:23:42 #443 №917432 
blob
>>917395
Аноним 22/01/17 Вск 21:36:00 #444 №917448 
>>917432
Ты чё в onCreate внутрь метод пихаешь ещё ему? Полный код покажи, если да то не делай так, закрывай студию, открывай книгу по джаве и сначала там посиди немного.

Вот этого кода в onCreate достаточно что бы появился твой текст при сборке:
TextView Vivod = (TextView)findViewById(R.id.textView1);
Vivod.setText("Вставьте хелоуворлд.");
Аноним 22/01/17 Вск 21:39:47 #445 №917450 
>>916470
Ебать как актуально, остались сутки - у меня готова дай бог треть. Может у кого нормальное сек есть для этой параши? (из сдк нормальный не считается, ибо выглядит и работает хуже исходников ведра)
Аноним 22/01/17 Вск 21:43:14 #446 №917455 
>>917450
сдк - быстрофикс
Аноним 22/01/17 Вск 21:47:55 #447 №917462 
blob
>>917448
Так в он креате пихать эту дичь или за пределы?
Просто на декстопах обычно так.
Аноним 22/01/17 Вск 22:01:20 #448 №917477 
14381367191930.webm
>>917462
Мне нужно выводит текст по нажатию кнопки. А не во время запуска приложения.

И вообще какого хуя TextView Vivod = (TextView)findViewById(R.id.textView1);
Возращает Null?
Аноним 22/01/17 Вск 22:19:16 #449 №917500 
>>917477
Не null, а nullpointerexception. Ты применяешь метод findViewById к объекту класса Context, который ещё не проинициализирован. Перетащи метод в onCreate.
Аноним 22/01/17 Вск 22:22:48 #450 №917504 
>>917500
Перетащил но теперь в обработчике событий кнопки обьект не виден.
Аноним 22/01/17 Вск 22:26:07 #451 №917508 
>>917504
Сделай переменную vivod глобальной для класса, объявив её вне методов. А значение (через findViewById) присваивай уже в onCreate.
А вообще, ты слишком слабый, чтобы тут вопросы задавать. Сиди и дрочи мануалы из шапки, пока не поумнеешь.
Аноним 22/01/17 Вск 22:26:34 #452 №917510 
>>917504
А все, разобрался.
Аноним 22/01/17 Вск 22:29:48 #453 №917515 
>>917500
Ну вообщето null, ибо метод, с какого фига бы ему NPE кидать, активити то NonNull. NPE идет при попытке обращения по ссылке на View.
Вообще чет передернуло меня с фразы "возвращает NPE"...

мимокрокодил
Аноним 22/01/17 Вск 22:30:45 #454 №917517 
>>917508
Да тут последнее время не было ни одного нормального вопроса, ответа на который не надыбать на стеке. ИЧСХ даже два с половиной синьора куда-то съебали
Аноним 22/01/17 Вск 22:31:40 #455 №917518 
>>917515
Да, и правда.
Аноним 22/01/17 Вск 22:33:26 #456 №917521 
>>915727
Long polling вроде еще более неэффективный. Учитывая то, что получение сообщения - не важный эвент, подключи пуши, в которых у тебя будет тип изменения (create, update, delete), тип ресурса и id ресурса, который изменился. При получении - делай запрос. Так же можно в фоне SyncAdapter забубенить, он неплохо сочетается с пушами, к слову
Аноним 22/01/17 Вск 23:20:41 #457 №917570 
>>917517
То что ты задал на нориальный вопрос не тянет как-то.
Аноним 22/01/17 Вск 23:52:54 #458 №917599 
Посоны, чот нюфаня совсем запутался.
Бродил сейчас по хабру, читал всякие примеры, наткнулся вот на такое вот: есть некий класс, который не наследует никакие другие классы, не реализует интерфейсы. Но в конструкторе у него первой строчкой идет super();. Что автор этим имел в виду? И что за конструктор вызывается? Класса Object? Нахуя?
Аноним 23/01/17 Пнд 02:13:36 #459 №917668 
В чем может быть проблема - попробовал подключить OkHttp 3.5.0 с вебсокетами из коробки. Подключаюсь, передаю uri как указано в доках https://docs.layer.com/reference/client_api/websocket_api_overview , в формате 'uri','version', нифига не происходит. Убираю version - начинает триггериться onFailure. Но самое, сука, веселое, что даже не смотря на connectTimeout, нифига в логи не выводится. То есть соединение не открывается, в то же время не появляется никаких ошибок.
sageАноним 23/01/17 Пнд 06:07:46 #460 №917699 
>>917599
Показывай код или ебись сам.
>>917668
Показывай код и стектрейс или ебись сам.
Аноним 23/01/17 Пнд 10:07:06 #461 №917736 
Господа, посоветуйте кастомное превью типа
http://www.jimumirror.com
а то заебало пердолиться с багами стандартной.

Алсо, два месяца назад была тема, что firebase теперь облагается каким-то налогом. Поясните: testlab еще можно юзать бесплатно?
Аноним 23/01/17 Пнд 11:12:41 #462 №917765 
>>917599
Просто так вызвал, может быть раньше был абстрактный класс, это не мешает, но и ничего не меняет.
Аноним 23/01/17 Пнд 12:18:37 #463 №917810 
>>917699
блеять, стектрейса нету, в том то и дело, был бы - я бы сам все порешил. По итогу проблему решил, конечно, в доках не указано, но нужно добавлять 'layer-2.0' как субпротокол, иначе фейлится по-тихому/громкому
Аноним 23/01/17 Пнд 15:48:37 #464 №918078 
Поясните за восстановление стейта у кастомной вью. Смотрю я сорцы ImageView и не понимаю: как там сохраняется картинка при повороте? Если там заново вызывается конструктор - как определить в нём, что вьюшка пересоздаётся, и запилить новые значения, а не аттрибуты из XML?
Mobius 2017 Аноним 23/01/17 Пнд 16:18:08 #465 №918091 
3810d2c37e09f2ac82925dbc0b1cd482.png
Идет кто на Mobius 2017 https://mobiusconf.com ?

Все думаю стоит ли 12к на это дело тратить или нет
Аноним 23/01/17 Пнд 16:33:29 #466 №918097 
>>918091
>windows phone
хех
Аноним 23/01/17 Пнд 17:52:54 #467 №918146 
>>918097
ОС нужны много и разных, монополия Google уже давно ведет к застою мобильной разработки.
Только и обсуждаем android лайфциклы.

разработчик кроссплатформенных приложений
Аноним 23/01/17 Пнд 18:14:15 #468 №918155 
>>918146
Ну не обсуждать же покойников.
Аноним 23/01/17 Пнд 18:15:52 #469 №918156 
Никак не могу в толк взять, для чего этот параметр может пригодится?
public static Bitmap decodeStream(InputStream is, Rect outPadding, Options opts) {
//...
}
>outPadding
Когда его нужно использовать, для чего? Если нужна часть изображения что ли?
Аноним 23/01/17 Пнд 18:44:37 #470 №918165 
>>918156
> If not null, return the padding rect for the bitmap if it exists, otherwise set padding to [-1,-1,-1,-1]. If no bitmap is returned (null) then padding is unchanged.

Для 9-patch'a судя по всему.
Аноним 23/01/17 Пнд 19:22:18 #471 №918178 
Пытаюсь тут написать простое приложение для ВК, что бы отображать страницы, количество друзей и все прочее из его апи. Но до сих пор не понимаю как это дело работает.

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

Как вообще строится работа с апи сайтов? Вон, в том же демо https://github.com/codepath/android-rottentomatoes-demo описывают, что надо получить ключ. После того как я его получу - что дальше то?
Аноним 23/01/17 Пнд 22:15:00 #472 №918302 
>>918178
Почитай, как работают с REST API. Ключ будет передаваться в качестве параметра при запросе на сайт.
Аноним 24/01/17 Втр 12:27:12 #473 №918574 
>>918178
доки для кого созданы?
Такие как ты должны использовать сдк... Не лезь в рест
Аноним 24/01/17 Втр 16:13:28 #474 №918698 
привет, анонасы, кто в андроиде работал DisplayManagerCompat или DisplayManager? Или вообще делал приложухи с трансляцией определнного контента на большой экран программно
Аноним 24/01/17 Втр 18:18:05 #475 №918732 
Мне в ближайшее время предстоит учить людей разработке под Android в короткие сроки и практически с нуля. Вопрос собственно встал следующий - на примере чего показывать асинхронность (за ответ AsyncTask - выебу). Пока кандидата два, и оба они сулят попоболь обучающимся - rx и concurrent
Аноним 24/01/17 Втр 18:31:50 #476 №918737 
>>918732
Меня научи еще. Я до сих пор не понимаю чем лучше выполнять бекграунд джоб. Гугл рекомендует интентсервис, но там ебля с возвратом информации в активити.
Аноним 24/01/17 Втр 19:18:46 #477 №918771 
>>918737
Смотря что тебе нужно, не? Если долгосрочная важная операция, то вроде как sticky service - самое то
Аноним 24/01/17 Втр 19:57:45 #478 №918791 
>>918732
Выебу твою мамашу я. Чтобы показать ВСЕ подводные камни многопоточности в ведре - нужно сначала показать именно асинктаск, обработку поворота и т.д. - а потом показывать остальные средства.
Аноним 24/01/17 Втр 20:14:29 #479 №918800 
Ребят, а где лучше производить работу по запросу джейсонов, их обработке и обновлении вьюх? В UI потоке такое делать можно?
Аноним 24/01/17 Втр 20:22:35 #480 №918801 
>>918800
Ебашь всё в ui-потоке, всё-равно никто не узнает.
Аноним 24/01/17 Втр 20:31:33 #481 №918807 
>>918800
В сеть нельзя ходить в ui-потоке.
С другой стороны, изменять состояние вьюх можно только в ui-потоке.

Именно поэтому и используют AsyncTask, метод doInBackground которого выполняется в новом треде, а метод onPostExecute снова в ui-потоке.

Когда разберешься с этим, читай про RxJava, которая позволяет выполнять такое переключение потоков гораздо удобнее.
Аноним 24/01/17 Втр 20:33:43 #482 №918809 
>>918807
Спасибо!
Аноним 24/01/17 Втр 21:31:53 #483 №918841 
>>918791
Зачем показывать асинк таск если человек знает что такое анонимный класс и чем чревато его использование, а так же представляет себе жц в ведре ? Гораздо логичнее сказать, почему его НЕ следует использовать, и показать что следует и как использовать
Аноним 24/01/17 Втр 21:32:55 #484 №918842 
>>918800
запрос - io, маппинг-хуяппинг - computation, отображение - ui. Это если дружишь с rxJava
Аноним 24/01/17 Втр 21:34:36 #485 №918844 
>>918807
можно, но негоже. В подтверждение своих слов:
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

по первой ссылке на стек. Другое дело, что религия должна запрещать
Аноним 24/01/17 Втр 21:45:08 #486 №918847 
>>918842
И как заставить его хуярить все это дело в retrofit'e? Я так понял там респонс конвертится в том же потоке что и скачивание.
Аноним 24/01/17 Втр 21:57:19 #487 №918853 
>>918847
Первая ссылка в гугле.
Аноним 25/01/17 Срд 00:24:02 #488 №918950 
Раскидайте за учебник Герберта Шилда по Джаве.
Аноним 25/01/17 Срд 00:30:13 #489 №918958 
>>918091
>Все думаю стоит ли 12к на это дело тратить или нет
Решай сам насколько для тебя это будет полезно.
Вот примеры с братской Украины:

http://ebanoe.it/2016/12/06/hackit-2016-review/
http://ebanoe.it/2016/11/30/hackit-2016-fanboy/
http://ebanoe.it/2017/01/16/antikonfa-review/
Аноним 25/01/17 Срд 00:38:19 #490 №918968 
>>917521
А сами пуши через что работают, не через лонгпулинг ли?
Аноним 25/01/17 Срд 11:02:54 #491 №919117 
>>918950
Это не учебник а скорее справочник. Но годный. Не повторяй моих ошибок - не вкатывайся начиная с него.
Аноним 25/01/17 Срд 12:16:17 #492 №919144 
>>918853
Чет не нашел. Все замусорено записями типа rxJava + Retrofit + Gson = супер пупер и тд.
Аноним 25/01/17 Срд 12:26:34 #493 №919145 
>>918847
Ретрофит по дефолту оперирует данными в двух форматах, первый - если ты обозначаешь напрямую в сигнатуре метода возвращаемое значение - блокирующий вызов, происходит на потоке, в котором он, очевидно, вызван. Втрой вариант - указать в сигнатуре метода коллбэк. В таком случае запрос будет выполнен асинхронно, и результат будет получен в коллбэке
Аноним 25/01/17 Срд 12:27:36 #494 №919147 
>>919144
Ну вообще записи таки не врут, реально охуенчик выходит. Но для собственного развития можно пару-тройку раз и без ретрофита и без rx и без gson все проделать, чтобы суть уловить
Аноним 25/01/17 Срд 12:28:29 #495 №919148 
>>919144
Лови хороший гайд по ретрофиту, первые пара уроков ответят на твои вопросы:
https://futurestud.io/tutorials/retrofit-2-manage-request-headers-in-okhttp-interceptor
Аноним 25/01/17 Срд 12:50:16 #496 №919163 
>>919145
>>919147
>>919148
Я это знаю, я давно пользуюсь вторым ретрофитом с rx.
По дефолту методы не сабскрайбятся на каком-либо шедулере, я использую RxJavaCallAdapter c Schedulers.io (так что все запросы происходят на io), в (>>918844) посте я видел что мол можно назначить десериализацию/сериализацию на computation, меня заинтересовала эта возможность, так как я ее раньше не видел. Сейчас прологал тред в кастомных десериализаторах gson'овских, получил что это тред на котором произошла подписка (то есть io по понятным причинам). И возник вопрос можно ли в сеть ходить в io, а десериализовать уже в computation, и что для этого нужно сделать. Пока подтверждается моя мысль:
>респонс конвертится в том же потоке что и скачивание
Аноним 25/01/17 Срд 12:57:29 #497 №919172 
>>919163
самый простой вариант, который приходит на ум, чтобы удостовериться в десериализации на computation - обозначить для получения JsonObject, и парсить в .map перед которым поставить .observeOn(computationScheduler)
Аноним 25/01/17 Срд 13:08:55 #498 №919180 
А кто-нибудь вообще здесь concurrent на прямую использует ?
Аноним 25/01/17 Срд 13:19:26 #499 №919188 
>>919172
Так себе вариант, а если я захочу на Jackson/Protobuff пересесть? Легче просто оставить его десериализовать на io, не думаю что от computation будет какой-то весомый выигрыш.
>>919180
В библиотеке для рекламы использовал, но там все самопальное было, никаких retrofit, gson, rx или даже async task'ов.
Аноним 25/01/17 Срд 16:13:56 #500 №919277 
>>918732
>Вопрос собственно встал следующий - на примере чего показывать асинхронность

CompletableFuture конечно же - это стандарт промисов на JVM
Аноним 25/01/17 Срд 16:23:03 #501 №919282 
>>919188
А в чем проблема то ? Ну перепишешь ты алгоритм маппинга, сложно что-ли ?
Аноним 25/01/17 Срд 16:23:58 #502 №919283 
>>919277
То есть нет смысла давать полный объем concurrent-а или заставлять работать ручками с Thread-ами ?
Аноним 25/01/17 Срд 17:02:15 #503 №919298 
>>919282
Что бы это сгородить в одном месте это можно сделать только в CallAdapterFactory, но таким образом ты проебываешь возможности самого ретрофита, который делегирует это выбранному конвертору, еще и нагружаешь CallAdapterFactory ненужной работой.
Аноним 25/01/17 Срд 19:11:00 #504 №919357 
А кто-то пытался здесь сделать сквозное кэширование через SQLite со сроком жизни записей и работой через SyncAdapter ?
Аноним 25/01/17 Срд 22:10:56 #505 №919481 
Поясните ньюфагу за запил своего View по шаблону из лейаута.
В смысле, я находил много статей типа "Создаем кастомный View-элемент", но для отрисовки везде используется канвас и рисование в нем. А можно взять как-то готовую xml-разметку лейаута и по ней запилить класс для вью?
Аноним 25/01/17 Срд 23:31:54 #506 №919539 
ПЕРЕКАТ https://2ch.hk/pr/res/919538.html

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

ПЕРЕКАТ https://2ch.hk/pr/res/919538.html
comments powered by Disqus

Отзывы и предложения