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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
785 Кб, Webm
Android Development Thread 2.1.1 #940781 В конец треда | Веб
Android Development Thread 2.1.1

> Хочу вкатиться в разработку под Android! С чего начать?


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

> Мануалы?


- Официальная документация: 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.

> Есть что-то кроме нативных приложений на Java/Kotlin?


- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- 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/919538.html (М)
#2 #940902
>>940781 (OP)
Вкатываюсь, тут же реквестирую способ сделать живые обои. В инете лежат способы через канвас, но они 10% цпу кушают. Видел еще идею через опен гл. Загнать все картинки в массив и крутить
941106950836950838
#3 #941106
>>940902
Стандартные же есть. Открой исходники и посмотри
941306950836950838
#4 #941200
Есть варианты отобразить картинку с возможностью приближения/удаления/скролла без ебли с самостоятельной реализацией всей хуйни?
941221950836950838
#5 #941207
Аноны я слишком тупой что бы вкурить примеры с гита Сторио. В нете туторов не от слова совсем. Кто нить может дать примитивный пример получения данный из провайдера? У меня есть связка из контракта, sqlhelpera и провайдера. Лоадер грузит это и пилит даные в объект. Как все это перевести на рельсы storio?
#7 #941224
Как делать репозиторий, если мне помимо круда, надо скачивать хуйню из сущность по url, загружать ее на один из серверов (по выбору), а также получать джоином из базы вместе с другой сущностью
941225950836950838
#8 #941225
>>941224
Разные dataSource объекты, репозиторий занимается обработкой цепочки. С rx легко и удобно.
#9 #941265
Ананасы, как в полноэкранном приложении отключить появление статусбара при свайпе с верхнего края экрана вниз? Ведро 7.1.
941329950836950838
#10 #941306
>>941106
Смотрел те, где куб вращается, там просто транформация линий, не совсем то что я хочу реализовать. Мне бы или гифку проиграть или массив картинок без нагрузки на цп. Но наверное только и остается сорцы чужие смотреть. Энивей спасибо.
#11 #941329
>>941265
Да вроде никак, у юзера всегда должен быть доступ к статус бару.
#12 #941569
Пытаюсь убрать овердро в своем приложении, но столкнулся с такой вещью - у меня есть экран, на котором расположены текствью с полупрозрачным фоном, а бэкграунд экрана это изображение. На самом бэкграунде овердро нет, но на этих вьюхах оно >=4. Если я меняю фон с прозрачного на непрозрачный, оно становится =2. С этим можно что-то сделать или такая сильная перерисовка плата за красивый полупрозрачный фон?
941600950836950838
#13 #941600
>>941569
Прозрачность это дорого.
#14 #941606
Могут ли возникнут какие-то проблемы, если использовать внутри rx-операций(которые происходят не в мейн потоке) поля активти/фрагмента, которые инжектятся дагером. Инжектятся в onCreate, а создание всех подписок происходит в onResume, отписываются в onPause?
941879950836950838
#15 #941643
>>941207
Бамп. Туторов точно нету.
#16 #941712
PackageManager.getApplicationIcon() дает иконки разного разрешения в зависимости от текущего разрешения экрана.

Как получить иконки не больше чем xhdpi?
#17 #941876
>>940781 (OP)
Сложно ли сделать кейлоггер(с высылкой данных на мой аппарат) для телефона тянки? Какими средствами это можно реализовать?
#18 #941879
>>941606
Могут.
sage #19 #941881
>>941876
Пошёл нахуй.
941953950836950838
#20 #941953
>>941876

>Какими средствами это можно реализовать?


Гугли winapi lowlevel hook, raw input. Еще тебе надо будет написать панель на пхп, куда будут высылаться логи.
>>941881
Сам иди нахуй.
941954950836950838
#21 #941954
>>941953

>winapi


причем здесь ведро, малохольный?
#22 #942351
Запилите уже нормальную шапку без этой всрахи с сальными волосами
942566950836950838
#23 #942403
Андроны, есть одна база , она создалась всё заебись, но когда я меняю в ней данные, они нихуя не меняются.

>"CREATE TABLE IF NOT EXISTS "



Пытался перед этим делать

> DROP TABLE IF EXISTS



Но такое чувство что программе по сути дела похуй на базу. Она как буд-то один раз создалась и всё, потому-что когда удалил/переустановил приложение появилась уже ошибка, что дропать таблицу нельзя и иди нахуй. Какого хуя эта ошибка до переустановки не появлялась?
942414950836950838
#25 #942472
Чопоны. buildToolsVersion, compileSdkVersion и targetSdkVersion нужно ставить в максимальные, когда создаешь новый проект?
Если да, то норм ли будет работать приложение на говноустройствах, если я активно начну угорать по лямбдам и прочей вкусовщине 8 жабы?
942477950836950838
#26 #942477
>>942472

> говноустройствах


Только лямбды бэкпортнуты до 8 апи.
942515950836950838
#27 #942495
Как сделать чтобы imageView перекрывал кастомный view (линию)?
Тоесть чтобы imageView был сверху и линию не было видно
70 Кб, 1001x803
#28 #942499
Почему у меня два раза отправляется запрос, хотя я всего один раз вызываю функцию для отправки? Я как-то не так сохраняю observable?
#29 #942504
>>942499
Ой бля, забыл добавить, что это происходит при повороте экрана.
#30 #942511
>>942499
А кеш то твой где валяется? А вообще вроде как тут: https://github.com/NYTimes/Store решили эту проблемку и если запрос еще идет то ты к нему подключишься.
942517950836950838
#31 #942515
>>942477
Ты имеешь в виду джек?
942521950836950838
#32 #942517
>>942511
mObservablesCache - это синглтон который я инжекчу через даггер.

>и если запрос еще идет то ты к нему подключишься.


Вот мне это в идеале и нужно. Хочу разобраться как делать долгие запросы и при перевороте экрана подключаться к уже существующим, а не создавать новый. Погляжу, спасибо.
942547950836950838
#33 #942521
>>942515
retrolambda
#34 #942547
>>942517
Если продолжаешь пилить свой велосипед, то прочти вот это - https://www.captechconsulting.com/blogs/a-mvp-approach-to-lifecycle-safe-requests-with-retrofit-20-and-rxjava
942569950836950838
1068 Кб, Webm
#35 #942566
942923950836950838
#36 #942569
>>942547
Да, я видел эту штуку. У меня почти тоже самое, только они юзают cache (preparedObservable = preparedObservable.cache()), а как я понимаю он копирует ответ (или может я не так понимаю?), а мне надо чтобы к тому же самому реквесту можно было подключиться (например когда фотки на сервер заливаешь).
942660950836950838
#37 #942660
>>942569
Нет, оно создает обсервбл к который будет эмитить тоже самое что и исходный, второго запроса не будет, а результат будет сохарнен и выдан другому подписчику.
942925950836950838
#38 #942923
>>942566
Чё за лярва страшная?
48 Кб, 902x979
#39 #942925
>>942660
В общем да. Сделал с cache и всё заработало. Единственно что, вместо LruCache заюзал Map обычный, потому что от кеша толку нет - один хуй нужно удалять свой observable из него вручную (в onNext и onError), иначе оно всегда будет его возвращать и запроса нового не будет.
943063950836950838
#40 #943034
Аноны, подскажите - добавляю в студии на Activity элемент Image Button, убираю фон, устанавливая в Transperent Color и... у кнопки пропадает "анимация" нажатия.
Как с этим бороться?
Если фон не убирать, то при добавлении PNG без фона фон кнопки отличается от фона окна приложения.
Первые шаги в Андроид Деве, делаю по сайту Климова, у него ответа на этот вопрос не нашел.
#41 #943063
>>942925
В общем, ты переизобрел store, на который тебе кидали ссылку.
943072950836950838
#42 #943072
>>943063
Ну бля, чёт не очень хочется подключать ещё одну либу только ради того, чтобы можно было приаттачиться к старому запросу. Да и тупо хотелось разобраться самому как это делается.
#44 #943227
>>941207
Документация там плохая.
Возможно ли в Store.IO описывать структуру таблиц классами, как в cupboard?
#45 #943272
>>943168
Я два дня втыкал пока понял что typeMapping генериться при компиляции.
#46 #943275
Есть один метод, он запускает активити, которая вытягивает картинку из галереи. Как описать событие, которое происходит, пользователь закенселил выбор картинки?
943292950836950838
#47 #943292
>>943275
В onActivityResult resultCode будет RESULT_CANCELED
#48 #943295
>>943227
Ага, вижу. Надо самому запросы писать.
В целом Store.IO всё равно страшно хороша.
#49 #943326
>>943227

> Документация там плохая.


Открой пул-реквест и улучши её. Или хотя бы issue создай и опиши, что тебе там непонятно.
943370950836950838
#50 #943370
>>943326
Не подскажешь как запилисть update данных?
943376950836950838
#52 #943411
>>943376
мне нужен PutResolver же? Или можно как то проще? Тупо в ContentValues запихнуть например айдишник не получиться?
9855 Кб, Webm
#53 #943634
Сап прогач, скажи как называется язык програмирования/автоматизации для андроида(аналог autoIt для винды), такой язык, которым можно тыкать по эмулированному андроиду через adb в винде, закачивать контакты, и так далее, и тому подобное.
С меня няша видиорелейтед
943647
#54 #943647
>>943634
Espresso?
943668
1172 Кб, Webm
#55 #943668
>>943647

>Espresso


Добра тебе анончик, вывело на статью на хабре на все остальные языки автоматизации для андроида
943672946590
#56 #943672
>>943668
И что в итоге выбрал?
943677
#57 #943677
>>943672
Пока ничего, пойду искать фрилансера, т.к. пишу на шарпах
71 Кб, 981x645
#58 #943879
Анон, дай книгу, прочитав все которую, я бы смог собрать приложение на андроид в андроидстудио.
Жаву знаю.
943889
#60 #943903
Зачем нужны приложения на андроид?
Ведь сейчас у каждого сайта есть адаптивная мобильная версия.
Судяьпо новостям, юзеры пресытились аппликухами
#61 #943911
>>940781 (OP)
Антуаны, есть вопрос по ретрофиту и интентам.
В общем, есть у меня два Activity. В первом у меня RecyclerView, в ViewHolder этого ресайклера при выборе элемента создается интент и после этого происходит переход на второе Activity. Там в onResume я делаю enque. Когда я возвращаюсь в первое и снова вызываю второе Activity, у меня вместо двух запросов к серверу делается сразу 4, в следующий раз - 6, ну итд. Вопрос: это косяк на стороне ретрофита или интентов? И как исправить, чтобы число запросов не увеличивалось?

Вот первый Activity
https://github.com/TheKlash/MyWeather/blob/master/app/src/main/java/ru/nway/myweather/activities/CitiesActivity.java

Вот второй
https://github.com/TheKlash/MyWeather/blob/master/app/src/main/java/ru/nway/myweather/activities/WeatherActivity.java

Вот их контролер
https://github.com/TheKlash/MyWeather/blob/master/app/src/main/java/ru/nway/myweather/activities/Controller.java

Простите, что без коментов
943912
#62 #943912
>>943911
В контроллере находится RecyclerView
#63 #944117
Както из адаптера можно выдернуть позицию зная данные элемента?
944121
#64 #944121
>>944117
Есть метод getPosition()
944128
#65 #944128
>>944121
как выдернуть все холдеры и получить даные хранящиеся в них?
944130944146
#66 #944130
>>944128
и когда я найду соответисвие с тем id что есть у меня тогда я из него и вытащу позицию.
#67 #944142
>>943376
А в как сторие решает что вызвать из putResolver?
#68 #944146
>>944128
А ты как холдеры формируешь?
Я тут недавно писал похожую хуйню, так вот я написал метод в дб хелпере, который возвращал мне лист обьектов, которые я заганял в холдер
944161944164
#69 #944161
>>944146
Я лист заганяю в ресайклр, а в холдоре есть привязаный элемент. Извне я получаю какие то данные, обновляю бд и что бы не перезагружать весть лист в ресайклре я хочу сравнить мои данные с данными в холдерах, найти нужный холдер и наконец получить его позицию.
#71 #944310
Как правильно пилить коллбэки на системный события типа onClick() в активити/фрагментах - отдельным анонимным классом, или все интерфейсы имплементить у активити? При втором способе можно в иерархии переопределять какой-нибудь клик без проблем, но класс засирается хуйнёй-малафьёй типа onClickXXXX
944316
#72 #944316
>>944310

>иерархия


Старайся этого избегать по максимуму. Композиция наше все.
944513
#73 #944513
>>944316
Почему? Основа ООП - это ведь инкапсуляция, полиморфизм и наследование
944515944516
#74 #944515
>>944513
Вот и наследуйся от интерфейсов, а в нормальных языках от трейтов.

>Favor 'object composition' over 'class inheritance'.


Читай паттерны.
944536
#75 #944516
>>944513
Это хуевое ООП из 90х. Нормальное ООП - это обьекты и связи между ними.
#76 #944536
>>944515
Интерфейсы реализуют, а не наследуются от них.
944541944553
#77 #944541
>>944536
проиграл с умника
#78 #944553
>>944536
Бля пиздос как же жить теперь.
#79 #944623
Андроид студио не видит мой говносмарт, процессор не поддерживается для нормального эмулятора в ней. Будет совсем уебством использовать сторонний эмулятор, типа AndyOS или BlueStacks, каждый раз устанавливая в него сбилденный апк?
944629944641
#80 #944629
>>944623

> Андроид студио не видит мой говносмарт


Драйвер накатил? USB дебаг включил?
944827
#81 #944641
>>944623
Universal adb driver попробуй
944827
#82 #944717
Как вам идея, сосоны:
1) Весь код вьюх ебашить во фрагментах (profit: иерархия и т.д. не дублируется на активити)
2) Юзать одно активити для нескольких разных экранов, которому при вызове передавать в bundle код фрагмента, который надо запустить?
944732944774
#83 #944732
>>944717
С подключением.
#84 #944774
#85 #944827
>>944641
>>944629
Спасибо, аноны, получилось.
Не передается savedInstanceState #86 #944836
Создаю Intent, создаю bundle, вызываю startActivity, в Activity в метод onCreate не передается Bundle. В чем может быть проблема?
944843947534
#87 #944843
>>944836
Он в getIntent отсутствует?
944853
#88 #944853
#89 #944862
Есть активити с recyclerView, из него я через fab вызываю activityForResult - AddRecord, на резалте обновляю лист, который формирует recyclerView.
Из адаптера я тоже вызываю addRecord, но просто через startActivity.

Если я после того как вызвал addRecord из адаптера вернусь на активити с RecyclerView то сработает ли метод onActivityResult в нем?
944870
#90 #944870
>>944862
Если нет, то есть ли метод, который сработает, когда я возвращаюсь к активити из любого другого?
945010
#91 #945010
>>944870
старт резюме рестарт
#92 #945932
Следите за руками:
Приложение без упоминания камеры в манифесте просит запустить камеру для захвата все ок.
Приложению добавляется пермишен камеры в манифесте, потому что в другом месте нужен прямой доступ к камере, в том месте добавляется запрос на пермишен и все хорошо, теперь если в том месте где просто запускается интент нет полученного пермишена на камеру, то кина не будет и НИКАКОЙ ОШИБКИ ТОЖЕ НЕ БУДЕТ, НИ В ЛОГЕ НИГДЕ, БЛЯТЬ ЧТО ЗА ХУЙНЯ НАХУЙ ПРОСТО. Это вообще хоть где-то задокументировано, может это конечно хуйня специально от MIUI, но у меня есть неприятное ощущение что нет.
945984946015
#93 #945984
>>945932
а теперь внятно.
#94 #946015
>>945932
Умерьте свой пыл для начала, господин.

> Это вообще хоть где-то задокументировано


https://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE

> Note: if you app targets M and above and declares as using the CAMERA permission which is not granted, then attempting to use this action will result in a SecurityException.

