Android Development Thread 2.3.4> Хочу вкатиться в разработку под 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. Есть лямбды, стримы и делегаты. С 17 мая поддерживается официально.> Есть что-то кроме нативных приложений на 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://arhivach.org/thread/349354/
Cап програмач, кто работал с socket.io на ведре?Использую либу с гитхаба socket.io, https://github.com/socketio/socket.io-client-java Мне нужно подключиться к серверу на сокетайо по определенному урлу, включающему querystring с юзертокеном. Ридми говорит, что нужно делать так:IO.Options opts = new IO.Options();opts.forceNew = true;opts.query = "auth_token=" + authToken;Socket socket = IO.socket(hostURL, opts);Однако когда я в opts кладу query, вся конструкция наебывается к херам. Не валит эксепшн, нихуя, просто перестает коннектиться, даже не срабатывает событие connect. Без query всё окей. Судя по тому что ни в issues репы, ни на стаковерфлоу, никто не поднимал данный вопрос - проблема это персонально моя. Может кто скинет пример реально рабочего кода с подключением к сокетайо-серверу с передачей параметров?репост с тонущего
Пукнул в треде
>>1161406Я работал с этим дерьмом. Абсолютно не прозрачное плохо документирвоанное говно. От Object... меня вообще блевать тянет. Бер и копайся бля есть там что или нет, JSONObject или Exception какой-нибудь нахуй.С котлином надеюсь разберешься, потому что ебал переписвать на джаву.https://pastebin.com/GFvZDrx6
>>1161320Охуенно обрезал самый важный кусок.Подозреваю что ты где-то передаешь null по цепочке, RxJava2 за такое убивает нахуй.
>>1161406Ах да, еще проверь своего бекендщика на вшивость, а то мой слал/принимал голый jsовский json, из ебаного веба в ебаную ноду же.
>>1161465> мой слал/принимал голый jsовский json, из ебаного веба в ебаную ноду же.Что?
>>1161474Поскольку js не типизирован, то отправить через socket.io можно было все что угодно, в итоге слались не сериализованные объекты. И когда я слал нормальный тектсовый жсон, то получал фигу.
>>1161479> Поскольку js не типизированУверен, что понимаешь слова, которые пишешь?
>>1161481Я непривльно выразился.
>>1161404 (OP)Ведро-тян к вашим услугам.
Изучить android программирование на яве, а затем вкатиться в реакт native. Слишком ебануто?
>>1161459Если этот код обратно вернуть в фрагмент, то все работает.Возможно у меня дебильно сделано обращение к методу, который вызываю из фрагмента, так называемый setWebmData.
>>1161459>pastebinСпасибо, покопаюсь>проверь своего бекендщика на вшивостьДа веб-клиент без проблем заработал, не в этом дело
>>1161621 -> >>1161457
Есть один быдлокод https://pastebin.com/q6mmuJap Цель: вынести методы которые отвечают за запросы из сети например, fetchWebmDetails() Нет, я не прошу сделать все за меня, прошу совета о реализации. Сам пробовал создать отдельный класс, в который переносил вышеупомянутый метод, но столкнулся с рядом проблем. Проблемы такого плана. Не могу правильно обратиться к методам setWebmData и setTagsAdapter, соответственно и в обратную сторону, не мог правильно вызвать метод fetchWebmDetails из RandomFragment.В общем, как сделать или что изучить дабы разобраться с этим. У меня постоянно с этой темой проблемы и поэтому все писал в одном классе активности или фрагмента, что не есть хорошо в плане ООП и SOLID.
>>1161621Так в том то и дело, что в моей ситуации тоже с вебом все было ок, а то что я слал сервер не понимал. Когда я указал на проблему и бекендщик поправил как надо - в вебе тоже немного правок внесли (просто слали не прямо объект, а stringify'цированое представление)
Ведраны, кто-нибудь юзал protobuf-плагин к gradle?Эта хуйня по дефолту тащит все .proto в jar. Как это говно отключить?
>>1161539>СГТУ?А это уже деанон. Так что не буду отвечать.
>>1161812Ты уверен что хочешь это отключить? Не просто ж так наверняка.Ну вот вроде https://github.com/google/protobuf-gradle-plugin/issues/108
>>1161872>Ты уверен что хочешь это отключить? Не просто ж так наверняка.Да, хочу. Честно говоря я не ебу нахуя оно вообще сделано, ибо generated кода более чем достаточно.>Ну вот вроде https://github.com/google/protobuf-gradle-plugin/issues/108Да, оно. Спасибо, анончик.
Сап двач, помоги. Есть ресайклер ,данные в его адаптер загружаю чере асинк такс из сервака. При нажатии на айтем ресайклера открывается фрагмент с подробной инфой об айтеме, фрагмент открываю через транзакшин эд. Через этот фрагмент я могу удалить айтем из сервака и после удаления через popbackstack возвращается фрагмент с ресайлером, но айтемы в нём остаются прежними . Так вот как мне зарефрешить данные ресайклера автоматически после удаления айтема без свайпов и т.д. ведь в фрагменте ресайлера не запускаются заново онстарт, онресум.
Скиньте уже пак тни с оп пика.
>>1162119Думой.Первое, что пришло за секунду, так это можешь ебнуть пагинацию со спинером обновления.
Аноны. Есть один дипломник и его заставили делать приложение под ведро. Вопрос: что нужно знать для того чтобы знать/сделать для создания "приложение по учёту клиентской базы предприятия"?
>>1162119В сторону FastAdapter копни.
>>1161687Продолжение. Поскольку все промолчали (70 раз просмотрели ссылку с кодом) пришлось делать по своему.Создал интерфейс и отдельный класс WebmDetailsFetcher чтобы в нем написать метод fetchWebmDetails(). Для инициализации интерфейса создал конструктор в классе WebmDetailsFetcher. Затем в onCreate методе инициализирую тот самый конструктор. Передаю аргументы в setWebmDetails и получаю ожидаемый результат. Пока все работает без проблем, но не является ли это изъебством и можно было сделать куда проще и красивее? Ссылка: https://pastebin.com/bkcrD83M
Нужно было отображать в RecyclerView HashMap с привязкой - ключа User и его ArrayList заказов - value из другого класса. Я нанес на них общего предка и в тот же Recycler пихнул простой лист, где я преждевременно рассчитал количество value в каждом key и у меня получилось следующий массив:User, Order, Order, User, Order, Order, Order и так далее. т.е. первый юзер имеет два заказа, второй - три заказа и т.д.Теперь я запихнул иконку searchView, но проблема в том, что у меня ArrayList содержит в себе их общего родителя, который не имеет метода getUser и getOrder. Как мне запилить этот поиск?
>>1162233Какой у тебя уровень знаний? Если коротко то нужно знать все что нужно для шлепания CRUDов.
Хмм. Пиздец, чё не так с этими сраными вкладками. Хули они мне 14 инстансов фрагмента нахуярили.
Йоу, всем привет. Начал использовать realtime database от firebase, хочу получать записи имеющие в поле `Ингридиенты` значение которое включает в себя `Морковь` Использовал такой код(1ый скрин) для такой бд(2ой скрин). В итоге у меня нихуя не получается, как фиксить?
>>1162494Только что узнал, что equalTo() ищет строку полностью включающую строку указанную в аргументе. Получается это не альтернатива like из sqlВ таком случае я в полной растерянности и не знаю как поступить
>>1162496Ха-ха, лох. Тебе говорили, бери SQL и не выебывайся, нет, хочу жрать зависимость от гугла.
>>1162503Ты ебанутый? Там будет большая бд. Я что буду подгружать всю бд пользователю?
>>1162507Ну, теперь ты вообще ничего подгружать пользователю не будешь.
Кто-нибудь делал instant apps , какие подводные?
>>1162492Всего понемногу. Если вкратце то чуть больше чем нихуя.
>>1162185Пагинацию на стороне сервера делатьна спринге написал или на стороне клиента?
>>1162588Тогда хватит. Верстка + нетворкинг это если по бомжацки. Что бы норм надо еще db, но не сильно, с SQLite не разгонишься.
>>1162621Both.
>>1162621Так если ты со сервака удаляешь, просто обнови инфу ресуклера. Т.е. можно присобачить спинер как при обновлении новостей впараше.
Как же заебал это имбицил с вебмками
>>1162969Все ж мы люди!
>>1162969Имбицил с вебмками молодец и изучает разработку работая над интересным ему проектом, а не над очередным тудулистом и веазер апп из онлайн курсов.
>>1163073Спс))
>>1163073> а не над очередным тудулистом и веазер апп из онлайн курсов.Жиза. Как себя бы не заставлял тогда, все равно блевать хотелось от просмотра кода из туду.
Уважаемые господа, обновил студию до последней версии и повылезала какая-то шляпа. При этом все вроде как работает (как дебаг, так и релиз). Подосбите решением, если знаете. Из того, что могло повлиять - поменял compile на implementation. Из того, что пробовал из гугла и не помогло - синхронизация градл файлов, invalidate/restart, добавление google() в repositories. Хуй знает че, короче. Вроде работает, но глаза мазолит
>>1163534>вроде как работает Ну и не трогай тогда.кек.
>>1161812Юзай https://github.com/square/wire
Как можно сделать так, чтобы пользователь мог залогиниться в одном моем приложении и потом автозалогиниться в другом, не вводя логин и пароль во второй раз?
>>1163884Account manager
>>1163887Спасибо, анон. Насколько я понял, приложение, через которое пользователь в первый раз аутентифицировался, просто пихает логин+пароль в Account Manager и потом остальные приложения вытаскивают логин+пароль из Account Manager'а?Есть ли такая штука, чтобы я отправлял логин+пароль сервису аутентификации, который бы выдавал какой-нибудь подписанный пропуск, который я буду показывать при обращении к своим сервисам?
>>1161404 (OP)какая на пике кобыла бе.с виду конечно не оч встратая, но по мне не оч, КОБЫЛА одним словом
>>1163895это трап же ну
Как правильно скачать и распарсить xml?Передавать парсеру на вход огромную строку?
>>1164048>распарсить xmlучись парсить json
>>1164111Ну вот мне надо rss ленту как бы, и один хер это не влияет на суть вопроса.Мне либо коннекшон передавать вместе с инпут стримом в парсер, либо сначала всё прочитать из стрима куда-нибудь, и передать это в парсер. Второе явно лучше, но я не знаю как принято делать.
>>1164121> Второе явно лучше, но я не знаю как принято делать.Почему ты так думаешь?
>>1164123Ощущение будто я на приёме у психотерапевта
Программировать под андройд в 2136, вы серьезно? Зачем вы себя унижаете?мимо сижу полгода на реакт нейтиве
Анончики, при отправке коммитов в репозиторий гитхаб, вылезло окошко с кнопками merge и rebase, я нажал на вторую кнопку и все распидорасило в моем локальном проекте. Пропали все папки с джава классами и прочее. Иконки изменились на другие.
>>1164172>нопками merge и rebase, я нажал на вторую кнопку и все распидорасило в моем локальном проекте. Пропали все папки с джава классами и прочее. Иконки изменились на другие.АХХААХАХХАХАхСук) Проиграл.Я тоже так делал. В общем, по методу тыка нашел следующий рецепт для себя: Есть девелоп, создаю ветку новую, хуярю код там, потом переключаюсь опять на девелом, нажимаем волшебную кнопку MERGE, сливаем наши изменения в девелоп и мерджим конфликты.Хз, может поможет.А вообще, тебе лучше опять скачать проект, чтобы хуйней не страдать и применять мои рецепты.
Анончик, как провести аутентификацию по LDAP?
>>1164172Тоже проиграл, тоже так познавал, только не кнопками, а в консоли, копируя команды со stackoverflow.
>>1164210>>1164412Прикол в том, что они сука так и лежат в папке с проектом. До них можно спокойно добраться и вносить изменения. Но по большому счету, это все хуйня.
>>1164131>когда даже психотерапевт кодит лучше тебя
Нуб в андроиде. Делаю урок по сайту Климова (Светофор, день 4ый)Почему при присвоении значения фона ConstraintLayout, меняется фон у всех элементов? То есть, по уроку если делать, такого быть не должно, но окрашивается весь контейнер, включая кнопки.
>>1164362Через Oauth
>>1164476Нет, меняется фон только у лейаута. Смотри в сторону бекграунда кнопок.
>>1164476>Нуб в андроиде. Это непоправимо.>Делаю урок по сайту Климова (Светофор, день 4ый)Нахуй Климова, хоть котики у него есть, но все равно нахуй. Ебашь юдасити, я знаю, что я говорю. Ты получешь невъебенные 6-7 курсов суммарностью 200 видосов.А на вопрос отвечать не буду, пока юдасити не пройдешь. Троль.
>>1164172Выключил включил студию все вернулось на места свои.
Блять, я не понимаю. На работе логи не работают, дома логи не работают. В Run их тоже нет. Тупо ошибки как этиE/RecyclerView: No adapter attached; skipping layoutE/MultiWindowProxy: getServiceInstance failed!Просто пиздец. Сука. Отлаживаю через тосты. Дожил.
>>1164752Если у тебя показываются только ошибки, значит Log level у тебя стоит Error. Если ты свои логи через Log.d() пишешь, значит тебе нужно поставить Log level: Debug. И убедись, что строка поиска и фильтры у тебя пустые.
>>1164776Нет, у меня что-то вроде этого.Подозреваю, что пиздец в самом проекте. Но это только у меня, у другого чела работает.Но у меня и дома не работает. Загадка.К слову, здесь должно быть 100 строчек от логов. Раньше было, сейчас же нет.
>>1164649Спасибо за совет про Удасити, как раз собирался смотреть. А с такой рекомендацией уж тем более побегу.
>>1159988Bump
>>1164818хз, попробуй все заглушки отключить: debug -> verbose, filter -> no filters, а в строке поиска, если надо, можно просто прописать имя пакетаорнул с тостов
Короче смотрите, ведроны.У меня есть три ресайклера, которые должны наполняться тремя парсерами (у них различаются только ссылки).Взаимодействие с сетью сделал по примеру через NetworkFragment со вложенным DownloadTask, который отправляет ответы в хостующую активити коллбеком.Как мне утроить эту хунту? Сначала думал создать три фрагмента, но потом понял что хуета. Потом попробовал передать во фрагмент лист из ссылок, чтобы он мне три таска вызвал, но тоже хуета, у фрагмента аргументы каким-то странным способом устанавливаются и кажется нет способа передать лист. Думал ещё коллбеку три метода добавить, но это уже вообще дикоКак это делается?
Хэлп! решил попробывать вк апи создал public class Application extends android.app.Application , манифесте <meta-data android:name="com.vk.sdk.AppId" android:value="000000" />вроде все как надо, но все ровно ругается >String <integer name="com_vk_sdk_AppId">your_app_id</integer> did not find in your resources.xml
>>1165175все решил
>>1165019Проблема была в том что нужно было перезагрузить девайс.Я сам сидел и орал)
>>1165098Непонятно. Если хочешь данные с сервера получать по разным ссылкам - сделай три метода от ретрофита и дальше пляши от этого.
Решил на выходных тыкать слегка натив фреймворки. Что лучше, брать реакт нейтив или все-таки попробовать флаттер? Кто игрался с ними? Расскажите как ощущения.
>>1165326Он реакта чот блеванул. Тулинг какой-то пиздец ебанутый для меня. Какие-то пляски с нпмом старой версии, подкачивания какой-то хуйни и тд. А ну и жс, может с каким-то врапером типа тайпскрипта оно лучше, но не зашло. Флаттер не тыкал.
>>1165329Бля, отзыв конечно пиздецовый.Хотя инстаграммы всякие и написаны на нем.
>>1165347Ну ты бы еще фейсбучными либами на полном серьезе пользовался типа фреско и литсо.
>>1165351Ну я фреско только юзал на минималках, без углублений в детали.Хотя мне почему-то дарт получше читать, в отличии от того же жс, чего у последнего 60к звезд на гитхабе. Сложно все-таки натив выбирать, все-таки продолжу писать на джаве и буду ждать книжку от хед фест про котлин.
Все-таки мне понравился дарт. Если че, здесь есть анон, который потихоньку копает дарт. Земля мне пухом в свободное моё время.
>>1161404 (OP)Анон, посоветуй плез годный демо по Clean Architecture + MVPСейчас ковыряю этоhttps://github.com/android10/Android-CleanArchitectureНо эта демка говно - state презентера не сохраняется нихуя и при определенном сценарии вообще с NPE падает все нахуй.
>>1165559Это ты говно.
>>1165575Почему?
>>1165559https://github.com/googlesamples/android-architecture
>>1165616Благодарю.
Анон, использую в проекте RxBinding и ButterKnife. И понял, что в разных местах использую разные обработчики нажатия на кнопку, а это хуево ИМХО. Что выбрать в итоге?
Анон, что спрашивают на собеседовании на джуна?
>>1166623Загадку про два стула.
>>1166524Если у тебя две библиотеки со схожим функционалом, то ты дурачок.Убирай все вообще нахуй, либо оставляй рхбиндинг.
Как в андроиде проиграть видео и byte buffer'а (никак)?
>>1166666Кто нибудь использовал ExoPlayer? Можно ему буфер с данными отдать?
>>1166524Выкидывай баттеркнайф нахуй.
>>1166698Но мне лень прописывать ебучую инициализацию
>>1166743https://antonioleiva.com/kotlin-android-extensions/Тем более ты можешь это делать постепенно.
>>1166673ExoPlayer'у можно скормить вообще все, главное напиши реализацию DataSource из трех методов.
Читаю доки. Пилю проги.Забиваю гитхаб хуетой. (Такой хуетой что аж стыдно себе) но активность капает 1000+ коммитов уже захуярил дебил.Купил гугл плей. Залил туда одно говнище. Находятся дебилы которые даже устанавливают.Собственно вопрос сколько по хорошему нужно запилить прог на гугл плей чтоб вкатываться в джуниор и было не стыдно за себя??Есть ли смысл гнаться за количеством? Сделать 10-ток толковых (блокнотик, to-do шечка, таймер будильник, читалка твитеров и т.д.)Или прям хуярить и хуярить чтоб штук 50-100 всяких крестиков ноликов, пятнашек, змеек, хуеек и прочего.
>>1166935Вася, опять ты что ли?Тебе же говорили, что аутистам не дают работу.
>>1166935Учи Flutter. Слышал, что про него стали очень часто спрашивать на собесах.
>>1166955Нет я другой аутист
>>1166980Ты рофлишь что ли?Они еще даже переворот экрана не пофиксили, КАРЛ.Идет уже 2137 год, даже сами разрабы флаттера хуй забивают на дискуссии молодых людей в issues на гитхабе.Хотя было бы интересно почитать краткий экскурс и по другому нативному говну, но мало кто интересуется этим.Да и еще альфа версия.Если сделают как на иосе, только с дартом, было бы замечательно. Наверное.
>>1167030> Они еще даже переворот экрана не пофиксилиТак это и в Андроиде не пофиксили и не пофиксят уже никогда.
>>1167030>>1167193А что не так с поворотом экрана?ну кроме того что активити пересоздаетсяНу так с этим уже вроде каждая собака умеет бороться.
>>1166524я бы второе оставил хотя на самом деле разницы большой прям нет
Задача такая - хочу сделать асинхронную загрузку данных через Rx, но все примеры предполагают, что управление подписками прикрепляется к жизненным циклам активностей. Я бы хотел сделать загрузку, не зависящую от этих циклов (чтобы работала даже в свернутом виде, не зависела от переключений активностей). Но управлять подписками как-то надо (по крайней мере желательно). Гугл предлагает ставить на паузу при уходе в бэкграунд приложения и потом просто возобновлять. Но это как то не очень. Если у кого-то есть что-либо, то достаточно ссылки на ресурс
>>1167247>Ну так с этим уже вроде каждая собака умеет бороться.Ой блять, не начинай. Я не хочу даже думать об этом.А если еще вспомнить фрагменты и ТО, как ГУГЛ КАЖДЫЙ МАЙ говорит, что ФРАГМЕНТЫ ЗАЕБИСЬ - да идите вы нахуй.
>>1167278>фрагменты:)Да ну нахуй. Нове гугловские архитектурыне компоненты меня тоже не впечатляют. Я ебашу single activity с кондуктором.
>>1167276Зачем ставить на паузу? Можешь глянуть https://github.com/NYTimes/Store. У них ConcurrentHashMap держит некоторое время твои обсервэблы и дедуплицирует одинаковые запросы.И можешь оставлять свои подписки как есть, можно share на обсервблы просто хуйнуть перед тем как они попадают в лайфцайкловые компоненты. (стор так и делает собственно)
>>1167276А что ты вообще планируешь грузить таким образом, что тебе требуется управление подписками в фоне?
>>1167308Вот про тему со стором я как раз и думал, просто писать не стал. Посмотрю уже завтра как NYT реализовано (плюс у них там схемки какие то). Спасибо.>>1167317Полу-текстовые данные в JSON, в средних объемах (~10 мб) и растянутые по времени в рамках одного получения (5-10 сек, мб чуть больше)
блять что за хуйня7 перерыл все что мог, нигде не нашел описания такой хуйни, поясните плес , хуле не пашет?
>>1167579Чувак, тебе в юнити тред.Здесь такой парашей не занимаются.
>>1167579Там все четко и ясно описано.
>>1167276Сервисы для кого?
Какие могут быть варианты написания приложения без использования фрагментов для организации работы с табами?
>>1167979А можно не выебываться и сделать на фрагментах. А варианты такие же, что и в принципе без фрагментов обходиться - кондукторы и мотары всякие.
>>1167979>кондукторы и мотары всякиеНу согласен, да. Иди что-то вроде таких. Одна либа полностью укомплектована и валяется на гитхабе.Но в основном нужно было ебаться с бек стеком, а здесь особо и ебаться незачем.Сначала подумой, прежде чем хуярить в свой проект очередную либу.
>>1168003> Но в основном нужно было ебаться с бек стекомСколько раз слышу это как аргумент против фрагментов, но так и не могу понять, что в этом сложного. Ну ладно там кривые api у камеры или Bluetooth, но тут-то что не так? Что в этом такого сложного?
>>1168053> Что в этом такого сложного?Абсолютно уебанская асинхронная ссанина, которая даже с проверками на isPaused умудряется падать в> Can not perform this action after onSaveInstanceState
Анон, что используешь для внедрения зависимостей? Фабрику или какой-нибудь Dagger2?
>>1168053Да взять хотя бы тот факт, что фрагменты будут выпилены из фреймворка и останутся только в саппорт либе.
>>1168249Так хорошо же. Почему это должно быть причиной отказа от них?
>>1168066Ничего. Это анти-паттерн.
>>1167979А как реализовано в последней версии приложения YouTube плеера? Разве там фрагменты используются?
>>1168249>что фрагменты будут выпилены из фреймворкаВот тоже когда пишу иногда задаюсь вопросом. Всякие action bar, toolbar, постоянно приходится на v4 вниз стрелочкой жмякать.Это будет чудо, если гугл выпилит все говно и оставит важное в супорт либе. Такому не бывать.
>>1168066Использую даггер и фабрики где нужно динамические параметры передать.
>>1167979ViewPager с разными лэйаутами.https://www.bignerdranch.com/blog/viewpager-without-fragments/
>>1161404 (OP)Анон, посоветуй стэк.Кароче: у меня есть на PC крутится сервачек на python, который парсит сайты и дампит инфу с разных API в db SQLLite. Другой процесс обрабатывает данные из этой db. Требуется пересылать результаты аналитики на android app. Какой стек технологий подобрать? Направь анон, ато уже несклько дней не могу подобрать. Поглядел firebase, но так и не понял, подойдет ли это для моих нужд? Сейчас настроил сокет соединение, которое обслуживается через ddns и сервер получает сообщение от andoid app через интернет, но не наоборот (android app получает дату только находясь в локальной сети).Короче, на прилажухе должны быть поля, в которые постоянно приходят данные. ПОСТОЯННО. и при условии выбрасывать notification.
>>1169599Сейчас прибежит вуефорсер и будет советовать всё переписать на node.js и vue, мол, через месяц 300кк/нс будешь получать
>>1169623а что рили так удобно? дело не в мифических 300ММ/нс, но если будет работать, я уже на все согласен. с js давно знаком, но тесноый дружбы не завязывал, может быть время?
>>1169627> js> удобноТы же это не серьезно?
>>1169623>300кк300m
>>1169631по счет бэкенда не знаю, однажды по дурости поучавствовал в холиваре и понял, что это иррациональная риторика. Но если поможет для моего случая и я не огребу еще большего геморроя, то почему нет
>>1169599Да, бери firebase push api, смотри, на каких языках для неё есть готовые библиотеки. На джаве точно есть. При обновлении данных отправляй информацию на сервер firebase. На телефоне лови эти пуши, проверяй и делай с ними что хочешь.Даже если ты раньше ничего такого не делал, но умеешь программировать, то тут работы на пару вечеров. Сервер пиши на чем хочешь из поддерживаемых языков, клиент наивный на Java/Kotlin.
Аноны, помогите нубу разобраться. Хочу написать приложение, суть такова: есть RecyclerView, внутри него карточки CardView. Каждая карточка - это какая-то категория. По тапу на карточку открывается такой же вид, где каждая карточка - это подкатегория, при нажатии на подкатегорию открывается список всех предметов, относяшихся к этой подкатегории. Как можно это реализовать используя один и тот же RecyclerView, просто меняя его содержимое, а не открывая новый activity каждый раз? Проблем еще в том, что список предметов это тоже карточки, но они отличаются от карточек категории, поэтому нужно будет писать какой-то хитрый адаптер, который сможет обрабатывать оба типа. И да, естественно, оно должно быть масштабируемым, т.е. может быть любой уровень вложенности категорий друг в друга.
Каким образом провести проверку на null???String likedJsonPrefs = prefs.getString(LIKED_ID, null);String[] likedArrPrefs = gson.fromJson(likedJsonPrefs, String[].class);???likedWebmList.addAll(Arrays.asList(likedArrPrefs)); А то при NPE при обращении к методу addAll возникает, пока не сохраню в преференсах строку. Пробовал проверить длину массива (length), то аналогичная проблема. Спасибо.
>>1169827> а не открывая новый activityСлишком замудренные предложения. Если по нажатию на кардВью тебе нужно отобразить то, что нужно без активити - юзай фрагменты.>>1169842> А то при NPE при обращении к методу addAll возникает, пока не сохраню в преференсах строку.А как ты хочешь? Сразу в гсон.фром в первый параметр пихнуть преференс гет стринг?
>>1169851То есть, мне все таки придеться открывать новый activity по нажатию на карточку, даже если единственное, что поменялось - это список карточек?
>>1169854Просто передавай новый data source в свой адаптер.
>>1169855При смене с категории на подкатегорию я могу просто поменять данные и вызвать nortifyDataSetChanged и он перестроится. Но при смене с категории на предметы мне нужно по-другому их отрисовывать.
>>1169854А, так суть в адаптерах. Нахуй тебе нужен загромажденный адаптер?Можешь юзать getItemByType или как-то так, в общем, примеров много.Если только менять вьюшки, то это легко в принципе. но при тапе ты можешь открывать новый фрагмент, где получишь данные и хуйнешь это в свой базисный адаптер, где он и определит эти данные в соответствующий леяут.
>>1169857> Но при смене с категории на предметы мне нужно по-другому их отрисовывать.Ну так отрисовывай, хули.
>>1169851Делаешь интерфейс, в нём вложенные классы. Один класс - один уровень категории. Дальше просто забиваешь свой ресайклер элементами в нужном порядке. Некоторые скрываешь, некоторые нет. Мне кажется, что это может сработать.
Бля, промазал.>>1169928 вот сюда >>1169827
>>1169842Оберни в Optional из Java8.
>>1169827Пилишь несколько разных вьюхолдеров, оверрайдишь getItemViewType и в методах onCreateViewHolder и onBindViewHolder делаешь свич-кейс when, если ты белый человек и там уже расписываешь свои карточки. И да, никогда не делай notifyDataSetChanged, если изменилось менее 90% датасета, а сам он меньше ~200 элементов. Лучше используй notifyItemRangeChanged, или просто notifyItemChanged.Вот тебе ответ со стека, там как раз то, что я описал: https://stackoverflow.com/questions/26245139/how-to-create-recyclerview-with-multiple-view-type/26245463#26245463
>>1170020Блять, ему это уже 3 раза расписали, и ты еще 4 раз пишешь одно и тоже.
>>1169658Что лучше выбрать между django и firebase? Чтобы с заделом на будущее?вообще стал копать джанго, потому что хочу поднять на домашнем компе, тем более весь бэкенд критится на питоне. С другой стороны, firebase тема годная и, думаю, понадобится.
>>1170087> django и firebaseFirebase это весело, когда им пользуешься только ты и твой кот. Потом начинает приходить счет на пару сотен долларов в месяц в там, где можно было обойтись впской за 10 бачей.
>>1170094хм, тогда может поднять джанго на амазоновском хосте?
Как организовывать структуру проекта с dagger и rxjava?Хотел MVP использовать, но во всех примерах структура разная, и я хз какой придерживаться.Алсо, приложение планируется не маленьким - апи, бд, карты и прочее
>>1170194Чем тебя MVP не устраивает? Дополни её каким-нибудь интерактором и репозиторием, где распишешь общую бизнес-логику и работу с данными. В презентер вынесешь только логику представления и частную бизнес-логику. Вообще структуру ты выбираешь сам и строишь её таким образом, чтобы было удобно тебе/твоей команде. Самое главное, чтобы ты не запутался в ней, и было понятно почему и зачем что-то сделано именно так.
Анон, где можно почитать про реализацию Material Motion без сторонних либ. Сам искал и не нашел норм инфы.
>>1170194>Хотел MVP использовать, но во всех примерах структура разная, и я хз какой придерживаться.>Алсо, приложение планируется не маленьким - апи, бд, карты и прочееНахуй вообще тебе всякие ЭМ ВИ ПИ и тому подобное?Бери пример с меня, ебашь все сразу. А потом и образуется как-нибудь.
>>1170020Т.е. ты хочешь сказать, что если меняется весь датасет, то лучше сделать сделать notifyItemChanged для каждого элемента, я правильно понимаю?
Открыл я тут недавно диспетчер задач, а там висят штук 15 неубитых adb, каждый из которых по ~100Кб. Какого черта эта хрень не убивается сама при закрытии эмулятора/студии?
>>1170528Лучше уж notifyItemRangeChanged, раз у тебя вообще все меняется.
>>1170020Вместо нотифаев лучше вообще юзать DiffUtil, особенно с разными типами итема
>>1170569А он будет работать, если итемов стало больше/меньше? Мне тогда после обновления датасета делать notifyItemRangeChanged(0, items.size())?
К вопросу про фрагменты. Не успел я остудить свою жопу от доёбов гугла к моему приложению по поводу авторских прав в API одного сайта, как он подкидывает другой повод.Дано: NavigationDrawerActivity c TabFragment в нём, в котором грузятся фрагменты. Начало моё приложение падать с NPE при попытке изменения TextView после возврата к нему. Ну подумал, что это из-за того, что асинктаск завершается быстрее, чем происходит findviewbyid для вьюхи в onCreateView (он запускается из onCreate - я понимал, что из-за этого могут возникнуть проблемы, но забил). Тем более, что данных приходило меньше на этой неделе чем обычно. Вкратце перекинул старт этого таска в onStart.NPE перестало появляться, но сломалась пагинация, поэтому я продолжил копать дальше. Раскидал по жизненным событиям логирование, по своим функциям тоже. Вижу, что после возврата в foreground приложения вроде создаются две копии одного и того же фрагмента. Ну копаю дальше, дописываю события, логирую их. Смотрю лог, и что я вижу - эта сука действительно создаёт один инстанс и стартует таск в onCreate, а после стартует ещё один инстанс в onStart, хотя по пикрилу да и по логике такого не должно быть. Андроид благополучно забывает об этом и вспоминает об этом только после того как асинктаск завершается, конечно же вьюха под эти даннеы не создана и вылетает NPE https://pastebin.com/M46qteUA . Сука, ну как можно было ТАК ОБОСРАТЬСЯ!!!А вообще из-за чего это начало происходить. После возврата в приложение показывался StartFragment, то есть происходил onCreate Activity. Но сука бэкстэк при этом всегда был не пустой!!! И если нажать "Назад", то возвращало к реально последнему состоянию последнего фрагмента перед остановкой приложения. Я сделал проверку на состояние бэкстэка и чтобы этот последний фрагмент грузился после рестарта (через onCreate естественно, с проёбом состояния). После этого начал вылетать NPE.Блять, ну какие жу всё-таки пидарасы в гугле!
>>1170748Интересная картинка. теперь я понял как онБекПрессед работает.
анон, тыкни, куда идти? Нужен стэк для клиент-серверного прилажения, которое юзать будем только мы с котом. Что нужно: чтобы прилажуха отображала цыферки с бекенда на питоне. На примете: django, firebase, пушить файл на ftp и с него забирать. Как проще всего сделать? и кстати, правда, что сокет не работает через инет вовсе? настроил только с андроида на сервер, но не наоборот.
>>1171064Ты бы уже написать всё успел, за что время, пока сидишь стек выбираешь.
>>1171090да пишу. хотелось бы посмотреть на другие варианты. ато не очень хочется побеждать в велотуре
>>11710641. Подключаешься по сокету на свой сервер и получаешь данные, показываешь их. Держишь либо это соединение всегда, либо только пока открыто приложение.2. Получаешь данные по требованию через http и отображаешь их. Добавляешь новые записи через GCM/FCM постепенно.
>>1171159так сокет только в локальной сети работает же?
>>1171161Сделай себе белый айпи, в чём проблема?
>>1171172>Сделай себе белый айпи, в чём проблема?белый - это статичный? Если да, то я настроил статичный IP через no-ip, ddns, port forwarding. Но это на PC. Андроид все равно не получает данные на сокет. Говорят, что за натом. Плохо понимаю что это и как обойти. >Получаешь данные по требованию через http и отображаешь их. Добавляешь новые записи через GCM/FCM постепенно.какие тут endpoints? не знаком с технологией и плохо шарю в сетях. Что начать читать? Ато не представляю как происходит обмен данными. было бы готовое решение - было бы замечательно
>>1171179Проще, покажи что ты уже сделал. Кто тебе говорит что твой андроид за натом. У тебя андроид уже слушает какой-то сокет и пытается через него получать данные?
>>1171184на android:public class MainActivity extends AppCompatActivity { EditText e1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); e1 = (EditText)findViewById(R.id.editText); Thread myThread = new Thread(new MyServerThread()); myThread.start(); } class MyServerThread implements Runnable { Socket s; ServerSocket ss; InputStreamReader isr; BufferedReader bufferedReader; Handler h = new Handler(); String message; @Override public void run() { try { ss = new ServerSocket(7801); while(true) { s = ss.accept(); isr = new InputStreamReader(s.getInputStream()); bufferedReader = new BufferedReader(isr); message = bufferedReader.readLine(); h.post(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show(); } }); } }catch(IOException e) { e.printStackTrace(); } } } public void send(View v) { MessageSender messageSender = new MessageSender(); messageSender.execute(e1.getText().toString()); }}тут пытаюсь послать на IP телефона:s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect(('myIP', 7801))s.send(b'Oi you sent something to me \n')data = s.recv(64)но ничего не приходит. Еще есть класс MessageSender, который отлично пересылает на сервер через адресс no-ip. Но вот с сервера на androir не приходит. Может myIp (ip смартфона) как-то тоже нужно настроить через no-ip?
>>1171193Так, абажжи. У тебя в роли сервера выступает телефон, а в роли клиента домашний сервер?
>>1171202Ну как я понял, сокет-сокет, это пир то пир. Нужно же и там и там сервер?
>>1171203вообще решения этой проблемы передачи на сокет смартфона так и не нашел. Восновном говорят, что телефону это не позволяется не из под рута и провайдеры НАТят Ip смарта
>>1171203ты уж определись, тебе нужен пир-ту-пир или клиент-сервер
>>1171208да что проще то и лучше) пока пишу бэкенд на питоне и пушу нотификейшены на андроид через сервис. Но в было бы отлично с помощью несложной технологии прямо с питона слать дату в прилажуху.
Сап, анунасы, тут кто-то занимался сборкой андроида под свой смуртфон (AOSP или Lineage OS)?Есть пару китайцев к которым хочу собрать Oreo, застрял на шаге сборки проприетарных блобов и не могу понять что мне делать, вроде же их можно как-то из системы моего смартфона вытащить?https://source.android.com/setup/build/buildingЕсть у кого-то более детальное объяснение?
>>1171210>и пушу нотификейшены на андроид через сервис
>>1171210>и пушу нотификейшены на андроид через сервися так понимаю, речь как раз о GCM/FCM. Это нормально на самом деле.Просто с клиента (приложение под абдроед) подключайся по сокету к серверу своему. Данные можно слать в обе стороны если что через это подключение. Всё.
сап, андроидасы, ебашу ваще адовую приложуху. В ней есть один ViewPager. Как правильно обрабатывать повороты экрана в нем? Записываю в onSaveInstanceState номер фрагмента, и при повороте выводится нужный, но при этом "за секунду до" происходит анимация пролистывания и виден кусок фрагмента идущего перед нужным. Как это вылечить?
>>1171225> застрял на шаге сборки проприетарных блобов и не могу понять что мне делатьТебе нужно накатить оригинальную прошивку, подрубить по усб и запустить скрипт, который вытащит из нее все блобы.
Несколько раз в год меня одолевает уныние от существующих языков и желание создать новый, лучше всех имеющихся. Чаще всего это желание улетучивается почти сразу, изредка приводит к созданию очередного диалекта лиспа, с каждым разом все меньше похожего на лисп.На этот раз у меня возникла идея создать нечто, вдохновленное паскалем, го и жабаскриптом — причем даже не язык, а скорее целый инструментарий. Я не могу отогнать столь ужасную мысль просто так, поэтому буду расписывать свой поток сознания в этом треде.Итак, какова основная цель этого языка, что должно быть основой его философии? Продуктивность. С этого и начну.
>>1171370> Несколько раз в год меня одолевает уныние от существующих языков и желание создать новый, лучше всех имеющихсяЛучше андроид сдк перепиши, у меня от него уныния еще больше.
>>1171370Что влияет на продуктивность? На что разработчик тратит время?1. Написание кода;2. Написание тестов;3. Прогон тестов;4. Ручное тестирование;5. Дебаг;6. Рефакторинг;7. Поиск библиотек;8. Поиск документации;9. Чтение кода и документации.Вероятно, я забыл еще столько же пунктов, но надеюсь, что самые важные я не забыл.>>1171372Как только придумаю идеальный язык — так сразу же создам идеальный сдк под все платформы, под небо и под аллаха.
>>1171301Потому что ты говоришь так и говоришь ему.Ищи ответы на стековерфлоу.Типичная ситуация.
>>1171370Уже есть такой язык, и это котлин.Но я пока его не буду учить, жду от Head First книжечки.
>>1171383> жду от Head First книжечки.Блять, прочекал, она 25 октября выходит.Пиздец.
>>11713751. Написание кода.Что мешает писать код легко и быстро? Я вижу три проблемы: бойлерплейт, ритуалы и парадокс выбора.С бойлерплейтом все понятно — если языку не хватает выразительности, то приходится писать много повторяющегося кода. Нужны метаинтструменты хотя бы в виде ФВП.Ритуалы — например, излишне строгая система типов заставляет переписывать код, который мог бы и работать. Больше всего с такой проблемой я успел столкнуться в PureScript — ошибка "Skolem type variable bound by temp has escaped" во всех тех случаях являлась серьезной с точки зрения системы эффектов, но не имела никакого значения для рантайма. Видеть такую ошибку в языке, ориентированном на корректность, вполне нормально, но для продуктивности этого лучше избегать.Парадокс выбора — при возможности писать слишком умный и слишком разный код теряется время на размышления о лучшем подходе. Лучше, чтобы язык склонял к написанию как можно более тупого кода, оставляя кривые лазейки для умных решений.>>1171383Котлин хорош, но для меня он ощущается как нечто слишком знакомое, а потому не восхищающее.
>>1171391>Котлин хорош, но для меня он ощущается как нечто слишком знакомое, а потому не восхищающее.Если и ебашить язык, то поверх котлина.Ты все равно не осилишь.
>>11713752. Написание тестов;Тестирование обычно является епархией библиотек, а не самого языка. Но я-то вижу в своих влажных мечтах идеальный инструментарий, а для идеальности дизайн самого языка должен учитывать потребность в тестировании.Как упростить написание тестов? Например, можно ввести поддержку докстрингов с примерами вызова функции, как это сделано в эликсире. Полноценным тестированием это не является, но иметь пару гарантированно рабочих примеров будет полезно.Дополнительно, нужны метаинструменты для создания моков и стабов.3. Прогон тестов;Пожалуй, к дизайну языка это отношения не имеет, но реализация должна делать доступной граф зависимостей, чтобы тестовая система знала, какие тесты нужно запускать и не тратила лишнего времени.
>>11713754. Ручное тестированиеКак можно тестировать вручную? Один из вариантов — запускать все приложение и смотреть на результат. Другой вариант — запускать репл, импортировать функцию и играться с ней.В обоих случаях желательно минимизировать время компиляции/интерпретации и количество пересобираемых компонентов. Нужна простая грамматика, подобная паскалю, чтобы токенизация и построение AST происходили за миллисекунды даже на больших приложениях. Нужна быстрая на старте VM — монстры вроде JVM и V8 слишком медленные, куда лучше ориентироваться на LuaVM (и может быть MoarVM).Более того, вместо традиционного компилятора лучше иметь компилирующий сервер, который будет отслеживать все изменения и пересобирать нужные части без лишних указаний. Этот же сервер может реализовать LSP для поддержки языка редакторами.>>1171393>Если и ебашить язык, то поверх котлина.Я пытаюсь задизайнить язык, преследующий определенную цель, а не просто склонировать чей-то синтаксис и идеи. Зачем мне брать за основу котлин?>Ты все равно не осилишь.К чему такой негатив?
>>1171405>К чему такой негатив?А что ты можешь? Ты тратишь свое время на непонятные ответы. Если бы ты хотел, ты бы начал делать. И тем более, одному это пиздец как долго.>Зачем мне брать за основу котлин?Котлин как пример людей, которые ебашили его с 11-го года. А что можешь ты, один человек, предложить андройду? Нихуя. Влажные мечты и только.
>>11713755. Дебаг;6. Рефакторинг;Дебаг и рефакторинг должны идти рука об руку с тестированием. Если возникло необработанное исключение, рантайм языка должен писать соответсвующий машиночитаемый лог, а языковой сервер должен этот лог читать и предлагать сгенерированные тестовые сценарии на основе аргументов, переданных упавшим функциям.Средста рефакторинга должны предлагать нечто аналогичное — перед изменением определенной части кода языковой сервер должен предложить тесты с рандомными значениями для тех частей кода, которые планируется изменить.Однако, этого мало. Лучше минимизировать потребность в дебаге как таковом. Как это сделать? Многие проблемы отлавливаются подходящими системами типов. Но проверка и вывод типов — операция дорогая, а это противоречит замыслу сделать компилятор быстрым. Как быть?Очень просто: исходный прогон компилятора должен относиться к языку, как к динамически-типизированному. Всякая синтаксически-верная программа должна запускаться. И лишь затем, когда первичный прогон завершен, в фоновом режиме можно продолжить заниматься тайпчеком, попутно оптимизируя и заменяя динамические части статически-проверенными. Раз у нас уже есть языковой сервер — надо использовать его по полной. Более того, подобный фоновый режим тайпчека и оптимизации позволит использовать плагины-тайпчекеры и плагины-оптизиматоры, сохраняя при этом все прелести быстрой компиляции. Выходит как JIT, но на пару шагов дальше.>>1171413Вопрос не в том, могу я или нет, стану я или нет. Вопрос был в другом: зачем нужен этот негатив?
Перекатился из закрепа
Господа, как мне запилить распознавание текста в формочках(пикрелейтед)?Мне нужно по фотке распознавать что записано в каждом прямоугольнике( всё будет рисоваться от руки)Порядок действий такой:1.Я программно задаю формы-разметку. Определяю что там должно быть записано внутри. 2.Потом пользователь рисует такую-же разметку, вписывает свои данные.3.Я сравниваю то, что должно быть, и что нарисовал пользователь.
>>1171425Причем здесь вообще андройд? Больной ублюдок.
>>1171427Потому, что буду пилить на Андроиде.
>>1171425 android vision
>>1171429Хорошо. А теперь научись писать более понятно.Первое, что тебе нужно сделать, это найти библиотеку распознавания говна.
>>1171381часа три просидел там, ничего подходящего не нашел. Сюда уже от безысходности решил написать.
>>1171476господи, как все просто то было. метод setCurrentItem view pager'a может принимать 2 параметра viewPager.setCurrentItem(position, false) где false как раз таки запрещает прокрутку.
>>1171331А каким скриптом вытаскивать блобы?
Все привет, кто-то занимался такой херней, как написанием кастомных ромов (под один конкретный девайс), чтоб при включении телефона было всего 1 какое-то приложение и при этом не было бы вообще системных
Ананасы, сколько в часах займет небольшой мвп проект с дерганьем информации из интернета и отображением этой информации в нескольких ресайклерах для воннаби джуна, который не работал с интернетом в андроиде алсо поясните за окХттп, ретрофит и воллей, что из них самое быстрое/простое относительно изучения и имплментинга?
>>1172061часов 30 максимум.> окХттп, ретрофит и воллей, что из них самое быстрое/простое относительно изучения и имплментингасвязка okhttp+retrofit , применяй ее, про воллей смело забывай и забивай. Ретрофит быстр в работе и элементарен в использовании, ты за час по сути полностью освоишь работу с ним. Во всех конторах котируется именно он
>>1172127Спасибо за ответ, анон, пойду гуглить мануалы по ретрофиту. Хорошей тебе жизни.
Анонасы. Наверное платина, но подскажите, что нужно чтобы поднять: python backend (на PC) и посылать данные в android?inb4: socket, django (пока такой размах не нужен), firebase (не охта связываться с гуглом).
>>1172226Хуй его знает. Берешь и поднимаешь. Я вот тоже думаю в бэк как-нибудь углубляться, но только в руби.
Ребят, есть клиент-серверка, если отсутствует инторнет, то вылезает много скрытых багов и не только. Хочу сделать проверки начиная с начала запуска приложения и во время работы. Нагуглить удалось только конкретную реализацию проверки на isOnline, но чтобы на все уровни программы относилось - нет. Кто что практикует в своих проектах?
>>1172545Cмотря что у тебя там.Если что-то вроде вк, так ебни ис онлайн - фалсе, тащить ласт данные с бд.Расписывай конкретней.
>>1172545На экспешн с отсутствием интернета выводи соответствующую ошибку на весь экран и всё. Посмотри 3 статью Ханнеса Дорфмана про MVI, он там как раз обрабатывает ошибки.
Помогите разобраться с okHttp3. Клиент сбилдил, реквест сбилдил, запрос отправил. Вроде бы все работает, но очень медленно. Отправил второй запрос - пришло быстро. В вики написано про коннекшнПул, создание и кеширование коннекшнов, но я не понимаю, как задать использование одного коннешкна, чтобы не тормозить реквест.
>>1173617> как задать использование одного коннешкна, чтобы не тормозить реквест.Используется Persistent HTTP или нет решает сервер, а не клиент.
>>1173669Спасибо за разъяснение. В любом случае, какие параметры обычно используют для okHttp коннекшна? Это ведь одна из самых распространенных либ для интернета, но при этом другие приложения не тормозят при соединении с сервером.
>>1171430>Как же хочется тянучку>android vision...
Посоветуйте погодные апишки с нормальной документацией
>>1174371https://2ch.hk/abu/res/42375.html
>>1174371Зачем?
>>1174459Лабу делаю
>>1174462Можешь по чему угодно делать.У меня курсовая по этой параше будетhttps://www.themoviedb.org/documentation/api
>>1174487> У меня курсовая по этой параше будетА потом они на собеседовании своим дипломом хвастаться будут...
>>1174487Я поздно взял тему и там из нормальных только погодка осталась, опенвезереапи нагуглил, там доки ебнутые, еще даркскай есть, но там нету возможности город выбрать (надо через левый сервис переводить координаты в город и наоборот)>>1174498Я миддл
>>1174498>А потом они на собеседовании своим дипломом хвастаться будут...Это курсовая. Диплом у меня на следующий год. Кек.
Писал проги для яблока, и вообще в целом на обжектив с, с# и с++, внезапно они понадобились на андроиде. И у меня сразу куча вопросов:Как я могу конвертировать кучу больших баз данных .plist в базы данных андроид студио? У андроида вообще есть что-то удобное, быстрое и визуальное?Хули я должен постоянно импортировать используемые вещи и они не подключены по дефолту? Нет, ну серьезно, даже чтобы нажать на кнопку надо что-то импортировать. И мне кажется, или я в процессе кучу лишнего пишу, в си такой хуйни не было.А вот сторибоард с констрантами охуенны, но я еще учусь - хули хедер и футер кажутся неизменяемыми какими-то, лайк навигейшн контроллеры из хкода. Почему они не едины как-то с центральной частью. Я туда даже кнопки кинуть не могу свои.Вообще есть какие-нибудь хорошие видеогайды? Да, я шапку смотрел. Мне бы что-нибудь на русском без смс и регистрации. Чтобы прям шли и поясняли, зачем эту хуйню пишут и почему и какие полезные фичи есть.
Аноны, нужна консультация. Суть такова. Учусь в андроид методом погружения. Стоит следующая задача:Нужно мониторить курьеров и накладывать маркеры на карту с их местоположением. Каждый курьер - то JSON с указанием даты, времени, долготы и широты. Этих курьеров будет около 30. Как максимально корректно с точки зрения архитектуры реализовать параллельную загрузку и обработку 30ти JSON?Кроме того, курьеры постоянно передвигаются. Следовательно, мне нужно будет по таймеру раз в несколько секунд загружать JSON'ы по новой.Какие подводные камни?
>>1174797Получать с бэкенда сразу всех 30 курьеров JSON-массивом.
>>1174797>Какие подводные камни?Да никаких. Похуй на эту архитектуру, ты сначала так попробуй реализовать. Сразу скажу, тебе нужно ебнуть сервисы. Если они передвигаются и отправляют свое расположение в бек - значит тебе тупо придется дергать этот бег через 3-4 минуты - это и будет у тебя в главном сервисе.Потом ебнишь мап, захуяришь туда координаты и дело пошло.
Кто как учил рхДжаву? Я понял что такое observable и onSubscribe, понял несколько операторов. Но не понятны такие вещи как CompositeDisposable например, или еще отписки эти. Как и что. Столько много инфы дается что пиздец
>>1174745>сторибоардЗабудь это говно, господи как же я бомблю от сторибордов в хуйкоде (от ебанутого передвигания мышкой).Каких нахуй базы данных ты держишь в плисте? Это ж тупо ключ-значение, никаких простых средств нет, можешь написать свой конвертер. Строки/стрингдикты относительно легко перевести, находится они должны будут res/values/*.xml. Аналог Info.plist это AndroidManifest.xml, там должны быть декларации компонент ведра (с картинками для приложухи), пермишены и можно держать ключики для сторонних апи. Удобное-визуальное? Ну разве что для локализации строк. Массивы строк/картинок в arrays.xml, вообще конечно зеркального отображения не будет, но оно и не нужно.>Хули я должен постоянно импортировать используемые вещиКак же мне бомбит от кучи говна которые тянуться неявными неймспейсами в свифте или говномамонтные хедеры обж-с. Можешь ебашить звездочки, но то такое.>хули хедер и футер кажутся неизменяемыми какими-то, лайк навигейшн контроллеры из хкода. Почему они не едины как-то с центральной частью.А это уже как ты сделаешь (можно же не только фрагментами хуярить, в отличии от айоси, где от навконтроллера неуютно), на самом деле ты можешь пихать туда свои вьюхи, но лучше так не делать, для тулбара можно делать кастомные actionView, это по сути будет UIBarButtonItem с кастомной вьюхой.>Мне бы что-нибудь на русском без смс и регистрацииРазве что http://startandroid.ru/ru/ , но там скорее всего много старья и не на котлине вроде. Ты же не учил айось на русском, дно же.
>>1175261Ну хуй знает, мне удобно мышкой, прям двигаю и чувствую как нравится.На скринах база в плисте, 25к строк и есть еще больше и много разных, их делаю не я, просто вставляю и программа работает. То есть их должны мочь сделать обычные пользователи, например. То есть ты видишь - у меня словарь, внутри которого словари, в которых еще словари в которых массивы со стрингами и т.д. Печально, что нет конвертера, какой-то гемор прям. Планирую в андроиде делать базы лайк 2 скрин. Конвертиую хмл в ТайпедАррей и стринг-аррей и по ключам и индексам иду дальше. Какой-то гемор, что нет просто массива, в котором могут нормально лежать массивы и прочие вещи по соседству. Вроде есть листы как в с# и еще что-то, я в процессе.Я пока делаю в дефолтах, я понимаю, что я могу всё снести и чистую нужную вьюху туда заебашить, но пока не понимаю как с текущей дефолтной шапкой работать.И да, я учил айось на русском. Конечно, все проблемы приходится гуглить только на английском, как и 99% прочих вещей. Мне нужны нормальные пояснения, где какие кнопки и что я вообще могу. Например вот база в хмле, какие варианты её сделать, сейчас у меня примерно такая же вложенная структура, какая была, но можно ли как-то по-другому и проще/сложнее. Как извлечь данные в какие-нибудь нормальные массивы из неё и т.д. Я такого пока не нашел, везде показаны, обычно, дефолты с простыми стрингами, а дальше типо сами разбирайтесь. вот могу арреи, могу арреи со стрингами, а что еще могу?
анонасы, не понимаю, как c гита выкачанный проект собратьбудьте добры, помогите разобраться
>>1175263> а что еще могуТы че ебанутый в нотепаде++ кодить?Тогда открываешь документацию и смотришь что класс может.Куда ты их вставляешь? Тебе контент менеджер присылает хуйню что ли?
Я в своей мотороле не обнаружил возможности посмотреть какие приложения прямо сейчас жрут оперативку, сколько жрет каждое из них, и выкинуть оттуда выбранные. Сделать такое в качестве своего первого приложения- нормальная идея?
Да что это за уебанство, блять?
>>1175393
>>1175393А в чем проблема?
Есть ли челики, которые хотят ведройд покопать вместе? Попилить что-нибудь этакое.
>>1175559Я хочу, но не могу, я пока на уровне "бля, что тут вообще писать и куда, а еще эта ваша джава ебанутая"
Я пытаюсь вкатиться после рельсов, не понимаю как тут жить. Я могу как-то узнать что вернет выражение не запуская эмулятор? Вот например, хочу узнать что возвращает getSystemService(ACTIVITY_SERVICE), как мне получить результат?
>>1175596>Вот например, хочу узнать что возвращает getSystemService(ACTIVITY_SERVICE), как мне получить результат?Какой результат?>>1175594Если ты готов долбиться каждый день, то неплохо было бы делать это вместе
Наверняка тут много людей, которые хорошо знают ответ на данный вопрос.Есть json ответ сервера с новостями. Воспользовался сервисом, который автоматически генерит сеттеры и геттеры . Он сгенерировал два класса, в одном классе геттеры и сеттеры для описания конкретного айтема, а второй класс имеет сеттеры и геттеры для списка. Как сделать правильно, объединить в один класс или оставить как есть?
>>1175603>о знают ответ на данный вопрос.Ну у тебя может быть один класс, который содержит лист новостей бугуртов, а есть класс бугурты - которые содержат расписание, тему, уровень возгорания автора и т.д.А лучше бы скрины приложить, ты читать сам классы не умеешь что ли?
>>1175605Они там по ебанутому названы. Класс с описанием Event, а у списка класс называется Example.
Почему он воспринимает mp4 за изображение?
>>1175620Это просто иконка.
на реддите выложили книжку по андройду, свежайшую, апрель 18 год.ссылка: http://book.goalkicker.com/AndroidBook/инфа: https://www.reddit.com/r/androiddev/comments/8csgaw/free_android_development_pdf_book/
>>1175659Спасибо, анон.
Как динамически менять значение после знака "="? То есть как завязать сюда переменную category?
>>1175885@get("list.php")Observable<> getSomeShit(@Query("category") String yourShityCategory)
>>1175885Документацию читай, мразь.
Здесь еще яндекс приглашает в свою школу. До 6 мая заявки.https://academy.yandex.ru/events/mobdev/msk-2018/
>>1175928Запилить что-ли эту хуйню чисто для себя.
Чет кекнул сегодня на работе.Правда, никто так и не понял почему.
>>1175991Кстати на гите море репозиториев валяется ну они и дауны, даже посмотрел парочку. Пиздец они идиоты. Думаю спизжу идеи с них и попробую свое сделать. Только я с АПИ пока диска не разобрался, но думаю разберусь.
>>1176221> Кстати на гите море репозиториев валяетсяНа чем, на чем?
>>1176226гитхаб. хули тебе не понятно, очкарик.ща на улицу выйдем сразу пару уроков схватишь на лету.чтобы больше здесь не выпендривался.
Я веб-макака, пишу на рельсах. Если по пару часов в день ковырять андроид студио и пилить свои говноприложения, реально ли за год-полтора достичь уровня при котором можно попытаться устроиться андроид разработчиком, причем не джуном, а миддлом?
>>1176245>ка, пишу на рельсах. Если по пару часов в день ковырять андроид студио и пилить свои говноприложения, реально ли за год-полтора достичь уровня при котором можно попытаться устроиться андроид разработчиком, причем не джуном, а миддлом?Нужно побольше ковырять, хотя, если ты схватываешь на лету а не как я даун то вполне за полтора года можно попытаться ебнуть мидла.Да и что тут говорить, я за 5 месяцев с нуля устроился на стажера. Правда я завтра ласт день работаю
Объясните вкатывальщику, почему в этом говнокоде переменная item имеет тип View, а не ViewGroup? Ведь в той хуйне, которую я в нее пихаю не просто View в виде одного элемента, а Button и TextView обернутые в LinearLayoit
>>1176250Ты вообще в доки можешь? А еще убунту параша, советую что-нибудь другое поставить.И вообще такой код первый раз вижу. Зачем тебе 10 раз создавать текст вью?
>>1176250Продолжаю.Если тебе нужно создавать программно текст вью, то тебе нужно просто сделать пустой LinearLayout, например, и говорить, мол цикл фо - заебень мне 10 текст вью и создаешь их программно, можешь почитать как это делать, а после этого говоришь линеар адд текст вью.
>>1176257Там я понимаю, что должен передать view, но почему вместо view прокатывает то, что по сути является ViewGroup?10 штук их там просто в тестовых целяхМне хочется иметь что-то типа плитки состоящей из текста и кнопки. Сколько таких плиток, и какой текст на каждой из них я заранее не знаю, это будет делаться в цикле.
>>1176260*так я
>>1176260> что по сути является ViewGroup?Что вьюГруп? Линер - вьюГруп а последний в свою очередь наследуется от вью. ТекстВью - просто Вью. Смотри пик и читай про LayoutInflater.>Мне хочется иметь что-то типа плитки состоящей из текста и кнопки.Если тебе это нужно - просто СОЗДАЕШЬ ОДИН линеар леяут. Получаешь его в программном коде а дальше СОЗДАЕШЬ ПРОГРАММНО CardView чтобы была плиточка а можешь и не создавать и внутри него TextView.И никакой инфлатер вроде не нужен для этого. Примеры найдешь в гугле.
>>1176267Я реально запутался. Вроде как есть 100500 способов это сделать и 99% из них неправильные. Я так понимаю, что для моей задачи вообще никакие xml не нужны, так?
>>1176267Погуглил CardView.Спасибо.
>>1176268>что для моей задачи вообще никакие xml не нужны, так?Линер леяут только хмловский.Остальное программно ебашишь.
>>1176272>Линер леяут только хмловский.Потому что туда ты будешь пихать свои 10 хуюшек
>>1176267Блядь, мне кажется, что я все это пойму к тому времени когда буду совсем седым, и мне уже будет похую на то, сколько я зарабатываю.
>>1176273Я могу представить, что хуйня в хмл- это вроде как... класс... экземпляры которого я как бы могу создавать, настраивать их, добавлять что-то внутрь и в тоге все это отображать?
>>1176274на самом деле пиздец дальше. И даунам, таким как ты и таким как я нужно просто больше времени затратить. кек.
>>1176277Изначально я знаешь что пытался сделать? Захуярить для плитки свой класс наследующий от ВьюГрупп, в котором два поля: кнопка и тествью, потом в цикле в каждой итерации создавать экземпляр класса ну и ... дальеше как-то попробовать его отобразить. Вроде как это возможно, но не для таких как я.
>>1176276>Я могу представить, что хуйня в хмл- это вроде как... класс... экземпляры которого я как бы могу создавать, настраивать их, добавлять что-то внутрь и в тоге все это отображать?Нуу, тип "да"
>>1176281в кавычках потому что "такое понимание хуевое, но хотя бы лучше, чем вообще никакое"?
>>1176282Ну тип верно, только я не читал про то, как андройд реализует превращение из программного текстВью в отображение хмл. Может быть он инфлатер самостоятельно юзает, или нет, я хз. Я просто так добавлял.
>>1176283Я с этими лайаутами и вью путаюсь жестко и не понимаю что конкретно и в какой момент будет реально отрисовано на экране.
>>1176285да-да, чукча, не читатель, чукча- писатель
>>1176285Во-первых, я тебе последний раз поясняю.Во-вторых - ЧИТАЙ ВДУМЧИВО и если не понятно, ЧИТАЙ ЕЩЕ РАЗ И ИЩИ.У тебя есть хмл, базовый отец - релатив - СМОТРИ пик, в нем ты создаешь ЛИНЕР ЛЕЯУТ и все.Потом ищешь по ид линер леяут _ОН УЖЕ ОТРИСОВАн.и хуяришь туда текстВЬЮ.и они там отрисовываются.ВСЕ.
>>1176295Да понял я, что ты предлагаешь. Меня печалит, что я не понимаю, что там будет происходить. Для меня это просто "напиши вот так, и все заработает"
>>1176250ViewGroup наследуется от View, а потому и является просто View только с массивом View, даун.
>>1176306Тяжело писать приложение впервые видя андроид студио и имея ну очень поверхностное представление о java
>>1176304xml в андроеде просто удобный декларативный способ верстки. Тебе не надо вручную писать код инициализации вьюх, их размеров и тд. Ты их просто объявляешь в xml.Андроид в свою очередь с помощью LayoutInflater парсит xml и генерирует из него ровно такой же код, который бы ты сам писал.Так вот.Запомни пидор. Все *Layout это ViewGroup extends View.ViewGroup, не считая экзотических случаев, когда ты в свой CustomView хочешь влепить свой View или ViewGroup.
>>1176308>Тяжело писать приложение впервые видя андроид студио и имея ну очень поверхностное представление о javaДля таких как ты МИР придумал юдасити, кстати.После месяца дрочева ты как новенький сюда придешь и будешь ставить таких пидарасов на место.
Посоны, я клянусь, что если вдруг стану(а я не стану, мне уже 29) погромистом получающим 300к в секунду, катающимся на Тесле и ебущим мулаток, то я буду посвящать значительную часть свободного времени помогая нубам
>>1176325>то я буду посвящать значительную часть свободного времени помогая нубамА я уже помогаю. Хули выебываешься. И тут нет пацанов. Только ты да я и пару шакалов.
>>1176333Как может выебываться человек, который пытается написать простейший диспетчер процессов вращающихся в оперативке, но у него опускаются руки, и ему кажется, что разобраться во всей этой хуйне- не для средних умов?
>>1176336ну нахуй, пойду нажрусь, все тлен
>>1176336> простейший диспетчер процессов вращающихся в оперативке,Сам такое выбрал.
>>1176338Это разве сложно?
>>1176338бро, если я такое напишу, и выложу в маркет рублей за 60, то хотя бы на пиво заработаю за счет долбоебов купивших случайно, или вообще бесперспективно?
>>1176340Возможно. Или нет. >>1176341Тебе тогда надо в хуИОС. Мне как-то один челик сказал, если ты принялся делать мобилки под андройд - будь готов потратить дохуя времени, а потом делать приложения бесплатно. А если не хочешь - иди в гейось.
>>1176347Тогда другой вопрос. Более-менее успешное приложение в котором есть откровенный говнокод- это редкость?
>>1176350>Более-менее успешное приложение в котором есть откровенный говнокод-Это нужно обращаться к тем, кто сидит за ведройдом +2 года. А я еще зеленый.Хотя исходники телеграмма тому пример. Кек.
>>1176350> Более-менее успешное приложение в котором есть откровенный говнокод- это редкостьЭто реальность. Успех и говнокод никак не зависят друг от друга.
>>1176316Бесценно
>>1176403Что бесценно?
>>1176404Инфа. Она хоть немного прояснила для меня все то, что происходит в этом ебаном андроиде
>>1176407Ебаные тут только ты и твоя мамка, тупица обоссаная.
>>1176409Нас ебут, а мы крепчаем. Глядишь, через пару лет хоть на кредитный Фокус и ипотечную двушку в коммиблоке будет хватать.
не, мне не хватает силы воли для андроида: У нас есть удобный виджет для больших списков. Вам всего лишь надо заполнить два xml файла. Создать экземпляры трех классов, в двух их которых переопределить методы, а в одном сделать еще один класс внутри и тоже с переопределенными методами.Раньше у нас АПИ был доступ к всем процессам вращающимся в памяти. Но мы решили, что это не нужно. Вместо этого теперь можно посмотреть запускался ли какой-то процесс год назад. Ну, как можно... вроде как есть такая возможность, но как она работает- разбирайтесь сами.
>>1176248Сам съябываешь или работодатель выгоняет? Сколько платили?
>>1176806Никто мне за это не платил, я андроид студио установил 2 дня назад.
>>1176806Cам. Я стажером был, поэтому получал маленько 10к
>>1176810Ты сам себе отвечаешь?
>>1176811Я похож на дурачка что ли?
>>1176812Да. Наверное на тебя так повлиял андроид.
>>1176813Вот оно что. Ну уже поздно.А мне говорили не вкатываться в андройд
Бро, вот скажи мне, для человека впервые увидевшего андроид студио позавчера, и имеющего поверхностные познания о java, задача за 10-15 дней написать простенький диспетчер процессов болтающихся в оперативке- это норм, или сложно?
>>1176882Имею пять классов церковно-приходской школы, умею доить коров. Хочу стать конструктором авиадвигателей, с чего начать?
>>1176894Это предельно толстый намек на то, что я вряд ли решу эта задачу?
>>1176897Задачу ты может и решишь, но через жопу, и так, что самому себе всё желание дальше этим заниматься отобьешь.Начни с малого, в шапке есть гайды, потом уже своё что-то пилить сможешь.
>>1176899Вот у меня желание и пропадает уже. Не знаю за что хватать и не могу получить хотя бы примерной картины того, что с чем и как взаимодействует. Какой срок ставить себе для реализации задачи? Так чтобы было в меру сложно.
>>1176920Ты уже достал своим диспетчером процессов. Если ты мне скажешь как это работает, то я оценю срок выполнения задания.мимо
>>1176922ну раз достал, то ухожу
Здесь еще должен быть Алексей с вебмками. Тут есть Алексей?
>>1176923Пирожок дружок, ты здесь ноешь и пытаешься писать в стиле чукчи. Тебе дали совет - делай. Не поймешь - залетишь сюда, глянь, а кто-нибудь да поможет.Все, а теперь иди пили проектик.
>>1176930С Алексеем мы дружим с детства. У него сейчас нет зубов спереди. Он вообще сейчас как какая-то шавка по базарам, по рынкам лает как мелкая собачка. Может побежать, откусить. Мы с ним ходили по барам, рестораном и искали Алексея. На самом деле, ни он, ни я не Алексей, но мы так друг друга называли. У него очень тяжелая жизнь сложилась.
Тыкаю Firebase, сделал аутентификацию через гугл. Как правильно хранить инфу о юзере в приложении? До этого был опыт работы с айос приложением, там мы создавали класс-контекст, в котором хранили переменную-юзера, и из него в нужных активити их доставали. Касательно андроида нагуглил только хранение в SharedPreferences инфы.Как это обычно делается?
>>1177044AccountManager
>>1177209Ты бы ему еще посоветовал ContentProvider тупо для доступа к своей бд использовать.
>>1177359А что не так с AM? Это вполне себе валидный и корректный способ хранения кренделей с заделом на будущее.
>>1177416Есть только одна причина использовать избыточный и громоздкий AM в 2018 году - если ты у мамы микрософт, гугл или яндекс и тебе нужен SSO в своих приложениях.
>>1177423Ну и где ты credentials хранить будешь? В Shared Preferences или в бд? Серьёзно?
>>1177491Большая часть приложений осиливают хранить там и ничего, вполне себе нормально живут.
>>1177423Ok.мимо из яндекса
Никогда почему не мог заканчивать пет проекты. Сейчас, вместо того, чтобы делать 3 пет проекта, я сижу руби копаю, нахуй мне это надо. По рукам себя бью - не помогает.Завтра нужно все-таки начать доделывать.
>>1177931> я сижу руби копаюИ правда, нахуй тебе этот мертвый язык?
>>1177935Да хуй пойми.Иногда андройд настолько надоедает потому что только в нем и сижу что хочется побродить по нетику, посоздавать что-нибудь этакое. В итоге все скатывается к хуям и я возвращаюсь к андройду спустя 2-3 дня с базовыми знаниями какого-нибудь языка который мне в жизни никогда не пригодиться.
Сап. Есть тулбар, в котором есть оверфлоу-меню. И это оверфлоу-меню зачем-то перенимает цвета из стиля тулбара. Как сделать так, чтобы оно сохраняло дефлотный стиль?
>>1178035Погугли. Там это как-то лечится.
Есть ресайклер с гридом из леяута с картинкой (пик 1). Как сделать так, чтобы по нажатию весь айтем и ImageView увеличивались в размерах и "выезжали" на передний план, затемняя все остальное (пик 2)? Каким лучше объектом сделать большой айтем - фрагментом, диалогФрагментом, карточкой или мб еще чем? И анимация - дефолтный транзишен или тут нужно что-то покруче?если это имеет какое-то значение, картинки загружаю глайдом
>>1178154Выглядит как каноничный shared element transition в фрагмент.
Не тони, мой любимый андройд
игьз
Как улучшать свои проф скиллы? Может есть какие-нибудь модные ресурсы которые стоит почитывать, или надо подучить что-то не на прямую связаное с мобайлом (алгоритмы, криптография)?В общем как поставить приоритеты молодому андроид деву?
>>1170748люто дякую за пикчу
>>1178395Смотря на каком ты уровне
>>1178451Джун
>>1178451Как определить свой павер левел?
>>1178469Если спрашиваешь, то ты <= джун.
>>1161404 (OP)>- Kotlin — ... С 17 мая поддерживается официально.поправьте шапку в след раз, не с 17 мая, с мая 17-го года
>>1171405>Нужна простая грамматика, подобная паскалю, чтобы токенизация и построение AST происходили за миллисекунды даже на больших приложениях.Большая часть времени компиляции уходит не на разбор текста и построение AST, а на дальнейший анализ. Например резолв идентификаторов, прогон диагностик. И чем более выразительный язык, тем больше на это нужно времени.
Сап, андроидач. Андроид студия уведомила меня о том, что виртуальное устройство Андроид создать не получится, ибо цп не поддерживает виртуализацию. В качестве альтенативы предлагается запускать приложение на физическом устройстве.Так вот, по идее эта проблема должна решаться как-то проще, чем ручное копирование и запуск .apk?
>>1178672Лол, установи adb-tools и подцепи девайс, включив на нем предварительно отладку по усб.
>>1178672Гугли на стак оферфолоу по английски. Я в свой время заябывался в биусе чёт включать, потом доустанавливать гавнище какоето и только потом эмулятор стал запускаться... правда я дебил на убунте всё делал... для запуска на андроидж устройстве тоже пришлось позаябываться
>>1178395Запили десяток разнотипных приложух на гугл плей, подключи аналитику и прочие гугловское гавно, прикрути айпишки разных твитеров хуитеров инстаграмов пуши хуюши.Если людишь извращения добавь часть либ пиши на с++ и ассемблере>>1178395
Почему если я пишу ((GridLayoutManager) mPhotoRecyclerView.getLayoutManager()).setSpanCount(colCount); в онглобаллайотлистенер все работает, если GridLayoutManager layoutManager = (GridLayoutManager) mPhotoRecyclerView.getLayoutManager();layoutManager.setSpanCount(colCount);то поворот девайса полностью отваливается?
>>1178793А может ты побольше бы вставил сюда своего сраного кода, чтобы мне глаза удобней вырывать было?Блять.
>>1178534Тогда я не буду спрашивать и буду сеньором-помидором.
>>1178961Это ещё раз красноречиво показывает твой уровень. Тебе говорят, что действует правило A => B. А ты пытаешься использовать правило Not A => Not B, которое не следует из заданного.А ведь этому на первом семестре в любом заборостроительном техникуме учат.
>>1178983Вася, я же говорил тебе пойти нахуй. Почему ты все еще здесь?
>>1178996Ты меня со своим ебырем путаешь, это ему ты уже говорил.
ВРЕМЯ ПРИШЛО!https://twitter.com/minSdkVersion/status/988538738639765505
>>1179207Бля, наконец-то. Хотя я и так пет проекты пишу на 21+.
Как поменять бэкграунд цвет подсказок такого типа?
Как мне не нравится этот биндинг андройда. Просто пиздец. Отвратительная либа, хотя я был не проч на МВВМ сидеть.>>1179290А зачем тебе это? Так же лучше. Скачать material theme?
>>1179336> Как мне не нравится этот биндинг андройда. Просто пиздец. Отвратительная либа, хотя я был не проч на МВВМ сидеть.Так сиди, кто тебе мешает. Data binding вообще с архитектурой никак не связан.
>>1179207-10% юзеров как будешь своим продактам и продажникам объяснять, ммм? Напомню, что от среднеуспешного продукта в 100к инсталлов, это 10к юзеров.
>>1179537Срал на них
>>1179537Устройства — не пользователи. Пользователи — не твои клиенты. Клиенты — не то подмножество клиентов, которое обеспечивает ценность.
Есть ли андроидные IDE, более легковесные, чем AS, при этом рабочие?
>>1181780Можешь себе эклипс напердолить попробовать, поддержка градла там есть, хотя хуй знает что из этого выйдет.
>>1181780Можешь поставить линукс.
Есть ресайклер с imageview, ширина и высота которой определяются динамически (в конструкторе ресайклера, и потом передаю их в .override() глайда). По клику на imageview открывается фрагмент с картинкой в shared element transition (сам ресайклер отправляется в бекстек). Когда я попаю бекстек и на экране обратно появляется ресайклер, у картинки сначала размер 0х0, и только потом глайд загружает картинку - получается, что картинка сначала уменьшается до 0х0, а потом расширяется. Можно ли это как-нибудь сделать так, чтобы размер вычислялся до самой анимации?Я нашел в гугле postponeTransition, но для фрагментов это работает только с api 26, а у меня 25.
>>1182261>у картинки сначала размер 0х0, и только потом глайд загружает картинку - получается, что картинка сначала уменьшается до 0х0, а потом расширяется. Можно ли это как-нибудь сделать так, чтобы размер вычислялся до самой анимации?Может быть из-за того, что ты выполняешь методы активити\фрагмента в который ты возвращаешься и там опять все по новой загружается? блять
>>1182261> в конструкторе ресайклера, и потом передаю их в .override() глайдаА layout params у imageview менять на нужные тебе не забываешь?
Как правильно проигрывать звук? Делаю примерно так для оповещения о входящем сообщении:MediaPlayer.create(getBaseContext(), R.raw.sound_in).start();Но если таким образом запускать звук слишком часто, то он перестает проигрываться вообще до перезапуска приложения.
>>1182435> MediaPlayerТы его каждый раз создаешь небось?
>>1182436Да, нагуглил уже решение с release() предварительным, вроде теперь нормально, но спасибо за ответ.
>>1182443> предварительнымЯ хуй знает что ты там придумал, но лучше переиспользуй, а не каждый раз создавай.А еще точно есть какой то способ проще, который использует NotificationManager, глянь в исходниках show.
>>1182435А зачем тебе вообще MediaPlayer. Может лучше воспользоваться SoundPool'ом или AudioTrack'ом?
>>1182454> SoundPool'ом или AudioTrack'омВо, я про них как раз >>1182445
Пацаны, поясните за даггеp. Как этой поеботой вообще пользоватся? Приведу пример. С спринг бут я создаю класс с описанием бинов, описываю в этом классе объекты, которые мне нужны, затем в нужном мне месте пишу @autowired и всё! Никакой еботни не нужно. В даггере же мне нужно: создать модули, затем их объеденить в компоненте, затем в месте, где нужно я должен вызвать (!) билдер даггера и вызвать inject(this). Это dependency injection? Это хуйня же какая-то. Помогите, может можно как-то по человечески это всё сделать? Гайдов в интернете 1.5, и во всех советую внутри класса вызывать inject(this), IoC то не соблюдается получается. Короче пиздец, я запутался, помогите
Почему еще никто не смог спиздить уроки со startandroid платные? По сайту, а не по этому ебанному мужику с ютуб
>>1182532Неправильные ты гайды читаешь дяд федор, просто ведроидовские компоненты убогие и мы не можем участвовать в их создании, потом и вынужденны вызывать inject как можно раньше, но на самом деле и это не нужно.Гайдов миллион и тележка. Спринг ебашит рефлексией и потому все так просто.Если коротко в компоненте объявляешь модули от которых она зависит для предоставления своей хуйни. И методы которые нужны для преодоления ведроидовский костылей, можешь выбрать inject(GovnoAndroidComponent xuita), но по мне лучше оставить плейн геттеры типа:SuperDependency getSuperDependency();Ну или:SuperDependency superDependency();Теперь в модулях ты пишешь код который создает нужные зависимости.Это самые базовые вещи, но они быстро становятся весьма монструозными, потому есть некоторые упрощения.1) Объявить класс который является зависимостью, при этом пометив его конструктор аннотацией Inject, и прааметры там могут быть только те, которые уже есть в графе зависимостей, тогда тебе не нужно ебать и создавать его в модуле и что бы сделать его доступным через компоненту добавляешь туда его геттер, ну или если инжектами пользуешься то ничего. Но таким макаром ты выставляешь в качестве зависимости конкретную хуйню, так лучше не делать. Но можно спрятать конкретную реализацию оставив ее конструктор с инжектом, а в асбтрактном классе модуля конвертить конкретную реализацию в ее интерфейс:@Moduleinterface ConvertModule {@Bindspublic abstract Dependency bindDependency(DependencyImpl impl);}Из почти актуальных могу посоветовать вот эти:https://habr.com/post/279125/
Есть ли двачевская конфа по андройду?
>>1182622Вам зачем именно "двачевская"? Чтобы тупыми вопросами заебывать, которые стыдно спрашивать в обычной?
>>1182627Иногда пердолинг заебывает, а ответов нет. А в телеге игнорят. Хуй поймешь.
>>1182627Да, все верно - найти тупых объебков, которые будут бесплатно отвечать на идиотские вопросы войтивайти, которые игнорятся в нормальных каналах.
Ребят, есть кто тестит свои приложухи на Xiaomi Redmi 4x?Может такая проблема была у вас или у других телефонов Xiaomi, но фишка в том, что при изменении Java-кода, Андроид Студия выкидывает мне сообщение о том, что INSTALL FAILED USER RESTRICTED, предлагая удалить, а потом заново поставить приложение. Это работает, да, как впрочем если нажать Отмена и снова запустить проект на телефоне.Но как избавиться от этого окна?
>>1182710Вообще, это обычно возникает, когда ты написал приложение на одном кудахтере, а вечером пришел домой, включил своего обоссанца, попутно скачивая ласт изменения с гита, и пытаешься опять запустить приложение. Вот тогда и возникает. Ну и в других ситуациях примерно похожих на эту.Но как у тебя - это пиздец конечно.
>>1182710Нормально все теститься без проблем. Дело не в Ксяоми.
>>1182418Активита то же самое, просто ресайклер уходит в бекстек.>>1182422ТОННЫ НЕФТИ, АНТОШ, ЗАРАБОТАЛОДело в том, что я менял парамсы у леяута, в котором лежит imageview, а самой картинке задать не додумался...Спасибо еще раз, и извини за тупой вопрос.
>>1182710Instant Run?
Эх, нахер я вообще начал вкатываться в андройд. Долбанное МВВМ и БД, столько говна нужно читать и делать. Особенно читать. Да еще и вчитываться. Просто пиздец. Ебанная пагинация, нулевые примеры, тонны копипаста. Непонятные перевороты экранов, какой-то главный сингетон, непонятная рхДжава. Да еще и примеры на ебучем котлине. За что блять это все? Просто продвигаюсь на минимальных скоростяхычах. А перекатываться-то и не хочется, уже 8-ой месяц пошел блять. Просто не могу из-за этого руки отпустить.
>>1182981> МВВМНикто его не использует.
>>1182985>Никто его не использует.Ну будешь мне еще блять говорить мне об этом. Когда я работал стажером по андройду я как раз ебашил МВВМ. Самое главное, никто мне нихуя не объяснял что да как делать. Просто хуярил на ощуп, а потом на митинге говорили "Ну пацан, пиздец у тебя говнокод конешно." Я блять готов был прям там разъебать ему морду, пидору конченному.
>>1182981> столько говна нужно читать и делать. Особенно читать.Добро пожаловать в программирование, тебе нужно будет делать постоянно. Не нравится - есть куча других профессий.
До этого не смотрел гугл ИО, но по идеи, там же будет онлайн трансляция на ютубчике?
>>1183021Будет. Но у гугла довольно скучные выступления, проще потом запись посмотреть по интересной теме, а не жрать говно про фаирбейз в лайве.>>1182986> Когда я работал стажером по андройду я как раз ебашил МВВМПиздец вы ебанашки, он конечно приятен, но только в WPF, а не на ведре.
>>1183038>он конечно приятен, но только в WPF, а не на ведре.А я недавно вот начал MVVM копать, вроде достаточно примерчиков, чего плохого-то.мимо
Одна служба для всего или несколько специализированных? Что лучше?Допустим, есть служба 1, которая отслеживает события в clipboard, создает кнопку оверлеем, нажатие на которую делает запись в базу данных (активити не участвует).Стоит ли логику для записи в бд пихать в эту же службу, если из активити тоже можно делать запись в бд? Или лучше сделать отдельную службу?Мне кажется, лучше отдельную, все же служба-1 имеет функционал, который никак с этой активити за пределами базы данных не пересекается. Где я обосрался?
>>1183692Несколько специализированных - это:- Меньшая связанность кода, меньше риска что потом все навернется если захочется что-то переделать- Хорошая расширяемость- Большая тестируемостьОдна для всего - это:- Чертовы спагетти, тронешь в одном месте отвалится все- Плохая расширяемость- Плохая тестируемость. Так?
Расскажите, какой сейчас стек используется в продакшене? Режут ли рхДжаву, обходясь простым ретрофитом? Какие стабильные либы юзают?
Насколько хуево так делать (https://pastebin.com/SfFnZ7Xd)? Суть в том, что я запускаю TaskActivity с помощью startActivityForResult в MainActivity, и хочу в зависимости от результата, чтобы либо выводился Snackbar в MainActivity, либо не выводился, но поскольку добавление в БД происходит асинхронно, то результат не успевал придти до закрытия активити, поэтому мне пришло в голову после добавления в БД вызывать exit(), чтобы только после этого активити закрывалось. Можно-ли как-то сделать лучше и как, если можно?
>>1183821> (https://pastebin.com/SfFnZ7Xd)?Проебался с разметкой. Вот ссылка: https://pastebin.com/SfFnZ7Xd
>>1183822Ну если тебе нужно переопределить поведение кнопки назад, то хули нет то?>>1183815> Режут ли рхДжаву, обходясь простым ретрофитомЧе?
>>1183826>Че?Хули че-то блять. Рх же тупо нужна для того, чтобы простенько взять запросы с сервака. Ну или для выебонов аля возвращая обсервабле и работая дальше с ним. Но это же больше для продвинутых.Хули на вопросы не отвечаешь-то.
>>1183815У нормальных пацанов уже давно динамическое апи и тонкий клиент, а он тут со своими ретрофитами.
Тут есть те, которые продвигают собственные приложения? Хотелось бы пару вопросов: Сколько стоит продвинуть приложение, хотя бы для первоначального выхлопа? И какой вообще выхлоп? Много ли денег надо на развитие, для того что бы вкатиться? Понимаю что вопрос зависит от того, что вообще за приложение, но больше интересует, сколько примерно. Возьмём даже простенькую игрулю, сколько нужно на её развитие? Гугел выдаёт разные недоблоги всемогущих, и пишут начиная от "без вложений" заканчивая лимонами. Или мне уебывать с этими вопросами в biz?
>>1184031Чего ебать? Нахуй превращать приложение в веббраузер?
>>1184098Кого ебать? ты вообще суть вопроса понял?
>>1184110Ты написал про тонкий клиент и динамическое апи, что это как не еще один браузер?
>>1184166Братишка, ответы перепутал
>>1184166WebView умеет запускать Intent'ы, отображать бесконечные списки(в том числе пейджинг), нормально работать с sql, нормально кэшировать навигацию и стейт, и еще хуеву тучу других вещей, которые сейчас не вспомнишь? А самое главное, может оно блять работать быстро?
Есть два хранилища: одно на сервере - другое локальное. В локальном часто данных сервера с дополнительными характеристиками. Как их лучше синхронизировать:1) Держать сервис, который слушает в отдельном потоке изменения сервера, и пилит их в базу.2) Перед каждым запросом к локалке делать запрос нужных данных к серверу и синхронизировать (всё это в репозитории)В певом варианте смущает, что дополнительный сервис пришпиливается, хотя код чисто джавовский.
>>1184410>джавовский.Имею ввиду, что без android-зависимостей. Написан он конечно на котлине, под сладкие стоны полиночки...
Сап. На нескольких устройствах заказчика во время работы приложения выскакивает вот такая фигня. Алерт появляется на секунду и исчезает, приложение не крашится и продолжает работать. На своих устройствах и ни в одном эмуляторе отловить не удалось. Либы, которые умеют слать репорты при крашах тоже не отлавливают ошибку, доступа к крешаналитике и консоли gp по тех. причинам нет, но баг пофиксить нужно. Подкиньте идей, как можно отловить и исправить? Содержимое build.gradle на всякий случай, может кто глянет и что подскажет - https://pastebin.com/vX91kas9
>>1184452Содержимое манифеста покажи
>>1184452На всякий случай, плагин гуглсервисов апплаится в конце файла
>>1184460https://pastebin.com/K8ZGbYZ7
>>1184461Ок, учту
>>1184452> 'com.yandex.android:mobmetricalib:2.40'100% вот эта пидорасня падает в отдельном процессе, поэтому и не закрывается приложение. У меня такое же было. Яндекс возомнили себя гуглом и решили обмазываться несвежим IPC между всеми приложениями с установленной метрикой, а не делать как нормальные люди из других сервисов аналитики.
Ребят, кто писал приложухи на React Native? Как ощущения по сравнению с классической Java в Андроид Студии?
>>1184464ммм, да, как вариант. Это лучше смотреть в смерженном манифесте.
Зачем прописывают synchronized в таких случаях? Когда читаю код, часто проскальзывает это у некоторых людей. Сам оператор же позволяет синхронизировать потоки. Значит сам класс синхронизируется с бинарным классом? Что за бред?
>>1184586Какой оператор, а вообще почитай про double-check locking.
>>1184592Спасибо.
вопрос по retrofit 2 как делать запрос get для api постоянно? Или в time.
>>1184660Создать сервис?
>>1184668вот да. Этот парсинг апи нужно запускать как сервис, чтобы работало постоянно?
>>1184660retrofitService.getSomeShit() .repeatWhen(observable -> observable .delay(DELAY, TimeUnit.SECONDS, true)).subscribe();
>>1184464Да, оно! Спасибо, анон, кучу времени на это потратил
Подскажите по работе жестов, через гестуре билдер я могу создавать собственные жесты, но мне интересно как можно реализовать, чтоб они работали только в определенной области экрана? Например только в правом верхнем углу, или по середине экрана, беглое ознакомление дало понять жест воспринимается в любой области экрана.
>>1184693огромное анонское. Тогда не затруднит ли сказать, как все это гуглить? потерялся на том, что не могу загуглить с примерами реализации retrofit+rxJava.Inb4: retrofit call api time continue infinite call request.. - все это перепрогуглил но получил нул. Подскажи, как нагуглить?
>>1184767всё нашел сам.
>>1184769по запросу retrofitService repeatWhen
Видел, что некоторые парни в разных xml пишут, один и тот же айдишник, например, recyclerView в одном и recyclerView в другом. Это нормально так делать?
>>1184947нормально
Интересно, и что же я ебать делал целый день? Качал хуеву тучу примеров, половина из которых требовала апи кей, а другую половину откладывал в полочку, чтобы изучать как люди пишут. В итоге сам что мало написал, но вырастил чуточку понимания во всем этом говне один нейрончик в мозгу, за 9 часов ебанины. Блять, просто минус время. Ебанная разработка.
>>1185228учись: больше сорока часов разбора прилажух с retrofit. Сложилось мнение, что на всей планете мне одному понадобилось постоянный call апи. Ни одного примера не нашел. А все что скачал - повторяют дефолтные туты. Решил немного подразобраться мини прилажуха нужна самому и никогда их не писал.Прошла неделя. Теперь уже знаю, что package нужно задавать правильный сразу. Что интенты вызывают активити, а активити обладают циклом жизни. Что нельзя хардкодить. Что инфу нужно зачем-то из ресурсов проводить через какой-то буфер адаптер вью, чтобы из него вывести в UI. Что бы работать с api нужно прочитать и понять книгу в 356 страниц по retrofit. А что бы было удобно работать в ретрофит, нужно прочитать книжку и понять книжку по реактивному программированию RxJava. А чтобы делать запросы, нужно еще изучить OkHttp, который как бы и является частью retrofit, но чтобы его понять, нужно, наверное, охуеть. ПОтому что все материалы, которые я поглядел слизаны с одного примера: получить данные с апи по нажатии кнопки или при загрузке прилажения.Притом, что несклько дельных советов я смог узнать только в рунете. Не в англосреде. И это микромаленькие советы.Теперь язнаю, что чтобы мне сделать свою мини прилажуху, которая должна всего-то постоянно отображать данные полученные ей с апи 5 раз в минуту и если что - пискнуть. Так вот, чтобы сделать эту миниатюру мне нужно изучить более полутора тысяч страниц. Первые три дня я думал, что просто плохо соображаю. Теперь же, я чувствую себя обезьяной со штанегенциркулем. А ведь 7 лет бэкенда позади. Вот такой андроид.
>>1185246>Первые три дня я думал, что просто плохо соображаю.Собственно это так и есть.
>>1185246Да хули здесь учиться. Нихуя ничего не происходит. Меня блять трясет уже. Зимой я не мог реализовать пагинацию через вытаскивание из Реилма. Я блять неделю на это говно потратил, нахуярил вопрос на этом стековерфлоу - в итоге я так и не осилил это. Забросил.В марте я не смог прокинуть броадскастИнтент через сервис, чтобы взять данные в одной из нужных активити - я блять неделю опять на это говно потратил, в итоге я опять нахуй забил на это дело.Сейчас мой второй день ебанины с нормальной архитектурой андройда - я блять уже начинаю чувствовать эти МВП, МВВМ, но я нихрена не могу написать, потому что в этих репозиториях из гитхаба хуярят люди с АСИН ТАКСКАМИ хуясками, через анальные даггеры и прочее. Блять, даже во фронтенд легче вкатиться, чем в эту ебанную архитектуру андройда.
>>1185265>Сейчас мой второй день ебанины с нормальной архитектурой андройдаГде ты изучаешь архитектуру? Неужели это так сложно?Алсо, реквестирую где можно доступно получить базу по построению приложения по MVP, ну, или по MVVM.
>>1185265перед тем как писать прилажуху был уверен, что уже все How to, tutors, даже готовые решения и шаблоны на такую плевую задачу есть. Боже мой, как же я ошибался..
>>1185351добро пожаловать в оопешный ад, братишка
>>1185228>>1185265>>1185366Думал я один такой дурачек. В один момент мне надоела эта ебля с ведроидом, и я решил перекатится в Ruby/Ruby on Rails. Так вот в RoR все шло как по маслу. Есть дохуя нормальных гайдов на почти-что каждый пук. Сейчас опять вернулся на ведро, и опять этот ад. Ищешь какую-нибудь инфу по какой-нибудь хайповой библиотеке для Андроида, и читаешь тонну похожих друг на друга гайдов, а иногда и неактуальную хуету. За эту неделю обратного вкатывания осилил все-таки MVP, RxJava и Dagger 2 с горем пополам. Сейчас буду пытаться осиливать тестирование. В прошлый раз (год назад где-то), я, после попытки осилить тестирование, выкатился с подгоревшей жопой отсюда. Но не смотря на все это, меня все равно так и манит этот чертов ведроид. А вообще, если есть какой-нибудь анон, которому было бы не лень иногда отвечать на мои возможно тупые вопросы, то я был-бы рад, если-бы ты отписал на фейкомыло feedbed@tuta.io.
>>1185396>MVP, RxJava и Dagger 2Это же изи всё, просто пиздец изи. Вы просто тут тупые все и не лечитесь. Нахуй вы вообще программируете под андроид?
>>1185408меня нужда заставила - по работе автоматизировал некоторые сервисы, все сделал отлично, вывел апи, неубиваемый сервер, написал отличный бэк. Дошел до андроид и охуел просто. По другому не скажешь. А ведь всего-то хотел себе жизнь облегчить.
>>1185408В какой-то мере соглашусь с первыми двумя пунктами, но на Dagger 2 я точно не меньше двух дней потратил. Хуй знает куда что пихать, как правильно всю эту парашу инджектить.
>>1185408>Это же изи всё, просто пиздец изи.Засунь себе в анус свое изи. Ставлю сотку, что твой продакшен код настолько залит говном, как и твой очередной пост с предсказуемым пуком.>>1185396Я кстати тоже после разрыва пукана начинаю копать руби. Какое совпадение. Кек.
>>1184586ну и кто разрешал андроидо-даунам многопоточность использовать? В этом коде гонка потоков. Пилите свои вьюшки и не лезьте в серьёзные вещи.
>>1185425> В этом коде гонка потоков. Пилите свои вьюшки и не лезьте в серьёзные вещи.Это код рандомного китайца, который я изучал. Что здесь не так что? Объясни поподробней.
>>1185440после того как ссылка на INSTANCE была присвоена и до того как вызовется updateDatabaseCreated VM может зашедулить выполнение других потоков, а текущий убрать до лучших времён. Вполне возможно что другие потоки могут увидеть присвоенную ссылку на INSTANCE даже не входя в sync блок, только эта самая ссылка не была инициализирована до конца. Это data race классический.
>>1185414>Засунь себе в анус свое изи. Ставлю сотку, что твой продакшен код настолько залит говном, как и твой очередной пост с предсказуемым пуком.Сотку чего?
>>1185449Вот только никто не сможет обратиться к INSTANCE, пока synchronized-блок не завершится.
>>1185566Это почему?))) Там есть проверка вне блока, она как раз и выполняется.
>>1185581А, да, действительно. Вот если бы INSTANCE присваивалось в самом конце блока, было бы нормально.
>>1185566>>1185581>>1185608Сложно пиздец.Мне вообще непонятно, почему так делают. На работе я смотрел как челик один класс пилит и все. И из MyApplication.getInstance я вызываю в любом фрагменте то, что хочу вызвать.Но я пока бдшку не подключал, сегодня буду пытаться это сделать внутри этого говна.
>>1185633https://habr.com/post/129494/Ну и читай про многопоточность в джаве.
>>1185635Т.е. здесь китаец инициализирует БД в единичном экземпляре, чтобы потом наверху, например в активити, получить этот инстанс и внести изменения в эту БД?
>>1185635есть же книга "ява конкарренси ин практис", на хабре все уверены что понимают многопоточность, но это сомнительно
>>1185637Читай про паттерн "синглтон", что уж.
>>1185637Хуя ты даун, бротиш.
>>1185768>>1185816Сука, хули тут читать-то. Написано же на пикрили.Один экземпляр БД - работа с ним. Хули вы меня обижаете.
>>1185859
Не бейте, но почему у Телеграма пустая почти директория layout? Все их кода создают, судя по всему - почему такой подход? Чем он лучше?https://github.com/DrKLO/Telegram/tree/master/TMessagesProj/src/main
сегодня гугл ИО.иеееееееееей
>>1185999Телеграм это сраное сборище костылей и хаков.Ну можно из кода ебашить что бы с xml не ебаться, немношк меньше ресурсов жрется.
чо, никто i/o не смотрит?
>>1186378Ну я так посмотрел, сейчас вырублю. Включу в 12 ночи, как раз андройд покажут. Ну и в 7:30 - про котлин с питера чувак будет говорить.
Кстати, как включить фичу удаления серых ненужных пакетов в текущем файле java при форматировании ctrl + alt + L ?
>>1186419Сейчас андроид как раз показывают.
>>1186444Ну такое.
Нет ли людей, которым нужно помочь чем-нибудь? Готов работать за еду за спасибо.
>>1186462мне нужно дохуя чего делать. Но пускать в свою репу хер пойми кого еще и рукожопого - нет спасибо, даже за беслатно не надо
>>1186470Ну ты напиши че сделать, а я буду кидать файлики.
>>1186477Напиши мне свою реализацию mpeg dash плеера для андроида. Как напишешь - файлик кидай по адресу /dev/null
>>1186483Чет слишком сложно. Пойду лучше курсовую поделаю.
Ебать, за две секунды открывается эмулятор. Вот пиздаболы. Нихуя подобного. Зато все хлопают.
А вот и материал theming подъехал.Эппл в очередной раз соснул.
Как сделать один общий граф зависимостей между модулями? Вот например есть aar модули А и Б, их консюмит апк модуль. Модулю Б нужно заинжектить зависимость(@Singleton) модуля А в свой андроид сервис. Это реально вообще?
>>1186525Когда она уже в гидралиска регенерирует? Первый раз было прикольно, а теперь чет раздражает.Ну или хотя бы протез поставит, чтобы никогда не просить об этом. Или она специально его снимает?
>>1186594> Или она специально его снимает?Конечно, надо же продемонстрировать дайверсити и инклюзивити.
Хорошо прошлись по лейаутам https://www.youtube.com/watch?v=GAkkKjds00o&feature=youtu.be&t=3h4m54sи лайфсайкламhttps://www.youtube.com/watch?v=GAkkKjds00o&feature=youtu.be&t=3h15m47s
Что это еще за модные пендосские новинки? Неужели мы так клепать тоже будем?
>>1186655Они пытаются повторить гейпловский сториборд? НАХУЯ СУКА Фу блядь пидорасы, все им стрелочки рисовать хочется прямо в идеешке.
Как же активно они свое говно продвигают.Live data, Room, супер архитектура.
>>1186655Лол, рили эппл ебаный косплеят.
>>1186662>>1186656Будем еще учить онэмацию кнопочки делать
Так, ребята, какая-то хуита произошла с Андроид Студией - постоянно индексирование происходит. То есть открываю некоторые файл с классами активити - начинается каждую секунду индексирование, просто не переставая. В других классах активити такое же происходит только если начать редактировать методы OnCreate или OnCreateView. В какой момент все пошло по пизде сам не заметил - классы, в которых эта ебатня происходит, даже не менялись последнее время. В другом проекте этого же не происходит, то есть дело в проекте, но где искать проблему хотя бы примерно?
>>1186668Соррян за беспокойство, помогло банальное Invalidate caches, restart
>>1186662больше всего бомбануло от навигации свайпами, как в айфоне хну и монобровь конечно
Смотрю на все эти навигации, design-time helpers и вспоминаю, как буквально пару лет назад, когда решил потыкать андроид впервые, у меня был настолько слабый ноут, что дезигн у хмл в студии вообще не грузился, так что приходилось писать абсолютно все из кода. И как-то тепло на душе становится.
Что это блять? Особенность realm'a?
>>1187189особенности нативного кода. У тебя поля не инициализированны, пока к ним доступа не попросил.
>>1187191>пока к ним доступа не попросилТ.е. у меня существует лист из 20 элементов без инициализации полей?У меня проблема в том, что при первой установке приложения ничего не показывается, при повторной компиляции показывается лист уже нормально.И с этим ли связана инициализация?
>>1187191Но я понял слегка. Спасибо анонче.
>>1187189Вам про это еще с версии ~0.8 начали писать в туториале, что поля в дебаггере не отображаются, пока их не запросишь явно.
Аноны, пишу очередной чят на курсач. Переписка отображается в ресайклервью, ниже идет панель ввода текста, ну по классике.Проблема что когда открываю клавиатуру, она как бы закрывает часть чата. То есть если я открываю клаву из позиции на пике 1, то получается пик 2, а должен быть пик 3.Как фиксить? Гугл говорит чето про android:windowSoftInputMode="adjustResize", но это фигня.
>>1187313Накостылил вот такую хуйню, но она коряво работает при скрытии клавиатуры (поэтому сделал условие что только при открытии), и это же какая-то хуйня.Наверняка есть какое-то более элегантное решение, задача-то распространенная.
>>1187368Да вроде так и решается. Вот здесь точно было про это, гляньhttps://youtu.be/BbxB3Sr55qw?t=20m45s
>>1187431ты к нам хабра пришел?
>>1187441нет, с хуя ли?
>>1187444может и с хуя, кто тебя знает
>>1187431setStackFromEnd(true) достаточно было поставить у лейаутменеджера, но за видос спасибо.Правда, теперь оно отображает первые сообщения снизу, а не сверху, но в телеге например так же и всем нормально, так что похуй.
Сап, /pr/.1) Как сделать так, чтобы в зависимости от какого-то условия приложение стартовало с разных активити? Т.е. если, допустим, пользователь не авторизован, то с Login/SignUpActivity, если авторизован - то сразу какая-нибудь FeedActivity.2) Где хранить токен, получаемый с сервера при авторизации, чтобы реализовывался пункт 1?
>>1187752>1) Как сделать так, чтобы в зависимости от какого-то условия приложение стартовало с разных активити? Т.е. если, допустим, пользователь не авторизован, то с Login/SignUpActivity, если авторизован - то сразу какая-нибудь FeedActivity.Чекать shared preference. Если там есть что-то - открывать уже другой активити. Если нет - то авторизацию.>2) Где хранить токен, получаемый с сервера при авторизации, чтобы реализовывался пункт 1?В одном из приложений я хранил в sharedPreference. Но у тим лида пукан горел с этого.
>>1187752> 2) Где хранить токен, получаемый с сервера при авторизации, чтобы реализовывался пункт 1?AccountManager
>>1187799>AccountManagerhttps://sites.google.com/site/droidnotsecure/vulnerabilies/credential-residue/accountmanager
>>1187929Хранить в Shared Preferences всяко надёжнее, да
Тогда такой вопрос. Где в коде чекать SharedPreferences или AccountManager? Это должна быть какая-то StartActivity, единственной задачей которой является проверка наличия валидного токена и переадресацией либо на LoginActivity, либо на FeedActivity?
>>1187983Именно так.А вообще активити не нужны, сейчас эра view-based навигации.
>>1187991>сейчас эра FRAGMENTSпоправил няшу.
ПЕРЕКАТhttps://2ch.hk/pr/res/1187993.htmlhttps://2ch.hk/pr/res/1187993.htmlhttps://2ch.hk/pr/res/1187993.htmlhttps://2ch.hk/pr/res/1187993.htmlhttps://2ch.hk/pr/res/1187993.html
>>1187994Вообще да, новая навигейшон либа гугла на фрагментах работает.
>>1187997Фрагмент - обёртка над вью.
sup /pr помогите разобраться в структуре андроид проекта. Есть порт love2d для андроида через сдл и вот я не могу понять как это работает. Там 3 манифеста (если не больше), а насколько я всю эту тему накопал то одно приложение = один манифест, но тогда зачем там остальные манифесты, как всё это между собой связано? а там и сдл и сам лов, а потом к этому всему и само приложение