Android Development Thread #3 в 2021 году, страует здесь.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
>Хочу вкатится в 20/30/50 лет, не поздно?
Нет, не поздно. Лично знаю несколько примеров из жизни когда вкатывались в 30+ лет.
Основы программирования, логические операции -> Джава(базовый синтаксис и особенности языка) -> ООП -> особенности различных версий Джава -> алгоритмы и структуры данных -> многопоточность -> дженерики -> функции высшего порядка -> Котлин -> Android SDK(UI, версии и различия, особенности оси на уровне работы виртуальной машины) -> работа с БД, CRUD(можно и на этапе знакомства с алгоритмами) -> git -> networking/REST API/JSON/сериализация -> актуальные фреймворки зачем и почему, спойлер: экономия времени -> архитектура, зависимости, инверсия контроля -> ?..
Вот примерный флоу, которому я бы следовал, если бы учился сейчас. Начал бы сразу с алгоритмов, если честно.
В эту же последовательность нужно вставить clean code, SOLID, DRY/DIE, KISS, YAGNI и прочие модные аббревиатуры, которые весьма актуальны. Что-то упустил, но, думаю, этого достаточно.
Нет. Не стоит. Есть точка зрения, что котлин позиционируется как "удобная/лучшая джава", подразумевая то, что ты хочешь писать на джаве, но более современно и практично. Да и глупо игнорировать джавоский мир, который является в топе по числу библиотек и решений, где тебе все равно придется погрузиться когда-то в его синтаксис.
>Прочел книгу по java/kotlin/flutter и посмотрел видосы, на деле ничего не понимаю. Куда идти дальше?
Делай свои мелкие пет-проекты, можешь копировать чужие и дополнять функциями которых там нет. Главное правильно пиши сам, гугли, трать часы и дни на мелкие функции НО сделай сам, что бы полноценно понимать что к чему. Вся суть сводится к тому, что бы ты изучив ROADMAP который указан выше, вынес знания, которых хватит на создание и понимание пет-проектов с помощью которых познаешь суть разработки. Также на собесах любят когда есть портфолио в гугл плей.
>Где взять примеры проектов?
Можешь банально поискать на ютюбе или в телеграмме. Для примера:
1. Нужно хорошее знание Java/kotlin. 2. Понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии (уже androidx), shared preferences, SQLite, Handlers, Executors, Content-Providers, firebase. 3. Знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам) + гугловские поделки jetpack, понимания СОЛИД и других паттернов проектирования. 4. Базовое понимание что вообще такое Gradle. Рекомендую хорошенько изучить XML. 5. И хотя бы несколько готовых приложений.
upd: Также стоит прочекать вакансии в вашем городе и собрать самый часто используемый стек технологий и отталкиваться от него.
Незабывай изучать английский, потому что гуглить придётся именно на нем ибо информации в разы больше.
Сериалы и шоу, для того что бы увидеть полный список нужно купить подписку. Есть двойные субтитры RU/EN. Цена 300 рублей, но часто проходят акции 300 рублей за 2 месяца подписки. https://ororo.tv/ https://ororo.tv/ref/1835272 - реф ссылка. Указал потому что: Переход по Вашей ссылке дает пользователям бонус +10% ко времени их следующего абонемента.
Также советую полностью сменить язык интерфейса на всех устройствах.
>>1995209 А как ты собрался изучать новые фишки да и сабж в целом без англиша гуглить ответы на возникающие траблы на стэковерфлоу и прочее чудовище тупорылое, лол?
Эх, как же сложно всё в этом вашем Андроиде, я то думал вы тут шуточки шутите и клепаете несложные ui, но всё оказалось не так просто... Всё какое-то высокоуровневое, хочется как-то по полочкам разложить, а не просто юзать все эти обёртки, без понимания что там под капотом происходит. В гугл доках не очень подробно расписано, а может я просто долбоеб и не там смотрю. Вот щас пилю "учебный" какой-то проджект, пытаюсь понять как работают Байндеры в Сервисах, понятно чуть менее, чем нихера.
>>1995774 А че тут понимать? Binder - API для твоего сервиса. Удобный способ взаимодействия. Можно устраивать пердолинг с Brodcast reciever, Messages и прочей залупой, а можно использовать Binder. Все зависит от задач, которые должен решать сервис. Разберись с жизненным циклом сервиса как следует и все остальное станет на свои места сразу
Сап, анон. Пытаюсь вкатиться в андроид самостоятельно, студент вуза. Можно ли собрать себе парочку пет проектов для вката на место джуна, ну или копейку какую с них поиметь на ПМ? Как сейчас с этим дела на рынке?
Аноны, нужна поддержка с воздуха! Подскажите, можно ли используя Retrofit спарсить только нужное поле из JSON объекта не воссоздавая структуру всего жсона?
Понимаю что описал как ебалан, сейчас дам пример. На пике JSON из которого мне нужен только список "similar". Класс для каждого элемента этого списка я уже создал (пик 2).
Вопрос - как мне скипнуть парсинг всей верхней части файла и взять из него только список список "similar"? Неужели все таки придется каждое поле описывать, даже те, которые мне не нужны?
Объясните глупенькому. Есть фрагмент в нем мапвью и кнопки по клику, стартует трек локации+фореграунд сервис. Изменение ориентации обрабатывается нормально, при сохранении трека или его остановки, возвращает на фрагмент с списком этих трех, и если снова перевернуть экран будет нпе в сайвинстатстайте мапвью. Фрагмент с трекм https://pastebin.com/zLKNscqe Фрагмент с списком https://pastebin.com/WR7EkFv0
помогите начинающему компьютерщеку. проблема такая - нужно чтобы appium запускал firefox браузер на андройд эмуляторе. в pycharm вижу ошибку пикрил, нужно значит в переменную окружения добавить этот гекодрайвер, но я ума не приложу как это сделать. не хватает прав доступа. пишут adb shell, потом su в терминале - не работает. с root такая же фигня. перевернул весь инет, но запускаться мазила не хочет. с хромом же все просто (второй пикрил). https://github.com/mozilla/geckodriver/releases/tag/v0.29.1 нужно ли инсталлировать этот гекодрайвер или просто разместить где нибудь на устройстве. как перманентно добавить путь к этому геко в PATH? может кто то сталкивался помогите
>>1999280 Ну дык тут формошлепства и верстки хмл процентов 10 от силы только убермиргиналы нахуеверчивают сложный интерфейс. Все остальное - это логика приложения самого, работа с сетевым стэком, БД если ты еблан и не смог обойтись без БД, нахуеверчивание сервисов, многопоточности и прочего для этих целей. Вообще посох пойму, откуда высралась эта мантра про фронтендеров в Android разработке? Это такой же кодинг прикладных приложений и игр, только под мобильное устройство, лол
>>1999326 >Ну дык тут формошлепства и верстки хмл процентов 10 от силы Ну так написание UI не заканчивается хмл, еще надо дохуя всего, активити, фрагменты, адаптеры, презентеры, вьюмоделы, валидаторы всякие, и т.д. Это не говоря о том, что надо это все состыковать с собственно бизнес логикой, а бизнес логику подвязать к данным. Вот на эту рутину в общем то все и уходит >работа с сетевым стэком Какая работа нахуй? В интерфейсе ретрофита один метод написать? >нахуеверчивание сервисов Фореграунд сервисы уже редкий кейс, а обычные сервисы так вообще хуй помнит когда последний раз приходилось писать. Ну JobIntentService еще раз в полгода может. >многопоточности Ну-ка давай, расскажи какая у тебя там многопоточность? .observeOn(Schedulers.io()) - это не многопоточность >Это такой же кодинг прикладных приложений и игр, только под мобильное устройство, лол Да, только логики там крайне мало. Собрать данные с нескольких эндпоинтов кривого бэка - это не логика, а хуйня из под коня.
>>1999584 Не то чтобы прям плохо, но не слишком секьюрно на клиенте что-то хранить, только не очень важные данные. Если ты финтех прилагу пишешь, то врядли ты кладешь номера счетов юзеров, и тому подобное в локальную бд
>>1999583 Ебасосина, если ты ваяешь хуету из под ногтей для отрисовывания говносайта в мобилу, то это именно так. Но я говорю про ПРИКЛАДНОЕ приложение, а не прослойку между пальцем пользователя и бекендом твоего говносайта, для которого ты вояешь вонючий клиент
>>1999623 К чему прикладное нахуй, к твоей губе? Примеры "прикладных". Я писал прилаги в разных областях, в т.ч. ride hailing и финтех, и для всего этого это было справедливо
>>1999228 Так понятней? Какого хуя вылетает исключения, связанное с сохранением состояния mapView фрагмента в котором создается трек, при отображении списка всех треков.
Как я это вижу - действительно принято почему-то из мобайла делать тонкую ЮИ прослойку, всю логику выносить на сервер сайд.
С другой стороны - если пилить пет-проекты, вполне реально многие вещи реализовать на самом девайсе, вообще я за серверлесс архитектуру, вот это всё...
>>1999641 >Примеры "прикладных" Network Cell Info, GPS Test, Keepass2Android, RAR это что пришло в голову сразу + тучи различных файловых менеджеров и прочих утилит. Или ты про такое не думало, хуило комнатное, тупорылое?
>>2000164 Не думал, так как такое никто не пишет почти. Выдавать это за наиболее частовстречающиеся проекты - все равно, что сказать, что на джаве в основном пишут моды для майнкрафта
>>2000196 >так как такое никто не пишет почти Макак, ты понимаешь, что ты абсолютно бесполозное говно на этом рынке? Ты как был говном, когда формошлепил в параше какой-то, так ты им и остался, переметнувшись в андройд. Тупорогая копипаст-макака, лол. Максимум твоего скилла, наваять интерфейсную парашу по типу Инстаграмм-клиента, запутаться нахуй там и эпично залочить поворот экран и масштабирование интерфеса честно, я сам охуел, когда первый раз увидел ЭТО поделье от инсты. Этож каких ослоебов они у себя держат в качестве кодеров. Даже говнотвиттер смог сделать норм клиент для своего дерьма, чтоб не было так сложна, лол. >все равно, что сказать Ты себя слишишь? Если ты тупой и можешь только в UI и прослойко-клиенты, это же совершенно не значит, что других приложений не существует, лол
>>2000167 Так сказать нахуй, что-то писать, если даже код не смотреть? или тот же скриншот. У меня все соответствующие методы переопределены для mapView. Они отрабатывают нормально. Кроме случая, когда я сохраняю или отменяю трек, возвращаясь на экран со списком, если сохранил-то он будет виден. И если перевернуть опять будь исключение в методе mapView.onSaveInstanceState(outState)
>>1994880 (OP) Почему я получаю это говно? Attempt to invoke virtual method 'double org.osmdroid.views.overlay.LinearRing.getDistance()' on a null object reference
Я через ViewModel передаю объект в активити из фрагмента. С текстовыми полями объекат все норм. Но когда я пытаюсь получить дистанцию из поля то получаю это говно. Я думал там может null, но нет, я прроверил, поле объекта не null. Но получить дистанцию я не могу. Почему так нахуй
viewModel = new ViewModelProvider(RegistrationActivity.this).get(ItemViewModel.class); viewModel.getUserDriver().observe(this, o -> { user = o; Toast toast = Toast.makeText(this, String.valueOf(user.getPolyline().getDistance()), Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); });
Другие поля, текстовые, у user выводятся. А с типом Polyline ошибка. Я пробовал String.valueOf(user.getPolyline()) и он выводи выводи объект типа Polyline@ там, не null, короче.
>>2000299 А как его может не быть? Я на предыдущем шаге проверял, у него есть distance. Потом его передаю в ViewModel, а оттуда он возвращается каким-то другим что ли?
>>2000231 Давай мы тут еще за тебя твой проект состряпаем может? Ты там сосвсем охуел, мудило? Тут никто не собирается за тебя делать твою работу. Тут аноны могут натолкнуть на мысль, подсказать где почитать, а не разбираться в километрах копипаст-говнокода очередной сумасшедшей макаки, прекочевавшей из формошлепства в Андройд
>>2000288 > и он выводи выводи объект типа Polyline@ там, не null, короче Ты дебил или прикалываешься? Если объект не null то с хуя-ли все его остальные поля должны быть не null? С какими данными работает твой говнометод getDistance()? Какого хуя он генерит исключение?
>>2000365 Polyline - это из библиотеки osmdroid. GetDistance возвращает double. Перед тем как засунуть его в ViewModel я проверяю его и с ним все хорошо, getDistance работает. А после вытаскивания не работает. При том с остальными строковыми полями все ок.
>>2000366 Что возвращает user.getPolyline() в обсервере? Ты в состоянии поставить бряк в этом ебучем обсервере и сделать Evaluate на user после его присваивания, а потом проделать user.getPolyline() в онке Evaluate? Тем самым узнать, что пошло не так с объектом. Или это настолько трудно для твоего зумерячего мозга, блядь?
viewModel = new ViewModelProvider(requireActivity()).get(ItemViewModel.class); viewModel.getRoute().observe(requireActivity(), o -> { route = o; //тут роуту присовился объект, все ок. }); //тут в route снова пусто. Почему так?
>>2000349 Нахуй ты так общаешься, животное ебаное. С хуя ли ты решил, что это моя работа, дура объебаная? Это просто обучающий проект, делаю его для себя. Нигде не упоминал, что являюсь экспертом. Соответственно пока, что не в силах понять почему так происходит. Если тебе в падлу, что-либо делать так пройди мимо, нахуй ты мне здесь предъявляешь не обосновано?
>>2000374 Блин, че получается что глоабльную переменную класса я не могу изменить из лямбды? В этом дело? Но ошибки Идея не выдавала. Блять. Мне всего-лишь надо передать значение из фрагмента в другой фрагмент и записать его там в переменную. Почему это так сложно сделать. Помогите
>>2000435 Ничего не понимаю, что тебе надо. viewModel можно использовать для передачи данных между фрагментами. Их можно использовать в качестве общего класса для данных. Не обязательно использовать при этом liveData, если она тебе не нужна. Вот лаба https://developer.android.com/codelabs/basic-android-kotlin-training-navigation-backstack#0 Она вроде не полная, не помню. Там вроде есть полный этап создания этого приложения. Можешь поискать
>>2000444 Ты хотя бы читай подсказки IDE, ты же во втором случае не инициализировал. В первом работает, потому что в java поля буду инициализированы стандартными значениями, для ссылочных - null.
>>2000501 Ну мне надо из одного фрагмента передать объект Polyline в другой фрагмент, в котором будет создан объект юзера в который будет записан этот Polyline. Но как мне это сделать? Почему со скринов выше в глобальную переменную не записывается значение? И.е. внутри той лямбы все ок. Когда потом вызываю этот route и там пусто.
>>2000501 Подскажи пожалуйста почему вот тут нихуя не происходит? Т.е. присовения не произошло. Потом когда я пытаюсь обратиться к переменной route вылетает NPE
У меня есть подозрение, что ссылка присваивается, вот только ссылка ведет в никуда. Там где был объект в памяти его уже нету. Почему так происходит? Эти же viewModel цепляются к активити, а она никуда не делась. Что происходит?
>>2000230 По говору, ты токсичная чсвшная мразь, с которой никто, даже в команде людей, которые не только «прослойки» для бекенда делают, долго работать не будет. Чао, пока.
>>2000164 >Network Cell Info, GPS Test, Keepass2Android, RAR Хаха, тупое говно обличает самого себя. Если ты не можешь в красивые анимашки и няшные компоненты, то ты легко заменяешься крестухом, которого стоит посадить на 2 недели за Андроид и он наваяет 100500 "прикладных" реализаций.
>>2000670 Ты походу, дебил, причем отбитый. Причем тут анимашки, компоненты и прикладное программирование? Ты там от формошлепства совсем уже кукухой поехал? Какие, нахуй, крестухи? Какой еблан будет сажать Си кодера на... Андройд? Не, ты не дебил, ты ебнутый, блядь. Такого хуйлана надо на хуй гнать из любого вида разработки санными тряпками в Пятерочку, макароны по полкам раскладывать, лол
>>2000699 >Какой еблан будет сажать Си кодера на... Андройд? Лол, запросто. Нормальный крестух пи реализации задачи в ПрИкЛаДнОм ПуХрОмИрОвАнНиИ как два пальца обоссать разберётся, как на джаве / кокотлине что-то такое реализовать.
>>2000501 Братишка, ну и как мне передавать данные из одного фрагмента в другой с этими viewModel если получается я не могу данные никуда дальше вызова метода getвынести. Мне чё теперь всю логику пихать в этот гет?
>>2000699 У тебя хуй пойми какое понимание слова "прикладное". Формошлепство это и есть "прикладное", так как выходным продуктом является "приложение". Противоположность прикладному - системное. А ты у себя в голове выдумал хуету какую-то
>>2000731 >не могу данные никуда дальше вызова метода getвынести. Мне чё теперь всю логику пихать в этот гет? Что это значит? Какую логику, ты их используешь только для получения неких данных с другого фрагмента. Мимо
>>2000825 Так неча постить больше. В одном Фрагменте на карте делаю маршрут. Потом передаю его в другой фрагмент в котором поля текстовые для заполнения. Я хотел из фрагмента с картой эту линию передать в второй фрагмент и там его в конструктор класса юзера запихнуть. А тут выходит я дальше вызова get из viewModel никуда не могу его передать. Я хотел записывать его в поле класса например. Как это сделать можно?
>>2000838 Может эта твоя хуйня внутри привязана к жц твоего фрагмента и distance у нее очищается, когда ты ушел с фрагмента? Попробуй не передавать сам этот компонент, а создай отдельную модельку, в которую запихни все, что тебе надо от того компонента
>>2000861 Блять, анон ты уверен что прогерство это твоё? Просто блять возьми создай статический экземпляр polyline в активити классе и прежде чем менять свои фрагменты передавай значение ployline в этот статичный экзепляр, а после замены фрагмента читай polyline свой от статичного. Если будет работать значит этот анон >>2000857 прав. Как можно на полном серьезе за несколько дней не разобраться с одной ошибкой, и не сделать так чтобы она работала хотя бы через костыль.
>>2000861 >не могут перестать существовать Т.е. ты вместо того чтобы проверить теорию, говоришь "все должно работать, мне похуй. Почему не работает, я же ему сказал должно работать!!!!1!1111" С таким подходом тебе не стоит продолжать свои изыскания.
>>2000887 Ну на скринах видно как viewModel создаётся. Ему передается Активити через requireActivity(). Суть вьюМодла как раз в том что это хранилище данных которые привязано к жц основной Активити. Ну так в документации написано.
>>2000888 >>viewModel = new >>ViewModelProvider(requireActivity()).get(ItemViewModel.class);
Читаем документацию: >>ViewModelProviders () >>Этот конструктор устарел на уровне API 1.1.0. >>Этот класс не должен создаваться напрямую.
Анон с двача: "пук среньк почему null, я же читал документацию"
Начни с того чтобы нормально определить свою view Model: viewModel = new ViewModelProvider.of(requireActivity()).get(ItemViewModel.class); А дальше сам давай.
Уважаемые аноны, добрый день. Вот решил попробовать себя в новой сфере. Насколько быстро можно вкатиться в жабу и андроид разработку, если за плечами имеется двухгодовалый опыт разработки на C/C++?
>>2001203 Анон, ты задаешь концептуальный, блядь, вопрос. Мы тут что, Ванги все, нахуй? Хуй знает, что у тебя за высероигра, хуй знает есть ли вней персонализация игроков, хуй знает, как организована игра, хуй знает есть ли в ней онлайн оставляющая, и еще сто раз хуй его знает, блядь. Че за уебанские вопросы из разряда, как обьять необьятное, сука?
>>2001669 Читал, но ещё видел множество жалоб на то, что со сканом паспорта отказывали, поэтому есть желание отправлять фото заграна. Да и спрашиваю я у тех, кто лично проходил процедуру подтверждения, а не у вкатунов залётных.
Аноны, я к вам с совершенно невероятным вопросом. Есть одно апк приложение от блютус вибратора. Дело в том, что с недавнего времени оно перестало работать. Для его работы требуется зайти и авторизоваться на сайте китайской конторы, сама контора как и сайт благополучно отъехали. Существует ли теоретическая возможность разобрать апк и переделать его таким образом, чтобы он работал только как пульт управления? Выпилить всю эту онлайн составляющую и вырезать эти онлайн поверки? Сам я не программист, просто интересно, можно ли в теории такое провернуть.
>>2001749 Так я тебе и пишу, как анон с аккаунтом в Гугл плей, ебанатина. всегда поражали уникумы, у которых ВСЕГДА есть свое мнение и туча отговорок на все, хотя им дают КОНКРЕТНЫЕ, блядь, инструкции, что и как делать
>>2002016 Посмотрел. Либо ищи приложение, с помощью которого сможешь приконнектиться к девайсу, либо просто купи новую игрушку. Даже ios версию выпилили из стора, возиться с этим нет никакого смысла.
Хелп, есть приложуха с CollapsingToolbarLayout, все работает как надо, когда кручу скролл тулбар закрвыается. Но когда тяну за RecyclerView( он горизонтальный), то тулбар не закрывается, а скрол прокручивается вниз
У меня так и не вышло нихуя. Я все еще не понимаю, почему я ловлю NPE.
Вот допустим тут я записываю данные в viewModel. viewModel = new ViewModelProvider(requireActivity()).get(RegistrationActivityViewModel.class); viewModel.setLine(route); viewModel.test = 777;
Все ок, получаю distance. Далее сворачиваю текущий Фрагмент, возвращаюсь к предыдущему.
В нем снова дергаю линию эту, дистанцию и получаю NPE Toast toast1 = Toast.makeText(requireActivity(), String.valueOf(viewModel.getLine().getDistance()), Toast.LENGTH_SHORT); toast1.setGravity(Gravity.CENTER, 0, 0); toast1.show();
При этом, viewModel.test = 777 есть и работает, NPE не кидает.
>>2002886 Тут всё упирается в возможность подключиться к девайсу, т.е. в его видимость для внешних устройств. Если есть возможность, может подойти и любое другое приложение, либо некое универсальное, которое обращается к тому же интерфейсу, что и оригинальное приложение. Увы, чего-то конкретного посоветовать тут нельзя.
Аноны, хорошего дня вам. Вкатываюсь потихоньку в Android.
Подскажите на счет кое-чего. Вот есть у меня Room в проекте. Я с сервера подтягиваю List объектов и хочу сохранить его в бд. Сейчас я от греха подальше перед сохранением списка этих объектов полностью удаляю все что уже есть в таблице и уже потом вношу новые данные. Все это в транзакции.
Вопрос такой: А есть ли смысл вообще делать @Delete перед @Insert, если в @Insert прописано OnConflictStrategy.REPLACE ?
Каким образом Room вообще понимает что объект который ему передали в функцию с @Delete это именно нужная запись в таблице? По PrimaryKey?
Получается если я, к примеру, сохраню объект с ключом (пусть это будет ID) = 1 в бд. После чего данные на сервере почему-то изменятся и у того же объекта станет ID = 2. Если я не буду делать @Delete перед сохранением того что вытащил с сервера в бд, то OnConflictStrategy.REPLACE не сработает (потому что ключи разные стали) и у меня по сути будут храниться два одинаковых объекта, но с разным ID. Причем один из них (сохраненный первым, у которого ID = 1) будет вообще неактуальным потому что на сервере его уже нет.
>>2003286 У тебя каша в рассуждениях. ID это суррогатный ключ, он генерируется и в скулайте на мобилке и на бекенде независимо. Бекенд ID сохраняй в отбельной ячейке напр backend_id Иль нормально объясняй что тебе надо
>>2003286 Сервер и клиент используют разные бд(возможно и иное, но раз речь идёт про Рум, это очевидно) Если уникальным полем является только primary key, стратегия ничего не будет делать, т.к. id инкрементируется или генерируется для каждой новой записи. Если есть другие уникальные поля, к примеру, номер телефона, insert заменит существующую запись.
>>2003043 Cпасибо за ответ. Не думал, что там может быть привязано, т.к. не передавал при создании ничего. Ну линия и линия, чего ей привязываться. >>2003246 Ты че такой злой? Это мое первое приложение на андроиде.
Хочу обеспечить работу начиная с API 23 и до 30. Мне нужно сохранить изображение в папку Pictures.
Вопрос следующий. Правильно понимаю что гугл начиная с API 29 все перелопатили и теперь с API 29 нельзя просто так взять и сохранить что мне надо в папочку как раньше.
Получается единственный вариант достучаться до External storage для меня это проверять версию API клиента.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) -- Используем Scoped storage --
else
-- Использовать getExternalStoragePublicDirectory() который deprecated. Терпеть и не ныть. --
>>2005941 Не знаю как в треде принято кидать семплы кода, так что кину просто так. Я делаю это вот так. И все примеры что я находил делались точно так же. Проблема в том, что getExternalStoragePublicDirectory из else кейса (когда у нас API < 29) помечена как deprecated потому что у меня minSdkVersion=21 и targetSdkVersion=30, а ее как раз в API 29 депрекейтнули. Вот я и ищу способ как не тащить за собой deprecated говно, а чем-то заменить его. Неужто гугл просто забили хуй на API 21-28 когда меняли в 29 процесс доступа к памяти.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { val contentValues = ContentValues().apply { put(MediaStore.MediaColumns.DISPLAY_NAME, fileName) put(MediaStore.MediaColumns.MIME_TYPE, fileType) put(MediaStore.MediaColumns.RELATIVE_PATH, "${Environment.DIRECTORY_PICTURES}/$folder") }
context.contentResolver.let { it.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)?.let { uri -> it.openOutputStream(uri)?.let(write) } } } else { val imagesDir = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) .toString() + File.separator + folder val file = File(imagesDir) if (!file.exists()) { file.mkdir() } val image = File(imagesDir, fileName) write(FileOutputStream(image)) }
Юзай депрекейтед, у гугла постоянно что-то устаревает. как же они заебали.. Теперь у нас новая свистелка-перделка, прочитайте очередную доку как это сделать, и ничего страшного что вам придётся всё переписывать, теперь то мы точно запилили как надо!
>>2006020 Только проблема в том, что они нахрен поудаляют приложения с targetSdkVersion=30 из Google Play у которых будут функции Legacy доступа к файлам и папкам:
Developers with apps on devices running Android 11+ must use Scoped Storage to give users better access control over their device storage. To release your app on Android 11 or newer after May 5th, you must either:
Update your app to use more privacy friendly best practices, such as the Storage Access Framework or Media Store API Update your app to declare the All files access (MANAGE_EXTERNAL_STORAGE) permission in the manifest file, and complete the All files access permission declaration in Play Console from May 5th Remove the All files access permission from your app entirely For apps targeting Android 11, the requestLegacyExternalStorage flag will be ignored. You must use the All files access permission to retain broad access.
Apps requesting access to the All files access permission without a permitted use will be removed from Google Play, and you won't be able to publish updates.
Хелп, скачал проект, не могу скомпилить. Студия пишет, что версия gradle слишком старая и предлагает запихнуть в wrapper, но это не то. Суть в том, что gradle нужен более свежий, чем есть (в настройках или на компе - пока хз). Пробовал кучу советов со stackoverflow, начиная с поставить последнюю версию плагина gradle в студию, заканчивая изменением версии в gradle.build и в настройках проекта, но ничего не помогает. Единственное, что изменилось - версия gradle в тексте ошибки стала 7.0, а была 6.5, но там же пишет, что до сих пор используется 6.1.1. Подскажите, что делать, уже несколько дней мучаюсь.
>>1994880 (OP) Я смотрю Flutter начинает проскакивать чаще у ведрокодеров и даже на линуксе. Какие перспективы у этого говна? Я надеюсь оно никогда не станет основой? Просто люто ненавижу его, Flutter у меня в черном списке рядом с растом.
>>2006247 Конечно, вот. Вчера не было доступа к компу с проектом. > Starting Gradle Daemon... Gradle Daemon started in 3 s 311 ms
FAILURE: Build failed with an exception.
Where: Build file '/app/build.gradle' line: 1
What went wrong: A problem occurred evaluating project ':app'. > Failed to apply plugin [id 'com.android.internal.version-check'] > Minimum supported Gradle version is 6.5. Current version is 6.1.1. If using the gradle wrapper, try editing the distributionUrl in /gradle/wrapper/gradle-wrapper.properties to gradle-6.5-all.zip
Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
>>2006485 П.С: теперь студия пишет, что мне неплохо бы обновить плагин gradle до последней версии. Также автоматически создались файлы gradle-wrapper'а, что, как я понимаю, не лучший вариант для последующей разработки. Есть ли какой-нибудь нормальный способ обновить версию gradle внутри самого проекта?
>>2006489 Также в build.gradle изменилась настройка classpath 'com.android.tools.build:gradle:4.0.2' хотя в оригинальном проекте была версия 4.1.1, после отката к последнему коммиту проект снова не собирается с той же ошибкой, так что я временно вернулся к 4.0.2 (держу в курсе)
>>2006491 Я тебе больше скажу, ты еще охуеешь и не раз, когда попытаешься appBundle создать для публикации в Google Play, когда Gradle будет срать тебе ну очень информативными ошибками по типу "other has different 'Root'" тут как минимум +100500 возможных вариантов гуглится. Остается угадать, какой твой, лол. Вот тут у тебя пердак точно улетит в стратосферу. Это я еще молчу, когда Gradle найдет у тебя при сборке deprecated методы и функции, например. Так что готовь пердак к полетам, анон
>>1994880 (OP) Такой вопрос. Есть опыт разработки на C# (включая .net5), могу в WPF на достаточно приличном уровне. А как вкатиться? Открываю все курсы и там СЕЙЧАС МЫ БУДЕТ В ДИЗАЙНЕРЕ ДВИГАТЬ ТЕКСТБОКСЫ пук сереньк. Заканчивают примерно на том же. Как вкатиться в ваши андроиды не с нулевым опытом программирования. И ещё такой вопрос. Вот при разработке на WPF принято использовать MVVM как архитектурный паттерн (благо wpf под это и заточен), а что там с архитектурой андроид приложений? Куда читать об этом?
>>2006555 Скачай в лицензионном магазине CD дисков курс М.Русакова по разработке в ведре. Он хоть и простой, но очень информативный. Если ты не полный осел, то затащишь после этого курса на изи. Потом, там же качни курс от Специалиста Разработка мобильных приложений по ведройд. Этот покруче будет. Ищи книги, статьи по архитектуре ведра. Их навалом
>>2006916 Это разные вещи вообще. Flutter - кроссплатформенный фреймворк для написания приложений, Compose - нативный фреймворк для написания UI нативных android приложений. jetbrains compose в расчет не берем Compose в нативе точно станет основой, но еще не скоро, как бы не кукарекала хипстота.
>>2006520 Блять, спасибо анон, утешил, недавно тут пытался старый проект перетащить на андроидх, тоже столько с грэдлом этим ебался и сборками. Как же весело будет когда наконец запилю пет-проект в плеймаркет, представляю! мимо-другой-анон
>>2007227 Если бы я сейчас хотел вкатиться с нуля, при этом уже зная какой пиздец меня ждёт, я бы просто скипнул этот вариант, скипнул эту карьерную ветку. Но если ты упругий зумер - лучше уж так проебать неск. лет жизни, чем на тусовочки и тик-ток.
Анончики! Есть предложение для желающих заработать некоторую сумму.
Предыстория. Я пинал хуи вместо учебы Я был слишком занят на работе и мне тупо было некогда учиться. Мне нужно в учебных целях написать небольшое приложение на андроиде типа для тестирования телефона. Выглядеть должно примерно так: Интерфейс логина, типа 2-3 пользователя со своими паролями, Далек 6-8 кнопочек, по нажатию которые ТИПА тестируется та или иная функция. Ну типа там вибро пожужжать, динамиком попикать, камеру открыть, если возможно, то глядишь и открыть какую-нибудь функцию из инженерного меню. (Это все для телефонов сяоми нужно, там по ##6484## есть вообще все что нужно, теперь бы ссылки на функции этой инженерки затолкать в мою "типа приложуху" и будет отлично). В каждом тесте кнопка "ОКДА" и "ВСЕ ХУЙНЯ". Ну и сохранение общего отчета с имеем телефона и списком тестов "ОКДА" и "ВСЕ ХУЙНЯ". Жду ваших предложений в тележку @Cyber_P Прошу перед этим отписать на этот пост что-нибудь и мне ссылку кидать в телегу, чтобы знал что это почетный "300К_в_наносекунду_прогромизд" пишет, а не залетный хуй.
>>2007658 Про интерфейс логина, блядь, про какую-то хуйню, про айфоны. Че ты несешь-то вообще? Ты можешь за... Gradle, блядь, начнет ошибками срать, блядь. Чего, блядь? Про что несёт? Вообще охуеть.
Отдельного яблотреда не нашел, спрошу тут вдруг вы знаете:
Какой есть халявный или недорогой сервис деплоя кроссплатформы (ионик и реактнатив) в яблостор без мака? Гугл усиленно предлагает кодмаджик, какие у него подводные/альтернативы?
>>2008001 А если все-таки без мака? Я его в глаза не видел, но, зная, насколько кончено устроен айфон и его инфраструктура на нормальных осях, боюсь даже пятиметровой палкой тыкать.
>>2008003 Они предлагают юзать Storage Access Framework or Media Store API Для лютейшего старья юзать Storage Access Framework, т.к. он доступен вплоть до ведра версии 4.4 (19 API)
>>2008020 Да, я юзаю инструменты, которые интуитивны, и не требуют никаких доп знаний. Яблоки контринтуитивны, и требуют нахуй больше больше нигде не нужных знаний. И в чем проблема?
>>2008028 >Яблоки контринтуитивны Ну, анон, а то, что у огрызков надо ежегодно платить за девелоперский акк в отличии от разового депозита у андроид господ, тебя совсем не смущает, да?
Моя прога в Google play имеет по 100 инсталлов в день и, сука, по 95 юнинисталов так же в день в среднем. Т.е. всего 5 инсталлов приоста в день. ANR и прочего нет. На отзывы отвечаю. Баги фикшу в течении пары дней если находятся, нахуй. Как узнать, что этим пидарасам, кто ставит прогу, не нравится? Как фиксить ситуевину, аноны? прога - тулза для автоматизации
>>2008144 Скорее всего у тебя сбивающее с толку мутное описание приложухи. Или в описании обещания того чего нет. Или в описании есть что-то что может привлечь не разбирающихся в сути дела мимокроков, но в самом приложении нет кнопки сделать заебись, которая им нужна
>>2008159 Я это ожидал и сделал максимально информативное название и подробнейшее описание самой проги. В проге есть подробная справка, все как надо, короче. И в разделе она лежит соответствующем. Нет гневных отзывов. Просто установки == удаления. Меня это обескураживает ладно хоть счетчик на странице накручивает. Ведь гугль плей не учитывает удаления а только установки, лол
>>1994880 (OP) Как с фрагментацией апи жить? Хочется писать под 30 апи, но ведь столько нищуков, что по сути пишешь для себя. А androidx.core кусок недокументированного говна - всё работает не так как на 30 апи. Можно, конечно, через ифы ебашить сразу под старый и новый апи, но это пиздец нудно. Таргет на какой-нибудь 26 ставить и писать под отсталый апи - вообще пиздос. Как быть? Как обычно делают? Склоняюсь к тому чтобы просто поставить минимальный апи в 30 и ебись оно в рот. Уже же все выпущенные за последний год телефоны получили 11 ведро.
>>2009038 Поддвачну этого хуя>>2009039 Для обычной прилаги вообще нет разницы, под какое апи хуярить. Ну только если ты не решил какие-то новомодные фичи спиженные у индусов в интерфейсе, как паравило, заюзать. Но тут ты знал на что шел. А если копипастить говно код, который, к примеру, сохраняет файлы на прямую в ФС, минуя реквест у пользака, то конечно земля тебе обернется стекловатой в итоге
>>2009048 Так вот я и собрался писать под свежее ведро с упором на интерфейс. С Compose и свистоперделками. Пока поставил минимальный на 26 и пиздец пердолинг. Приходится изобретать велосипед на каждый пук и гуглить как же заменить одну строчку из 30 апи. А ещё не всегда бывает понятно как jetpack пришить к старым апи, документации вообще ноль по свежим фичам на старых апи через совместимость. Есть androidx и ебись как хочешь, причём ещё бывает не понятно это баг альфы или я дебил. Так же интересует вопрос про кучу deprecated говна. Насколько безопасно им пользоваться, когда студия в истерике зачёркивает строчки? Насколько адекватный вариант написать под 30, а потом уже рефакторить и понижаться на старые апи, если захочется?
>>2009069 deprecated вообще нельзя юзать. Студия просто не даст тебе собрать appBundle для Google Play, лол >написать под 30, а потом уже рефакторить и понижаться А что мешеат сразу разобрать вопрос, для какой минимальной версии ведра подойдет твой высер и не заниматься хуетой?
>>1994880 (OP) Дублирую из нюфаг треда. Есть сервер на flask. На сервере в папке хранятся файлы в форматах doc,docx,pdf,xml. Есть андроид приложение, которое должно закачать эти файлы. Запросы на логин и т.д я делал при помощи Volley, а для закачки файлов хочу использовать DownloadManager. Вопрос, нужно ли мне на сервере прописывать маршрут и метод для отправки файлов, или достаточно указать нужный адрес менеджеру, и он сделает всё сам? Я, конечно, могу разобраться сам, но спрошу здесь
>>2009079 > deprecated вообще нельзя юзать. Студия просто не даст тебе собрать appBundle для Google Play, лол У меня в приложении org.apache.http deprecated, но всё собралось, приложение в GP уже
>>2010080 А ты сам-то как думаешь? Спойлер: джуны нахуй никому не нужны, их берут на работу либо потому, что нет денег, либо потому, что денег дохуя и компания может просто инвестировать на когда нибудь.
>>2009587 Так тот анон пиздит и можно юзать депрекейтед?
>>2010171 Гугл те ещё петухи, но тащем-то самое охуенное что было в джаве всегда это обратная совместимость. Пусть поддерживают, суки, депрекейтед у них.
>>2010661 1. Студии похуй. Билд система посрет ворнингами но соберет нормально. 2. Если что-то деприкейтед, то оно деприкейтед для конкретных апи (условно 24 и выше, для 23 и ниже этот метод нихуя не деприкейтед). От того, что оно деприкейтед, оно внезапно не перестанет работать, если это специально не ломали через таргетсдк. Иначе бы каждая версия ведра не имела обратной совместимости. Приложения с Камера1 апи все еще работают, хоть она и деприкейтед. Нативные (не андроидх) фрагменты все еще работают, просто в них баги не чинят. АсинкТакски все еще работают и будут работать миллион лет, хоть они и деприкейтед.
Если есть возможность лучше не юзать, но зависит от твоего минсдк и какое именно апи ты хочешь юзать. Иногда у тебя физической возможности не будет не юзать депрекейтед методы, просто юзай недепрекейтед альтернативу на новых версиях и депрекейтед на тех, в которой альтернативы еще нет.
>>2010171 Чудик, ты когда 21 апи вышел с камера2 сразу из всех приложений выкинул камеру1? Ее же именно тогда сразу же задеприкейтили. Или все-таки пользовался ей, потому что у тебя минсдк был 14?
>>2010661 Можешь юзать, только потом не приползай сюда в соплях, когда твое говно неожиданно снесут на хуй из гугла. Ибо, предпосылки уже есть вот тут >>2006106
>>2010702 > сразу из всех приложений выкинул камеру1 Ебанат тупой, гугл не объявляет методы деприкейтед без добавления новых реализаций. Если ты тугой осел и не в состоянии понять, что не нужно использовать устаревшие методы, то земля тебе железобетоном
>>2010710 Во-первых, про флаг requestLegacyExternalStorage сразу предупреждали, что он временный. Во-вторых это исконно гуглплеевская залупа. Типо той, когда выпиливали все приложения с доступом к смс или аксесабилити сервису, хотя они нихуя не деприкейтед. На уровне андроида пермишн на память не деприкейтед и прекрасно работает.
>>2010713 Ты понять прочитанное в состоянии? Ну вот, задеприкейтили камера1, дали камера2. Как депрекейтед камеру1 выпилил с минсдк 14, охуенно? Или может все-таки нужно флагами обмазываться и юзать обе? только попробуй про житпак камеру заикнуться, конча
>>2010702 >Чудик, ты когда 21 апи вышел с камера2 сразу из всех приложений выкинул камеру1? Ее же именно тогда сразу же задеприкейтили. Или все-таки пользовался ей, потому что у тебя минсдк был 14? Он тогда пешком под стол ходил, забей
Привет. Делаю приложение. Там есть база Firebase.в которой хранится пользователь. Ну и при открытии приложения мне надо получить из пользователя данные некоторые - имя, фамилию. Как это правильнее сделать? Тянуть их из базы через интернет или хранить где-то локально на устройстве? А если нет сети, то что делать? Приложение в тыкву превратится в которой даже не посмотреть какие-то вещи, которые уже были записаны и не изменятся. Как лучше поступать в таких ситуациях?
>>2010702 Ну тут главный вопрос - чтобы пустили в стор, разумеется. Никому не хочется тратить кучу времени и запороться на финише и всё переделывать. В общем, анон всё грамотно расписал, добавить нечего. Работаем, братья!
>>2010718 >>2010763 Блядь, два обсоска мне тут пытаются доказать, что они не верблюды. Потешно ей богу. Можете и дальше юзать свои камеры1 и 2 в протухшем сушеном говне с апи ниже 23. Уже даже патчи на мусор меньше апи 23 не выпускаются официально, блдь, а они все мусолят это. Каково быть говном и ковыряться в говне, а уебки, лол?
Завтра собес. Ведро знал в идеале, но на 15-м апи, кодил в эклипсе. Что быстренько выучить за сутки, чтобы срать не очень жидко? Лучше видасиков на ютабе. Или кейвордов каких.
>>2012015 Вообще, я это делал для себя, быстро и грязно. Но раз это кому-то надо: https://files.catbox.moe/ocbl49.pdf - поправил форматирование, шрифты, немного поебался с картинками, вырезал упоминание телеги где мог, но все равно половина ссылок проебана. Но для оффлайн-чтения это норм.
>>2012563 Да я вообще мимо пролетал, вот сижу сейчас жду собеса, этот пост пишу. До этого полистал данный опросник, чтобы примерно представлять что там нынче происходит. Мало чего полезного узнал. Видимо придется изучать ваши новые джетпаки и рхуйжабу. Еще бы какой-то обзорчик по молодежным либам, а то я кроме сдк ничего не знаю (да и в общем-то презираю, в том числе саппорт-либы).
>>2012598 Ну если в SDK хорошо сечешь, то у тебя не возникнет вопросов, по типу, что это мой сервис падает, когда я выхожу из приложения, и почему приложение дико тупит, когда я подгружаю +100500 элементов в RecyclerView, например и как этого избежать. А это неоспаримое преимущество. А всякие хипстерские либы и фреймворки осваиваются за пару дней
>>2012652 > я подгружаю +100500 элементов в RecyclerView Проблема в том, что я не подгружаю ничего в RecyclerView, благо оно не является частью системы (напоминаю, у меня шел 2012-й год и только 15-е АПИ). Вместо этого я юзаю ListView и наследуюсь от ListAdaptor, все работает со скоростью света и не тормозит. И весит копейки. И зачем нужен RecyclerView я не понимаю (ведь в ListAdaptor.getView() тебе тоже приходит плейсхолдер от неиспользованного элемента и ты можешь его переиспользовать).
>А всякие хипстерские либы и фреймворки осваиваются за пару дней Я просто не знаю зачем они. А работодатели видят это и думают что у меня мало опыта.
>>2012714 Если элементов немного, то хоризонталскроллвью+линеарлайоут, если надо много, или сделать еще и очень красиво с анимациями и мокрыми письками - я не думая буду делать свою вьюху.
А вообще, на эту тему есть что-то и в стандартном листвью: 14,30,Landroid/widget/AbsListView;.canScrollHorizontally:(I)Z 1,30,Landroid/widget/AbsListView;.computeHorizontalScrollExtent:()I 1,30,Landroid/widget/AbsListView;.computeHorizontalScrollOffset:()I 1,30,Landroid/widget/AbsListView;.computeHorizontalScrollRange:()I 1,30,Landroid/widget/AbsListView;.dispatchKeyShortcutEvent:(Landroid/view/KeyEvent;)Z 1,30,Landroid/widget/AbsListView;.getHorizontalFadingEdgeLength:()I 1,30,Landroid/widget/AbsListView;.getHorizontalScrollbarHeight:()I 1,30,Landroid/widget/AbsListView;.isHorizontalFadingEdgeEnabled:()Z 1,30,Landroid/widget/AbsListView;.isHorizontalScrollBarEnabled:()Z 1,30,Landroid/widget/AbsListView;.onKeyShortcut:(ILandroid/view/KeyEvent;)Z 1,30,Landroid/widget/AbsListView;.setHorizontalFadingEdgeEnabled:(Z)V 1,30,Landroid/widget/AbsListView;.setHorizontalScrollBarEnabled:(Z)V 14,30,Landroid/widget/ExpandableListView;.canScrollHorizontally:(I)Z 1,30,Landroid/widget/ExpandableListView;.computeHorizontalScrollExtent:()I 1,30,Landroid/widget/ExpandableListView;.computeHorizontalScrollOffset:()I 1,30,Landroid/widget/ExpandableListView;.computeHorizontalScrollRange:()I 1,30,Landroid/widget/ExpandableListView;.dispatchKeyShortcutEvent:(Landroid/view/KeyEvent;)Z 1,30,Landroid/widget/ExpandableListView;.getHorizontalFadingEdgeLength:()I 1,30,Landroid/widget/ExpandableListView;.getHorizontalScrollbarHeight:()I 1,30,Landroid/widget/ExpandableListView;.isHorizontalFadingEdgeEnabled:()Z 1,30,Landroid/widget/ExpandableListView;.isHorizontalScrollBarEnabled:()Z 1,30,Landroid/widget/ExpandableListView;.onKeyShortcut:(ILandroid/view/KeyEvent;)Z 1,30,Landroid/widget/ExpandableListView;.setHorizontalFadingEdgeEnabled:(Z)V 1,30,Landroid/widget/ExpandableListView;.setHorizontalScrollBarEnabled:(Z)V 14,30,Landroid/widget/ListView;.canScrollHorizontally:(I)Z 1,30,Landroid/widget/ListView;.computeHorizontalScrollExtent:()I 1,30,Landroid/widget/ListView;.computeHorizontalScrollOffset:()I 1,30,Landroid/widget/ListView;.computeHorizontalScrollRange:()I 1,30,Landroid/widget/ListView;.dispatchKeyShortcutEvent:(Landroid/view/KeyEvent;)Z 1,30,Landroid/widget/ListView;.getHorizontalFadingEdgeLength:()I 1,30,Landroid/widget/ListView;.getHorizontalScrollbarHeight:()I 1,30,Landroid/widget/ListView;.isHorizontalFadingEdgeEnabled:()Z 1,30,Landroid/widget/ListView;.isHorizontalScrollBarEnabled:()Z 1,30,Landroid/widget/ListView;.onKeyShortcut:(ILandroid/view/KeyEvent;)Z 1,30,Landroid/widget/ListView;.setHorizontalFadingEdgeEnabled:(Z)V 1,30,Landroid/widget/ListView;.setHorizontalScrollBarEnabled:(Z)V
Если что - не пользовал, просто увидел что оно есть
>>2012769 Тебе стоит понять следующее: Гугл рекомендует использовать что-либо, потому что это что-то - 1) наиболее актуально в контексте экосистемы фреймворка, 2) оптимизировано, 3) протестировано. Всё это позволяет минимизировать вероятность столкновения с непредсказуемым поведением. Сомневаешься в производительности? Смотри бенчмарки. Опять же, это лишь рекомендации, поэтому, если нравится обмазываться кастомным дерьмом, никто не будет против, ведь хуже будет тому, кто обмазывается.
>>2012786 Извиняйте, я пока не стал адептом ведроида, перекатываюсь с нативной жабы и по-прежнему рвёт пердак от этой "удачной" экосистемы с кучей обёрток и хуйовой документацией, в кот. не объясняется что происходит под капотом.
>>2012795 Ну дык ты всегда могешь заглянуть под юбку и увидеть там хуй больше своего капот. Этого никто не запрещает. Или тебе надо разжевать и еще проглотить за тебя, дебич?
>>2012744 >Дядь, я б тебя не нанял Что мне сделать, чтобы стать лучше? Я реально никогда не сталкивался с такими задачами, потому бы сначала подрочил стандартный листвью, а потом бы навелосипедил свою вьюху.
>>2012795 Хочу тебе сказать, что документация под ведро достаточно хорошая, по сравнению с другими видами говен.
>>2012786 Гугль мне и НДК использовать не рекомендует. А вот заказчик боится, что его говно будут декомпилировать и хочет НДК. Угадай, кто мне деньги платит и кого я буду слушать?
>>2012883 >Гугль мне и НДК использовать не рекомендует Это где ты такое увидел? Так или иначе, НДК надо правильно готовить, это должно быть уместно. >его говно будут декомпилировать Неактуально. Спиздить идею выгоднее, чем декомпилировать, т.к. последнее слишком трудозатратно и не имеет смысла, ведь ничего принципиально нового там не найдешь.
Первое дело простое, с ним справится любой мимо-анон в этом треде, кто хоть немного шарит в теме. Работы буквально на 20-30 минут. Оплата по договоренности. Гаранты-хуянты если нужно тоже.
Есть 3 АПК файла с исходниками. Это три учебных задания одного ВУЗа, но не суть. Приложухи максимально простые, ничего кодить там не нужно, все уже есть, готово и работает.
Задача - просто немного изменить интерфейс. Блять, РЕАЛЬНО, скажем, текстовые поля из верхней части экрана переместить в среднюю и изменить фон с голубого на зеленый. Ну и пару строчек текста в коде поменять (даже не сам код! Там убрать фамилию прошлого автора и комменты своими словами переписать, чтоб выглядело по другому). Ну ты понял зачем это мне.
Дело второе сложное. 20-30 минутами не отделаешься, но и оплата СООТВЕТСТВУЮЩАЯ. Тут уже требуется написать задание уровнем посложнее. Это АПК приложение с некоторым функционалом, якобы для тестирования основных функций телефона. Нажал на кнопку - экран залился белым, нажал на другую, включилось вибро, нажал на третью, динамик запищал. И т.д.
Если заинтересован - пиши в телегу @Cyber_P Только сначала ответь на это сообщение как-нибудь и мне в телегу ссылку на пост, чтобы я знал что это не мимокрокодил, а анончик из треда.
>>2012915 Иди на хуй, уебан. Все твое говно, особенно второе гуглится на любом индусском сборнике рецептов по типу туториалпоинта за 5 минут. Копипасту и сам осилишь, уебок, блядь
>>2012980 Но ведь еблан тут ты. Мне похуй где это гуглится, у меня нет на это времени, но есть деньги, которые я готов отдать за эту хуйню даже такому еблану, как ты. Чуешь?
>>2012984 Я чую только, что ты хитрожопый пиздабол малолетний. Нахуй анону тянуть тебя за уши, неуча ебаного или хитрожопого пидараса, взявщего бабло с ленивого уебана изучающего разработку в шараге, за изготовление курсача?
>>2013001 Где тут пиздаболия? Есть работа, которую надо сделать и есть желание за нее заплатить, не более. Как угодно, хоть через Фл.ру оформить и там через гаранта.
>>2013009 Ну так пиздуй туда, сделай там заявку, тебе ее быстро икачественно запилят. Хули ты тут расшаркиваешься? Тут тебе не реквестов тред, ебанашка
>>2012915 А ну че, походу курсачи это. Первые 3 за 3к каждый, а второй, более козырный за 9к со скидкой, как быдлу с двача, так и быть возьму. Итого 15к и ты счастливый обладаетль 4х курсачей, лол
>>2012909 >Это где ты такое увидел? Ну как же, сам гугль говорит: "юзайте, когда иначе никак"
>Неактуально. Спиздить идею выгоднее, чем декомпилировать, т.к. последнее слишком трудозатратно и не имеет смысла, ведь ничего принципиально нового там не найдешь. Принципиально нового - нет. А вот интересного - да. Например, говнопротокол обмена говноданными с неким говнодевайсом, который хоть и говно, но на дороге не валяется.
>>2012984 200 баксов за первое задание, 500 за второе, оплата битками. Идет?
>>2013116 >200 баксов за первое задание, 500 за второе, оплата битками. Идет? Идет, как только ты распишешь ценообразование и я с ним соглашусь. Начни с этого скриншота и обоснуй стоимость этих действий.
>>2013164 >Это следует из самой сути NDK, Гугл тут ни при чём Можно поподробнее о сути? К примеру, злые птицы почти на 100% написаны на НДК, у них даже рекламные баннеры/трекеры и тому подобное говнище в виде НДК реализовано, а не в виде обычных модулей.
>>2013135 Перекрасить заголовок - $1 Перенести текст - $2 Испортнуть твои говноисходники, чтобы с ними работать - $95 Заебаться с банками и платежами, поднимая жопу - $100
>>2013206 >о сути Его стоит использовать в случае, если не можешь идиоматично реализовать функционал с помощью SDK, используя существующие высокоуровневые решения, либо если производительность слишком сильно страдает из-за огромного количества прокладок в виде абстракций и тянущихся за ними бесполезных компонентов. NDK сложно встроить в архитектуру приложения, потому что нативные модули неизбежно будут её узким местом. за исключением случаев, когда NDK предоставляет ключевой функционал, как в случае с играми
>>2013066 >>2013069 Слышь, хуесосина, тебе, видите-ли жопу лень поднять и сделать полтора телодвижения, но ты аж на двачи в хуй пойми какой полумертвый тред приполз ныть. На это у тебя время и силы нашлись, значит, а оплачивать телодвижения анонов по их расценкам, которые будут твой мусор разгребать, тратя свое драгоценное время ты отказываешься. В этом случае путь твой лежит на хуй, как и говорил мудрый анон выше
>>2013224 Давай, рассказывай про узкие места архитектуры приложений, мне очень интересно (без подъебок, так как я учился делать архитектуру именно на низком уровне). В случае игры, по заветам гугла, чтобы не проебсти перфоманс, нам надо на НДК писать только физику-рендер, а все остальное, особенно рекламные баннеры-трекеры уж точно писать на СДК.
А лично мне, чтобы не разбираться в километрах абстракций и прокладок, не думать что там в очередной раз может протекать, гораздо проще сразу нахуевертить нативно.
Вот еще одна смешная причина юзать НДК, да и как 10 лет назад, все свое носить с собой: 1,30,Landroid/graphics/Bitmap$CompressFormat;.JPEG:Landroid/graphics/Bitmap$CompressFormat; 1,30,Landroid/graphics/Bitmap$CompressFormat;.PNG:Landroid/graphics/Bitmap$CompressFormat; 14,30,Landroid/graphics/Bitmap$CompressFormat;.WEBP:Landroid/graphics/Bitmap$CompressFormat; 30,30,Landroid/graphics/Bitmap$CompressFormat;.WEBP_LOSSLESS:Landroid/graphics/Bitmap$CompressFormat; 30,30,Landroid/graphics/Bitmap$CompressFormat;.WEBP_LOSSY:Landroid/graphics/Bitmap$CompressFormat; Первое число - это минимальная версия АПИ, когда оно доступно. Если хочешь поддержать на старом железе, то или сосать, пока 30-ка будет у всех, или закатывать солнце вручную.
Еще смешной пример: я вот до сих пор тяну самодельный кодек для проигрывания mp3/aac, который работает везде и всегда, независимо от желаний вендоров или "системных кодеков". Я ебанутый? А виной тому был планшет, где, локальный файл aac проигрывался корректно, но этот же файл, выложенный на http (стриминг) играть уже принципиально не хотел, так как "кодеков нима".
Аноны, подскажите нубу, как сделать layout как на пикриле. Сверху у меня RecyclerView.
Я хочу чтобы при нажатии на любой из элементов recyclerView появлялось окошко внизу экрана, где будет написана инфа об элементе и кнопка чтобы перейти на фрагмент с детальным описанием элемента. Также нужен крестик в углу, который будет закрывать это окно.
Как запилить подобное окошечко? Это и не BottomSheetDialog, и не AlretDialog. Мне нужно чтобы остальная часть UI также продолжала работать и RecyclerVIew можно было продолжать скроллить без закрытия нижнего окна.
>>2013859 Внезапно кастом вью. Но вообще если поебаться с AlertDialog'ом, допускаю, что можно его в подобное превратить. Я когда-то через него делал нотификацию сверху о том что интернет пропал/появился с анимацией
>>2013859 Просто кусок лейаута с чем-то типа CardView, в котором отрисовывается информация о элементе с индексом n, нажатие на итем в ресайклере выставляет индекс во вьюмодели и переключает визибилити этому куску лейаута на visible, соответственно крестик на gone.
>>2013505 >узкие места архитектуры приложений Грубо говоря, ты получаешь кусок кода, который ебал в рот асинхронность, архитектурные ограничения, абстракцию и декомпозицию. >проще сразу нахуевертить нативно Хуевертить вообще проще, особенно для себя, если никто больше это не увидит и не будет с этим работать.
Рассудите аноны, нормально ли так вообще делать? Как это сказывается на ресурсах и т.п.? Получается же что по сути этот CardView будет постоянно лежать в лейауте. Или андройд настолько умный, что увидев visibility = gone даже не будет тратить время на этот кусок?
>>2014039 >Грубо говоря, ты получаешь кусок кода, который ебал в рот асинхронность, архитектурные ограничения, абстракцию и декомпозицию. Я получаю кусок кода, который ничего против асинхронности не имеет, у которого есть свои треды и корутины если надо, отсутствие ограничений - это круто, а что мешает абстракции и декомпозиции я не знаю, так как все это выглядит как самые обычные методы.
>>2014200 Я тоже бы так сделал, только на место КардВью можно по идее положить вообще что угодно, любой Лейаут. На производительности не скажется: будет сделан новый лейаут и внутри него все будет скроллиться очень быстро и красиво. При visibility = gone будет потрачено некоторое количество ресурсов, будут пересчитаны размеры виджетов, после чего о невидимом виджете никто знать не будет.
>>2014602 Поочередно? Может быть, еще и с анимацией? Если последнее, то LinearLayout не самый лучший вариант. А картинки у нас где? В ассетах, или в сети?
Спасибо за информацию анон. Подскажи еще пожалуйста. Допустим как бы ты реализовал появление подобного скрытого лейаута с анимацией?
Чтобы не просто visibility менялось, а например он выезжал снизу.
Мне в голову приходит только MotionLayout, но не знаю как отработает RecyclerView если я на него повешу ClickListener от MotionLayout-а. Мне же нужно чтобы окно появлялось при клике на элемент из RecyclerView, а не по клику на сам RecyclerView. Не знаю если ли разница.
>>2014706 Этот >>2014792 прав, анимации в Ведроиде сделаны так, что руками задавать тайминги и перехватывать события совершенно не надо. Просто рисуешь сцену так, какой она должна быть, в твоем случае просто дергаешь visibility, а в анимациях прописываешь все то, что хочешь видеть с этим элементом. А дальше оно само разберется.
В ранних версиях Андроида, когда нельзя было задать произвольные оффсеты на экране в рантайме, был трюк: сделать анимацию, допустим перемещения слева направо, а потом остановить ее на нужном %, где % - это и есть положение на экране.
>>2014985 я пришел в андроид студио из юнити, и там я такое проворачивал через функцию Instantiate() вдруг кто шарит, и я хочу сделать что-то подобное только уже в Android Studio. язык, кста, Java
Сап, котаны. Я вкатился несколько дней назад Сейчас в качестве нубообучения пытаюсь запилить приложение компас для смартфона. Вроде все делал по гайду из инета и даже обошел одну проблему (TYPE_ORIENTATION из гайда уже устарел, вместо него пришлось запиливать через TYPE_ACCELEROMETER, и TYPE_MAGNETIC_FIELD) Все норм, никаких ошибок в коде нет (ну красным не подчеркивает), тем не менее НИХУЯ не работает. Приложуха просто крашится в эмуляторе и все.
Хелоу. Я долбоёб и нуждаюсь в помощи. Заранее спасибо! Используя retrofit загружаю с api картинки в RecyclerView во фрагменте. Всё отображается, но только после нажатия на экран/пролистывания. Никаких событий для такого поведения, естественно, не прописано. Другие элементы интерфейса фрагмента видны сразу. Как это обрабатывать я не особо понимаю, ответ от api наверняка не мгновенный, но как это правильно отслеживать?
>>2007620 Грязь, гнида, мразь, который вкатился в работу из-за денег и которому похуй на ценности свободы и кастомизируемости. Есть один такой коллега. Заебал своими историями про крутость айфонов, маков и флаттера.
>>2014985 Просто назначай картинкам полученный drawable (setImageBitmap или подобное).
>>2015666 Если что-то крешится, то обычно принято прикладывать логи, так как там черном по белому обычно пишут ЧТО НЕ ТАК. Я конечно ща твой код потыкаю, но чтобы ты знал на будущее
>>2015908 По событию от ретрофита обновляй свой RecyclerView
Так как мне не дали ресурсов и манифеста, написал свой и заменил инициализацию. И все само заработало - дергается конечно, нихуя не разобрать, но ничего не вылетает. Вот код, если интересно: https://a.uguu.se/MOpMSkhd.txt
>>2008050 Может быть, поставили, попользовались и удалили потому что больше не нужна? Или ещё бывает, что ставят по нескольку одинаковых программ, пользуются одной и потом удаляют. Подумай над тем, чтобы поставить статистику внутрь приложения. Кто запускает, кто какими фичами пользуется и т.д.
>>2016145 Это анон, уже под сбор личных данных попадает. Политика у гугла нынче сурова в этом отношении. да и придется жопу порвать и шекели тратить на нахуеверчивание серверной части для сбора статы. У меня там реклама стоит. Я по ней стату смотрю кста. Я просто надумал рефакторинг интерфейса захуярить Насмотрелся модных выблядков по UI дизайну. Хочу чтоб рекламка имела больший охват и время непрерывного отображения, лол
>>2016389 В смысле, речь скорее всего про фаербейз аналитику, где ты можешь всё в коде триггерами обвешать и смотреть, чем пользуются, а чем не пользуются.
Аноны, есть тут знающие за StateFlow, которые уже успели попробовать Flow.flowWithLifecycle из альфы lifecycle (Version 2.4.0-alpha01)?
Я тут пытаюсь вкатываться и не могу понять почему у меня StateFlow, который должен выдавать только последнее значение из flow высирает весь буфер свой. Такое поведение у него происходит при использовании Navigation component. Когда я перехожу на другой фрагмент и обратно, то получаю от StateFlow кучу значений сразу.
>>2016393 Извини пожалуйста что вызываю пассивную агрессию, мой вопрос в этом и заключается. Я не особо понимаю как отследить это изменение из фрагмента и обновить ui. Ещё раз прошу прощения за раздражение! >>2016135 >По событию от ретрофита обновляй свой RecyclerView Спасибо за ответ, но что значит по событию от ретрофита? Я пытаюсь обновлять данные во фрагменте через ViewModel.
>>2016757 State flow горячий в отличие от flow, т.е. данные у тебя производятся, даже если нету подписчиков. И скорее всего когда ты покидаешь свой фрагмент или чё там у тебя, производство данных продолжается из-за причины которая указана выше, но они никому не эмитятся, а когда снова подписываешься он выдает тебе все что успел напроизводить
Есть вопрос от нуба. Как обычно портируются программы с других платформ на андроид? Вот, скажем, есть чисто-сишные исходники одной проги, которая нативно работает под линуксом. Как их перекинуть в андроид? Ясное дело, какой-то уи я напишу, но мне нужен оригинальный код
>>2017545 Вообще, в случае Сишки и Прыщикса, все это делается элементарно: JNI + NDK. Тебе остается нарисовать интерфейс и как-то прокинуть вызовы между гуем и кодом. Можно вообще пойти по пути Qt: в качестве гуя нарисовать только прямоугольник с канвасом и перехватывать от него нажатия, а на сишке рисовать свой мир внутри этого прямоугольника - просто и легко, правда -80% к нативности
Там яндекс в очередной раз набирает студентов на свои летние курсы. Ни у кого нету тестового задания, которое они отправляют кандидатам? Лень заполнять километровую анкету, чтобы его получить.
>>2018034 Конечно же у Лебедева, всего 100к за экспресс-дизигн. На самом деле на фрилонсе за 5 баксов. На самом деле вводишь ключевые слова на порносайте и делаешь скриншоты.
>>2012786 > Гугл рекомендует Гугл слушать - себя не уважать. Гугл тебе джунов посадил, они какую-то парашу за неделю накрапали, на презентации показали и всем порекомендовали, а потом хуй забили. И ебись как хочешь.
>>2018464 >я прыщ на теле Гугла >я буду жить по своим правилам! Мне пахую на это тело! >присыхаешь сам по себе ил вообще выдавливают, лол Твоя будущая стори, шиз
>>2012795 Очередной шиз, которому надо "знать, как оно там работает под капотом". Тебя ебёт? Сильно ебёт? ОКР замучало? Таблеток попей, к психиатру запишись. Ты ведь не знаешь и половины того, как работает компьютер под капотом, не знаешь и как работает интернет под капотом, только пиздеть и строить из себя специалиста можешь, пиздабол интернетный.
>>2018911 Препод основной как на герыче, лол. Все в попыхах, быстрее, быстрее. Хуй клал на аудиторию. Кал, короче, полнейший. Куда лучше посмотреть видос от Специалиста. Там хоть препод видно, что в шаристый мужик и много информации вне тем курса подает
>>2018771 > шиз Оскорбления тупо с ходу - типичный зашоренный двач, фу бля. Ну ничего, это ты в интернетах такой модный хиккан, который всех может нахуй послать, но вот на улице ты сгорбленый щупленький трус, который оглядывается по сторонам.
А теперь по делу. Я не предлагаю делать исключено противоположное тому, что говорит гугл. Я предлагаю думать своей головой и делать то, что любой инженер должен уметь делать - выбирать наиболее оптимальное решение для конкретного случая. А не просто лепить «потому что гугл так сказал делать».
Не хочу скатываться до твоего уровня и кого-либо вообще оскорблять, но факт остаётся фактом: двачеры не могут думать своей головой от слова совсем. Из-за чего у вас мир делится на исключительно черное и белое.
>>2019148 >Я предлагаю думать своей головой и делать то, что любой инженер должен уметь делать - выбирать наиболее оптимальное решение для конкретного случая. А не просто лепить «потому что гугл так сказал делать». Теперь задайся вопросом: ты обладаешь достаточным уровнем квалификации, чтобы судить, какие решения являются оптимальными, а какие нет, и являешься ли ты специалистом уровня, способным спорить с идиоматическими решениями из Гугла? Если ты не работал в любом FAANG, или если ты не тимлид в какой-нибудь крупной шараге типа Сбера или Яндекса, твоё мнение априори эквивалентно мнению рандомного васяна. "Думать своей головой" это фраза-детектор мидвитов с раздутым самомнением, которые предпочитают городить велосипеды вместо заранее придуманных до них решений. Существуют заранее придуманные алгоритмы, заранее придуманные паттерны проектирования, заранее обдуманные решения - но при этом есть ВАСЯ, то есть ТЫ, который считает что он ЗНАЕТ КАК СДЕЛАТЬ ЛУЧШЕ, чем, блядь, многомиллиардная корпорация, со специалистами-выпускниками из Гарвардов и МИТов. Попустись, чмоня.
>>2019164 Здравствуйте, меня зовут Вася. Такие конторы как Сбер или Хуяндекс я презираю и баню их подсети на роутере, чтобы случайно туда не залезть и не подхватить их трекеры. Сраная ведроид-студия у меня стартует дохуя времени, а как эта поебень прогрузится, начинает лезть непонятно куда в сеть и качать непонятно чего - это неверотно меня фрустрирует. Когда я пытаюсь запустить в этой параше свое приложение, то Студия опять лезет в интернеты (видимо сливает мои исходники Мировому Предиктору), зачем-то что-то с чем-то синхронизирует, дает сотню советов, а потом обсирается собрать код, советуя все поменять обратно. Я пытался собрать хелловорлд, но хелловорлд с саппорт-либой, который в итоге весит 1 мегабайт, оскорбляет мои релилиозные чувства.
Видя все это дерьмо, я хотел бы начать пить, но не могу, по состоянию здоровья. Вынужден заедать антидепрессантами, но помогает слабо. Потому продолжаю юзать 10-летний Эклипс, код пишу как деды на Сишечки, а Саппорт-либы считаю проявлением дьявола.
Короче, оцените бизнес-план. Мы с другом юристом берём небольшие приложения из гугл-стора с регистрацией через гугл-хуйню или firebase и начинаем спамить создателей письмами, что набутылим их за несоблюдение закона о персональных данных. Штрафы от 70 000 рублей для руководителей и ИП. Либо они платят нам 3 000 и мы на первый раз прощаем, либо вот прямо сейчас же пишем письмо в требованием привлеч к ответственности. Как вам идея?
>>2019255 Очень быстро сядете на бутылку. Я бы моментально написал заявление на месте таких разрабов, ха-ха. >Как вам идея? Набутыливание людей с подобным мышлением - всегда замечательно. >привлеч к ответственности Как раз будет время, чтобы научиться писать.
>>2019293 >начинаем спамить создателей письмами, что набутылим их за несоблюдение закона о персональных данных >прошу оплату в три тыячи ублей >на что заявление? Тут два варианта - либо вы просто "просите" и вас, разумеется, игнорируют, либо, если вы наглеете и имеется состав мошенничества(ст. 159) ч.2, если вы успеете причесать двух разрабов на 5+к или вымогательства(163)что сложнее квалифицировать в данном случае, то вас набутыливают.
>>2019342 Нашел что спрашивать, лол. Пацаны даже толком квалифицировать не могут статью по которой, якобы, есть нарушение, не говоря про, что данные пользователей не покидают пределов Гугла при таком способе аутентификации в приложениях
>>2019356 Ты читать умеешь, ебака? Они собираются вымогать деньги у юр.лиц в обмен на несообщение сведений. Очевидно, что если они будут просто "просить", никто им ничего не даст, ибо они нахуй никому не упали. Так или иначе, в случае требования ими денежного вознаграждения, их действия могут быть квалифицированы либо как вымогательство, либо как мошенничество, но это вопрос квалификации каждого отдельного эпизода. >данные пользователей не покидают пределов Гугла Учитывая тот факт, что имеется угроза оглашения таких сведений, которые могут опорочить, причинить существенный вред чести, достоинству и деловой репутации человека, наличие которой доказать проще, чем её отсутствие, это не имеет никакого значения.
>>2019353 Зачем Гугл? Оператор персональных данных - это ты. У тебя в приложении есть форма логина - ты собираешь персональные данные, ты оператор. Ты должен соблюдать закон. А Гугл тут при чем?
>>2019419 >Так они пофиксят свои проблемы Так нет никаких проблем у тех, кто юзает вход через Гугль сервисы и учетки в своих приложениях, долбоебы. Они у себя ничего не хранят из личных данных пользователя. Все хранится в инфраструктуре Гугла, блядь.
>>2018813 Не правда, я байтоебствовал какое-то время, так что могу пояснить за некоторые вещи на низком уровне. Кстати, пиздец вы токсичные, нет бы объяснили молодому ведроидщику где исходники можно посмотреть, к примеру. Как там кстати Котлин? Слыхал что Котлин это секси.
>>2019490 Молодой хуесос ведройдщик, как минимум знает за основные ресурсы по этой теме или хотя бы читал шапку треда по диагонали и не имеет подобных вопросов. Ты же, очередное чучело залетно-перелетное ИТТ
>>2019164 > ты обладаешь достаточным уровнем квалификации, чтобы судить, какие решения являются оптимальными, а какие нет, и являешься ли ты специалистом уровня, способным спорить с идиоматическими решениями из Гугла? Если ты не работал в любом FAANG
1. сперва добейся 2. ты немного переоцениваешь фаангеров, там рандомных васянов задрочивших литкод тоже хватает. особенно учитывая что при найме конкретную предметную область спрашивают только на тимфит этапе.
>>2019516 Ну шиз, твой высер актуален для местечковых рогов и копыт с тремя разрабами, а не для многомиллиардной индустрии мобильного софта в которой ты хозяин всего и имеешь просто армию специалистов всех мастей, лол
>>2019164 > Попустись, чмоня. И опять я от Вас, молодой человек, слышу в свой адрес безосновательные оскорбления. Зная ограниченные возможности некоторых посетителей данного ресурса я этому, впрочем, не удивлен. Возможно, это не мое дело, но я бы Вам посоветовал бы успокоиться, выпить чашечку чая и задуматься хотя бы о паре дней отпуска или, скорее всего, каникул.
> предпочитают городить велосипеды вместо заранее придуманных до них решений Я Вам не предлагаю, как Вы выражаетесь, "городить велосипеды", а всего лишь предлагаю использовать нам с Вами инструмент даный природой для оценки различных возможных решений какой-либо проблемы, в том числе и готовых, в том числе разработанных и Гуглом, Яндексом и, прости господи, Сбером. Однако, не стоит ограничиваться исключительно этими решениями, а и, при возможности, искать другие решения.
> заранее обдуманные решения Мой горький опыт и горький опыт моих коллег не позволяет бездумно использовать решения предлагаемые, например, Гуглом. К сожалению, случались прецеденты, когда решения того же Гугла были недостаточно гибкими для реализации желаний клиента или просто содержали ошибки.
> заранее придуманные паттерны проектирования В нашем с Вами профессиональном сообществе бытует мнение, что паттерны проектирования не стоит применять бездумно, а их применение требует квалификации и опыта. И я склонен поддержать данное мнение.
> блядь Попрошу Вас следить за языком, в противном случае я буду вынужден прервать дискуссию.
> многомиллиардная корпорация, со специалистами-выпускниками из Гарвардов и МИТов. Поговаривают, что не всегда так. Нередко туда попадают как Вы выражаетесь "Васи". Прошу прощения за ссылку на ресурс, однако вот одно из неприкрытых доказательств моих слов: https://dou.ua/lenta/articles/google-intern/. С моей точки зрения, данный случай не похож на картину "целеустремленный выпускник с выдащимися навыками и карьерными целями".
>>2019652 Шиз, ты путаешь свободное поле для разработки с песочницей, которую создала одна трансконтинентальная мега корпорация, и которая имеет в ней абсолютную власть и в любой момент может ее схлопнуть. По неволе будешь считаться с их правилами и парадигмами, лол
>>2019683 > Шиз Опять оскорбления, третий раз. К сожалению, вынужден Вам сообщить: это мое последнее сообщение Вам, так как я не намерен общаться с типичным неуверенным в себе хамом из /b.
> песочницей, которую создала одна трансконтинентальная мега корпорация > в любой момент может ее схлопнуть Совершенно верно. Google может в любой момент закрыть проект Android и, тем более, облачные сервисы для данной ОС. Однако, данная платформа в чистом виде, без сервисов Гугла, имеет открытые исходники.
> По неволе будешь считаться с их правилами и парадигмами Естественно, спустя много лет Гугл начали предлагать некоторые стандартные решения некоторых проблем. И, все же, местами выглядит так, вроде бы Гугл предлагает отдельные средства для решения отдельных проблем. В некоторых моментах мало того, что данные решения воедино не похоже на целостностную экосистему, а имеют недостатки и design flaws. Но даже при таком состоянии дел Гугл предлагает и рекомендует Вам использовать данные инструменты, но ни в коем случае не обязывает - Ваше приложение по-прежнему никто не заблокирует в Play Market за использование других решений. Не хочу принизить достоинства другой не менее достойной платформы, однако, правила тут более либеральны, чем в той же iOS и никакого, описанного Вами, тоталитаризма я не наблюдаю.
За сим смею откланяться дабы не мешать Вам сидеть и дальше злиться на весь мир, "потреблять контент", смотреть аниме и круглыми сутками играть в видеоигры.
Я правильно понимаю, что если у меня форма для логина через емайл и пароль и в приложении я запрашиваю ФИО и координаты жпс и все это хранится в Firebase, то я нарушаю закон и меня могут набутылить?
>>2020055 Так ты сам ебанатина получается. Ты собираешь данные, ты оператор персональных данных. В том и нарушение закона, что ты их не хранишь у себя, а передаешь куда-то в другую страну.
>>2020089 Так суть доеба именно в хранении данных, а не в обработке. Чтоб не быть ебланом и не задавать тупорылейших вопросов, почитай вот эту выжимку и законодательства скотоублюдии, шиз: https://habr.com/ru/company/atlex/blog/342332/
>>2020199 Ты дураком прикидывается или что? Там ясно сказано, что хранить данные ты можешь в РФ. Да границей можешь держать копию. Если ты используешь Firebase, то там только 2 сервера: в США м Голландии вроде. Т.е. если ты не хранишь личные данные в ещё какой-то базе в РФ, то ты нарушил закон. При том личные данныем- это даже емайл и пароль.
>>2020214 >При том личные данныем- это даже емайл и пароль. Сразу видно, что ты тупорогий осел и даже не удосужился прочитать то малое, что я тебе предложил, блядь
>>2020296 ПД) или личностные данные — сведения, относящиеся к прямо или косвенно определённому или определяемому физическому лицу (субъекту персональных данных), которые могут быть предоставлены другим лицам. ... Эти данные помогают выследить человека, спланировать преступление против него или постороннему выдать себя за другого.
Аноны помогите ради всех богов. Задали в институте сделать мобильное приложение в виде календаря, где отмечены важные дни и нажимая на которые должна открываться статья о событии в этот день. Сроки горят, а я в этом вообще ничего не понимаю и не знаю с чего начать. Посоветуйте, как сделать? с чего начать, на чем делать или кодить, чтобы было относительно просто. Сроки очень сильно горят, и я больше не знаю где спросить. Вы моя последняя надежда.
>>2022372 Я именно, хочу узнать, типичный пример реальной задачи. Приложений слишком много, от всякой хуйни бесполезной, до различныех ёба программ. Вот можешь привести крепкий и жилистый пример программы, которая была бы эталоном
>>2022847 >Просто я не совсем понимаю, какие конкретно приложения создают >Тебя в Google Play забанили? >Ряяя! Я именно, хочу узнать, типичный пример реальной задачи! >Я довольно адекватно пытаюсь узнать! Угу, продолжай пытаться, дебич
Гугл плей реджектнул мое news app, и мне нихуяшеньки не понятно, что там в политике относительно новостных приложух. Кто-нибудь может объяснить, что они от меня ожидают?
Сап, студент 3 курса. Ебошусь с андроидом с августа, хочу уже пойти на РАБотку, но боюсь обосраться. Не рано ли? Прошу местных дядь посмотреть че я знаю и сказать че надо подтянуть Вот в чем секу на уровне джуна, порядок рандомный: Activity, Fragments, Fragment's Arguments, Fragment Manager, Activity and Fragment's Lifecycle, LIfecycle-aware components, LiveData, Room, базовые вещи в DataBinding вроде BindingAdapter, mustache operator, BaseObservable, базовый multithreading через Executors, OkHttp, Retrofit, MVC, MVVP, View Model, XML Drawables (shapes, states, layers), WorkManager, Implicit and Explicit Intents, FileProviders, query запросы с другими ContentProviers, ConstraintLayout, Logcat, Device Cofiguration Changes и подбор ресурсов в рантайме зависимости от конфигурации, сохранение стейта через Bundle, BackgroundTasks, JSON, HandlerThread, базовый Debugging, базовые unit тесты c Mockito, SharedPreferences, WebView, немного DI, немного CustomViews, singe-activity architecture, RecyclerView, App Bar Menus, DialogFragment, Time и Date Picker Dialogs, работа c Bitmap, viewTreeObserver, стили, темы, хорошо знаю Material Design. Владение Android Studio на левеле "почти без мышки"
Учился по delevopers.android и книжкам Big Nerd Ranch по анрдоиду и котлину (в каждой материала на ~500 страниц, вроде все нормально помню оттуда). Своих каких-то больших приложух нет, только учебная хуйня из вот этих учебников Знаю более менее алгоритмы, сложность алгоритмов, в целом как устроены сети, HTTP
>>2024215 С таким списком ты уже почти повидл. Сделай вылизанное говно в гитхаб уровня мувисерчера и ищи работу, не обосрешься. Прикладывай свое вылизанное говно к резюме, мол коммерческого опыта хоть и нет, зато смотрите че могу, могу пояснить за каждую строчку.
>>2024215 >немного DI, немного CustomViews 5 граммов DI, щепотку CustomViews. Все тщательно премешать, взболтать, охладить. Употреблять перорально по 3 капли в день.
>>2024324 Я к тому что не вздумай такое писать в резюме. Ты же не захочешь покупать вместо колбасы продукт мясосодержащий идентичный натуральному, вот и работодатель не захочет продукт мидлосодержащий.
>>2019490 Смотри, жмешь в Студии на каком-нибудь методе андроидовского API "перейти к определению", дальше она предлагает тебе или декомпилировать исходники, или докачать. Впоследствии будет сразу тебя кидать в исходники, когда захочешь "перейти к определению".
Выручайте. Мне необходимо получить SHA1, я все перепробовал, делал как в туториалах. Но у меня нет во вкладке Gradle нужной папки Tasks, где лежит заветный signingReport. Пикрилейтед, скрин в котором нихуя нет.
>>2024215 Блять, как же тяжело вкатываться после 30, знаю меньше четверти из этого, может даже одну пятую. Причём знаю на уровне "слышал это слово". Представляю сколько ещё времени буду вкатываться. Просто пиздец, будьте прокляты, упругие зумеры, кто это всё придумал.
>>2024215 >>2026122 А, хотя если с августа (это ведь почти год, да?) - тогда всё не так плохо. Я кучу времени убил на кору и всякие вкуривания CS. Ведро только с месяц начал активно втыкать. До этого в ведре понимал на уровне "сделать кнопочку и прикрутить её к нижней границе экрана"... Вообще не знаю, то ли старость, то ли лето так влияет, что ничего в голову не лезет.
нормальный код для viewmodel в mvvp? смущает что пришлось юзать контекст, но: 1. это лаунчер других приложух, как ты без него обойдешься 2. memoryleaks не будет тк androidviewmodel 3. как я понял, если юзаешь databinding, то все коллбэки на onClick() и проч. должны быть только во вьюмоделях. и тут опять-таки хуй ты без контекста и application-ебалы обойдешься
>>2024215 > Activity Lifecycle Какую роль в жизненном цикле играет onSaveInstanceState? Если что, его поведение отличается в разных версиях андроид. Что такое state loss, как это влияет на работу FragmentManager, как с этим справляется Lifecycle из Architecture Components? > Fragment's Lifecycle Зачем нужен viewLifecycleOwner? Почему нельзя в onCreateView подписываться на LiveData используя Lifecycle фрагмента (т.е. делать observe(this))? Почему не стоит этого делать из onCreate?
убрал onClick из viewModel, в mvvm все listeners должны быть в другой variable биндинга, понял теперь все нормально? ниче страшного что юзаю контекст (по-другому же хуй как тут сделаешь)?
алсо, это нормально, если юзаешь livedata, апдейтить их при биндинге через отдельную функцую (updateLiveDataValues() у меня здесь)?
>>2026614 >Почему нельзя в onCreateView подписываться на LiveData используя Lifecycle фрагмента (т.е. делать observe(this))? вроде потому что фрагменты при смене конфигурации не уничтожаются, уничтожается только их вьюшка. поэтому можем получить в процессе работы сразу дохуя одновременных выполнений коллбэка. ну там можно просто подписываться на livedata через lifecycle вьюшки, а не lifecycle фрагмента (через viewLifecycleOwner), тогда все будет ок
>Зачем нужен viewLifecycleOwner? чтобы создавать lifecycle-aware объекты, реагирующие на стейт друг друга
>Почему не стоит этого делать из onCreate? ну блять а смысл, вьюшки еще все равно нет, viewLifecycleOwner не вызовешь
>Какую роль в жизненном цикле играет onSaveInstanceState? вызываетя при onStop(), можно сохранить всякую основную хуйню по которой потом можно восстанвоить вьюмодель. переживает даже смерть процесса (тогда activity будет в "stashed state")
>Что такое state loss, как это влияет на работу FragmentManager, как с этим справляется Lifecycle из Architecture Components? хуета какая-то не ебу
>>2026623 > вроде потому что фрагменты при смене конфигурации не уничтожаются, уничтожается только их вьюшка Сам фрагмент тоже уничтожается, как минимум проходит через весь цикл detach/attach. > поэтому можем получить в процессе работы сразу дохуя одновременных выполнений коллбэка Верно. Точнее, не выполнений, а будет несколько подписчиков, потому что автоматическая отписка происходит только при переходе в destroyed. > чтобы создавать lifecycle-aware объекты, реагирующие на стейт друг друга > ну блять а смысл, вьюшки еще все равно нет, viewLifecycleOwner не вызовешь А зачем придумали второй Lifecycle для фрагмента, если сам фрагмент является LifecycleOwner?
> вызываетя при onStop() Это не так, по крайней мере, до андроид 7. К тому же поведение отличается и после 9 версии андроид. И я про роль в жизненном цикле спрашиваю, а не о том, для чего этот метод нужен (не сомневаюсь, что это ты знаешь). > хуета какая-то не ебу Обычные транзакции FragmentManager запрещены в состоянии state loss. Сценарий: делаем запрос по сети, по результату запроса переходим на другой фрагмент. Если пользователь свернёт приложение (гарантированный переход в state loss), то попытка переключить фрагмент обернётся крашем. До появления Lifecycle это была головная боль. С появлением, перестала ей быть. Lifecycle не является 1:1 копией вызовов методов жизненного цикла активити (да и фрагмента тоже), и примером является onSaveInstanceState, который принудительно переводит Lifecycle в created, даже если onStop не вызвался и не вызовется вообще (т.е. onPause -> onSaveInstanceState -> onResume превратится в started -> created -> started -> resumed у Lifecycle).
Если хочешь, можешь ответить на вопрос про viewLifecycleOwner, что мы ещё не закрыли. В целом, могу сказать, что твоих знаний вполне хватит, чтобы попробовать пособеседоваться на джуниора уверен, глубина познаний по остальным вопросам была бы примерно такая же; я сознательно начал копать в тему жизненного цикла, как примера той темы, которую легко изучить на базовом уровне, но глубокие знания требуют хорошего опыта, к тому же это является чем-то, с чем работаешь на постоянной основе.
>>2026708 > ну блять а смысл, вьюшки еще все равно нет, viewLifecycleOwner не вызовешь Вот тут забыл написать. Конечно же я имел в виду, что в onCreate мы подписываемся, используя сам фрагмент в качестве LifecycleOwner, а не viewLifecycleOwner, которого к этому моменту ещё нет.
>>2026925 Можно написать какое-то несложное, просто чтобы скинуть себе на гитхаб, что повышает шанс того, что тех. отдел, которому эйчары передадут резюме, одобрит собес кандидату если в компании отбор кандидатов включает такую процедуру, конечно. Как джуну, тебе в любом случае с большой вероятностью дадут тестовое задание, и отказываться от них поначалу не вариант зато ими можно забивать свой гитхаб, затем ссылаясь на них в резюме, желательно подробно указывая, что в таком-то проекте ты демонистрируешь такой-то стек, навыки, библиотеки, архитектуру, и так далее. Приложение на гугл плей вообще не обязательно, а уж тем более не обязательно доводить его до "5к установок и 4.0+ рейтинг", как пишут итт. Пустая трата времени.
Надо понять как в Хбраузере оформление через сторонний скрипт в настройках поменять. И ещё чтоб скрипты оформления работали не после document-end, быстрее...
>>2027619 Ну да. Глупости какие-то. Можно подумать прилага в гугле показатель. А если у прилаги куча инсталов то нахуй вообще галеру искать? Ты и так будешь бабло поднимать от рекламы или продаж, если не еблан конечно
А что сложного выложить какое-нибудь говно в стор? Никто ведь исходники не посмотрит, можно одноэкранное что-то сделать несложное.
Вот хотел спросить у анона, что вообще обычно спрашивают на собесах?(на ждуна само собой)
И также, тут кто-то писал про мемори лики и какие-то стейт-лосс >>2026708 где про это почитать можно подробнее? Ну и если кому-то совсем нехер делать, объясните что такое вик референс?
Посоветуйте фреймворк для кроссплатформенных приложений, на котором можно запилить клиент для приложения на Yii2. Суть токова. Есть один сайт, он мой, в нём большая база тестов. Вот хочу сделать приложение, которое будет тягать базу оттуда, позволять тесты выполнять на мобилке, а после вносить данные в БД сайта. Знания PHP у меня постольку, поскольку, приложение пилил почти полностью сам, работает вроде, многое сам чиню, многое - помогает знакомый. Вот нужен самый ЙОБистый фреймворк для кроссплатформы, там суть-то - в кнопочках и переходах. По идее, что в итоге должно получиться - это типа приложения для изучения ПДД - PDD24 вроде оно называется. Выглядит вроде не сложно.
>>2027943 Миша, всё хуйня. Я заюзал флаттер, и он не способен мне выдать 60 фпс на моем 6s галакси, тупо отрисовать 100 вьюх, где я обновляю (вызывается build) только у двух вьюх. Это дно, вся кпосплатформа дно
>>2027953 Бля, и как быть? Учить Яву ради сраненького клиента? А вот ещё говорят, что фреймворки на JS могут в мобилки. Это правда или наглая ложь? >>2027958 Да вроде ничего и не нужно. Ну изображения иногда нужны, ща покажу. Но вот эта приложуха и без инета работает, там не так много заданий и фоток, а мне надо именно клиента. А так суть всей перды - точно такая же. Тесты-хуесты-квесты, рейтинг сложных вопросов, отработанные темы и прочее.
Извучаю айос чтобы портировать свою прогу с ведра. Знали бы вы какой там ад. Я буквально плачу иногда такой пиздец, и подумать не мог что андроид разработка настолько проще, понятнее, открытее... И документация лучше. А тут ебаные делегаты, ебаная хуйня, даже стрингс.хмл нормальных нету, все через жопу.
>>2028401 Да ладно, все не так плохо. Ну со xib-ами хуйня, и во всех этих сертификатах ногу сломишь, но Свифт похож на котлин же. Ах да, икскод просто кусок говна по сравнению со студией
>>2028404 Свифт збс, я вообще на ведре на джаве кодил, так что был польщен свифтом, хочу переучиться на котлин на ведре (в свое время решил не учить котлин потому что на стак оверфлоу было намного больше кода на джаве). А вот на свифте дофига кода на стаковерфлоу.
>>2028415 Кста, раньше айос разработка был на парашном обджективС с ужасным синтаксисом прямиком из ада. Видать джобс очень не любил разработчиков... Слава богу сча на свифт перешли.
>>1994880 (OP) Просто вопрос. Смысл вката если мобильные приложения не нужны. Ну вот у среднего пидорашки что на телефоне? Пару мессенджеров, ютуб, пару банковских приложений. Все. Зачем вы вкатываетесь?
>>2028653 Потому что там огромный рынок дистрибуции. Средний пидорашка может скачать проги для качалки какие-то, для отслеживания месячных, хуй знает, дохуя чего и на этот спрос должно быть предложение. Столько приложений собранных на коленке взлетели и принесли много бабосов, только из-за огромной аудитории, не счесть. Если ты не ютубер какой-то и не хочешь светить ебалом, то создание своих приложения это наверное один из двух способов стать успешным легко (еще есть игры, там еще большие бабки, но игры сложнее делать чем проги, как по мне).
>>2028653 Потому что не все люди это сраные пидорашки.
>>2028670 Двачую настрой этого анона. Хотя конечно шанс взлететь не велик, но лично меня это не останавливает пилить совсем не оригинальные приложения, просто потому что ты погроммист и есть потребность что-то пилить. Ну а работать на дядю за гроши всегда успеется.
>>2028691 > Хотя конечно шанс взлететь не велик Эт да, надо не питать ложных надежд. Надо всегда думать чего люди хотят, тогда выше шансы. Всякая фитнес шняга хорошо заходит, даже сам пользуюсь. Достаточно сделать меньше рекламы чем у конкурентов и более няшный дизайн, чуть больше фишечек и твоя какуляпрекрасная_прога_без_говнокода урвет кусок рыночка.
>>2028770 хз. Если не хочешь стресса из-за незнания что делать и из-за шквала негативной критики с отзывов, не хочешь идти на риск, нет никаких творческих идей, не хочешь каждый день открывать почту в ужасе ожидая письмецо от гугл что твою прогу заблокировали, не хочешь отвечать на емайлы от пользователей, но нравится кодинг на ведре, то наверное стоит, хотя я не пробовал и не знаю легко ли там попасть на работу.
>>2028653 Ты попал в точку на самом деле. Смысла вкатываться в пиление прилаг на себя самого нет, если это не игры. А так люди в основном поддерживают легаси, те же клиенты банков, и всякая прочая хуйня для бизнеса. Ну и плюс есть стартапы. А так ты прав в том что мобильные прилаги это не клондайк как в 2009-2010
>>2028845 Такое же в 2012 говорили за ютуб, ВСЕ ЗАНЯТО, УЖЕ ПОЗДНО!!!11 А потом тысячи новичков ютуберов взлетели на протяжении 2012-2021. Везде так можно думать, тут нужен индивидуальный подход. Но да, в играх выше шанс на успех, мне кажется.
>>2028860 Я про тематику. Людям интересна магия, астрология, предсказания, психология (то есть они хотят откровений о себе). Думаю все видели что треды с гаданиями на таро на дваче постоянно взлетают, с тестами тоже, кстати. Еще им нравится улучшать себя: проги для тренировки мозга, для качалки, для йоги, бега и тд. В остальном, проги для других целей это нишевый продукт который мало кто будет юзать. Мб еще есть популярные категории о которых я не знаю.
>>2028866 Ты натолкнул меня на несколько идей сразу! Но вообще да, проигрываю с этих тренировок мозга, что-то вроде "занимайся 5 минут в день и через месяц станешь умным как Эйнштейн!" А есть смысл делать апп для локального русского сегмента или лучше ангельский по дефолту? Вроде приложения в зависимости от региона в выдаче ранжируются (не уверен на этот счет)
>>2028874 После перехода на инглиш с русского, доход от рекламы вырос в 500 раз. Но только временно, потом упало до 10 раз, лул. Конечно же перевод добавить на иглиш надо. Если ты делаешь продукт суто для русской аудитории, то ... можно, но будет потолок пониже.
Зря я все свои идейки распиздел, но надеюсь на кармическую помощь в плане игростроя, так как я как овощь не могу вообще ничего придумать какую игру делать.
>>2028893 Ну давай я попробую тебе подкинуть идей взамен. Сделай какую-нибудь настолку, какой-нибудь кардгейм. Желательно чтобы можно было рубиться не деньги (хотя вот не знаю, пропустит ли гугл такое и где хранить все деньги игроков тоже непонятно), вроде азартные игры под запретом, насколько понимаю. Может какую-нибудь упрощенную версию МТГ, но настольных игр оче много, думаю если провести рисерч, можно найти что-то годное, более-менее оригинальное + добавить что-то от себя = ПРОФИТ??7
>>2028911 Да чот не стоит на чужие идеи, хочется как-то самому дойти до чего-то годного, но спасибо за старания помочь. Есть одна своя хорошая идейка, но она немного бредовая и игра будет слишком сложной, как для первой игры, но единственное что есть. Ну и еще мне надо научится создавать графические ассеты свои и тогда я смогу понять что я смогу создать, а что нет. А пока что недостаточно знаний. Надо и прогерство знать и рисования/3д моделинг и шарить в графической оболочке где делаешь игру и с гейм дизайном не прогадать, также звук. Пиздец одним словом. Мб сложно потому что я сам не сильный любитель мобильных игр, в отличии от приложух, где гуру материал дизайна и всяких анимаций.
>>2028932 Наверное да. Мб еще потому что там будет все мое и никто не сможет это у меня отобрать, так как я не буду использовать никаких чужих ресурсов и наработок с серым статусом в плане легальности использования (из-за этого уже банили приложуху, благо восстановил) >>2028935 ... и что? Не хочется делать клон флаппи берд, кароче, сколько бы он не принес. Буду жрать психоту, может поможет с творчеством.
>>2028941 Сделай псевдографический терн бейзд рогалик рпг песочницу с открытым миром, с сохранениями, без перегенирации локаций, с фолловерами и возможностью их заромансить и чтобы их отношение зависело от поступков ГГ
>>2029066 лучше в стим иди, в плей маркете делать нечего, там народ мало платит. У меня с 30к игроков падает 150$. На стиме с 1 тысячей игроков, ты уже как минимум штукарь поимеешь.
>>2029313 На андроиде монетизируют через рекламу, алло. Делай на айос порт, кстати. Я не хочу серьёзные игры делать, но мб если взлетит и на стим залью или если кто-то попросит.
>>2028844 Лол. Ню-ню…))) Но вообще тебе говорят правду. Чистую и неприкрытую правду. Кому всрались твои новые прилаги, скажи мне? Как упомянули выше, люди, в основном, пользуются одним и тем же с условного 2011. Тот же Фейсбук, Вацап, Вайбер, Калтухт, Твиттер, Хуиттер и т.д. Из недавнего среди широкой аудитории взлетел только ПикПок. Все остальное зачастую не то что «не взлетает», а тупо просто остаётся неизвестным.
Единственный рабочий вариант - это когда приложение тупо «приложение» к какому-то реальному сервису или продукту, а не сам продукт. Например, доставки, такси, банкинг, заказ фистинга твоего очелла, всякие онлайн-магазы, хорека и т.д. Как тут заработать: изучаешь разработку под ведро, устраиваешься в контору, работаешь там, получаешь себе на палку хлеба. Все. Других вариантов, кроме пары фантастических исключений, нема.
Но ты ж у нас самый умный, ты ж у нас будешь платные просмотровщики картиночек делать или клиенты к бордам с подписочками))) Только вот так это не работает: раз - аудитория на ведре тебе будет платить хуй целых хуйтеврот десятых, дваз - да это за бесплатно блять никому в хуй не вперлось, лол. Ты еще доплачивать будешь, чтобы это ставили.
Так что нет тут никакого устранения конкурентов - вся война унитазов у тебя в голове.
>>2030001 Ну можно сделать бесплатный клиент для борды и на собесах в компаниях пояснять по коду про него. Это будет плюсом. А так да, влажные фантазии про "свое уникальное приложение с подписками" скорее всего не взлетят.
>>2029976 Тупо очкуют. В штатах был прецедент, апп для доставки стаффа практически до двери. Возник во время ковида. Ну что, кто смелый? Кто запилит?возьмите меня
>>2030015 ну если в штате с разрешенной марь иванной то скорее всего никак, а если в запрещенной то штаты страна с самым большим количеством уголовников что абсолютно что относительно.
>>2030016 Они просто не афишировали что именно доставляют. Там было "ключевое слово" для своих. А может я это всё напиздел. Всё равно вы такое не потянете!
>>2030001 Есть одна небольшая деталь которую ты упускаешь из вида, сидя за своим компудахтером. На самом деле есть огромная прослойка населения, которые этот компудахтер не имеют или не умеют им пользоваться. И каждый раз когда им что-то нужно специфичное, что на компе делается на два клика, они лезут в гуглопойку. Склеить пдфки? Обрезать фотку? Наложить вотермарку? Обрезать песню на рингтон? Да они прямо так запросом в гуглстор и хуячат.
>>2030019 > Всё равно вы такое не потянете! нахуярить приложуху не сложно, а потом кто нибудь из "своих" попадется и c помощью реверс инжиниринга методом ректального криптоанализа сядут все
НАХУЯ, А ГЛАВНОЕ ЗАЧЕМ? Активити удаляется при повороте экрана и потом снова вызывается onCreate. Это же пизданешься прописывать, как ты каждую переменную сохраняешь, а потом достаешь из Bundle.
>>2030035 Ну да, у нас оперативники так прям и подорвались кабанчиком чтото раскрывать, вон гидрач живет, крыша видать высокооставленная. Но вообще я против каких-либо видов котиков.
>>2030004 Вот да. Себе в портфолио для собесов - вариант. Это адекватные компании оценят. Даже банально чисто рассказать можно будет, что у тебя, мол, пет проект есть и ты его себе потихоньку пилишь, и там на ГХ сорцы лежат.
>>2030025 Я понял о какой прослойке ты говоришь. Смотри, большинство тех людей, о которых ты говоришь, либо не особо нуждаются (а может быть, даже и не знают что так можно, лол) в том про что ты пишешь, либо довольствуются тем, что есть. И те, что довольствуются тем что есть в большинстве своем, как я выше говорил, заплатят за приложение/подписку ничего. Единственный вариант - реклама. Но это, ты должен понимать, чисто себе на певко капнуть копейку. И на заработать мульены тут не стоит надеяться.
>>2030668 Мне страшно уходить на общую систему налогооблажения в украине. Есть лимит... Если на упрощонке, то платишь 5%, если на общей системе - 20-30%, вроде. Я не хочу им платить 30 процов. Буду скрывать бабки на пайонире наверное. Если доход будет выше чем лимит. Пока что в рамках лимита...
Приветствую всех. Так получилось, что устроился с первого отклика на позицию джуна. В процессе работа вопросов много не задаю, но на которые необходимы ответы, не получаю должно совета. Так как для них это же очевидные вещи, наверное, особо не утруждаются в объяснении. Поэтому делаю много костылей, а некоторые вещи так и не понимаю как делать. В моей голове не рождаются сами алгоритмы решения задач, если я с таким не сталкивался. Допустим обновление времени проигрывания трека, с помощью хендлера(там само писаный плеер, время надо саму рассчитывать) + еще список поэтому проблемы с адаптером, так как плеер инициализирован в фрагменте. Из за этого передаю позицию во фрагмент, что бы следить какой из треков проигрывается. В общем вопрос в том, что я представлял это по другому, если не знаю как делать мне объяснят как делать до понимая. Говорю, что почитать на выходных какие нибудь хорошие примеры, конкретного ответа не получаю. Конечно, можно и самому это все искать, но ведь в чем смысл тогда? Сам вопрос собственно это я задаю не правильные вопросы? Или это не мое? Раз я не могу решить такие простые проблемы, по их мнению. Может попробовать в другую устроится или завязать с этим. И искать себе в чем нибудь другом?
>>2031325 Я тоже так думал, что меня научат. Если ты в галере обычной, можешь не ждать этого. Если не знаешь как запилить что-то - гитхаб и статьи твои лучшие друзья
>>2031325 Скажи тому хуесосу, что инициализирует медиаплеер во фрагменте, что он обмудок ебанный и желательно ему выпилиться нахуй. а потом начинаются тонны гневных отзывов в гугль плей, что ваше ебанное приложение вырубается в фоне, когда мобила улетает в Doze mode Для всех вошканий с медиаплеерами и прочей отдельнопотоковой сранью придуманы сервисы. Обновлять таймер или seekBar трека по хендлеру вполне разумный способ если заюзать Binder сервиса. Можно пускать хендлер в самом сервисе и слать локальные бродкаст сообщения. Отлавливать их в нужных активити/сервисах, и там их обрабатывать. Тоже вполне рабочий способ. Имей на плечах свою голову, анон. В твоем окружении будут толпы тупорогих уебанов с высокими регалиями и пустотой в головах
>>2031378 Нет, так делать нестоит. Это как минимум дохуя кода надо городить, а как максимум приведет к утечке памяти в итоге. WorkManager и Service уже имеют в своем составе все необходимое (Handler, Looper, Callabel & etc.) для реализации действий в отдельном потоке. Фишка в том, что WorkManager принимает в качестве параметров вызова только простые типы данных, Service может принимать Bundle. WorkManager идеальное решения для выполнения какой-либо периодическое работы, подтянуть апдейты например в базу данных с сервера. Service - для прочей другой невообразимой срани, что нужно делать в отдельном потоке
Помогити, никак не могу понять в чем проблема! Не удивлюсь, что это только в последних версия android studio. Вообщем неделю назад добавил в свой проект Firebase "в автоматическом режиме" и все было норм. Прошла неделя и теперь я не могу этого сделать в новом проекте Could not parse the Android Application Module's Gradle config. Resolve gradle build issues and/or resync., пикрилейтед. К тому же, я НУ ПРОСТО НИКАК не могу произвести ни одной записи в realtime database. 0 ошибок, все записано верно, но записей нет. Запись пробовал делать в том проекте, который удалось подкkючить к firebase ранее. Ты мне уже помогал анончик, уверен ты подскажешь.
>>2031422 А что там фиксать? Это же новый проект, созданный, что там фиксить надо то? Если это тривиальная проблема я бы нашёл решение в тырнете. Но я не смог. Подскажи, что фиксить.
>>2031419 Говнари из гугла как обычно. Даже простое окно после обновлении студии "обновить андроид градл плагин" херит тебе твои вылизанные градл файл, ибо пошел ты нахуй. Еще каждый раз при создании модуля любит въебать тебе в рутовый билд градл еще одно объявление котлин плагина, если не дай бог он там объявлен не как ты ожидаешь.
Шли нахуй эти "авто" тулы от гугла и зарегай руками на сайте файрбейза. Оттуда же скачаешь свой жсон и подцепишь в проект по гайду с сайта руками.
>>2031710 Спасибо анончик, уже 2 из 3 моих проблем это говнари из гугла, которые все с новым апдейтом похерили. 3 проблема - это нерабочая realtime database firebase драмэндбэйс. Никак не происходит запись туда, всё испробовал уже.
>>2031710 >>2032116 Ну вы видели, кого они к себе набирают?! Видели?! Тухлозадых индусов, блядь! Эти макаки темнозадые такую, хоспаде, срань творят, что уши вянут! Не зря есть выражение "индуский код"
>>2032590 Устраивайся вместо них тогда, чего ждёшь? Если они такие бездари, значит тебя с легкостью возьмут на их место. Или нет? Как ни странно, даже если их берут туда по квоте, отбирают лучших, потому что среди индусов конкуренция особенно высока.
Аноны, подскажите пожалуйста. Есть у меня во вьюМодели есть Boolean переменная, и я хочу в зависимости от ее значения запускать или не запускать функцию во фрагменте. Задача в том, чтобы эта функция во фрагменте выполнилась только один раз с момента запуска приложения (она запускается в onViewCreated и поэтому при смене ориентации она запускается снова, чего нужно избежать).
Я сделал это примерно так:
// ViewModel.kt var isGovno = true
// Fragment.kt if (viewModel.isGovno) { doShit() viewModel.isGovno = false }
Вопрос следующий - нормально ли вообще заводить вот такие простые переменные во вью модели и обращаться к ним из фрагмента? Или лучше это делать через LiveData? Все примеры которые находил всегда использовали LiveData даже для таких простых вещей как тут.
При чем мне даже не надо обзервить эту переменную с помощью LiveData, она ведь будет меняться всего один раз за запуск приложения.
Как бы вы вообще сделали так, чтобы функция не запускалась снова при смене ориентации или при переходе на этот фрагмент из другого?
>>2033811 У меня, кстати, похожий вопрос. Нормально ли в MainActivity хранить публичные переменные, чтобы фрагменты загружали туда что-то, и при их переключении (BottomNavigation) просто доставали загруженные данные оттуда?
>>2033933 Тогда проверяй savedInstanceState(бандл) на null и отрабатывай свой first time кейс. >>2034145 Либо создавай отдельный компонент с companion object, где хранятся сессионные переменные, либо используй SharedPreferences.
>>2033308 Опять эти метания стрелок by быдло. За цену нормального специалиста они с 30 индусоа возьмут за гроши и закроют с десяток направлений. Вот в чем прикол, дебич
Вы когда-нибудь задумывались как будет выглядеть мобайл через 5-10 лет? Изменится ли форм-фактор девайса(-ов)? Для меня например очевидно, что за мобайлом будущее. Изначально я думал о вкате в эмбеддед разраб, но в какой-то момент осенило - что мобайл и есть то самое, возможно через несколько лет мобилки будут оснащать новыми сенсорами, возможно это будет симбиоз очков АР + небольшое устройство (мозг + батарейка). Что думаете?
И то, что сейчас все воспринимают мобильный рынок как набор из нескольких соц-сетей и мессенджеров, не значит что так будет всегда. Индустрия оч сильно прибавила за посл. 10 лет и это не благодаря сайтам или бекенду с наворотами, у каждого есть сегодня телефон, практически каждый на земле - юзер, втыкающий несколько часов в день в монитор (будь он на мобиле или на пк), где внимание там и всё остальное. Короче делимся своими идеями, футуристическими маняфантазиями, как будет выглядеть взаимодействие с юзером через 10 лет? Столько вопросов...
>>2034425 Ты дурак? Это очевидно, как то, что вода мокрая а бутылка у тебя в очке. Страна 3го мира, миллионы голодных индусов, ебещая конкуренция в стране. Люди, что хоть чуть-чуть умнее обезьяны, лезут из страны вон, как крысы с тонущего корабля. Ты Гугль. Поманил шершавиком и сразу у твоих ног с пол миллиона претендентов. Лепота. На кой черт платить, как норм специалистам? Или зумерячий тупорогий моск абсолютно не в ссостоянии понять банальные вещи???
>>2034559 Это лишь твои домыслы, не более. Можешь даже поискать индусов, которые работают в Гугл, и посмотреть на их образование, которое они получили там, куда тебя и на порог бы не пустили. Это самый способ развеять твои маняфантазии.
>>2034802 Блядь, 99% стартапов - это проебывание собранного бабла под различными предлогами группой хитрожопых ушлепков и кормление маняобещаниями других дурачков, вписавшихся в это дерьмо. Можешь не благодарить за пояснение
>>2034710 >Кто со мной мутить стартап? >конец Ты хоть сам понял что высрал? Я прям вижу как все сразу заяву по собственному катают и идут тебе писать фейкопочту
>>2034790 Ты ебанутый? На кой хрен мне смотреть на тухлозадых на верхушке пищевой цепи, блядь? Они как раз-то и не делают ничего связанного с разработкой студии и прочего. Делает всякая чернь индусятная за три копейки в локальных офисах гугла, про которых ты никогда не узнаешь
>>2034502 Скорее всего, за текущим мобайлом так и закрепится рынок мессенджеров (на самом деле, рынок разных приложений для сервисов из реального мира, но да пускай будут мессенджеры). И ничего нового за ними не будет. За чем будущее - а хер его знает. Но пока что мобайл движется в сторону более высокоуровневой разработки а-ля «ванилечка-вебчик-фронтендик» хипстеры-смузи-полигендеры
Я вот, наоборот, в свое время начал свой карьерный путь с ондроеда, но всегда интересовался и схемотехникой, и сишкой. И понимаюсь что тогда надо было не ссать и двигать со своей провинции туда, где все это есть, лол (по итогу все равно ж съебался). Благо живу один, мозги никто сука не ебет - можна тупа заниматься своими электронномикроконтроллерными приколами в свободное время Вообще… анон… как пели одни панки, «главное - не ссать». Очень верная жизненная установка, помогает в этой жизни.
На сколько я понял, поносить гугл можно только работая в нем, да? Как жека вортанов например, которому гугл на какое то время аж запретил постить в свитор гадости про андроидх?
На связи полуёбок, который учил АПИ15, не юзает библиотеки и снова пытается вкатиться в ваш ведроид.
У меня такое ощущение, что половина дегенератов из мира пэхапэ, по пути в мирок жабоскрипта, заблудилась и попала в мобайл. И для умножения 2*2 нужно заюзать библиотеку, а чтобы библиотека заработала, нужно заюзать препроцессор аннотаций. И так 5 раз, чтобы написать хелловорлд.
Вопрос: ведроид действительно настолько петушиная помойка, что учить эти библиотеки нет смысла, если они каждый день новые? Может быть мне съебать назад в свой сишкомирок и ебать байтики на заводе за 20к, и не пытаться быть модным? Вакансий без ссаного Скотлина нету вообще, многие его выдвигают на первое место - НАХУЯ БЛЯТЬ ЭТА ПАРАША ВООБЩЕ КОМУ-ТО СДАЛАСЬ? (Сидел себе, читал туториалы по ведру в 2012-м, все было круто, думал что уж на этой то платформе будет все просто, когда деньги понадобятся смогу заработать - хуй там)
>>2036084 Вообще есть 2 стула: петушиный ндк-билд - это скрипт из НДК, который читает твои "мейкфайлы" и собирает бинари под все указанные там платформы. Недостаток - нужен не только тулчеин, но и сам петушиный ндк-билд. Альтернативный стул - сам находишь нужный компилятор, руками собираешь, подкладываешь со-шник в нужную директорию - так делаю я.
>>2036234 Во фриланс я уже не могу вкатиться, он уже сдох. Он и раньше то был не очень, а теперь вообще пиздец. Вот в славном 2007-м на фрилансе было клево...
>>2036171 >Может быть мне съебать назад в свой сишкомирок и ебать байтики на заводе за 20к, и не пытаться быть модным? Конечно, это продолжать, НО… Дядька, нахуя ты это делаешь за 20 тыр?!?!? Я уверен что ты ж можешь найти нормасную галеру, которая за байтосекс будет нормально тебе платить…
>>2036171 > Скотлина > НАХУЯ БЛЯТЬ ЭТА ПАРАША ВООБЩЕ КОМУ-ТО СДАЛАСЬ?
Вот два чая. Думаю можно в общих чертах посмотреть, поковырять и писать что ты уверенный Скотлин. Хотя я бы не хотел на нём писать. Щито поделать, ведь ннада.
> учить эти библиотеки нет смысла Сейм, когда понадобиться - тогда и буду ковырять (текущую версию,текущие бест практики)
>>2036279 Знал бы куда приткнуться... Хочу простую платформу, но хуй куда влезешь. Раньше эмбеддед был для элиты байтоебства, а нынче 20к на заводе, причем с одного завода я уже сыбал, а тут их немного
>>2036171 Вкатывайся в ндк, если ты байтолюб. Куча вакансий, где требуется знание с/с++ и ндк на ведре, и куда хуй найдешь человека, так как для 99% андроидеров это недоступно. В сферах по типу телекоммуникаций, стриминга, ИоТ, и так далее в основном
>>2037152 >>2037144 Хммммм… то есть, если я на работе работу работаю на котлиноджавах с андроид сдк, а в свободное время поебываю сишечку (правда, на микрокамнях; зависимость есть, нравится) - то мне, получается, стоит атаковать ндк?
>>2037674 Это уже к чему ближе твоя душа. Мне хотелось программировать и заниматься интересными вещами. Сишечка для этого мастхев, джава очень простой язык и тоже пригодится, но жизнь показала, что если тебе нужны деньги, то нужен Скотлин + 100500 библиотек от умственно-отсталых людей.
>>2037144 > для 99% андроидеров это недоступно Ты так говоришь, как будто для этого нужны какие-то запредельные познания и iq не ниже 170. А так, хороших специалистов всегда тяжело искать, даже просто под фреймворк ведра.
>>2037152 >>2038321 Зачем, а самое главное нахуя? Ведь 99,8% процентов проектов под андройд нахер не нужен NDK. Вот совсем не нужен. Ололоши, для конкретной задачи нужен конкретный нструмент. А не так, что давайте я буду опрашивать, к примеру, встроенный сенсор в смарте посредствам C/C++. Это тотальный долбоебизм. Тем более это не даст тебе никаких полюшек в производительности. Я даже затрудняюсь представить, что есть какие-то функции/процедуры для массового использования, что реализованы только на сях под андройд и не имеют реализации в рамках SDK
Я почему-то уверен что и байтоебам есть место в ведре. Просто врываешься на собес и поясняешь за кресты, после чего можешь обкладывать хуями скотлин - ты уже в авторитете, можешь себе позволить. Ну естественно вакансия должна быть подходящая... И таких может и немного на рынке, но какая разница, тебе ведь нужна одна... Та самая... Ну ты понел...
Мне вот скоро как раз Ndk понадобится. За два года работы впервые. На проекте на бэке используется какая-то штука для видеозвонков на базе webrtc, клиентская библиотеки есть только под плюсы и js. Нужно будет написать обертку над плюсовой библиотекой. С ндк никогда не работал и даже не видел
>>2038856 Ну okay. Давай накидай несведущим анонам юзеркейсов с NDK, да так чтоб это было не ёбоуникальноедерьмо, а вполне юзабельные вещи, умник хуев, сука
>>2038953 IoT, RTC и VoIP (анон выше вон упоминал webrtc), работа с интенсивной графикой (например картография), ну и так далее. Это "ёбоуникальноедерьмо" или нет?
>>2039056 Это именно оно. Картография... вообще хуйня без задач на мобиле. Плюс есть монополист - владелец платформы. Любая голосовая и видеохуита, крайне странная затея если ты не разработчик в Facebook и прочих владельцах подобных платформ. А для "интенсивной" график уже хуйлион лет есть Unity и прочая срань. Еще примеры?
>>2039193 >Картография... вообще хуйня без задач на мобиле Ну таки да.
>Любая голосовая и видеохуита, крайне странная затея если ты не разработчик в Facebook и прочих владельцах подобных платформ А вот это уже кек — обработкой видео в 2к21 занимается каждый второй стартап с масочками, а аудиопроцессинг для ассистентов пишут все более-менее большие компании. И то и другое стараются максимально выносить на клиент — мощностей на инференс нейронок не напасёшься.
>А для "интенсивной" график уже хуйлион лет есть Unity и прочая срань Ну, вообще говоря у юнити достаточно убогий рендер, и кроме как для казуальных игрушек он ни на что, кроме как на разогрев железа не годится. Единственный способ сделать реально оптимизированный рендер когда припрёт сделать кошерно — это написать его, блять, с нуля под задачу, без всяких абстракций и обобщённых решений. С любым пайплайном обработки медиа — всё то же самое. Помню, челик из призмы про это даже доклад делал — про то, как они свой движок для прогона моделей на гпу без синхронизации с цпу писали — даже вендоровский NPU сосал из-за наличия такой хуиты. Доклад конечно был про айос, но не суть.
>>2038856 Такой-то потешный челик — не может осилить котлин, хлебает борщи но кого-то в чём-то упрекает. Особенно учитывая текущий рынок — даже обычного андроидера не найти и берут уже кривых и косых, если ты не можешь найти работу имея опыт в плюсах — ты либо пиздишь, либо джун, либо бездарность. Фиксация на байтах — она такая.
>>2038372 >Зачем, а самое главное нахуя? Ведь 99,8% процентов проектов под андройд нахер не нужен NDK. Вот совсем не нужен. А мне вот нужен. Я не знаю, что у вас там за 99,8% проектов, у меня всего 3.5 проекта и NDK нужен везде. Простой пример: в 2012-м году я писал плеер (мой первый проект). У меня был планшет, на котором я просто хотел слушать Радио Анонимус, там было Ведро 4.0.3 (API15), а вот возможность открыть кодеки появилась только с 16-й версии. И что же мне делать? Выкинуть планшет и купить новый, где мое говноприложение будет работать? Или взять Сишные либы, скомпилять и сделать плеер, который будет работать ВООБЩЕ ВЕЗДЕ? Напоминаю - это не был коммерческий проект, это был проект ДЛЯ МЕНЯ. Мне абсолютно насрать на проценты рынка, рыночные условия и тому подобный маркетинговый бред, мне хотелось слушать Радио Анонимус.
>что есть какие-то функции/процедуры для массового использования А что ты будешь делать, когда тебе нужна НЕМАССОВАЯ функция для работы с конкретной железкой, которая существует пока что в единственном экземпляре, библиотек для которой нет и не будет и спрашивать на стековерфлоу НЕКОГО? Вернее, автор железки сидит за соседним столом, но в Андроиде совершенно не разбирается?
>>2039056 >работа с интенсивной графикой (например картография) Хочу заметить, что саму графику на Сишке рисовать совершенно не обязательно, высокоуровневых абстракций вполне себе хватит для рисования карты и даже не надо будет ебаться с антиалиасингом и тому подобной низкоуровневой хуетой. Но вот как только ты нарисуешь карту мечты, то сразу может возникнуть вопрос: а как хранить сами карты? В памяти - не влезает, на флешке - медленно, битмапы по сети тянуть - в оффлайне работать не будет. И вот тут байтоебство может проявить себя во всей красе.
>>2039193 >Это именно оно. Картография... вообще хуйня без задач на мобиле. Плюс есть монополист - владелец платформы. Какой такой владелец? Владелец платформы - это я. Я купил устройство, оно принадлежит мне (а не как у дебилов с заблокированным загрузчиком).
>Любая голосовая и видеохуита, крайне странная затея если ты не разработчик в Facebook и прочих владельцах подобных платформ Ох мальчик, был бы у тебя опыт на фрилансе, где каждый день рождается 100500 стартапов связанных с видеотелефонией, хуйни бы ты не говорил. Это нужно почти в каждом втором приложении, и даже если не нужно, то это все равно попросят. Правда что там нынче на фрилансе происходит я не в курсе, оно для меня сгнило уже давно, нынче я пытаюсь найти работу.
>А для "интенсивной" график уже хуйлион лет есть Unity и прочая срань Очень хочу посмотреть, как на юнити ты будешь делать симуляцию обхода фрезы на пилораме, или как ты будешь показывать рабочему какую балку надо взять и в какое место стройки положить. Это не игры, где модельки можно заоптимизировать и запекать с тенями, это реальные объекты.
>>2039243 Котлин мне не позволяет осилить брезгливость, я писал на очень многих языках, и не все языки одинаково полезны. Про знание Плюсов я тут не писал. Надеюсь, ты не считаешь, что Сишечка и Плюсы - это один язык?
>>2039383 >в 2012-м году я писал плеер Давай еще вспомним времена ZX-Spectrum, когда кроме Basic ничего не было и ты захотел сделать на нем игру аля Doom >когда тебе нужна НЕМАССОВАЯ функция Ты тупой? Тебе пишут 99,8% всех проектов. Оставшееся, как раз эта твоя нитакая хуита. Но это абсолютно не значит, что нужно из-за этих 0,2% возводить NDK в абсолютноимбовуюмегаЁбу обязательную для всех задач, блядь. Тебе и твоим поддувателям, ебаклакам, уже кучу раз ИТТ написали, что для каждой задачи есть свой инструмент и нехуй из пушки шмалять по комарам >делать симуляцию обхода фрезы на пилораме На мобильном девайсе? Ты сосвсем кукухой трунулся, ололош?
и вообще, судя по всему, ты ебанат, РАБотающий в очередной госпараше. Уж слишком пизданутые идеи уровня, "а давайте сделаем прогу-ебу шоб ебашила, как Ansys и шоб работала на 386 компе и шоб, короче денях на разработку не надо было тратить", ты высираешь ИТТ
>>2039383 >В памяти - не влезает, на флешке - медленно, битмапы по сети тянуть - в оффлайне работать не будет. И вот тут байтоебство может проявить себя во всей красе. Интересно как?
>>2039441 Я бы не против подискутировать на тему нужности или ненужности тех или иных технологий, но с тобой это делать неинтересно - это как разговаривать со школьником без опыта.
Что-то перегорел писать свои проекты. Кому и что я пытаюсь доказать? Даже если ты НИТАКОЙ как все, любая годная идея требует нереальных трудо-временных затрат, в одиночку такое не вывезти. Для любого более-менее серьезного проджекта нужна команда разрабов, бесплатно никто работать не хочет + чтобы развернуть что-то в облаке нужны деньги. Читаешь двачи, слушаешь людей из индустрии и тут до тебя доходит - что все блять одинаковые, одни и те же идеи, ты не уникален, просто смирись с этим, вписывайся в рыночек или иди нахуй. Пытаюсь вытравить из головы свой подростковый максимализм, снять розовые очки наконец.
А вы следите за новинками в мире мобилок? Какие сейчас девайсы актуальны? Мне кажется для байтоебов особенно интересным должно быть какие новые фичи с тчк зрения железа сейчас внедряются. Процы на арме завезли? А процы для нейронок? Какие-нибудь новые сенсоры, датчики?
>>2039856 Это зависит от того, что именно ты хочешь получить. Если хочешь жрать оплачиваемое говно, то будь готов к скорому выгоранию. И если твои идеи направлены на скорейшее получение бабла, то не удивительно, что "у всех идеи одинаковые" - все это пытаются сделать, вот и тырят известных схемы друг у друга.
Если же ты хочешь создать что-то для себя, интересное и великое, то просто начинай это создавать. И не важно, вывезти это в одно рыло или нет. Дорогу осилит идущий, и порой даже хорошо, если ты не знаешь, как далеко можешь зайти.
>Процы на арме завезли? А процы для нейронок? Какие-нибудь новые сенсоры, датчики? Процы у большинства изначально были на Армах, процы для нейронок пока экзотика, но уже есть, а вот датчики - ты сам можешь приклеить к своему телефону почти в любом ассортименте.
>>2039906 Службой в армии не горжусь, да и армию тут не упоминали. Упоминали мой любимый Спектрум. А написал я это потому, что уверен, что мой собеседник Спектрумы в глаза не видел, но почему-то их тут упоминает.
>>2040428 > что-то для себя, интересное и великое А жрать на что?
Ну естественно все идеи так или иначе связаны с получением какого-то профита, сайд-эффект в виде какой-то пользы для общество это уже вторично, почему? Чтобы обеспечить возможность пилить этот проджект и при этом не есть вафли Яшкино. > идеи направлены на скорейшее получение бабла Так что коммерч. составляющая также необходима, хоть я вообще социалист и НЕПРИЯТНО думать о коммерч. выгоде.
>>2040429 Со жрать как раз и сложно. Если бы не жрот, я бы в рот ебал все эти собесы и даже бы на километр бы не подошел к этому Скотлину. Но с другой стороны, если думать только про бабло и поедание кала, то сильно одолевает желание удавиться, чтобы этого всего не видеть.
>>2040447 Значит у тебя не все так плохо, раз возникают желания разбираться в сортах говна. Хотел бы жрать, то даже бы не вздумал вякать и изучал бы все подряд, а так только ноешь на анонимной борде за зря
>>2041683 >>2041699 К сожалению, мне уже не 18 лет, я не могу похвастать нейропластичностью и легко принимать новейшие тенденции. Это когда тебе 18, ты легко можешь стать вегетарианцем, феменистом и шутливым программистом на Скотлине. А когда тебе 40, то все это воспринимается как сорта говна, а попытка насильно заставить себя в это вляпаться, похожа на попытку заставить вегетарианца сожрать жареной человечены.
>>2041967 > вегетарианцем, феменистом и шутливым программистом на Скотлине
меньше 27, программирую на Котлине чем, в принципе, не горжусь и от чего не супер прям в восторге, но терпимо, нихуя не вегетерианец, ебанутейший реднек, которому дапесды все эти ваши феменизмы-хуйвротчленизмы-альтрайт-анусы-всеэтовашенепонятноеполитговно и вообще, ЛЮДИ - ВЫ НИХУЯ НЕ ПРЕКРАСНЫ, ВЫ ТУПА ХУЙ НА БЛЮДЕ!, тупа работаю работу в будни и все. Вэлкам ту зе клаб, бадди!
>>2041967 Знаешь, вот прямо сейчас, прямо сейчас я тебя понимаю. Лето, жара, какой нахер Скотлин. Но нужно проще к этому относиться. Учишь = вкатываешься. Не учишь - не вкатываешься. Хочешь не вкатиться? Не учи.
Я вообще что-то ебанулся с вашим погроммированием, пытаюсь свою жизнь раскладывать по тасочкам. Заберите свою романтику и принесите прагматику.
Представь как будешь щеголять на своем кабриолете по своему мухосранску, или любую другую мечту, что-то, что сможешь закрыть при помощи финансов. Может такие практики позволят твоему мозгу выделить достаточно дофамина для того, чтобы хотя бы НАЧАТЬ. Ну и мне не мешало бы поучить. А вообще Скотлин это абсолютли тоже что и Джава, мне так сеньор один сказал.
>>2041967 Лол, кек, новокек. Уволился с очередной РАБоты пару лет назад. Херячил инжеНЕГРОМ, имплементил и админил тучи всяких мегаёб почти 5 лет в мегаохуевшей забугорной галере. Пока сидел без работы, освоил этот ваш девелопмент под ведройд где то за год, поднатаскался в мегомодном девопсерском смузипоносе. Тосую теперь РАБоты, как карты в колоде, перекатываясь из разрабов в девопсеры и обратно, выбирая местечки по профитнее. Вроде норм, деньги имеются, жить можно. Так что твой высер - дешовая отмазка обычного неосилятора-лентяя
Аноны, нужна ваша помощь. Хочу сделать фрагмент с настройками приложения. Там должен быть свитч темы (темная/светлая). Вопрос: Как мне определить текущую тему приложения чтобы установить значение этого свитча?
>>2041967 А нахуя ты вообще перекатываешься в ведро, если есть куча мест, где нужны байтотрахатели? Кроме заводов ещё куча мест — от геймдева до поисковиков и нейронок в машинках.
>>2042160 Ну так либо отдохни, посмотри маняме и подрочи, либо выпились уже, пол треда ноешь, сука.
>>2042267 >Кроме заводов ещё куча мест — от геймдева до поисковиков и нейронок в машинках. Ну я больше в эмбеддед, в этих ваших гейдевах и нейронках надо математику знать, а я все что сложнее 2+2 не сильно осиляю. Хотел бы конечно делать бекенд, имел даже опыт написания веба на сишечке, с хайлоадом, но... Хуй знает, кому такое надо, как такое продать.
>Ну так либо отдохни, посмотри маняме и подрочи Так у меня перманентная усталость, я уже пару лет нихуя не делаю вообще. Дрочить особенно тоже уже не надо, возраст не тот. Тут бы таблетку сожрать и заснуть, но чтобы встать и выпить ее, я 3 часа прокрастинирую
>>2042404 Сходи к врачу проверься на гормончики, скорее всего тебе надо здоровье как-то подтянуть, чтобы баланс восстановить, хотя бы банально витамины + занятия физухой. Нужно жить по расписанию, иначе все катится в пизду.
>>2042404 >Хуй знает, кому такое надо, как такое продать Яндекс/мейлач/вконтач/любой хуйлоад. Придётся правда плюсы подтянуть и алгоритмы подрочить месяцок на литкоде чтобы туда пройти.
>>2042404 >Дрочить особенно тоже уже не надо, возраст не тот. Пчел, ну по тебе гзт плачет. Ты же последние 20 лет сидел днями и жрал пивас? И ожидаешь, что всё ок будет?
>>2042679 >Сходи к врачу проверься на гормончики Это бы имело смысл, если бы я не знал, что у меня аденома гипофиза, а значит гормончики всегда по пизде. А еще у меня дегенерация каких-то там тканей мозга.
>>2043010 >Яндекс/мейлач/вконтач/любой хуйлоад. Вот именно, что 3.5 конторы, в которые ты хуй попадешь. Раньше это было актуально для порносайтов, где миллионы хитов, но нынче они переехали на CDN и облака, так что тоже нахуй не всралось. Я тешу себя, что когда-нибудь, на старости лет, я запилю себе личный вконтактик с ютабом наперевес, а хостить буду на VDS за 5 баксов - других применений я не вижу.
>Ты же последние 20 лет сидел днями и жрал пивас? И ожидаешь, что всё ок будет? Пивас последний раз жрал 15 лет назад, нынче алко вообще не потребляю
>>2043017 Мне в принципе говорили, что я и так пишу "в стиле го", надо попробовать.
>>2043160 >у меня аденома гипофиза, а значит гормончики всегда по пизде Дык гормончики правятся медикаментозно, постоянным курсом, называется это гзт или згт. Куча народу в возрасте так делает, чтобы попозже скатиться в унылое говнище. В которое ты уже скатился, кек.
>Вот именно, что 3.5 конторы, в которые ты хуй попадешь. Пчел, ну если ты с 20 годами опыта туда не можешь вкатиться — ты же понимаешь, что дальше либо ты перестаёшь страдать хуйнёй и дрочишь алгоритмы или матан, или сидишь на заводе и даунгрейдишься дальше?
>Раньше это было актуально для порносайтов Да не, тот же порнохаб на пыхе древней сидит, и там всем похуй — денег хватает чтобы заливать всё железом.
Коллеги, добрый день! Хочу написать много пользовательское приложение, где все процессы происходят на сервере (zero rpg). Как такое гуглить? Все мои проекты были локальными, максимум, базы данных подключал. Какая база данных умеет работать, постоянно? Меняя переменные и запуская всякие свои методы-функции
>>2045496 По тем рассказам, что доносятся с веба, тут вообще райские кущи. Технологии не так часто меняются, как принято считать. Похер на конкуренцию, открою лайфхак, учи Котлин - вкатишься на изи.
>>2045618 что-то годное из материалов есть в закладках? Чего в шапке нету. Как часто приходится с java иметь дело? До уровня чтения кода джаву понимаю, стоит ли в залупу и за нее лезть или достаточно умения присобачить библиотеку и подеркать обьекты из нее?
>>2045741 На мой взгляд главное знать основные либы, всю мощь языка java в андроиде не раскрыть, плюс в андроиде ты всегда дергаешь через доп лейер абстракции. Ну короче надо знать как типичные задачи решаются, дернуть что-то из сети, какие-то тонкости Ведра в плане работы фоновых процессов, но я ждун, если что. Возможно на ведре основная работа идёт с юи, без понятия. Короче обычный высер. Можно сказать что не стоит лезть, дергай либы как тру макакен и всё будет ровно. Хотя в вакухах вон пишут знание архитектурных паттернов, какая блять архитектура в простейшей прилаге на ведре, не понямаю.
Вчера собеседовался на ведродевелопера. Рассказывал как я умею ебать байтики, реверсить ведро и всякое такое, почти час. Мне предложили писать фирменный обфускатор, но я начал мямлить хуйню что типа ничего нового не изобрету. Задали 2 вопроса по жабе - оба завалил. На этом собес слился. После собеса я не чувствовал себя плохо, просто чуть не вышел в окно. Осознание того бреда что я нес на собесе, пришло только через пару часов, от чего я захотел выйти в окно еще сильнее. А дальше тушка просто отключила сознание и я проспал 12 часов. Сложно байтоебу быть веселым и шутливым котлин-девелопером.
>>2045758 Ты уж выбирай - или миллионы абстракций, или краткий, но работающий код. Первое по феншую, второе ближе к железу, а нынче пишут не под железо, а под людей.
>>2046098 >предложили писать фирменный обфускатор, но я начал мямлить хуйню Тупой ебаклак сам себя похоронил. Ясно. Представляю ебальники тех смузихлебов, что собес вели, лол. Так Ипично слиться, насрав себе на лицо, не каждый сможет
>>2046098 Пчел, нахуя ты пытаешься вкатиться в мобилы, если у тебя куча опыта байтойобства и тебе так не нравится андроид? Иди найди себе новую работу с дрочкой мк, или на крайняк на плюсах какую нибудь десктопную залупу попиши, если ничего нового учить не хочешь.
Ты же так и будешь срать себе в штаны на каждом собесе, от тебя ожидают синьйорско-помидорского уровня, а ты жиденький джун без мотивации.
>>2046308 >Резюме байтоеба смотрит 1 компания в неделю, резюме ведродева смотрят 100 компаний каждый день А какая разница, если уровень ожиданий от тебя очевидно завышен (ты же по твоим же рассказам дiд, и в резюме наверно не 0 лет опыта), а знаний тупо нет?
Ты же дальше будешь срать себе в штаны на всех собесах, шиз. Ладно ещё, если бы ты был 20-ти летним челиком с горящими глазами — вкатился бы на джуна спокойно, а так разве что в окно выкатишься.
Алсо, среди байтойобов полно таких вот перегоревших дидов и там к таком толерантнее относятся (по моим ощущениям), и конкуренция там явно ниже на голову.
>Когда ты что-то реверсишь, то совершенно не обязательно знать, что быстрее заинициализируется: статический метод или статическая переменная. Ну если ты хоть немного знаком с бинарным форматом реверсируемой платформы, то это же риторический вопрос. Нахуя рассказывать про реверсинг, если ты с жвм таким видом ёбки не занимался?
>>2047404 хыы А серьёзно? Я вот недавно попробовал запилить навигацию через Route Activity, такая хуетень получается, для каждого экрана запускаешь контейнер-активити + фрагмент, обмазываешься интентами. Ещё и ViewBinding нормально не поюзаешь с BaseActivity/BaseFragment. Хртьфу.
>>2047375 Через фрагменты и голый FragmentManager. >>2047636 > Всяко лучше чем ебаться с оптимизацией баз Ну, на андроиде с этим тоже приходится, если у тебя база сложнее примитивного кэша уровня "учим Room за 15 минут".
Ребзззяяя!! Хочу перекатиться в разработку мобильных приложений. Я не шарю, а вы шарите. Наставьте на путь истинный! Перекатываюсь из веб-макакинга, в котором просидел 10 лет. Знаю JS (не не знаю, ни одного фреймворка). Куда лучше вкатываться - в React или в Kotlin? Где меньше предолинга? Где лучше доки и комьюнити? Свободно владею английским.
>>2047867 Если ты хочешь в кроссплатформу, то flutter сейчас более молодежный. Если в натив, то Java + Kotlin + Android SDK. Где меньше пердолинга затрудняюсь ответить, доки и комьюнити лучше в нативе
>>2047912 React совсем плох? Или ничего за него не знаешь и поэтому не можешь советовать? >flutter В свежесозданные языки меньше всего хочется вкатываться. Сегодня они молодежные, а завтра вполне может оказаться, что потратил несколько лет на изучение очередного Сильверлайта, которым пользуется только одна корпорация.
Аноны, имею data class Котлиновский с пятью nullable полями. Вопрос: Как максимально элегантно их проверить на null? Просто пять if подряд смотрятся как говно из жопы. Что бы вы сделали для этого? Может какой-нибудь экстеншн на примете есть?
>>2048373 data class User(val name: String? = null, val surname: String? = null) и в нём val checkArgs = with(this){arrayOf(name, surname).all{ it == null }} с рефлексией легко обосраться, но если хочешь попробовать, юзай котлиновский ::class, там есть готовые методы >>2048542 Ещё проще all([i is None for i in user.__dict__.values()])
Захотел занчища игорю на либгдкс сделать, клон тохи. Механику запилил, а вот с банальнейшим, казалось бы, вопросом - показом очков - пиздец. Никакие обычные андроидовские классы и прочее типа канвасов не импортируются по неизведанным причинам, context не существует вообще. Щито делать, как вывести сраные очки? Чем?
> Process 'command 'C:/Program Files/Android/Android Studio/jre/bin/java.exe'' finished with non-zero exit value 1 Произошло после импорта. Как фиксить?
>>2047926 >React совсем плох? Или ничего за него не знаешь и поэтому не можешь советовать? Нормальный RN есть только внутри фб, то что они выложили в паблик — уже аутдейтед залупа, которую активно выдавливает флаттер.
>В свежесозданные языки меньше всего хочется вкатываться. Ну дарту уже лет 10, если не больше, просто он нахуй никому был не нужен. Но спрос на него уже не сильно меньше чем на RN, и по динамике в отличие от него он идёт вверх.
Энивей, хочешь иметь не сильно устаревающие знания — учи нейтив, он и в кроссплатформе нужен будет, спрос на него в десяток раз выше и уже существующих проектов в сотни раз больше.
>>2050113 Джава-петухи агонизируют. По сути все движется к тому, чтобы гугл на котле будет воять свою эко-систему потипо огрызка.
Помню еще в 16году джаву учил и уже тогда плевался от нее, такое говно перегруженное. Может в свое время это был эффективный язык , но в современных реалиях - джава-гребец, это копатель говна легаси. Котел удачно имеет обратную совместимость, чтобы цеплять библиотеки на джаве. Убирание точек с запятой, это огромный плюс для любого байтоеба. Если бы убрали еще скобки и сделали разделение блоков кода пробелами, как на питоне. Оргазмировал от удобства. Иногда приходится читать легаси на джаве и пика прекрасно передает мои ощущения. Надеюсь котлин и дальше будет цвести и пахнуть на трупе джава-говна.
Сап, анон. Вкатываюсь в программирование, как в хобби. 37лвл. Основная работа не связана с комплюктерами. В шкалке побеждал на городских олимпиадах по бейсику. Планирую сваять простейший менеджер паролей, чтоб шифровал все в sha-файл и кидал его в гугл-диск для бекапа. Обосрите идею или подскажите, в чём сиё лучше/проще сварганить для ньюфага.
>>2050113 Вот я охуеваю, что достаточно сказать про малейший минус или недостаток котлина, как тебя тут же окружает толпа фанбоев с криками "НЕЕЕТ, ТЫ НЕ ПРАВ, КОТЛИН ЛУЧШИЙ ЯЗЫК МИРА, У НЕГО НЕТ НЕДОСТАТКОВ, УИИИИ". Это джетбрейнсолахта везде или что?
Эх, а помните времена когда котлина не было? Автокомплит был пиздатый, фаинл юзайджес и любой рефакторинг работал мгновенно, код подсвечивался сразу. Без ебучего капта обычным аннотейшон процессором все работало тоже достаточно быстро. Лижите-сосете своему жидбреинсу ради синтаксического сахарка.
>>2050117 Смузихлеб, завагинься. Нехер из котлина делать подобие скриптовой хуеты. Как ты думаешь, почему не ебашат прослойки над C со времен С++, ведь там тоже так ненависных тебе подобным синтаксических конструкций?
>>2050265 >>2050307 Че за нытье из-под шконяр? Кто-то мешает ебашить софт на Джаве? Нет. Я ебашу и мне срать Джава или Скотлин. Просто на Джаве на много больше примеров кода гуглится и не надо городить велосипеды и оттарабанивать клавиатурочасы по имеющейся синтаксической конструкции. Скопипиздил, подровнял напильником, доволен, как слон. Что Джава, что Скотлин приводят в итоге к одному и тому же кривому результату. Код, который ты накончал на клавиатуру на Скотлине не сделает твою программу лучше, той которую ты выдрочли на туже клавиатуру на Джаве. Вопрос только в процессе и эстетике, лол
Суть такова, хочу дописать в резюме retrofit, room, firebase, sqlite и может ещё что-то. Суть в том, что я нихуя этого не знаю, есть какой-нибудь лайфхак, как это быстро запихнуть в мозг, ну и самое САМОЕ главное что по этому будут спрашивать на собесе?
Короче, тема - как не обосраться на собесе, ваша любимая.
Алсо, решил дропнуть котлин. Не увидел никаких плюсов с этого перехода, аргументы в стиле ко-ко меньше кода - хуита. Ну и на джаве сижу уже неск лет, несопоставимые энергозатраты чтобы привыкать\переучиваться, а вот для упругих джаваскриптеров самое то!
>>2051258 Просто вписывай и все. Напиши семпл с каждым и этого достаточно, я не шучу. Вопросы по конкретным либам/фреймворкам, кроме RX и даггера, задают только поверхностные
>>2051281 Спс, да просто впишу их и потом если чёто спросят, скажу что читал но не учил! Вообще как-то выгорел что-то копать изучать, надеюсь так лето просто влияет...
>>2051268 > Алсо, решил дропнуть котлин. Не увидел никаких плюсов с этого перехода > Ну и на джаве сижу уже неск лет, несопоставимые энергозатраты Вот это пиздец братишка, тебе за полтос что-ли? Как может нравится жаба, где нужно тонны кода написать ради элементарных вещей каких-то, это хз
>>2051423 Строгая типизация заебись, я не знаю что ты бомбишь. Это увеличивает читабельность кода. Одна из причин почему я не стал задротить С. Просто такой ООПшный язык не очень подходит под задачи Андроид, поэтому какие-то куски выглядят громоздкими, ЮИ всегда был геморным в Джаве.
>>2051258 Ну если что-то на проекте используется плотно — тогда и могут прогнать. Я вот лично не ебу что на какой галере спрашивать будут, а ты можешь посмотреть в вакансии — обычно там написанл, лол.
>>2051437 >Строгая типизация заебись, я не знаю что ты бомбишь. А в котлине она какая? Дед, прими таблетки и почитай про вывод типов, это не твой войд звёздочка из си.
>Это увеличивает читабельность кода. Если на бумажке распечатать?
>>2050421 Ну пока у тебя задач сложнее хэловорда нет — оно так. Когда начинается хотя бы ёбка с потоками — джава пиздец как сильно начинает проседать относительно котлина.
Короче, спок, джаваёбы, когда джава в андроиде окончательно выдавится и даже легаси проекты будет сложно найти — просто пойдёте хуярить энтерпрайз, зачем вам вообще эти хипсторские мобильники?
>>2051716 >А в котлине она какая? Ебаклалк, анон про текстовку кода и говорит. Куда приятнее созерцать что типа GovnoClass govno = new GovnoClass(poshel_na_xyu_yebok) вместо var govno = GovnoClass(poshel_na_xyu_yebok). А если это какая-то еба-функция, возвращающая значение? Так вообще мрак. Компилятору то похуй, но ты же не компилятор? >Ну пока у тебя задач сложнее хэловорда нет — оно так Так какая в жопу разница, еблан? Что ты на Скотлине будешь ебать вола, что на Пердоджаве, все один хуй зависит от твоего личного скилла в тематике и все ну и гугль-кунфу еще рещает. Иногда. Редко. Но решает. Да
Так, аноны. На хуй этот пиздеж про особенности говноязыков, перейдем к конкретному кейсу, который ебет мне мозг, сука. Есть две активити и один сервис. Активити биндядтся к сервису. В сервисе живет гребанный MediaPlayer. Сервис стартует по startService(Intent)и становится startForeground(Notification) и MediaPlayer делает WakeOnLock, PrepareAsync все дела. Все робит, музло басит, активити по очереди отваливаются, подключаются к сервису, как хотят. Приложоху можно свернуть, все в огнях работает. Но стоит приложуху закрыть, ведройд схлопывает сервис хотя startForeground(), сука. Нотификация висит. Музло не басит. Еще заметил, что стоит приложуху стереть, а потом поставить по новой, при первом запуске такого не происходит. Все работает, даже при закрытии приложения. При последующих запусках - все, как я описал в начале. Внимание, вопрос: Какого хуя, блядь?! Или ЧЯДНТ?
>>2051716 >Ну пока у тебя задач сложнее хэловорда нет — оно так. Когда начинается хотя бы ёбка с потоками — джава пиздец как сильно начинает проседать относительно котлина. Чиво блять?
>>2051806 >Ебаклалк, анон про текстовку кода и говорит. Мань, спок, ананас запутался в показаниях — наверно лучше не пердеть, если не знаешь смысла термина, не находишь, м?
>Куда приятнее созерцать что типа GovnoClass govno = new GovnoClass(poshel_na_xyu_yebok) вместо var govno = GovnoClass(poshel_na_xyu_yebok) Кому приятнее-то? Ладно если бы в жаве были бы нормальные неймспейсы/модули с нормальным алиасингом, но там же подзалупа, и ирл код превращается в >AbstractSingletonProxyFactoryBean<AbstractSingletonProxyFactoryBeanImpl, AbstractSingletonProxyFactoryError> abstractSingletonProxyFactoryBean = AbstractSingletonProxyFactoryBean<AbstractSingletonProxyFactoryBeanImpl, AbstractSingletonProxyFactoryError>(AbstractSingletonProxyFactoryBeanImpl())
>Так вообще мрак. Вообще мрак — это когда у тебя появится кейс для частичного выполнения, и функции будут возвращать функции (например, асинхронный лэйаут).
>Компилятору то похуй, но ты же не компилятор? Мне тоже похуй, я не называю функции func213() и не пишу код на листочке.
>Что ты на Скотлине будешь ебать вола, что на Пердоджаве, все один хуй зависит от твоего личного скилла в тематике и все Пердолинг той же многопоточки в джаве требует, внезапно, понимания темы. Если попытаться наложить на неё какую нибудь абстракцию, то потребуется знание ещё одного здоровенного фреймворка (привет, rx). Пердолинг её в котлине с корутинами — уже требует только познаний, всё есть из коробки, быстро компилится, быстро работает, флоу кода простой и вообще шишка стоит — даже ебучему джуну вроде тебя можно отдатвать писать такие таски.
>>2051992 >Пердолинг той же многопоточки в джаве требует, внезапно, понимания темы. Если попытаться наложить на неё какую нибудь абстракцию, то потребуется знание ещё одного здоровенного фреймворка (привет, rx). >Пердолинг её в котлине с корутинами — уже требует только познаний, всё есть из коробки, быстро компилится, быстро работает, флоу кода простой и вообще шишка стоит — даже ебучему джуну вроде тебя можно отдатвать писать такие таски. Корутины требуют бОльшего понимания темы, чем работа с асинхронностью и многопоточкой в джаве. Как раз таки любой джун +/- понимает, что такое тред, что они маппятся на системные треды, и что под шедулером так или иначе скрывается тредпул. А вот с корутинами подводных камней больше, начиная от понимания базовых понятий, таких как "корутина", "контекст", "скоуп", заканчивая обработкой ошибок и утечками. Не говоря уже про то, как это работает под капотом, что такое "нет собственного стека", CSP и т.д. Так что спиздануть, что корутины проще может только ебанат, который дальше туториалов не доходил А про >быстро компилится ты бы лучше вообще молчал, серьезно, плюешь против ветра.
Сап 300к/наносеки они же итт?. Есть вопрос: актуальна ли информация на startandroid.ru? Можно ли по ней делать первые шаги или нужно искать что-то поновее?
>>2052569 > Так что спиздануть, что корутины проще может только ебанат, который дальше туториалов не доходил Ну, ты прям хорошо себя описал. Как все датарейсы и дедлоки, которые наплодят джуны, "понимающие" что такое треды выловишь — так и начинай пердеть, а пока — пиздуй чистить заваленный крештрекер, солнце ещё высоко.
>>2051716 > просто пойдёте хуярить энтерпрайз А вот и пойдем? найдем себе укромное местечко в галере на Джона Барина за 5к, а вы дрочите дальше на свой Котлин!
>>2051437 Если что, это я писал и считаю что написал хуйню. Я всё ещё ждун в каких-то аспектах, не так много языков знаю, а котлин - почитал пару дней, некоторые конструкты вижу впервые, которые показались сложны, чтобы впихнуть в мозг. Может из непривычки. Тем не менее, если Джон Барин не платит - хуй я его буду учить.
Ищу уже целый день, нихуя подобного моей ситуации.
Все статьи о том, как создают новый аттрибут и добавляют его в свою новую кастомную вьюху. Мне же надо просто создать новый аттрибут и иметь возможность ссылаться на него из уже существующих вьюх. Походу это невозможно и нужно обходиться существующим набором аттрибутов, "colorControlActivated" похоже на то что мне надо..
Но ебаный рот того андроида, почему простые вещи так СЛОЖНЫ. Или я слишком тупой чтобы найти правильную доку
Анон, можешь поделиться своим видением рынка мобайл-разработки в РФ на данный момент? Нужны ли мобайл-девы в крупных компаниях? Или большинство работ это разовое запиливание фич через цепочку посредников-однодневок? Чего вообще ожидать, на что обращать внимание при выборе компании? Каков рыночек сейчас.
>>2054348 Я на плюсах два года писал. Я перекатываюсь с другой работы. Просто до этого писал на плюсах чисто логику бекендовскую, а теперь буду совсем другое делать. Хотел чтобы аноны порекомендовали что почитать по embedded на android, но чет никто так этого и не сделал(
>>2054377 >Нужны ли мобайл-девы в крупных компаниях? Да. >Чего вообще ожидать, на что обращать внимание при выборе компании? Судя по твоим вопросам — ты ждун. Если это так — то у тебя нет возможности что-то там выбирать — она появится когда ты будешь хотя бы крепким мидлом и сможешь выбивать по несколько офферов за несколько собесов. Поэтому если хочешь вкатиться — тыкайся всюду, и получай опыт где возьмут.
>>2054377 >Нужны ли мобайл-девы в крупных компаниях? Да >Или большинство работ это разовое запиливание фич через цепочку посредников-однодневок? Тоже да. >Чего вообще ожидать, на что обращать внимание при выборе компании? Зависит от тебя, но я советую выбирать большие технические компании, которые много выступают на конфах и много ебашут опенсорс. Вот это самая деструктивная хуйня, которую только можно посоветовать >>2054563 >у тебя нет возможности что-то там выбирать — она появится когда ты будешь хотя бы крепким мидлом и сможешь выбивать по несколько офферов за несколько собесов. Поэтому если хочешь вкатиться — тыкайся всюду, и получай опыт где возьмут. Никогда не соглашайся идти в первое и место куда возьмут. У тебя должно всегда быть несколько вариантов, и из них нужно выбрать наилучший. Первое место работы очень важно, поэтому подбирать его нужно очень тщательно под себя.
Согл, почему-то в индустрии принято ждунов возить по говну, как в плане зп, так и отношения к ним, мол устраивайся куда возьмут. Что зе дедовщина, мать её!1
>>2054753 >Вот это самая деструктивная хуйня, которую только можно посоветовать Деструткивная хуйня — это советовать вкатышу воротить носом. Если у него такая возможность будет — пусть воротит конечно, но ирл это очень большая редкость.
>>2054761 А это, как любят говорить, рыночек порешал, лол. Ещё раз — если тебе повезёт и будет возможность — выбирай. В любом случае ты с испытательного сможешь съебать чуть ли не одним днём, у тебя же никаких обязанностей даже не будет.
>>2054753 >>2054761 Алсо, именно с первой работой упарываться смысла точно нет — она нужна чтобы через полгода-год съебать на x2-3, и сидеть там больше прямо скажем такое себе — в лучшем случае получится выбить +20-30% к зп.
Анонсы, хелп, ресайклер не обновляет список, когда изменяются данные лайвдаты(через обсервер). В ресайклере вызываются clear и addAll. Как только не пробовал уже, не получается. Нужен апдейт ресайклера после любого изменения данных в источнике. ContentEquals массивов тоже не работает
>>2054998 Этому "вкатышу" поебать, поверь, собираюсь изучить бизнес-процессы, потом распродать некоторую недвигу и вложиться в свой проект. Так что я не из тех, кто будет унижаться перед кабанчиком. Но если кабанчик крупный, то унижусь. На непродолжительное время.
>>2055066 >хочу изучить бизнес процессы я бизнесман вкотился в галеру @ манагер выставил таску @ сделал таску @ повторил 10 раз @ а чо там? @ вот тебе ещё таска пиши код сука не отвлекайся
Бег кеков, если у тебя такая цель — то лучше не иди в большие компании, а найди какую нибудь мелкую/стартап — главное чтобы там менеджмент был опытный.
>>2055069 >Запись в резюме? Ну, почти что да. >Или ты реально думаешь, что получишь какой-то важный опыт Дык ты его и в крутой технической компании не получишь — вкатышам сложные задачи не дают. Из опыта — тебе будет что рассказать на следующих собесах, что и требуется для повышения лычки и заветного икса в зп.
>>2055073 Ну вот я и думаю, может не в разрабы тогда вкатываться. Но всё таки надеюсь что соберусь и сам запилю проект в одно рыло. Может так даже быстрее будет. Но идей много на самом деле.
>>2055044 У ресайклера есть адаптер. В нем реализован интерфейс, который управляет отрисовкой элеиентов и прочей логикой. Привязываешь к адаптеру свои данные, он их использует и следит за ними. Меняешь что-то в данных, вызываешь метод adapter.notifyDataSetChanged(). Адаптер перерисовывает активные в данный моменты элементы ресайклера. Профитный базовый подход
>>2055366 Какого бренда, идиот? Я говорю о получаемом опыте, который будучи полученным в ооо "рога и копыта", где нет ни нормальных спецов, ни процессов, ни кодревью, ни тестов, ни ci/cd, не даст ровным счетом нихуя для профессионального роста
>>2055368 Тут вопрос немного в другом. Как обновлять данные после каждой операции над ними? Дёргать get в VM после каждой операции и апдейтить список во фрагменте, чтобы адаптер обновлялся внутри обсервера(чего он делать не хочет), либо обновлять адаптер каждый раз в месте вызова операции, запрашивая актуальные данные? С Rx я делал это через Observable внутри VM - прямо там юзал update(data), после чего он апдейтился сам, когда происходили изменения. Здесь же получается, что нужно копировать вызовы, потому что "в фоне" он не обновляет.
>>2055395 >где нет ни нормальных спецов, ни процессов, ни кодревью, ни тестов, ни ci/cd Это всё атрибуты большой компании, которые за её приделами уже не релевантны нигде — в мелких их вообще нет, а в больших свои.
Это всё хорошо будет знать когда будешь идти на лычку синьйора/тимлида, причём зачастую кроме как на собесе ты про это не услышишь (потому что в мелких всегда будет некогда, а в больших уже всё готово), лол.
По факту, для того чтобы гребсти требуются только самые базовые хардскиллы — уметь писать, блять, код. И если ты не ебанат — уж чему-то с практикой научишься.
>>2055532 У листа в адаптере, чтобы референс как раз оставался, а данные менялись. Тут проблема не в адаптере, а в странной для меня работе лайвдаты, которая поправьте должна вызывать updateData в теле обсервера каждый раз, когда данные лайвдаты меняются. Пока нашёл решение в виде асинхронных вызовов и экстеншн функции для Deferred, который апдейтит ui в OnCompletion коллбэке. Если не ошибаюсь, в Rx было достаточно один раз подписаться и вызвать fetch-метод в onViewCreated или init'е VM. Т.е. данные меняются в бд, затем в лайв дате, после апдейтится и ui.
>>2055655 Сделай малословные, залей на гитхаб. Получишь еще один adapter delegates или groupie, это при условии, что усидчивости хватит. Тем более смотри в будущее, в композе адаптеров слава богу нет
>>2055548 > когда данные лайвдаты меняются Нет. Когда ты делаешь сет/постВалью на лайвдате. Сама лайвдата не может знать, менялся ли объект который она держит или нет.
>>2055681 Т.е. будет норм, если я буду вызывать условный fetch в init блоке vm при инициализации и в каждом insert/delete вызове? Но это в случае, если данные не изменяются в самом источнике, а если изменяются? Вызывать fetch в onResume?
>>2052795 >>2052798 Мне почему-то оч тяжело его материал заходит, хотя у него есть годные идеи, о которых раньше не думал. Но использовать как библию для изучения - нет.
Вообще сам ищу что-то для обучения, тк чувствую неуверенно себя в андроид-экосистеме.
>>2055820 А что разворачивать, он депрекейтед. Даже на нашем джавовом легаси мы его выпилили в пользу вьюбиндинга, благо хватило ума не засовывать код в xml, так что было не очень больно мимо
>>2055820 Долгое время была проблема с findViewById. До 8 андроида этот метод не принимал тип и возвращал просто View, вынуждая приводить тип, пользоваться этим было довольно неудобно. К тому же, есть очевидная проблема с типобезопасностью. В итоге, появлялись сторонние библиотеки на замену findViewById: butter knife, kotlin android extensions. Безусловно, все они со своими недостатками
Data binding это ответ от гугла, и это отличный пример того, что не все библиотеки джетпака нужны и полезны. Это какая-то дико переусложнённая срань, которая диктует смешивание кода с разметкой, типа это ок и правильно. На самом деле, это всрато (как внешне, так и подкапотно), многословно, и вообще неприятно поддерживать, не говоря уж про импакт на время сборки. А самое главное, не понятно, какую проблему оно решает, потому что от изначальной проблемы ушли слишком далеко.
В итоге гугл это признали и выпустили view binding, де факто задиприкейтив data binding. Это упрощённый вариант data binding (есть некоторые внешне схожие признаки), направленный исключительно на решение первоначальной проблемы, и, надо сказать, на этот раз у них это неплохо получилось.
>>2056221 >В итоге гугл это признали и выпустили view binding, де факто задиприкейтив data binding. Это упрощённый вариант data binding (есть некоторые внешне схожие признаки), направленный исключительно на решение первоначальной проблемы, и, надо сказать, на этот раз у них это неплохо получилось. Жаль, что нельзя подсунуть базовый класс под нагенеренные биндинги
>>2056274 Можно сделать нечто подобное: abstract class BaseActivity<V: ViewBinding>: AppcompatActivity(){ private lateinit var binding: V В onCreate пишешь setContentView(binding.root) С фрагментами чуть сложнее, потому что инфлейтить их нужно в самом фрагменте - в onCreateView. Затем создаёшь свои активити/фрагменты: class MainActivity<MainActivityBinding>: BaseActivity.
>>2056318 фикс >AppСompatActivity >инфлейтить в самом фрагменте Это же касается и Активити, офк. Разница только в различии механизмов инфлейта активити/фрагмента.
Блять аноны Флаттеристы, хелпуйте! Есть задача сделать Reordable List что б можно было перетягивать тайлы. И самое главное, когда ты двигаешь элемент, на месте куда ты целишься должен быть кастомный бэкграунд. Прикрепил пик. Обычный ReordableListView как я понял такой возможности нет, пакетов тоже норм не нашел.
>>2062010 Убирай нахуй свой конструктор и инит блок, вызывай Realm.init в provideRealm. provideRealm будет все равно вызван один раз, т.к. там синглтон скоуп. Ну и контекст по человечески в параметрах метода с нужной аннотацией.
>>2062029 Это тебе не чатик вкатунов в телеге где тебе отвечают за 1 минуту.
>>2062725 Благодарю, так работает. Разбираюсь с Realm только. Еще вопрос, если я не указал в конфиге .allowWritesOnUiThread(true), то все операции с базой должны быть в background потоке? Просто не пойму, почему работает считывание realm.where(Dto::class.java).findFirst(), когда вызываю repository.getUserFromDb().name или так и должно быть?
>>2062759 Получилось что я использовал viewModelScope.launch() { repository.saveUser(userEntity)} Без указания диспетчера, поэтому и работало. Если указать Dispatchers.IO, то он упадет с ошибкой Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created. Но ведь я сохраняю объект в Dispatchers.IO и читаю от туда же, что делаю не так?
Есть миниатюрный автотест на uiautomator для стороннего приложения (aka blackbox test), код на жабе. Все работает ок ровно до момента, как попытаться или добавить свой, или заюзать сторонный котлин класс/функцию. При попытке так сделать автотест крашится на запуске с эксепшном:
java.lang.NoSuchMethodError: No static method checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V in class Lkotlin/jvm/internal/Intrinsics; or its super classes
В студии при этом Intrinsics.checkNotNullParameter виден. Из-за того, что сам класс есть, а нет именно метода, грешил на минификацию кода. Добавлял правила в прогард рулес, ставил minifyEnabled false в билде - ничего не помогает.
>>2062844 После небольшого резерча выяснилось следующее: Проблема именно в этом >для стороннего приложения так как если закинуть в проект приложение-заглушку и натравить тест на него, то стартует все нормально. Получается, мне в штаны тест подсирает древний котлин из приложения, в котором этого метода нет (метод добавлен в 2018, судя по исходникам, лол). Тогда вопрос - как мне сказать сборщику или класслоадеру, чтобы в пакет с тестом клался колтин из зависимостей и при запуске брался тоже он, а не резолвился из приложения?
>>2062958 Ставлю жопу, что никто из присутствующих на постоянной основе UI тестов не пишет. Тем более uiautomator это когда эспрессо уже недостаточно и надо тестить в контексте других приложений и системных диалогов
Как правильно обмениваться данными между фрагментами? Fragment A - обычный фрагмент, Fragment B - Dialog Fragment (Datepicker), нужно передать аргументы из A и B и получить от B результат. Юзаю Navigation Components Варики такие насчитал: 1. Через fragment-ktx setFragmentResult {} ... 2. Через Shared ViewModel 3. Через findNavController.previousBackStackEntry setResult чето там 4. Древняя хуйня через setTarget(Fragment) и интерфейс Callbacks. Норм так сейчас делать?
>>2064007 алсо еще вопрос: я щас мпишу свой мувисерчер и буду пробовать устраиваться на джуна стоит пытаться юзать Hilt? я чисто базово знаю что это такое, но если на работодателя впечатление произведет, то готов подучить
>>2064007 > Как правильно обмениваться данными между фрагментами? Fragment A - обычный фрагмент, Fragment B - Dialog Fragment (Datepicker), нужно передать аргументы из A и B и получить от B результат Child FragmentManager. В дочерний фрагмент — передача через setArguments. В родительский фрагмент — передача через getParentFragment. Можно приводить к конкретному типу, можно завести интерфейс вроде коллбека, от ситуации зависит.
Как правильно преобразовывать данные из базы, используя flow? Данный вариант не всегда корректно работает(в некоторых случаях перезаписывает актуальное значение на старое). Если не использовать конвертацию, то данные сохраняются без проблема.
>>2064569 1) Как id может быть нуллабельным, если это primary key? 2) Зачем тебе нуллабельное имя, если ты получишь пустого пользователя, которого не сможешь отобразить, имея только id? 3) Делая нуллабельными все поля, есть вероятность получить пустой объект. Зачем тебе пустой объект? 4) Зачем создавать объект и присваивать поля, если это можно делать через конструктор в одну строку? Можно сделать UserDtoLocal и UserDtoNetwork реализующими UserDto , тогда можно будет просто написать экстеншн для абстрактной модели: https://pl.kotl.in/SSdSY-U3s С флоу не должно быть проблем, если ты не допустил ошибку в логике. Для начала найди и убери эту возможность >перезаписывает актуальное значение на старое
>>2064282 так и не могу решить проблему, гулгл ничего не дает просто нет функции registerForActivityResult ни в активити, ни в фрагменте такая хуйня даже если создать новый проект в чем может быть трабл?
>>2065609 я так понимаю мои активити и фрагменты не реализуют ActivityResultCaller и не имеют проперти ActivityResultRegistry и чем мне с этим делать теперь
Кто-нибудь может объяснить, как при setState отрисовывать конкретный виджет, а не всю страничку в целом? Например, у меня тут вот при нажатии на одну кнопку, у нее рандомно ставится бэкграунд. Однако, он будет ставиться и при нажатии на другие кнопки, поскольку флаттер при перерисовывании формы, применяет метод getColor().
>>2065443 Спасибо за советы, сейчас буду разбираться. Это модель возвращаемая realm нуллабельная, а не поля в модели. В модели все поля не нуллабельные.
Имеет ли смысл, использование абстрактного класс, если с запроса приходит модель только с id, name, lang. Они сопоставляются с локальным json, и в базе уже хранится другая, с добавленными полями из json. А в entity еще добавляются поля, которые генерируются случайно?
>>2066890 >модель возвращаемая realm , а не поля в модели В этом и проблема, явной нуллабельности лучше избегать, потому что она затрагивает и свойства объекта, т.е. ты вынужден создавать сценарий, при котором объект может быть пустым по той или иной причине. Если бы ты использовал обертку в виде условного респонса, который либо возвращает ненуллабельный объект, либо возвращает null или какой-нибудь None класс, было бы лучше, т.к. объект бы передавался без сайд-эффектов. >Имеет ли смысл Если данные сильно отличаются, имеет смысл создать объект, реализующий маппинг, чтобы было проще, если нет, не стоит тратить время на бессмысленные усложнения. Выбирай наиболее простой вариант, который требует наименьшего количества манипуляций.
>>2066904 Анончик, все-таки требуется твоя помощь. Задача состоит в том, что бы сохранять значения из EditText в базу и соответственно из нее же отображать. В общем если просто из базы брать, без livedata и каждое поле для объекта отдельно в базу сохранять, все хорошо. Но хотелось бы поять, как обновлять объектом. Что я делаю,в поля записываю значения полученные из подписки на viewmodel,в textwatcher собираю и сохраняю объект.
Я вот что подумал. При разработке под Ведроид, нужно юзать минимальное кол-во зависимостей проприетарного Гугла. Я хочу независимое ПО, чтобы в любой момент можно было послать Гугл в жопу. Или это уже не реально на данный момент? Аппаратно имею в виду. Всё еще возможно накатить на Линукс что-то другое? Короче, насколько современные вендоры завязаны на Гугл? Байтоеб-кун, отзовись.
Здравствуйте, коллеги. Че-то не могу нагуглить некоторые вопросы с собеса, ради интереса и вам вброшу(и попрошу ответов, если знаете) 1) Почему Activity вызываем/создаем не через конструктор? 2)Handler/Looper/MessageQueue где находятся в самой активити? Ну вот прям в коде так сказать? Там же есть бесконечный цикл, а значит кажется код не должен последовательно быть выполнен в соответствии с тем, как мы его прописываем? 3) Межпроцессное взаимодействие в контексте сервисов (Я так понял что надо че-то про IBinder/Binder смотреть, но очень мало норм информации по этому)
>>2069940 А https://developer.android.com/ почитать религия не позволяет? Там все предельно ясно описано. А особо пытливые ебаклаки, всегда могут качнуть символы стандартных билиотек и "порыться" во внутренностях этих системных классов. Или это не наш метод?
Ух чего же я так ссусь. Общался с эйчаром и так разволновался, что такой-то фигни наговорил. На тех собечедование наерно не повезут, хотя я его и не вывезу, т.к. там в требованиях только java и мультипоточность, как-то это подозрительно, наверно будут сильно задрачивать
>>2070014 Религия позволяет, но я сюда написал, чтобы получить быстрый ответ, а не копаться прям во всей документации (Ограничения по времени) Более того на первый и третий вопросы там ответа я не нашел (может и плохо искал, не могу что-то точно утверждать)
>>2069281 Это нормальное поведение, ты ведь вызываешь update после каждого изменения отдельного свойства. Если хочешь менять весь объект, можешь убрать textwatcher и засунуть апдейт в onPause, тогда введённые данные будут сохраняться в любом случае. Ещё стоит добавить проверку на наличие внесённых изменений. Если я тебя не так понял, уточни.
>>2070033 > там в требованиях только java и мультипоточность, как-то это подозрительно, наверно будут сильно задрачивать Не просто задрачивать, а в жопу выебут
>>2071408 дрочить дрочить и дрочить Начинаешь с Java/Kotlin core( и не только - concurrent/collections etc.) Прололжаешь - Android core бла бла бла, всякая шняга по ведроиду короче Далее - наиболее популярные либы
>>2071472 ну если будешь знать свое дело, то всем похуй По факту в ойти реально нет никакой нужды в образовании Не в смысле, что нахуй образование, а в смысле что корочка не требуется Образование по математической/программистской специальности вообще полезно по своей сути...
>>2071472 Зависит от уровня интеллектуальных способностей оценивающего. Есть бестолочи с вышкой, в жизни которых это, по сути, единственное достижение. Тебя это вообще не должно волновать. Прикладывай усилия, старайся и думай о том, как оцениваешь себя ты сам, а не кто-то другой, у тебя свой путь.
Пссс, посоны, заработать не хотите ли? Требуется написать имитацию мессенджера под андроид, где можно выставлять от балды дату отправки и принятия сообщения. Студенческий проект, можно сказать. Плюс нужно, чтобы эта хуйня запускалась на телефоне как обычное приложение и вела себя как простой мессенджер для неискушённого пользователя. Естественно, что и речи не идёт ни о каком обмене сообщениями с 2 телефонов, только локальная работа на телефоне. @14587236541
>>2073724 Года 2 назад, мельком. Конкретно то, что ты сказал, не делал с ней. Но вообще для жестов на рекуклере есть ItemTouchHelper, можешь его туда попробовать вкрутить
>>2073797 для recyclerview сделать не проблема. Для dialogListAdapter пока не разобрался как сделать, хотя должно быть просто, так как он потомок от RecyclerView.Adapter
Где по скриптам с юзерстайлз.орг подскажут? Почему скрипт активируется после загрузки сайта в авто режиме для скрипта? По переменной @run-at... Если установить document-start на некоторых сайтах не срабатывает... Ещё: при прогрузке сайта открывание на Андроид меню в определённый момент в Хбраузере ведёт к применению стиля к меню... Иначе скрипт применяется только вручную.
Насколько мне проще будет вкатиться в жабу, котлин и, соответственно, андроид разработку, если я уже почти 3 года говнокожу под десктоп на c#? Просто не вижу перспектив у этого и хочу постепенно вкатываться в мобилки, не бросая пока текущую работу.
>>2074272 У всех по разному. Кто-то не может вкатиться, превознемогает и ноет. Кто-то как я например, вкатывается за пару месяцев и ебашит через stack overflow drive development
>>2074304 Да всех и не вспомню. Сложного ничего не было, разве что пердолинг с анимациями и многопоточностью. А так прыгал с веба на андроид, потом иос, теперь вот флаттер.
>>2074399 >открытых репозиториев в адекватными приложениями Чиво? Во-первых, давай критерии "адекватных". Во-вторых, почему тебя ебет эта информация? Не думаешь ли ты случайно, что хрюшам не поебать на твои репозитории, а у тех. интервьюера есть время страдать хуйней по типу рассматривания твоих высеров на гитхабе?
>>2074411 >адекватных Что-то, что более-менее напоминает приложение, является хоть сколько-то сложным >почему тебя ебет эта информация Мне интересно >Не думаешь ли ты случайно, что хрюшам не поебать на твои репозитории Сильно тебя триггерит. Нет, не думаю >у тех. интервьюера есть время страдать хуйней по типу рассматривания твоих высеров Если есть что-то, что можно показать, это экономит время
>>2074441 >более-менее напоминает приложение, является хоть сколько-то сложным Ну у меня есть некоторое количество чего-то, хоть сколько-то напоминающего репозитории с чем-то, что более-менее напоминает приложения.
>>2074462 >будет лагать Ты про производительность Флаттера? Ну не знаю, как по мне пока работает довольно быстро, по сравнению с Xamarin Forms так вообще летает.
>>2074399 У меня 0. Просто я перекатился с веба в андроид находясь в одной компании, поэтому собеседование не проходил и портфолио нет. Было бы что-то, откликался да на вакансии
>>2075885 Должно быть стыдно задавать такой вопрос. Сишарп очень сильно похож на джаву - иногда настолько, что его выдаёт только паскаль-кейс в названиях методов, если смотреть на кусок кода. Причем не только синтаксисом, но и идиоматически, за исключением небольшого количества принципиальных различий. Зная его, ты автоматически знаешь 90% Джавы.
Есть SingleActivity в ней контейнер с bottomnav, в одном из фрагментов(пускай будет A), еще один фрагмент-контейнер с двумя фрагментами(B и C). Из A -> D(который находится в главном контейнере) передаю аргументы, соответственно там с ними работаю, все отлично. Такие же данные есть в В-фрагменте, как их передать в B -> D, перейти можно так val ContainerFragment = requireParentFragment().requireParentFragment() as ContainerFragment ContainerFragment.findNavController().navigate(R.id.D). Использую navigation components
>>2076103 Зачем пердолиться с этими костылями? Ведь можно ляпать прикрасный ГУИ без ебучих фрагментов и килотонны оберток к ним. Достаточно лишь разобраться в constraint layout например...
>>2076250 Понял, то есть пихать все в один layout, и устанавливать видимость разных view, лучше? Чем все отдельно по фрагментам, с их не большой логикой.
>>2076103 А в чём, собственно, проблема? В каждом фрагменте у тебя должен быть вызов findNavController. У контроллера ты вызываешь navigate с action из nav графа + бандл, если нужно. Таким образом, если ты вызываешь action с аргументами, они 100% будут в destination фрагменте, где ты можешь их достать и использовать. Если предусмотрена возможность перехода из фрагмента B в D, должен быть соответствующий action в графе. >>2076250 Посредственность итт, оставь свои советы для интервью, после которого тебе перезвонят
>>2076260 Шиз, когда встанет вопрос взаимодействия с элементами управления в твоих многочисленных фрагментах, ты просто вздернишься от количества оберток для реализации этого. И простая задача реализации изменения, например, текста надписи в цатом фрагменте вырастит в написание процедуры в самом фрагменте, реализацию интерфейса этого фрагмента в активити, напердоливания кода в процедуре и интерфейсном методе. И так тучу раз. Такой себе профит. Для каждой задачи есть свой инструмент. Фрагмент, изначально, решает ИСКЛЮЧИТЕЛЬНО одну задачу: отрисовку элементов активити на устройствах с большой диаганалью. Скажем спасибо тупорылым, упоротым индусам из гугла за это
>>2076305 >написание процедуры в самом фрагменте, реализацию интерфейса этого фрагмента в активити, напердоливания кода в процедуре и интерфейсном методе Что ты высираешь? Новые слова узнал? Пытаешься оправдать свою тупость и лень, выдумывая бред про интерфейсы и процедуры. Каждый фрагмент - отдельный компонент, который занимает место в общей структуре отображения и взаимодействует с другими компонентами. Сложность внедрения новых фрагментов в приложение как систему линейна, потому что всё упирается в их количество, т.к. они не влияют друг на друга. >спасибо тупорылым, упоротым индусам из гугла за это Орнул над мимикрией бездарного вкатыша
>>2076338 Почитай официальную документацию по фрагментам перед тем, как высирать свой понос тут. Что проще, хуевертить тучу однообразных вызовов в коде + обвес к ним в виде многочисленных фрагментов или напрямую обращаться к элементам в пределах одной активити, обмудок тупой? Или ты из той категории ебнутых формошлепных макак, что городят в одной активити +100500 элементов управления, а потом заворачивают их в фрагменты, лол?
>>2076358 >напрямую обращаться к элементам в пределах одной активити >городят в одной активити +100500 элементов управления >хуевертить тучу однообразных вызовов в коде ??? Активити - обложка, фрагменты - страницы, ты - долбоёб. Я бы тебя, грязнулю, точно не взял на работу. Твой потолок - дрочить интенты.
Самая большая проблема фрагментов в том, что они устарели в текущем виде. Они слишком переусложнены: под капотом куча лапши из кода, снаружи — десяток способов отстрелить себе жопу. Понимать, как они работают, практически невозможно. Этого не понимают даже инженеры из гугла, судя по косякам, что они оставляют в библиотеке фрагментов, не то чтобы рядовые разработчики. А всё из-за того, что за 10 лет назначение фрагментов кардинально изменилось. Если раньше это действительно был инструмент проектирования планшетных гуёв, то сейчас это основной инструмент декомпозиции гуёвого кода и разделения на экраны. Куча коллбеков, устаревших возможностей (тот же setRetainInstanceState) и бесполезного поведения, которое уже толком никак не изменить (фрагменты без view, два lifecycle, onCreateView/onDestroyView). Есть ощущение, что фрагменты стоит выкидывать и делать упрощённый аналог, но этого тоже никогда не будет.
>>2076485 >>делать упрощённый аналог, но этого тоже никогда не будет Почему же? Есть вполне себе годное решение, которое хорошо вписывается в платформенную экосистему - Compose. Осталось только дождаться релиза.
>>2076338 >Сложность внедрения новых фрагментов в приложение как систему линейна, потому что всё упирается в их количество, т.к. они не влияют друг на друга. Не то чтобы я хотел его дефать, но блять, да, ниразу же такого не бывает, что изменения в одном фрагменте должны триггерить изменения в другом, охуенно.
>>2076495 Нахуя дожидаться релиза? Кто тебе мешает уже год как брать его и ебошить? Уже куча продуктов давно юзают в проде, а ты все с понедельника планируешь начать
>>2076498 >ниразу же такого не бывает, что изменения в одном фрагменте должны триггерить изменения в другом Всё верно, они должны взаимодействовать друг с другом опосредованно, а не напрямую, для чего и существуют стейт контроллеры вроде navController'а. Фрагменты должны быть изолированы, а то, как делаешь/умеешь/хочешь/привык ты - другой вопрос. >>2076503 >Кто тебе мешает Никто. У меня нет жопной боли из-за фрагментов, так что я лучше дождусь стабильной и протестированной версии.
Закину и сюда вакансию Ищем Middle android developer. Зп: от 100 000 до 170 000 ₽ мес или попроектно. ЯП любой подходящий. Удаленно. Попроектно или полная занятость. Опыт работы: 3+ лет. Не вебвью.
Требования: Портфолио ваших работ, лучше, если это будут ссылки на приложения Если знаете фреймворки - вам же будет удобнее Уметь проектировать архитектуру и писать код под бизнес-задачи. Английский язык уровня комфортного понимания своей работы и приложений. Уметь работать с Figma, есть дизайнер. Нужно будет полностью брать на себя разработку приложений, кроме того, чем может помочь команда.
Что предстоит делать: Участие в формировании тз Разработка новых приложений по разным тематикам Последующая поддержка приложений Кодить с учетом будущего маркетингового тестирования готовых приложений Адаптивная верстка на основе макетов с фигмы
Условия: Работа в команде с дизайнером, Пм, маркетолог Переговоры в Slack, задачи в Asana, документация в Notion, версии в гитхаб Зп 2 раза в месяц Свободная и дружеская атмосфера
Порядок найма: Просмотр портфолио, общение, небольшое тестовое, собеседование.
Мы развиваем новое направление и ищем мощного программиста для этого. Работаем над клинерами, батарейками и подобными приложениями, после них начнем образовательные приложения. Над этим и нужно работать
Привет аноны. Вопрос к видео-знатокам. Подскажите зачем нужен Content Provider и почему у него такой сложный жизн цикл.
Но это предыстория, короче пытаюсь в обычный videoview передать прямую ссылку на видеоресурс, но вылетает что-то вроде media player: no content provider в месте, где я вызываю videoview .setVideoUri (тут прямая ссылка в виде Uri объекта)
Ссылка 100% живая
Также накопал Что нужно присваивать контент-провайдер через Mediaplayer объект непосредственно. Но я не инстанциировался от него, у меня только медиаконтроллер и videoview по отдельности. В videoview открываю onPreparedлистенера, и вызываю из медиаплеера setDataSource(но тут непонятно какой конструктор юзать, пробовал дваЖ: с 1 пар-м путь-к-дате, с двумя где нужен контекст)
В общем, кул стори, буду благодарен за любой респонс.
>>2077993 >разбираюсь с паттернами проектирования Тогда давай помогу. На предыдущем линке обычная фабрика, создающая инстанс фрагмента (instantiate), статический фабричный метод, создающий инстанс clazz (loadFragmentClass) и синглтон (loadClass), создающие clazz. Вот пример использования фабрик/фабричного метода: https://pl.kotl.in/5YHgoVnft, всё довольно просто. Что касается фабричного метода, самая частая и лучшая практика - создание инстанса из статического контекста, что позволяет получить его примерно так: SomeComponent.instantiate(params), минуя конструктор. Это как синглтон, только инстансы создаются без ограничения по количество.
>>2078095 >создание инстанса из статического контекста Это уже не фабричный метод, так как он не переепределяется. Я конечно такое использую, но надо называть вещи своими именами, от ооп в этом нихуя
>>2078308 >Это уже не фабричный метод, так как он не переепределяется Переопределение опционально и не является критерием классификации >от ооп в этом нихуя Ну да, учитывая тот факт, что метод создает новый объект. Не вводи в заблуждение
Есть контейнер в нем 2 фрагмента. Контроллер управляет ими, в соответствии, если список пустой - то фрагмент с возможностью добавить в список, второй фрагмент сам список. Все работает, но есть возможность перехода между ними с помощью системной кнопки назад, хотя в параметрах есть app:popUpTo="@id/list" app:popUpToInclusive="true", это можно убрать? Чтобы контейнер был только с один фрагментом в бакстэке, или надо переделывать на один view и там менять visiblity layout?
Аноны, как работать с лямбдой livedata? Как вызвать emit из контекста корутины? Если присваивать значение переменной и вызывать emit с ней, выбрасывается пустое значение. как же горит от этой лайвдэйты
>>2080598 И ещё вопрос - как сделать так, чтобы она сама обновляла ui? У меня, блять, viewmodel висит на контексте активити, эта хуета всё равно не обновляет, пока я не вызову onBackPressed или не сменю фрагмент. (сам get метод вызывается внутри init блока vm)
>>2080671 Фрагмент чаты, я сделал контейнером, который содержит два фрагмента, и управляет ими в зависимости от условий. Но переход backstack состоит из 2 фрагментов, можно сделать, чтобы был внутри контейнера только один?
Привет анон. Учусь андройдить. Пишу небольшой пет-проект. И все время заглядываю в другие проекты, где схожий код написан(который делал по книжке или по видео) и стараюсь оттуда тащить всякие атрибуты xml файлов, т.к. по памяти вспомнить не могу и другое говно. Это нормально? Или за такое палкой хуярят на работе? Стоит ли до мышечной памяти задрачивать все эти параметры, алгоритмы реализации и т.д. Или когда-нибудь все само придет?
Думаю к осени допишу и высру в гугл плей. И не стыдно будет из сычевальни на собес сходить.
>>2081421 Откуда угодно копипастить нормально. Просто в некоторых вопросах ты рано или поздно дойдешь до стадии, когда тебе уже лень гуглить и проще сесть и написать, а в достаточно узких вопросах ты вообще хер что нагуглишь.
Есть ли какой-нибудь хороший курс на тытрубе, чтоб от установки студии и до создания простого приложения, только чтобы с котлином. Хочу по-быстрому основы ухватить и дальше пытаться пилить что-то. Опыт в погромировании есть.
Каким способом принято добавлять некоторое количество простых элементов(textView например) в фрагменты в RecyclerView? Например тэги или некоторое количество мелких картинок Неужели еще один рекуклервив внутри городить?
Хочу вкатиться в разработку игр (именно игр) на android. Ранее окончил вышку на тыжпрограммиста, после выпуска нигде не работал, погромированием занимался чисто для себя и то редко, писал на c++, js, пытался трогать python, ковырял немного чужой проект на java. Нигде не работал, коммерческого опыта разработки нет. Заебало сидеть 2 года (мне сейчас 24) на шее у мамки, и вот я решил сделать "хуяк-хуяк и в продакшн" свою нахуй никому не нужную игру, которую даже никто не скачает. В любом случае, буду пытаться двигаться в этом направлении и набивать руку + опыт.
Перед вкатом задумался о том, что надо бы вкурить как-то и где-то современные принципы разработки на данный момент. Для этого думал найти какую-нибудь книжку по теме, вроде "Android Cookbook. 2nd Edition". Как она? Вроде не сильно старая (2018).
Еще волнует вопрос, касаемо оптимизации под разные устройства, с разной начинкой, разными разрешениями экрана. Как всем угодить? Какие можете дать советы? Может даже почитать что есть по теме?
>>2084514 Ну либы джавовские это да. Я имею в виду тонкости языка всякие. Мне вот морально влом вкатываться в скотлин, глаз наметан на джавовский код стайл, постоянно приходиться тратить лишнюю секунду-две на просмотр сигнатуры метода и прочее, вот вообще ноль вижу бонусов переучиваться, только если Кабан Кабаныч попросит.
Короче имел в виду лучше тебе лишний раз повтыкать на синтаксис скотлина, чем на джаву.
>>2084864 Я решил с джавы начать, базы у меня никакой нету, только жс, скорей всего я жидко обосрусь и пойду во фронт. С другой стороны андроид выглядит интересным, у меня телефон андроид, есть желание запилить пару приложух под свои нужды. Вакансий хуй да нихуя, но и толп вкатышей меньше. Андроид выглядит нишевой хуетой, по сравнению с фротом или беком на джаве, но мне пихуй, я великовозрастный сыч маня фантазер.
>>2084957 Не, я не хочу писать простенькие игры на этих движках и тянуть метровые зависимости в продукт. Мой девиз - быстро и компактно. Чтобы гречневые на своих пятых ведрах довольствовались новинками мобильного игропрома. Может быть даже на нативном с++ буду писать, но это не точно.
>>2084972 А в чем проблема написать пятнашки на opengl? 19 часов может быть ты имел ввиду? Меня больше волнует то, как эти пятнашки заставить работать на всех устройствах одинаково хорошо. Ну и какие решения при разработке на ведро лучше принимать, а про какие уже забыть. Ведь, если я пойду сейчас искать инфу в интернете, я буду натыкаться в основном на статьи 2012-2015 годов. И даже если найду "свежую", приемы от туда будут все равно, скорее всего, устаревшими. Надеюсь только на подсветки deprecated в ide. И не факт, что я буду писать на плюсах, я просто пока думал об этом.
>>2085008 Ясно. Придумал какую-то хуйню и поверил в нее. Ты хоть раз писал на плюсах, естественно, используя графическое api? Да даже язык тут ни при чем. Достаточно сравнить только условный голый opengl и какой-нибудь unity. Простенькие игры на первом можно написать за несколько дней/недель. А возможность делать это нативно на с++ в java не более, чем возможность, а не требование.
>>2085012 Шиз, ты же сам пишешь >я буду натыкаться в основном на статьи 2012-2015 годов и тут же жидко серишь себе в штаны, лол. Никто в здравом уме и при трезвой памяти, не пишет игрульки под андройд на плюсах, лол. Ты от оверхеда в кодовой базе ебанешься нахуй + ты охуеешь ковырять ведро в поисках нужного API. Не занимайся хуетой и делай, как посоветовал этот анон >>2084957
>>2085023 Что ты несешь? 1. Я еще не определился точно буду использовать кресты на начальном этапе или нет. В любом случае пятнашки я не собираюсь писать на них. 2. Какого еще нужного апи? Если речь о графическом, то оно уже есть, как и знания о нем. Это opengl. 3. Если бы я и использовал кресты, то только в местах, где можно выиграть ощутимо в производительности. 4. Я писал лабу уже, когда учился еще, в которой делал вставку c++ кода, который в свою очередь ни чем не отличался практически от java кода. OpenGL это спецификация, которая на любом языке практически идентичная, понимаешь? А подхватывать с++ код в жабе не проблема.
Или о чем речь вообще? О том, что лучше использовать уже готовый движок, вместо api? Если да, то ясно. Я это даже комментировать не буду. Каждый дрочет, как хочет. Я больше преследую изучение и обучение. Надо будет разобрать .png картинку на байты, разберу - "попердолюсь" на славу.
Любимые анончики, есть вопрос по поводу play market и admob. У меня в приложении есть 1 баннер и 3 interstitial, которые работают в тестовом режиме. 1) Верно ли я понимаю, что для interstitial и вообще каждого юнита нужен только один id на приложение? 2) Чтобы запостить app ads txt через одноименный хостинг, нужна ссылка на приложение в маркете, т.е. если я опубликую приложение, рекламы не будет поправьте , но баннеры пустые? будут. Правильно ли публиковать готовое приложение с предустановленными рекламными юнитами?
>>2085206 Есть четкие требования и правила к размещаемым рекламным материалам в приложениях Google Play. Их нарушать ни в коем случае нельзя. Забанят к хуям сразу. Кури мануалы в соответствующем разделе AdMob, там все расписано. Даже круглый ебанат-двачер поймет. Без app-ads.txt, Match rate твоего рекламного юнита будет 0%, что в конце месяца выльется в штраф на выплаты. Короче, тебе просто не заплатят за рекламу, лол. Поэтому, этот файлик абсолютно необходим и он должен быть корректен и доступен постоянно для робота AdMob.
Если ты юзаешь только ГугльПлау, то абсолютно похуй, какой там формат будет. Да и все уже хуй знает сколько используют appBundle, ибо там плюшек миллион.
>>2084892 Эх, если бы. Скорее вечный вкатывальщик.
>>2084914 Да залетай конечно. По мне так мобайл хорошая ниша, без лишней потогонки. ХЗ что по коре тебе посоветовать. В ведроиде не так много концепций применяется, на каждый пук свои гугловские обёртки, но их заучивать нет смысла, тк постоянно что-то меняется. Вообще не знаю что на собесах спрашивают, мб узнаю скоро.
>>2085286 Сколько unit id нужно для трёх баннеров одного типа в одном приложении? Один на всё приложение или три разных? Публиковать приложение сразу с рекламными баннерами, даже если реклама будет доступна позже?
Анон, требуется твоя помощь. У меня есть LiveData в которую я сетаю сообщения от пользователя и ответ от сервера, в ней же сохраняю, думал, что логика нормальная, так как ней будет всегда актуальное значение. Нормальное сохранение будет только, если вызывается onDestroy. При вызове он onPause и возврате назад, она сохранит еще раз, уже сохраненное сообщение. Что является нормой для LiveData. Переделал на SingleLiveEvent и вроде работает. Вопрос не поминаю как? И как лучше сделать может надо как-то по другому сохранять? может через flow? Надежда, только на тебя и твою мудрость. chatFragment -> https://pastebin.com/3MA5UUzN chatViewModel -> https://pastebin.com/Kryb64v2 singleLiveEvent -> https://pastebin.com/AW945PdK
>>2085469 Анон, ты заебал. Тут тебе что, консультация Гугла, блядь? Тебе указали уже в каком направлении копать, ну так лопату в зубы и вперед. Ленивый хуесос.
>>2086085 Значит, ты, сученыш, собрался бабулех рубать на рекламе, а аноны должны тебе еще все разжевывать за бесплатно, нахуй? Давай может еще за тебя все сделать? Видит мочух, я был максимально доброжелателен до этого твоего высера. Ну а тепер я смелю ШЛЮ ТЕБЯ НА ХУЙ. Уебывай от сюда, мудило ленивое!
>>2086093 >я был максимально доброжелателен до этого твоего высера Ты высрал очевидную хуйню про app-ads, о котором и речи не было. Файлик, блять, необходим. Правда? Орнул над шизиком. >разжевывать за бесплатно Да потому что очевидно, что это простейших вопрос, который не вызвал бы подгорания у того, кто с этим непосредственно сталкивался. Спросил я, очевидно, не из-за лени, а потому, что не нашёл однозначного ответа. Мимикрируй дальше под джуниора, высирающего коронное "кури мануалы".
Здравствуйте двачи, зная Шарп(Десктоп, всякие там СОЛИДЫ, паттерны проектирования, ООП и тд + большой опыт с разметкой XAML), можно ли вкатиться во Флаттер+Дарт+Котлин на уровень что-то вроде Джуниора за месяцев 10? Понял, что в шарпе мне не очень комфортно, хочу влезть в самое перспективное и интересное течение погроммирование, щас уже вторую недельку курю фронт на Флаттере, очень сильно впечатлён всем этим.
>>1994880 (OP) Если хочу затронуть флаттер, то лучше брать его в последний момент, после джавы и котлина? Просто слышал мнение анона "если хочешь писать для андроида с нуля, не еби себе мозги и начинай сразу на флаттере писать тудулист"
в вакухах пишут знание Андройд SDK что это за херня? в поисковиках выдает тухлые ссылки, когда его еще в андройд студии подключать отдельно надо было, сейчас он вшит.
И чего в нем знать нужно?
И где вакухи на джунов, за месяц одна только появилась и это ДС.
Всем ку. Мне надо изучить все что связано с блютузом как можно скорее. Можно какой-то урок именно по блютузу? Если такого нет, то что есть в общем (чтобы там и про блютуз было). И еще весь гугл перерыл, а все еще хз как через блютс получить список контактов и смсок, но это ведь как-то можно.
>>2089605 Никак. Это приватные данные. ну если ты наговнокодишь свое приложение, которое их локально получит (с разрешения пользователя ессено), а потом передаст по синемузубу, то вариант есть, лолд
>>2089900 А как в машинах тогда? У меня есть тачка с андроидом на борту. Я подключаю блютуз и он автоматически стягивает все контакты с телефона. Хочу такое же сам сделать на своем телефоне в приложении. Короче, андроид в машинах может это делать как это повторить?
>>2090043 Ну анон, ты тупой что-ли? Тебе же пишут понятным русским языком, с разрешения пользователя. Ты сам открыл свою помойку с контактами, подключил ее к бошке своей мусорной жоповозки и разрешил ей скачивать контакты в приложении "контакты". Все. Ведро запомнило парное устройство и теперь всегда разрешает скачивать ему данные с твоего говносмарта. Без взаимодействия с пользователем и его явного разрешения в том или ином виде ничего нельзя скачать с штатно настроенного смартфона под управлением андройд по bluetooth и прочим каналам связи
Кратко – в синезубе есть стандарт Phone Book Access Profile. Если зайти в системные настройки синезуба и выбрать подлюченный девайс, там будет как раз галка "шарить контакты", вот это и есть этот стандарт. Судя по всему это чисто системная тема и никто не даст тебе с ней работать напрямую.
Там еще отдельное системное синезубное окно пермишона на контакты, а не стандартное.
Народ выручайте дали проект на ndk с cmake и вот не могу понять. как добавить новые файлы в проект? если делаю build -> Refresh Linked c++ projects работает, но тогда он пересобирает проект заного, а как компилировать только новые файлы?
Двач, объясни пожалуйста почему так? У меня есть мапа, у которой value строго bool (не может быть null вместо bool, поскольку я указал <String, bool>, а не <String, bool?>. И собственно меня тут просят чекнуть на нульабельность, поскольку под этим ключем находится тип bool? шта?? но там же bool. Добавив проверку на нулль, (второй пик), грит что она не нужна и ее следует удалить, вот такая рекурсия.
Соррян за наплыв ифов, потом на linq заменю, хочу разобраться с проблемой
>>2092212 Это шо, дарт? На первом скрине такого ключа в мапе может не быть, и что он тебе вернёт? Нулл. Потом и просит проверить. Либо хуярить ! в конце. На втором скрине ты не туда ! хуяришь, надо после ]
Котаны, решил попробовать флаттер, посмотрел несколько уроков и не понял 1 вещь. А че, в этом самом флаттере совсем нет визуального программирования? Чтобы сначала просто кнопки там, поля, тексты в форму натаскал, графически все скомпановал, свойства там разные натыкал, а потом логику писать. Видел только как все элементы и раскладки просто кодом прописываются, а потом компиляются и смотрят что получилось. Это для флаттера нормально вообще?
>>2092412 Весь флаттер так и работает, считай это его фишешчка. А визуальное перетаскивание ну рил для нубасов, сопоставимо с юзанием Конструкторов в бдшках.
>>2092592 Ну ладно тогда. Хотя имхо это "фишечка" уровня сонсольное приложение вместо гуя - пердоли пердолятся, белые люди обходят стороной. Ну ладно, мож ещё допилят.
Коллеги приветствую. У меня есть вопрос, прошу помощи. Я верно понимаю, что ON_DESTROY для активити вызывается только тогда, когда либо явно вызывается finish(), либо не хватает памяти(При этом убивается вообще весь процесс и для всех существующих активити действует ONDESTROY), либо если юзер собственноручно убивает процесс? И также вопрос про ViewModel. Получается, если не было вызова ON_DESTROY без изменения конфигурации, то она будет жить в памяти до этого самого вызова?(тут вопрос именно про может ли VM очиститься каким-то другим путем) Поправьте пожалуйста если что-то упустил/ошибся
Сап. Кто-то занимался такой штукой, как заливка собственной либы на собственный бекенд, чтобы другие программисты могли ее имплементить через гредл со своей стороны? Речь именно о своем бекенде, не мавен и не jitpack.
>>2095707 Поднимаешь у себя nexus или jfrog. Потом другие пчелы укажут у себя юрл твоего сервера repositories { maven { https://server.com } } и просто укажут идентификатор либы как обычно.
>>2096285 Могу. Глобально, если бы этого не было, ты бы абсолютно все придуманые уже кем-то велисипеды, типа ретрофита, глайда и прочего, писал бы с нуля для своего проекта. А так ты одну строчку прописал и выкачал.
А конкретно мне - задача от заказчика создать сдк со своим функционалом, чтобы потом другим программистам раздавать.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
>Хочу вкатится в 20/30/50 лет, не поздно?
Нет, не поздно. Лично знаю несколько примеров из жизни когда вкатывались в 30+ лет.
>С чего начать?
Для начала изучи roadmap - https://roadmap.sh/android
Roadmap анона из предыдущего треда:
Основы программирования, логические операции -> Джава(базовый синтаксис и особенности языка) -> ООП -> особенности различных версий Джава -> алгоритмы и структуры данных -> многопоточность -> дженерики -> функции высшего порядка -> Котлин -> Android SDK(UI, версии и различия, особенности оси на уровне работы виртуальной машины) -> работа с БД, CRUD(можно и на этапе знакомства с алгоритмами) -> git -> networking/REST API/JSON/сериализация -> актуальные фреймворки зачем и почему, спойлер: экономия времени -> архитектура, зависимости, инверсия контроля -> ?..
Вот примерный флоу, которому я бы следовал, если бы учился сейчас. Начал бы сразу с алгоритмов, если честно.
В эту же последовательность нужно вставить clean code, SOLID, DRY/DIE, KISS, YAGNI и прочие модные аббревиатуры, которые весьма актуальны. Что-то упустил, но, думаю, этого достаточно.
Навигация, от книг до вопросов на интервью:
https://github.com/qqqlll/Java-Thread/wiki
Очень много уроков и не только по ведройду. Почекай и посмотри, вдруг зайдет:
https://coursehunters.net/mobile-development
https://developer.android.com - ресурс от гугла с полным описанием всего.
https://metanit.com/ - ресурс с кратким разбором языков ПО, для тех кому лень в книги.
https://stackoverflow.com/ - ответы на большинство вопросов касающихся кода.
Курсы от OTUS:
https://cloud.mail.ru/public/4nHb/449Ub4Pqj
https://drive.google.com/open?id=1cxWWBZzHNRAdd0wnjN6lfLDcYqMv7ohm
Также рекомендую искать в телеге, там много подобных курсов, начиная от создания конкретных приложений и заканчивая обучением с нуля.
>Что по книгам?
Java:
Head First Java Kathy Sierra
Thinking Java 4th Bruce Eckel
Шилдта не рекомендую, говнокод.
Kotlin:
https://techrocks.ru/2020/01/20/12-books-for-kotlin-learners/ - краткое ревью 12 книг.
Flutter:
http://flutterapps.ru/flutter-books/
>Стоит ли сразу вкатиться в котлин минуя джаву?
Нет. Не стоит. Есть точка зрения, что котлин позиционируется как "удобная/лучшая джава", подразумевая то, что ты хочешь писать на джаве, но более современно и практично. Да и глупо игнорировать джавоский мир, который является в топе по числу библиотек и решений, где тебе все равно придется погрузиться когда-то в его синтаксис.
>Прочел книгу по java/kotlin/flutter и посмотрел видосы, на деле ничего не понимаю. Куда идти дальше?
Делай свои мелкие пет-проекты, можешь копировать чужие и дополнять функциями которых там нет. Главное правильно пиши сам, гугли, трать часы и дни на мелкие функции НО сделай сам, что бы полноценно понимать что к чему. Вся суть сводится к тому, что бы ты изучив ROADMAP который указан выше, вынес знания, которых хватит на создание и понимание пет-проектов с помощью которых познаешь суть разработки. Также на собесах любят когда есть портфолио в гугл плей.
>Где взять примеры проектов?
Можешь банально поискать на ютюбе или в телеграмме. Для примера:
https://www.youtube.com/channel/UCPz3xmUpIbo8jooCtV_vMNw
https://www.youtube.com/c/devcolibri/videos
>Когда можно идти собес? И что для этого нужно?
1. Нужно хорошее знание Java/kotlin.
2. Понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии (уже androidx), shared preferences, SQLite, Handlers, Executors, Content-Providers, firebase.
3. Знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам) + гугловские поделки jetpack, понимания СОЛИД и других паттернов проектирования.
4. Базовое понимание что вообще такое Gradle. Рекомендую хорошенько изучить XML.
5. И хотя бы несколько готовых приложений.
upd: Также стоит прочекать вакансии в вашем городе и собрать самый часто используемый стек технологий и отталкиваться от него.
Незабывай изучать английский, потому что гуглить придётся именно на нем ибо информации в разы больше.
Ресурсы по инглишу для нубов:
Грамматика:
https://ru.duolingo.com/
https://lingualeo.com/
Сериалы и шоу, для того что бы увидеть полный список нужно купить подписку. Есть двойные субтитры RU/EN. Цена 300 рублей, но часто проходят акции 300 рублей за 2 месяца подписки.
https://ororo.tv/
https://ororo.tv/ref/1835272 - реф ссылка. Указал потому что: Переход по Вашей ссылке дает пользователям бонус +10% ко времени их следующего абонемента.
Также советую полностью сменить язык интерфейса на всех устройствах.
Ютюб каналы с простым английским:
https://www.youtube.com/c/Anomaly/videos
https://www.youtube.com/c/EnglishClass101/videos
https://www.youtube.com/channel/UCMCjGkbqKVkjJN2sVWocz0w
https://www.youtube.com/c/SpeakEnglishWithTiffani/videos
Старая шапка. За 2019 год.
https://pastebin.com/sh7eC6R4
#1 c шапкой: https://2ch.hk/pr/res/1822731.html
#2 с шапкой: https://2ch.hk/pr/res/1908185.html