946022
#95 #946022
>>946015
Спасибо, тогда где эксепшн? Остальные сесюрити эксепшн норм кидались.
#96 #946511
У кого есть тестовый проект по реализации апи клиента на ретрофите и, может быть, rx? Сейчас мой клиент написан на голом okhttp с кастомными коллбеками, а это не очень хорошо.
#97 #946544
>>946511
А зачем тебе чужой проект? Вот очень понятная статья про основы Retrofit'a https://habrahabr.ru/post/314028/
946558
#98 #946547
946558
#99 #946558
>>946544
Основы я умею. Мне бы на архитектуру правильную взглянуть.
>>946547
Сейчас почитаю, что там. А у тебя нет этой книжечки? https://futurestud.io/books/retrofit
#100 #946590
>>943668
кстати тут найдется хотя бы один анон который шарит в автоматизации тестирования на андроид? заплачу, надо сделать приложку, которую я смогу контролировать через адб
946737953229953230
#101 #946640
>>946511
Как правильно отменять запросы в ретрофите, чтобы после дестрой сервиса/активити не поймать вызов коллбека.
946641
#102 #946641
>>946640
>>946511
Потерял знак вопроса, извиняйте.
Ретрофит подразумевает что ответ от сервера прийдет известной структуры, как быть, если сервер присылает 2 разных ответа и их надо разобрать?
946948
#103 #946737
>>946590
А Spoon не подходит?
946831
#104 #946831
>>946737
шта такое спун?
97 Кб, 500x528
#105 #946871
Анон, делаю что-то типа блокнота
Не могу понять, как реализовать печать жирных или кривых символов
Чтобы не весь EditText стал жирным/кривым, а только новые символы
946879
#106 #946879
>>946871
SpannableString гугли
#107 #946948
>>946641
Свой десериализатор мути.
#108 #947112
>>940781 (OP)
Какую полезную библиотеку для ведра можно запилить? Есть какие-нибудь реквесты?
#109 #947163
Возможно будет нубский вопрос, который тут задавали миллион раз.

Сценарий:
1. Если юзер не залогинен, то показываем ему форму логина. После успешного логина перекидываем в рабочую область приложения
2. Если юзер залогинен, то показываем ему рабочую область приложения

Вижу несколько путей решения:

1. Делаем все в мейнактивити фрагментхосте. В зависимости от статуса авторизации, показываем фрагмент логина или фрагмент рабочей области
2. Создаем LoginActivity, которая является активити лунхера. Если юзер уже авторизован, то она делает редирект на MainActivity.

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

Может кто подскажет, как это в общем случае делается по феншую?
947168949438
#110 #947168
>>947163
А ты не подумал, что будет удобнее в onResume MainActivity проверять, залогинен ли юзер, а если нет, то отправлять в LoginActivity?
947172947217949441
#111 #947172
>>947168
А это хорошая идея. Спасябки. Не подумал, т.к. только вкатываюсь и не прорабатывал типичные сценарии.
#112 #947217
>>947168
почему в onResume?
947285
#113 #947285
>>947217
Тащемта правильно все. Если в onCreate, то будет фейл, если токен протух, пока ты сворачивал аппликуху.
4065 Кб, Webm
#114 #947335
Анончик, хочешь заработать пару подорожников за несколько часов?
есть ТЗ:
Необходимо написать приложение, которое будет осуществлять доступ к автоматизациии симулятора (espresso/robotium/UIautomator) андроид через adb. К примеру клик по координатам, отправка текста, удаление/загрузка контактов, изменение build.prop, пролистывание экрана и т.д.
Оче надо держи видиорелайтед для настроения
и мыло на всякий trixv7Fter.imdANUSyZk&andexPUNCTUMrRx\u
126 Кб, 1501x892
#115 #947344
Нид хелп. Когда юзал активити все было нормально - клава тупо сдвигала все вверх. Перешел на фрагмент - и клава рушит верстку(Релятивка, нижние елементы привязаны к углу, и размер картинки меняеться). Как пофиксить?
947525
#116 #947493
>>947335
А зачем тебе это?
947517947606
#117 #947498
>>943227
нет, это не орм, то, что там есть маппинг на базе annotation процессоров ничего не значит
#118 #947517
>>947493
Что зачем? Мне нужно что бы пик 1 от клавы просто сдвигался вверх а не менял размери елементов.
947522
#119 #947522
>>947517
Это был вопрос на пост выше
947543
#120 #947525
>>947344
Поставь что эти значки под последним инпутом, тогда их спрячет, а не поднимет.
947544
#121 #947534
>>944836
В том что его нужно из getIntent брать...
#122 #947543
>>947522
сори, в глаза ебусь
#123 #947544
>>947525
трабла в том что ещё картинка меняеться
947548
#124 #947548
>>947544
Поставь ей фиксированный размер и не будет менятся, можешь вообще в ScrollView хуйнуть и поставить ему fillViewPort=true
947554
#125 #947554
>>947548
1 - низя. Картинка не фиксированая тянеться пикасой и хоть как то подгоняеться. 2 - попробую отпишусь
947584947600
#126 #947584
>>947554
Поменяй скейл тайп и пикасса срать не будет.
#127 #947600
>>947554

>тянеться


>подгоняеться


Ты ведь специально, да?
947637
#128 #947606
>>947493
чтобы ты анон спросил, хочу управлять андроидом через винду, ботов там писать
947760
#129 #947637
>>947600
Простыл малось - жопой думаю и в глаза с утра ебусь. Прошу извинения
#130 #947667
Господа, а есть ли где-нибудь гайдик по оптимальному парсу курсора для комплексных (вытянутых с кучей join-ов) сущностей ?
948336
#131 #947670
>>940781 (OP)
Подскажите, что под андроид можно написать дельного, кроме игрушек.
Хочу вкатиться, но так он мне как говно без зодач.
#132 #947679
>>947670
Мобилки вообще говно без задач, лучше учи хаскель.
#133 #947684
>>940781 (OP)
Соус шебм.
950079
#134 #947692
>>947670
Напиши клиент для какого-нибудь апи. Для твиттера, вкашечки, гитхаба, редтьюба.
947727
#135 #947727
>>947692
Прямо весь клиент? Или, например, смотрелку фоток?
947737
13963 Кб, Webm
#136 #947736
>>947335
БамП
#137 #947737
>>947727
Смотрелка фоток - это 2 главы в учебнике Big Nerd Ranch. Хош вкатиться - пили монстра. Игрушки к андрои деву не имеют абсолютно никаго отношения.
947743
#138 #947743
>>947737
Да ты угораешь? Авторизация + запросы к сети + архитектура + сохранение стейта + либы.
Почти у всех знакомых ведроид-разрабов на гугл-плее висит всякая залупа вроде крестиков-ноликов и погодного сервиса.
947808
sage #139 #947760
>>947606
Нахуй проследуй.
947891
#140 #947807
>>947670

> но так он мне как говно без зодач.


Так и есть. Если есть на примете что-то более интересное, то лучше не вкатывайся вообще сюда.
#141 #947808
>>947743
лулз в том что можно и без этого. А можно запилить крестики и погоду со всем этим. Эти знакомые могли стать девами в славные времена когда все что нужно было - это сказать да на "знаешь яву?". Сейчас же у нубов все в реактивщене и юзаньи апишников соц сетей. Вкатыванье становиться сложнее и правельно.
#142 #947846
Есть вопрос к тем, кто работал с vk sdk. Нужна реализация поиска юзверей, похожая на ту, что есть на самом сайте. Т.е. по городу, универу и тд. Есть какие либо готовые реализации этой ебалы? Или самому пилить нужно будет?
#143 #947891
>>947760
мамашу свою нахуй проведи, долбаеб
Что тут нет анонов, которые за хуйню работы, денег получить не хотят?
947946
sage #144 #947946
>>947891
Я тебя в рот, ебал, скотина обоссаная. Съеби нахуй из треда.
#145 #948336
>>947667
UPD: так же ищу всевозможные оптимизации. Из того, что уже есть - использование кэша для индексов курсора, дабы не искать каждый раз индекс для названия колонки. Ориентировочно, каждый ответ от бд (каждая сущность) выходит на примерно 150-200 строк (спасибо, joinы...), так что ориентир по большей части на эффективный парсинг join-курсора.
948344948349
sage #146 #948344
>>948336
Какой нахуй парсинг курсора? Что ты несешь, наркоман?
Объясняй нормально, что ты хочешь и код показывай.
948445
#147 #948349
>>948336
Делаешь один раз getColumnIndexOrThrow для каждой колонки и потом по этим индексам тягаешь, а вообще не надо там курсор дрочить по углам, шабить SQLiteHelper, что в общем одно и тоже.
#148 #948401
Замена синглтона:
Service vs Компонент даггера с аннотацией Singleton?
948421
#149 #948421
>>948401
Сервис будет жить после закрытия приложения, а компонент - нет.
41 Кб, 992x738
#150 #948423
Антоны, а как такое может быть? Уникальных пользователей 57 , а купили всего 19 человек. Не значит это что где-то апк слили?
#151 #948445
>>948344
Парсинг сложных данных в курсоре в сущности (читай POJO с кучей списков)
#152 #948449
Как сделать колапсинг тулбар как в гугл плее? Сначала он прозрачный, а потом становится солид.
7 Кб, 257x235
#153 #948512
При каждом создании проекта появляются одни и те же файлы.
Как их окончательно выпилить??
948519
#154 #948519
>>948512
Не знаю что за первый файл, но второй для планшетов. Поставь себе нормальный вид проекта и поймешь - project вместо android
948526
788 Кб, 512x512
#155 #948526
>>948519
Пикрелейтед.
Я добавлял эту картинку в папке res, правой кнопкой new->image assets
Она теперь постоянно импортируется и вызывает ошибки.
948533
#156 #948533
Сам разобрался
Удалил файл по ссылке C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\res\mipmap-xxxhdpi
>>948526
#157 #948552
>>947335
бамп
#158 #948670
А кто какие исключения отлавливает, делая http запрос ? Из очевидного только UnknownHostException всеми нами любымый приходит :)
948767
#159 #948767
>>948670
Любой IOException - чек ер конекшн
Какой-нибудь ParseException - bad response try later
404 - нахуй с пляжа
401 - тут надо смотреть детальней, много чего может быть
5xx - извините у нас бекендщик поц, мы работаем над этим
2xx - лайкайте ваших котиков дальше
948810
#160 #948810
>>948767
Именно касательно исключения (коды ответа то могут быть любыми, это отдельно отрабатываю). Волнует - что нужно отлавливать по исключениям для отдельной обработки
#161 #948987
Поясните, как использовать fragment shared elements transitions при условии, что шейред элементом является подгруженная из интернета пикча? У меня сначала открывается новый фрагмент, а потом только лишь подгружается пикча. Использую glide.
949050
#162 #949050
>>948987
Обе должны отображать уже загруженную картинку, то есть ты вначале показываешь в обоих мелкую УЖЕ загруженную картинку. Ну и можешь паралельно фетчнуть норм размера.
#163 #949071
Аноны, подскажите по InterstitialAd.
В соответствии с рекомендациями гугля сделал что-то такое, с проверкой, готово ли к показу объявление:

> if (mInterstitialAd.isLoaded()) {


> mInterstitialAd.show();


> } else {


> Toast.makeText(this, R.string.cantload, Toast.LENGTH_SHORT).show();


> reverseTimer(60,mTimer);


> }


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

> boolean


> isLoading()


> Returns true if the ad is loading.


это оно или нет?
Ну и по поводу айди:

>public AdListener getAdListener ()


>Returns the AdListener for this InterstitialAd.


Вроде оно?
#164 #949080
И вдогонку, самое главное - есть ли какой-то способ понять, был ли клик по рекламному объявлению?
#165 #949257
Поздравляю тред с днем рождения, ведь ему уже 2 года
Давно я в тред не заходил. Вижу шизик-дрочер оп так и у руля со своей поехавшей нумирацей.

мимо-первый-оп


>>947670
Я даже хуй знает что тебе сказать. Мобайл сейчас топ на рынке веб контента, и популярность еще растет. Потому все что имеет под капотом запросы в интернет можно делать на телефоне. Другое дело что со временем через лет 5 я думаю, разработку начнут переводить на прогресив веб апликейшены.
Добавь до этого стенделон клиенты типа будильников, калькуляторов и прочего.
Добавь управление любыми девайсами типа телевизоров и прочего.
Спектр юзабилити настолько большой что пиздец.
В общем мобайл ну никак не говно без задач. Не слушай долбоебов. Просто, как и везде, 90% разрабов месят говнокод в говнопроектах, но повторюсь, так везде.
949271
#166 #949271
>>949257

> поехавшая нумерация


Разработчик, не слышавший про semantic versions?

> мимо-первый-оп


Пошёл нахуй со своим вниманиеблядством.
949420
#167 #949362
Есть gridView, который заполняется FrameLayout'ами. А внутри каждого FrameLayout'а несколько ImageView, которые проигрываю анимации.
А теперь вопрос - как настроить z-order этих imageView относительно друг друга в во всех FrameLayout?

Сейчас анимация предыдущего FrameLayout'а всегда перекрывается анимациями следующего, а нужно чтобы они сохраняли свою иерархию. Чтобы ImageView на верхушке FrameLayout'а не мог быть перекрыт ImageView со дна другого FrameLayout'а.
949364
#168 #949364
>>949362
Я так понимаю, там в итоге формируется что-то вроде

<LinearLayout>

-<GridView

--<FrameLayout
---ImageView1
---ImageView2
-->

--<FrameLayout
---ImageView1
---ImageView2
-->

--<FrameLayout
---ImageView1
---ImageView2
-->

-</GridView>
</LinearLayout>

И последний всегда выше в иерархии. Куда вот копать и возможно ли это вообще, чтобы ImageView1 никогда не мог перекрыть ImageView2? Или он всегда будет ниже по оси z и это никак не изменить?
#168 #949364
>>949362
Я так понимаю, там в итоге формируется что-то вроде

<LinearLayout>

-<GridView

--<FrameLayout
---ImageView1
---ImageView2
-->

--<FrameLayout
---ImageView1
---ImageView2
-->

--<FrameLayout
---ImageView1
---ImageView2
-->

-</GridView>
</LinearLayout>

И последний всегда выше в иерархии. Куда вот копать и возможно ли это вообще, чтобы ImageView1 никогда не мог перекрыть ImageView2? Или он всегда будет ниже по оси z и это никак не изменить?
949420
#169 #949392
Задамка тут вопрос.

