> Хочу вкатиться в разработку под Android! С чего начать? Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде. После этого можно установить Android Studio, открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение. В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Не хочу писать на 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. И хотя бы одно готовое приложение.
Использую либу с гитхаба 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 какой-нибудь нахуй.
С котлином надеюсь разберешься, потому что ебал переписвать на джаву.
>>1161474 Поскольку js не типизирован, то отправить через socket.io можно было все что угодно, в итоге слались не сериализованные объекты. И когда я слал нормальный тектсовый жсон, то получал фигу.
>>1161459 Если этот код обратно вернуть в фрагмент, то все работает. Возможно у меня дебильно сделано обращение к методу, который вызываю из фрагмента, так называемый setWebmData.
Есть один быдлокод https://pastebin.com/q6mmuJap Цель: вынести методы которые отвечают за запросы из сети например, fetchWebmDetails() Нет, я не прошу сделать все за меня, прошу совета о реализации. Сам пробовал создать отдельный класс, в который переносил вышеупомянутый метод, но столкнулся с рядом проблем. Проблемы такого плана. Не могу правильно обратиться к методам setWebmData и setTagsAdapter, соответственно и в обратную сторону, не мог правильно вызвать метод fetchWebmDetails из RandomFragment. В общем, как сделать или что изучить дабы разобраться с этим. У меня постоянно с этой темой проблемы и поэтому все писал в одном классе активности или фрагмента, что не есть хорошо в плане ООП и SOLID.
>>1161621 Так в том то и дело, что в моей ситуации тоже с вебом все было ок, а то что я слал сервер не понимал. Когда я указал на проблему и бекендщик поправил как надо - в вебе тоже немного правок внесли (просто слали не прямо объект, а stringify'цированое представление)
>>1161872 >Ты уверен что хочешь это отключить? Не просто ж так наверняка. Да, хочу. Честно говоря я не ебу нахуя оно вообще сделано, ибо generated кода более чем достаточно.
Сап двач, помоги. Есть ресайклер ,данные в его адаптер загружаю чере асинк такс из сервака. При нажатии на айтем ресайклера открывается фрагмент с подробной инфой об айтеме, фрагмент открываю через транзакшин эд. Через этот фрагмент я могу удалить айтем из сервака и после удаления через popbackstack возвращается фрагмент с ресайлером, но айтемы в нём остаются прежними . Так вот как мне зарефрешить данные ресайклера автоматически после удаления айтема без свайпов и т.д. ведь в фрагменте ресайлера не запускаются заново онстарт, онресум.
Аноны. Есть один дипломник и его заставили делать приложение под ведро. Вопрос: что нужно знать для того чтобы знать/сделать для создания "приложение по учёту клиентской базы предприятия"?
>>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. Как мне запилить этот поиск?
Йоу, всем привет. Начал использовать realtime database от firebase, хочу получать записи имеющие в поле `Ингридиенты` значение которое включает в себя `Морковь` Использовал такой код(1ый скрин) для такой бд(2ой скрин). В итоге у меня нихуя не получается, как фиксить?
>>1162494 Только что узнал, что equalTo() ищет строку полностью включающую строку указанную в аргументе. Получается это не альтернатива like из sql В таком случае я в полной растерянности и не знаю как поступить
>>1162969 Имбицил с вебмками молодец и изучает разработку работая над интересным ему проектом, а не над очередным тудулистом и веазер апп из онлайн курсов.
>>1163073 > а не над очередным тудулистом и веазер апп из онлайн курсов. Жиза. Как себя бы не заставлял тогда, все равно блевать хотелось от просмотра кода из туду.
Уважаемые господа, обновил студию до последней версии и повылезала какая-то шляпа. При этом все вроде как работает (как дебаг, так и релиз). Подосбите решением, если знаете. Из того, что могло повлиять - поменял compile на implementation. Из того, что пробовал из гугла и не помогло - синхронизация градл файлов, invalidate/restart, добавление google() в repositories. Хуй знает че, короче. Вроде работает, но глаза мазолит
Как можно сделать так, чтобы пользователь мог залогиниться в одном моем приложении и потом автозалогиниться в другом, не вводя логин и пароль во второй раз?
>>1163887 Спасибо, анон. Насколько я понял, приложение, через которое пользователь в первый раз аутентифицировался, просто пихает логин+пароль в Account Manager и потом остальные приложения вытаскивают логин+пароль из Account Manager'а? Есть ли такая штука, чтобы я отправлял логин+пароль сервису аутентификации, который бы выдавал какой-нибудь подписанный пропуск, который я буду показывать при обращении к своим сервисам?
>>1164111 Ну вот мне надо rss ленту как бы, и один хер это не влияет на суть вопроса.
Мне либо коннекшон передавать вместе с инпут стримом в парсер, либо сначала всё прочитать из стрима куда-нибудь, и передать это в парсер. Второе явно лучше, но я не знаю как принято делать.
Анончики, при отправке коммитов в репозиторий гитхаб, вылезло окошко с кнопками merge и rebase, я нажал на вторую кнопку и все распидорасило в моем локальном проекте. Пропали все папки с джава классами и прочее. Иконки изменились на другие.
>>1164172 >нопками merge и rebase, я нажал на вторую кнопку и все распидорасило в моем локальном проекте. Пропали все папки с джава классами и прочее. Иконки изменились на другие. АХХААХАХХАХАх Сук) Проиграл. Я тоже так делал. В общем, по методу тыка нашел следующий рецепт для себя: Есть девелоп, создаю ветку новую, хуярю код там, потом переключаюсь опять на девелом, нажимаем волшебную кнопку MERGE, сливаем наши изменения в девелоп и мерджим конфликты. Хз, может поможет. А вообще, тебе лучше опять скачать проект, чтобы хуйней не страдать и применять мои рецепты.
>>1164210 >>1164412 Прикол в том, что они сука так и лежат в папке с проектом. До них можно спокойно добраться и вносить изменения. Но по большому счету, это все хуйня.
Нуб в андроиде. Делаю урок по сайту Климова (Светофор, день 4ый)
Почему при присвоении значения фона ConstraintLayout, меняется фон у всех элементов? То есть, по уроку если делать, такого быть не должно, но окрашивается весь контейнер, включая кнопки.
>Делаю урок по сайту Климова (Светофор, день 4ый) Нахуй Климова, хоть котики у него есть, но все равно нахуй. Ебашь юдасити, я знаю, что я говорю. Ты получешь невъебенные 6-7 курсов суммарностью 200 видосов. А на вопрос отвечать не буду, пока юдасити не пройдешь. Троль.
>>1164752 Если у тебя показываются только ошибки, значит Log level у тебя стоит Error. Если ты свои логи через Log.d() пишешь, значит тебе нужно поставить Log level: Debug. И убедись, что строка поиска и фильтры у тебя пустые.
>>1164776 Нет, у меня что-то вроде этого. Подозреваю, что пиздец в самом проекте. Но это только у меня, у другого чела работает. Но у меня и дома не работает. Загадка. К слову, здесь должно быть 100 строчек от логов. Раньше было, сейчас же нет.
>>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
Решил на выходных тыкать слегка натив фреймворки. Что лучше, брать реакт нейтив или все-таки попробовать флаттер? Кто игрался с ними? Расскажите как ощущения.
>>1165326 Он реакта чот блеванул. Тулинг какой-то пиздец ебанутый для меня. Какие-то пляски с нпмом старой версии, подкачивания какой-то хуйни и тд. А ну и жс, может с каким-то врапером типа тайпскрипта оно лучше, но не зашло. Флаттер не тыкал.
>>1165351 Ну я фреско только юзал на минималках, без углублений в детали. Хотя мне почему-то дарт получше читать, в отличии от того же жс, чего у последнего 60к звезд на гитхабе. Сложно все-таки натив выбирать, все-таки продолжу писать на джаве и буду ждать книжку от хед фест про котлин.
Анон, использую в проекте RxBinding и ButterKnife. И понял, что в разных местах использую разные обработчики нажатия на кнопку, а это хуево ИМХО. Что выбрать в итоге?
>>1166673 ExoPlayer'у можно скормить вообще все, главное напиши реализацию DataSource из трех методов.
Пет проекты для резюмешки вкатальшикаАноним02/04/18 Пнд 20:10:22#104№1166935
Читаю доки. Пилю проги. Забиваю гитхаб хуетой. (Такой хуетой что аж стыдно себе) но активность капает 1000+ коммитов уже захуярил дебил. Купил гугл плей. Залил туда одно говнище. Находятся дебилы которые даже устанавливают. Собственно вопрос сколько по хорошему нужно запилить прог на гугл плей чтоб вкатываться в джуниор и было не стыдно за себя?? Есть ли смысл гнаться за количеством? Сделать 10-ток толковых (блокнотик, to-do шечка, таймер будильник, читалка твитеров и т.д.) Или прям хуярить и хуярить чтоб штук 50-100 всяких крестиков ноликов, пятнашек, змеек, хуеек и прочего.
>>1166980 Ты рофлишь что ли? Они еще даже переворот экрана не пофиксили, КАРЛ. Идет уже 2137 год, даже сами разрабы флаттера хуй забивают на дискуссии молодых людей в issues на гитхабе. Хотя было бы интересно почитать краткий экскурс и по другому нативному говну, но мало кто интересуется этим. Да и еще альфа версия. Если сделают как на иосе, только с дартом, было бы замечательно. Наверное.
Задача такая - хочу сделать асинхронную загрузку данных через Rx, но все примеры предполагают, что управление подписками прикрепляется к жизненным циклам активностей. Я бы хотел сделать загрузку, не зависящую от этих циклов (чтобы работала даже в свернутом виде, не зависела от переключений активностей). Но управлять подписками как-то надо (по крайней мере желательно). Гугл предлагает ставить на паузу при уходе в бэкграунд приложения и потом просто возобновлять. Но это как то не очень. Если у кого-то есть что-либо, то достаточно ссылки на ресурс
>>1167247 >Ну так с этим уже вроде каждая собака умеет бороться. Ой блять, не начинай. Я не хочу даже думать об этом. А если еще вспомнить фрагменты и ТО, как ГУГЛ КАЖДЫЙ МАЙ говорит, что ФРАГМЕНТЫ ЗАЕБИСЬ - да идите вы нахуй.
>>1167276 Зачем ставить на паузу? Можешь глянуть https://github.com/NYTimes/Store. У них ConcurrentHashMap держит некоторое время твои обсервэблы и дедуплицирует одинаковые запросы. И можешь оставлять свои подписки как есть, можно share на обсервблы просто хуйнуть перед тем как они попадают в лайфцайкловые компоненты. (стор так и делает собственно)
>>1167308 Вот про тему со стором я как раз и думал, просто писать не стал. Посмотрю уже завтра как NYT реализовано (плюс у них там схемки какие то). Спасибо. >>1167317 Полу-текстовые данные в JSON, в средних объемах (~10 мб) и растянутые по времени в рамках одного получения (5-10 сек, мб чуть больше)
>>1167979 А можно не выебываться и сделать на фрагментах. А варианты такие же, что и в принципе без фрагментов обходиться - кондукторы и мотары всякие.
>>1167979 >кондукторы и мотары всякие Ну согласен, да. Иди что-то вроде таких. Одна либа полностью укомплектована и валяется на гитхабе. Но в основном нужно было ебаться с бек стеком, а здесь особо и ебаться незачем. Сначала подумой, прежде чем хуярить в свой проект очередную либу.
>>1168003 > Но в основном нужно было ебаться с бек стеком Сколько раз слышу это как аргумент против фрагментов, но так и не могу понять, что в этом сложного. Ну ладно там кривые api у камеры или Bluetooth, но тут-то что не так? Что в этом такого сложного?
>>1168053 > Что в этом такого сложного? Абсолютно уебанская асинхронная ссанина, которая даже с проверками на isPaused умудряется падать в > Can not perform this action after onSaveInstanceState
>>1168249 >что фрагменты будут выпилены из фреймворка Вот тоже когда пишу иногда задаюсь вопросом. Всякие action bar, toolbar, постоянно приходится на v4 вниз стрелочкой жмякать. Это будет чудо, если гугл выпилит все говно и оставит важное в супорт либе. Такому не бывать.
>>1161404 (OP) Анон, посоветуй стэк. Кароче: у меня есть на PC крутится сервачек на python, который парсит сайты и дампит инфу с разных API в db SQLLite. Другой процесс обрабатывает данные из этой db.
Требуется пересылать результаты аналитики на android app. Какой стек технологий подобрать? Направь анон, ато уже несклько дней не могу подобрать. Поглядел firebase, но так и не понял, подойдет ли это для моих нужд?
Сейчас настроил сокет соединение, которое обслуживается через ddns и сервер получает сообщение от andoid app через интернет, но не наоборот (android app получает дату только находясь в локальной сети).
Короче, на прилажухе должны быть поля, в которые постоянно приходят данные. ПОСТОЯННО. и при условии выбрасывать notification.
>>1169623 а что рили так удобно? дело не в мифических 300ММ/нс, но если будет работать, я уже на все согласен. с js давно знаком, но тесноый дружбы не завязывал, может быть время?
>>1169631 по счет бэкенда не знаю, однажды по дурости поучавствовал в холиваре и понял, что это иррациональная риторика. Но если поможет для моего случая и я не огребу еще большего геморроя, то почему нет
>>1169599 Да, бери firebase push api, смотри, на каких языках для неё есть готовые библиотеки. На джаве точно есть. При обновлении данных отправляй информацию на сервер firebase. На телефоне лови эти пуши, проверяй и делай с ними что хочешь.
Даже если ты раньше ничего такого не делал, но умеешь программировать, то тут работы на пару вечеров. Сервер пиши на чем хочешь из поддерживаемых языков, клиент наивный на Java/Kotlin.
Аноны, помогите нубу разобраться. Хочу написать приложение, суть такова: есть RecyclerView, внутри него карточки CardView. Каждая карточка - это какая-то категория. По тапу на карточку открывается такой же вид, где каждая карточка - это подкатегория, при нажатии на подкатегорию открывается список всех предметов, относяшихся к этой подкатегории. Как можно это реализовать используя один и тот же RecyclerView, просто меняя его содержимое, а не открывая новый activity каждый раз? Проблем еще в том, что список предметов это тоже карточки, но они отличаются от карточек категории, поэтому нужно будет писать какой-то хитрый адаптер, который сможет обрабатывать оба типа. И да, естественно, оно должно быть масштабируемым, т.е. может быть любой уровень вложенности категорий друг в друга.
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 по нажатию на карточку, даже если единственное, что поменялось - это список карточек?
>>1169855 При смене с категории на подкатегорию я могу просто поменять данные и вызвать nortifyDataSetChanged и он перестроится. Но при смене с категории на предметы мне нужно по-другому их отрисовывать.
>>1169854 А, так суть в адаптерах. Нахуй тебе нужен загромажденный адаптер? Можешь юзать getItemByType или как-то так, в общем, примеров много. Если только менять вьюшки, то это легко в принципе. но при тапе ты можешь открывать новый фрагмент, где получишь данные и хуйнешь это в свой базисный адаптер, где он и определит эти данные в соответствующий леяут.
>>1169851 Делаешь интерфейс, в нём вложенные классы. Один класс - один уровень категории. Дальше просто забиваешь свой ресайклер элементами в нужном порядке. Некоторые скрываешь, некоторые нет. Мне кажется, что это может сработать.
>>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
>>1169658 Что лучше выбрать между django и firebase? Чтобы с заделом на будущее?
вообще стал копать джанго, потому что хочу поднять на домашнем компе, тем более весь бэкенд критится на питоне. С другой стороны, firebase тема годная и, думаю, понадобится.
>>1170087 > django и firebase Firebase это весело, когда им пользуешься только ты и твой кот. Потом начинает приходить счет на пару сотен долларов в месяц в там, где можно было обойтись впской за 10 бачей.
Как организовывать структуру проекта с dagger и rxjava? Хотел MVP использовать, но во всех примерах структура разная, и я хз какой придерживаться. Алсо, приложение планируется не маленьким - апи, бд, карты и прочее
>>1170194 Чем тебя MVP не устраивает? Дополни её каким-нибудь интерактором и репозиторием, где распишешь общую бизнес-логику и работу с данными. В презентер вынесешь только логику представления и частную бизнес-логику.
Вообще структуру ты выбираешь сам и строишь её таким образом, чтобы было удобно тебе/твоей команде. Самое главное, чтобы ты не запутался в ней, и было понятно почему и зачем что-то сделано именно так.
>>1170194 >Хотел MVP использовать, но во всех примерах структура разная, и я хз какой придерживаться. >Алсо, приложение планируется не маленьким - апи, бд, карты и прочее Нахуй вообще тебе всякие ЭМ ВИ ПИ и тому подобное? Бери пример с меня, ебашь все сразу. А потом и образуется как-нибудь.
>>1170020 Т.е. ты хочешь сказать, что если меняется весь датасет, то лучше сделать сделать notifyItemChanged для каждого элемента, я правильно понимаю?
Открыл я тут недавно диспетчер задач, а там висят штук 15 неубитых adb, каждый из которых по ~100Кб. Какого черта эта хрень не убивается сама при закрытии эмулятора/студии?
К вопросу про фрагменты. Не успел я остудить свою жопу от доёбов гугла к моему приложению по поводу авторских прав в API одного сайта, как он подкидывает другой повод.
Дано: NavigationDrawerActivity c TabFragment в нём, в котором грузятся фрагменты. Начало моё приложение падать с NPE при попытке изменения TextView после возврата к нему. Ну подумал, что это из-за того, что асинктаск завершается быстрее, чем происходит findviewbyid для вьюхи в onCreateView (он запускается из onCreate - я понимал, что из-за этого могут возникнуть проблемы, но забил). Тем более, что данных приходило меньше на этой неделе чем обычно. Вкратце перекинул старт этого таска в onStart.
NPE перестало появляться, но сломалась пагинация, поэтому я продолжил копать дальше. Раскидал по жизненным событиям логирование, по своим функциям тоже. Вижу, что после возврата в foreground приложения вроде создаются две копии одного и того же фрагмента. Ну копаю дальше, дописываю события, логирую их. Смотрю лог, и что я вижу - эта сука действительно создаёт один инстанс и стартует таск в onCreate, а после стартует ещё один инстанс в onStart, хотя по пикрилу да и по логике такого не должно быть. Андроид благополучно забывает об этом и вспоминает об этом только после того как асинктаск завершается, конечно же вьюха под эти даннеы не создана и вылетает NPE https://pastebin.com/M46qteUA . Сука, ну как можно было ТАК ОБОСРАТЬСЯ!!!
А вообще из-за чего это начало происходить. После возврата в приложение показывался StartFragment, то есть происходил onCreate Activity. Но сука бэкстэк при этом всегда был не пустой!!! И если нажать "Назад", то возвращало к реально последнему состоянию последнего фрагмента перед остановкой приложения. Я сделал проверку на состояние бэкстэка и чтобы этот последний фрагмент грузился после рестарта (через onCreate естественно, с проёбом состояния). После этого начал вылетать NPE.
анон, тыкни, куда идти? Нужен стэк для клиент-серверного прилажения, которое юзать будем только мы с котом. Что нужно: чтобы прилажуха отображала цыферки с бекенда на питоне. На примете: django, firebase, пушить файл на ftp и с него забирать. Как проще всего сделать? и кстати, правда, что сокет не работает через инет вовсе? настроил только с андроида на сервер, но не наоборот.
>>1171064 1. Подключаешься по сокету на свой сервер и получаешь данные, показываешь их. Держишь либо это соединение всегда, либо только пока открыто приложение. 2. Получаешь данные по требованию через http и отображаешь их. Добавляешь новые записи через GCM/FCM постепенно.
>>1171172 >Сделай себе белый айпи, в чём проблема? белый - это статичный? Если да, то я настроил статичный IP через no-ip, ddns, port forwarding. Но это на PC. Андроид все равно не получает данные на сокет. Говорят, что за натом. Плохо понимаю что это и как обойти. >Получаешь данные по требованию через http и отображаешь их. Добавляешь новые записи через GCM/FCM постепенно.
какие тут endpoints? не знаком с технологией и плохо шарю в сетях. Что начать читать? Ато не представляю как происходит обмен данными. было бы готовое решение - было бы замечательно
>>1171179 Проще, покажи что ты уже сделал. Кто тебе говорит что твой андроид за натом. У тебя андроид уже слушает какой-то сокет и пытается через него получать данные?
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();
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?
>>1171203 вообще решения этой проблемы передачи на сокет смартфона так и не нашел. Восновном говорят, что телефону это не позволяется не из под рута и провайдеры НАТят Ip смарта
>>1171208 да что проще то и лучше) пока пишу бэкенд на питоне и пушу нотификейшены на андроид через сервис. Но в было бы отлично с помощью несложной технологии прямо с питона слать дату в прилажуху.
Сап, анунасы, тут кто-то занимался сборкой андроида под свой смуртфон (AOSP или Lineage OS)?
Есть пару китайцев к которым хочу собрать Oreo, застрял на шаге сборки проприетарных блобов и не могу понять что мне делать, вроде же их можно как-то из системы моего смартфона вытащить?
>>1171210 >и пушу нотификейшены на андроид через сервис я так понимаю, речь как раз о GCM/FCM. Это нормально на самом деле.
Просто с клиента (приложение под абдроед) подключайся по сокету к серверу своему. Данные можно слать в обе стороны если что через это подключение. Всё.
сап, андроидасы, ебашу ваще адовую приложуху. В ней есть один ViewPager. Как правильно обрабатывать повороты экрана в нем? Записываю в onSaveInstanceState номер фрагмента, и при повороте выводится нужный, но при этом "за секунду до" происходит анимация пролистывания и виден кусок фрагмента идущего перед нужным. Как это вылечить?
>>1171225 > застрял на шаге сборки проприетарных блобов и не могу понять что мне делать Тебе нужно накатить оригинальную прошивку, подрубить по усб и запустить скрипт, который вытащит из нее все блобы.
Несколько раз в год меня одолевает уныние от существующих языков и желание создать новый, лучше всех имеющихся. Чаще всего это желание улетучивается почти сразу, изредка приводит к созданию очередного диалекта лиспа, с каждым разом все меньше похожего на лисп.
На этот раз у меня возникла идея создать нечто, вдохновленное паскалем, го и жабаскриптом — причем даже не язык, а скорее целый инструментарий. Я не могу отогнать столь ужасную мысль просто так, поэтому буду расписывать свой поток сознания в этом треде.
Итак, какова основная цель этого языка, что должно быть основой его философии? Продуктивность. С этого и начну.
>>1171370 > Несколько раз в год меня одолевает уныние от существующих языков и желание создать новый, лучше всех имеющихся Лучше андроид сдк перепиши, у меня от него уныния еще больше.
>>1171370 Что влияет на продуктивность? На что разработчик тратит время? 1. Написание кода; 2. Написание тестов; 3. Прогон тестов; 4. Ручное тестирование; 5. Дебаг; 6. Рефакторинг; 7. Поиск библиотек; 8. Поиск документации; 9. Чтение кода и документации. Вероятно, я забыл еще столько же пунктов, но надеюсь, что самые важные я не забыл.
>>1171372 Как только придумаю идеальный язык — так сразу же создам идеальный сдк под все платформы, под небо и под аллаха.
>>1171375 1. Написание кода. Что мешает писать код легко и быстро? Я вижу три проблемы: бойлерплейт, ритуалы и парадокс выбора. С бойлерплейтом все понятно — если языку не хватает выразительности, то приходится писать много повторяющегося кода. Нужны метаинтструменты хотя бы в виде ФВП. Ритуалы — например, излишне строгая система типов заставляет переписывать код, который мог бы и работать. Больше всего с такой проблемой я успел столкнуться в PureScript — ошибка "Skolem type variable bound by temp has escaped" во всех тех случаях являлась серьезной с точки зрения системы эффектов, но не имела никакого значения для рантайма. Видеть такую ошибку в языке, ориентированном на корректность, вполне нормально, но для продуктивности этого лучше избегать. Парадокс выбора — при возможности писать слишком умный и слишком разный код теряется время на размышления о лучшем подходе. Лучше, чтобы язык склонял к написанию как можно более тупого кода, оставляя кривые лазейки для умных решений.
>>1171383 Котлин хорош, но для меня он ощущается как нечто слишком знакомое, а потому не восхищающее.
>>1171391 >Котлин хорош, но для меня он ощущается как нечто слишком знакомое, а потому не восхищающее. Если и ебашить язык, то поверх котлина. Ты все равно не осилишь.
>>1171375 2. Написание тестов; Тестирование обычно является епархией библиотек, а не самого языка. Но я-то вижу в своих влажных мечтах идеальный инструментарий, а для идеальности дизайн самого языка должен учитывать потребность в тестировании. Как упростить написание тестов? Например, можно ввести поддержку докстрингов с примерами вызова функции, как это сделано в эликсире. Полноценным тестированием это не является, но иметь пару гарантированно рабочих примеров будет полезно. Дополнительно, нужны метаинструменты для создания моков и стабов.
3. Прогон тестов; Пожалуй, к дизайну языка это отношения не имеет, но реализация должна делать доступной граф зависимостей, чтобы тестовая система знала, какие тесты нужно запускать и не тратила лишнего времени.
>>1171375 4. Ручное тестирование Как можно тестировать вручную? Один из вариантов — запускать все приложение и смотреть на результат. Другой вариант — запускать репл, импортировать функцию и играться с ней. В обоих случаях желательно минимизировать время компиляции/интерпретации и количество пересобираемых компонентов. Нужна простая грамматика, подобная паскалю, чтобы токенизация и построение AST происходили за миллисекунды даже на больших приложениях. Нужна быстрая на старте VM — монстры вроде JVM и V8 слишком медленные, куда лучше ориентироваться на LuaVM (и может быть MoarVM). Более того, вместо традиционного компилятора лучше иметь компилирующий сервер, который будет отслеживать все изменения и пересобирать нужные части без лишних указаний. Этот же сервер может реализовать LSP для поддержки языка редакторами.
>>1171393 >Если и ебашить язык, то поверх котлина. Я пытаюсь задизайнить язык, преследующий определенную цель, а не просто склонировать чей-то синтаксис и идеи. Зачем мне брать за основу котлин? >Ты все равно не осилишь. К чему такой негатив?
>>1171405 >К чему такой негатив? А что ты можешь? Ты тратишь свое время на непонятные ответы. Если бы ты хотел, ты бы начал делать. И тем более, одному это пиздец как долго.
>Зачем мне брать за основу котлин? Котлин как пример людей, которые ебашили его с 11-го года. А что можешь ты, один человек, предложить андройду? Нихуя. Влажные мечты и только.
Дебаг и рефакторинг должны идти рука об руку с тестированием. Если возникло необработанное исключение, рантайм языка должен писать соответсвующий машиночитаемый лог, а языковой сервер должен этот лог читать и предлагать сгенерированные тестовые сценарии на основе аргументов, переданных упавшим функциям. Средста рефакторинга должны предлагать нечто аналогичное — перед изменением определенной части кода языковой сервер должен предложить тесты с рандомными значениями для тех частей кода, которые планируется изменить.
Однако, этого мало. Лучше минимизировать потребность в дебаге как таковом. Как это сделать? Многие проблемы отлавливаются подходящими системами типов. Но проверка и вывод типов — операция дорогая, а это противоречит замыслу сделать компилятор быстрым. Как быть? Очень просто: исходный прогон компилятора должен относиться к языку, как к динамически-типизированному. Всякая синтаксически-верная программа должна запускаться. И лишь затем, когда первичный прогон завершен, в фоновом режиме можно продолжить заниматься тайпчеком, попутно оптимизируя и заменяя динамические части статически-проверенными. Раз у нас уже есть языковой сервер — надо использовать его по полной. Более того, подобный фоновый режим тайпчека и оптимизации позволит использовать плагины-тайпчекеры и плагины-оптизиматоры, сохраняя при этом все прелести быстрой компиляции. Выходит как JIT, но на пару шагов дальше.
>>1171413 Вопрос не в том, могу я или нет, стану я или нет. Вопрос был в другом: зачем нужен этот негатив?
Господа, как мне запилить распознавание текста в формочках(пикрелейтед)? Мне нужно по фотке распознавать что записано в каждом прямоугольнике( всё будет рисоваться от руки) Порядок действий такой: 1.Я программно задаю формы-разметку. Определяю что там должно быть записано внутри. 2.Потом пользователь рисует такую-же разметку, вписывает свои данные. 3.Я сравниваю то, что должно быть, и что нарисовал пользователь.
>>1171476 господи, как все просто то было. метод setCurrentItem view pager'a может принимать 2 параметра viewPager.setCurrentItem(position, false) где false как раз таки запрещает прокрутку.
Все привет, кто-то занимался такой херней, как написанием кастомных ромов (под один конкретный девайс), чтоб при включении телефона было всего 1 какое-то приложение и при этом не было бы вообще системных
Ананасы, сколько в часах займет небольшой мвп проект с дерганьем информации из интернета и отображением этой информации в нескольких ресайклерах для воннаби джуна, который не работал с интернетом в андроиде алсо поясните за окХттп, ретрофит и воллей, что из них самое быстрое/простое относительно изучения и имплментинга?
> окХттп, ретрофит и воллей, что из них самое быстрое/простое относительно изучения и имплментинга связка okhttp+retrofit , применяй ее, про воллей смело забывай и забивай. Ретрофит быстр в работе и элементарен в использовании, ты за час по сути полностью освоишь работу с ним. Во всех конторах котируется именно он
Ребят, есть клиент-серверка, если отсутствует инторнет, то вылезает много скрытых багов и не только. Хочу сделать проверки начиная с начала запуска приложения и во время работы. Нагуглить удалось только конкретную реализацию проверки на isOnline, но чтобы на все уровни программы относилось - нет. Кто что практикует в своих проектах?
>>1172545 На экспешн с отсутствием интернета выводи соответствующую ошибку на весь экран и всё. Посмотри 3 статью Ханнеса Дорфмана про MVI, он там как раз обрабатывает ошибки.
Помогите разобраться с okHttp3. Клиент сбилдил, реквест сбилдил, запрос отправил. Вроде бы все работает, но очень медленно. Отправил второй запрос - пришло быстро. В вики написано про коннекшнПул, создание и кеширование коннекшнов, но я не понимаю, как задать использование одного коннешкна, чтобы не тормозить реквест.
>>1173669 Спасибо за разъяснение. В любом случае, какие параметры обычно используют для okHttp коннекшна? Это ведь одна из самых распространенных либ для интернета, но при этом другие приложения не тормозят при соединении с сервером.
>>1174487 Я поздно взял тему и там из нормальных только погодка осталась, опенвезереапи нагуглил, там доки ебнутые, еще даркскай есть, но там нету возможности город выбрать (надо через левый сервис переводить координаты в город и наоборот)
Писал проги для яблока, и вообще в целом на обжектив с, с# и с++, внезапно они понадобились на андроиде. И у меня сразу куча вопросов: Как я могу конвертировать кучу больших баз данных .plist в базы данных андроид студио? У андроида вообще есть что-то удобное, быстрое и визуальное? Хули я должен постоянно импортировать используемые вещи и они не подключены по дефолту? Нет, ну серьезно, даже чтобы нажать на кнопку надо что-то импортировать. И мне кажется, или я в процессе кучу лишнего пишу, в си такой хуйни не было. А вот сторибоард с констрантами охуенны, но я еще учусь - хули хедер и футер кажутся неизменяемыми какими-то, лайк навигейшн контроллеры из хкода. Почему они не едины как-то с центральной частью. Я туда даже кнопки кинуть не могу свои. Вообще есть какие-нибудь хорошие видеогайды? Да, я шапку смотрел. Мне бы что-нибудь на русском без смс и регистрации. Чтобы прям шли и поясняли, зачем эту хуйню пишут и почему и какие полезные фичи есть.
Аноны, нужна консультация. Суть такова. Учусь в андроид методом погружения. Стоит следующая задача:
Нужно мониторить курьеров и накладывать маркеры на карту с их местоположением.
Каждый курьер - то JSON с указанием даты, времени, долготы и широты. Этих курьеров будет около 30. Как максимально корректно с точки зрения архитектуры реализовать параллельную загрузку и обработку 30ти JSON?
Кроме того, курьеры постоянно передвигаются. Следовательно, мне нужно будет по таймеру раз в несколько секунд загружать 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% прочих вещей. Мне нужны нормальные пояснения, где какие кнопки и что я вообще могу. Например вот база в хмле, какие варианты её сделать, сейчас у меня примерно такая же вложенная структура, какая была, но можно ли как-то по-другому и проще/сложнее. Как извлечь данные в какие-нибудь нормальные массивы из неё и т.д. Я такого пока не нашел, везде показаны, обычно, дефолты с простыми стрингами, а дальше типо сами разбирайтесь. вот могу арреи, могу арреи со стрингами, а что еще могу?
>>1175263 > а что еще могу Ты че ебанутый в нотепаде++ кодить? Тогда открываешь документацию и смотришь что класс может. Куда ты их вставляешь? Тебе контент менеджер присылает хуйню что ли?
Я в своей мотороле не обнаружил возможности посмотреть какие приложения прямо сейчас жрут оперативку, сколько жрет каждое из них, и выкинуть оттуда выбранные. Сделать такое в качестве своего первого приложения- нормальная идея?
Я пытаюсь вкатиться после рельсов, не понимаю как тут жить. Я могу как-то узнать что вернет выражение не запуская эмулятор? Вот например, хочу узнать что возвращает getSystemService(ACTIVITY_SERVICE), как мне получить результат?
Наверняка тут много людей, которые хорошо знают ответ на данный вопрос.
Есть json ответ сервера с новостями. Воспользовался сервисом, который автоматически генерит сеттеры и геттеры . Он сгенерировал два класса, в одном классе геттеры и сеттеры для описания конкретного айтема, а второй класс имеет сеттеры и геттеры для списка. Как сделать правильно, объединить в один класс или оставить как есть?
>>1175603 >о знают ответ на данный вопрос. Ну у тебя может быть один класс, который содержит лист новостей бугуртов, а есть класс бугурты - которые содержат расписание, тему, уровень возгорания автора и т.д. А лучше бы скрины приложить, ты читать сам классы не умеешь что ли?
>>1175991 Кстати на гите море репозиториев валяется ну они и дауны, даже посмотрел парочку. Пиздец они идиоты. Думаю спизжу идеи с них и попробую свое сделать. Только я с АПИ пока диска не разобрался, но думаю разберусь.
Я веб-макака, пишу на рельсах. Если по пару часов в день ковырять андроид студио и пилить свои говноприложения, реально ли за год-полтора достичь уровня при котором можно попытаться устроиться андроид разработчиком, причем не джуном, а миддлом?
>>1176245 >ка, пишу на рельсах. Если по пару часов в день ковырять андроид студио и пилить свои говноприложения, реально ли за год-полтора достичь уровня при котором можно попытаться устроиться андроид разработчиком, причем не джуном, а миддлом? Нужно побольше ковырять, хотя, если ты схватываешь на лету а не как я даун то вполне за полтора года можно попытаться ебнуть мидла. Да и что тут говорить, я за 5 месяцев с нуля устроился на стажера. Правда я завтра ласт день работаю
Объясните вкатывальщику, почему в этом говнокоде переменная item имеет тип View, а не ViewGroup? Ведь в той хуйне, которую я в нее пихаю не просто View в виде одного элемента, а Button и TextView обернутые в LinearLayoit
>>1176250 Ты вообще в доки можешь? А еще убунту параша, советую что-нибудь другое поставить. И вообще такой код первый раз вижу. Зачем тебе 10 раз создавать текст вью?
>>1176250 Продолжаю. Если тебе нужно создавать программно текст вью, то тебе нужно просто сделать пустой LinearLayout, например, и говорить, мол цикл фо - заебень мне 10 текст вью и создаешь их программно, можешь почитать как это делать, а после этого говоришь линеар адд текст вью.
>>1176257 Там я понимаю, что должен передать view, но почему вместо view прокатывает то, что по сути является ViewGroup? 10 штук их там просто в тестовых целях Мне хочется иметь что-то типа плитки состоящей из текста и кнопки. Сколько таких плиток, и какой текст на каждой из них я заранее не знаю, это будет делаться в цикле.
>>1176260 > что по сути является ViewGroup? Что вьюГруп? Линер - вьюГруп а последний в свою очередь наследуется от вью. ТекстВью - просто Вью. Смотри пик и читай про LayoutInflater.
>Мне хочется иметь что-то типа плитки состоящей из текста и кнопки. Если тебе это нужно - просто СОЗДАЕШЬ ОДИН линеар леяут. Получаешь его в программном коде а дальше СОЗДАЕШЬ ПРОГРАММНО CardView чтобы была плиточкаа можешь и не создавать и внутри него TextView. И никакой инфлатер вроде не нужен для этого. Примеры найдешь в гугле.
>>1176267 Я реально запутался. Вроде как есть 100500 способов это сделать и 99% из них неправильные. Я так понимаю, что для моей задачи вообще никакие xml не нужны, так?
>>1176273 Я могу представить, что хуйня в хмл- это вроде как... класс... экземпляры которого я как бы могу создавать, настраивать их, добавлять что-то внутрь и в тоге все это отображать?
>>1176277 Изначально я знаешь что пытался сделать? Захуярить для плитки свой класс наследующий от ВьюГрупп, в котором два поля: кнопка и тествью, потом в цикле в каждой итерации создавать экземпляр класса ну и ... дальеше как-то попробовать его отобразить. Вроде как это возможно, но не для таких как я.
>>1176276 >Я могу представить, что хуйня в хмл- это вроде как... класс... экземпляры которого я как бы могу создавать, настраивать их, добавлять что-то внутрь и в тоге все это отображать? Нуу, тип "да"
>>1176282 Ну тип верно, только я не читал про то, как андройд реализует превращение из программного текстВью в отображение хмл. Может быть он инфлатер самостоятельно юзает, или нет,я хз. Я просто так добавлял.
>>1176285 Во-первых, я тебе последний раз поясняю. Во-вторых - ЧИТАЙ ВДУМЧИВО и если не понятно, ЧИТАЙ ЕЩЕ РАЗ И ИЩИ. У тебя есть хмл, базовый отец - релатив - СМОТРИ пик, в нем ты создаешь ЛИНЕР ЛЕЯУТ и все. Потом ищешь по ид линер леяут _ОН УЖЕ ОТРИСОВАн. и хуяришь туда текстВЬЮ. и они там отрисовываются. ВСЕ.
>>1176295 Да понял я, что ты предлагаешь. Меня печалит, что я не понимаю, что там будет происходить. Для меня это просто "напиши вот так, и все заработает"
>>1176304 xml в андроеде просто удобный декларативный способ верстки. Тебе не надо вручную писать код инициализации вьюх, их размеров и тд. Ты их просто объявляешь в xml. Андроид в свою очередь с помощью LayoutInflater парсит xml и генерирует из него ровно такой же код, который бы ты сам писал. Так вот. Запомни пидор. Все *Layout это ViewGroup extends View. ViewGroup, не считая экзотических случаев, когда ты в свой CustomView хочешь влепить свой View или ViewGroup.
>>1176308 >Тяжело писать приложение впервые видя андроид студио и имея ну очень поверхностное представление о java Для таких как ты МИР придумал юдасити, кстати. После месяца дрочева ты как новенький сюда придешь и будешь ставить таких пидарасов на место.
Посоны, я клянусь, что если вдруг стану(а я не стану, мне уже 29) погромистом получающим 300к в секунду, катающимся на Тесле и ебущим мулаток, то я буду посвящать значительную часть свободного времени помогая нубам
>>1176325 >то я буду посвящать значительную часть свободного времени помогая нубам А я уже помогаю. Хули выебываешься. И тут нет пацанов. Только ты да я и пару шакалов.
>>1176333 Как может выебываться человек, который пытается написать простейший диспетчер процессов вращающихся в оперативке, но у него опускаются руки, и ему кажется, что разобраться во всей этой хуйне- не для средних умов?
>>1176338 бро, если я такое напишу, и выложу в маркет рублей за 60, то хотя бы на пиво заработаю за счет долбоебов купивших случайно, или вообще бесперспективно?
>>1176341 Тебе тогда надо в хуИОС. Мне как-то один челик сказал, если ты принялся делать мобилки под андройд - будь готов потратить дохуя времени, а потом делать приложения бесплатно. А если не хочешь - иди в гейось.
>>1176350 >Более-менее успешное приложение в котором есть откровенный говнокод- Это нужно обращаться к тем, кто сидит за ведройдом +2 года. А я еще зеленый. Хотя исходники телеграмма тому пример. Кек.
>>1176350 > Более-менее успешное приложение в котором есть откровенный говнокод- это редкость Это реальность. Успех и говнокод никак не зависят друг от друга.
не, мне не хватает силы воли для андроида: У нас есть удобный виджет для больших списков. Вам всего лишь надо заполнить два xml файла. Создать экземпляры трех классов, в двух их которых переопределить методы, а в одном сделать еще один класс внутри и тоже с переопределенными методами. Раньше у нас АПИ был доступ к всем процессам вращающимся в памяти. Но мы решили, что это не нужно. Вместо этого теперь можно посмотреть запускался ли какой-то процесс год назад. Ну, как можно... вроде как есть такая возможность, но как она работает- разбирайтесь сами.
Бро, вот скажи мне, для человека впервые увидевшего андроид студио позавчера, и имеющего поверхностные познания о java, задача за 10-15 дней написать простенький диспетчер процессов болтающихся в оперативке- это норм, или сложно?
>>1176899 Вот у меня желание и пропадает уже. Не знаю за что хватать и не могу получить хотя бы примерной картины того, что с чем и как взаимодействует. Какой срок ставить себе для реализации задачи? Так чтобы было в меру сложно.
>>1176923 Пирожок дружок, ты здесь ноешь и пытаешься писать в стиле чукчи. Тебе дали совет - делай. Не поймешь - залетишь сюда, глянь, а кто-нибудь да поможет. Все, а теперь иди пили проектик.
>>1176930 С Алексеем мы дружим с детства. У него сейчас нет зубов спереди. Он вообще сейчас как какая-то шавка по базарам, по рынкам лает как мелкая собачка. Может побежать, откусить. Мы с ним ходили по барам, рестораном и искали Алексея. На самом деле, ни он, ни я не Алексей, но мы так друг друга называли. У него очень тяжелая жизнь сложилась.
Тыкаю Firebase, сделал аутентификацию через гугл. Как правильно хранить инфу о юзере в приложении? До этого был опыт работы с айос приложением, там мы создавали класс-контекст, в котором хранили переменную-юзера, и из него в нужных активити их доставали. Касательно андроида нагуглил только хранение в SharedPreferences инфы. Как это обычно делается?
>>1177416 Есть только одна причина использовать избыточный и громоздкий AM в 2018 году - если ты у мамы микрософт, гугл или яндекс и тебе нужен SSO в своих приложениях.
Никогда почему не мог заканчивать пет проекты. Сейчас, вместо того, чтобы делать 3 пет проекта, я сижу руби копаю, нахуй мне это надо. По рукам себя бью - не помогает. Завтра нужно все-таки начать доделывать.
>>1177935 Да хуй пойми. Иногда андройд настолько надоедает потому что только в нем и сижу что хочется побродить по нетику, посоздавать что-нибудь этакое. В итоге все скатывается к хуям и я возвращаюсь к андройду спустя 2-3 дня с базовыми знаниями какого-нибудь языка который мне в жизни никогда не пригодиться.
Сап. Есть тулбар, в котором есть оверфлоу-меню. И это оверфлоу-меню зачем-то перенимает цвета из стиля тулбара. Как сделать так, чтобы оно сохраняло дефлотный стиль?
Есть ресайклер с гридом из леяута с картинкой (пик 1). Как сделать так, чтобы по нажатию весь айтем и ImageView увеличивались в размерах и "выезжали" на передний план, затемняя все остальное (пик 2)? Каким лучше объектом сделать большой айтем - фрагментом, диалогФрагментом, карточкой или мб еще чем? И анимация - дефолтный транзишен или тут нужно что-то покруче? если это имеет какое-то значение, картинки загружаю глайдом
Как улучшать свои проф скиллы? Может есть какие-нибудь модные ресурсы которые стоит почитывать, или надо подучить что-то не на прямую связаное с мобайлом (алгоритмы, криптография)? В общем как поставить приоритеты молодому андроид деву?
>>1171405 >Нужна простая грамматика, подобная паскалю, чтобы токенизация и построение AST происходили за миллисекунды даже на больших приложениях.
Большая часть времени компиляции уходит не на разбор текста и построение AST, а на дальнейший анализ. Например резолв идентификаторов, прогон диагностик. И чем более выразительный язык, тем больше на это нужно времени.
Сап, андроидач. Андроид студия уведомила меня о том, что виртуальное устройство Андроид создать не получится, ибо цп не поддерживает виртуализацию. В качестве альтенативы предлагается запускать приложение на физическом устройстве.
Так вот, по идее эта проблема должна решаться как-то проще, чем ручное копирование и запуск .apk?
>>1178672 Гугли на стак оферфолоу по английски. Я в свой время заябывался в биусе чёт включать, потом доустанавливать гавнище какоето и только потом эмулятор стал запускаться... правда я дебил на убунте всё делал... для запуска на андроидж устройстве тоже пришлось позаябываться
>>1178395 Запили десяток разнотипных приложух на гугл плей, подключи аналитику и прочие гугловское гавно, прикрути айпишки разных твитеров хуитеров инстаграмов пуши хуюши. Если людишь извращения добавь часть либ пиши на с++ и ассемблере>>1178395
Почему если я пишу ((GridLayoutManager) mPhotoRecyclerView.getLayoutManager()).setSpanCount(colCount); в онглобаллайотлистенер все работает, если GridLayoutManager layoutManager = (GridLayoutManager) mPhotoRecyclerView.getLayoutManager(); layoutManager.setSpanCount(colCount); то поворот девайса полностью отваливается?
>>1178961 Это ещё раз красноречиво показывает твой уровень. Тебе говорят, что действует правило A => B. А ты пытаешься использовать правило Not A => Not B, которое не следует из заданного. А ведь этому на первом семестре в любом заборостроительном техникуме учат.
>>1179336 > Как мне не нравится этот биндинг андройда. Просто пиздец. Отвратительная либа, хотя я был не проч на МВВМ сидеть. Так сиди, кто тебе мешает. Data binding вообще с архитектурой никак не связан.
>>1179207 -10% юзеров как будешь своим продактам и продажникам объяснять, ммм? Напомню, что от среднеуспешного продукта в 100к инсталлов, это 10к юзеров.
Есть ресайклер с imageview, ширина и высота которой определяются динамически (в конструкторе ресайклера, и потом передаю их в .override() глайда). По клику на imageview открывается фрагмент с картинкой в shared element transition (сам ресайклер отправляется в бекстек). Когда я попаю бекстек и на экране обратно появляется ресайклер, у картинки сначала размер 0х0, и только потом глайд загружает картинку - получается, что картинка сначала уменьшается до 0х0, а потом расширяется. Можно ли это как-нибудь сделать так, чтобы размер вычислялся до самой анимации? Я нашел в гугле postponeTransition, но для фрагментов это работает только с api 26, а у меня 25.
>>1182261 >у картинки сначала размер 0х0, и только потом глайд загружает картинку - получается, что картинка сначала уменьшается до 0х0, а потом расширяется. Можно ли это как-нибудь сделать так, чтобы размер вычислялся до самой анимации? Может быть из-за того, что ты выполняешь методы активити\фрагмента в который ты возвращаешься и там опять все по новой загружается? блять
Делаю примерно так для оповещения о входящем сообщении: MediaPlayer.create(getBaseContext(), R.raw.sound_in).start(); Но если таким образом запускать звук слишком часто, то он перестает проигрываться вообще до перезапуска приложения.
>>1182443 > предварительным Я хуй знает что ты там придумал, но лучше переиспользуй, а не каждый раз создавай. А еще точно есть какой то способ проще, который использует NotificationManager, глянь в исходниках show.
Пацаны, поясните за даггеp. Как этой поеботой вообще пользоватся?
Приведу пример. С спринг бут я создаю класс с описанием бинов, описываю в этом классе объекты, которые мне нужны, затем в нужном мне месте пишу @autowired и всё! Никакой еботни не нужно.
В даггере же мне нужно: создать модули, затем их объеденить в компоненте, затем в месте, где нужно я должен вызвать (!) билдер даггера и вызвать inject(this). Это dependency injection? Это хуйня же какая-то.
Помогите, может можно как-то по человечески это всё сделать? Гайдов в интернете 1.5, и во всех советую внутри класса вызывать inject(this), IoC то не соблюдается получается. Короче пиздец, я запутался, помогите
>>1182532 Неправильные ты гайды читаешь дяд федор, просто ведроидовские компоненты убогие и мы не можем участвовать в их создании, потом и вынужденны вызывать inject как можно раньше, но на самом деле и это не нужно.
Гайдов миллион и тележка. Спринг ебашит рефлексией и потому все так просто.
Если коротко в компоненте объявляешь модули от которых она зависит для предоставления своей хуйни. И методы которые нужны для преодоления ведроидовский костылей, можешь выбрать inject(GovnoAndroidComponent xuita), но по мне лучше оставить плейн геттеры типа: SuperDependency getSuperDependency(); Ну или: SuperDependency superDependency();
Теперь в модулях ты пишешь код который создает нужные зависимости. Это самые базовые вещи, но они быстро становятся весьма монструозными, потому есть некоторые упрощения.
1) Объявить класс который является зависимостью, при этом пометив его конструктор аннотацией Inject, и прааметры там могут быть только те, которые уже есть в графе зависимостей, тогда тебе не нужно ебать и создавать его в модуле и что бы сделать его доступным через компоненту добавляешь туда его геттер, ну или если инжектами пользуешься то ничего. Но таким макаром ты выставляешь в качестве зависимости конкретную хуйню, так лучше не делать. Но можно спрятать конкретную реализацию оставив ее конструктор с инжектом, а в асбтрактном классе модуля конвертить конкретную реализацию в ее интерфейс: @Module interface ConvertModule { @Binds public abstract Dependency bindDependency(DependencyImpl impl); }
>>1182627 Да, все верно - найти тупых объебков, которые будут бесплатно отвечать на идиотские вопросы войтивайти, которые игнорятся в нормальных каналах.
Ребят, есть кто тестит свои приложухи на Xiaomi Redmi 4x? Может такая проблема была у вас или у других телефонов Xiaomi, но фишка в том, что при изменении Java-кода, Андроид Студия выкидывает мне сообщение о том, что INSTALL FAILED USER RESTRICTED, предлагая удалить, а потом заново поставить приложение. Это работает, да, как впрочем если нажать Отмена и снова запустить проект на телефоне.
>>1182710 Вообще, это обычно возникает, когда ты написал приложение на одном кудахтере, а вечером пришел домой, включил своего обоссанца, попутно скачивая ласт изменения с гита, и пытаешься опять запустить приложение. Вот тогда и возникает. Ну и в других ситуациях примерно похожих на эту.
>>1182418 Активита то же самое, просто ресайклер уходит в бекстек.
>>1182422 ТОННЫ НЕФТИ, АНТОШ, ЗАРАБОТАЛО Дело в том, что я менял парамсы у леяута, в котором лежит imageview, а самой картинке задать не додумался... Спасибо еще раз, и извини за тупой вопрос.
Эх, нахер я вообще начал вкатываться в андройд. Долбанное МВВМ и БД, столько говна нужно читать и делать. Особенно читать. Да еще и вчитываться. Просто пиздец. Ебанная пагинация, нулевые примеры, тонны копипаста. Непонятные перевороты экранов, какой-то главный сингетон, непонятная рхДжава. Да еще и примеры на ебучем котлине. За что блять это все? Просто продвигаюсь на минимальных скоростяхычах. А перекатываться-то и не хочется, уже 8-ой месяц пошел блять. Просто не могу из-за этого руки отпустить.
>>1182985 >Никто его не использует. Ну будешь мне еще блять говорить мне об этом. Когда я работал стажером по андройду я как раз ебашил МВВМ. Самое главное, никто мне нихуя не объяснял что да как делать. Просто хуярил на ощуп, а потом на митинге говорили "Ну пацан, пиздец у тебя говнокод конешно." Я блять готов был прям там разъебать ему морду, пидору конченному.
>>1182981 > столько говна нужно читать и делать. Особенно читать. Добро пожаловать в программирование, тебе нужно будет делать постоянно. Не нравится - есть куча других профессий.
>>1183021 Будет. Но у гугла довольно скучные выступления, проще потом запись посмотреть по интересной теме, а не жрать говно про фаирбейз в лайве. >>1182986 > Когда я работал стажером по андройду я как раз ебашил МВВМ Пиздец вы ебанашки, он конечно приятен, но только в WPF, а не на ведре.
Одна служба для всего или несколько специализированных? Что лучше? Допустим, есть служба 1, которая отслеживает события в clipboard, создает кнопку оверлеем, нажатие на которую делает запись в базу данных (активити не участвует). Стоит ли логику для записи в бд пихать в эту же службу, если из активити тоже можно делать запись в бд? Или лучше сделать отдельную службу? Мне кажется, лучше отдельную, все же служба-1 имеет функционал, который никак с этой активити за пределами базы данных не пересекается. Где я обосрался?
>>1183692 Несколько специализированных - это: - Меньшая связанность кода, меньше риска что потом все навернется если захочется что-то переделать - Хорошая расширяемость - Большая тестируемость
Одна для всего - это: - Чертовы спагетти, тронешь в одном месте отвалится все - Плохая расширяемость - Плохая тестируемость.
Насколько хуево так делать (https://pastebin.com/SfFnZ7Xd)? Суть в том, что я запускаю TaskActivity с помощью startActivityForResult в MainActivity, и хочу в зависимости от результата, чтобы либо выводился Snackbar в MainActivity, либо не выводился, но поскольку добавление в БД происходит асинхронно, то результат не успевал придти до закрытия активити, поэтому мне пришло в голову после добавления в БД вызывать exit(), чтобы только после этого активити закрывалось. Можно-ли как-то сделать лучше и как, если можно?
>>1183826 >Че? Хули че-то блять. Рх же тупо нужна для того, чтобы простенько взять запросы с сервака. Ну или для выебонов аля возвращая обсервабле и работая дальше с ним. Но это же больше для продвинутых. Хули на вопросы не отвечаешь-то.
Тут есть те, которые продвигают собственные приложения? Хотелось бы пару вопросов: Сколько стоит продвинуть приложение, хотя бы для первоначального выхлопа? И какой вообще выхлоп? Много ли денег надо на развитие, для того что бы вкатиться? Понимаю что вопрос зависит от того, что вообще за приложение, но больше интересует, сколько примерно. Возьмём даже простенькую игрулю, сколько нужно на её развитие? Гугел выдаёт разные недоблоги всемогущих, и пишут начиная от "без вложений" заканчивая лимонами. Или мне уебывать с этими вопросами в biz?
>>1184166 WebView умеет запускать Intent'ы, отображать бесконечные списки(в том числе пейджинг), нормально работать с sql, нормально кэшировать навигацию и стейт, и еще хуеву тучу других вещей, которые сейчас не вспомнишь? А самое главное, может оно блять работать быстро?
Есть два хранилища: одно на сервере - другое локальное. В локальном часто данных сервера с дополнительными характеристиками. Как их лучше синхронизировать: 1) Держать сервис, который слушает в отдельном потоке изменения сервера, и пилит их в базу. 2) Перед каждым запросом к локалке делать запрос нужных данных к серверу и синхронизировать (всё это в репозитории) В певом варианте смущает, что дополнительный сервис пришпиливается, хотя код чисто джавовский.
Сап. На нескольких устройствах заказчика во время работы приложения выскакивает вот такая фигня. Алерт появляется на секунду и исчезает, приложение не крашится и продолжает работать. На своих устройствах и ни в одном эмуляторе отловить не удалось. Либы, которые умеют слать репорты при крашах тоже не отлавливают ошибку, доступа к крешаналитике и консоли gp по тех. причинам нет, но баг пофиксить нужно.
>>1184452 > 'com.yandex.android:mobmetricalib:2.40' 100% вот эта пидорасня падает в отдельном процессе, поэтому и не закрывается приложение. У меня такое же было. Яндекс возомнили себя гуглом и решили обмазываться несвежим IPC между всеми приложениями с установленной метрикой, а не делать как нормальные люди из других сервисов аналитики.
Зачем прописывают synchronized в таких случаях? Когда читаю код, часто проскальзывает это у некоторых людей. Сам оператор же позволяет синхронизировать потоки. Значит сам класс синхронизируется с бинарным классом? Что за бред?
Подскажите по работе жестов, через гестуре билдер я могу создавать собственные жесты, но мне интересно как можно реализовать, чтоб они работали только в определенной области экрана? Например только в правом верхнем углу, или по середине экрана, беглое ознакомление дало понять жест воспринимается в любой области экрана.
>>1184693 огромное анонское. Тогда не затруднит ли сказать, как все это гуглить? потерялся на том, что не могу загуглить с примерами реализации retrofit+rxJava. Inb4: retrofit call api time continue infinite call request.. - все это перепрогуглил но получил нул. Подскажи, как нагуглить?
Видел, что некоторые парни в разных xml пишут, один и тот же айдишник, например, recyclerView в одном и recyclerView в другом. Это нормально так делать?
Интересно, и что же я ебать делал целый день? Качал хуеву тучу примеров, половина из которых требовала апи кей, а другую половину откладывал в полочку, чтобы изучать как люди пишут. В итоге сам что мало написал, но вырастил чуточку понимания во всем этом говне один нейрончик в мозгу, за 9 часов ебанины. Блять, просто минус время. Ебанная разработка.
>>1185228 учись: больше сорока часов разбора прилажух с retrofit. Сложилось мнение, что на всей планете мне одному понадобилось постоянный call апи. Ни одного примера не нашел. А все что скачал - повторяют дефолтные туты. Решил немного подразобраться мини прилажуха нужна самому и никогда их не писал. Прошла неделя. Теперь уже знаю, что package нужно задавать правильный сразу. Что интенты вызывают активити, а активити обладают циклом жизни. Что нельзя хардкодить. Что инфу нужно зачем-то из ресурсов проводить через какой-то буфер адаптер вью, чтобы из него вывести в UI. Что бы работать с api нужно прочитать и понять книгу в 356 страниц по retrofit. А что бы было удобно работать в ретрофит, нужно прочитать книжку и понять книжку по реактивному программированию RxJava. А чтобы делать запросы, нужно еще изучить OkHttp, который как бы и является частью retrofit, но чтобы его понять, нужно, наверное, охуеть. ПОтому что все материалы, которые я поглядел слизаны с одного примера: получить данные с апи по нажатии кнопки или при загрузке прилажения. Притом, что несклько дельных советов я смог узнать только в рунете. Не в англосреде. И это микромаленькие советы. Теперь язнаю, что чтобы мне сделать свою мини прилажуху, которая должна всего-то постоянно отображать данные полученные ей с апи 5 раз в минуту и если что - пискнуть. Так вот, чтобы сделать эту миниатюру мне нужно изучить более полутора тысяч страниц. Первые три дня я думал, что просто плохо соображаю. Теперь же, я чувствую себя обезьяной со штанегенциркулем. А ведь 7 лет бэкенда позади. Вот такой андроид.
>>1185246 Да хули здесь учиться. Нихуя ничего не происходит. Меня блять трясет уже. Зимой я не мог реализовать пагинацию через вытаскивание из Реилма. Я блять неделю на это говно потратил, нахуярил вопрос на этом стековерфлоу - в итоге я так и не осилил это. Забросил. В марте я не смог прокинуть броадскастИнтент через сервис, чтобы взять данные в одной из нужных активити - я блять неделю опять на это говно потратил, в итоге я опять нахуй забил на это дело.
Сейчас мой второй день ебанины с нормальной архитектурой андройда - я блять уже начинаю чувствовать эти МВП, МВВМ, но я нихрена не могу написать, потому что в этих репозиториях из гитхаба хуярят люди с АСИН ТАКСКАМИ хуясками, через анальные даггеры и прочее.
Блять, даже во фронтенд легче вкатиться, чем в эту ебанную архитектуру андройда.
>>1185265 перед тем как писать прилажуху был уверен, что уже все How to, tutors, даже готовые решения и шаблоны на такую плевую задачу есть. Боже мой, как же я ошибался..
>>1185228 >>1185265 >>1185366 Думал я один такой дурачек. В один момент мне надоела эта ебля с ведроидом, и я решил перекатится в Ruby/Ruby on Rails. Так вот в RoR все шло как по маслу. Есть дохуя нормальных гайдов на почти-что каждый пук. Сейчас опять вернулся на ведро, и опять этот ад. Ищешь какую-нибудь инфу по какой-нибудь хайповой библиотеке для Андроида, и читаешь тонну похожих друг на друга гайдов, а иногда и неактуальную хуету. За эту неделю обратного вкатывания осилил все-таки MVP, RxJava и Dagger 2 с горем пополам. Сейчас буду пытаться осиливать тестирование. В прошлый раз (год назад где-то), я, после попытки осилить тестирование, выкатился с подгоревшей жопой отсюда. Но не смотря на все это, меня все равно так и манит этот чертов ведроид.
А вообще, если есть какой-нибудь анон, которому было бы не лень иногда отвечать на мои возможно тупые вопросы, то я был-бы рад, если-бы ты отписал на фейкомыло [email protected].
>>1185396 >MVP, RxJava и Dagger 2 Это же изи всё, просто пиздец изи. Вы просто тут тупые все и не лечитесь. Нахуй вы вообще программируете под андроид?
>>1185408 меня нужда заставила - по работе автоматизировал некоторые сервисы, все сделал отлично, вывел апи, неубиваемый сервер, написал отличный бэк. Дошел до андроид и охуел просто. По другому не скажешь. А ведь всего-то хотел себе жизнь облегчить.
>>1185408 В какой-то мере соглашусь с первыми двумя пунктами, но на Dagger 2 я точно не меньше двух дней потратил. Хуй знает куда что пихать, как правильно всю эту парашу инджектить.
>>1185408 >Это же изи всё, просто пиздец изи. Засунь себе в анус свое изи. Ставлю сотку, что твой продакшен код настолько залит говном, как и твой очередной пост с предсказуемым пуком.
>>1185396 Я кстати тоже после разрыва пукана начинаю копать руби. Какое совпадение. Кек.
>>1185425 > В этом коде гонка потоков. Пилите свои вьюшки и не лезьте в серьёзные вещи. Это код рандомного китайца, который я изучал. Что здесь не так что? Объясни поподробней.
>>1185440 после того как ссылка на INSTANCE была присвоена и до того как вызовется updateDatabaseCreated VM может зашедулить выполнение других потоков, а текущий убрать до лучших времён. Вполне возможно что другие потоки могут увидеть присвоенную ссылку на INSTANCE даже не входя в sync блок, только эта самая ссылка не была инициализирована до конца. Это data race классический.
>>1185414 >Засунь себе в анус свое изи. Ставлю сотку, что твой продакшен код настолько залит говном, как и твой очередной пост с предсказуемым пуком. Сотку чего?
Мне вообще непонятно, почему так делают. На работе я смотрел как челик один класс пилит и все. И из MyApplication.getInstance я вызываю в любом фрагменте то, что хочу вызвать. Но я пока бдшку не подключал, сегодня буду пытаться это сделать внутри этого говна.
>>1185635 Т.е. здесь китаец инициализирует БД в единичном экземпляре, чтобы потом наверху, например в активити, получить этот инстанс и внести изменения в эту БД?
Как сделать один общий граф зависимостей между модулями? Вот например есть aar модули А и Б, их консюмит апк модуль. Модулю Б нужно заинжектить зависимость(@Singleton) модуля А в свой андроид сервис. Это реально вообще?
Так, ребята, какая-то хуита произошла с Андроид Студией - постоянно индексирование происходит. То есть открываю некоторые файл с классами активити - начинается каждую секунду индексирование, просто не переставая. В других классах активити такое же происходит только если начать редактировать методы OnCreate или OnCreateView. В какой момент все пошло по пизде сам не заметил - классы, в которых эта ебатня происходит, даже не менялись последнее время. В другом проекте этого же не происходит, то есть дело в проекте, но где искать проблему хотя бы примерно?
Смотрю на все эти навигации, design-time helpers и вспоминаю, как буквально пару лет назад, когда решил потыкать андроид впервые, у меня был настолько слабый ноут, что дезигн у хмл в студии вообще не грузился, так что приходилось писать абсолютно все из кода. И как-то тепло на душе становится.
>>1187191 >пока к ним доступа не попросил Т.е. у меня существует лист из 20 элементов без инициализации полей?
У меня проблема в том, что при первой установке приложения ничего не показывается, при повторной компиляции показывается лист уже нормально. И с этим ли связана инициализация?
Аноны, пишу очередной чят на курсач. Переписка отображается в ресайклервью, ниже идет панель ввода текста, ну по классике. Проблема что когда открываю клавиатуру, она как бы закрывает часть чата. То есть если я открываю клаву из позиции на пике 1, то получается пик 2, а должен быть пик 3. Как фиксить? Гугл говорит чето про android:windowSoftInputMode="adjustResize", но это фигня.
>>1187313 Накостылил вот такую хуйню, но она коряво работает при скрытии клавиатуры (поэтому сделал условие что только при открытии), и это же какая-то хуйня. Наверняка есть какое-то более элегантное решение, задача-то распространенная.
>>1187431 setStackFromEnd(true) достаточно было поставить у лейаутменеджера, но за видос спасибо. Правда, теперь оно отображает первые сообщения снизу, а не сверху, но в телеге например так же и всем нормально, так что похуй.
Сап, /pr/. 1) Как сделать так, чтобы в зависимости от какого-то условия приложение стартовало с разных активити? Т.е. если, допустим, пользователь не авторизован, то с Login/SignUpActivity, если авторизован - то сразу какая-нибудь FeedActivity. 2) Где хранить токен, получаемый с сервера при авторизации, чтобы реализовывался пункт 1?
>>1187752 >1) Как сделать так, чтобы в зависимости от какого-то условия приложение стартовало с разных активити? Т.е. если, допустим, пользователь не авторизован, то с Login/SignUpActivity, если авторизован - то сразу какая-нибудь FeedActivity. Чекать shared preference. Если там есть что-то - открывать уже другой активити. Если нет - то авторизацию. >2) Где хранить токен, получаемый с сервера при авторизации, чтобы реализовывался пункт 1? В одном из приложений я хранил в sharedPreference. Но у тим лида пукан горел с этого.
Тогда такой вопрос. Где в коде чекать SharedPreferences или AccountManager? Это должна быть какая-то StartActivity, единственной задачей которой является проверка наличия валидного токена и переадресацией либо на LoginActivity, либо на FeedActivity?
sup /pr помогите разобраться в структуре андроид проекта. Есть порт love2d для андроида через сдл и вот я не могу понять как это работает. Там 3 манифеста (если не больше), а насколько я всю эту тему накопал то одно приложение = один манифест, но тогда зачем там остальные манифесты, как всё это между собой связано? а там и сдл и сам лов, а потом к этому всему и само приложение
> Хочу вкатиться в разработку под 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/