Это копия, сохраненная 25 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
>Хочу вкатится в 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 (М)
Нахуя в шапку впихивать английский? Как какать еще распиши, чем жопу подтирать, как смывать, и т.д.
>Нахуя в шапку впихивать английский?
Потому что он жизненно нужен и даёт буст минимум 30% к зарплате.
А как ты собрался изучать новые фишки да и сабж в целом без англиша гуглить ответы на возникающие траблы на стэковерфлоу и прочее чудовище тупорылое, лол?
Всё какое-то высокоуровневое, хочется как-то по полочкам разложить, а не просто юзать все эти обёртки, без понимания что там под капотом происходит. В гугл доках не очень подробно расписано, а может я просто долбоеб и не там смотрю.
Вот щас пилю "учебный" какой-то проджект, пытаюсь понять как работают Байндеры в Сервисах, понятно чуть менее, чем нихера.
А че тут понимать? Binder - API для твоего сервиса. Удобный способ взаимодействия. Можно устраивать пердолинг с Brodcast reciever, Messages и прочей залупой, а можно использовать Binder. Все зависит от задач, которые должен решать сервис. Разберись с жизненным циклом сервиса как следует и все остальное станет на свои места сразу
Я не он, но вы ты реально тупорылый
Опенсорс. Берешь обертки и изучаешь как устроено, если интересно
Нормально расписал, буду курить доки дальше.
Можно
Стоит пердолиться с этим? (чтобы обойти ограничение по памяти к примеру)
встречал в бородатые годы. считаю, что не стоит. много гемороя, 'антивирусы' могут ругаться на твою прилагу.
Понимаю что описал как ебалан, сейчас дам пример.
На пике JSON из которого мне нужен только список "similar". Класс для каждого элемента этого списка я уже создал (пик 2).
Вопрос - как мне скипнуть парсинг всей верхней части файла и взять из него только список список "similar"? Неужели все таки придется каждое поле описывать, даже те, которые мне не нужны?
В вашем андроиде нельзя сделать
const parsed = JSON.parse(rawString)
const similarList = parsed.similar
?
мимо-js
Сдрисни, динамико-дурачок.
ну так получай string и парси вручную что надо
data class Recipe(val similar: List<RecipeBrief>)
экран будет нпе в сайвинстатстайте мапвью.
Фрагмент с трекм https://pastebin.com/zLKNscqe
Фрагмент с списком https://pastebin.com/WR7EkFv0
https://github.com/mozilla/geckodriver/releases/tag/v0.29.1
нужно ли инсталлировать этот гекодрайвер или просто разместить где нибудь на устройстве. как перманентно добавить путь к этому геко в PATH? может кто то сталкивался помогите
Ничего непонятно, но очень интересно, лол
Мысль в вопросе своем вырази на нормальном языке, а не на быдлозумерячем сленге, ебанатина
Дык там написано gekodriver.exe... Тебя это не наталкивает не на какю мысль причем тут ведройд, шиз?
Ну дык тут формошлепства и верстки хмл процентов 10 от силы только убермиргиналы нахуеверчивают сложный интерфейс. Все остальное - это логика приложения самого, работа с сетевым стэком, БД если ты еблан и не смог обойтись без БД, нахуеверчивание сервисов, многопоточности и прочего для этих целей. Вообще посох пойму, откуда высралась эта мантра про фронтендеров в Android разработке? Это такой же кодинг прикладных приложений и игр, только под мобильное устройство, лол
>Ну дык тут формошлепства и верстки хмл процентов 10 от силы
Ну так написание UI не заканчивается хмл, еще надо дохуя всего, активити, фрагменты, адаптеры, презентеры, вьюмоделы, валидаторы всякие, и т.д. Это не говоря о том, что надо это все состыковать с собственно бизнес логикой, а бизнес логику подвязать к данным. Вот на эту рутину в общем то все и уходит
>работа с сетевым стэком
Какая работа нахуй? В интерфейсе ретрофита один метод написать?
>нахуеверчивание сервисов
Фореграунд сервисы уже редкий кейс, а обычные сервисы так вообще хуй помнит когда последний раз приходилось писать. Ну JobIntentService еще раз в полгода может.
>многопоточности
Ну-ка давай, расскажи какая у тебя там многопоточность? .observeOn(Schedulers.io()) - это не многопоточность
>Это такой же кодинг прикладных приложений и игр, только под мобильное устройство, лол
Да, только логики там крайне мало. Собрать данные с нескольких эндпоинтов кривого бэка - это не логика, а хуйня из под коня.
Не то чтобы прям плохо, но не слишком секьюрно на клиенте что-то хранить, только не очень важные данные. Если ты финтех прилагу пишешь, то врядли ты кладешь номера счетов юзеров, и тому подобное в локальную бд
Ебасосина, если ты ваяешь хуету из под ногтей для отрисовывания говносайта в мобилу, то это именно так. Но я говорю про ПРИКЛАДНОЕ приложение, а не прослойку между пальцем пользователя и бекендом твоего говносайта, для которого ты вояешь вонючий клиент
К чему прикладное нахуй, к твоей губе? Примеры "прикладных". Я писал прилаги в разных областях, в т.ч. ride hailing и финтех, и для всего этого это было справедливо
Так понятней? Какого хуя вылетает исключения, связанное с сохранением состояния mapView фрагмента в котором создается трек, при отображении списка всех треков.
>>1999583
Оба анона в чём-то правы.
Как я это вижу - действительно принято почему-то из мобайла делать тонкую ЮИ прослойку, всю логику выносить на сервер сайд.
С другой стороны - если пилить пет-проекты, вполне реально многие вещи реализовать на самом девайсе, вообще я за серверлесс архитектуру, вот это всё...
мимо-мобайл-ньюфаг
>Примеры "прикладных"
Network Cell Info, GPS Test, Keepass2Android, RAR это что пришло в голову сразу + тучи различных файловых менеджеров и прочих утилит. Или ты про такое не думало, хуило комнатное, тупорылое?
Вероятно у mapView есть свой жизненный цикл, как у фрагмента/активити. Прочитать документацию по этому элементу религия не позволяет?
Не думал, так как такое никто не пишет почти. Выдавать это за наиболее частовстречающиеся проекты - все равно, что сказать, что на джаве в основном пишут моды для майнкрафта
>так как такое никто не пишет почти
Макак, ты понимаешь, что ты абсолютно бесполозное говно на этом рынке? Ты как был говном, когда формошлепил в параше какой-то, так ты им и остался, переметнувшись в андройд. Тупорогая копипаст-макака, лол. Максимум твоего скилла, наваять интерфейсную парашу по типу Инстаграмм-клиента, запутаться нахуй там и эпично залочить поворот экран и масштабирование интерфеса честно, я сам охуел, когда первый раз увидел ЭТО поделье от инсты. Этож каких ослоебов они у себя держат в качестве кодеров. Даже говнотвиттер смог сделать норм клиент для своего дерьма, чтоб не было так сложна, лол.
>все равно, что сказать
Ты себя слишишь? Если ты тупой и можешь только в UI и прослойко-клиенты, это же совершенно не значит, что других приложений не существует, лол
Так сказать нахуй, что-то писать, если даже код не смотреть? или тот же скриншот. У меня все соответствующие методы переопределены для mapView.
Они отрабатывают нормально. Кроме случая, когда я сохраняю или отменяю трек, возвращаясь на экран со списком, если сохранил-то он будет виден. И если перевернуть опять будь исключение в методе mapView.onSaveInstanceState(outState)
Почему я получаю это говно?
Attempt to invoke virtual method 'double org.osmdroid.views.overlay.LinearRing.getDistance()' on a null object reference
Я через ViewModel передаю объект в активити из фрагмента. С текстовыми полями объекат все норм. Но когда я пытаюсь получить дистанцию из поля то получаю это говно. Я думал там может null, но нет, я прроверил, поле объекта не 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, короче.
Дак отдебажь стэк вызова и посмотри все. Где гарантии , что даже если Polyline не null, то у него есть distance
А как его может не быть? Я на предыдущем шаге проверял, у него есть distance. Потом его передаю в ViewModel, а оттуда он возвращается каким-то другим что ли?
Ты можешь поставить breakpoint на строке Toast и посмотреть, что там? Либо сделай явное приведение типов, может в этом дело
Давай мы тут еще за тебя твой проект состряпаем может? Ты там сосвсем охуел, мудило? Тут никто не собирается за тебя делать твою работу. Тут аноны могут натолкнуть на мысль, подсказать где почитать, а не разбираться в километрах копипаст-говнокода очередной сумасшедшей макаки, прекочевавшей из формошлепства в Андройд
Ну а куда смотреть-то? Ну вот, есть там объект этого типа. Как у него мог пропасть метод?
Явное приведение тоже не сработало
> и он выводи выводи объект типа Polyline@ там, не null, короче
Ты дебил или прикалываешься? Если объект не null то с хуя-ли все его остальные поля должны быть не null? С какими данными работает твой говнометод getDistance()? Какого хуя он генерит исключение?
Polyline - это из библиотеки osmdroid. GetDistance возвращает double. Перед тем как засунуть его в ViewModel я проверяю его и с ним все хорошо, getDistance работает. А после вытаскивания не работает. При том с остальными строковыми полями все ок.
Что возвращает user.getPolyline() в обсервере?
Ты в состоянии поставить бряк в этом ебучем обсервере и сделать Evaluate на user после его присваивания, а потом проделать user.getPolyline() в онке Evaluate? Тем самым узнать, что пошло не так с объектом. Или это настолько трудно для твоего зумерячего мозга, блядь?
Вот что я выяснил
viewModel = new ViewModelProvider(requireActivity()).get(ItemViewModel.class);
viewModel.getRoute().observe(requireActivity(), o -> {
route = o;
//тут роуту присовился объект, все ок.
});
//тут в route снова пусто. Почему так?
Нахуй ты так общаешься, животное ебаное. С хуя ли ты решил, что это моя работа, дура объебаная? Это просто обучающий проект, делаю его для себя. Нигде не упоминал, что являюсь экспертом. Соответственно пока, что не в силах понять почему так происходит. Если тебе в падлу, что-либо делать так пройди мимо, нахуй ты мне здесь предъявляешь не обосновано?
Блин, че получается что глоабльную переменную класса я не могу изменить из лямбды? В этом дело? Но ошибки Идея не выдавала. Блять. Мне всего-лишь надо передать значение из фрагмента в другой фрагмент и записать его там в переменную. Почему это так сложно сделать. Помогите
Да что мне ссылки. Я уже 3 дня голову ломаю. Сначала интерфесы пытался использовать. Потом в документации нашел вроде, что вот де, используйте ViewModel https://developer.android.com/guide/fragments/communicate#java
И че оно не работает? Бесит
В bundle можно только поддерживаемые типы передавать или сериалазбл? У меня этот Polyline не такой. И че мне делать?
Ничего не понимаю, что тебе надо. viewModel можно использовать для передачи данных между фрагментами. Их можно использовать в качестве общего класса для данных. Не обязательно использовать при этом liveData, если она тебе не нужна. Вот лаба https://developer.android.com/codelabs/basic-android-kotlin-training-navigation-backstack#0
Она вроде не полная, не помню. Там вроде есть полный этап создания этого приложения. Можешь поискать
Ты хотя бы читай подсказки IDE, ты же во втором случае не инициализировал. В первом работает, потому что в java поля буду инициализированы стандартными значениями, для ссылочных - null.
serializable и parcelable
Давайте лучше хвастайтесь у кого апп стрельнул в плеймаркете?
Ну мне надо из одного фрагмента передать объект Polyline в другой фрагмент, в котором будет создан объект юзера в который будет записан этот Polyline. Но как мне это сделать? Почему со скринов выше в глобальную переменную не записывается значение? И.е. внутри той лямбы все ок. Когда потом вызываю этот route и там пусто.
Подскажи пожалуйста почему вот тут нихуя не происходит? Т.е. присовения не произошло. Потом когда я пытаюсь обратиться к переменной route вылетает NPE
Мой апп стрельнул тебе за щеку
Почему тут не вылетает никакой ошибки? Идея типа не видит, что тут что-то не так? Что я делаю не так с этим говном?
946x648, 0:03
По говору, ты токсичная чсвшная мразь, с которой никто, даже в команде людей, которые не только «прослойки» для бекенда делают, долго работать не будет. Чао, пока.
>Network Cell Info, GPS Test, Keepass2Android, RAR
Хаха, тупое говно обличает самого себя. Если ты не можешь в красивые анимашки и няшные компоненты, то ты легко заменяешься крестухом, которого стоит посадить на 2 недели за Андроид и он наваяет 100500 "прикладных" реализаций.
Ты походу, дебил, причем отбитый. Причем тут анимашки, компоненты и прикладное программирование? Ты там от формошлепства совсем уже кукухой поехал? Какие, нахуй, крестухи? Какой еблан будет сажать Си кодера на... Андройд? Не, ты не дебил, ты ебнутый, блядь. Такого хуйлана надо на хуй гнать из любого вида разработки санными тряпками в Пятерочку, макароны по полкам раскладывать, лол
>Какой еблан будет сажать Си кодера на... Андройд?
Лол, запросто. Нормальный крестух пи реализации задачи в ПрИкЛаДнОм ПуХрОмИрОвАнНиИ как два пальца обоссать разберётся, как на джаве / кокотлине что-то такое реализовать.
Братишка, ну и как мне передавать данные из одного фрагмента в другой с этими viewModel если получается я не могу данные никуда дальше вызова метода getвынести. Мне чё теперь всю логику пихать в этот гет?
У тебя хуй пойми какое понимание слова "прикладное". Формошлепство это и есть "прикладное", так как выходным продуктом является "приложение". Противоположность прикладному - системное. А ты у себя в голове выдумал хуету какую-то
>не могу данные никуда дальше вызова метода getвынести. Мне чё теперь всю логику пихать в этот гет?
Что это значит? Какую логику, ты их используешь только для получения неких данных с другого фрагмента.
Мимо
Запости код свой (больше чем было сверху) и сформулируй, что ожидается чтобы было
Так неча постить больше. В одном Фрагменте на карте делаю маршрут. Потом передаю его в другой фрагмент в котором поля текстовые для заполнения. Я хотел из фрагмента с картой эту линию передать в второй фрагмент и там его в конструктор класса юзера запихнуть. А тут выходит я дальше вызова get из viewModel никуда не могу его передать. Я хотел записывать его в поле класса например. Как это сделать можно?
Ну вот получил я эту линию. А дальше мне ее надо сохранить в поле класса чтобы дальше использовать. А как это сделать?
Может эта твоя хуйня внутри привязана к жц твоего фрагмента и distance у нее очищается, когда ты ушел с фрагмента? Попробуй не передавать сам этот компонент, а создай отдельную модельку, в которую запихни все, что тебе надо от того компонента
viewModel привязан к базовой активити они не могут перестать существовать пока она существует.
Не вьюмодел, а polyline или что там у тебя
Блять, анон ты уверен что прогерство это твоё? Просто блять возьми создай статический экземпляр polyline в активити классе и прежде чем менять свои фрагменты передавай значение ployline в этот статичный экзепляр, а после замены фрагмента читай polyline свой от статичного. Если будет работать значит этот анон >>2000857 прав. Как можно на полном серьезе за несколько дней не разобраться с одной ошибкой, и не сделать так чтобы она работала хотя бы через костыль.
>не могут перестать существовать
Т.е. ты вместо того чтобы проверить теорию, говоришь "все должно работать, мне похуй. Почему не работает, я же ему сказал должно работать!!!!1!1111" С таким подходом тебе не стоит продолжать свои изыскания.
Ну на скринах видно как viewModel создаётся. Ему передается Активити через requireActivity(). Суть вьюМодла как раз в том что это хранилище данных которые привязано к жц основной Активити. Ну так в документации написано.
>>viewModel = new >>ViewModelProvider(requireActivity()).get(ItemViewModel.class);
Читаем документацию:
>>ViewModelProviders ()
>>Этот конструктор устарел на уровне API 1.1.0.
>>Этот класс не должен создаваться напрямую.
Анон с двача: "пук среньк почему null, я же читал документацию"
Начни с того чтобы нормально определить свою view Model:
viewModel = new ViewModelProvider.of(requireActivity()).get(ItemViewModel.class);
А дальше сам давай.
Ну братишка, ну я взял сэмплы кода с документации Гугла про Фрагменты. И все равно не работает в итоге
Так вот виджет я за 5 минут наклепаю а как сделать синхронизацию с количеством энергии в игре?
Виджеты эти, ещё ни одного рабочего не видел
хотя когда 6 лет назад делал виджет с погодой, то работал сносно. Видно гайки закрутили
Анон, ты задаешь концептуальный, блядь, вопрос. Мы тут что, Ванги все, нахуй? Хуй знает, что у тебя за высероигра, хуй знает есть ли вней персонализация игроков, хуй знает, как организована игра, хуй знает есть ли в ней онлайн оставляющая, и еще сто раз хуй его знает, блядь. Че за уебанские вопросы из разряда, как обьять необьятное, сука?
Мануал читать не пробовал, еблан тупой?
Читал, но ещё видел множество жалоб на то, что со сканом паспорта отказывали, поэтому есть желание отправлять фото заграна. Да и спрашиваю я у тех, кто лично проходил процедуру подтверждения, а не у вкатунов залётных.
Что нужно знать/использовать для разработки не тормознутой игры (2d, 3d) на Android (без Java/Kotlin)?
*Есть ли другие ROAD_MAPS ?
Юнити, подробности в гейдев треде
Возможность есть, но нужны неплохие такие скилы
Так я тебе и пишу, как анон с аккаунтом в Гугл плей, ебанатина.
всегда поражали уникумы, у которых ВСЕГДА есть свое мнение и туча отговорок на все, хотя им дают КОНКРЕТНЫЕ, блядь, инструкции, что и как делать
А в первый раз из-за чего не получилось?
Посмотрел. Либо ищи приложение, с помощью которого сможешь приконнектиться к девайсу, либо просто купи новую игрушку. Даже ios версию выпилили из стора, возиться с этим нет никакого смысла.
Уже не нужно
в нативной жабе есть спец низкоуровневые либы для работы с блютуз, но прозреваю что никто это разгребать не захочет...
Вот допустим тут я записываю данные в viewModel.
viewModel = new ViewModelProvider(requireActivity()).get(RegistrationActivityViewModel.class);
viewModel.setLine(route);
viewModel.test = 777;
Тут же дергаю для проверки их
Toast toast1 = Toast.makeText(requireActivity(), String.valueOf(viewModel.getLine().getDistance()), Toast.LENGTH_SHORT);
toast1.setGravity(Gravity.CENTER, 0, 0);
toast1.show();
requireActivity().getSupportFragmentManager().popBackStack();
Все ок, получаю 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 не кидает.
Объясните, не понимаю нихуя.
AnalSeks.jies на JavaSkvirt
К сожалению, в доках реально мало инфы про то, как что-то устроено и чем оно является под капотом. Те же Контексты, например. Да много чего.
Просто доки расчитаны на очень нежных и ранимых смузийных sjw-толерасов, а не на инженеров, которым нужно разбираться и выполнять необходимые задачи.
И, как тут заметили, хочешь что-то вот прям реально понять - иди читай исходники, которые, слава яйцам, в открытом для всех доступе.
Тут всё упирается в возможность подключиться к девайсу, т.е. в его видимость для внешних устройств. Если есть возможность, может подойти и любое другое приложение, либо некое универсальное, которое обращается к тому же интерфейсу, что и оригинальное приложение. Увы, чего-то конкретного посоветовать тут нельзя.
А где искать исходники? Может я что-то не догоняю...
В любом случае спасибо
https://github.com/osmdroid/osmdroid/blob/master/osmdroid-android/src/main/java/org/osmdroid/views/overlay/Polyline.java
Идем в суперкласс
https://github.com/osmdroid/osmdroid/blob/master/osmdroid-android/src/main/java/org/osmdroid/views/overlay/PolyOverlayWithIW.java
Находим там пик 1
Смотрим как используется поле mOutline
Находим пик 2
Получаем ровно то что я уже писал >>2000857
Еще вопросы есть? Если есть, то идем нахуй
Да забей ты уже, этот тип со своим Null либо жирно троллит, либо на стольуо конченный, что помочь ему уже ничем нельзя.
Подскажите на счет кое-чего. Вот есть у меня Room в проекте. Я с сервера подтягиваю List объектов и хочу сохранить его в бд. Сейчас я от греха подальше перед сохранением списка этих объектов полностью удаляю все что уже есть в таблице и уже потом вношу новые данные. Все это в транзакции.
Вопрос такой: А есть ли смысл вообще делать @Delete перед @Insert, если в @Insert прописано OnConflictStrategy.REPLACE ?
Каким образом Room вообще понимает что объект который ему передали в функцию с @Delete это именно нужная запись в таблице? По PrimaryKey?
Получается если я, к примеру, сохраню объект с ключом (пусть это будет ID) = 1 в бд. После чего данные на сервере почему-то изменятся и у того же объекта станет ID = 2. Если я не буду делать @Delete перед сохранением того что вытащил с сервера в бд, то OnConflictStrategy.REPLACE не сработает (потому что ключи разные стали) и у меня по сути будут храниться два одинаковых объекта, но с разным ID. Причем один из них (сохраненный первым, у которого ID = 1) будет вообще неактуальным потому что на сервере его уже нет.
Так надо чистить вилкой базу или нет?
Спасибо за ваше время и понимание. Всех благ вам.
У тебя каша в рассуждениях. ID это суррогатный ключ, он генерируется и в скулайте на мобилке и на бекенде независимо. Бекенд ID сохраняй в отбельной ячейке напр backend_id Иль нормально объясняй что тебе надо
То есть id не может обновляться. Это лютый говнокод
Сервер и клиент используют разные бд(возможно и иное, но раз речь идёт про Рум, это очевидно)
Если уникальным полем является только primary key, стратегия ничего не будет делать, т.к. id инкрементируется или генерируется для каждой новой записи. Если есть другие уникальные поля, к примеру, номер телефона, insert заменит существующую запись.
Спасибо
> Анон можешь пояснить за Java. Она вроде как на JVM, но при этом Андроид на АРТе, как это возможно?
Хочу обеспечить работу начиная с 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. Терпеть и не ныть. --
Так что-ли?
Понятно что всем сложно.
Получается я правильно описал процесс? Нет варианта не тянуть за собой deprecated функицю?
Варианта кроме проверки API и if else не существует.
Для таких вещей нужно юзать MediaStore как бы. Только ебланы кладут в системные медиа папки файлы руками.
Так а хуле? Там же, вроде, вся долбежка делается через контент провайдер, а он существует ещё со времен хуй знает каких. Разве не?
Не знаю как в треде принято кидать семплы кода, так что кину просто так.
Я делаю это вот так. И все примеры что я находил делались точно так же.
Проблема в том, что 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))
}
Не знаю как в треде принято кидать семплы кода, так что кину просто так.
Я делаю это вот так. И все примеры что я находил делались точно так же.
Проблема в том, что 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))
}
Чертова макака, порезала табуляцию
Только проблема в том, что они нахрен поудаляют приложения с 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.
Немного не в теме, это как-то связано с изменениями в их Advanced Protection Program? Где почитать подбробнее про эту шляпу?
В своей консоли Google Play, лол. Они рассылали там всю инфу. Или гуглить, кек
А текст ошибки или пару скринов приложить к тексту своего высера тут ты, конечно же, не догадался. Молодец, хули
Я смотрю Flutter начинает проскакивать чаще у ведрокодеров и даже на линуксе. Какие перспективы у этого говна? Я надеюсь оно никогда не станет основой? Просто люто ненавижу его, Flutter у меня в черном списке рядом с растом.
Конечно, вот. Вчера не было доступа к компу с проектом.
>
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.
Get more help at https://help.gradle.org
BUILD FAILED in 23s
>>2006369
Спасибо, разобрался. Надо было просто даунгрейднуть плагин gradle до версии 4.0, которая соответствует версии 6.1.1 самого gradle в таблице: https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
Ужасно неочевидное и скорее всего костыльное решение, но проект наконец-то собрался.
П.С: теперь студия пишет, что мне неплохо бы обновить плагин gradle до последней версии. Также автоматически создались файлы gradle-wrapper'а, что, как я понимаю, не лучший вариант для последующей разработки. Есть ли какой-нибудь нормальный способ обновить версию gradle внутри самого проекта?
Также в build.gradle изменилась настройка
classpath 'com.android.tools.build:gradle:4.0.2'
хотя в оригинальном проекте была версия 4.1.1, после отката к последнему коммиту проект снова не собирается с той же ошибкой, так что я временно вернулся к 4.0.2 (держу в курсе)
Я тебе больше скажу, ты еще охуеешь и не раз, когда попытаешься appBundle создать для публикации в Google Play, когда Gradle будет срать тебе ну очень информативными ошибками по типу "other has different 'Root'" тут как минимум +100500 возможных вариантов гуглится. Остается угадать, какой твой, лол. Вот тут у тебя пердак точно улетит в стратосферу. Это я еще молчу, когда Gradle найдет у тебя при сборке deprecated методы и функции, например. Так что готовь пердак к полетам, анон
Такой вопрос.
Есть опыт разработки на C# (включая .net5), могу в WPF на достаточно приличном уровне.
А как вкатиться? Открываю все курсы и там СЕЙЧАС МЫ БУДЕТ В ДИЗАЙНЕРЕ ДВИГАТЬ ТЕКСТБОКСЫ пук сереньк. Заканчивают примерно на том же.
Как вкатиться в ваши андроиды не с нулевым опытом программирования.
И ещё такой вопрос. Вот при разработке на WPF принято использовать MVVM как архитектурный паттерн (благо wpf под это и заточен), а что там с архитектурой андроид приложений? Куда читать об этом?
Скачай в лицензионном магазине CD дисков курс М.Русакова по разработке в ведре. Он хоть и простой, но очень информативный. Если ты не полный осел, то затащишь после этого курса на изи. Потом, там же качни курс от Специалиста Разработка мобильных приложений по ведройд. Этот покруче будет. Ищи книги, статьи по архитектуре ведра. Их навалом
У нас тут жрут говно принято все херачить либо на MVP, либо на MVVM. MVVM, можно так сказать, продвигает даже Гейгл - https://developer.android.com/jetpack/guide.
Это разные вещи вообще. Flutter - кроссплатформенный фреймворк для написания приложений, Compose - нативный фреймворк для написания UI нативных android приложений. jetbrains compose в расчет не берем Compose в нативе точно станет основой, но еще не скоро, как бы не кукарекала хипстота.
А есть ли такие программы которые обрабатывают изображения например с фото делая его мультяшным, рисованным для создания спрайтов?
Блять, спасибо анон, утешил, недавно тут пытался старый проект перетащить на андроидх, тоже столько с грэдлом этим ебался и сборками. Как же весело будет когда наконец запилю пет-проект в плеймаркет, представляю!
мимо-другой-анон
Если бы я сейчас хотел вкатиться с нуля, при этом уже зная какой пиздец меня ждёт, я бы просто скипнул этот вариант, скипнул эту карьерную ветку. Но если ты упругий зумер - лучше уж так проебать неск. лет жизни, чем на тусовочки и тик-ток.
Есть предложение для желающих заработать некоторую сумму.
Предыстория.
Я пинал хуи вместо учебы Я был слишком занят на работе и мне тупо было некогда учиться.
Мне нужно в учебных целях написать небольшое приложение на андроиде типа для тестирования телефона.
Выглядеть должно примерно так:
Интерфейс логина, типа 2-3 пользователя со своими паролями,
Далек 6-8 кнопочек, по нажатию которые ТИПА тестируется та или иная функция. Ну типа там вибро пожужжать, динамиком попикать, камеру открыть, если возможно, то глядишь и открыть какую-нибудь функцию из инженерного меню.
(Это все для телефонов сяоми нужно, там по ##6484## есть вообще все что нужно, теперь бы ссылки на функции этой инженерки затолкать в мою "типа приложуху" и будет отлично).
В каждом тесте кнопка "ОКДА" и "ВСЕ ХУЙНЯ". Ну и сохранение общего отчета с имеем телефона и списком тестов "ОКДА" и "ВСЕ ХУЙНЯ".
Жду ваших предложений в тележку @Cyber_P
Прошу перед этим отписать на этот пост что-нибудь и мне ссылку кидать в телегу, чтобы знал что это почетный "300К_в_наносекунду_прогромизд" пишет, а не залетный хуй.
Посоны, время странных вопросов.
Как тут относятся к Android Software Engineers, которые гоняют с ойфонами?
Про интерфейс логина, блядь, про какую-то хуйню, про айфоны. Че ты несешь-то вообще? Ты можешь за... Gradle, блядь, начнет ошибками срать, блядь. Чего, блядь? Про что несёт? Вообще охуеть.
Да у меня по существу все работает. Просто напрягает deprecated хлам в коде. Но, раз уж гуглу похуй, то и мне тоже должно быть похуй
Какой есть халявный или недорогой сервис деплоя кроссплатформы (ионик и реактнатив) в яблостор без мака? Гугл усиленно предлагает кодмаджик, какие у него подводные/альтернативы?
Gonna pokushat' sladkiy khleb.
Ебать. И что они предлагают? Делать две версии приложения, одну с таргетом 30, другую с 21-29? Ебанулись в конец
А если все-таки без мака? Я его в глаза не видел, но, зная, насколько кончено устроен айфон и его инфраструктура на нормальных осях, боюсь даже пятиметровой палкой тыкать.
Они предлагают юзать Storage Access Framework or Media Store API
Для лютейшего старья юзать Storage Access Framework, т.к. он доступен вплоть до ведра версии 4.4 (19 API)
Да, я юзаю инструменты, которые интуитивны, и не требуют никаких доп знаний. Яблоки контринтуитивны, и требуют нахуй больше больше нигде не нужных знаний. И в чем проблема?
>Яблоки контринтуитивны
Ну, анон, а то, что у огрызков надо ежегодно платить за девелоперский акк в отличии от разового депозита у андроид господ, тебя совсем не смущает, да?
Моя прога в Google play имеет по 100 инсталлов в день и, сука, по 95 юнинисталов так же в день в среднем. Т.е. всего 5 инсталлов приоста в день. ANR и прочего нет. На отзывы отвечаю. Баги фикшу в течении пары дней если находятся, нахуй. Как узнать, что этим пидарасам, кто ставит прогу, не нравится? Как фиксить ситуевину, аноны?
прога - тулза для автоматизации
1920x1080, 0:06
Ты уверен что хочешь подлизывать вебмакаке, для которой неинтуитивно = не жопаскрипт, против гейоси?
Я не пойму, тебя веб-макака в детстве в жопу выебала чи шо?
Скорее всего у тебя сбивающее с толку мутное описание приложухи. Или в описании обещания того чего нет. Или в описании есть что-то что может привлечь не разбирающихся в сути дела мимокроков, но в самом приложении нет кнопки сделать заебись, которая им нужна
Я это ожидал и сделал максимально информативное название и подробнейшее описание самой проги. В проге есть подробная справка, все как надо, короче. И в разделе она лежит соответствующем. Нет гневных отзывов. Просто установки == удаления. Меня это обескураживает ладно хоть счетчик на странице накручивает. Ведь гугль плей не учитывает удаления а только установки, лол
Как с фрагментацией апи жить? Хочется писать под 30 апи, но ведь столько нищуков, что по сути пишешь для себя. А androidx.core кусок недокументированного говна - всё работает не так как на 30 апи. Можно, конечно, через ифы ебашить сразу под старый и новый апи, но это пиздец нудно. Таргет на какой-нибудь 26 ставить и писать под отсталый апи - вообще пиздос. Как быть? Как обычно делают? Склоняюсь к тому чтобы просто поставить минимальный апи в 30 и ебись оно в рот. Уже же все выпущенные за последний год телефоны получили 11 ведро.
Поддвачну этого хуя >>2009039
Для обычной прилаги вообще нет разницы, под какое апи хуярить. Ну только если ты не решил какие-то новомодные фичи спиженные у индусов в интерфейсе, как паравило, заюзать. Но тут ты знал на что шел. А если копипастить говно код, который, к примеру, сохраняет файлы на прямую в ФС, минуя реквест у пользака, то конечно земля тебе обернется стекловатой в итоге
Так вот я и собрался писать под свежее ведро с упором на интерфейс. С Compose и свистоперделками. Пока поставил минимальный на 26 и пиздец пердолинг. Приходится изобретать велосипед на каждый пук и гуглить как же заменить одну строчку из 30 апи. А ещё не всегда бывает понятно как jetpack пришить к старым апи, документации вообще ноль по свежим фичам на старых апи через совместимость. Есть androidx и ебись как хочешь, причём ещё бывает не понятно это баг альфы или я дебил.
Так же интересует вопрос про кучу deprecated говна. Насколько безопасно им пользоваться, когда студия в истерике зачёркивает строчки?
Насколько адекватный вариант написать под 30, а потом уже рефакторить и понижаться на старые апи, если захочется?
deprecated вообще нельзя юзать. Студия просто не даст тебе собрать appBundle для Google Play, лол
>написать под 30, а потом уже рефакторить и понижаться
А что мешеат сразу разобрать вопрос, для какой минимальной версии ведра подойдет твой высер и не заниматься хуетой?
Дублирую из нюфаг треда.
Есть сервер на flask. На сервере в папке хранятся файлы в форматах doc,docx,pdf,xml.
Есть андроид приложение, которое должно закачать эти файлы.
Запросы на логин и т.д я делал при помощи Volley, а для закачки файлов хочу использовать DownloadManager. Вопрос, нужно ли мне на сервере прописывать маршрут и метод для отправки файлов, или достаточно указать нужный адрес менеджеру, и он сделает всё сам?
Я, конечно, могу разобраться сам, но спрошу здесь
Ну если твой говносервер возвращает на запрос бинарный файл, то DM сам справится, лол
> deprecated вообще нельзя юзать. Студия просто не даст тебе собрать appBundle для Google Play, лол
У меня в приложении org.apache.http deprecated, но всё собралось, приложение в GP уже
мимо
За тобой уже выехали, я отписался кому надо. Жди бана в GP.
Ну дык кто мешает настроить студию на игнор подобных косяков? Никто. Только это выстрел себе в ногу
Питер пизда
> deprecated вообще нельзя юзать. Студия просто не даст тебе собрать appBundle для Google Play, лол
Ну и зачем ты хуйню в тред пишешь?
Что обосновывать, лол? Ты полную хуету вообще спорол, депрекейтед у него нельзя
Это додик, которому начальник приказал билд собрать, а он обосрался и щас скулит тут
А ты сам-то как думаешь? Спойлер: джуны нахуй никому не нужны, их берут на работу либо потому, что нет денег, либо потому, что денег дохуя и компания может просто инвестировать на когда нибудь.
ну ты так сильно не расстраивайся. Прилагай больше усилий, и когда-нибудь, из тебя выйдет крепкий мидл
Какие агрессивные залетухи пошли. Укатывайся нахуй отсюда придурок со своими шизоидными высерами
1. Студии похуй. Билд система посрет ворнингами но соберет нормально.
2. Если что-то деприкейтед, то оно деприкейтед для конкретных апи (условно 24 и выше, для 23 и ниже этот метод нихуя не деприкейтед). От того, что оно деприкейтед, оно внезапно не перестанет работать, если это специально не ломали через таргетсдк. Иначе бы каждая версия ведра не имела обратной совместимости. Приложения с Камера1 апи все еще работают, хоть она и деприкейтед. Нативные (не андроидх) фрагменты все еще работают, просто в них баги не чинят. АсинкТакски все еще работают и будут работать миллион лет, хоть они и деприкейтед.
Если есть возможность лучше не юзать, но зависит от твоего минсдк и какое именно апи ты хочешь юзать. Иногда у тебя физической возможности не будет не юзать депрекейтед методы, просто юзай недепрекейтед альтернативу на новых версиях и депрекейтед на тех, в которой альтернативы еще нет.
>>2010171
Чудик, ты когда 21 апи вышел с камера2 сразу из всех приложений выкинул камеру1? Ее же именно тогда сразу же задеприкейтили. Или все-таки пользовался ей, потому что у тебя минсдк был 14?
> сразу из всех приложений выкинул камеру1
Ебанат тупой, гугл не объявляет методы деприкейтед без добавления новых реализаций. Если ты тугой осел и не в состоянии понять, что не нужно использовать устаревшие методы, то земля тебе железобетоном
Во-первых, про флаг requestLegacyExternalStorage сразу предупреждали, что он временный. Во-вторых это исконно гуглплеевская залупа. Типо той, когда выпиливали все приложения с доступом к смс или аксесабилити сервису, хотя они нихуя не деприкейтед. На уровне андроида пермишн на память не деприкейтед и прекрасно работает.
>>2010713
Ты понять прочитанное в состоянии? Ну вот, задеприкейтили камера1, дали камера2. Как депрекейтед камеру1 выпилил с минсдк 14, охуенно? Или может все-таки нужно флагами обмазываться и юзать обе? только попробуй про житпак камеру заикнуться, конча
>Чудик, ты когда 21 апи вышел с камера2 сразу из всех приложений выкинул камеру1? Ее же именно тогда сразу же задеприкейтили. Или все-таки пользовался ей, потому что у тебя минсдк был 14?
Он тогда пешком под стол ходил, забей
Ну тут главный вопрос - чтобы пустили в стор, разумеется.
Никому не хочется тратить кучу времени и запороться на финише и всё переделывать. В общем, анон всё грамотно расписал, добавить нечего. Работаем, братья!
>>2010763
Блядь, два обсоска мне тут пытаются доказать, что они не верблюды. Потешно ей богу. Можете и дальше юзать свои камеры1 и 2 в протухшем сушеном говне с апи ниже 23. Уже даже патчи на мусор меньше апи 23 не выпускаются официально, блдь, а они все мусолят это. Каково быть говном и ковыряться в говне, а уебки, лол?
Бамп! Стоимость обсуждаема
Там же вроде хранится только email и уникальны идентификатор. Или нет? Что-то не слышал даже
> но на 15-м апи, кодил в эклипсе
Дед, какой собес, тебе в могилу пора. Сколько же всего поменялось с того времени, просто охуеть.
Ну дык залей куда-нибудь и ссылку кинь анонам. Тебе помогли, помоги и ты другим, не будь уебаном
Вообще, я это делал для себя, быстро и грязно.
Но раз это кому-то надо: https://files.catbox.moe/ocbl49.pdf - поправил форматирование, шрифты, немного поебался с картинками, вырезал упоминание телеги где мог, но все равно половина ссылок проебана. Но для оффлайн-чтения это норм.
Да я вообще мимо пролетал, вот сижу сейчас жду собеса, этот пост пишу. До этого полистал данный опросник, чтобы примерно представлять что там нынче происходит. Мало чего полезного узнал. Видимо придется изучать ваши новые джетпаки и рхуйжабу. Еще бы какой-то обзорчик по молодежным либам, а то я кроме сдк ничего не знаю (да и в общем-то презираю, в том числе саппорт-либы).
Ну если в SDK хорошо сечешь, то у тебя не возникнет вопросов, по типу, что это мой сервис падает, когда я выхожу из приложения, и почему приложение дико тупит, когда я подгружаю +100500 элементов в RecyclerView, например и как этого избежать. А это неоспаримое преимущество. А всякие хипстерские либы и фреймворки осваиваются за пару дней
> я подгружаю +100500 элементов в RecyclerView
Проблема в том, что я не подгружаю ничего в RecyclerView, благо оно не является частью системы (напоминаю, у меня шел 2012-й год и только 15-е АПИ). Вместо этого я юзаю ListView и наследуюсь от ListAdaptor, все работает со скоростью света и не тормозит. И весит копейки. И зачем нужен RecyclerView я не понимаю (ведь в ListAdaptor.getView() тебе тоже приходит плейсхолдер от неиспользованного элемента и ты можешь его переиспользовать).
>А всякие хипстерские либы и фреймворки осваиваются за пару дней
Я просто не знаю зачем они. А работодатели видят это и думают что у меня мало опыта.
Если элементов немного, то хоризонталскроллвью+линеарлайоут, если надо много, или сделать еще и очень красиво с анимациями и мокрыми письками - я не думая буду делать свою вьюху.
А вообще, на эту тему есть что-то и в стандартном листвью:
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
Если что - не пользовал, просто увидел что оно есть
Если элементов немного, то хоризонталскроллвью+линеарлайоут, если надо много, или сделать еще и очень красиво с анимациями и мокрыми письками - я не думая буду делать свою вьюху.
А вообще, на эту тему есть что-то и в стандартном листвью:
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
Если что - не пользовал, просто увидел что оно есть
Сейчас бы делать свою вьюху вместо ресайклера и горизонтального лэйаутменеджера.
Тебе стоит понять следующее: Гугл рекомендует использовать что-либо, потому что это что-то - 1) наиболее актуально в контексте экосистемы фреймворка, 2) оптимизировано, 3) протестировано. Всё это позволяет минимизировать вероятность столкновения с непредсказуемым поведением. Сомневаешься в производительности? Смотри бенчмарки.
Опять же, это лишь рекомендации, поэтому, если нравится обмазываться кастомным дерьмом, никто не будет против, ведь хуже будет тому, кто обмазывается.
Извиняйте, я пока не стал адептом ведроида, перекатываюсь с нативной жабы и по-прежнему рвёт пердак от этой "удачной" экосистемы с кучей обёрток и хуйовой документацией, в кот. не объясняется что происходит под капотом.
Ну дык ты всегда могешь заглянуть под юбку и увидеть там хуй больше своего капот. Этого никто не запрещает. Или тебе надо разжевать и еще проглотить за тебя, дебич?
Ох дядь, ну ничего, упорство и труд, и возможно, когда-нибудь из вас выйдет крепкий мидл
>Дядь, я б тебя не нанял
Что мне сделать, чтобы стать лучше? Я реально никогда не сталкивался с такими задачами, потому бы сначала подрочил стандартный листвью, а потом бы навелосипедил свою вьюху.
>>2012795
Хочу тебе сказать, что документация под ведро достаточно хорошая, по сравнению с другими видами говен.
>>2012786
Гугль мне и НДК использовать не рекомендует. А вот заказчик боится, что его говно будут декомпилировать и хочет НДК. Угадай, кто мне деньги платит и кого я буду слушать?
>Гугль мне и НДК использовать не рекомендует
Это где ты такое увидел?
Так или иначе, НДК надо правильно готовить, это должно быть уместно.
>его говно будут декомпилировать
Неактуально. Спиздить идею выгоднее, чем декомпилировать, т.к. последнее слишком трудозатратно и не имеет смысла, ведь ничего принципиально нового там не найдешь.
Я хочу чтобы при нажатии на любой из элементов recyclerView появлялось окошко внизу экрана, где будет написана инфа об элементе и кнопка чтобы перейти на фрагмент с детальным описанием элемента. Также нужен крестик в углу, который будет закрывать это окно.
Как запилить подобное окошечко? Это и не BottomSheetDialog, и не AlretDialog. Мне нужно чтобы остальная часть UI также продолжала работать и RecyclerVIew можно было продолжать скроллить без закрытия нижнего окна.
Внезапно кастом вью. Но вообще если поебаться с AlertDialog'ом, допускаю, что можно его в подобное превратить. Я когда-то через него делал нотификацию сверху о том что интернет пропал/появился с анимацией
Просто кусок лейаута с чем-то типа CardView, в котором отрисовывается информация о элементе с индексом n, нажатие на итем в ресайклере выставляет индекс во вьюмодели и переключает визибилити этому куску лейаута на visible, соответственно крестик на gone.
Я пока что так и сделал.
Рассудите аноны, нормально ли так вообще делать? Как это сказывается на ресурсах и т.п.? Получается же что по сути этот CardView будет постоянно лежать в лейауте. Или андройд настолько умный, что увидев visibility = gone даже не будет тратить время на этот кусок?
Поочередно? Может быть, еще и с анимацией? Если последнее, то LinearLayout не самый лучший вариант.
А картинки у нас где? В ассетах, или в сети?
без анимаций. а картинки из сети, их я уже смог получить, надо только как-то их заспавнить
я пришел в андроид студио из юнити, и там я такое проворачивал через функцию Instantiate() вдруг кто шарит, и я хочу сделать что-то подобное только уже в Android Studio.
язык, кста, Java
Я вкатился несколько дней назад
Сейчас в качестве нубообучения пытаюсь запилить приложение компас для смартфона.
Вроде все делал по гайду из инета и даже обошел одну проблему (TYPE_ORIENTATION из гайда уже устарел, вместо него пришлось запиливать через TYPE_ACCELEROMETER, и TYPE_MAGNETIC_FIELD)
Все норм, никаких ошибок в коде нет (ну красным не подчеркивает), тем не менее НИХУЯ не работает. Приложуха просто крашится в эмуляторе и все.
Гляньте своим профи-взглядом, хули оно крашится, если ошибок нет?
https://pastebin.com/gSkeVVik
Их чото так дохуя и в каждой еще больше чем дохуя багов.
Может есть что-то общепризнанное нынче?
Вот эта https://github.com/zhihu/Matisse
выглядит удобно, но ишшуев чото пиздец вроде как открытых
Используя retrofit загружаю с api картинки в RecyclerView во фрагменте. Всё отображается, но только после нажатия на экран/пролистывания. Никаких событий для такого поведения, естественно, не прописано. Другие элементы интерфейса фрагмента видны сразу. Как это обрабатывать я не особо понимаю, ответ от api наверняка не мгновенный, но как это правильно отслеживать?
Грязь, гнида, мразь, который вкатился в работу из-за денег и которому похуй на ценности свободы и кастомизируемости.
Есть один такой коллега. Заебал своими историями про крутость айфонов, маков и флаттера.
Просто назначай картинкам полученный drawable (setImageBitmap или подобное).
>>2015666
Если что-то крешится, то обычно принято прикладывать логи, так как там черном по белому обычно пишут ЧТО НЕ ТАК. Я конечно ща твой код потыкаю, но чтобы ты знал на будущее
>>2015908
По событию от ретрофита обновляй свой RecyclerView
Так как мне не дали ресурсов и манифеста, написал свой и заменил инициализацию. И все само заработало - дергается конечно, нихуя не разобрать, но ничего не вылетает. Вот код, если интересно: https://a.uguu.se/MOpMSkhd.txt
Может быть, поставили, попользовались и удалили потому что больше не нужна? Или ещё бывает, что ставят по нескольку одинаковых программ, пользуются одной и потом удаляют. Подумай над тем, чтобы поставить статистику внутрь приложения. Кто запускает, кто какими фичами пользуется и т.д.
Это анон, уже под сбор личных данных попадает. Политика у гугла нынче сурова в этом отношении. да и придется жопу порвать и шекели тратить на нахуеверчивание серверной части для сбора статы. У меня там реклама стоит. Я по ней стату смотрю кста. Я просто надумал рефакторинг интерфейса захуярить Насмотрелся модных выблядков по UI дизайну. Хочу чтоб рекламка имела больший охват и время непрерывного отображения, лол
В смысле, речь скорее всего про фаербейз аналитику, где ты можешь всё в коде триггерами обвешать и смотреть, чем пользуются, а чем не пользуются.
Там не особо бесплатно
Неактуально на 100%
А что мешает заюзать православный DialogFragment c custom layout?
Я тут пытаюсь вкатываться и не могу понять почему у меня StateFlow, который должен выдавать только последнее значение из flow высирает весь буфер свой. Такое поведение у него происходит при использовании Navigation component. Когда я перехожу на другой фрагмент и обратно, то получаю от StateFlow кучу значений сразу.
лучей добра, пойду курить что же было не так...
Извини пожалуйста что вызываю пассивную агрессию, мой вопрос в этом и заключается. Я не особо понимаю как отследить это изменение из фрагмента и обновить ui. Ещё раз прошу прощения за раздражение!
>>2016135
>По событию от ретрофита обновляй свой RecyclerView
Спасибо за ответ, но что значит по событию от ретрофита? Я пытаюсь обновлять данные во фрагменте через ViewModel.
Да у меня тут СТУРТУП безденежный, где я в одно рыло делаю, мне конечно очень хочется где возможно время сберечь на другие фичи.
Но запилить это можно, я понимаю, ничего сложного.
На самом деле планирую остановиться на другой либке в итоге - https://github.com/akshay2211/PixImagePicker
я во всю юзаю, мб у тя шеред флоу? когда сабскрабишься на флру в онкрейт или вьюкрейтед?
Так а SAF то чем не нравится? Для мвп сойдет, не нужно какие то стремные либы тащить с пермишонами.
State flow горячий в отличие от flow, т.е. данные у тебя производятся, даже если нету подписчиков. И скорее всего когда ты покидаешь свой фрагмент или чё там у тебя, производство данных продолжается из-за причины которая указана выше, но они никому не эмитятся, а когда снова подписываешься он выдает тебе все что успел напроизводить
Вообще, в случае Сишки и Прыщикса, все это делается элементарно: JNI + NDK. Тебе остается нарисовать интерфейс и как-то прокинуть вызовы между гуем и кодом. Можно вообще пойти по пути Qt: в качестве гуя нарисовать только прямоугольник с канвасом и перехватывать от него нажатия, а на сишке рисовать свой мир внутри этого прямоугольника - просто и легко, правда -80% к нативности
Спасибо, буду смотреть
Конечно же у Лебедева, всего 100к за экспресс-дизигн. На самом деле на фрилонсе за 5 баксов. На самом деле вводишь ключевые слова на порносайте и делаешь скриншоты.
2 тыщи у девочки дизайнера
Гыгыгыгыгы, бомбануло)))))0))000))00)
На самом деле, пользовался маком - хуй знает, чо вы в них нашли. Я ваще фонад бизнес-линейки HP. Да и флаттер какая-то мутная хуйня.
> Гугл рекомендует
Гугл слушать - себя не уважать.
Гугл тебе джунов посадил, они какую-то парашу за неделю накрапали, на презентации показали и всем порекомендовали, а потом хуй забили. И ебись как хочешь.
>я прыщ на теле Гугла
>я буду жить по своим правилам! Мне пахую на это тело!
>присыхаешь сам по себе ил вообще выдавливают, лол
Твоя будущая стори, шиз
Очередной шиз, которому надо "знать, как оно там работает под капотом". Тебя ебёт? Сильно ебёт? ОКР замучало? Таблеток попей, к психиатру запишись. Ты ведь не знаешь и половины того, как работает компьютер под капотом, не знаешь и как работает интернет под капотом, только пиздеть и строить из себя специалиста можешь, пиздабол интернетный.
http://nnmclub.to/forum/viewtopic.php?t=1368670&start=15#pagestart - судя по содержанию твоего сабжа, старая версия этого высера
Препод основной как на герыче, лол. Все в попыхах, быстрее, быстрее. Хуй клал на аудиторию. Кал, короче, полнейший. Куда лучше посмотреть видос от Специалиста. Там хоть препод видно, что в шаристый мужик и много информации вне тем курса подает
> шиз
Оскорбления тупо с ходу - типичный зашоренный двач, фу бля. Ну ничего, это ты в интернетах такой модный хиккан, который всех может нахуй послать, но вот на улице ты сгорбленый щупленький трус, который оглядывается по сторонам.
А теперь по делу.
Я не предлагаю делать исключено противоположное тому, что говорит гугл. Я предлагаю думать своей головой и делать то, что любой инженер должен уметь делать - выбирать наиболее оптимальное решение для конкретного случая. А не просто лепить «потому что гугл так сказал делать».
Не хочу скатываться до твоего уровня и кого-либо вообще оскорблять, но факт остаётся фактом: двачеры не могут думать своей головой от слова совсем. Из-за чего у вас мир делится на исключительно черное и белое.
>Я предлагаю думать своей головой и делать то, что любой инженер должен уметь делать - выбирать наиболее оптимальное решение для конкретного случая. А не просто лепить «потому что гугл так сказал делать».
Теперь задайся вопросом: ты обладаешь достаточным уровнем квалификации, чтобы судить, какие решения являются оптимальными, а какие нет, и являешься ли ты специалистом уровня, способным спорить с идиоматическими решениями из Гугла? Если ты не работал в любом FAANG, или если ты не тимлид в какой-нибудь крупной шараге типа Сбера или Яндекса, твоё мнение априори эквивалентно мнению рандомного васяна. "Думать своей головой" это фраза-детектор мидвитов с раздутым самомнением, которые предпочитают городить велосипеды вместо заранее придуманных до них решений. Существуют заранее придуманные алгоритмы, заранее придуманные паттерны проектирования, заранее обдуманные решения - но при этом есть ВАСЯ, то есть ТЫ, который считает что он ЗНАЕТ КАК СДЕЛАТЬ ЛУЧШЕ, чем, блядь, многомиллиардная корпорация, со специалистами-выпускниками из Гарвардов и МИТов. Попустись, чмоня.
Здравствуйте, меня зовут Вася. Такие конторы как Сбер или Хуяндекс я презираю и баню их подсети на роутере, чтобы случайно туда не залезть и не подхватить их трекеры. Сраная ведроид-студия у меня стартует дохуя времени, а как эта поебень прогрузится, начинает лезть непонятно куда в сеть и качать непонятно чего - это неверотно меня фрустрирует. Когда я пытаюсь запустить в этой параше свое приложение, то Студия опять лезет в интернеты (видимо сливает мои исходники Мировому Предиктору), зачем-то что-то с чем-то синхронизирует, дает сотню советов, а потом обсирается собрать код, советуя все поменять обратно. Я пытался собрать хелловорлд, но хелловорлд с саппорт-либой, который в итоге весит 1 мегабайт, оскорбляет мои релилиозные чувства.
Видя все это дерьмо, я хотел бы начать пить, но не могу, по состоянию здоровья. Вынужден заедать антидепрессантами, но помогает слабо. Потому продолжаю юзать 10-летний Эклипс, код пишу как деды на Сишечки, а Саппорт-либы считаю проявлением дьявола.
Жопы свои можете проспамить бутылками, придуки, лол
В условиях современного медицинского обслуживания в этой сране, в больничку надо еще попасть. А у меня проекты на Андроиде. Что делать?
Очень быстро сядете на бутылку. Я бы моментально написал заявление на месте таких разрабов, ха-ха.
>Как вам идея?
Набутыливание людей с подобным мышлением - всегда замечательно.
>привлеч к ответственности
Как раз будет время, чтобы научиться писать.
Ты напишешь на что заявление? Ты нарушил закон. Я указал тебе на это и за свою помощь прошу оплату в три тыячи ублей. Что не так?
>начинаем спамить создателей письмами, что набутылим их за несоблюдение закона о персональных данных
>прошу оплату в три тыячи ублей
>на что заявление?
Тут два варианта - либо вы просто "просите" и вас, разумеется, игнорируют, либо, если вы наглеете и имеется состав мошенничества(ст. 159) ч.2, если вы успеете причесать двух разрабов на 5+к или вымогательства(163)что сложнее квалифицировать в данном случае, то вас набутыливают.
Ну так надо спамить Гугль шантажными письмами тогда... Или ты со своим другом "юристом" ору, нахуй не въезжаешь совсем?
Дальше консультация платная
Нашел что спрашивать, лол. Пацаны даже толком квалифицировать не могут статью по которой, якобы, есть нарушение, не говоря про, что данные пользователей не покидают пределов Гугла при таком способе аутентификации в приложениях
Ты читать умеешь, ебака? Они собираются вымогать деньги у юр.лиц в обмен на несообщение сведений. Очевидно, что если они будут просто "просить", никто им ничего не даст, ибо они нахуй никому не упали. Так или иначе, в случае требования ими денежного вознаграждения, их действия могут быть квалифицированы либо как вымогательство, либо как мошенничество, но это вопрос квалификации каждого отдельного эпизода.
>данные пользователей не покидают пределов Гугла
Учитывая тот факт, что имеется угроза оглашения таких сведений, которые могут опорочить, причинить существенный вред чести, достоинству и деловой репутации человека, наличие которой доказать проще, чем её отсутствие, это не имеет никакого значения.
Зачем Гугл? Оператор персональных данных - это ты. У тебя в приложении есть форма логина - ты собираешь персональные данные, ты оператор. Ты должен соблюдать закон. А Гугл тут при чем?
Определи разницу между "вымогать" и просить добровольное вознаграждение за указанные недостатки в приложении.
Ты используешь вход в свое говноприложение через Гугл аккаунт или Файербэйс... Какие, нахуй, личные данные, дебил?
>Так они пофиксят свои проблемы
Так нет никаких проблем у тех, кто юзает вход через Гугль сервисы и учетки в своих приложениях, долбоебы. Они у себя ничего не хранят из личных данных пользователя. Все хранится в инфраструктуре Гугла, блядь.
Если ты не понял, тут речь идёт о проблемах в вакууме, а не о каких-то конкретных. Манюне просто хочется лёгких денег.
Не правда, я байтоебствовал какое-то время, так что могу пояснить за некоторые вещи на низком уровне.
Кстати, пиздец вы токсичные, нет бы объяснили молодому ведроидщику где исходники можно посмотреть, к примеру.
Как там кстати Котлин? Слыхал что Котлин это секси.
Для проблем в вакууме есть целая доска под названием /b
Молодой хуесос ведройдщик, как минимум знает за основные ресурсы по этой теме или хотя бы читал шапку треда по диагонали и не имеет подобных вопросов. Ты же, очередное чучело залетно-перелетное ИТТ
> ты обладаешь достаточным уровнем квалификации, чтобы судить, какие решения являются оптимальными, а какие нет, и являешься ли ты специалистом уровня, способным спорить с идиоматическими решениями из Гугла? Если ты не работал в любом FAANG
1. сперва добейся
2. ты немного переоцениваешь фаангеров, там рандомных васянов задрочивших литкод тоже хватает. особенно учитывая что при найме конкретную предметную область спрашивают только на тимфит этапе.
Ну шиз, твой высер актуален для местечковых рогов и копыт с тремя разрабами, а не для многомиллиардной индустрии мобильного софта в которой ты хозяин всего и имеешь просто армию специалистов всех мастей, лол
> Попустись, чмоня.
И опять я от Вас, молодой человек, слышу в свой адрес безосновательные оскорбления. Зная ограниченные возможности некоторых посетителей данного ресурса я этому, впрочем, не удивлен. Возможно, это не мое дело, но я бы Вам посоветовал бы успокоиться, выпить чашечку чая и задуматься хотя бы о паре дней отпуска или, скорее всего, каникул.
> предпочитают городить велосипеды вместо заранее придуманных до них решений
Я Вам не предлагаю, как Вы выражаетесь, "городить велосипеды", а всего лишь предлагаю использовать нам с Вами инструмент даный природой для оценки различных возможных решений какой-либо проблемы, в том числе и готовых, в том числе разработанных и Гуглом, Яндексом и, прости господи, Сбером. Однако, не стоит ограничиваться исключительно этими решениями, а и, при возможности, искать другие решения.
> заранее обдуманные решения
Мой горький опыт и горький опыт моих коллег не позволяет бездумно использовать решения предлагаемые, например, Гуглом. К сожалению, случались прецеденты, когда решения того же Гугла были недостаточно гибкими для реализации желаний клиента или просто содержали ошибки.
> заранее придуманные паттерны проектирования
В нашем с Вами профессиональном сообществе бытует мнение, что паттерны проектирования не стоит применять бездумно, а их применение требует квалификации и опыта. И я склонен поддержать данное мнение.
> блядь
Попрошу Вас следить за языком, в противном случае я буду вынужден прервать дискуссию.
> многомиллиардная корпорация, со специалистами-выпускниками из Гарвардов и МИТов.
Поговаривают, что не всегда так. Нередко туда попадают как Вы выражаетесь "Васи". Прошу прощения за ссылку на ресурс, однако вот одно из неприкрытых доказательств моих слов: https://dou.ua/lenta/articles/google-intern/. С моей точки зрения, данный случай не похож на картину "целеустремленный выпускник с выдащимися навыками и карьерными целями".
Шиз, ты путаешь свободное поле для разработки с песочницей, которую создала одна трансконтинентальная мега корпорация, и которая имеет в ней абсолютную власть и в любой момент может ее схлопнуть. По неволе будешь считаться с их правилами и парадигмами, лол
> Шиз
Опять оскорбления, третий раз. К сожалению, вынужден Вам сообщить: это мое последнее сообщение Вам, так как я не намерен общаться с типичным неуверенным в себе хамом из /b.
> песочницей, которую создала одна трансконтинентальная мега корпорация
> в любой момент может ее схлопнуть
Совершенно верно. Google может в любой момент закрыть проект Android и, тем более, облачные сервисы для данной ОС. Однако, данная платформа в чистом виде, без сервисов Гугла, имеет открытые исходники.
> По неволе будешь считаться с их правилами и парадигмами
Естественно, спустя много лет Гугл начали предлагать некоторые стандартные решения некоторых проблем. И, все же, местами выглядит так, вроде бы Гугл предлагает отдельные средства для решения отдельных проблем. В некоторых моментах мало того, что данные решения воедино не похоже на целостностную экосистему, а имеют недостатки и design flaws.
Но даже при таком состоянии дел Гугл предлагает и рекомендует Вам использовать данные инструменты, но ни в коем случае не обязывает - Ваше приложение по-прежнему никто не заблокирует в Play Market за использование других решений. Не хочу принизить достоинства другой не менее достойной платформы, однако, правила тут более либеральны, чем в той же iOS и никакого, описанного Вами, тоталитаризма я не наблюдаю.
За сим смею откланяться дабы не мешать Вам сидеть и дальше злиться на весь мир, "потреблять контент", смотреть аниме и круглыми сутками играть в видеоигры.
Пф, мог бы съебнуть в самом начале и не тратить килобайты места на дисках макаки своими бесполезными высерами тут
Нет. Если ты ничего не хранишь в своей инфраструктуре, то какие могут быть к тебе предъявы, ебанатина?
Так ты сам ебанатина получается. Ты собираешь данные, ты оператор персональных данных. В том и нарушение закона, что ты их не хранишь у себя, а передаешь куда-то в другую страну.
Так суть доеба именно в хранении данных, а не в обработке. Чтоб не быть ебланом и не задавать тупорылейших вопросов, почитай вот эту выжимку и законодательства скотоублюдии, шиз:
https://habr.com/ru/company/atlex/blog/342332/
Ты дураком прикидывается или что? Там ясно сказано, что хранить данные ты можешь в РФ. Да границей можешь держать копию. Если ты используешь Firebase, то там только 2 сервера: в США м Голландии вроде. Т.е. если ты не хранишь личные данные в ещё какой-то базе в РФ, то ты нарушил закон. При том личные данныем- это даже емайл и пароль.
>При том личные данныем- это даже емайл и пароль.
Сразу видно, что ты тупорогий осел и даже не удосужился прочитать то малое, что я тебе предложил, блядь
ПД) или личностные данные — сведения, относящиеся к прямо или косвенно определённому или определяемому физическому лицу (субъекту персональных данных), которые могут быть предоставлены другим лицам. ... Эти данные помогают выследить человека, спланировать преступление против него или постороннему выдать себя за другого.
Рекомендую тебе срочно начать практиковаться в подшивании подворотничков и накручивании портянок, ленивый уебок, лол
Может это что-то сложное, аля банковские или супер простое, как будильник. Где правда?
А будильник так-то сложнее банковского во многих случаях
>Просто я не совсем понимаю, какие конкретно приложения создают.
Тебя в Google Play забанили?
Я именно, хочу узнать, типичный пример реальной задачи. Приложений слишком много, от всякой хуйни бесполезной, до различныех ёба программ. Вот можешь привести крепкий и жилистый пример программы, которая была бы эталоном
> хочу узнать, типичный пример реальной задачи
Шкила, иди учись. Рано тебе про прожканье думать еще. Ты тупое до ужаса
Детектор чини. Я довольно адекватно пытаюсь узнать, реальный тип задач.
>Просто я не совсем понимаю, какие конкретно приложения создают
>Тебя в Google Play забанили?
>Ряяя! Я именно, хочу узнать, типичный пример реальной задачи!
>Я довольно адекватно пытаюсь узнать!
Угу, продолжай пытаться, дебич
У тебя проблемы с логикой или с общением. Нужно это сперва фиксить
Почти все приложения ходят в интернет и показывают список, ты хоть это можешь сделать?
> разброс довольно велик, от невероятно сложных тырпрайз задач, до однокнопочных приложений
Ну вот кури и выполняй ВСЕ, что написано в этом разделе https://support.google.com/googleplay/android-developer/answer/10355942?visit_id=637560193493037625-1858831865&rd=4#news
И все опросники в разделе Policy -> App content нужно закрыть
Благодарю, буду разбираться дальше.
Если с нуля вкатываешься, то желательно, если со стажера, то необязательно
С таким кол-вом инсталов нахуй нужно вообще гнуться на галаре, лол
Вот в чем секу на уровне джуна, порядок рандомный:
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
С таким списком ты уже почти повидл. Сделай вылизанное говно в гитхаб уровня мувисерчера и ищи работу, не обосрешься. Прикладывай свое вылизанное говно к резюме, мол коммерческого опыта хоть и нет, зато смотрите че могу, могу пояснить за каждую строчку.
>немного DI, немного CustomViews
5 граммов DI, щепотку CustomViews. Все тщательно премешать, взболтать, охладить. Употреблять перорально по 3 капли в день.
>в каждой материала на ~500 страниц
Ххх-тьфу. Котируется от 1000 страниц, возвращайся как прочтешь
Я к тому что не вздумай такое писать в резюме. Ты же не захочешь покупать вместо колбасы продукт мясосодержащий идентичный натуральному, вот и работодатель не захочет продукт мидлосодержащий.
Смотри, жмешь в Студии на каком-нибудь методе андроидовского API "перейти к определению", дальше она предлагает тебе или декомпилировать исходники, или докачать. Впоследствии будет сразу тебя кидать в исходники, когда захочешь "перейти к определению".
В последней студии умудрились сломать интеграцию с градлом и таски могут не отображаться. Вызывай signingReport через консоль.
Спасибо огромное. Чаю, сотни нефти, дай бог тебе здоровьячка.
Блять, как же тяжело вкатываться после 30, знаю меньше четверти из этого, может даже одну пятую. Причём знаю на уровне "слышал это слово". Представляю сколько ещё времени буду вкатываться. Просто пиздец, будьте прокляты, упругие зумеры, кто это всё придумал.
>>2026122
А, хотя если с августа (это ведь почти год, да?) - тогда всё не так плохо. Я кучу времени убил на кору и всякие вкуривания CS. Ведро только с месяц начал активно втыкать. До этого в ведре понимал на уровне "сделать кнопочку и прикрутить её к нижней границе экрана"...
Вообще не знаю, то ли старость, то ли лето так влияет, что ничего в голову не лезет.
Он на таком же уровне знает, я уверяю
1. это лаунчер других приложух, как ты без него обойдешься
2. memoryleaks не будет тк androidviewmodel
3. как я понял, если юзаешь databinding, то все коллбэки на onClick() и проч. должны быть только во вьюмоделях. и тут опять-таки хуй ты без контекста и application-ебалы обойдешься
>viewmodel в mvvp
што
>databinding
deprecated
>var resolveInfo: ResolveInfo? = null
Бляя, только не говори, что ты из активити сетаешь его
mvvm то есть заебали аббревиатуры
сетаю в активити в адаптере recyclerView в bindViewHolder
> Activity Lifecycle
Какую роль в жизненном цикле играет onSaveInstanceState? Если что, его поведение отличается в разных версиях андроид. Что такое state loss, как это влияет на работу FragmentManager, как с этим справляется Lifecycle из Architecture Components?
> Fragment's Lifecycle
Зачем нужен viewLifecycleOwner? Почему нельзя в onCreateView подписываться на LiveData используя Lifecycle фрагмента (т.е. делать observe(this))? Почему не стоит этого делать из onCreate?
теперь все нормально? ниче страшного что юзаю контекст (по-другому же хуй как тут сделаешь)?
алсо, это нормально, если юзаешь livedata, апдейтить их при биндинге через отдельную функцую (updateLiveDataValues() у меня здесь)?
>Почему нельзя в 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?
хуета какая-то не ебу
> вроде потому что фрагменты при смене конфигурации не уничтожаются, уничтожается только их вьюшка
Сам фрагмент тоже уничтожается, как минимум проходит через весь цикл 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, что мы ещё не закрыли. В целом, могу сказать, что твоих знаний вполне хватит, чтобы попробовать пособеседоваться на джуниора уверен, глубина познаний по остальным вопросам была бы примерно такая же; я сознательно начал копать в тему жизненного цикла, как примера той темы, которую легко изучить на базовом уровне, но глубокие знания требуют хорошего опыта, к тому же это является чем-то, с чем работаешь на постоянной основе.
> вроде потому что фрагменты при смене конфигурации не уничтожаются, уничтожается только их вьюшка
Сам фрагмент тоже уничтожается, как минимум проходит через весь цикл 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, что мы ещё не закрыли. В целом, могу сказать, что твоих знаний вполне хватит, чтобы попробовать пособеседоваться на джуниора уверен, глубина познаний по остальным вопросам была бы примерно такая же; я сознательно начал копать в тему жизненного цикла, как примера той темы, которую легко изучить на базовом уровне, но глубокие знания требуют хорошего опыта, к тому же это является чем-то, с чем работаешь на постоянной основе.
> ну блять а смысл, вьюшки еще все равно нет, viewLifecycleOwner не вызовешь
Вот тут забыл написать.
Конечно же я имел в виду, что в onCreate мы подписываемся, используя сам фрагмент в качестве LifecycleOwner, а не viewLifecycleOwner, которого к этому моменту ещё нет.
Можно написать какое-то несложное, просто чтобы скинуть себе на гитхаб, что повышает шанс того, что тех. отдел, которому эйчары передадут резюме, одобрит собес кандидату если в компании отбор кандидатов включает такую процедуру, конечно.
Как джуну, тебе в любом случае с большой вероятностью дадут тестовое задание, и отказываться от них поначалу не вариант зато ими можно забивать свой гитхаб, затем ссылаясь на них в резюме, желательно подробно указывая, что в таком-то проекте ты демонистрируешь такой-то стек, навыки, библиотеки, архитектуру, и так далее.
Приложение на гугл плей вообще не обязательно, а уж тем более не обязательно доводить его до "5к установок и 4.0+ рейтинг", как пишут итт. Пустая трата времени.
И ещё чтоб скрипты оформления работали не после document-end, быстрее...
Без приложений в сторе шлют нахуй и не дадут даже тестового, не слушай этого, пили что-нибудь.
В хуяндексах всяких? Если там, то может, а так я никогда не видел, чтобы без прилаг слали нахуй
Ну да. Глупости какие-то. Можно подумать прилага в гугле показатель. А если у прилаги куча инсталов то нахуй вообще галеру искать? Ты и так будешь бабло поднимать от рекламы или продаж, если не еблан конечно
Вот хотел спросить у анона, что вообще обычно спрашивают на собесах?(на ждуна само собой)
И также, тут кто-то писал про мемори лики и какие-то стейт-лосс >>2026708 где про это почитать можно подробнее? Ну и если кому-то совсем нехер делать, объясните что такое вик референс?
Суть токова. Есть один сайт, он мой, в нём большая база тестов. Вот хочу сделать приложение, которое будет тягать базу оттуда, позволять тесты выполнять на мобилке, а после вносить данные в БД сайта.
Знания PHP у меня постольку, поскольку, приложение пилил почти полностью сам, работает вроде, многое сам чиню, многое - помогает знакомый.
Вот нужен самый ЙОБистый фреймворк для кроссплатформы, там суть-то - в кнопочках и переходах.
По идее, что в итоге должно получиться - это типа приложения для изучения ПДД - PDD24 вроде оно называется.
Выглядит вроде не сложно.
Миша, всё хуйня. Я заюзал флаттер, и он не способен мне выдать 60 фпс на моем 6s галакси, тупо отрисовать 100 вьюх, где я обновляю (вызывается build) только у двух вьюх. Это дно, вся кпосплатформа дно
А как будто натив способен. Разве что если там ничего кроме фреймлейутов и текствью нет
Бля, и как быть? Учить Яву ради сраненького клиента?
А вот ещё говорят, что фреймворки на JS могут в мобилки. Это правда или наглая ложь?
>>2027958
Да вроде ничего и не нужно. Ну изображения иногда нужны, ща покажу.
Но вот эта приложуха и без инета работает, там не так много заданий и фоток, а мне надо именно клиента.
А так суть всей перды - точно такая же. Тесты-хуесты-квесты, рейтинг сложных вопросов, отработанные темы и прочее.
Да ладно, все не так плохо. Ну со xib-ами хуйня, и во всех этих сертификатах ногу сломишь, но Свифт похож на котлин же. Ах да, икскод просто кусок говна по сравнению со студией
Свифт збс, я вообще на ведре на джаве кодил, так что был польщен свифтом, хочу переучиться на котлин на ведре (в свое время решил не учить котлин потому что на стак оверфлоу было намного больше кода на джаве). А вот на свифте дофига кода на стаковерфлоу.
Кста, раньше айос разработка был на парашном обджективС с ужасным синтаксисом прямиком из ада. Видать джобс очень не любил разработчиков... Слава богу сча на свифт перешли.
Просто вопрос. Смысл вката если мобильные приложения не нужны. Ну вот у среднего пидорашки что на телефоне? Пару мессенджеров, ютуб, пару банковских приложений. Все. Зачем вы вкатываетесь?
Потому что там огромный рынок дистрибуции. Средний пидорашка может скачать проги для качалки какие-то, для отслеживания месячных, хуй знает, дохуя чего и на этот спрос должно быть предложение. Столько приложений собранных на коленке взлетели и принесли много бабосов, только из-за огромной аудитории, не счесть. Если ты не ютубер какой-то и не хочешь светить ебалом, то создание своих приложения это наверное один из двух способов стать успешным легко (еще есть игры, там еще большие бабки, но игры сложнее делать чем проги, как по мне).
Потому что не все люди это сраные пидорашки.
>>2028670
Двачую настрой этого анона. Хотя конечно шанс взлететь не велик, но лично меня это не останавливает пилить совсем не оригинальные приложения, просто потому что ты погроммист и есть потребность что-то пилить. Ну а работать на дядю за гроши всегда успеется.
> Хотя конечно шанс взлететь не велик
Эт да, надо не питать ложных надежд. Надо всегда думать чего люди хотят, тогда выше шансы. Всякая фитнес шняга хорошо заходит, даже сам пользуюсь.
Достаточно сделать меньше рекламы чем у конкурентов и более няшный дизайн, чуть больше фишечек и твоя какуляпрекрасная_прога_без_говнокода урвет кусок рыночка.
хз. Если не хочешь стресса из-за незнания что делать и из-за шквала негативной критики с отзывов, не хочешь идти на риск, нет никаких творческих идей, не хочешь каждый день открывать почту в ужасе ожидая письмецо от гугл что твою прогу заблокировали, не хочешь отвечать на емайлы от пользователей, но нравится кодинг на ведре, то наверное стоит, хотя я не пробовал и не знаю легко ли там попасть на работу.
Я не знаю что такое стек. Я ведро-кодер (хотя это громко сказано), в вебе ноль.
Как и в любой другой стек, на который есть вакансии. Смотришь условия, нравится - вкатывакшься
Ты попал в точку на самом деле. Смысла вкатываться в пиление прилаг на себя самого нет, если это не игры. А так люди в основном поддерживают легаси, те же клиенты банков, и всякая прочая хуйня для бизнеса. Ну и плюс есть стартапы. А так ты прав в том что мобильные прилаги это не клондайк как в 2009-2010
Кек, небось успешный ведро кодер, просто устраняешь потенциальных конкурентов? Типичная практика на дваче.
Как будто сюда вкатиться, как поссать в падик сходить. Хуйню не неси, школобесина
Хуек
Такое же в 2012 говорили за ютуб, ВСЕ ЗАНЯТО, УЖЕ ПОЗДНО!!!11 А потом тысячи новичков ютуберов взлетели на протяжении 2012-2021.
Везде так можно думать, тут нужен индивидуальный подход. Но да, в играх выше шанс на успех, мне кажется.
> чего люди хотят
С одной стороны так, с другой - люди сами нихуя не знают чего хотят, пока ты им не предложишь. Предложение рождает спрос.
Я про тематику. Людям интересна магия, астрология, предсказания, психология (то есть они хотят откровений о себе). Думаю все видели что треды с гаданиями на таро на дваче постоянно взлетают, с тестами тоже, кстати. Еще им нравится улучшать себя: проги для тренировки мозга, для качалки, для йоги, бега и тд. В остальном, проги для других целей это нишевый продукт который мало кто будет юзать. Мб еще есть популярные категории о которых я не знаю.
Ты натолкнул меня на несколько идей сразу!
Но вообще да, проигрываю с этих тренировок мозга, что-то вроде "занимайся 5 минут в день и через месяц станешь умным как Эйнштейн!"
А есть смысл делать апп для локального русского сегмента или лучше ангельский по дефолту? Вроде приложения в зависимости от региона в выдаче ранжируются (не уверен на этот счет)
смотри популярность и конкуренцию
После перехода на инглиш с русского, доход от рекламы вырос в 500 раз. Но только временно, потом упало до 10 раз, лул.
Конечно же перевод добавить на иглиш надо. Если ты делаешь продукт суто для русской аудитории, то ... можно, но будет потолок пониже.
Зря я все свои идейки распиздел, но надеюсь на кармическую помощь в плане игростроя, так как я как овощь не могу вообще ничего придумать какую игру делать.
>так как я как овощь не могу вообще ничего придумать какую игру делать.
а ты думал говнокодить и придумывать концепт одно и тоже?
Ну давай я попробую тебе подкинуть идей взамен.
Сделай какую-нибудь настолку, какой-нибудь кардгейм. Желательно чтобы можно было рубиться не деньги (хотя вот не знаю, пропустит ли гугл такое и где хранить все деньги игроков тоже непонятно), вроде азартные игры под запретом, насколько понимаю.
Может какую-нибудь упрощенную версию МТГ, но настольных игр оче много, думаю если провести рисерч, можно найти что-то годное, более-менее оригинальное + добавить что-то от себя = ПРОФИТ??7
Я не хочу делать что то свое. Я хочу просто вкатиться работать на дядю и получать в месяц стабильную зарплату.
Да чот не стоит на чужие идеи, хочется как-то самому дойти до чего-то годного, но спасибо за старания помочь. Есть одна своя хорошая идейка, но она немного бредовая и игра будет слишком сложной, как для первой игры, но единственное что есть. Ну и еще мне надо научится создавать графические ассеты свои и тогда я смогу понять что я смогу создать, а что нет. А пока что недостаточно знаний. Надо и прогерство знать и рисования/3д моделинг и шарить в графической оболочке где делаешь игру и с гейм дизайном не прогадать, также звук. Пиздец одним словом. Мб сложно потому что я сам не сильный любитель мобильных игр, в отличии от приложух, где гуру материал дизайна и всяких анимаций.
> я сам не сильный любитель мобильных игр
А почему решил тогда в игоры податься? Из-за денех?
Категории кал говна...
Наверное да. Мб еще потому что там будет все мое и никто не сможет это у меня отобрать, так как я не буду использовать никаких чужих ресурсов и наработок с серым статусом в плане легальности использования (из-за этого уже банили приложуху, благо восстановил)
>>2028935
... и что? Не хочется делать клон флаппи берд, кароче, сколько бы он не принес. Буду жрать психоту, может поможет с творчеством.
Сделай псевдографический терн бейзд рогалик рпг песочницу с открытым миром, с сохранениями, без перегенирации локаций, с фолловерами и возможностью их заромансить и чтобы их отношение зависело от поступков ГГ
Такое должно быть на консолях и ПК, как по мне. Считаю идеалами моб игр Geometry Dash, Limbo, Badland
Тут нельзя о таком говорить, но вроде как неважно так как 2 самые популярные виды действуют одинаково.
лучше в стим иди, в плей маркете делать нечего, там народ мало платит. У меня с 30к игроков падает 150$.
На стиме с 1 тысячей игроков, ты уже как минимум штукарь поимеешь.
На андроиде монетизируют через рекламу, алло.
Делай на айос порт, кстати.
Я не хочу серьёзные игры делать, но мб если взлетит и на стим залью или если кто-то попросит.
>что-то падало с игроков
встраиваешь геолокацию, глушишь обрезком трубы в подворотне и собираешь выпавший лут
ПИШЕШЬ ПРИЛОЖЕНИЕ ДЛЯ ЗАКЛАДЧИКОВ
@
> встраиваешь геолокацию
@
> глушишь обрезком трубы в подворотне и собираешь выпавший лут
чем не сурвайвл рпг
Лол.
Ню-ню…))) Но вообще тебе говорят правду.
Чистую и неприкрытую правду.
Кому всрались твои новые прилаги, скажи мне? Как упомянули выше, люди, в основном, пользуются одним и тем же с условного 2011. Тот же Фейсбук, Вацап, Вайбер, Калтухт, Твиттер, Хуиттер и т.д. Из недавнего среди широкой аудитории взлетел только ПикПок. Все остальное зачастую не то что «не взлетает», а тупо просто остаётся неизвестным.
Единственный рабочий вариант - это когда приложение тупо «приложение» к какому-то реальному сервису или продукту, а не сам продукт. Например, доставки, такси, банкинг, заказ фистинга твоего очелла, всякие онлайн-магазы, хорека и т.д. Как тут заработать: изучаешь разработку под ведро, устраиваешься в контору, работаешь там, получаешь себе на палку хлеба. Все. Других вариантов, кроме пары фантастических исключений, нема.
Но ты ж у нас самый умный, ты ж у нас будешь платные просмотровщики картиночек делать или клиенты к бордам с подписочками))) Только вот так это не работает: раз - аудитория на ведре тебе будет платить хуй целых хуйтеврот десятых, дваз - да это за бесплатно блять никому в хуй не вперлось, лол. Ты еще доплачивать будешь, чтобы это ставили.
Так что нет тут никакого устранения конкурентов - вся война унитазов у тебя в голове.
Ну можно сделать бесплатный клиент для борды и на собесах в компаниях пояснять по коду про него. Это будет плюсом. А так да, влажные фантазии про "свое уникальное приложение с подписками" скорее всего не взлетят.
На андроиде можно качать приложения откуда хочешь. в обход гуглу и они никак не могут этому помешать. В отличии от яблуко-рабов.
Этот оправдания провала своей проги...
Тупо очкуют. В штатах был прецедент, апп для доставки стаффа практически до двери. Возник во время ковида. Ну что, кто смелый? Кто запилит?возьмите меня
ну если в штате с разрешенной марь иванной то скорее всего никак, а если в запрещенной то штаты страна с самым большим количеством уголовников что абсолютно что относительно.
Они просто не афишировали что именно доставляют. Там было "ключевое слово" для своих.
А может я это всё напиздел. Всё равно вы такое не потянете!
Есть одна небольшая деталь которую ты упускаешь из вида, сидя за своим компудахтером. На самом деле есть огромная прослойка населения, которые этот компудахтер не имеют или не умеют им пользоваться. И каждый раз когда им что-то нужно специфичное, что на компе делается на два клика, они лезут в гуглопойку. Склеить пдфки? Обрезать фотку? Наложить вотермарку? Обрезать песню на рингтон? Да они прямо так запросом в гуглстор и хуячат.
> Всё равно вы такое не потянете!
нахуярить приложуху не сложно, а потом кто нибудь из "своих" попадется и c помощью реверс инжиниринга методом ректального криптоанализа сядут все
Какать тоже жизненно необходимо.
Активити удаляется при повороте экрана и потом снова вызывается onCreate. Это же пизданешься прописывать, как ты каждую переменную сохраняешь, а потом достаешь из Bundle.
Ну да, у нас оперативники так прям и подорвались кабанчиком чтото раскрывать, вон гидрач живет, крыша видать высокооставленная.
Но вообще я против каких-либо видов котиков.
если начнет охуевать то прижмут быстро
Хули, в константы сразу уж ебошить надо
Вот да. Себе в портфолио для собесов - вариант. Это адекватные компании оценят. Даже банально чисто рассказать можно будет, что у тебя, мол, пет проект есть и ты его себе потихоньку пилишь, и там на ГХ сорцы лежат.
>>2030025
Я понял о какой прослойке ты говоришь. Смотри, большинство тех людей, о которых ты говоришь, либо не особо нуждаются (а может быть, даже и не знают что так можно, лол) в том про что ты пишешь, либо довольствуются тем, что есть. И те, что довольствуются тем что есть в большинстве своем, как я выше говорил, заплатят за приложение/подписку ничего. Единственный вариант - реклама. Но это, ты должен понимать, чисто себе на певко капнуть копейку. И на заработать мульены тут не стоит надеяться.
А ещё с выводом копейки проблема, выведешь на карту -налоговая набутылит и агентом зделают. Лучше не совершить ошибки
>агентом зделают
Что за глупости? Единственная проблема - это если не платить НДФЛ за большой доход
Мне страшно уходить на общую систему налогооблажения в украине. Есть лимит... Если на упрощонке, то платишь 5%, если на общей системе - 20-30%, вроде. Я не хочу им платить 30 процов. Буду скрывать бабки на пайонире наверное. Если доход будет выше чем лимит. Пока что в рамках лимита...
в цеевропе у него на кармане больше оседает, цены то ниже.
для визуального понимания
Я тоже так думал, что меня научат. Если ты в галере обычной, можешь не ждать этого.
Если не знаешь как запилить что-то - гитхаб и статьи твои лучшие друзья
Скажи тому хуесосу, что инициализирует медиаплеер во фрагменте, что он обмудок ебанный и желательно ему выпилиться нахуй. а потом начинаются тонны гневных отзывов в гугль плей, что ваше ебанное приложение вырубается в фоне, когда мобила улетает в Doze mode Для всех вошканий с медиаплеерами и прочей отдельнопотоковой сранью придуманы сервисы. Обновлять таймер или seekBar трека по хендлеру вполне разумный способ если заюзать Binder сервиса. Можно пускать хендлер в самом сервисе и слать локальные бродкаст сообщения. Отлавливать их в нужных активити/сервисах, и там их обрабатывать. Тоже вполне рабочий способ. Имей на плечах свою голову, анон. В твоем окружении будут толпы тупорогих уебанов с высокими регалиями и пустотой в головах
Я думаю, что там нужно обновлять позицию проигрывания трека, как минимум раз в секунду. Идеальная задача для хендлера
Пока адекваты в треде спрошу, в каких случаях юзать воркменеджер? Если дёргать что-то из сети в отдельном потоке, хендлера ведь хватит?
Я бы посоветовал rxjava, на тыж джун, да и может устарела она, хз
Нет, так делать нестоит. Это как минимум дохуя кода надо городить, а как максимум приведет к утечке памяти в итоге. WorkManager и Service уже имеют в своем составе все необходимое (Handler, Looper, Callabel & etc.) для реализации действий в отдельном потоке. Фишка в том, что WorkManager принимает в качестве параметров вызова только простые типы данных, Service может принимать Bundle. WorkManager идеальное решения для выполнения какой-либо периодическое работы, подтянуть апдейты например в базу данных с сервера. Service - для прочей другой невообразимой срани, что нужно делать в отдельном потоке
А что там фиксать? Это же новый проект, созданный, что там фиксить надо то? Если это тривиальная проблема я бы нашёл решение в тырнете. Но я не смог. Подскажи, что фиксить.
Спс.
Просто только с сервисами и хендлерами более-менее разобрался и думаю, зачем воркменеджер вообще тогда нужен.
Говнари из гугла как обычно. Даже простое окно после обновлении студии "обновить андроид градл плагин" херит тебе твои вылизанные градл файл, ибо пошел ты нахуй. Еще каждый раз при создании модуля любит въебать тебе в рутовый билд градл еще одно объявление котлин плагина, если не дай бог он там объявлен не как ты ожидаешь.
Шли нахуй эти "авто" тулы от гугла и зарегай руками на сайте файрбейза. Оттуда же скачаешь свой жсон и подцепишь в проект по гайду с сайта руками.
Что ты истеришь, истеричка? Пора бы уже привыкнуть.
Спасибо анончик, уже 2 из 3 моих проблем это говнари из гугла, которые все с новым апдейтом похерили. 3 проблема - это нерабочая realtime database firebase драмэндбэйс. Никак не происходит запись туда, всё испробовал уже.
Интересует в контексте андроид/иос кросплатформы под энтерпрайз
Устраивайся вместо них тогда, чего ждёшь? Если они такие бездари, значит тебя с легкостью возьмут на их место. Или нет?
Как ни странно, даже если их берут туда по квоте, отбирают лучших, потому что среди индусов конкуренция особенно высока.
Аноны, подскажите пожалуйста. Есть у меня во вьюМодели есть Boolean переменная, и я хочу в зависимости от ее значения запускать или не запускать функцию во фрагменте. Задача в том, чтобы эта функция во фрагменте выполнилась только один раз с момента запуска приложения (она запускается в onViewCreated и поэтому при смене ориентации она запускается снова, чего нужно избежать).
Я сделал это примерно так:
// ViewModel.kt
var isGovno = true
// Fragment.kt
if (viewModel.isGovno) {
doShit()
viewModel.isGovno = false
}
Вопрос следующий - нормально ли вообще заводить вот такие простые переменные во вью модели и обращаться к ним из фрагмента? Или лучше это делать через LiveData? Все примеры которые находил всегда использовали LiveData даже для таких простых вещей как тут.
При чем мне даже не надо обзервить эту переменную с помощью LiveData, она ведь будет меняться всего один раз за запуск приложения.
Как бы вы вообще сделали так, чтобы функция не запускалась снова при смене ориентации или при переходе на этот фрагмент из другого?
Можешь чуток подробнее описать пожалуйста?
У меня это просто стартовый фрагмент. Как я могу уже находясь во фрагменте запихать ему в бандл что-то?
У меня, кстати, похожий вопрос. Нормально ли в MainActivity хранить публичные переменные, чтобы фрагменты загружали туда что-то, и при их переключении (BottomNavigation) просто доставали загруженные данные оттуда?
>Тогда проверяй savedInstanceState(бандл) на null и отрабатывай свой first time кейс.
Понял. Спасибо.
Опять эти метания стрелок by быдло. За цену нормального специалиста они с 30 индусоа возьмут за гроши и закроют с десяток направлений. Вот в чем прикол, дебич
И то, что сейчас все воспринимают мобильный рынок как набор из нескольких соц-сетей и мессенджеров, не значит что так будет всегда. Индустрия оч сильно прибавила за посл. 10 лет и это не благодаря сайтам или бекенду с наворотами, у каждого есть сегодня телефон, практически каждый на земле - юзер, втыкающий несколько часов в день в монитор (будь он на мобиле или на пк), где внимание там и всё остальное.
Короче делимся своими идеями, футуристическими маняфантазиями, как будет выглядеть взаимодействие с юзером через 10 лет? Столько вопросов...
Ты дурак? Это очевидно, как то, что вода мокрая а бутылка у тебя в очке. Страна 3го мира, миллионы голодных индусов, ебещая конкуренция в стране. Люди, что хоть чуть-чуть умнее обезьяны, лезут из страны вон, как крысы с тонущего корабля. Ты Гугль. Поманил шершавиком и сразу у твоих ног с пол миллиона претендентов. Лепота. На кой черт платить, как норм специалистам? Или зумерячий тупорогий моск абсолютно не в ссостоянии понять банальные вещи???
Блять, почему ты такой злой. Иди подрочи.
Дураки те, кто батрачит за сотку на кабана, в то время как могли бы производить настоящую годноту и приходить к успеху.
Ну да. А анон что имел ввиду? Или рандомный хуеплет-стартапер ниразу не кабан, лол?
Это лишь твои домыслы, не более. Можешь даже поискать индусов, которые работают в Гугл, и посмотреть на их образование, которое они получили там, куда тебя и на порог бы не пустили. Это самый способ развеять твои маняфантазии.
Ну я не кабан, просто хочу своё пилить. Теперь уже стартап ассоциируется с кабаном? Что же стало с айтишечкой...
Блядь, 99% стартапов - это проебывание собранного бабла под различными предлогами группой хитрожопых ушлепков и кормление маняобещаниями других дурачков, вписавшихся в это дерьмо. Можешь не благодарить за пояснение
>Кто со мной мутить стартап?
>конец
Ты хоть сам понял что высрал? Я прям вижу как все сразу заяву по собственному катают и идут тебе писать фейкопочту
Ты ебанутый? На кой хрен мне смотреть на тухлозадых на верхушке пищевой цепи, блядь? Они как раз-то и не делают ничего связанного с разработкой студии и прочего. Делает всякая чернь индусятная за три копейки в локальных офисах гугла, про которых ты никогда не узнаешь
А как тогда называется, когда ищешь энтузиастов, которые готовые пилить свой охуительный проэкт без зп?
Работать, так или иначе, все равно придедтся, школобесина. А на себя работать гораздо труднее бывает, неожиданно
Не тебе, сказочнику, рассказывать о том, как работает крупный бизнес, рассмешил
Скорее всего, за текущим мобайлом так и закрепится рынок мессенджеров (на самом деле, рынок разных приложений для сервисов из реального мира, но да пускай будут мессенджеры). И ничего нового за ними не будет. За чем будущее - а хер его знает. Но пока что мобайл движется в сторону более высокоуровневой разработки а-ля «ванилечка-вебчик-фронтендик» хипстеры-смузи-полигендеры
Я вот, наоборот, в свое время начал свой карьерный путь с ондроеда, но всегда интересовался и схемотехникой, и сишкой. И понимаюсь что тогда надо было не ссать и двигать со своей провинции туда, где все это есть, лол (по итогу все равно ж съебался). Благо живу один, мозги никто сука не ебет - можна тупа заниматься своими электронномикроконтроллерными приколами в свободное время
Вообще… анон… как пели одни панки, «главное - не ссать». Очень верная жизненная установка, помогает в этой жизни.
Тут тебе не тред рандомных долбанутых вопросов, уебок. Тут тред нытья по тематике программирования под андройд. Отрепортил оффтопера хуева
TabView
В Хухлэ не работаю, в открытую говорю что некоторые их технические решения говно, а некоторые их сотрудники - дебилы. Какие проблемы?
NDK. А вот как конкретно его использовать для сборки уже зависит от формы исходников.
У меня такое ощущение, что половина дегенератов из мира пэхапэ, по пути в мирок жабоскрипта, заблудилась и попала в мобайл. И для умножения 2*2 нужно заюзать библиотеку, а чтобы библиотека заработала, нужно заюзать препроцессор аннотаций. И так 5 раз, чтобы написать хелловорлд.
Вопрос: ведроид действительно настолько петушиная помойка, что учить эти библиотеки нет смысла, если они каждый день новые? Может быть мне съебать назад в свой сишкомирок и ебать байтики на заводе за 20к, и не пытаться быть модным? Вакансий без ссаного Скотлина нету вообще, многие его выдвигают на первое место - НАХУЯ БЛЯТЬ ЭТА ПАРАША ВООБЩЕ КОМУ-ТО СДАЛАСЬ? (Сидел себе, читал туториалы по ведру в 2012-м, все было круто, думал что уж на этой то платформе будет все просто, когда деньги понадобятся смогу заработать - хуй там)
>>2036084
Вообще есть 2 стула: петушиный ндк-билд - это скрипт из НДК, который читает твои "мейкфайлы" и собирает бинари под все указанные там платформы. Недостаток - нужен не только тулчеин, но и сам петушиный ндк-билд. Альтернативный стул - сам находишь нужный компилятор, руками собираешь, подкладываешь со-шник в нужную директорию - так делаю я.
> Может быть мне съебать назад в свой сишкомирок и ебать байтики на заводе за 20к, и не пытаться быть модным?
This
Ты всё равно не вкатишься же. Если только на фриланс, делать так как хочется, для заказчиков, которые не смыслят в коде
Во фриланс я уже не могу вкатиться, он уже сдох. Он и раньше то был не очень, а теперь вообще пиздец. Вот в славном 2007-м на фрилансе было клево...
>Может быть мне съебать назад в свой сишкомирок и ебать байтики на заводе за 20к, и не пытаться быть модным?
Конечно, это продолжать, НО… Дядька, нахуя ты это делаешь за 20 тыр?!?!? Я уверен что ты ж можешь найти нормасную галеру, которая за байтосекс будет нормально тебе платить…
>У меня такое ощущение, что половина дегенератов из мира пэхапэ, по пути в мирок жабоскрипта, заблудилась и попала в мобайл.
Так и есть, беспезды.
Люди сначала собирались в пыху, но с помощью какой-то матери попадали в мобайл.
> Скотлина
> НАХУЯ БЛЯТЬ ЭТА ПАРАША ВООБЩЕ КОМУ-ТО СДАЛАСЬ?
Вот два чая. Думаю можно в общих чертах посмотреть, поковырять и писать что ты уверенный Скотлин. Хотя я бы не хотел на нём писать. Щито поделать, ведь ннада.
> учить эти библиотеки нет смысла
Сейм, когда понадобиться - тогда и буду ковырять (текущую версию,текущие бест практики)
>Кто-нибудь ковырял JNI ?
Да, я
>Есть интересные задачи?
Да, можно писать на нормальных языках, таких как Си, а не на парашном Скотлине
Знал бы куда приткнуться... Хочу простую платформу, но хуй куда влезешь. Раньше эмбеддед был для элиты байтоебства, а нынче 20к на заводе, причем с одного завода я уже сыбал, а тут их немного
Вкатывайся в ндк, если ты байтолюб. Куча вакансий, где требуется знание с/с++ и ндк на ведре, и куда хуй найдешь человека, так как для 99% андроидеров это недоступно. В сферах по типу телекоммуникаций, стриминга, ИоТ, и так далее в основном
Дык в NDK я давно вкатился, с первых дней... Но даже там, где надо разрабатывать софт для железок, требуют Скотлин и Хуепак.
Это уже к чему ближе твоя душа. Мне хотелось программировать и заниматься интересными вещами. Сишечка для этого мастхев, джава очень простой язык и тоже пригодится, но жизнь показала, что если тебе нужны деньги, то нужен Скотлин + 100500 библиотек от умственно-отсталых людей.
> для 99% андроидеров это недоступно
Ты так говоришь, как будто для этого нужны какие-то запредельные познания и iq не ниже 170. А так, хороших специалистов всегда тяжело искать, даже просто под фреймворк ведра.
>>2038321
Зачем, а самое главное нахуя? Ведь 99,8% процентов проектов под андройд нахер не нужен NDK. Вот совсем не нужен. Ололоши, для конкретной задачи нужен конкретный нструмент. А не так, что давайте я буду опрашивать, к примеру, встроенный сенсор в смарте посредствам C/C++. Это тотальный долбоебизм. Тем более это не даст тебе никаких полюшек в производительности. Я даже затрудняюсь представить, что есть какие-то функции/процедуры для массового использования, что реализованы только на сях под андройд и не имеют реализации в рамках SDK
На проекте на бэке используется какая-то штука для видеозвонков на базе webrtc, клиентская библиотеки есть только под плюсы и js. Нужно будет написать обертку над плюсовой библиотекой. С ндк никогда не работал и даже не видел
Если на базе webrtc, то может хватить готовой прослойки, что в комплекте идёт.
То что ты не знаешь юзкейсов для сдк понятно, ты ведь просто клепаешь клиенты, для которых и флаттера с головой
*ндк
Ну okay. Давай накидай несведущим анонам юзеркейсов с NDK, да так чтоб это было не ёбоуникальноедерьмо, а вполне юзабельные вещи, умник хуев, сука
IoT, RTC и VoIP (анон выше вон упоминал webrtc), работа с интенсивной графикой (например картография), ну и так далее. Это "ёбоуникальноедерьмо" или нет?
Это именно оно. Картография... вообще хуйня без задач на мобиле. Плюс есть монополист - владелец платформы. Любая голосовая и видеохуита, крайне странная затея если ты не разработчик в Facebook и прочих владельцах подобных платформ. А для "интенсивной" график уже хуйлион лет есть Unity и прочая срань. Еще примеры?
>Картография... вообще хуйня без задач на мобиле
Ну таки да.
>Любая голосовая и видеохуита, крайне странная затея если ты не разработчик в Facebook и прочих владельцах подобных платформ
А вот это уже кек — обработкой видео в 2к21 занимается каждый второй стартап с масочками, а аудиопроцессинг для ассистентов пишут все более-менее большие компании. И то и другое стараются максимально выносить на клиент — мощностей на инференс нейронок не напасёшься.
>А для "интенсивной" график уже хуйлион лет есть Unity и прочая срань
Ну, вообще говоря у юнити достаточно убогий рендер, и кроме как для казуальных игрушек он ни на что, кроме как на разогрев железа не годится.
Единственный способ сделать реально оптимизированный рендер когда припрёт сделать кошерно — это написать его, блять, с нуля под задачу, без всяких абстракций и обобщённых решений. С любым пайплайном обработки медиа — всё то же самое.
Помню, челик из призмы про это даже доклад делал — про то, как они свой движок для прогона моделей на гпу без синхронизации с цпу писали — даже вендоровский NPU сосал из-за наличия такой хуиты. Доклад конечно был про айос, но не суть.
другой антуас
Такой-то потешный челик — не может осилить котлин, хлебает борщи но кого-то в чём-то упрекает.
Особенно учитывая текущий рынок — даже обычного андроидера не найти и берут уже кривых и косых, если ты не можешь найти работу имея опыт в плюсах — ты либо пиздишь, либо джун, либо бездарность.
Фиксация на байтах — она такая.
Я не он чел, но просто говорить, что ндк - вообще юзлесс хуета, это что-то уже слишком.
>Зачем, а самое главное нахуя? Ведь 99,8% процентов проектов под андройд нахер не нужен NDK. Вот совсем не нужен.
А мне вот нужен. Я не знаю, что у вас там за 99,8% проектов, у меня всего 3.5 проекта и NDK нужен везде.
Простой пример: в 2012-м году я писал плеер (мой первый проект). У меня был планшет, на котором я просто хотел слушать Радио Анонимус, там было Ведро 4.0.3 (API15), а вот возможность открыть кодеки появилась только с 16-й версии. И что же мне делать? Выкинуть планшет и купить новый, где мое говноприложение будет работать? Или взять Сишные либы, скомпилять и сделать плеер, который будет работать ВООБЩЕ ВЕЗДЕ? Напоминаю - это не был коммерческий проект, это был проект ДЛЯ МЕНЯ. Мне абсолютно насрать на проценты рынка, рыночные условия и тому подобный маркетинговый бред, мне хотелось слушать Радио Анонимус.
>что есть какие-то функции/процедуры для массового использования
А что ты будешь делать, когда тебе нужна НЕМАССОВАЯ функция для работы с конкретной железкой, которая существует пока что в единственном экземпляре, библиотек для которой нет и не будет и спрашивать на стековерфлоу НЕКОГО? Вернее, автор железки сидит за соседним столом, но в Андроиде совершенно не разбирается?
>>2039056
>работа с интенсивной графикой (например картография)
Хочу заметить, что саму графику на Сишке рисовать совершенно не обязательно, высокоуровневых абстракций вполне себе хватит для рисования карты и даже не надо будет ебаться с антиалиасингом и тому подобной низкоуровневой хуетой. Но вот как только ты нарисуешь карту мечты, то сразу может возникнуть вопрос: а как хранить сами карты? В памяти - не влезает, на флешке - медленно, битмапы по сети тянуть - в оффлайне работать не будет. И вот тут байтоебство может проявить себя во всей красе.
>>2039193
>Это именно оно. Картография... вообще хуйня без задач на мобиле. Плюс есть монополист - владелец платформы.
Какой такой владелец? Владелец платформы - это я. Я купил устройство, оно принадлежит мне (а не как у дебилов с заблокированным загрузчиком).
>Любая голосовая и видеохуита, крайне странная затея если ты не разработчик в Facebook и прочих владельцах подобных платформ
Ох мальчик, был бы у тебя опыт на фрилансе, где каждый день рождается 100500 стартапов связанных с видеотелефонией, хуйни бы ты не говорил. Это нужно почти в каждом втором приложении, и даже если не нужно, то это все равно попросят. Правда что там нынче на фрилансе происходит я не в курсе, оно для меня сгнило уже давно, нынче я пытаюсь найти работу.
>А для "интенсивной" график уже хуйлион лет есть Unity и прочая срань
Очень хочу посмотреть, как на юнити ты будешь делать симуляцию обхода фрезы на пилораме, или как ты будешь показывать рабочему какую балку надо взять и в какое место стройки положить. Это не игры, где модельки можно заоптимизировать и запекать с тенями, это реальные объекты.
>>2039243
Котлин мне не позволяет осилить брезгливость, я писал на очень многих языках, и не все языки одинаково полезны.
Про знание Плюсов я тут не писал. Надеюсь, ты не считаешь, что Сишечка и Плюсы - это один язык?
>Зачем, а самое главное нахуя? Ведь 99,8% процентов проектов под андройд нахер не нужен NDK. Вот совсем не нужен.
А мне вот нужен. Я не знаю, что у вас там за 99,8% проектов, у меня всего 3.5 проекта и NDK нужен везде.
Простой пример: в 2012-м году я писал плеер (мой первый проект). У меня был планшет, на котором я просто хотел слушать Радио Анонимус, там было Ведро 4.0.3 (API15), а вот возможность открыть кодеки появилась только с 16-й версии. И что же мне делать? Выкинуть планшет и купить новый, где мое говноприложение будет работать? Или взять Сишные либы, скомпилять и сделать плеер, который будет работать ВООБЩЕ ВЕЗДЕ? Напоминаю - это не был коммерческий проект, это был проект ДЛЯ МЕНЯ. Мне абсолютно насрать на проценты рынка, рыночные условия и тому подобный маркетинговый бред, мне хотелось слушать Радио Анонимус.
>что есть какие-то функции/процедуры для массового использования
А что ты будешь делать, когда тебе нужна НЕМАССОВАЯ функция для работы с конкретной железкой, которая существует пока что в единственном экземпляре, библиотек для которой нет и не будет и спрашивать на стековерфлоу НЕКОГО? Вернее, автор железки сидит за соседним столом, но в Андроиде совершенно не разбирается?
>>2039056
>работа с интенсивной графикой (например картография)
Хочу заметить, что саму графику на Сишке рисовать совершенно не обязательно, высокоуровневых абстракций вполне себе хватит для рисования карты и даже не надо будет ебаться с антиалиасингом и тому подобной низкоуровневой хуетой. Но вот как только ты нарисуешь карту мечты, то сразу может возникнуть вопрос: а как хранить сами карты? В памяти - не влезает, на флешке - медленно, битмапы по сети тянуть - в оффлайне работать не будет. И вот тут байтоебство может проявить себя во всей красе.
>>2039193
>Это именно оно. Картография... вообще хуйня без задач на мобиле. Плюс есть монополист - владелец платформы.
Какой такой владелец? Владелец платформы - это я. Я купил устройство, оно принадлежит мне (а не как у дебилов с заблокированным загрузчиком).
>Любая голосовая и видеохуита, крайне странная затея если ты не разработчик в Facebook и прочих владельцах подобных платформ
Ох мальчик, был бы у тебя опыт на фрилансе, где каждый день рождается 100500 стартапов связанных с видеотелефонией, хуйни бы ты не говорил. Это нужно почти в каждом втором приложении, и даже если не нужно, то это все равно попросят. Правда что там нынче на фрилансе происходит я не в курсе, оно для меня сгнило уже давно, нынче я пытаюсь найти работу.
>А для "интенсивной" график уже хуйлион лет есть Unity и прочая срань
Очень хочу посмотреть, как на юнити ты будешь делать симуляцию обхода фрезы на пилораме, или как ты будешь показывать рабочему какую балку надо взять и в какое место стройки положить. Это не игры, где модельки можно заоптимизировать и запекать с тенями, это реальные объекты.
>>2039243
Котлин мне не позволяет осилить брезгливость, я писал на очень многих языках, и не все языки одинаково полезны.
Про знание Плюсов я тут не писал. Надеюсь, ты не считаешь, что Сишечка и Плюсы - это один язык?
>в 2012-м году я писал плеер
Давай еще вспомним времена ZX-Spectrum, когда кроме Basic ничего не было и ты захотел сделать на нем игру аля Doom
>когда тебе нужна НЕМАССОВАЯ функция
Ты тупой? Тебе пишут 99,8% всех проектов. Оставшееся, как раз эта твоя нитакая хуита. Но это абсолютно не значит, что нужно из-за этих 0,2% возводить NDK в абсолютноимбовуюмегаЁбу обязательную для всех задач, блядь. Тебе и твоим поддувателям, ебаклакам, уже кучу раз ИТТ написали, что для каждой задачи есть свой инструмент и нехуй из пушки шмалять по комарам
>делать симуляцию обхода фрезы на пилораме
На мобильном девайсе? Ты сосвсем кукухой трунулся, ололош?
и вообще, судя по всему, ты ебанат, РАБотающий в очередной госпараше. Уж слишком пизданутые идеи уровня, "а давайте сделаем прогу-ебу шоб ебашила, как Ansys и шоб работала на 386 компе и шоб, короче денях на разработку не надо было тратить", ты высираешь ИТТ
>В памяти - не влезает, на флешке - медленно, битмапы по сети тянуть - в оффлайне работать не будет. И вот тут байтоебство может проявить себя во всей красе.
Интересно как?
>Ну таки да.
Ну я так понимаю что мобильные сдк гугл мапс, мапбокса и прочих сами себя написали
Хотел мувисерчер, но это слишком банально наверное
Добавь в мувисерчер скачку фильмов из рутрекера
Я бы не против подискутировать на тему нужности или ненужности тех или иных технологий, но с тобой это делать неинтересно - это как разговаривать со школьником без опыта.
И да, я на ZX-Spectrum писал, а ты?
Пытаюсь вытравить из головы свой подростковый максимализм, снять розовые очки наконец.
А вы следите за новинками в мире мобилок? Какие сейчас девайсы актуальны? Мне кажется для байтоебов особенно интересным должно быть какие новые фичи с тчк зрения железа сейчас внедряются. Процы на арме завезли? А процы для нейронок? Какие-нибудь новые сенсоры, датчики?
Это зависит от того, что именно ты хочешь получить. Если хочешь жрать оплачиваемое говно, то будь готов к скорому выгоранию. И если твои идеи направлены на скорейшее получение бабла, то не удивительно, что "у всех идеи одинаковые" - все это пытаются сделать, вот и тырят известных схемы друг у друга.
Если же ты хочешь создать что-то для себя, интересное и великое, то просто начинай это создавать. И не важно, вывезти это в одно рыло или нет. Дорогу осилит идущий, и порой даже хорошо, если ты не знаешь, как далеко можешь зайти.
>Процы на арме завезли? А процы для нейронок? Какие-нибудь новые сенсоры, датчики?
Процы у большинства изначально были на Армах, процы для нейронок пока экзотика, но уже есть, а вот датчики - ты сам можешь приклеить к своему телефону почти в любом ассортименте.
>>2039906
Службой в армии не горжусь, да и армию тут не упоминали. Упоминали мой любимый Спектрум. А написал я это потому, что уверен, что мой собеседник Спектрумы в глаза не видел, но почему-то их тут упоминает.
> что-то для себя, интересное и великое
А жрать на что?
Ну естественно все идеи так или иначе связаны с получением какого-то профита, сайд-эффект в виде какой-то пользы для общество это уже вторично, почему? Чтобы обеспечить возможность пилить этот проджект и при этом не есть вафли Яшкино.
> идеи направлены на скорейшее получение бабла
Так что коммерч. составляющая также необходима, хоть я вообще социалист и НЕПРИЯТНО думать о коммерч. выгоде.
Со жрать как раз и сложно. Если бы не жрот, я бы в рот ебал все эти собесы и даже бы на километр бы не подошел к этому Скотлину. Но с другой стороны, если думать только про бабло и поедание кала, то сильно одолевает желание удавиться, чтобы этого всего не видеть.
Значит у тебя не все так плохо, раз возникают желания разбираться в сортах говна. Хотел бы жрать, то даже бы не вздумал вякать и изучал бы все подряд, а так только ноешь на анонимной борде за зря
>>2041699
К сожалению, мне уже не 18 лет, я не могу похвастать нейропластичностью и легко принимать новейшие тенденции. Это когда тебе 18, ты легко можешь стать вегетарианцем, феменистом и шутливым программистом на Скотлине. А когда тебе 40, то все это воспринимается как сорта говна, а попытка насильно заставить себя в это вляпаться, похожа на попытку заставить вегетарианца сожрать жареной человечены.
> вегетарианцем, феменистом и шутливым программистом на Скотлине
меньше 27, программирую на Котлине чем, в принципе, не горжусь и от чего не супер прям в восторге, но терпимо, нихуя не вегетерианец, ебанутейший реднек, которому дапесды все эти ваши феменизмы-хуйвротчленизмы-альтрайт-анусы-всеэтовашенепонятноеполитговно и вообще, ЛЮДИ - ВЫ НИХУЯ НЕ ПРЕКРАСНЫ, ВЫ ТУПА ХУЙ НА БЛЮДЕ!, тупа работаю работу в будни и все. Вэлкам ту зе клаб, бадди!
Знаешь, вот прямо сейчас, прямо сейчас я тебя понимаю. Лето, жара, какой нахер Скотлин.
Но нужно проще к этому относиться. Учишь = вкатываешься. Не учишь - не вкатываешься. Хочешь не вкатиться? Не учи.
Я вообще что-то ебанулся с вашим погроммированием, пытаюсь свою жизнь раскладывать по тасочкам. Заберите свою романтику и принесите прагматику.
Представь как будешь щеголять на своем кабриолете по своему мухосранску, или любую другую мечту, что-то, что сможешь закрыть при помощи финансов. Может такие практики позволят твоему мозгу выделить достаточно дофамина для того, чтобы хотя бы НАЧАТЬ. Ну и мне не мешало бы поучить. А вообще Скотлин это абсолютли тоже что и Джава, мне так сеньор один сказал.
Лол, кек, новокек. Уволился с очередной РАБоты пару лет назад. Херячил инжеНЕГРОМ, имплементил и админил тучи всяких мегаёб почти 5 лет в мегаохуевшей забугорной галере. Пока сидел без работы, освоил этот ваш девелопмент под ведройд где то за год, поднатаскался в мегомодном девопсерском смузипоносе. Тосую теперь РАБоты, как карты в колоде, перекатываясь из разрабов в девопсеры и обратно, выбирая местечки по профитнее. Вроде норм, деньги имеются, жить можно. Так что твой высер - дешовая отмазка обычного неосилятора-лентяя
мимо-олд 35 лет
Да, я вот что-то делаю не так. Да, неосилятор и лентяй. А еще больной с вечной усталостью. Часто думаю о выпиле.
>Кроме заводов ещё куча мест — от геймдева до поисковиков и нейронок в машинках.
Ну я больше в эмбеддед, в этих ваших гейдевах и нейронках надо математику знать, а я все что сложнее 2+2 не сильно осиляю. Хотел бы конечно делать бекенд, имел даже опыт написания веба на сишечке, с хайлоадом, но... Хуй знает, кому такое надо, как такое продать.
>Ну так либо отдохни, посмотри маняме и подрочи
Так у меня перманентная усталость, я уже пару лет нихуя не делаю вообще. Дрочить особенно тоже уже не надо, возраст не тот. Тут бы таблетку сожрать и заснуть, но чтобы встать и выпить ее, я 3 часа прокрастинирую
Это копия, сохраненная 25 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.