Подскажите как мне поступить, чтобы убрать в WebClient-е "Proxy-Connection" при подключенном прокси.. С джавой знаком слабо. Пробовал декомпилить rt.jar чтобы изменить класс HttpURLConnection(здесь https://leibnizhu.gitlab.io/2016/12/04/爬虫使用代理时对HTTP请求头Proxy-Connection字段的探究/ пишут что это из-за него добавляется этот заголовок), но нихрена не получается, Eclipse после изменения не запускает виртуальную машину. Как правильно распаковать и запаковать rt.jar чтобы нормально потом воспринялся java-ой ?
#170 #949420
>>949271

>Разработчик, не слышавший про semantic versions?


Поехавший долбоеб решил выебнуться, но обосрался. Рад за тебя.
Мало того что версии должны быть намертво привязаны к флову разработки, и для именования треда может выступать лишь в роли шутки, даже андроид апликуха подписывается реальной целочисленной версией, так у тебя еще и 2.0.5-2.1.0-2.1.1, что вообще хуй пойми как работает. В общем я не знаю что именно ты долбишь, но нумерация у тебя поехавшая просто в край.

>Пошёл нахуй со своим вниманиеблядством.


Хочу и буду. Ну хоть не бугурти пожалуйста, а то засрал шапку своим говном и рад. Самая всратая шапки на всей тематике нахуй. Хотя вон шиза и на дажватред перекинулась.
Кстати, даже в блядском джава треде лучше поясняется за вкатывания в андроид. Ебучий позор нахуй.

>>949364
Странно что имейджвью2 не перекрывает первый, увы без воспроизведения в живую хуй разберешься. Но по логике имейджвью 2 должна перекрыть первую всенда.
Также мб вариант просто поменять их местами? Или они начинают менять позицию после того как начнут проигрывать анимацию? Мб также юзаешь какие-то имейджлоадеры и прочее?
Но как вариант можешь сделать кастомный фреймлейаут, у которого будут два чайлда и переопределенный getChildDrawingOrder. Тут уже железобетонно все должно срабатывать как сам напишешь. И уже этот фреймлейаут юзай. Но кажется мне, решить задачу можно более тривиальным способом.
949456949474
#171 #949436
Как же заебали говнокодеры.
#172 #949438
>>947163
Сядь на стул сплэшскрина.
#173 #949439
>>947335
бамп
949442
#174 #949441
>>947168
Этого пидора не слушайте. Может у тебя активити вообще стейтом всего приложения управляет? Хранит данные для фагментов, да?
sage #175 #949442
>>949439
Я тебе ебало обоссу.
#176 #949456
>>949420

>Но по логике имейджвью 2 должна перекрыть первую всенда.


Но ведь там же строится лэйоут перед отрисовкой, где ImageView1 (1) имеет индекс 5, ImageView2 (1) индекс 6, ImageView1 (2) индекс 7, ImageView2 (2) индекс 8, и тд, например.
То есть, как в xml бы они шли последовательно.

Мне-то всего нужно, чтобы одна анимация гарантированно была над всем.
Может, что-то с ViewOverlay самого GridView сделать, ставить ее над нужной клеткой?
949469949472
#177 #949469
>>949456
Так фреймлейауты у тебя всегда на своей позиции, как они друг друга перекрывать могут?
949490
#178 #949472
>>949456

>>Но по логике имейджвью 2 должна перекрыть первую всегда.


Хотя, может дело в том, что каждая последующая клетка тоже проигрывает анимацию. Правда, все равно в днище-ImageView, и эта анимация перекрывает более поверхностную анимацию предшественника.

Надо затестить на более простом примере.
949476
#179 #949474
>>949420
проясни про вкатывание тогда уже. Буду копипастить в каждый тред. И да уже нужон дагер да рх
949485
#180 #949476
>>949472

>Надо затестить на более простом примере.


Лучший вариант, когда происходит НЕХ начать с простого и усложнять.
По факту гридлейаут должен менеджить позиции чайлдов-фреймлейаутов, а каждый фреймлейаут будет менеджить позиции имейджвьюх.
#181 #949485
>>949474

>проясни про вкатывание тогда уже.


https://github.com/qqqlll/Java-Thread/wiki/Android
Это, если что, из старой шапки андроид треда. Хотя бы просто ссылку дай на эту вики.

>И да уже нужон дагер да рх


Думаю да, тогда еще несколько слов про архитектуру добавить и збс единой пока нету, но понятие иметь нужно.
949491949559
#182 #949490
>>949469

>как они друг друга перекрывать могут


Если поставить android:clipToPadding="false" фреймлейоутам, и android:clipChildren="false" самому GridView - то анимации фреймлейоутов могут покидать свои границы.

Сферический абстрактный пример. Адаптер заполняет GridView фреймлейоутами из двух ImageView.
Тот ImageView что на дне это картинка\анимация человечка и кишков, а тот что наверху - анимация\картинка машины, которая едет в сторону правой границы GridView и давит человечков.

По идее машинка должна давить человечков, но получается наоборот. В обратную сторону все работает как надо.
949503949516949518
#183 #949491
>>949485
Есть годный мануал по даггеру для идиотов?
И может ли тут кто-то в 2 словах пояснить, зачем этот даггер нужен?
949512
#184 #949503
>>949490
Хз, как-то вот все это с индексом item'a в GridView связано.
Или с тем, что я в адаптере эти анимации запускаю, то есть когда итоговый layout не отрисован.
949609
#185 #949512
>>949491

>Есть годный мануал по даггеру для идиотов?


Есть
первая часть - https://habrahabr.ru/post/279125/
и вторая - https://habrahabr.ru/post/279641/
самая понятная статья которую я находил. Но там правда не все фичи есть, но для начала более чем.

>зачем этот даггер нужен?


DI - dependency injection. Грубо говоря это удобная кодогенерация фабрик, из которых ты будешь получать разные реализации интерфейсов репозиториев, имейджлоадеров, да и чего угодно что сам придумаешь. Руками такое делать как минимум дольше. Хотя удобный DI и руками делать можно. От гугла даже гайды есть.
Но даггер норм. Сам еще только учусь его юзать.
#186 #949516
>>949490
Блять только не говори что ты игру на дефолтном ведро-сдк пилишь.
949519
#187 #949518
>>949490
Хер знает. Но лучший совет, начинай курить от простого к сложному. Медленно - да, но очень нужный скилл. А то такую комплексную задачу на листике тебе не решат.
#188 #949519
>>949516
Нет, но эффект анимаций схожий.
#189 #949529
Есть два фрагмента, в них создаются OptionsMenu, код идентичный за исключением XML. Проблема в том, что одно нормально инфлейтится, а в другом видно только первый пункт, на хардварную кнопку меню не реагирует. Может ли такое быть из-за нехватки памяти? Потому что такое наблюдается на старом LG E612, на Redmi 3 всё нормально.
949834
#190 #949559
>>949485
Вот только даже Примитивный MVP каждый ебошит на свой лад. Нахуй стандартизация если ее нету. В V у меня все что связано с оными view + билдеры диалогов и интенты(из за чего эти Vразростаються до 250-300 строк), M- тупо примеры обектов да контракты БД, а в P вызовы ретрофита, бизнес-логика да подготовка и выполнение команд БД. ЧЯДНТ?
949570949608949610
#191 #949570
>>949559
MVP - это паттерн слоя представления. Если у тебя там бизнес логика, то в этом, скорее всего, проблема и есть.
949576949655
#192 #949576
>>949570
Очередная охуительная история от прыщавого гения :)
MVP - это паттерн архитектуры и разделения бизнес-логики. Слой представления в андроиде задаётся фреймворком
949627
#193 #949608
>>949559
Ты блять читатьто умеешь?
Я же написал

>единой пока нету, но понятие иметь нужно.



>а в P вызовы ретрофита


Вызов ретрофита должен быть в модели, в какой-то реализации репозитория, чтоб подменять бд на ретрофит можно было легко.
Более того, грамотные парни объяснили что даже работа с медиаплеером - модель. У меня шаблон разорвало от этого не так давно.

Об этом и речь, желательно хоть какое-то представление про архитектуры, потому что чем дольше тянуть тем дольше учится будешь.
949610949656
#194 #949609
>>949503
Все-таки в GridView каждый последующий элемент по оси z располагается в порядке "первый вошел - на днище пошел".
Запилил я обычный GridView из примера документации, а вместо FrameLayout'ов обычные ImageView сделал. Эффект был точно такой же.
Только imageView.setZ(-10f) на том, что не должно ничего перекрывать (или больше 0 на том, что должно) - дает нужный эффект.
Вот только до API 21 setZ() нетъ.
#195 #949610
>>949559
Ну и интерны во вью выглядят странно.
>>949608-кун
949611
#196 #949611
>>949610

>интерны


интенты
#197 #949627
>>949576
Говна поешь, имбецил.
#198 #949655
>>949570
хуйню сказал
#199 #949656
>>949608
Что почитать на эту тему?
949658
#200 #949658
>>949656
Учитывая что все дрочат как хотят, то и пишут по разному. Статей миллионы.
Но советую начать с Uncle's Bob Clean architecture.
И дальше уже смотреть mvvm/mvp/viper.
Viper - сильнее всего бот клин архитекчер заточен, но и кода\абстракций больше в результате.
949660
#201 #949660
>>949658
Унеси вайпер отсюда, рамблеровский петух. Вы там дрочите на него что ли?
949665
#202 #949665
>>949660
Ты какой-то ебанутый. Вайпер это самая адекватная реализация клин архитекчер. Да и на мвп он похож пиздец как сильно. Добавляется только интерактор и роутер.
949666949676
#203 #949666
>>949665
Я работал в рамблере пару месяцев, такое ощущение, что у них там это религия.
949674949685
#204 #949674
>>949666
Бля, ну всяко лучше чем кусок говна в виде активити на 2к строк.
949678
#205 #949676
>>949665
А в клин архитектуре от фернадо секаса - сюрприз - вместо роутера навигатор. Очень сильно отличается, да.
Это ещё не учитывая то, что вайпер и clean-сектанты в один голос агитируют за один из самых парашных и недоработанных паттернов - репозиторий. Это в ведроиде-то, где лейзи лоадинг с элементами списка и ручной выбор источника данных встречаются в каждой второй задаче
949689
#206 #949678
>>949674
Из крайности в крайность бросаемся, ей богу!
949689
#207 #949685
>>949666
А куда сьебал потом? Сколько зп? Кулстори?
Это ведь вроде одна из топовых рашкинских контор для мобайлера?
949686
#208 #949686
>>949685
Хуйня, а не контора из-за их вайпера. Надоело, съебал на апворк фрилансить, 3-4к выходит, налоги не плачу.
949695949697
#209 #949689
>>949676

>А в клин архитектуре от фернадо секаса - сюрприз - вместо роутера навигатор.


Так суть в том что это одни и те же яйца, в чем проблема придурок?

>недоработанных паттернов - репозиторий


Это уже какая-то зелень.

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


Ну так при скролле дергай презентер чтоб получить новую порцию данных и будет тебе лейзилоадинг.

>>949678
Архитектура либо есть, либо ее нету.
949698949700
#210 #949695
>>949686

>вайпера


Говнокодеры ебаные.
949697
#211 #949697
>>949686
Ой блять, поговорил бы с тобой в живую и про твои архитектурные подходы. Съебал он из-за архитектуры, конечно.
>>949695
Еще один неуч-долбоеб?
949699949716
#212 #949698
>>949689
В том и проблема, чушок, что онанизм на "вайпер" - суть онанизм на обычное словечко, скрывающее под собой одну из классических архитектур.

>Ну так при скролле дергай презентер чтоб получить новую порцию данных и будет тебе лейзилоадинг.


Да я не про пагинацию, додик. Я про связанные сущности в БД, когда у тебя есть список и Details c соответствующим набором сущностей по клику.
949703
#213 #949699
>>949697
Использую всё, кроме вайпера.
949702949703
#214 #949700
>>949689

>Архитектура либо есть, либо ее нету.


Архитектура всегда есть, потому что часть её навязана Android-фреймворком. В приложении телеграма чувак хуярит иерархию вью вручную, в другом приложении - она инфлейтится из XML. Это архитектурные решения
949703
#215 #949702
>>949699
Топ зашкваров в мире ведроид-разработки:
Xamarin
PhoneGape
VIPER
Realm
AsyncTask
AsyncTaskLoader
949708949728
#216 #949703
>>949698

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


Ты отбитый даун. Мне как-то похуй называть вайпер вайпером или клин архитекчер от фернандо. Главное что оно значит.

>Да я не про пагинацию, додик. Я про связанные сущности в БД, когда у тебя есть список и Details c соответствующим набором сущностей по клику.


Ты говорил про лейзилоадинг. А то что ты теперь говоришь это отдельная выборка. И все отлично ложится на любую архитектуру.
>>949699
Назови 5 отличий мвп от вайпера может поймешь что это просто екстеншн вресия мвп.
>>949700

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


Это нихуя не архитектурное решение, это просто грубо говоря переопределение метода метКонтент.

>Архитектура всегда есть, потому что часть её навязана Android-фреймворком.


Ну если говорить что любой кусок говнокода - архитектура, то конечно же это архитектура. Но мы то белые люди и не должны юзать изначально говна которое диктует андроид фреймворк - а именно говном он и является.
9 лет никто не может вкурить как с этим говном совладать, чтоб и работало и удобно писать было.
949714
#217 #949708
>>949702

>AsyncTaskLoader


Единственная рабочая штука в ведре. Курсор адаптер был просто незаменим хуеву тучу времени.

>Realm


Рили? Зашквар? Хоть я ее и сам не юзаю, но чтоб прям зашквар это ты перегибаешь.

>VIPER


Тут уже непонятно мне, а клинархитекчер не зашквар?
#218 #949714
>>949703
Ну начнём с того, что логика смещается из модели в интеректор, а ещё есть энтитиз, которые нихуя не делают. Ну и обязанности по UI перешли в презентер, но без возможности изменения данных.
Ах да, я уже говорил, что нужно будет писать дохуищу интерфейсов для классов с незначительными обязанностями?
949720949739
#219 #949716
>>949697

>Еще один неуч-долбоеб?


Ты о чем?
949739
#220 #949720
>>949714

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


звучит охуенно.
#221 #949728
>>949702
Добавлю.
rxJava
Retrolambda
Kotlin
949730949740
#222 #949730
>>949728

>Retrolambda


>Kotlin


Согласен.
А вот за rx ебальник набью
949740
#223 #949732
Вот вчера еще тред нормальный был, а сегодня какие-то говноеды набежали и всё засрали.
949741
#224 #949739
>>949714

>Ну и обязанности по UI перешли в презентер


Не совсем. Презентер только дергает юи. Вся логика по этому дерганию в презентере, вся логика самих дерганий - вьюха.

>а ещё есть энтитиз, которые нихуя не делают


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

>>949716

>Ты о чем?


А ты о чем?
Ты о чем?
949744
#225 #949740
>>949728
Ну это толсто, ретролямбда вообще помощник.
Rx работает лучше любой многопоточной либы в принципе, хоть за этот минимум ее уже можно любить. Другое дело что это говно сложное и его мало кто толком знает и умеет.
Котлин норм, но проблем он не решает сам по себе.
>>949730
А есть долбоебы кто пишет с rx без лямбд?
#226 #949741
>>949732
А хуя ты думал, уже будучи мидлом тебя заебывает чистый фреймворк и начинается жонглирования архитектурами и rx.
#227 #949744
>>949739
о том что вайпер не осилил и ушел. А концепция годная.
949745
#228 #949745
>>949744

>А концепция годная.


Двачую.
#229 #949775
Кстати, народ, как вы подружили джека и мультидекс на устройствах меньше пятёрки?
949800949803
#230 #949800
>>949775
А есть какая то проблема?
949804
#231 #949803
>>949775
Чем джек лучше чем ретролямбда? Компиляется быстрей?
949804
#232 #949804
>>949800
Да, на киткате и ниже не встаёт приложение.
>>949803
Да, быстрее. Ну и это полноценная java 8, а не пародия
949805949808
#233 #949805
>>949804

>полноценная java 8


В каком месте? Дефолтные методы и стримы не будут работать до Nки. Чего нет в ретролямбде?
949809
#234 #949808
>>949804

> Ну и это полноценная java 8, а не пародия


Вообще нет, такой же бэкпорт, как и ретролямбда.

Я как то пытался включить, а он оказывается @Suppress не поддерживает.
#235 #949809
>>949805
Я не про это. Джек позволяет избавиться сразу от 3 плагинов - прогард, мультидекс, ретролямбда
949815
#236 #949815
>>949809
Говно. Датабиндинг не пашет, инстант ран не пашет, работает пока что медленнее.
#237 #949834
>>949529
Бамп
#238 #949957
А можно без танцев с бубнами посмотреть базу на емулятуре? Или хотя бы на девайсе?
949972949976
#239 #949972
>>949957
на эмуле можно. Заходишь в android device monitor
data->data там находишь свой пакет и там где то бд лежит, экспортируешь ее на ПК и смотришь через че удобно
#240 #949976
>>949957
stetho, и можешь смотреть в браузере
#241 #949984
Ананасы, какой будет бест практисес для следующей задачи: приложение показывает список постов, будучи в бэкграунде обновляет его, и если появились новые - присылает нотификейшен.
Где хранить список постов, которые пользователь уже видел? Я додумался только до sqlite, но стоит ли делать бд, чтобы создать только одну таблицу с одним столбцом из id?
Думал писать в шейред префс последний загруженный пост, но API отдает список, отсортированный по рейтингу, соответственно в теченни дня в любое место списка может вклиниться новый пост. То есть нужно хранить id всех загруженных сегодня постов.
950004
#242 #950004
>>949984
Почему бы тебе не хранить всю инфу о постах в бд, зачем только айдишники?
#243 #950040
Можно как-то узнать, где (в каком класе) вызывается метод?
950042
#244 #950042
>>950040
Alt + f7
Find usages
#245 #950069
950073
sage #246 #950073
>>950069
Пошёл нахуй, гнида обоссаная.
#247 #950079
>>947684
Удваиваю. Она только по джаве видосы делает?
950086
1233 Кб, Webm
#248 #950086
950100
#249 #950100
>>950086
But what's her name? Or her channel.
950103
#250 #950103
>>950100
Joana Madzestes
950105
#251 #950105
>>950103
Thank you very much. I wish you have girlfriend like this!
950111
#252 #950111
>>950105
suck my member
950116
#253 #950116
>>950111
Member of what?
950131
#254 #950131
>>950116
ya skazal suck my member beach!!!
950154
#255 #950154
>>950131
kakoy naxui plyazh?
950172950836950838
62 Кб, 600x431
#256 #950172
950836950838
59 Кб, 604x321
#257 #950179
Как обстоят дела с конкуренцией джуников на вакансии джуников в ДС?
950352950836950838
#258 #950352
>>950179

> вакансии джунов


А такие есть?
950836950838
#259 #950513
Как работают свойства

layout_marginBottomPercent
и
layout_marginRightPercent

в percentrelativelayout?

Какие цифры не ставлю - никакого эффекта нет, элемент прилипает к верху\левому краю и отказывается оттуда уходить. В то время как layout_marginTopPercent и app:layout_marginLeftPercent работают как надо.
950836950838
#260 #950708
Ребят, меня просят написать приложение для интернет магазина, как правильно рассчитать цену, чтобы не продешевить?
950709950836950838
#261 #950709
>>950708
Узнаешь детали работы до мелочей, устанавливаешь цену за час твоей работы и говоришь сколько приблизительно часов надо потратить.
950722950836950838
#262 #950722
>>950709
Какие ставки за час актуальны для рф?
950836950838
sage #263 #950836
>>950722
>>950709
>>950708
>>950513
>>950352
>>950179
>>950172
>>950154
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно установить Android Studio, открыть официальную документацию
и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
- Официальная документация:
- Полезный гайд для начинающих и продвинутых:
- Бесплатный видеокурс от Google для новичков:
- Два ресурса, единственный плюс которых — русский язык:
и
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?":
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- 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. И хотя бы оно готовое приложение.
Предыдущий тред:

>>940781 (OP)
Вкатываюсь, тут же реквестирую способ сделать живые обои. В инете лежат способы через канвас, но они 10% цпу кушают. Видел еще идею через опен гл. Загнать все картинки в массив и крутить
>>940902
Стандартные же есть. Открой исходники и посмотри
Есть варианты отобразить картинку с возможностью приближения/удаления/скролла без ебли с самостоятельной реализацией всей хуйни?
Аноны я слишком тупой что бы вкурить примеры с гита Сторио. В нете туторов не от слова совсем. Кто нить может дать примитивный пример получения данный из провайдера? У меня есть связка из контракта, sqlhelpera и провайдера. Лоадер грузит это и пилит даные в объект. Как все это перевести на рельсы storio?
>>941200
Как делать репозиторий, если мне помимо круда, надо скачивать хуйню из сущность по url, загружать ее на один из серверов (по выбору), а также получать джоином из базы вместе с другой сущностью
>>941224
Разные dataSource объекты, репозиторий занимается обработкой цепочки. С rx легко и удобно.
Ананасы, как в полноэкранном приложении отключить появление статусбара при свайпе с верхнего края экрана вниз? Ведро 7.1.
>>941106
Смотрел те, где куб вращается, там просто транформация линий, не совсем то что я хочу реализовать. Мне бы или гифку проиграть или массив картинок без нагрузки на цп. Но наверное только и остается сорцы чужие смотреть. Энивей спасибо.
>>941265
Да вроде никак, у юзера всегда должен быть доступ к статус бару.
Пытаюсь убрать овердро в своем приложении, но столкнулся с такой вещью - у меня есть экран, на котором расположены текствью с полупрозрачным фоном, а бэкграунд экрана это изображение. На самом бэкграунде овердро нет, но на этих вьюхах оно >=4. Если я меняю фон с прозрачного на непрозрачный, оно становится =2. С этим можно что-то сделать или такая сильная перерисовка плата за красивый полупрозрачный фон?
>>941569
Прозрачность это дорого.
Могут ли возникнут какие-то проблемы, если использовать внутри rx-операций(которые происходят не в мейн потоке) поля активти/фрагмента, которые инжектятся дагером. Инжектятся в onCreate, а создание всех подписок происходит в onResume, отписываются в onPause?
>>941207
Бамп. Туторов точно нету.
PackageManager.getApplicationIcon() дает иконки разного разрешения в зависимости от текущего разрешения экрана.
Как получить иконки не больше чем xhdpi?
>>940781 (OP)
Сложно ли сделать кейлоггер(с высылкой данных на мой аппарат) для телефона тянки? Какими средствами это можно реализовать?
>>941606
Могут.
>>941876
Гугли winapi lowlevel hook, raw input. Еще тебе надо будет написать панель на пхп, куда будут высылаться логи.
>>941881
Сам иди нахуй.
>>941953
причем здесь ведро, малохольный?
Запилите уже нормальную шапку без этой всрахи с сальными волосами
Андроны, есть одна база , она создалась всё заебись, но когда я меняю в ней данные, они нихуя не меняются.
Пытался перед этим делать
Но такое чувство что программе по сути дела похуй на базу. Она как буд-то один раз создалась и всё, потому-что когда удалил/переустановил приложение появилась уже ошибка, что дропать таблицу нельзя и иди нахуй. Какого хуя эта ошибка до переустановки не появлялась?
>>942403
Вот база -
Активити в котором вызывается -
Чопоны. buildToolsVersion, compileSdkVersion и targetSdkVersion нужно ставить в максимальные, когда создаешь новый проект?
Если да, то норм ли будет работать приложение на говноустройствах, если я активно начну угорать по лямбдам и прочей вкусовщине 8 жабы?
>>942472
Только лямбды бэкпортнуты до 8 апи.
Как сделать чтобы imageView перекрывал кастомный view (линию)?
Тоесть чтобы imageView был сверху и линию не было видно
Почему у меня два раза отправляется запрос, хотя я всего один раз вызываю функцию для отправки? Я как-то не так сохраняю observable?
>>942499
Ой бля, забыл добавить, что это происходит при повороте экрана.
>>942499
А кеш то твой где валяется? А вообще вроде как тут:
решили эту проблемку и если запрос еще идет то ты к нему подключишься.
>>942477
Ты имеешь в виду джек?
>>942511
mObservablesCache - это синглтон который я инжекчу через даггер.
Вот мне это в идеале и нужно. Хочу разобраться как делать долгие запросы и при перевороте экрана подключаться к уже существующим, а не создавать новый. Погляжу, спасибо.
>>942515
retrolambda
>>942517
Если продолжаешь пилить свой велосипед, то прочти вот это -
>>942351

>>942547


Да, я видел эту штуку. У меня почти тоже самое, только они юзают cache (preparedObservable = preparedObservable.cache()), а как я понимаю он копирует ответ (или может я не так понимаю?), а мне надо чтобы к тому же самому реквесту можно было подключиться (например когда фотки на сервер заливаешь).

>>942569


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

>>942566


Чё за лярва страшная?

>>942660


В общем да. Сделал с cache и всё заработало. Единственно что, вместо LruCache заюзал Map обычный, потому что от кеша толку нет - один хуй нужно удалять свой observable из него вручную (в onNext и onError), иначе оно всегда будет его возвращать и запроса нового не будет.
Аноны, подскажите - добавляю в студии на Activity элемент Image Button, убираю фон, устанавливая в Transperent Color и... у кнопки пропадает "анимация" нажатия.
Как с этим бороться?
Если фон не убирать, то при добавлении PNG без фона фон кнопки отличается от фона окна приложения.
Первые шаги в Андроид Деве, делаю по сайту Климова, у него ответа на этот вопрос не нашел.

>>942925


В общем, ты переизобрел store, на который тебе кидали ссылку.

>>943063


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

>>941207


Вроде всё просто

>>941207


Документация там плохая.
Возможно ли в Store.IO описывать структуру таблиц классами, как в cupboard?

>>943168


Я два дня втыкал пока понял что typeMapping генериться при компиляции.
Есть один метод, он запускает активити, которая вытягивает картинку из галереи. Как описать событие, которое происходит, пользователь закенселил выбор картинки?

>>943275


В onActivityResult resultCode будет RESULT_CANCELED

>>943227


Ага, вижу. Надо самому запросы писать.
В целом Store.IO всё равно страшно хороша.

>>943227


Открой пул-реквест и улучши её. Или хотя бы issue создай и опиши, что тебе там непонятно.

>>943326


Не подскажешь как запилисть update данных?

>>943370


>>943376


мне нужен PutResolver же? Или можно как то проще? Тупо в ContentValues запихнуть например айдишник не получиться?
Сап прогач, скажи как называется язык програмирования/автоматизации для андроида(аналог autoIt для винды), такой язык, которым можно тыкать по эмулированному андроиду чере262
sage #263 #950836
>>950722
>>950709
>>950708
>>950513
>>950352
>>950179
>>950172
>>950154
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно установить Android Studio, открыть официальную документацию
и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
- Официальная документация:
- Полезный гайд для начинающих и продвинутых:
- Бесплатный видеокурс от Google для новичков:
- Два ресурса, единственный плюс которых — русский язык:
и
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?":
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- 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. И хотя бы оно готовое приложение.
Предыдущий тред:

>>940781 (OP)
Вкатываюсь, тут же реквестирую способ сделать живые обои. В инете лежат способы через канвас, но они 10% цпу кушают. Видел еще идею через опен гл. Загнать все картинки в массив и крутить
>>940902
Стандартные же есть. Открой исходники и посмотри
Есть варианты отобразить картинку с возможностью приближения/удаления/скролла без ебли с самостоятельной реализацией всей хуйни?
Аноны я слишком тупой что бы вкурить примеры с гита Сторио. В нете туторов не от слова совсем. Кто нить может дать примитивный пример получения данный из провайдера? У меня есть связка из контракта, sqlhelpera и провайдера. Лоадер грузит это и пилит даные в объект. Как все это перевести на рельсы storio?
>>941200
Как делать репозиторий, если мне помимо круда, надо скачивать хуйню из сущность по url, загружать ее на один из серверов (по выбору), а также получать джоином из базы вместе с другой сущностью
>>941224
Разные dataSource объекты, репозиторий занимается обработкой цепочки. С rx легко и удобно.
Ананасы, как в полноэкранном приложении отключить появление статусбара при свайпе с верхнего края экрана вниз? Ведро 7.1.
>>941106
Смотрел те, где куб вращается, там просто транформация линий, не совсем то что я хочу реализовать. Мне бы или гифку проиграть или массив картинок без нагрузки на цп. Но наверное только и остается сорцы чужие смотреть. Энивей спасибо.
>>941265
Да вроде никак, у юзера всегда должен быть доступ к статус бару.
Пытаюсь убрать овердро в своем приложении, но столкнулся с такой вещью - у меня есть экран, на котором расположены текствью с полупрозрачным фоном, а бэкграунд экрана это изображение. На самом бэкграунде овердро нет, но на этих вьюхах оно >=4. Если я меняю фон с прозрачного на непрозрачный, оно становится =2. С этим можно что-то сделать или такая сильная перерисовка плата за красивый полупрозрачный фон?
>>941569
Прозрачность это дорого.
Могут ли возникнут какие-то проблемы, если использовать внутри rx-операций(которые происходят не в мейн потоке) поля активти/фрагмента, которые инжектятся дагером. Инжектятся в onCreate, а создание всех подписок происходит в onResume, отписываются в onPause?
>>941207
Бамп. Туторов точно нету.
PackageManager.getApplicationIcon() дает иконки разного разрешения в зависимости от текущего разрешения экрана.
Как получить иконки не больше чем xhdpi?
>>940781 (OP)
Сложно ли сделать кейлоггер(с высылкой данных на мой аппарат) для телефона тянки? Какими средствами это можно реализовать?
>>941606
Могут.
>>941876
Гугли winapi lowlevel hook, raw input. Еще тебе надо будет написать панель на пхп, куда будут высылаться логи.
>>941881
Сам иди нахуй.
>>941953
причем здесь ведро, малохольный?
Запилите уже нормальную шапку без этой всрахи с сальными волосами
Андроны, есть одна база , она создалась всё заебись, но когда я меняю в ней данные, они нихуя не меняются.
Пытался перед этим делать
Но такое чувство что программе по сути дела похуй на базу. Она как буд-то один раз создалась и всё, потому-что когда удалил/переустановил приложение появилась уже ошибка, что дропать таблицу нельзя и иди нахуй. Какого хуя эта ошибка до переустановки не появлялась?
>>942403
Вот база -
Активити в котором вызывается -
Чопоны. buildToolsVersion, compileSdkVersion и targetSdkVersion нужно ставить в максимальные, когда создаешь новый проект?
Если да, то норм ли будет работать приложение на говноустройствах, если я активно начну угорать по лямбдам и прочей вкусовщине 8 жабы?
>>942472
Только лямбды бэкпортнуты до 8 апи.
Как сделать чтобы imageView перекрывал кастомный view (линию)?
Тоесть чтобы imageView был сверху и линию не было видно
Почему у меня два раза отправляется запрос, хотя я всего один раз вызываю функцию для отправки? Я как-то не так сохраняю observable?
>>942499
Ой бля, забыл добавить, что это происходит при повороте экрана.
>>942499
А кеш то твой где валяется? А вообще вроде как тут:
решили эту проблемку и если запрос еще идет то ты к нему подключишься.
>>942477
Ты имеешь в виду джек?
>>942511
mObservablesCache - это синглтон который я инжекчу через даггер.
Вот мне это в идеале и нужно. Хочу разобраться как делать долгие запросы и при перевороте экрана подключаться к уже существующим, а не создавать новый. Погляжу, спасибо.
>>942515
retrolambda
>>942517
Если продолжаешь пилить свой велосипед, то прочти вот это -
>>942351

>>942547


Да, я видел эту штуку. У меня почти тоже самое, только они юзают cache (preparedObservable = preparedObservable.cache()), а как я понимаю он копирует ответ (или может я не так понимаю?), а мне надо чтобы к тому же самому реквесту можно было подключиться (например когда фотки на сервер заливаешь).

>>942569


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

>>942566


Чё за лярва страшная?

>>942660


В общем да. Сделал с cache и всё заработало. Единственно что, вместо LruCache заюзал Map обычный, потому что от кеша толку нет - один хуй нужно удалять свой observable из него вручную (в onNext и onError), иначе оно всегда будет его возвращать и запроса нового не будет.
Аноны, подскажите - добавляю в студии на Activity элемент Image Button, убираю фон, устанавливая в Transperent Color и... у кнопки пропадает "анимация" нажатия.
Как с этим бороться?
Если фон не убирать, то при добавлении PNG без фона фон кнопки отличается от фона окна приложения.
Первые шаги в Андроид Деве, делаю по сайту Климова, у него ответа на этот вопрос не нашел.

>>942925


В общем, ты переизобрел store, на который тебе кидали ссылку.

>>943063


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

>>941207


Вроде всё просто

>>941207


Документация там плохая.
Возможно ли в Store.IO описывать структуру таблиц классами, как в cupboard?

>>943168


Я два дня втыкал пока понял что typeMapping генериться при компиляции.
Есть один метод, он запускает активити, которая вытягивает картинку из галереи. Как описать событие, которое происходит, пользователь закенселил выбор картинки?

>>943275


В onActivityResult resultCode будет RESULT_CANCELED

>>943227


Ага, вижу. Надо самому запросы писать.
В целом Store.IO всё равно страшно хороша.

>>943227


Открой пул-реквест и улучши её. Или хотя бы issue создай и опиши, что тебе там непонятно.

>>943326


Не подскажешь как запилисть update данных?

>>943370


>>943376


мне нужен PutResolver же? Или можно как то проще? Тупо в ContentValues запихнуть например айдишник не получиться?
Сап прогач, скажи как называется язык програмирования/автоматизации для андроида(аналог autoIt для винды), такой язык, которым можно тыкать по эмулированному андроиду чере262
sage #264 #950838
>>950722
>>950709
>>950708
>>950513
>>950352
>>950179
>>950172
>>950154
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно установить Android Studio, открыть официальную документацию
и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
- Официальная документация:
- Полезный гайд для начинающих и продвинутых:
- Бесплатный видеокурс от Google для новичков:
- Два ресурса, единственный плюс которых — русский язык:
и
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?":
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- 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. И хотя бы оно готовое приложение.
Предыдущий тред:

>>940781 (OP)
Вкатываюсь, тут же реквестирую способ сделать живые обои. В инете лежат способы через канвас, но они 10% цпу кушают. Видел еще идею через опен гл. Загнать все картинки в массив и крутить
>>940902
Стандартные же есть. Открой исходники и посмотри
Есть варианты отобразить картинку с возможностью приближения/удаления/скролла без ебли с самостоятельной реализацией всей хуйни?
Аноны я слишком тупой что бы вкурить примеры с гита Сторио. В нете туторов не от слова совсем. Кто нить может дать примитивный пример получения данный из провайдера? У меня есть связка из контракта, sqlhelpera и провайдера. Лоадер грузит это и пилит даные в объект. Как все это перевести на рельсы storio?
>>941200
Как делать репозиторий, если мне помимо круда, надо скачивать хуйню из сущность по url, загружать ее на один из серверов (по выбору), а также получать джоином из базы вместе с другой сущностью
>>941224
Разные dataSource объекты, репозиторий занимается обработкой цепочки. С rx легко и удобно.
Ананасы, как в полноэкранном приложении отключить появление статусбара при свайпе с верхнего края экрана вниз? Ведро 7.1.
>>941106
Смотрел те, где куб вращается, там просто транформация линий, не совсем то что я хочу реализовать. Мне бы или гифку проиграть или массив картинок без нагрузки на цп. Но наверное только и остается сорцы чужие смотреть. Энивей спасибо.
>>941265
Да вроде никак, у юзера всегда должен быть доступ к статус бару.
Пытаюсь убрать овердро в своем приложении, но столкнулся с такой вещью - у меня есть экран, на котором расположены текствью с полупрозрачным фоном, а бэкграунд экрана это изображение. На самом бэкграунде овердро нет, но на этих вьюхах оно >=4. Если я меняю фон с прозрачного на непрозрачный, оно становится =2. С этим можно что-то сделать или такая сильная перерисовка плата за красивый полупрозрачный фон?
>>941569
Прозрачность это дорого.
Могут ли возникнут какие-то проблемы, если использовать внутри rx-операций(которые происходят не в мейн потоке) поля активти/фрагмента, которые инжектятся дагером. Инжектятся в onCreate, а создание всех подписок происходит в onResume, отписываются в onPause?
>>941207
Бамп. Туторов точно нету.
PackageManager.getApplicationIcon() дает иконки разного разрешения в зависимости от текущего разрешения экрана.
Как получить иконки не больше чем xhdpi?
>>940781 (OP)
Сложно ли сделать кейлоггер(с высылкой данных на мой аппарат) для телефона тянки? Какими средствами это можно реализовать?
>>941606
Могут.
>>941876
Гугли winapi lowlevel hook, raw input. Еще тебе надо будет написать панель на пхп, куда будут высылаться логи.
>>941881
Сам иди нахуй.
>>941953
причем здесь ведро, малохольный?
Запилите уже нормальную шапку без этой всрахи с сальными волосами
Андроны, есть одна база , она создалась всё заебись, но когда я меняю в ней данные, они нихуя не меняются.
Пытался перед этим делать
Но такое чувство что программе по сути дела похуй на базу. Она как буд-то один раз создалась и всё, потому-что когда удалил/переустановил приложение появилась уже ошибка, что дропать таблицу нельзя и иди нахуй. Какого хуя эта ошибка до переустановки не появлялась?
>>942403
Вот база -
Активити в котором вызывается -
Чопоны. buildToolsVersion, compileSdkVersion и targetSdkVersion нужно ставить в максимальные, когда создаешь новый проект?
Если да, то норм ли будет работать приложение на говноустройствах, если я активно начну угорать по лямбдам и прочей вкусовщине 8 жабы?
>>942472
Только лямбды бэкпортнуты до 8 апи.
Как сделать чтобы imageView перекрывал кастомный view (линию)?
Тоесть чтобы imageView был сверху и линию не было видно
Почему у меня два раза отправляется запрос, хотя я всего один раз вызываю функцию для отправки? Я как-то не так сохраняю observable?
>>942499
Ой бля, забыл добавить, что это происходит при повороте экрана.
>>942499
А кеш то твой где валяется? А вообще вроде как тут:
решили эту проблемку и если запрос еще идет то ты к нему подключишься.
>>942477
Ты имеешь в виду джек?
>>942511
mObservablesCache - это синглтон который я инжекчу через даггер.
Вот мне это в идеале и нужно. Хочу разобраться как делать долгие запросы и при перевороте экрана подключаться к уже существующим, а не создавать новый. Погляжу, спасибо.
>>942515
retrolambda
>>942517
Если продолжаешь пилить свой велосипед, то прочти вот это -
>>942351

>>942547


Да, я видел эту штуку. У меня почти тоже самое, только они юзают cache (preparedObservable = preparedObservable.cache()), а как я понимаю он копирует ответ (или может я не так понимаю?), а мне надо чтобы к тому же самому реквесту можно было подключиться (например когда фотки на сервер заливаешь).

>>942569


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

>>942566


Чё за лярва страшная?

>>942660


В общем да. Сделал с cache и всё заработало. Единственно что, вместо LruCache заюзал Map обычный, потому что от кеша толку нет - один хуй нужно удалять свой observable из него вручную (в onNext и onError), иначе оно всегда будет его возвращать и запроса нового не будет.
Аноны, подскажите - добавляю в студии на Activity элемент Image Button, убираю фон, устанавливая в Transperent Color и... у кнопки пропадает "анимация" нажатия.
Как с этим бороться?
Если фон не убирать, то при добавлении PNG без фона фон кнопки отличается от фона окна приложения.
Первые шаги в Андроид Деве, делаю по сайту Климова, у него ответа на этот вопрос не нашел.

>>942925


В общем, ты переизобрел store, на который тебе кидали ссылку.

>>943063


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

>>941207


Вроде всё просто

>>941207


Документация там плохая.
Возможно ли в Store.IO описывать структуру таблиц классами, как в cupboard?

>>943168


Я два дня втыкал пока понял что typeMapping генериться при компиляции.
Есть один метод, он запускает активити, которая вытягивает картинку из галереи. Как описать событие, которое происходит, пользователь закенселил выбор картинки?

>>943275


В onActivityResult resultCode будет RESULT_CANCELED

>>943227


Ага, вижу. Надо самому запросы писать.
В целом Store.IO всё равно страшно хороша.

>>943227


Открой пул-реквест и улучши её. Или хотя бы issue создай и опиши, что тебе там непонятно.

>>943326


Не подскажешь как запилисть update данных?

>>943370


>>943376


мне нужен PutResolver же? Или можно как то проще? Тупо в ContentValues запихнуть например айдишник не получиться?
Сап прогач, скажи как называется язык програмирования/автоматизации для андроида(аналог autoIt для винды), такой язык, которым можно тыкать по эмулированному андроиду чере263
sage #264 #950838
>>950722
>>950709
>>950708
>>950513
>>950352
>>950179
>>950172
>>950154
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно установить Android Studio, открыть официальную документацию
и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
- Официальная документация:
- Полезный гайд для начинающих и продвинутых:
- Бесплатный видеокурс от Google для новичков:
- Два ресурса, единственный плюс которых — русский язык:
и
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?":
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- 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. И хотя бы оно готовое приложение.
Предыдущий тред:

>>940781 (OP)
Вкатываюсь, тут же реквестирую способ сделать живые обои. В инете лежат способы через канвас, но они 10% цпу кушают. Видел еще идею через опен гл. Загнать все картинки в массив и крутить
>>940902
Стандартные же есть. Открой исходники и посмотри
Есть варианты отобразить картинку с возможностью приближения/удаления/скролла без ебли с самостоятельной реализацией всей хуйни?
Аноны я слишком тупой что бы вкурить примеры с гита Сторио. В нете туторов не от слова совсем. Кто нить может дать примитивный пример получения данный из провайдера? У меня есть связка из контракта, sqlhelpera и провайдера. Лоадер грузит это и пилит даные в объект. Как все это перевести на рельсы storio?
>>941200
Как делать репозиторий, если мне помимо круда, надо скачивать хуйню из сущность по url, загружать ее на один из серверов (по выбору), а также получать джоином из базы вместе с другой сущностью
>>941224
Разные dataSource объекты, репозиторий занимается обработкой цепочки. С rx легко и удобно.
Ананасы, как в полноэкранном приложении отключить появление статусбара при свайпе с верхнего края экрана вниз? Ведро 7.1.
>>941106
Смотрел те, где куб вращается, там просто транформация линий, не совсем то что я хочу реализовать. Мне бы или гифку проиграть или массив картинок без нагрузки на цп. Но наверное только и остается сорцы чужие смотреть. Энивей спасибо.
>>941265
Да вроде никак, у юзера всегда должен быть доступ к статус бару.
Пытаюсь убрать овердро в своем приложении, но столкнулся с такой вещью - у меня есть экран, на котором расположены текствью с полупрозрачным фоном, а бэкграунд экрана это изображение. На самом бэкграунде овердро нет, но на этих вьюхах оно >=4. Если я меняю фон с прозрачного на непрозрачный, оно становится =2. С этим можно что-то сделать или такая сильная перерисовка плата за красивый полупрозрачный фон?
>>941569
Прозрачность это дорого.
Могут ли возникнут какие-то проблемы, если использовать внутри rx-операций(которые происходят не в мейн потоке) поля активти/фрагмента, которые инжектятся дагером. Инжектятся в onCreate, а создание всех подписок происходит в onResume, отписываются в onPause?
>>941207
Бамп. Туторов точно нету.
PackageManager.getApplicationIcon() дает иконки разного разрешения в зависимости от текущего разрешения экрана.
Как получить иконки не больше чем xhdpi?
>>940781 (OP)
Сложно ли сделать кейлоггер(с высылкой данных на мой аппарат) для телефона тянки? Какими средствами это можно реализовать?
>>941606
Могут.
>>941876
Гугли winapi lowlevel hook, raw input. Еще тебе надо будет написать панель на пхп, куда будут высылаться логи.
>>941881
Сам иди нахуй.
>>941953
причем здесь ведро, малохольный?
Запилите уже нормальную шапку без этой всрахи с сальными волосами
Андроны, есть одна база , она создалась всё заебись, но когда я меняю в ней данные, они нихуя не меняются.
Пытался перед этим делать
Но такое чувство что программе по сути дела похуй на базу. Она как буд-то один раз создалась и всё, потому-что когда удалил/переустановил приложение появилась уже ошибка, что дропать таблицу нельзя и иди нахуй. Какого хуя эта ошибка до переустановки не появлялась?
>>942403
Вот база -
Активити в котором вызывается -
Чопоны. buildToolsVersion, compileSdkVersion и targetSdkVersion нужно ставить в максимальные, когда создаешь новый проект?
Если да, то норм ли будет работать приложение на говноустройствах, если я активно начну угорать по лямбдам и прочей вкусовщине 8 жабы?
>>942472
Только лямбды бэкпортнуты до 8 апи.
Как сделать чтобы imageView перекрывал кастомный view (линию)?
Тоесть чтобы imageView был сверху и линию не было видно
Почему у меня два раза отправляется запрос, хотя я всего один раз вызываю функцию для отправки? Я как-то не так сохраняю observable?
>>942499
Ой бля, забыл добавить, что это происходит при повороте экрана.
>>942499
А кеш то твой где валяется? А вообще вроде как тут:
решили эту проблемку и если запрос еще идет то ты к нему подключишься.
>>942477
Ты имеешь в виду джек?
>>942511
mObservablesCache - это синглтон который я инжекчу через даггер.
Вот мне это в идеале и нужно. Хочу разобраться как делать долгие запросы и при перевороте экрана подключаться к уже существующим, а не создавать новый. Погляжу, спасибо.
>>942515
retrolambda
>>942517
Если продолжаешь пилить свой велосипед, то прочти вот это -
>>942351

>>942547


Да, я видел эту штуку. У меня почти тоже самое, только они юзают cache (preparedObservable = preparedObservable.cache()), а как я понимаю он копирует ответ (или может я не так понимаю?), а мне надо чтобы к тому же самому реквесту можно было подключиться (например когда фотки на сервер заливаешь).

>>942569


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

>>942566


Чё за лярва страшная?

>>942660


В общем да. Сделал с cache и всё заработало. Единственно что, вместо LruCache заюзал Map обычный, потому что от кеша толку нет - один хуй нужно удалять свой observable из него вручную (в onNext и onError), иначе оно всегда будет его возвращать и запроса нового не будет.
Аноны, подскажите - добавляю в студии на Activity элемент Image Button, убираю фон, устанавливая в Transperent Color и... у кнопки пропадает "анимация" нажатия.
Как с этим бороться?
Если фон не убирать, то при добавлении PNG без фона фон кнопки отличается от фона окна приложения.
Первые шаги в Андроид Деве, делаю по сайту Климова, у него ответа на этот вопрос не нашел.

>>942925


В общем, ты переизобрел store, на который тебе кидали ссылку.

>>943063


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

>>941207


Вроде всё просто

>>941207


Документация там плохая.
Возможно ли в Store.IO описывать структуру таблиц классами, как в cupboard?

>>943168


Я два дня втыкал пока понял что typeMapping генериться при компиляции.
Есть один метод, он запускает активити, которая вытягивает картинку из галереи. Как описать событие, которое происходит, пользователь закенселил выбор картинки?

>>943275


В onActivityResult resultCode будет RESULT_CANCELED

>>943227


Ага, вижу. Надо самому запросы писать.
В целом Store.IO всё равно страшно хороша.

>>943227


Открой пул-реквест и улучши её. Или хотя бы issue создай и опиши, что тебе там непонятно.

>>943326


Не подскажешь как запилисть update данных?

>>943370


>>943376


мне нужен PutResolver же? Или можно как то проще? Тупо в ContentValues запихнуть например айдишник не получиться?
Сап прогач, скажи как называется язык програмирования/автоматизации для андроида(аналог autoIt для винды), такой язык, которым можно тыкать по эмулированному андроиду чере263
950871
#265 #950839
А есть подобная утилита подобно вайперу, только чтобы картинки автоматически в тхреад загружала бы?
950930
#266 #950871
>>950838
Зачем ты флудишь тут?
#267 #950882
Сука тупая, я уж думал кто то по моему вопросу подсказал и ответил на мое сообщение. Какой же ты жалкий, вайп 2 сообщениями.
#268 #950930
>>950839
Шо блять?
Подобна вайперу? Утилита? Архетиктура которая картинки подгружает?
951018
#269 #951018
>>950930
Чтоб вайпала не копипастами, а картинками в предварительно указанной директории.
951081
#270 #951040
Котаны, есть surfaceview, в потоке отрисовки которого происходит выборка из дерева и отрисовка сотен кругов, залитых полупрозрачным цветом.
Пользователь может скроллить туда-сюда эту картинку.

Как оптимизировать это, чтобы процессор не жрало?
#271 #951057
Хотел ебнуть рилм в свой проект, но внезапно жидко обосрался.
Никаких тебе JodaTime, rx2, наследования... Обидненько.
951094
#272 #951081
>>951018
Я нихера не понял.
#273 #951094
>>951057

>rx2


Есть хоть один проект который с ним нормально интегрирован? Везде интероп, так что терпим дальше.
951098
#274 #951098
>>951094

>Везде интероп


Ват?
951099
#276 #951110
>>951099
Ну так норм, другое дело нахуй пилить свой проект под первый rx.
951114
#277 #951114
>>951110
Не хочется подключать еще две либы апк не резиновый (нет конечно можно, но потом).
951118
#278 #951118
>>951114
Заебешься потом переводить с первого на второй.
951125951144
#279 #951125
>>951118
А сейчас не заебусь? В любом случае собираюсь летом менять место работы, пусть расхлебывают, а там уже и либы обновятся.
#280 #951144
>>951118

> Заебешься потом переводить с первого на второй.


А можно и не переводить. Работает - не трогай.
951148951149
#281 #951147
>>940781 (OP)
Аслам молекул, котаны.

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

Сам нихуя не могу нагуглить внятного.
951162
#282 #951148
>>951144
Он работает хуже кстати, точнее медленнее. Первый уже вроде как должен быть деприкейтед.
#283 #951149
>>951144
Он работает хуже кстати, точнее медленнее. Первый уже вроде как должен быть деприкейтед.
Потому новый проект лучше начинать на втором.
951160
#284 #951160
>>951149
Конечно новые проект на втором, но кидаться вот так вот старый переписывать с интеропом незачем.
951163
#285 #951162
>>951147
REST
JSON
Nginx, Spring, Hibernate
Разницы между тем с кем общаться не должно быть. То есть если в вебе используется какой-нибудь реакт-хуякт, то и для гейоси, и для ведра, и для уеба будет один рест апи, котоырй просто будет выдавать жсон и все довольны.
951165
#286 #951163
>>951160
Тут вроде как речь идет о новом проекте и интеграции в него рилма на первом rx.
Потому проект делать на втором, а работку с рилмом пропускать через тот же интероп.
#287 #951165
>>951162
Спасибо, анон! Примерно так себе и представлял это.
#288 #951211
Возможно ли в SurfaceView как в обычном View: рисовать заново только, если это необходимо?
Решение в лоб приводит к тому, что изображение начинает дрожжать.
#289 #951455
Сап. Как реализовать похожий функционал на http://www.guidingtech.com/30551/launch-android-apps-volume-buttons/ https://play.google.com/store/apps/details?id=com.irishin.buttonsremapper&hl=en ? Нужно запускать приложение кнопкой громкости/их комбинацией. Сразу без "нипагайдлайнам/нинужна/етц".
951586
#290 #951586
>>951455
попробуй сервис запилить, который будет слушать нажатие нужных кнопок
952177
#291 #951741
Чому glide растягивает пикчи под размер плейсхолдера? Можно как-то пофиксить?
951828951840952968
12 Кб, 754x215
#292 #951802
лiл
#293 #951828
>>951741

>Чому glide растягивает пикчи под размер плейсхолдера? Можно как-то пофиксить?


Использовать frescolib
951840
#294 #951840
>>951741
Параметр scale у твоего ImageView

>>951828
Пошёл нахуй.
951958
#295 #951921
>>940781 (OP)
Аноны, а что сейчас для многопоточки актуально использовать, если я подумал и решил, что Rx будет избыточен? Если без левых зависимостей, то в общем есть AsyncTaskLoader, который отлично работает, но слишком много лишнего кода писать требует. Сервисы для всего использовать неудобно, особенного когда результат работы нужно в активити/фрагмент вернуть. Пока пробую библиотеку Chronos и она вроде как то что нужно.

Но может забить и писать все на Rx, которые вроде как часто упоминают в вакансиях. Не будет ли оверхедом тащить его в небольшое приложение, которое всего пару раз дергает сеть и все?
952045952058
#296 #951938
>>940781 (OP)
is that an android phone in your (что за слово?) or you...
Хелп, не расслышал слово.
951948
#297 #951948
>>951938
pocket
#298 #951958
>>951840
обоснуй
#299 #952036
Раз тут зарождается срач на тему имидж лоадинга вброшу свои пять копеек:
1) Picasso - square наше все, норм дефолтные настройки, можно вклинится в процесс загрузки и тд;
2) Glide - больше наворотов чем в пикассе, зато есть BitmapPool и поддержка гифок из коробки, привязки к лайфцайклам, из плохого - несколько другая кастомизация, билдер от нас спрятан, лично у меня недавно случился косяк со статическими урлами, который в пикассе бы решался на раз два;
3) Fresco - клятый фейсбук рррряяя, пользовался один раз, не понравилось что нужно использовать их классы вьюх, из хорошего поддержка гифок и webp, вроде бы даже на старых ведрах с памятью изворачивается через различные костыли;

Ваше мнение?
952102952529
#300 #952045
>>951921
Не будет
#301 #952058
>>951921
Я думаю, альтернатив рексу особых нет. Всё, что предложено гуглом:
1) Требует контекста в том, или ином виде
2) Тяжело тестируемо, т.к. android-фреймворк
3) Требует очень много кода, при этом НЕ лишая разраба ебли с поворотами экрана
4) Ходят упорные слухи, что на каких-то версиях работает неправильно
952067
#302 #952067
>>952058

>при этом НЕ лишая разраба ебли с поворотами экрана



Лоадеры лишают как раз. Они даже данные возвращают при повороте, если они до этого уже были готовы, а не рестартуют заново.
952103
#303 #952102
>>952036
Glide и Picasso оба норм. Вопрос предпочтений, думаю.
А фейсбучное говно - это говно, да.
952529
#304 #952103
>>952067
Попробую протестируй лоадеры. А потом посмотри количество открытых багов с ними связанных.
#305 #952177
>>951586
Это же батарею убьет быстро, и будет ли работать вне приложения/при заблокированом экране? Самое главное - чтоб из заблокированого состояния в 1-2 клика запустить приложение.
Есть какие-то еще варианты?
952215952425
#306 #952184
http://developer.alexanderklimov.ru
есть слитые уроки его?
952191952318
Александр Климов #307 #952191
>>952184
Нет
952318
#308 #952215
>>952177
Там может и не сервис проканает, а просто статические ресиверы. Возьми эту приложуху и декомпильни, дальше по манифесту видно будет епт.
#309 #952318
952506953294954386
#310 #952425
>>952177
1% потребляет foreground сервис за 17 часов, который каждые 2 сек пишет в sqlite.
Nexus 5
952429
#311 #952429
>>952425
А, ну заебись тогда!
#312 #952495
Чопоны. Дайте ресурс, в котором хорошо объяснен CoordinatorLayout вместе с AppbarLayout скроллы, вот это все. Чет постоянно натыкаюсь на какую нибудь дичь.
953585
#313 #952506
>>952318
Спасибо браток!

Было бы круто еще слитые уроки вот этого чувака http://www.fandroid.info/
952508
#315 #952513
>>952508
Там libgdx ?
Я бы вот глянул пока лучше на продвинутый флэппи берд, т.к. только вчера глянул ютубный плейлист.
952515
#316 #952515
>>952513
libgdx и box2d.

А есть какие-нибудь гайды по написанию симуляции водички на джаве? Без всяких юнити/хуюнити.
#317 #952529
>>952102
>>952036
Необучаемые хейтеры-неосиляторы.
952580
#318 #952579
>>940781 (OP)
Анон, есть вопрос.
Делаю приложение с прогнозом погоды. Пользователь может получить погоду либо по своему текущему местонахождению, либо вбив название города. При вводе названия города, я хочу сделать, чтобы ему показывался dropdown список с названиями городов, которые соответствуют его запросу. Тиснул с OpenWeather JSON с городами, думал прогнать его через GSON и сделать суффиксное дерево и по нему запилить поиск, но есть два обстоятельсва, которые меня не устраивают:
1) Все названия на латинице. Пидорашки слишком тупы, чтобы знать как ею печатать, поэтому надо сделать так, чтобы поиск можно было вести на языке пользователя.
2) В названиях городов из этого JSON есть ебучие умлауты и прочие символы, которых нет в английском алфавите. Как их вводить знают только носители немецкого\турецкого\других языков, а суффиксное дерево предполагает поиск с точностью до буквы.
3) API, которой я пользуюсь, требует, чтобы запросы делались не по названию городов, а по географическим координатам. Они есть в моем файле, но два предыдущих условия не позволяют им пользоваться.
В общем, что посоветуешь делать? Откуда и как доставать названия городов для dropdown и географические координаты?
#319 #952580
>>952529
Де ты в моем посте увидел хейт, фреско всем хорош кроме выебывания своими вьюхами. Ну какого черта загрузка изображения привязана к вью?
953054
#320 #952746
>>940781 (OP)
Котаны, только начинаю ковырять андроид и еще мало что знаю. Хочу сделать в программе элемент для отображения выбора как в таймере на айос - выглядит как прокручивающийся свайпом вверх-вниз список. Есть ли что-то подобное на андроиде?
952752
#321 #952752
>>952746
Spinner
952756
#322 #952756
>>952752

>Spinner


может конкретнее что-то. Как только не пробовал гуглить со словом спиннер. Мне нужен не выпадающий список, а список прокручиваемый свайпом вверх-вниз с визуаляцией как на айосе - будто элементы нанесены на крутящийся вал, чтоле.
952865953058
#324 #952870
>>952865
Спасибо. Именно то, что нужно.
#325 #952968
>>951741
Пофиксилось добавлением .dontAnimate() к конструктору глайда.
#326 #953054
>>952580
Потому что ты картинку во вью грузишь. У них свой способ рисовать битмапу во вью со своей реализацией drawable, чтоб избежать утечек. Если ты хочешь отдельную битмапу, постобработку и прочее добро - там для этого дохуя инструментов и обработчиков.
#327 #953058
>>952756
Шел бы ты нахуй со своим "как в айосе", залетный петухан
#328 #953158
Анон, как получить
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
но с указанной мною локализацией?
953172953283
#329 #953172
>>953158
getDateInstance(int style, Locale aLocale)
#330 #953229
>>946590
Делаем автотесты на проекте. Какой вопрос?
#331 #953230
>>946590
Используем эспрессо
#332 #953283
>>953158
Пользоваться JodaTime например
#333 #953294
>>952318
О, спасибо тебе, добрый человек!
21 Кб, 556x341
15 Кб, 419x456
56 Кб, 332x622
#334 #953545
Анон, поясни, почему в QuizActivity отображается нулевой элемент массива mQuestionBank ? Ведь question - это int переменная
953576953584
#335 #953576
>>953545
.setText перегружен и может принимать значение ресурса в strings.xml. Это удобно, дабы не вызывать getString(R.string.question_ocean)
#336 #953584
>>953545
Big nerd ranch дрочишь? Тоже учился на нем.

Вопрос не совсем понял. mCurrentIndex изначально 0. Ты получаешь первый Question и извлекаешь оттуда id строкового ресурса про океаны.
#337 #953585
>>952495
Ответьте на мой вопрос плизики.
953967
#338 #953593
Чопоны. Есть вот запрос на сервак с коллбэком: getData(params, new Callback(){....})
Можно ли а главное, нужно ли его переписать в Rx манере? Я что-то тут слышал про то, что Rx можно организовать в некое подобие js promise для обхода лайфсайкла активити/фрагмента. Типо, если повернул мобилку, то при повторном запросе мы получим тот же самый Observable, что запрашивали в первый раз. Поясните за эту хуйню.
953605
#339 #953605
>>953593
Совсем как промисы не получится.
#340 #953917
Аноны, краем уха услышал что школьник или студент может зарегать аккаунт разработчика в гугл плее бесплатно.Где и как это сделать?В гугле вообще пусто и все ведет на гугл плей девелопер консол, где надо платить 25 зеленых.
#341 #953967
953979
#342 #953979
>>953967
Спасибки.
#343 #954046
Куда лучше совать локализацию данных в CleanArchitecture?
Если у меня куча запросов, и к ним везде подцепляется локаль устройства - имеет смысл полностью скрывать работу с локалью в репозитории, а в сущностях, которые идут от репозитория, никак не указывать локаль?
#344 #954326
Котаны, вопрос про игры.
Их кроме как в юнити уже не делают?
Можно ли на раз так замутить в обычной андроид студии с минимумом сторонних библиотек нормальную игруху с графоном и караванами?
954345
#345 #954345
>>954326
libgdx
954453
#346 #954365
>>940781 (OP)
Сап, котаны. Вкатываюсь по чуть чуть в программирование на ведре на досуге. Вот я прочитал Шильдта Ява для начинающих, потом я прочитал Head First Android. Может кто посоветовать еще что-нить базовое? Не кидайтесь говном, пожалуйста. В гугле рано или поздно что-нибудь нагуглю, просто почему бы не спросить тех, кто уже прошел этот путь.
954386
#347 #954386
#348 #954448
Ахаха, Jack теперь deprecated
954449
#349 #954449
>>954448
Нахуя?
954455
#350 #954453
>>954345
можно, но нахуя. Слишком низкий кпд. Юзай для мелочей. Главное никогда не юзай хуюнити
954457
#351 #954455
>>954449
Он был мёртв с самого рождения. Хорошо, что гугл это осознал.

https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html
954821
#352 #954457
>>954453

> Главное никогда не юзай хуюнити


Ну раз ты так сказал
954476
#353 #954476
>>954457
Молодец что согласен
24 Кб, 1115x300
#354 #954522
Анон, что я делаю не так, почему время которое было раньше > чем текущее время?
954536954548954550
#355 #954536
>>954522
Используй joda time
954548
#356 #954548
>>954522

> HH:mm:SS


>>954536
Щас бы ради простейшей операции либу ставить.
954554954591
#357 #954550
>>954522
Знаешь про часовые пояса?
954553
#358 #954553
>>954550
Нет
954555
#359 #954554
>>954548
Спасибо, няша. Какой же я дебил.
#360 #954555
>>954553
Пидора ответ. Подозреваю что ты сравниваешь времена в разных часовых поясах
#361 #954591
>>954548
Так нормальная реализация даты и времени появилась только в Java 8 и на ведре недоступна.
#362 #954821
>>954455
Хм. Значит ли это что мы получим жава8 в ближайшие несколько недель, чтобы это не значило
954829954851
#363 #954829
>>954821
Да. Но опять же, это будет не полная Джава 8, а лишь то, что поддерживает Джек.
954830
#364 #954830
>>954829
Хоть что то.
#365 #954851
>>954821

> Хм. Значит ли это что мы получим жава8


Нет, ты получишь кривой бэкпорт без бинарной совместимости. Скомпиленные под 8 либы не подключатся, только исходники.
954857954891
#366 #954857
>>954851
Это ещё почему? Если на уровне dx будет осуществляться преобразование, то всё будет поддерживать.
#367 #954891
>>954851
Дебил ебаный.
#368 #954955
У когото есть туторы по oauth?
954957954994
#369 #954957
>>954955
А что там сложного?
#370 #954961
Как называется view/layout, где карточки прокручиваются, и выходят на передний план, а остальные переходят в задний (и все это без тыкания в них)?
954965
#371 #954965
>>954961
Что-то вот вроде зацикленного барабана, по достижении последнего элемента показывается первый.
Где-то видел, но никак не могу найти.
#372 #954994
>>954955
то что про я знаю только определение. Хочу научиться делать. Туторов под дроид вроде нету.
#373 #954998
Сап, анон. Есть приложение в гугл плей. И есть сайт, который ведёт на страницу скачки этого приложения.
Поступила информация, что пару раз была выявлена следующая проблема: пользователь переходит на страничку гугл плей (один раз переход был точно с сайта, в остальные разы - точно неизвестно), устанавливает приложение и вместе с приложением качается вирус неизвестного содержания, но известного поведения (фейковое приложение, сильно грузит систему). Зависимость от версии андроида неизвестна, точно есть на 23 api. Не воспроизводится. (Судя по отзывам, было не более десятка случаев за 1.5к установок (это если учесть людей, которые бы проигнорировали и не стали бы сообщать, так-то всего два отзыва)) .
Что это может быть, чем может быть вызвано и как отдебажить?
955002955732
#374 #955002
>>954998
Чекни ссылку, может там фейковый стор. Плюс могут быть изначально инфицированные устройства.
955732
20 Кб, 302x449
20 Кб, 306x455
35 Кб, 801x680
36 Кб, 489x484
#375 #955108
По клике на 3ий imageView (скрин 1) ему присваивается другой битмап, после этого его пидорасит (скрин 2) по активити. Еще эти imageView как-то смещены в блупринте (скрин 3).

В чем проблема?
955525
#376 #955110
Есть какая-нибудь приблуда для андроид студии, чтобы считать производительность кодомакаки, которая ее пользует?
Например, сколько строк добавлено за сегодня, сколько удалено и тд.

Чтобы унижать\стимулировать себя, говоря "Пидор ленивый", или наоборот, хвалить со словами "Уу, копипастер поехавший", в зависимости от статистики.
955124955321
#377 #955124
>>955110
Были плагины для Эклипса, вроде.
#378 #955153

>Работаешь в гугле\jetbrains за сотни тысяч баксов, хуяришь имя эмулированного устройства по умолчанию как 4_WVGA_(Nexus_S)_API_21


>Вываливаешь эмуляцию на старте с


>emulator: ERROR: virtual device name contains invalid characters


>emulator: could not find virtual device named '4_WVGA_(Nexus_S)_API_21'


>Получаешь премию

955158
#379 #955158
>>955153
Не просто не смочь в валидацию полей в 2017 в своей собственной среде разработки, но еще и генерировать туда фейловые имена - это пиздец.
Ладно бы васяны, но это же огромная корпорация с гигантскими доходами и кучей сотрудников.
955527
#380 #955199
Не добавляется пикча в Notification, там есть какие-то ограничения?
Если да, то какие?
955200955201955206
#381 #955200
>>955199
В кнопки для Notification*
#382 #955201
>>955199
Какой телефон? У меня на хуеми ни в каком приложении не видно, так что может в этом проблема.
955203955208
#383 #955203
>>955201
Nexus 5x api 25
эмулятор
955207
#384 #955206
>>955199
У меня еще веселее, у меня на некоторых устройствах не видно ШРИФТ. И хз, почему. Заменяется на стандартный. На других все ок.
955208
#385 #955207
>>955203
В кнопки как в RemoteView?
955208
#386 #955208
>>955207
Через addAction добавляю

>>955206
>>955201

Вот что нашел

>Every action must have an icon (32dp square and matching the Holo Dark action bar visual style)

#387 #955221
Посоветуйте интересных опенсурс приложений на "поизучать сорцы". Только не гиганских на 1000 классов типа телеграма, а что-нибудь что можно осилить за пару дней-неделю. Но и не говноподелки васянов, которые сами нихуя не умеют.
#388 #955258
>>955221
Как ты себе представляешь "что-то интересное" в 2 класса, и при этом не шаблонное говно уровня гуглопримеров?
"Что-то интересное" требует написания кучи велосипедов и разгребания зависимостей между ними.
955342
#389 #955275
>>955221
Любую Haskell библиотеку с first-class функторами и морфизмами, например categоry-extras или recursiоn-schemеs. Это действительно интересно. А вот

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


это не интересно, а унылый будничный дрочь.

мимо
955281
#390 #955278
Как лучше всего писать чейнджлоги для пользователей?

TextView.setText( длииинная простыня из "бла бла бла \n" +

как-то муторно.
955333
#392 #955281
>>955275
Вообще-то он просил примеры приложений, а не кирпичей.
Обработка которых через "унылый будничный дрочь" и дает в итоге какую-то интересную фичу.
955283
#393 #955283
>>955281
Ну да, ты прав. Но понятия не имею, что там интересного.
955297
#394 #955297
>>955283
Контекст применения, конечно. Итог этого дроча, в реализацию которого можно занырнуть поглубже, пусть даже и местами, если надо.

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

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

ну вы понели.

А кирпич - ну лежит он, и хуй знает, все ли возможные места приложения ты сможешь придумать. А так ты увидишь, как из кирпича вырезают самотык и тоже захочешь.
#395 #955321
>>955110
Ага. Git называеться. Просто смотришь на чейнджлог коммита.
955325
#396 #955324
Аноны, у меня большие проблемы. В общем выучил я java core. Захотелось изучить бек-энд разработку, посмотрел какие-то туториалы, наткнулся на json. Почитал в интернете- пришел к выводу что необходимо изучить front-end на каком-то уровне. До этого знал основы html, css но не вникал. Тут начал вникать и понял насколько это не мое, все эти формочки, все эти тонны кода сраного, все эти плавающие элементы. Меня уже тошнит от этого. И тут я задался вопросом, как мне это поможет как back-end'ру? Что мне нужно знать из fronta конкретно? Как работает форма и http методы? А Java script и тот же json на стороне front-end'а также необходим? или можно дропнуть это унылое занятие и пойти учить сам back-end?
955329
#397 #955325
>>955321
Я стесняюсь выкладывать свое говно на гитхаб.
955328
#398 #955328
>>955325
Гитхаб!=гит. Есть локальный гит, есть битбакет, гитлаб.
955334
#399 #955329
>>955324
А может ты уйдешь нахуй с треда про андроид?
955331955388
#400 #955331
>>955329
ебать я наркоман, соре
#401 #955333
>>955278
Создаешь html, загружаешь в WebView.
Html это лучший способ, когда нужно отобразить много текста с уникальными элементами.
В TextView же обычный plain-текст, который ты не можешь форматировать как хочется.
#402 #955334
>>955328

>локальный гит, есть битбакет, гитлаб.


Ооо, это то что нужно тогда. Сяп.
#403 #955342
>>955258
Я не говорю в 2 класса, оф кос я и хочу чето с зависимостями и разгребанием кода, но не совсем жирноту типа официальных клиентов вк, фейсбук или еще какой-нибудь телегохуйни на овер 9000 классов, а чтобы можно было в одиночку относительно быстро осилить.

Вот например недавно изучил https://github.com/iSoron/uhabits Очень годное приложение, которым я и сам пользуюсь, в исходниках 100 ява файлов и автор писал от души. А взять каких-нибудь индусов из фб, у которых 100500 классов и зависимостей, которые героически преодолевают 64к методов, мешают в лапшу js php java - такое сразу нахуй.

Наверняка есть тысячи ламповых андроид приложений, которые будет интересно поизучать и вдохновится.
#404 #955365
Вечер в хату, аноны. Начал пробовать javafx и сразу столкнулся с проблемой. У меня есть GridPanel, в каждой ячейке которого лежит TextField. Как мне достать оттуда значение TextField или его цвет? С помощью метода GetChildren()(я пытался но там возвращает коллекцию и я не знаю как в ней найти моё текстовое поле)?Можно ли обращаться через квадратные скобочки, как с массивом делали? Что то типо grid[0][1]?
955388955391
#405 #955388
#406 #955391
>>955365

>android


>javafx


ты опять начинаешь, шакал ебучий?
http://stackoverflow.com/questions/20655024/javafx-gridpane-retrive-specific-cell-content
Через квадратные скобочки нельзя, массив одномерный. Индекс в возвращаемом массиве GetChildren можно высчитать самому, если тебе известны столб\строка и общее число столбцов. Например (currentRow * totalColumns) + currentColumn. Enjoy your javaparasha без нормального менеджмента столбцов
955399
#407 #955398
Аноны, приложение работает с неким апи. У апи описан контракт. Ну т.е. какие ответы оно будет отдавать на какие запросы. И нужно замокать эти ответы, т.к. логика сложная. Как это сделать? Мне бы какой-нибудь инструмент типа proxy. Есть такой? Сейчас charles юзаю, но это не совсем то.
955408
#408 #955399
>>955391
ну сорян, я прост сука уебок читать не умею, ты меня с кем-то спутал, я другой даун. Я понимаю, что массив одномерный я не понимаю какие элементы в нем хранятся как их привести к типу TextField, idea на меня ругается, а я не ебу как с этого обьекта вытянуть то, что мне надо.
955411
#409 #955408
>>955398
flavor + okhttp interceptor
955410
#410 #955410
>>955408
Так код писать надо и собирать проект. Было бы здорово, чтобы ещё и тестировщик мог моки писать, чтобы все тест кейсы пррверить.
955427
#411 #955411
>>955399
Берешь документацию, ищешь метод
https://docs.oracle.com/javafx/2/api/javafx/collections/ObservableList.html

>getChildren



>public ObservableList<Node> getChildren()


То есть, метод возвращает список из Node
https://docs.oracle.com/javafx/2/api/javafx/scene/Node.html
А Node это суперкласс для твоих TextField.
Достаешь из результата getChildren() нужный Node.
Node huiNod = достаешь Node
И кастуешь на него (TextField) huiNode. Пихаешь это в переменную или заключаешь в скобки, и вызываешь нужный метод уровня "вытащить текст из TextField"

Ты хуево базис java выучил. В ООП и в областях видимости\пространстве имен вообще ни бум бум.
955424
#412 #955424
>>955411
Ну как тебе, сказать, я сука один в один хуярил, но мне выдает ошибку, я понимают что TextField это наследник Node, и я пишу в скобочках тип к которому хочу привести, но мне выдает ошибку, говорит, подчеркивает красным и говорит нельзя приравнять java.awt.TextField и Node. Вот поэтому то я сюда и пришел, думал, мож что-то не так делаю
955432
#413 #955427
>>955410
хуеки
#414 #955432
>>955424
Давай копипаст этой строчки с ошибкой. И кусок кода, где ты это творишь.
955443
#415 #955443
>>955432
А всё уже, спасибо анон, была проблема в пакете.
#416 #955468
Как через css совладать с размером шрифта? Чтобы отображался одинаково адекватно на всех размерах экрана.
#417 #955525
>>955108
Нахуй иди со своим блюпринтом.
XML сюда
#418 #955527
>>955158

>кучей сотрудников.


Такие же Васяны
#419 #955706
Всем чики в етом чяте. Есть арчик, в нем android studio. Скажите ньюфажиньке в разработке под ведро как подключить например это https://github.com/odnoklassniki/ok-android-sdk в прожект. Спасибо заранее.
955707
317 Кб, 1846x1536
#420 #955707
955708
#421 #955708
>>955707
А кнопочками там никак нельзя? Клинкуть куда-то там, вставить адрес репозитория, вот это всё. Пойду гуглить что за Maven.
955709955719
#422 #955709
>>955708

>Пойду гуглить что за Maven


Лолблядь!
#423 #955719
>>955708
Можно, но кликать дольше чем взять и скопировать-вставить ОДНУ БЛЯТЬ ОДНУ СУКА ОДНУ СТРОЧКУ БЛЯТЬ. Ты уж попробуй как-то по порядку все учить, а?
955725
#424 #955725
>>955719
Мне просто скомпилять надо.
955739
#425 #955732
>>955002
Я же говорю, что не воспроизводится ошибка. Как ссылка может быть фейковой для одного девайса и нефейковой для другого? Типа, раз в месяц на один час в ссылку инжектят вредоносный контент? Но тогда он бы не открывался в гугл-плее, очевидно же. А предположение, что и ссылка инфицирована, и ещё и гугл плей на девайсах фейковый отсекается бритвой Оккама.

>изначально инфицированные устройста.


Я тоже надеюсь на это, но нужно проработать все варианты.
>>954998
Бамп, аноны, у кого есть ещё варианты?
#426 #955739
>>955725
Добавь строчку:
compile 'ru.ok:odnoklassniki-android-sdk:2.0.2'

в dependencies {...} build.gradle нужного модуля.
956171
#427 #955795
Сап, сколько просить джуну в Киеве? Кроме сдк, кор явы, ооп да алгоритмов знаю: Glide/Picasso, Retrofit с OKHTTP, Rx, StorIO, Dagger, GMaps, тестирование Robolectric, плюс куча мелочи типа ButterKnife, EventBus, IcePick и тд. За это стыдно 500 просить? И посоветуй с "роадмапой" что из этого и в каком порядке стоит учить: Firebase, Play Services, Analytic, In-app Billing, Espresso, LeakCanary?
#428 #955803
>>955795
Главное котлин не учи
955812
#429 #955812
>>955803
Почему? Норм же
955829
#431 #955829
>>955812
сахарец плюс пиздец зависимы от того что гугел будет делать с джавой. Я не удивлюсь если они запилят свой сфифтgolang
955892956195
#432 #955880
Почему нотификации везде работают по разному, если работают вообще?
955885
#434 #955889
>>955885
И как с этим жить?
#435 #955892
>>955829

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


Хз, пол года уже на нем. Норм.
#436 #955896
>>955795
Бамп
955898
sage #437 #955898
>>955896
Тебе ебало обоссать?
955905
#438 #955905
>>955898
Главное на вопрос ответь.
955916
sage #439 #955916
>>955905
Ответил тебе за щеку.
#440 #956035
>>955795

>знаю


А применять то умеешь?
956077
#441 #956048
>>955795
500 бачей за этот стек? Неужели у андроид девелоперов такие низкие зп по рынку?
Мимоангуларщик перекатывающийся на андроид, т.к. веб говно на 1.5к
956054956080956195
#442 #956054
>>956048
У меня 1.5К. Но андроид тоже днище, лучше в iOS закатывайся.
956057
#443 #956057
>>956054
Мне похуй на что, айос или андроид. Главное, чтобы приложение было нативным. До этого проработал WPF кодером 5 лет и пришлось перекатываться на веб в силу того, что в вебе меньший порог вхождения на те же бабки, что я получал. Полностью разочаровавшись в вебе, пришел к железному выводу перекатываться обратно на нативщину.
956071
#444 #956071
>>956057
Двачую. Нативная разработка - наше всё. Ксамарин и веб-поделки - для говноедов.
#445 #956077
>>956035
Как и всякий нуб) В общем да. Но сильно не углублялся. Дрочить скил ещё успею а жрать и за квартиру платить надо.
#446 #956080
>>956048
У меня практика уровня своего да чужого диплома плюс всякий треш в духе погодных апп. С рхсом да дагером.
#447 #956171
>>955739
gradle этот сам найдет сорцы на гитхабе?
956177
161 Кб, 1366x768
#448 #956177
956337
#449 #956195
>>956048

> 500 бачей за этот стек?


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

> сахарец


Хороший сахар это всегда удобно. Попробовав котлин или скалу, на джаве уже тяжело становится писать, до того это ущербный язык.
Хотя бы для общего развития стоит поучить, это полезно.
956216956322957245
#450 #956216
>>956195
дык 500 просить можно или нет?
956258
#451 #956236
>>955795
Так ты знаешь, или писал с этим проекты? Тут вроде такая история, что можно написать проект на голых асинктасках с ручной обработкой поворота, и это будет для работодателя более ценно, нежели знание кастомных либ.
956259
#452 #956246
>>955795
700-800 проси, базарю. Может и скинут до 500-600, но главное заднюю не давай и не опускайся до уровня "обоссыте но возьмите, готов работать за опыт еду". Если хоть чем то покажешь на собесах такую позицию - инстант фейл.
#453 #956258
>>956216
Нельзя
#454 #956259
>>956236

>это будет для работодателя более ценно


Маняистории
#455 #956318
Вопрос по даггеру2. Не совсем понял хуйни с сабкомпонентнами. Вот, представим, что у нас есть компонент для аппликухи, который мы инициализируем в Application - ок. Я хочу сделать компонент, который будет относится к лайфсайклу активити предоставлять презентер например, при этом переживая повороты. Во всех мануалах, что нашел, посоны или определяют этот компонент в Application что очень сильно продлевает его жизнь или инициализируют непосредственно в активити сокращая срок жизни как минимум в 2 раза, при условии, что будем вертеть мобилку. Но, при этом, во всех этих мануалах, везде пишется, что типо даггер2 обеспечивает ложение хуя на повороты. Я что-то не так понял?

Как пример - вот статьи:
https://habrahabr.ru/post/279641/
http://guides.codepath.com/android/Dependency-Injection-with-Dagger-2#scopes
956340956464956467
#456 #956322
>>956195
Хуй знает бро. Если сидеть без работы и сычевать дома, то может 2 недели и хватит. А когда у тебя веслание 9.00 - 18.00, то очень мало времени остается. Плюс ко всему, очень лень что-то делать после работы.
956459
#457 #956337
>>956177
Там же написан комментарий, что не суй сюда зависимости, а суй их в файл конкретного модуля.
#458 #956340
>>956318
Сами по себе скоупы ничего не делают, они служат лишь как идентификаторы. Их время жизни ты должен определять сам.
956342956345
#459 #956342
>>956340
Подскажи тогда, каким образом обеспечить жизнь компонента в пределах жизни активити, ложа хуй на повороты
956347
#460 #956345
>>956340
Много вариантов.
Например, использовать onRetainCustomNonConfigurationInstance(). Или хронить в памяти синглтон с мапой, которая хранит различные компоненты (нужно будет вручную заниматься инвалидацией).
Или хранить в retain fragment.

А вообще, твой презентер должен тоже умирать и пересоздаваться вместе с UI, а не сохраняться всё это время.Это не его ответсвенность.
956347956358
#461 #956347
#462 #956358
>>956345

> твой презентер должен тоже умирать и пересоздаваться вместе с UI


Почему?
956361
#463 #956361
>>956358
Зачем ему переживать поворот экрана?
Чтобы сохранить состоянии представления? Это не его ответственность, этим должно заниматься представление или view state.
Чтобы сохранить выполняющиеся запросы? Это не его ответственность. Это должно происходить на уровне модели.
Если тебе нужно сохранять презентер, значит, он делает у тебя слишком много.
956373956381
#464 #956373
>>956361
Как я себе представляю MVP в андроиде: поправь, если не прав
1) Модель. Тут все ясно. запросы, хуе мое.
2) Вьюха. Взаимодействие с юзером. В этой роли выступает активити/фрагмент.
2) Презентер. Бизнес логика. Штука, абстрагированная от вьюхи, и уж тем более от лайфсайкла. Она тупо привязана к текущему экрану и все. При поворотах, по идее, просто вновь созданная активити/фрагмент должны взять и отрисовать текущее состояние презентера.

В твоих рассуждениях получается, что вьюха должна заниматься состоянием презентера, сохраняя его и передавая следующему презентеру. Слишком по ебанутому, на мой скромный взгляд, звучит.
956375
#465 #956375
>>956373

> состояние презентера


Я тебе и говорю о том, что у презентера не должно быть состояния.
956376
#466 #956376
>>956375
Смотри. Вот есть у меня некий сформированный фильтр, по которому я вытягиваю данные. На мой взгляд, его лучше сохранить в презентере, чтобы при повороте экрана заного отрисовать его визуальное представление и загрузить данные из модели по этому фильтру возможно закешированные. Если мы исключаем сохранение состояния в презентере, то как мне лучше воспроизвести сценарий с фильтром?
956386
#467 #956381
>>956361
И каким образом пересозданный презентер подцепит выполняющийся запрос в модели?
956386
#468 #956384
Есть ли лучший способ заставить PreferenceActivity сохранять настройки в int, чем

https://github.com/Flipboard/psync/issues/5

По умолчанию какой-то бред, можно пометить настройку как
android:inputType="number", но сохраняется она все равно как строка, и вполне вероятно - пустая.
956389
#469 #956386
>>956376
Откуда у тебя этот фильтр? От юзера? Значит это view state. Откуда-то из друго места? Значит это относится к модели.
>>956381
RxJava. Или Store, если не хочешь реализовывать это сам.
956398
#470 #956389
>>956384
Зачем тебе какая-то васянобиблиотека для этого? Две строчки кода ведь, чтобы вручную сохранить как число. https://developer.android.com/reference/android/content/SharedPreferences.Editor.html#putInt(java.lang.String, int)
956394
#471 #956394
>>956389
Там не библиотека, а пример сабкласса. Типа такого
https://github.com/jrgifford/androguard/blob/master/examples/android/gtalksms/src/com/googlecode/gtalksms/EditIntegerPreference.java

>две строчки кода ведь, чтобы вручную сохранить как число


И как я это сделаю, если PreferenceScreen строится на основе EditTextPreference?
Чтобы сохранять в SharedPreference, все равно нужно делать сабкласс EditTextPreference, в переопределенных методах которого уже самому конвертировать в int и сохранять.

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

В примере выше строк 39 (пусть и 70% нефукциольный мусор), а не две. Ради очевидной хуйни многовато кажется, особенно для инструмента, который позиционируется как "минимум пердолева, сделал разметку и получил готовые настройки"
956401
#472 #956398
>>956386
Что RxJava. Как подцепить обратно этот observable нет блять я не спрашиваю про cache()? Его нужно мало того, что хранить, так еще и костылить систему правильной их идентификации, чтобы если у тебя два однотипных запроса пошло, они оба отдались обратно к презентеру корректно. Да и кто отвечает за удаление их ссылки после отработки, ведь ты же не знаешь на уровне модели, заберет ли презентер их обратно, или он уничтожен окончательно? Или так и будешь хранить все инстансы observabl'ов в какой-нибудь хэш-мапе "номер запроса - obseravble" без очистки?
Ну и никто не отменяет кучи ебли с сохранением состояния в бандл, вместо простого сохранения в переживающий перевороты вьюстейт, который привязан к презентеру.
956400
#473 #956400
>>956398

> как


Я же уже писал, смотри код https://github.com/NYTimes/Store

> переживающий перевороты вьюстейт


Я тебе об этом и говорю. Ты точно читаешь мои сообщения? Только причем тут презентер - непонятно, это же не MVVM.
#474 #956401
>>956394
Не проще какой-нибудь OnChangeListener к твоему EditText'у добавить, и самому сохранять значение?
956405956440
#475 #956405
>>956401

>OnChangeListener


Скорее всего. Особенно с точки зрения добавления валидатора (диалог вылезает с предупреждением, например,).
Там метод onSharedPreferenceChanged вызывает ДО записи же, да? Из оф документации не понятно. Скорее всего да.
956460
47 Кб, 600x450
#476 #956423

> android.text.TextUtils.isDigitsOnly("")


>true


Вы видите числа? А они есть!
Ну ебана. Такое чувство, что мне нужно написать свою стандартную библиотеку с нуля.
#477 #956440
>>956401
И все же OnChangeListener так себе вариант.

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

Лучший вариант - не дать ему закрыть диалог, если он записал какое-то говно, как по мне.
956448
#478 #956448
>>956440
Ну так и напиши тогда просто свой DialogFragment, который проверяет ввод пользователя и если всё ок, то сохраняет в SharedPreference.
956452
#479 #956452
#480 #956459
>>956322
Не, ну тут правда, если уже работаешь, то быстро не выйдет. С другой стороны, в таком случае торопиться некуда особо.
957254
#481 #956460
>>956405

>onSharedPreferenceChanged


>Changed


После он вызывается.
956462
#482 #956462
>>956460
Я уже заметил, а даже если бы и до - все равно не то что надо.
#483 #956464
>>956318
Я пихаю компоненты в статический WeakReference инжектора компоненты.
Каждый дрочит как хочет.
#485 #956534
Анон, поделись какой-нибудь статьей про использование криптографии в Android и Java.
Суть такая - хочу сделать между клиентом и API обмен в виде зашифрованных сообщений (например, видел такое у какой-то биржи, т.е. апишка хавате мессаджи только зашифрованные определенным способом и все такое).
И если на php это еще худо-бедно реализуемо mcrypt'ом или openssl, то в джаве я не в зуб ногой.
Будет полезно также кинуться статьей про общую реализацию такого, если кто-то уже делал и публиковал.
956565
#486 #956535
Какая-то хуйня все равно выходит с этими валидаторами.
В принципе, если в showDialog ставить кнопке Ок свой setOnClickListener - диалог не закрывается, если не выполнены условия.
НО если они выполнены - ничего не сохраняется, потому что onDialogClosed всегда получaет false. Помогает только костыль в виде прямого вызова onDialogClosed(true). Но тогда onDialogClosed вызывается два раза (хотя, onDialogClosed(false) все равно ничего не делает). Мелочь, но НЕПРИЯТНА. Костыль, говно.

А больше ничего переопределить нельзя, потому что это false передается через приватное поле. Разве что с reflection анально поиграться.

Вот этот диалог он стандартный или самописный?
956536956540
#487 #956536
>>956535

>Вот этот диалог он стандартный или самописный?


Пик проебался но да похуй, уже нашел.
#488 #956540
>>956535
Вообще, лучше для чисел диалогом ставить NumPicker, видимо.
Но строки все равно придется валидировать через ебаные нечеловеческие костыли.
#490 #956652
Хочу использоваться в качестве summary у Preference шаблон для форматирования строки, в который буду подставлять значения.

Вопрос. как вытащить из xml атрибут android:summary?
Preference.getSummary не вариант - ведь он выдаст строку, которую не отформатировать, если summary уже было установлено.
956683
#491 #956683
>>956652
Хотя ладно, можно сохранять summary как шаблон в переменной при создании Preference.
А потом переопределить setSummary, передав super.setSummary() уже отформатированную строку.
24 Кб, 726x159
#492 #957060
Котаны, подскажите че не так?
Пытаюсь запускать скрипт с помощью AlarmManager каждые 5 минут, но он, сука, то не сработает, а потом аж два раза подряд, либо ваще отстает на минуту каждые полчаса.

Всё на девайсе с API 17. Т.е. setRepeating должен точно срабатывать.
957061957119
#493 #957061
>>957060
Ну и логи, естесно:

<...>
17.03.2017 07:20:30
17.03.2017 07:25:30
17.03.2017 07:30:30
17.03.2017 07:40:25 <-вот
17.03.2017 07:40:30 <-вот
17.03.2017 07:45:30
17.03.2017 07:50:30
17.03.2017 07:55:30
17.03.2017 08:00:30
17.03.2017 08:10:25 <-вот
17.03.2017 08:10:30 <-вот
17.03.2017 08:15:30
17.03.2017 08:20:30
<...>
17.03.2017 16:50:30
17.03.2017 16:55:30
17.03.2017 17:01:10 <-вот
17.03.2017 17:05:30
17.03.2017 17:10:30
17.03.2017 17:15:30
17.03.2017 17:21:08 <-вот
17.03.2017 17:25:30
17.03.2017 17:40:29 <-вот
17.03.2017 17:40:29 <-вот
17.03.2017 17:40:30 <-вот
17.03.2017 17:45:30
17.03.2017 17:51:09 <-вот
17.03.2017 17:55:30
17.03.2017 18:00:50
<...>
#493 #957061
>>957060
Ну и логи, естесно:

<...>
17.03.2017 07:20:30
17.03.2017 07:25:30
17.03.2017 07:30:30
17.03.2017 07:40:25 <-вот
17.03.2017 07:40:30 <-вот
17.03.2017 07:45:30
17.03.2017 07:50:30
17.03.2017 07:55:30
17.03.2017 08:00:30
17.03.2017 08:10:25 <-вот
17.03.2017 08:10:30 <-вот
17.03.2017 08:15:30
17.03.2017 08:20:30
<...>
17.03.2017 16:50:30
17.03.2017 16:55:30
17.03.2017 17:01:10 <-вот
17.03.2017 17:05:30
17.03.2017 17:10:30
17.03.2017 17:15:30
17.03.2017 17:21:08 <-вот
17.03.2017 17:25:30
17.03.2017 17:40:29 <-вот
17.03.2017 17:40:29 <-вот
17.03.2017 17:40:30 <-вот
17.03.2017 17:45:30
17.03.2017 17:51:09 <-вот
17.03.2017 17:55:30
17.03.2017 18:00:50
<...>
#494 #957119
>>957060
Доки для пидоров

> For example, if you have set a recurring alarm for the top of every hour but the phone was asleep from 7:45 until 8:45, an alarm will be sent as soon as the phone awakens, then the next alarm will be sent at 9:00.



> If your application wants to allow the delivery times to drift in order to guarantee that at least a certain time interval always elapses between alarms, then the approach to take is to use one-time alarms, scheduling the next one yourself when handling each alarm delivery.



Ну и конечно остается вопрос нахуя дрочить девайс каждые 5 минут.
957122957126
#495 #957122
>>957119
>>957119

>If an alarm is delayed (by system sleep, for example, for non _WAKEUP alarm types), a skipped repeat will be delivered as soon as possible. After that, future alarms will be delivered according to the original schedule; they do not drift over time. For example, if you have set a recurring alarm for the top of every hour but the phone was asleep from 7:45 until 8:45, an alarm will be sent as soon as the phone awakens, then the next alarm will be sent at 9:00.


>If an alarm is delayed (by system sleep, for example, for non _WAKEUP alarm types)



>alarm.setRepeating(AlarmManager.RTC_WAKEUP, firstMillis, 5 60 1000, pIntent);



Разве тот случай?
957126
#496 #957126
>>957119
>>957122
Тем более, девайс-то просыпается каждые 5 минут с точностью в миллисекунду, за исключением некоторых случаев, о которых я написал выше.
#497 #957245
>>956195

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


Ты гений чтоле, или в вас вузе хорошо задрочили на программирование??
957248
#498 #957248
>>957245
Он просто пиздабол.
#499 #957252
startandroid норм? или лучше alexanderklimov?
957255957285957288
#500 #957254
>>956459
Если не торопиться, то вообще хуй что выучишь. У меня щас план переката с веба на андроид и я очень хочу поскорей перекатиться.
#501 #957255
>>957252
лучше сразу оба.
#502 #957285
>>957252
Попытался по первому - оказалось устаревшее говно. Лучше уж блядь доки на ангельском читать, чем этого чмыря.
957302
#503 #957288
>>957252
Никого из них.
alexanderklimov просто берет и копипастит офдоки, обмазав их котами. А примеры всегда говно уровня хеллоувордов.
957302
#504 #957302
>>957285
>>957288
А что тогда лучше?
957538
#505 #957316
#506 #957538
>>957302
Офф доки, исходники и stackOverflow. Если на последнем видишь что решение занимает дохуя строк - игнорируешь и ищешь более лаконичное, даже путем чтения исходников.
#507 #967339
Привет и сразу к делу, нужно вырезать фон с объекта на фото (например шорты лежат на однотонном контрастном полу, нужно оставить шорты, а фон убрать) заебался - нихуя не получается. Может кто-то подскажет, или сам сделает за вознаграждение
#508 #974414
>>940781 (OP)
такой вопрос: нужно написать приложение синхронизации врачей и клиентов. То есть пациент выбирает дотора, или доктор находит пациента по запросу.

Сколько может стоить первый рабочий прототип? За сколько времени можно набрасать рабочее приложение?
Тред утонул или удален.
Это копия, сохраненная 24 мая 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски