Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Я прошел курсы Udasity, а дальше что? После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http, Json, SQLite. Дальше закрепляешь знания путем просмотра видосов выше + Написание парочку приложений на свой вкус. Так же стоит уделить внимание BroadcastReceiver, IntentService, поиграться с Loader's, хендлерами, Contest providers и прочее, построить очередной Weather or ToDo must have list.
>Не могу разобраться в потоках. Хендлеры, хуендлеры хуйтаски. Как быть?
>Хочу изучать популярные либы и не быть говноедом! Если ты сразу после курсов переползаешь сюда - будь готов, что ты не будешь знать как это делается под капотом, и в конце концов соснешь когда-нибудь. Retrofit - стандарт для взаимодействия с сетью. Она идет в комплекте с okhttp3, начинаешь с последней, а потом переползаешь на сам ретрофит. Так же для справки можешь гуглить volley.
RxJava - одно из решений для выполнения кода в бекраунде. Ниже ссылочки, смотри и поглощай.
Неплохо было бы и изучить MVP. Вообще его следует изучать сразу. Видишь MVP - сразу пиши нормальный код. Никаких нахуй асинтасков внутри активити. Для самообразования можно написать его голыми руками или прогуглить, как это делается.
Вышеописанные два подхода - всего лишь обертки, чтобы вынести логику из views. Для более углубленно изучения рекомендуется почитать this: https://habr.com/company/mobileup/blog/335382/
Остальные куски: ReactNative — мочаскрипт во всей красе. - PhoneGap/Ionic/Titanium — имя им мочаскрипт-младшие, принципы у них разные, кроссплатформенность одного кода. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред. - Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде. - Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде. - BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры! LibGDX - слишком медленная параша для больших проектов, но познакомится можешь. Unity - для адекватных, Corona SDK, LOVE, Defold и другие. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь? Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии (уже androidx), shared preferences, SQLite, Handlers, Executors, Content-Providers), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам) + гугловские поделки jetpack, понимания СОЛИД и других паттернов проектирования. Базовое понимание что вообще такое Gradle. И хотя бы несколько готовых приложений.
>>1338069 (OP) >>1338072 Говно, а не шапка. Куча разрозненных ссылок на всякую хуйню. Никто эту простыню не читает, поэтому и переспрашивают по десять раз платину.
>>1338069 (OP) сап андрогины. для изучения андроидов думаю какое бы приложение запилить. в программировании не первый день, но как то всё под десктоп да под веб разрабатываю. в голове вертится идея сделать приложение, которое могло бы на заданной частоте передавать данные тупа байты и прослушивать сигнал пока без демодуляции. скажите, не обосрусь ли я от такой задачи? в андроид сдк есть для этого удобные инструменты, или для таких дел придется говна хлебнуть на низком/системном уровнях? и как такое вообще гуглить? на запрос android develop send and listen data on a frequency ничего релевантного нет.
>>1338247 >а как это реализовано? У них свой рендер фреймворк. скиа. Бтв там уже подкаст рускоязычный пилотный вышел. Но еще рано думать про него, пока только люди грабли собирают.
>>1338312 >скажите, не обосрусь ли я от такой задачи? > могло бы на заданной частоте передавать данные тупа байты Такое никто не делает.
Кто-нибудь сравнивал наши ламповые мобилки по сравнению с веб-разработкой? Я сначала пытался вкатится в веб, но что-то испугался такого зоопарка технологий, что во фронте, что в бэкенде. И еще сейчас хайп у вкатывальщиков именно в веб - все бывшие кассиры и грузчики туда прут. Мобилки на этом фоне просто тихая гавань.
>>1338585 >Кто-нибудь сравнивал наши ламповые мобилки по сравнению с веб-разработкой? Параша. Даже кросплатфомр выглядит в разы лучше. (это онли РН или же флуттер)
>>1338658 >если я добавляю к лаяуту ТачЛисенер А ты false кидай в return метода onTouch, если хочешь, чтобы событие дальше по иерархии пошло. Хотя странно, обычно сначала вызывается onTouch дочерних вьюх, а уж потом - родительских. То есть, onTouch картинки должен вызываться раньше, чем onTouch вьюгруппы. Если ты dispatchTouchEvent не трогал.
>>1338585 >Я сначала пытался вкатится в веб, но что-то испугался такого зоопарка технологий Ты ебанутый? На андроиде ситуация с этим ничуть не лучше. Java, треды, сокеты, Kotlin, корутины, RxJava(операторы и тд), MVP, DI, Dagger, Koin, GreenDao, Realm, Room, OkHttp, Retrofit, Glide, MVVM c архитектурными компонентами. Android SDK это разумеется. Это все нужно знать чтобы вкатиться. Все было на моих собесах.
Типо такого: >1.Основной модуль опросник – вычислениях из БД FireBase. База данных уже набрана, выдает результаты на основе введенных ответов. Добавляется новый объект – адрес (вручную, GPS, пальцем по карте) опрос по БД, выдача информации.
>2. Модуль взаимодействия пользователей разного уровня доступа. – Нижний уровень пользователя выполняет действия по регистрвции объектов используя камеру, GPS, время. Верхние уровни получают уведомления.
>>1339185 Что такое "правильная архитектура"? Рекомендуемая гуглом через architecture components - да, у тебя на пике. Но есть, например, clean, который по-другому выглядит и взаимодействие между компонентами там не напрямую, а через таски, и вообще её можно и без LiveData реализовать.
>>1339344 Ебашь MVP и не выёбуйся, его хотя бы все понимают. А то обмажутся датабайндингом, где необходимо строкой писать полное название класса в xml-ках, а потом рефакторят, что аж пот на лбу выступает.
Так, блэт, я не понял. Вкатился еще в августе в андроид, работаем с MVP. В других компаниях тоже просили знания этой архитектуры. Сейчас собираюсь пилить проект, чтобы было что показать в портфолио. Хотел вкатиться в MVVM, но назрел вопрос. В чем профиты его использования по сравнению с MVP? Уберем из внимания то, что это проект гугла, где явные преимущества? Вот эта тема с написанием кода в xml вообще не вкатывает. Что в итоге выбирать для будущего проекта?
>>1339420 Явные преймущества? Давай поразмыслим. Лив дата хуйня, вью модел хуйня. Постоянно натыкаешься на костыли, которые пофиксят только к следующему гугл ИО.
Для общего развития можешь туду лист сделать. Если он у тебя конечно не сломается.
>>1339420 > Так, блэт, я не понял. Вкатился еще в августе в андроид, работаем с MVP. В других компаниях тоже просили знания этой архитектуры. Это не архитектура.
Помочь перепрошить Miband2.Аноним01/02/19 Птн 20:57:42#47№1339566
>>1339420 > Хотел вкатиться в MVVM Выкидывай решительно нахуй лайвдату и ту залупу для написания биндингов в хмл. МВВМ заебись делать прямо на реактивщине. Вместо баиндинговой залупы от гугла используюшь няшноту от жеки вортановича. Остальное тоже на рх потоках и заебись.
>>1339566 Первое, возможность чесать анус и делать максимально возможные вещи реализованные лишь данными технологиями - это разные вещи. Второе - иди нахуй. Третье - были бы часики я бы с 30% посмотрел бы в твою сторону.
>>1339631 Щас бы связываться с дата биндингом. Помню я все настраивал и оно суко не запускалось, хотя после перезахода в студию ВСЕ РАБОТАЛО. Самый страшный опыт из всего что было.
>>1339736 Нет, говно - это как раз разработчики, которые решают, что им нормально качать сотни мегабайтов без спросу, постоянно держать в фоновом режиме открытый сокет, получать доступ ко всем данным пользователя. Очень хорошо, что современные версии андроида это нещадно пресекают.
>>1338092 Может быть и лучшее, но ссылки реально разрозненные. Вот ты написал про головача перед Head First Java.А нахуя? Логично, что head first это самый легкий вкат и она должна быть первой
Не увидел mvvm со стейтами. Имхо, это наилегчайшая архитекура для вката.
Про тестирование у тебя статья с медиума, когда есть божественная статья от Яндекса на хабре. И еще одна от рандомного хера, но более прикладная.
Сайт алксандра климова это вообще пиздец какой-то, пересказ офф доки(которая есть на русском), так еще и хуевый пересказ.
Мобильная разработка от яндекса уже сильно устарела. Есть более свежий android academy.
>>1338585 ты долбоеб? андроид рынок уже сейчас перенасыщен в рф.Есть чат в телеге по вакансиям на мобилках. Посмотри как вкусные вакансии улетают буквально за несколько дней. А номр вакансий реально мало,в основном предлагают разгребать легаси говно лопатами. Вкатывальщиков дохуя, мидлов тоже дохуя. Хохлы,которые демпингуют удаленку в рф это вообще платина. А в мировой разработке пиздец, любой раджеш знает как рекуклер сделать. Сейчас для нормального андроид дева апворк мертв, там всем поебать на твой хороший код, всем нужны индусы.
А вот посмотри на айос. Лингвалео уже месяц ищет мидла, они уже даже требования понизили, вообще никого нет. И таких как они много.
>>1339227 норм только вкатывайся в хорошие компании типа яндекса. Там оценят твой опыт. Это учитывая, что ты знаешь все паттерны и т.д. Есть ырыкс это по сути стримы. У ретрофита вообще дао, так что будет понятно.Единственное, что надо будет изучить это дагер, андроид сдк, moxy(viewmodel)
>>1339946 В чём проблема открытых сокетов? Замерял затрату CPU, там стабильный ноль, только прыгает немного (пара процентов) раз в тридцать секунд, если пинг включён. Пользуюсь вебсокетами OkHttp.
>>1339054 >>1340008 Как ты заебал со своим Moxy. Уже третий тред подряд на любой вопрос только её и советуешь. Тебе платят за это или ты бесплатный полезный идиот?
>>1340025 Хорошо, почитаю. А какой тогда алгоритм работы? В onStop активити закрывать сокеты, и в onStart их поднимать, при этом если на этой активити информация, зависящая от вебсокетов (например, чат), то рефрешить страницу? Сдаётся, мне, что юзеру это будет менее удобно.
>>1340046 А ты в телеге не замечал, что когда переключаешься на телегу там в тулбаре на секунду появляется "соединение..."? Но оно там так работает конечно не потому что разрабы молодцы, а потому что их фоновый сервис дропается в фоне и он перезапускается при открытии приложения. Но тебе то все еще норм как юзеру?
>>1340000 Я накатал большую простыню, но это все удалилось, жаль. Если хочешь покидать ссылки - покидай на тесты + создание кастомных вьюшек (вменяемые).
>>1340063 Не, не замечал даже. Сейчас попробовал - и правда есть надпись. Спасибо, попытаюсь подобное у себя реализовать. Хотя проблема вебсокетов в том, что они хреново правятся и тестируются. У меня были проблемы даже с моим прямолинейным подходом, когда соединение рубилось и не подключалось, а чтобы отловить этот момент приходилось оставлять телефон на ночь и с утра логи смотреть. Надеюсь, что безболезненно внедрю новый подход.
>>1340236 Работа есть. Но не для 18-летних без опыта. Дяде нужно, чтобы ты мог нормально сделать. Если можешь нормально сделать, то найдёшь. Это касательно не только андроид-разработки, но и любой другой мозгоёмкой профессии. Брать новичков на вырост никому и никогда нахуй не нужно было. Так что запили какие-нибудь свои приложения, покажи дяде, что ты не хуй с горы, и ищи.
>>1340143 Ну погули, даже на девелоперс андроид есть. Суть в том, что если ты дрочишь сеть мелкими пакетами периодично, то радиомодуль не может перейти из режима передачи данных в режим стенд бай, из-за чего выжирает батарейку. Но трекается это системой как "связь с сетью", а не конкретное приложение. Тоже самое с цпу.
>>1340138 С артом как повезет. На некоторых версиях андроида ахот, на последних джит + ахот вроде, т.к. гуглы просекли, что после обновления прошивки сидеть полчаса смотреть на то, как перекомпиляются твои приложение как-то не очень.
Почему лаяут так тормозит пиздос. Изначально писал этот же экран под ios и там все просто летает, а тут тупа сижу атдихаю пока он высрется. Че мне теперь переписывать onMeasure, onLayout и прочее говно за них? Эт кста последний(и первый) раз когда я согласился пилить android версию
>>1340366 Это значит, что ты говно сделал, маня. Просрись. А если еще и DI не знаешь - так это сразу в опущенцы себя записывай.
Я тут проанализировал, что иос ребята дауны совсем. DI не понимают, VIPER блюются и пишут ОЙ КАК ВСЕ СЛОЖНО. Охуеваю с ребят. Или это может быть я выполз из говна? Тогда тебе, придется окунуться в это говно.
>>1340375 Не Там короче нужны анимации, поэтому constraintLayout. Еще подсписки могут быть разной высоты из-за текста - wrap_content Больше всего уходит на onMeasure, на пике 4 лаяута в глубину, на деле уже 1 и стало не так тормозить, но все равно хуйня
>>1340386 Ничего не понял. То есть, у тебя есть рисайклер вью с днями недели, и у каждого дня недели может быть дочерний констрейнт лейаут с внутренним ресайклер вью? Или у каждого дня недели внутренний ресайклер вью с элементами, имеющими в основе констрейнт лейаут? Или у тебя вообще вложенных ресайклеров нет, есть констрейнты, а списком ты это называешь номинально?
>>1340403 А может заменишь на полноценный ресайклер? Там же тоже можно анимацию запилить, какую хочешь. Это должно лучше работать, если правильно реализовать. Или второй вариант. Ты, как я понимаю, вьюшки в констрейнт добавляешь в onBindView родительского ресайклера? Если так, то этого делать не стоит. Лучше используй холдер паттерн, то есть найди способ, чтобы не добавлять новые вьюшки каждый раз, а переиспользовать старые.
>>1340415 >А может заменишь на полноценный ресайклер? Там же тоже можно анимацию запилить, какую хочешь. двачую адекавта. видишь список - ебашишь ресуклер.
>>1340415 Делаю как в ios. Там я не юзаю tableView(аналог recycle) потому что не получилось добиться нужной анимации(плавный выезд подсписка со смещением нижнего дня и тд). Дак там нет даже подозрения на делей, хоть и вьюшки добавляются каждый раз новые
>родительского ресайклера Нет такого, от него же профиты начинаются когда вьюх дохуя, а не максимум 7
>>1340430 Я под родительским ресайклером подразумеваю вот этот вот список со днями недели. Или это тоже статически добавляемые вьюшки? >Нет такого, от него же профиты начинаются когда вьюх дохуя, а не максимум 7 От него профиты начинаются, когда вьюхи перестают помещаться на экран. Это если про производительность говорить.
>>1340436 Тоже вьюшки, там энивей нулевой профит от ресайкла для дней недели, даже не хочу представлять как надо будет обмазаться, чтобы переопределить их анимации потом. Они рисуются моментально, торможение наступает, когда я первый раз открываю подсписок.
Я прологировал что там происходит : андроид решает пустить по кругу через onMeasure() все вьюхи в подсписке. Сначала меряет layout1, потом меряет все в него входящие вьюхи, после каждого измерения внутренней вьюхи заново меряет layout1 и все в него входящие и так дохуя раз. После этого я понял зачем некоторые челы в гайдах с ютуба переписывают onMeasure(). Хуй знает понял ты что я выше высрал, но у меня это как-то сложилось в картину
>>1340452 Я понял, что ты написал, причин подобного поведения не знаю, но лучше бы ебашил ты всё в ресайклерах, и работало бы всё быстрей. А то ты какой-то велосипед на ровном месте придумал (просто потому что там анимации из коробки, а для нормального решения анимацию написать немного сложнее) и жалуешься, что производительности нет. >там энивей нулевой профит от ресайкла для дней недели Я же вижу по твоему скрину, что у тебя уже вьюшки дней недели не влезают в экран. А если и там, в невидимой области, будут констрейнты? Тогда при скролле у тебя вообще всё пересчитываться будет. А в ресайклере задействованы только те вьюшки, которые ты прямо сейчас видишь на экране.
>>1340464 >но лучше бы ебашил ты всё в ресайклерах, и работало бы всё быстрей Нахуй этого дауна. Человек с иоса пришел, там не тормозит ничего и можно говнокодить. Он не понимает этого.
>>1340469 Именно. Все работает искоробки, оптимизированно, не надо лезть в залупу ведь все инструменты уже написаны, не надо думать что будет на трубе с алика за 3к и старой версии sdk, продолжать можно долго. как же ахуенно
>>1340472 >Именно. Хуименно. И сейчас я распишу почему.
>Все работает искоробки да, только хкод говно и не спорь с этим
>оптимизированно, хуимизировано
>не надо лезть в залупу ведь все инструменты уже написаны С чем ты блять сравниваешь? Тебе просто ресуклер надо применить, а не вертеть хуйню.
> не надо думать что будет на трубе с алика за 3к и старой версии sdk Это вообще не оправдание
>продолжать можно долго. как же ахуенно хуенно
После ведройда тебе только веб может быть страшен и все. А твое описание - это как будто ты родился сразу принцем. Так теперь скушай говна, дружок. Это мы, ведройдеры, которые покушали говно можем спокойно и под иос кодить, так что соси.
А вообще, посоны, учитывая, что железо на ведре обычно лучше, чем на гейфоне, чем обусловлены проблемы с производительностью? Слишком большой слоистостью системы а-ля linux+jvm? Какой там стек на айфонах, айосники, расскажете?
Не могу понять как одновременно обработать свайп у родительской вьюхи и клик в дочерней
Чтобы обработать свайп у родительской мне нужно установить onTouchListener и там сначала : в MotionEvent.ACTION_DOWN засечь координаты1 и вернуть true, чтобы дальше в MotionEvent.ACTION_UP засечь координаты2 и понять был ли свайп. Только дело в том, что после того как я вернул true первый раз touchListener не идет дальше по иерархии вьюх и touchListener дочерней не срабатывает.
>>1340603 Так почему он не обрабатывается, если ты координаты сохраняешь и сам его обрабатываешь? А почему у тебя вообще onTouch вниз по иерархии идёт, а не вверх? Он сначала должен у дочерней вью вызываться, а уж потом (если дочерняя вернула false) у родительской.
хули ему надо? если на место отмеченное красными стрелками вставлять простое значение то всё работает корректно, проблема в плаинтекстах, но понять где не могу.
>>1340333 А вот на счет ведройд академи - ну хуй знает. Готовят просто людей которые сразу ебнут в нетворкинг и все.
Анимации нет, обработки жестовн нет ну и т.д. Ну это вводный курс, но нельзя так оправдываться. на стенфордском больше этому уделяется время, хотя он офк тоже вводный.
Ебусь с этим уже пару дней, перед каждым запуском проекта приходится дрочить кнопку "Sync project with graddle.." или "invalidate caches and restart", тогда ошибка пропадает, но не надолго. Где я обосрался?
>>1340477 портировал свою прилагу на ios, и вот что я понял: -тулинг говно (аж трисет от xcode и itunes) -можно вполне накидать приложение по кускам из stackoverflow и оно даже сносно работает -если хочешь чуть копнуть и кастомизировать что-то, то отсасываешь или лезешь в приватное апи и отсасываешь -фрагментация есть, но меньше -по крешам невозможно понять что ебнуло и где (лол все креши это bad_access invalid_address) -топ 1 в категории appstore получает в 10 раза меньше установок чем в google play, но пользователь приносит 2*$ -apple pidory
>>1340656 Я только вкатываюсь. Просто в сравнении с msbuild, встроенным в ламповый вижак, граддл, а точнее неавтоматизированность работы с ним в android studio, доставляет мне как девелоперу головную боль.
>>1340658 >Я только вкатываюсь. Просто в сравнении с msbuild, встроенным в ламповый вижак, граддл, а точнее неавтоматизированность работы с ним в android studio, доставляет мне как девелоперу головную боль. Не слушай никого. Особенно этого петуха >>1340659 Но подсказать и я тебе не смогу, ищи ответы в гугле.
>>1340646 хуй знает не разбираюсь в тянках просто помню, когда вкатывался смотрел яндекс академию, потом узнал у коллеги , который вкатывается в ведро об андроид академии, о пиздатом докладе по асинхронщине о какой-то телки. Посмотрел, а это та, которая в яндекс академии сидела на первом ряду и больше всех доебывала вопросами)))
>>1340670 Для битмапов WeakReference годная вещь. Без этого OOM ловится влёт, если картинок в приложении много. А вот, чтобы контекст хранить - это да, очевидный костыль. >>1340653 А что у тбея там такой за хитрый код? У тебя там манифест как-то хитрожопо определяется что ли?
Сделал простой mvp апп для себя с боковой менюшкой и webview, который открывает сайт онлайн-магазина (я там регулярно покупаю разную хуйню, а у них своего нихуя нет). JS активирован(!). Что будет если им предложить выложить эту хуйню на play store и отдать сурс?
Как перестать переписывать приложение которое я уже пишу 8+ месяцев? Узнаю новое - начинаю все с нуля. Подправляю DI и еще чем-нибудь посыпаю. Меня это раздражает, а смотреть я на это просто так не могу.
Из-за того что мне еще не нравится дизайн - мне приходится по часу\два сидеть на https://uplabs.com и выискивать красивенькие формочки.
>>1340738 Но тебе же нравится его переписывать. Тебе нравится процесс, как ты из говняхи делаешь конфетку, как Микеланджело вытачивающий из куска мрамора очередной шедевр. Цени эту возможность, потому что работая на дяду у тебя ее не будет, ведь фичи сами себя не раскатят, нам некогда ебаться с рефакторингом.
>>1340738 >Из-за того что мне еще не нравится дизайн - мне приходится по часу\два сидеть на https://uplabs.com и выискивать красивенькие формочки. А как ведробляди открывают sketch у себя, в котором большинство дизов пилится? Предполагаю, что большинство без маков, иначе были бы айосблядями
Есть ли какой-нибудь туториал по флаттеру (или ссылка на гитхаб) как запилить бесконечный GridList (т.е. чтобы несколько элементов в ряду было), но при этом чтоб была возможность для лоадинг индикатора в футере сделать так, чтоб он занимал сразу все доступные ряды? Все туториалы что я видел по грид листу юзают SliverGridDelegateWithFixedCrossAxisCount с константым количеством элементов и в итоге получается, что футер занимает один ряд и выглядит это хуёво.
Ну и почему сука я должен узнавать что морф вьюшек анимации красивых происходят через ChangeBounds animation android, ни одного блядского туториала. НИ ОДНОГО. ВООБЩЕ НЕТ НИ АНИМАЦИИ, НИ КАСТОМНЫХ ВЬЮШЕК. НИЧЕГО. Повысерали своими ретрофитами и ААС просто ахуеть.
Нужно вывести подсказку "тут можна свайпнуть влево, чтобы увидеть ...) Дефолтные ру/енг юзеры знакомы с таким понятием как "свайп" или как ? "потяните/смахните"
>>1340717 Двачую, у меня так клиент для КиноПоиска забанили, да и хуй с ним >>1341137 Можно сделать нескрываемую анимацию на 10 сек, с свайпающим пальцем.
>>1341510 Есть, но там говно на самом деле. Роадмап в шапке вон, читаешь и делаешь. Успех гарантирован. Но главное после 5 месяцев уже искать контору на стажера если не хочешь рискнуть быть таким же как и я.
Сап погромисты. Я в телеге в ЧС у одной тян, так вот захожу я сегодня в телегу и вижу фото её профиля, но когда захожу в чат, то через секунду фото пропадает. Это баг телеграмма или это значит что она удвлила меня из чс, но потом снова внесла?
>>1341815 Стаковерфлоу же. Если проблема не гуглятся, значит, делаем костыль. Приведи примеры таких тонких моментов. Мне на ум приходят только всякие системные фичи, типа что в 8 ведре запретили неявные бродкасты, а я не знал, пока сам полгода назад не заметил, что у меня соответствующий код перестал работать на моём новеньком тестовом девайсе. Или вот в прошлом треде мне анон сказал, что стоит всё-таки гасить вебсокеты по сворачиванию приложения. Но это просто happy little accidents, на самом деле.
>>1341860 >тонких моментов ооп и паттерны, архитектурные и прочие решения, типо как хранить данные в каком формате и тд самый большой минус кмк - отсутсвие ревью. мало того что баги пропускаешь, так еще и говнокодить никто не запрещает
>>1341889 Земля пухом всем, кто поддерживает чужой код. Бываешь, откроешь какой-нибудь вылизанный до блеска гитхаб, чтоб с котлином 99го уровня, и нихуя не понимаешь - полсотни классов и непонятно куда читать. Хотя уже наловчился, на самом деле, там всё-таки структура зачастую одинакова даже при разных архитектурных подходах >>1341890 >архитектурные решения >тонкие моменты штоу >как хранить данные в каком формате А какие форматы бывают? >говнокодить никто не запрещает Зачем мне говнокодить, если мне потом с этим же и работать? Не, я уверен, что можно писать лучше, но я эффектив джаву читал, осознавал и в принципе пишу норм, как мне кажется. >баги пропускаешь Ну, критичного за три года, чтоб приложение не работало, не было, тьфу-тьфу-тьфу. В фабрике 99.9%, кстати. Оценка на маркете 4.5 за двести оценок, но там 90% оценок и плюсовых, и минусовых, относятся всё-таки именно к сервису, а не конкретно к приложению.
Но вообще, я тоже сейчас хочу перейти в команду. Но это просто потому что чувствую, что сейчас мне стимула развиваться нет и я топчусь на месте. Хули, пинай своё приложение и пинай.
>>1341902 Дак если ты пишешь под себя, то вообще похуй должно быть на чье-то мнение по поводу кода. А когда придешь батрачить на дядю тебе быстро пояснят за кодстайл и архитектуру, чтобы другим рабам было комфортнее с тобой работать
Пикрел мой высер в плаймаркет. Написан за полгода, без рекламы и накруток. Там дохуя багов и много че работает через жопу, энивей хавают. Тупа лень рефакторить и фиксить там всю хуйню
>>1341906 мое тоже хавают, но я жалею что нормально не писал и не пишу, думал сперва самого себя ревьюить, (типо создаешь PR и на следующий день смотришь свежей головой), но лень победила. В итоге некоторые фичи мелкие и вовсе сейчас запилить не могу, т.к. в существующую кучу говно просто так не встроить, придется все переписать, что займет много времени/создаст много багов. ну и по ходу роста сложнее поддерживать >Зачем мне говнокодить, если мне потом с этим же и работать? ну тогда ты или замотивированный неленивый биоробот или норм код от говнокода не отличаешь (индусский говнокод не в счет) сколько бабла приносит/какой cpm?
>>1341906 Ну, у нас приложение распространяется чисто среди людей, кто готов деньги платить, мимокроков там нет, поэтому у нас немного оценок и загрузок. А какая направление твоей разработки? Я как-то сделал трекер пути, там было за год пара сотен установок. Хотя аналог от гугла был говном, который у меня даже не запускался. >тебе быстро пояснят за кодстайл Стильчекер установят? Страшно, да.
>>1341933 Нихуя не приносит, рекламу не вставлял, добавил один ин апп только. Перестал поддерживать еще летом, в январе снял с плеймаркета, рофлю с графиков до сих пор
>>1341938 Хуевое направление, развлекательного формата
>>1342064 Потому что ООП и инкапсуляция Кроме того, внутренние статики можно создавать независимо от оборачивающиего класса, а внутренние нестатики - нет. Первое, что приходит в голову - Builder'ы. Ещё я часто определяю внутренние статики, когда описываю json, приходящий с сервера. Потому что если в json'е, например, 4 разных объекта, то их проще описать в одном классе, сохраняя их иерархию, нежели разбрасывать по разным файлам и пакетам и потом их искать.
>>1342085 >Ещё я часто определяю внутренние статики, когда описываю json, приходящий с сервера. Потому что если в json'е, например, 4 разных объекта, то их проще описать в одном классе, сохраняя их иерархию, нежели разбрасывать по разным файлам и пакетам и потом их искать. Делаю как на пикриле
>>1342136 Ничего не понял, что ты хотел это показать. То ли у тебя REST чистый, то ли у тебя префиксы определяют базовый объект респонза, то ли что-то третье.
>>1342137 Ты не испытываешь, а вот мне, например, непонятно. То, что ты не испытываешь проблем, это очевидно - ты же сам и создавал. Вон, мне тоже у меня удобно, но ты охуеешь. Алсо, 60к строк.
>>1342806 В яндекс картах вроде есть отдельная апи для карты, которая позволяет рисовать маршруты, в сэмпле точно есть что-то похожее. Так что ищи в апи библиотеки карты.
>>1342822 ЗАвисит от кружочков. В яндекс картах можно рисовать на карте объекты с анимацией. Также можешь отдельными вьюшками это делать. Для этого или поставь elevation, или просто в иерархии вьюшек ниже описывай.
Анончик, есть ряд приложений, которые могут рисовать поверх других экранов. Причём на новых версиях андроид нужно запрашивать специальный пермишн. Но у этих приложений этот пермишн не разрешён. Но они они все равно рисуют. Погуглив все ссылки ведут на добавление интента с открытием экрана настроек. Как такое загуглить или может кто сталкивался с этим?
>>1343312 >When you are comfortable with the Java, learn Kotlin. Спасибо, мистер медиумец! Все эти гайды - хуета полная, как по мне, пишутся чисто классы набрать и не предназначены для обычного человека. Тебе будет просто скучно учить непонятно что непонятно ради чего, а когда это скучно - это быстро забывается. Лучше иди на developer.android.com, раздел make your first app, и там немного покрутись. Потом просто придумывай какие-нибудь простенькие задачки и делай их. Например, секундомер или калькулятор.
>>1343312 Это не практикал гуид. Это просто листочек где тебе сказали - ну фрагмент это вот это и все. Везде все есть, кроме нормальных уроков onTouch, View Gestures, CustomViews. Остальное все есть в шапке. Здесь еще анон кидал какие-то видосики от еврея который в москве зимой этой проводил курсы для начинающих.
Ну и шапку смотри - все что там есть - это основа, и хотя бы нормальные ссылки присутствуют, в отличии от этого дауна. Хотя сам миндоркс норм.
>>1343328 Активити можно отображать на пол экрана? А то эта хуита детектит с помощью ацесабилити сервиса адресную строку и основываясь на этом уже решает показать тебе или нет попапчик. Если Активити на весь экран, то строка не будет детектится. Но это вообще неважно, нужно понять как у них это реализовано, что можно спокойно свайпать страничку, если это конечно Активити.
уже пол года как вкатывальщик, только сейчас посмотрел вакансии на хх.ру а их там 2-3 от силы, в то время как ссаных фронтэндеров нужно дохуя. анонче, так всегда было? мне страшно да похуй на самом деле
>>1343474 счас подумал, а что если поменять свой опыт в резюме на какого-нибудь строителя/мента и попробовать джуном устроиться (от нехуй делать). ох и пришлось бы говна и унижений хлебнуть, + возраст уже не ждуновский
Есть задание, получить изображение с камеры и по нему построить некие графики. В андроид разработке вообще не шарю. Немного кодил на C#, примерно представляю как на нем сделать. Но мне надо на андроиде. Сложно ли такую тему реализовать с нуля? Если знаю C#, стоит пробовать в Xamarin а то по нему совсем мало инфы и туториалов? Или лучше в студии пытался что-то делать?
>>1343578 >Если знаю C#, стоит пробовать в Xamarin Не стоит. До сих пор сырой, костыльный, с тонной багов на ровном месте. Бегло пробегись по котлину (пару часов) и вперед пердолить гугл доки
>>1344126 Если очень хочется, то через ConstraintLayout и его вспомогательные элементы Guideline. В некоторых случаях можно через LinearLayout и веса. Но я как-то обычно забивал на подобные вещи. Всё-таки размеров экранов очень много.
Парни, спасайте. Я не могу понять как настроить доступы к базе данных Firestore. У гугла ноль нормальных описаний по доступу & credential. Итак, у меня есть 4 вида аккаунтов: сервисный (owner), без аутентификации, моё приложение, не моё приложение (левая аутентификация).
Я хочу, чтобы только моё приложение имело доступ read к документам. Owner получает доступ ко всему в любом случае, его мне настраивать не надо. Я хочу сделать какой-нибудь Credential (client id, client secret или token), засунуть его внутрь приложения. Чтобы с этим credential был доступ к данным, с другими или без Credential — не было. Я понимаю, что можно просто вскрыть файл с приложением и вытащить оттуда, это не проблема, но чтобы хоть минимальные трудозатраты взломщики/парсерсы совершили.
gcloud auth login открывает окно входа в google account, причём GCloud ещё не знает к какому приложению я хочу цеплять доступ, значит GCloud даёт доступ ко всем приложениям на аккаунте, я хочу не так. Я хочу сгенерить какие-нибудь client_id & client_secret, которые смогу читать из базы данных, но больше не смогут ничего.
Я вижу некую настройку в https://console.cloud.google.com/apis/credentials?project=example-2ch-application-name , там создаётся, как я понимаю, что-то типа client_id & client_secret. Как их дальше вставить в FirebaseFirestore? Я знаю, что у FirebaseFirestore есть SetOptions (или как-то так), но я не вижу в Сети никаких примеров как там ставить какой-то конкретный credentials.
Я правда уже гугл поиск изнасиловал со своими запросами, не могу найти нормальных мануалов и всё тут
>>1343474 и эти вакансии обычно полное говно. На них ты даже норм опыта не получишь, такие работодателям похуй на свои приложения, живут на откатах, будешь в одно рыло пилить все. Лучше иди в яндекс на стажировку или в другое куда то место. Получишь там хороший опыт и потом возьмут в норм компанию
Поясните за маппинг данных, вот есть у меня ебанутый рест, который в джавовом виде возвращает, что-то вроде такого dataResponse().getDatas().getData().getDataList(); и пример JSON'а { "datas": { "meta": {...}, "data": [ (вот этот массив, который мне нужен) ]}}
Конечно же, я в начале с такой херней не смирился и написал кастомный десирализатор для гсона, который скипал до листа и все ок было. Потом увидел тут про маппинг данных и задумался, как вообще правильно делать. Почитав то тут то там. Я так понял, не важно насколько странный ответ от реста, мы его получаем в том виде в каком он есть и маппим в наши нормальные классы. Те которые с реста с суффиксом DTO, если это так, то как называть "нормальные" pojo? Маппинг делать в презентере или как-то крутить свои конвертеры ретрофиту? И да бонусом еще, если ошибка, приходит json в котором код ошибки, сообщение, и самое блять главное возвращают статус код 200 ОК, это мне в интерсепторе каждый запрос парсить на наличие поля еррор и кидать exception, или можно это как-то в фабрику конвертеров запихать?
Да проект учебный первый для портфолио чтобы обоссывали на собесах, поэтому публичный API методом тыка выбирал.
>>1344472 твой json похож на soap ответ, такая же ебанутая вложенность. Маппить надо в твоей модели, где ты получаешь ответ. В презентер у тебя должен уже приходить нормальный pojo класс. Название зависит от твоей конвенции. Я люблю называть UserModel, MarketplaceModel кто-то называет User, Marketplace это наверное, самые частые конвенции.
>>1344472 >Те которые с реста с суффиксом DTO, если это так, то как называть "нормальные" pojo? Я уже кидал как у меня устроена эта связь. Смотри выше.
>>1344472 >И да бонусом еще, если ошибка, приходит json в котором код ошибки, сообщение, и самое блять главное возвращают статус код 200 ОК, это мне в интерсепторе каждый запрос парсить на наличие поля еррор и кидать exception, или можно это как-то в фабрику конвертеров запихать? Сам с таким работал. Короче, пилишь базовый класс с названием BaseResponse, там описываешь поля ошибок: код ошибки, сообщение и прочее. И все свои POJO наследуешь от этого класса. При получении ответ нормально парсится gson'ом, и ты проверяешь - если поле error null - заебись, работаем. Если не null - то значит ошибка, обрабатываем ошибку.
>>1345069 Задание: создать клиент-серверное приложение для поиска продуктов и просмотра детальной информации по конкретному продукту. Etsy API - https://www.etsy.com/developers/documentation - документация. Ключ для доступа к API - нужно создать свое приложение и использовать ключ.
Почему делать вьюшки так сложно? Да, я разобрался с declarative attrs, научился делать onMeasure и рисовать простые квадратики или же какой-нибудь кастом прогресс бар, сохранять состояние при перевороте - но на большее я не способен.
Захочу какую-нибудь безье построить - хуй пойми что написано в доках. Зашел на вики почитал - количество точек несовпадает с параметрами. Попытался рандомно подобрать значения - какие-то рандомные кривые с 0 логики строятся. Просто блять выгораю нахуй с этого ведройда. Ничего как всегда не понятно. Зашел сюда https://www.uplabs.com/ посмотреть и хотя бы в уме прорешать как бы сделать сложные UI - всплакнул. Зашел на гит поискать по ключевым словам - одни сложные примеры, где по 500+ строк кода. Пиздец.
Потратил 6 часов на это все говно так и не добившись значимых результатов. Если сейчас засяду писать кружочек таймер который будет анимироваться потрачу 2 часа.
Мать его, обоссанная документация. Ебал в рот этот весь гугл. x2 - это точка при которой строится кривая как на пикриле 2. Ой, интересно, а откуда у нас этот пикрил был взят? С нормальной человеческой доки из иоса. Просто охуеть. В пизду этот ведройд.
Ебал в рот, костыль на костыле. Сука, столько времени потратить, месяцы, годы нахуй. Как же горит с этого обоссаного ведройда, почему нельзя было сделать человеческую ось, почему я должен каждый сука раз страдать по каждой ошибки в этой ебаной документации. Почему они сука даже спустя столько лет еще не удосужились переписать Content provider? Городят свою хуйню, джетпаки хуяки, я ебал сука, покрывают говном еще большим ГОВНОМ, которое БАГОВАННОЕ и вообще не поддерживаемое.
Ах, давайте посмотрим на оф примеры гугла ТУ ДУ ЛИСТА. ТУДУ ЛИСТ на 4к строчек - ух бля, давай сука поизучаем, делать же нехуй, 4к на обычную тудушку тратить. Или посмотреть на это говно https://github.com/googlesamples/android-sunflower 5 ТЫСЯЧ мать его звезд. Да кто ЭТО СУКА БУДЕТ ПРИМЕНЯТЬ В ПРОДАШКЕНЕ? Всем настолько похуй на то что они делают, что ставят ради лулзов, чтобы они опять обосрались. Понапихали блять фабрик туда, НАХУЯ? Этот пример настолько выдрочен, что остальные просто остались БАГОВАННЫЕ и им даже похуй переписывать.
Почему блять у меня image лагает при транзишене? Почему блять я должен заводить кастомную трансперет активити и прокидывать туда картинку чтобы сделать мувы как в телеге? Почему блять достойных примеров нет во всем коде семплес?
Даже простой чек бокс очищает состояние при ротейте. Это просто хуево. Лучше уходить в бек, чем с этим говном ебаться, но я уже погряз в этом дерьме сука.
>>1345095 К сожалению это покрывает 90% задач для Джуна/Мидла, остальное это эпизодические войны со сборщиком и прочие редкие штуки. Опять же, хотя задание кажется простым, в нем можно вполне налажать и по большей части оно для отсева овощей перед собеседованием.
>>1345333 > Городят свою хуйню, джетпаки хуяк Пиндосам кстати джетпак очень зашел, прям люто надрачивают на него. Но и у пиндосов средний уровень ниже чем в рашке.
Аноны, есть те кто хоть мельком пролистывал книгулю busy coder’s guide to android development? Вроде много всего годного разбирается и учитываются современные реалии (допилы каждые 6-8 недель). Бонусом можно читать из специально слепленной приложули. Меня просто адски напугало кол-во страниц в содержании ридера 7000, вот и хотел узнать ваше мнение. Table of contents: https://commonsware.com/Android/
>>1345531 Книги не нужны. Скачал как-то приложуху, и ни разу не открывал. Для какого-то специфического вопроса лучше подойдёт стаковерфлоу, для какой-то новой технологии - ютуб и какая-нибудь запись конференции, для чего-то более традиционного - сайт девелоперов андроид или какой-нибудь из блогов типа startandroid
>>1345333 Проорал с этого тупоголового маньки, который винит в своей тупости и отсутствии предрасположенности к программированию документацию, гугл, ос андроид и джетпаки. Сука, просто топ кек. Дебилоид, просто смирись, что программирование - не твое.
Да, кстати, у гугла одна из лучших документаций в плане информативности разжеванности и удобности. Пробовал перекатываться с ведра на иос - там просто лютый мрак и кошмар.
>>1345333 >Почему блять у меня image лагает при транзишене? Почему блять я >должен заводить кастомную трансперет активити и прокидывать >туда картинку чтобы сделать мувы как в телеге? Почему блять >достойных примеров нет во всем коде семплес? >Даже простой чек бокс очищает состояние при ротейте. Это просто >хуево.
>>1345333 > эта бомбежка студентоты, которая увидела, что реальное программирование отличается от говнопримеров в универе и в нем надо действительно думать
>>1345601 Хз, что ты имеешь в виду, но я говорю именно про такие книжки, которые просто рассказывают про сдк, возможно с фичами и примерами. Так-то книги, конечно, важны. Программировать на java без прочтения effective java вообще нужно запрещать законодательно. Если ты не согласен, то аргументируй свою позицию. Может, я что-то не понимаю и это будет ценной информацией для меня.
>>1345611 >эта бомбежка студентоты, которая увидела, что реальное программирование отличается от говнопримеров в универе и в нем надо действительно жрать говно с лопаты Поправил тебя, не благодари.
>>1345604 >Пробовал перекатываться с ведра на иос - там просто лютый мрак и кошмар. Лол, не холивара ради, но в иос-треде вкатывальщики с андроида просто доебали уже своим нежеланием пользоваться документацией. Да что там иос, даже по языку гайд не навернув, начинают ныть о чем-то, чего не понимают.
>>1345626 но ведь в ios дока и вправду говно, вместо how-to список классов, небольшое описание к каждому классу и набор методов. есть какое-то подобие how-to и то с примечанием deprecated, для xcode5
Только начинаю вкатываться. В какой момент я должен задумываться о всяких джетпаках, android ktx, дагерах, RXах и т.д? Как я понимаю я должен научиться все это делать без сторонних либ, или можно их сразу аккуратно использовать, постоянно копаясь как это имплементированно?
>>1345644 Я и не спорю, что у гугла лучше. Все красивенько и в одном месте: api, гайды, лучшие практики, примеры кода - даже даун вкатится. Но блять, как можно не имения нихуя кроме описания метода и параметров даже их не читать, такие и заебывают. Кстати, и у эпл тоже много гайдов, только они лежат в архиве, из-за чего наверное некоторые считают их неактуальными, и на них часто есть ссылки в том самом небольшом описании, о котором ты писал.
Сап, ведрач. Вопрос немного нубский, но у меня вот такая проблема. Использую Retrofit, делаю два последовательных запроса, первый возвращает список id, второй использует эти id для получения подробной информации. Сделать это все в один запрос API не позволяет. Получается, что у меня идет первый Call, в Callback.onResponse которого я делаю второй Call, в Callback.onResponse которого я уже передаю данные дальше. Выглядит это вырвиглазно, коллбак в коллбаке. Я распихал коллбаки в два отдельных класса, чтобы хотя бы визуально этой "лесенки" не было явно видно, но проблему это не решаетю. Как можно это реализовать лучше? Можно ли это реализовать лучше?
>>1345644 >но ведь в ios дока и вправду говно, вместо how-to список классов, небольшое описание к каждому классу и набор методов. есть какое-то подобие how-to и то с примечанием deprecated, для xcode5 Где это? Ты в курсе что есть архивы и там подробное описание все лежит?
>>1345663 сразу задуматься надо,если будешь пытаться писать свои велосипеды или понять теорию, то много времени зря проебешь. Некоторые вещи понимаешь со временем
>>1346080 >Некоторые вещи понимаешь со временем Двачую. Раньше не понимал тоже ни реактивщину, ни дагеры. Выучил рх, а в хендлерах не разобрался. Ща уже со всем разобрался, лишь просто остается попасть в команду которую кодовую базу хотя бы имеет на 50+к строк. Или же перебежать в иос, мне понравилось что там нет ебли с UI-ем.
>>1346292 >в иос, мне понравилось что там нет ебли с UI-ем. > иос > нет ебли с ui-Ем > программирование любого экрана мышкой, без кода, из-за чего при одновременной работе нескольких программистов над одним экранов мержить ксибы не представляется возомжным без слез и бубна > нет ебли с ui-Ем
Аноны, такой вопрос, у меня есть исходник дико простой программки на андроид, я её заказывал, тк было лень самому писать. Сейчас не пашет она на новой версии андроида. Можно ли как-то её "пропатчить" в сети? а то не хочется снова изучать программирование по андроид, ставить всё на комп и тд вроде теперь написал куда надо
Аноны, есть выбор куда вкатиться со знаниями джавы. Либо в бекэнд уходить (Spring, Hibernate), либо в Андроид. Как по вашему, какая отрасль перспективнее? Мне нравятся обе, так что вопрос исключительно о деньгах, лёгкости нахождения работы, долгосрочных перспективах.
>>1346542 бекенд всегда нужен, сейчас анлроид перегрет + непонятные мувы гугла с флаттером и фьюжей, пока вкатишься в вандроид может что-то поменяться ну и чтобы вкатиться полноценно в ведро, тебе нужно знать котлин
>>1346544 >>1346542 добавлю еще. То что тебе нравится туда и вкатывайся, если дохуя перспективно и не нравится, то ты все равно рано или поздно перекатишься оттуда. И вообще сейчас в data science надо вкатываться, раз хочешь перспективно
>>1346539 указываешь расчетный счет и выводишь >>1346542 какие перспективы у бакенд макаки? сеньер лычка и 4k$(и то если шаришь) в ведроиде ты можешь создать свое суперговно приложение и заработать миллионы или потратить все деньги на разработку, вупустить апп, получить пожизненный бан у гугла и питаться дошираками, поэтому учика лучше свифт
>>1346486 Я же об этом и пишу, что программирование мышкой - это отсталая параша со времен забытого всеми делфи. А накидать код в хмлки и быстрее, и грамотнее, и удобнее с точки зрения дальнейшей отладки и мерджа.
>>1346305 >в иос, мне понравилось что там нет ебли с UI-ем. > иос > нет ебли с ui-Ем Да, нет, и я имел в виду с кастомными вьюшками и решение через код. Там и анимация тоже хорошая. Ведройд создан для статичных хуевин, анимация по типу телегиХ для новичка будет пиздец. Работа с картами и возможность рисовать поинты\дороги и перехватывать жесты для создания новых путей - тоже пиздец. Возможность разбудить телефон через alarm когда сам ведройд входит в дезМод - когда в иосе уже все под словом изКаробкиKit есть.
Попробуй сам и реши. Ведройд это сложный путь, я не спал ночами - но если через менторов вкатываться то это конечно же легче, как мразь через менторов.
Есть приложуха, которая юзает апи с client_id и client_secret. Стандартный набор окхттп + ретрофит. Нужно добавить еще один client_id и client_secret отправить запрос на сервер и получить токен. Полученный токен использовать только для определенных методов апи (не для всего приложения). В итоге у нас два токена, которые живут 30 минут. Как не тащить всю логику для получения второго токена и юзать его только для определенных методов?
>>1346993 У меня так 2 токена - 2 объекта ретрофита. Могут сгореть спустя 10 минут или же спустя 2 дня - хуй знает когда. Поэтому у меня есть отдельный хендлер фореграунд который раз в 10 минут с пост делеем запускает обновление. Еще ебучее сдк завязано на логику активити, пришлось расширяться.
>>1347010 А что если я скажу что у моего приятеля приложение в топ 10 входит в аппсторе? И он ссал на твой код для создания вьюшек и просто юзает сториборды? Хотя по общению с ним для него нет ничего невозможного. Может просто взять и делать.
>>1347633 Сталкивался, на самой первой работе. Только один метод спасал: я закрывал студию и заново открывал. Никакие клины, билды, ребилды, мейки нихуя не спасали. А чел, который сидел напротив говорил мне - ну и что ты не используешь датабиндинг? Это же ебать так супер - во вьюхолдере не нужно писать все эти иниты.
>>1347676 Хочешь сказать что ведро сможет взять видео из медиатеки, сделать разрешения 480х320 и сохранить в мп4? Не понял твой посыл. Я не из андроида, просто на прошлой работе в приложении выпилили целый раздел из за того что китайские девайсы крашились на этой задаче, интересно поменялось ли что нибудь с этого времени. По м4а тоже не из праздного любопытства интересуюсь, нужно с айоси как то передавать голос на ведроид, а айось не умеет сохранять в мп3
>>1347757 >установил голую сборку виндоус xp >ух сука сейчас буду редактровать видео! >ебать, виндоус не умеет редактировать видео! >ебать, гта 5 тормозит и крешиться, вот винда говно! >ух бля, tar открыть не может, не ну ты видел, что за говно ось
>>1348240 Бля. Я хоть и пьяный, но вот пример говна: @Insert fun addAll(pidors: List<Pidor>) И все. Ты что-нибудь попробовал сделать сам? Погуглить, а нет пришел сразу пришел сюда плакать? А ну, покажи мне свои слезки!
>>1348373 Да хз, но теперь понимаю его и могу читать код. Много информации про Котлин+rxjava и прочие jetpackи с моксями завязаны именно Котлине. Ученье - свет, в общем.
>>1348406 Не понимаю в чем проблема. У тебя есть List<Pidor>, в котором есть еще один List<Govno> и кроме листа есть строки или числа в сущности. Как писал выше, что тебе нужно вызывать метод DAO addAll(List<Pidor>) с аннотацией insert. Вообще ты скинул сущности которые используются для разбора ответа с сервера. Для базы нужно создавать свои классы, которые помечаются аннотацией @Entity.
Поясните плиз про возможность кодить в Android Studio на С++, Java и Kotlin.
Если джава и котлин похожи, то плюсы же совсем из другой оперы. Программы на Андроиде выполняются в джава-виртуалке, выходит программы на одноименном языке будут выполняться быстрей всего потому что их не нужно транслировать в джаву? Но тогда кому придет в голову писать на плюсах если нет выиграша в производительности. Значит я ошибаюсь и это все работает по другому. Но тогда как? Оаоаоаоаоа!!!1111
>>1350240 Что там? Думаешь скинул словечко и все, считаешь себе умным? Я про это и имел в виду. Мало того, что жаба как старый помидор, так и кресты хуевые здесь.
>>1350538 Я понимаю что нужно делать, спрашиваю про подводные камни. Могут ли, например, Channel'ы из корутин апи заменить сабжекты из рх? И вообще может стоит ли переезжать
Есть Gson TypeAdapter. При помощи него читается и пишется объект из Shared Preferences. Как заставить адаптер возвращать null в случае если на вход даётся null? В таком случае связанная строка просто стирается из шаредов. Потому что сейчас у меня адаптер возвращает строку вида "null", которая пишется в шареды. Выглядит это не оче...
В моем миллионнике на данный момент 14 Android-dev вакансий, везде нужен как минимум мидл и 2+ года опыта разработки в команде. Возникает закономерный вопрос: как вкатываться новичку вообще?
чем вам градл не угодил? намного лучше чем руками jar/aar импортировать и потом еще ебаться из-за разных версий в зависимостях как это было в eclipse + флейворы, сигнинг конфиги и прочие плюшки
>>1339235 >А у нас в шараге отменили андроид-девелопмент, потому что компы не потянули андроид студио. Сука! Оппик 2 напомнил о боли.
Кстати. Посоветуйте ньюфагу. Какой должен быть комп для разработки в андройд студио? Я бомж, поэтому интересуют варианты из разряда "дёшево и сердито".
Xeon четырёхъядерный - подойдёт, или будет тормозить? 4Гб оперативы - мало? 8Гб - ок?
Господа, у меня сейчас такая система в приложении: Категории -> Подкатегории -> Конечный контент Категории и подкатегории я рисую через RecyclerView, просто обновляя его содержимое. Конечный контент я рисую в TextView. Причём я просто делаю RecyclerView невидимым, а TextView — видимым. При нажатии аппаратной "назад"/"назад" в меню я меняю видимость местами. То есть делаю я это в контексте одного Activity. Соответственно, при нажатии "назад" нет анимации отлёта бумаги. Слева стандартное выползающее меню. Мне оно нужно одинаковое на всех страницах, оно не меняется. Я могу в самом начале включения приложения добавить ещё пару пунктов
Вопросы: 1. Насколько это харам? То есть насколько это ужасно с точки зрения гайдлайнов? Буду ли я за это гореть в аду? 2. Насколько сложно сделать это разными activity? в частности перенести меню
>>1350951 16гб ок. >>1350803 Да никто не спорит, что он лучше мавена. Просто он прожорливый и медленный шо пиздец. Так его сейчас еще больше замедляют ебучим котлин скриптом. >>1350956 Фрагменты.
>>1350956 Играться видимостями такая себе идея. Твой класс отвечающий за логику становится перегруженным, т.к. много на себя берет. Следовательно, нужно разбивать все по отдельным экранам. Для этого используй фрагменты. Для перехода по экранам можешь посмотреть гугловскую библиотеку из джетпака. Большая часть логики находится на стороне хмл и затем в своем мейн активити пару строчек нужно будет реализовать. Из фишек просто добавить анимацию переходов. Думаю ты можешь оставить свой основной класс мейн активити и использовать его как контейнер для фрагментов. Так же посмотри в сторону какого-нибудь мокси - отличный инструмент для вкатывания с нуля в архитектуру приложений.
>>1350977 Я вообще не шутил нисколько. Прости, если это слишком нубский вопрос. Я действительно собирался взять себе комп на Xeon'е для работы в Android Studio. И решил на всякий случай спросить у знающего анона, не хуйню ли я придумал.
Не подходит Ксеон, что ли? Какую можно взять дешёвую альтернативу?
>>1350981 Студия больше заточена под интел. Просто посмотри требования на сайте к IDE. Чтобы использовать свыше 8 гигабайт оперативы нужно очень крупный проект + параллельно запущеный эмулятор или даже два. Но тогда уже один хуй комп с дорохим цопе будет тупить. Если есть тыщ 50, то для начала пути в разработке можно обойтись и макбуком айр с 8 гигабутами. Но этот вариант хорош только если ты живешь на съемной хате и постоянно куда-нибудь ездишь или переезжаешь. В принципе на часов 5 на одном заряде его хватает поработать.
Работяги посоветуйте что более перспективней Android или. Java backend. Что более перспективней? Перспективна ли мобильная разработка вне контекста Андроида?
>>1351609 >>1351609 ЗА ДВА КУРСА ГУМАНИТАРНОЙ СПЕЦИАЛЬНОСТИ И ТРИ ГОДА РАБОТЫ ПРОГРАММИСТОМ ПО ЗАПРАВКЕ КАТРИДЖЕЙ ВЫУЧИЛ ЯВУ @ ПАЦАНЫ ПОСОВЕТОВАЛИ ВЕДРОИД, А НЕ БЭКЭНД – ТЫ ПОСЛУШАЛ @ ПОЛГОДА ЛЕНИВОГО ВКАТА И ТЫ ЖДУН @ НО ТЕПЕРЬ ВСЕ ЕБАШУТ НА КОТЛИНЕ, ЖАВАПЕТУХИ НЕ НУЖНЫ @ НЕСКОЛЬКО МЕСЯЦЕВ УЧИШЬ ЭТУ ХУЙНЮ КАЖДЫЙ ВЕЧЕР ПОСЛЕ СМЕНЫ В МАКДАКЕ @ ЧЕРЕЗ НЕДЕЛЮ РЕЛИЗ ФЛАТТЕР 2.0, КОТЛИНПИДОРЫ ОТПРАВЛЯЮТСЯ К ЖАВАПЕТУХАМ @ ПОЛГОДА НА ЖОПНОЙ ТЯГЕ ОСВАИВАЕШЬ И ЭТО ГОВНО @ РЕЛИЗ ФУКСИИ
Сап, такая тема вот мой жсончик(https://pastebin.com/KNa0TvRj), как его лучше парсить в один класс с множеством вложенных или какую мапу создавать? как делают нормальные поцаны, где почитать?
Блять, вот я и дошел до изучения даггера, оставлял его самым последним и теперь вот огребаю. И так теперь проблемы, как быть с ебучими презентерами в которые надо заинжектить что угодно. Прим этом используя мокси, как я сейчас пришел к решению что надо провайдить экземпляр в модуле, затем инжектить его даггером в фрагменте\активити и затем уже этот готовый презентер инжектить средствами мокси, а именно аннотации @ProvidePresenter и @InjectPresenter, вот этот анал карнавал я еще пережить могу, но правильно ли я понимаю что придется даггером провайдить каждый ебучий презентер отдельно. Вот вот это место с правайдом мне вообще не нравится. + я еще не понимаю, что в таком случае будет с жизненным циклом презентера, так этой ерундой заведует сам мокси, а тут пиздец короче. Просто голову сносит сейчас.
Почему при tap1 получается передать это действие до touchListener'a родительского layout, а при tap2 нет? везде возвращаю false, судя всего из-за scrollview. И как мне теперь обработать свайп на родительском layout ? бля на ios вообще такой хуйней голову не забивал, просто добавил свайп и обработчик на экран
>>1352500 нет. Инжектишь презентеры среествами мокси. А в презентеры свои интеракторы или репозитории инжектишь даггером. Не знаю если можно сразу в конструктор презентера в моски инжектить(погугли). Но 100 проц вариант это когда ты инжектишь в активити репозиторий и потом передаешь в презентер через конструктор(@ProvidePresenter)
>>1352961 > Но 100 проц вариант это когда ты инжектишь в активити репозиторий и потом передаешь в презентер через конструктор(@ProvidePresenter) Хуевый вариант. В активити нужно делать просто @Inject Provider<MyPresenter> provider, и возвращать его в @ProvidePresenter, а не хуйней заниматься с инжектом в активити говна, которое она не использует.
>>1353254 >>1353256 Оставь лучше в асинктаске, зачем городить свои велосипеды с кастомной передачей инфы между тредами, когда всё уже придумано до нас.
>>1353228 ты долбоеб? скажи честно С андроида 4.4 в HttpUrlConnection юзается okhttp... >>1353254 шел 2019 год, а кто-то как жрал говно с лопаты так и жрет
>>1353644 >ты долбоеб? скажи честно С андроида 4.4 в HttpUrlConnection юзается okhttp... Тогда почему я обязан подключать окхттп для нормальной работы?
>>1354093 >отличие arraylist от linkedlist ааахахаххаха. единственный норм вопрос про хешмапу(но он в связке про хешкод и equals)
>>1354090 Если по лайфсайклу, я бы попросил спроектировать роутер, если сделает его правильно, то он мидл, если с ошибкой, то джун, если не сможет, то лох обосанный. По даггеру бы поспрашивал, а именно про скоупы Спросил бы как устроена внутри viewmodel, если он mvvm или моски , если он mvp
>>1354114 >я бы попросил спроектировать роутер Хуй знает что это такое.
>а именно про скоупы А че там спрашивать? Ебнул сабкомпонент на скрин и т.д. Ток у меня опыта взаимосвязи с маппингом данных нет. Постоянно то на этом скрине есть данные, то такие же данные на другом. Не у кого спросить как иерархии строить сложные.
> как устроена внутри viewmodel, Хуй знает. Вроде она проигрывается через бандл фрагмента\активити и гугл использует какой-то метод в активити куда можно передавать объект (не бандл) и восстанавливать этот объект когда активити уже перевернулось и опять пошел лайфсайкл. И там через фабрику эта вся хуйня клепается и получается что самый главный какой-то объект знает обо всех состояниях вью модели.
>ли моски , если он mvp Про мокси тоже хуй знает, хотя ее юзаю один на проекте.
Но мне на нравится ведройд, хотя, если я был бы в нормальной команде мне бы он понравился.
Пытаюсь вкатиться в ШВИТОЙ MOXY, и чот хуй знает. Во-первых, проблема с анимациями, которые проигрываются во второй раз при повороте экрана (но это хуй с ним, как я понял, можно поебаться со стратегиями и справиться). Во-вторых, необходимость в реализации MvpView инджектить презентер конкретного класса (ну, типа если у тебя есть класс YobaMvpPresenter, то так и указываешь, нельзя указать интерфейс). В итоге связность увеличивается, презентер не замокать, тестирование по пизде. В чём профиты Moxy в сравнении с использования стандартного мвп? Я читал статьи про мокси (которых две с половиной штуки, ну а больше и не надо), и там говорилось только о преимуществе перед обычным древним подходом а-ля "ебаш в активити похуй". Но сейчас же все модники и умеют в архитектуры. Так есть ли смысл в мокси в 2019 году?
>>1354178 Это троллинг такой, посмотри внимательно тред, мокси тут на каждый вопрос советуют. Профита никакого, может быть полезен только совсем нубам, которые ничего не умеют. Хотя, если они на каждый чих будут просто подключать ещё одну библиотеку, они ничему и не научатся.
>>1354178 > презентер не замокать Чеэт? Ты ж его провайдер через даггер инжектишь. > В чём профиты Moxy в сравнении с использования стандартного мвп? У каждого свой "стандартный" мвп. Вот в твоем "стандартном" мвп презентер переживает поворот или нет? А то я видел обе реализации и каждый доказывал свое. Но профит на самом деле во вьюстейте, тебе не нужно ебаться с attachView и хранением состояния, правильно настроенные стратегии сделают это сами и этот вьюстейт в итоге вырождается в стейт MVI.
>>1354199 >Ты ж его провайдер через даггер инжектишь. Что? Можешь объяснить, что ты имеешь в виду? Я сейчас погуглил, тестирование в moxy делают через костыли уровня мокания всего презентер стора и вдобавок наследования моком презентера от класса презентера. https://github.com/Arello-Mobile/Moxy/issues/167 А какой ты вариант предлагаешь? Ты провайдером презентерстор называешь?
>>1354205 А, всё, увидел внизу ссылку на другой тред, где написано, что через изменение поведения @ProvidePresenter можно сделать. Ну, лучше, но всё равно костыль, как по мне. Тогда нужно ProvidePresenter везде использовать.
>>1354213 А хули не мочь-то. Смогу. Сохраняешь x,y, при повороте восстанавливаешь состояние. Проблема на вебмке. Приложение - сэмпл из мокси репозитория.
>>1354222 Анимация разруливается на уровне вьюхи. Если тебе нужно пропустить анимацию, то можно как вариант добавить флаг skipAnimations = true в onCreate и в skipAnimations = false в onStart/onResume/onResumeFragments не помню который там используется.
>>1354233 Ты имеешь в виду добавить кастомную булевую переменную? Ну да, сработает, но опять же - костыль. Хотя ладно, тут даже если бы я делал свой мвп, то я бы решил проблему добавлением флага (только не во вьюшку, а в качестве параметра колбэка, типа playingAnimation = true/false. И в момент аттача вьюшки к презентеру делал бы вызов с false, а в других случаях - с true).
>>1354242 > playingAnimation = true/false Тоже подумал об этом способе и подменять в true на false кастомной стратегией если так можно, но попробовать стоит, но прям такое себе, презентер в итоге в курсе о реализации вьюхи.
>>1354253 Ну переименуй playingAnimation в isChangedRightNow, лол. Я не считаю это тем, что презентер что-то знает. Он просто подсказывает, а вьюха может вообще на этот флаг не смотреть и не использовать.
>>1354222 > Сохраняешь x,y, >при повороте восстанавливаешь состояние. А я просто написал анимацию и все. Поэтому я на днях увольняюсь, отрабатываю 2 недели и думаю искать работу на иосе.
>>1354299 Хз, а я привык уже. Как данность воспринимаю все эти необходимости ухищряться с поворотами экрана. Единственное, что по-настоящему бесит в андроиде - это когда на каком нибудь Xiaomi X70PE-ADF происходит краш в месте, где он вообще не должен проиходить, причём даже в стактрейсе нет твоего кода и вообще непонятно в какой части приложения всё произошло, а у тебя из девайсов только один самсунг, да эмуляторы. В айосе с этим, наверное, попроще, там систему вовремя обновляют, и линейка девайсов гораздо уже.
>>1354114 типикал интервьювер - спрашивать знания по либам и прочему бесполезному говну с которым он сталкивался и считает это пиздец важным >>1354299 как будто иос писали киборги или инопланетяне. Его писали те же тупые людишки, будешь скоро на ios также плеваться
>>1354456 кому-то важно, чтобы кандидат умел списки сортировать и вагоны в бесконечном поезде считать, а мне спрашивать знания по либам и прочему бесполезному говну
>>1354617 Базовые знания все таки важны. После полутора лет работы я столкнулся с ссылками на обьект. Оказывается, когда создаешь new ArrayList(listXueta) этот лист просто копирует объекты, каждая из которых содержит ссылку на изначальный объект. Сказать что я охуел - ничего не сказать.
>>1354664 >staff нахуй ты ПОСОХ из котиков делаешь, ещё и не возвращаешь ничего.
Ничего личного, но вот такие вот нулёвые посоны с полутора годами работы всегда повышают мне чсв. Это же, блядь, классика, это Шилдт, это любой джун знать должен, что по значению передаются только примитивы и иммутабл класы, типа String. А ты вот спокойно работал, деньги получал, и, видимо, вопросов по работе к тебе не возникало.
>>1354675 >что по значению передаются только примитивы и иммутабл класы, типа String. Меня то же забавляют такие дурачки, которые пытаются оправдаться передавания по ссылке.
>>1354664 дурачек что-ли? >этот лист просто копирует объекты Не копирует объекты, а создает НОВЫЙ список со старыми объектами. Инстансы элементов те же самые. Но ведь это базовые знания джавы. Если в таких вещах путаться, то непонятно как вообще можно программировать что-то сложнее new Cat()
>>1354665 с кем же я в одном треде сижу, один не знает, что в httpurlconnection okhttp юзается, другой вот такие вещи после 1.5 лет года разработки открывает.
>>1354875 >один не знает, что в httpurlconnection okhttp юзается Я вот тоже такого не знал, но это скорее связано с тем, что httpurlconnection никогда не использовал, лол. Хотя уже 5 лет пишу под это говно
>>1354675 Ебать, неожиданный результат, лол. У тебя в принте один и тот же локальный кот, результат немного предсказуем. хотя ты, наверное, не знал, что объекты передаются by reference, и ты все равно соснёшь, даже если правильно укажешь на статического кота. Алсо, у тебя в одном месте cat.setName, а в другом cat.name = , ты, либо крестик сними, либо трусы надень
>>1354875 >ругой вот такие вещи после 1.5 лет года разработки открывает И что дальше? Зато я могу часами разговаривать про даггер, к примеру. Да, это хуево в плане базы, потому что у меня не было нормального образования и я вкатывался абы как, лишь бы работало.
Зато теперь приятно узнавать о таких мелочах. Не вижу ничего постыдного.
Пацаны, мне надо создать package где будут храниться мои кастомные вьюшки, как мне ее назвать чтоб было ясно для чего папка предназначена? Вот какие есть идеи: — custom_views — cv — создать папку custom в ui package (где активити и презентеры хранятся)
Сап, для диплома надо написать клиент-серверное приложение для создания и решения тестов с автоматической проверкой. После прохождения бегинер на юдасити сложился вот такой проект приложения : пользователь 1 создает тест и с помощью JSON запроса тест отправляется на сервер и записывается в БД, затем пользователь 2 решает пройти этот тест и с помощью того же самого JSON запроса получает его, после прохождения тоже отправляется JSON и все снова записывается в БД. Для отображения списков тестов и статистики так же используются JSON запросы. На каком этапе реализовать автопроверку? Так же я понимаю, что нужно будет пиcать свое API, собсна реквестирую нормальные уроки для этого. Ну и самый главный вопрос: прaвильно ли я описал схему работы приложения или же есть пути легче и практичнее?
>>1355112 >собсна реквестирую нормальные уроки для этого Хочешь мини гайд? Вот блять вот такой прям мини МИНИ гайд? Давай я напишу 1. Ресуклер вью 2. Ретрофит (можешь юзать гсон) Все. С переворотами, бекграундом сам справишься.
Бтв, хули такой малый проект на дипломе? Я думал напишу на иосе и на ведройде двач, препод сказал нет. До сих пор в голову ниче не лезет.
>>1355116 > хули такой малый проект на дипломе А нахуй он большой? Там важнее научная составляющая, а не высер про то, как ты писал очередную рестопарашу.
>>1354090 Отвечаю постфактум самому себе: Решить алгоритмическую задачку на листке, про алгоритмы сортировок, про внутренности hashmap, про finalize, про нуллабилити в котлине, про экстеншен-функции в котлине, какие методы определены по дефолту для дата классов, про sealed классы и применение для них, про пермишены, про отличия dalvik от art, про нововведения в разных версиях, про декс файлы и мультидекс, про target, compile, min sdk, как собрать и запустить с консоли, как и зачем подписывается апк, флаг allowBackup, ограничения на размер пуша, ограничения на размер бандла в интенте, отличие add от replace в транзакции, способы пережить поворот, мвп или мввм, как заретейнить инстанс фрагмента, пишешь ли тесты, виды тестов, настраивал ли ci, писал ли градл скрипты, что юзаешь для di, юзаешь ли рх, паттерны ооп
>>1355154 Ты рофлишь? Это вопросы для ждуна. Для мидла я думаю нужно взять какие-нибудь фичи ака костыли ведройда, более глубокие. Например как сделать прозрачный фрагмент.
>>1338069 (OP) Аноны, поясните в чем хранить небольшую информацию на Android(и IOS в придачу, было бы не плохо), чтобы ее могла посмотреть только моя программа?
Как я понял, стандартный SQLite3 не поддерживает защиту информации. Удаленный сервер для хранения не предлагать. Программа должна работать офлайн.
>>1355124 >finalize >алгоритмы сортировок >отличия dalvik от art >как собрать и запустить с консоли По таким вопросам можно понять, что интервьюер живет в 2013, делает свои велосипеды из говна и палок
>>1355124 > Решить алгоритмическую задачку на листке, про алгоритмы сортировок Что за задачка? Про алгоритмы тоже интересно, я уже все забыл оттуда блять, если я могу назвать несколько категорий сортировок, сказать что юзай - квиксорт и будешь малаца, не и принцип примерно его рассказать, нихуя больше блять не помню.
>>1355550 Как использовать мокси? Instant app или в жопу раз? В каком году Женя Вортанов начал работать в Гугле? Сколько волосинок у Артёмки Зинатуллина в бороде? Список докладов с последнего Google IO?
>>1355551 >Список докладов с последнего Google IO? 113 >Как использовать мокси? хуекси >Instant app или в жопу раз? второе >В каком году Женя Вортанов начал работать в Гугле? в 2008 кажется. >Сколько волосинок у Артёмки Зинатуллина в бороде? хуй его знает.
>>1355457 Шифрование не нужно, обычных линуксовых пермишенов хватит, чтоб хранить что угодно безопасно (если телефон не рутованый). А если рутованый то и шифрование тебе не поможет, тк ключики та все равно будешь в приложении хранить, и достать их оттуда дело времени
>>1355555 Но не каждый школьник, который может получить root права, сможет достать информацию непосредственно из программы. Я к тому, что отсутствие гарантии на 100% защиту не означает что ее не надо улучшать.
>>1355489 Ну почему же, считает нужным задать и более фундаментальные вопросы. И дальше ведь переходит на более прикладные вещи. Как по мне это в любом случае в сто раз лучше, чем как >>1354114 Ладно если в cv указаны какие-то либы, то ок, можешь по ним спрашивать, а иначе иди нахер со своими дагерами, моксями и прочим
>>1355452 > Например как сделать прозрачный фрагмент Пиздец проблема. Все, что ты перечислил, уже позволяет тебе писать обычную рестопарашу в адекватные сроки, а значит уже можно аплаиться на 90% всех вакансий на хх. Есть конечно какие то особенные манямидлы из хуяндексов со своими грейдами, но это всего лишь способ платить меньше за большие знания.
Аноны, как думаете, имеет ли смысл вряхиваться в соло разработку внутреннего продукта на флаттере? ЗП обещают норм, но работа будет (((agile scrum))) из команды 1 девелопер-хуеватуча сверху BA/QA и прочих.
pros: - контора не умрет завтра (точно) - реальный опыт на флаттере - нет (почти нет) заботы о клиенте
Есть структура данных следующего формата: data class Data( val id: Int, val anotherId: String, val status: Status, val a: List<A>, val b: List<B>, val c: List<C>, val d: List<D>, val e: List<E>, val f: List<F>, val g: List<G>, val h: H )
Каким удобным способом такого рода данные можно локально кешить? Создавать десяток таблиц не хочу. В джейсон толкать тоже не вариант, тк важно иметь возможность делать выборку по параметрам, например выбрать все данные, в которых есть список F c элементами отвечающими определенным условиям.
>>1356675 Сериализовать/десиализовать json еще гляди и быстрее окажется, чем делать выборки с нескольких таблиц, особенно если орм какое-нибудь обоссаное заюзано
>>1356711 Понял, спасибо. Тогда второй вопрос: какие годные noSql(?) библиотеки есть для таких целей? Так чтоб поддерживались разработчиками и позволяли делать выборки по критериям
>>1356633 > внутреннего продукта на флаттере Охуенно же, вкатишься в новую технологию. Но здесь чисто от твоего отношения к флаттеру все зависит, я бы пошел.
>>1356828 Видел седня новость на реддите что флутчер объявил конкурс на создание апп на 10к баксов призовых. Что только не делают, лишь бы привлечь народ.
>>1356746 >соло никогда никому не советую ничего делать. Из-за этого и очково.
>>1356777 >вкатишься в новую технологию Было бы очень збс. Плюсом будет что не нужно учить кокотлин меня еще никто не убедил что он будет жить после 21-22-23гг.
>>1357068 >Из-за этого и очково. Если у тебя есть опыт с ведройдом и иосом, 2+ года (или хотя бы с ведройдом) то можешь и попробовать.
Чтобы ты не говорил, флутчер это очередной UI. Тебе скинуть как иосник обоссывает челика который скинут свою статью на реддите? В одном из пунктов он говорит что в иосе есть 40 реализаций делегирования для UITableView, и как флаттер собрался это реализовать - хуй пойми.
Тут дело в том, что ведройд разрабам это нравится, в иосе же наоборот, это очередная хуйня которая не взлетит. Как флутчер собирается реализовывать MLKit и другие вещи? Просто сырая и тупая поделка. Натив всегда будет жить. Так что я бы советовал тебе как я - изучать ведройд и иос. Но в иосе вещи делаются намного легче.
Есть три вопроса: 1.\tЯ вставил TextView внутрь ConstraintLayout, который внутри NestedScrollView. У меня по какой-то причине съедается N пикселей снизу от TextView, то есть скролл не даёт мне доскролить до конца, утыкается в какую-то границу. Причём на разном тексте это разная граница. Мне приходится костылять и вставлять ~8 crlf'ов, из-за чего на некотором тексте слишком много пустоты снизу. Вот моя вьюшка: https://pastebin.com/zkAPgmg3 . Почему съедается кусок снизу и как это исправить? 2.\tМой NestedScrollView очень инертный при скролле с RecyclerView. Вот я открываю "Контакты" андроида, ставлю палец на нижнюю часть экрана и резко дёргаю вверх, убирая палец. Список скроллится ещё примерно 2-3 секунды и отскролливается на 50-100 строк. Теперь я открываю ту же вьюшку из первого пункта https://pastebin.com/zkAPgmg3 , открываю страницу, где виден TextView (а не RecyclerView). Резко дёргаю вниз и получаю очень длинный скролл. Теперь перехожу на длинную страницу с RecyclerView, делаю такой же скролл, но он останавливается через 2-3 строки после того как я отпустил палец. Как сделать так, чтобы скролл на NestedScrollView+RecyclerView был таким же лёгковесным (неинертным)? 3.\tНа главной вьюшке наверху стоит Toolbar. Я хочу добавить туда поисковую строку как у всех. Справа иконка с лупой, по нажатию на неё иконка исчезает и появляется окошко для ввода текста внутри этого Toolbar. При нажатии Ok на клавиатуре дёргается какой-то метод. Как это сделать?
>>1358357 Убирай NestedScrollView, для ресайклера он не нужен. Родительским контейнером оставь ConstrainLayout. Или я не понял что ты все-таки хочешь сделать. Тулбар с поиском можешь поискать на стекэ, там много примеров реализации на первых страницах.
>>1358526 То есть мне Recycler вытащить так, чтобы он был соседом (sibling) для NestedScrollView, а TextView оставить внутри NestedScrollView? Потому что TextView сам по себе скроллиться не умеет
Пиздос, неужели в андроиде нет никакой альтернативы WebView? Есть ChromeCustomTabs, но они нихуя не кастомизируются и не являются отдельной вьюшкой даже. А если нужен более гибкий и НЕГЛЮЧЕНЫЙ вебэлемент, но в андроиде какой-то пиздец. Весь гитхаб перерыл - альтернатив 0.
При поворотах все перезагружает с нуля, про кеш не слышал, видео далеко не всех форматов в состоянии проиграть, развернуть на весь экран то же самое видео из вебвью нельзя. Ну и банальноая тормознутость.
>>1358905 > Весь гитхаб перерыл - альтернатив 0 Crosswalk, но там старая версия хромиума + мозила выкатила свою вебвьюху со своим движком. >>1358918 > При поворотах все перезагружает с нуля, про кеш не слышал, видео далеко не всех форматов в состоянии проиграть, развернуть на весь экран то же самое видео из вебвью нельзя Пиши сам себе с такими запросами лол. Надеюсь вебвью вообще окончательно сдохнет. > Ну и банальноая тормознутость Так блять даже в обычном хроме все работает как говно.
>>1359171 > мозила выкатила свою вебвьюху со своим движком. Спасибо тебе анончик, удачи и добра тебе. Как-то плохо я гуглил, сам не нашел мозиловский Gecko.
>Надеюсь вебвью вообще окончательно сдохнет. аналогично
>>1359353 >зачем тебе вебвью, чтобы смотреть страницы в браузере придумали браузер Потому что приложения встречаются и посложнее, чем нажать на кнопку - перейти в браузер. Иногда заказчик хочет, чтобы юзер видел веб-станицу, не покидая приложение. Иногда нужно переопределять нажатие по ссылкам на определенных страницах. А иногда тебе со стороны бекенда приходит html код, который тебе надо на отдельном экране отобразить, причем даже на половину экрана, а внизу описание уже через простое TextView.
>>1359470 >потому что я говноед и быдло, которое продало жопу индусам, которые думают, что в приложение можно встроить их сайтик и еще всякой херни накидать
Анон, расскажи ньюфагу, как сделать выдвигаемую свайпом менюшку (панель?) подобного вида. Ну или ссылку, где почитать. Хз даже, как гуглить. Как я понял, Navigation Bar не подходит, ведь он по высоте всего экрана. Или нет?
Как организовывать навигацию по приложению через компоненты, имеется в виду не просто табы, а как это в более сложном понимании, вот есть у меня активити, в ней главная навигация по типу табов через фрагменты, то есть в активити ничего кроме, контейнера фрагментов и тулбара, но вот когда я хочу с любой табы открыть еще 1 фрагмент, который глубже по навигации, то в первый раз, я запихивал этот фрагмент во все, тот же фрагмент в активити. Вот тут первый момент, что мне не нравился, то что я лез к менеджеру фрагментов через getActivity() я знаю, что есть у фрагментов свой фрагмент менеджер, но тут и проблема, я же как бы пользуюсь контейнером, который в акивити. Вторая проблема возникла, когда я перешел на материал дизайн, и захотел по канону показывать картинку в CollapsingToolbar, как я выше писал Toolbar у меня в активити, и тут либо прокидывать коллбеки в активити, либо по сути рисовать почти весь макет с нуля в каждом фрагменте, единственное, что получается оставить в активити только CoordinatorLayout + еще главная проблема, что картинка-то которую надо отобразить не везде нужна, а CollapsingToolbar везде тащится, тут можно сказать, что все ок, у AppBarLayout есть же setLiftable(), который и решит твои проблемы. Ага, но вот в support бииблотеку этого метода не завезли, это еще больше подталкивает, к тому, что почти каждый фрагмент должен иметь каждый свой макет почти с нуля.
Короче, как сделать правильно верстку + навигацию по экранама\табам\компонентам? И еще вопрос, как вы передаете данные между презентарами? У меня сейчас вот так, презентеру говорит, что есть клик, презентер уже приказывает открыть, что-то и туда же данные пихаем, но вот сами данные я передаю, через bundle и приходится реализовывать parcelable, что превращает мои модели уже нефига не в pojo. Как вообще принято данные вот передавать, ни важно в активити или фрагмент?
>>1361298 >Как вообще принято данные вот передавать, ни важно в активити или фрагмент? Принято локально персистить, а передавать в бандле максимум айдишки
Сап, /pr/. Взял курсач. Суть - "Графический векторный редактор под ОС Андроид". Мой руководитель мне указал на HTML5 Canvas, но я почитал про него и как мне показалось он не подходит для таких вещей. Положил глаз на Vector Drawable API, показалось это оптимальном вариантом + знаю формат SVG. Посоветуйте, через что лучше реализовать редактор.
>>1361405 >Положил глаз на Vector Drawable API Какой к черту вектор и свг. Твоя тема - это рисование на ведройде при помощи вектора. Добро пожаловать в ад! Если ты вообще не знаком с графикой, системой координат, базовыми геометрическими формулами + синусы и косинусы - ты будешь страдать как сука.
Копай в сторону - Canvas и все что с этим связано.
>>1361547 Знаком с графикой, системамой и триганом. Понимаешь мне нужно еще все это дело уметь сохранять и переводить в форматы .esp и .svg. А у Canvas нету DOM структуры и я не представляю как это дерьмо потом получать из тэга Canvas. В SVG и Drawable API можно пропарсить файл и получить тэги <path> и уже с ними проделать необходимые операции перевода. И еще, чтобы отображать Canvas HTML5 необходим же движок как у браузера или что я не так понимать?
>>1361559 Обосру тебе малину и скажу, что Vector Drawable != SVG. Vector Drawable поддерживает очень малюсенькое подмножество SVG и вероятней всего ты соснешь хуйца, если будешь это проворачивать в рантайме, иначе бы уже давно сделали хоть какой то рендерер свгшек через него.
Анонимные аналитики тут? Куда лучше вкатываться - в flutter или react native? С последним больше предложений на апворке, но первый же вроде будет главной средой для фучсии, вся хуйня, или фучсия тупо никогда не выйдет?
>>1361785 Реакт-нейтив есть смысл изучать при условии, что ты уже работаешь в вэбе. Если же вкатываешься с нуля и выбираешь направление, тогда нужно делать более глобальный выбор: мобилки или веб.
>>1361907 Реакт-нейтив есть смысл изучать при условии, что ты уже работаешь в вэбе и трогал нативщину, т.к. без платформенных костылей далеко не уедешь.
>>1368268 Да, работаю на таком проекте. С самим сишным кодом не работал, для этого отдельный человечек есть, но все довольно просто. Могу посоветовать книжку, там буквально 10 минут почитать и уже будет понятие как это работает и настройка рабочей среды в AS.
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем и поливать друг друга радугой.
> Хочу вкатиться в разработку под Android! С чего начать?
С видеокурсов от Udacity. Они бесплатны и затрагивают основы разработки даже если не умеешь писать на Java.
https://www.udacity.com/course/android-development-for-beginners--ud837
Для тех, кто не хочет учиться по юдасити существует скучный кат от гугла: http://developer.android.com/training/index.html
Если имел опыт в програмаче, можешь посмотреть видосики отсюда https://web.stanford.edu/class/cs193a/videos.shtml
Очень доходчиво и интересно
Так же есть книга, которая затрагивает основы разработки и имеет 2-е издание с 2017 года: https://www.amazon.com/Head-First-Android-Development-Brain-Friendly/dp/1491974052
Большинство приложений написано на Java, необходимо понимать что ты пишешь, в уме достаточно знать базовый Core т.к. 90% времени придется тыкаться в Android SDK. Полезные обучалки от анона :
https://habr.com/company/golovachcourses/blog/215275/ - смотри Головача если совсем даун и не шаришь нихера
https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208 - книжка для ньюфагов. Хорошо заходит.
https://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486
Неплохим вариантом для изучивших джава будет книга https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997
Алсо можешь читануть паттерны, рано или поздно все равно базовое знание понадобиться https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124
Существует два текстовых ресурса для закрепления андройда на русском. Первый - несмотря на старость описывает базовые вещи, на которых построены мощные либы, второй - продавшийся говноед с котиками http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
https://commonsware.com/Android/ - толстая книга для гиков, стандарт решений
Так же можешь смотреть видосики от Mail.Ru
https://habr.com/company/mailru/blog/345252/
https://github.com/ybereza/technotrack-resources - ресурсы к лекциям
Или от Яндекса. В некоторых моментах спикеры рассказывают важные детали, которые кроются в мелочах:
https://www.youtube.com/watch?v=5EvxWifIgro&list=PLQC2_0cDcSKBNCR8UWeElzCUuFkXASduz
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Я прошел курсы Udasity, а дальше что?
После прохождения курсов у тебя должно сложиться базовое представление о создании приложения; жизненные циклы Activity/Fragments, AsynsTask, Http, Json, SQLite.
Дальше закрепляешь знания путем просмотра видосов выше +
Написание парочку приложений на свой вкус. Так же стоит уделить внимание BroadcastReceiver, IntentService, поиграться с Loader's, хендлерами, Contest providers и прочее, построить очередной Weather or ToDo must have list.
>Не могу разобраться в потоках. Хендлеры, хуендлеры хуйтаски. Как быть?
http://codetheory.in/android-handlers-runnables-loopers-messagequeue-handlerthread/ - Хорошая статья, которая экономит время. После нее можно сразу переходить и тыкаться в хендлерах.
https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a - еще одна от миндоркса.
https://blog.nikitaog.me/2014/10/11/android-looper-handler-handlerthread-i/ - еще одна интересная.
>Хочу изучать популярные либы и не быть говноедом!
Если ты сразу после курсов переползаешь сюда - будь готов, что ты не будешь знать как это делается под капотом, и в конце концов соснешь когда-нибудь.
Retrofit - стандарт для взаимодействия с сетью. Она идет в комплекте с okhttp3, начинаешь с последней, а потом переползаешь на сам ретрофит. Так же для справки можешь гуглить volley.
RxJava - одно из решений для выполнения кода в бекраунде. Ниже ссылочки, смотри и поглощай.
https://www.youtube.com/watch?v=YPf6AYDaYf8- rxJava идея с нуля
https://www.youtube.com/watch?v=3jdvLrYZfB4&t=
https://www.youtube.com/watch?v=0IKHxjkgop4
https://coursehunters.net/course/master-klass-po-rxjava-s-mvvm-dlya-razrabotki-pod-android
https://www.youtube.com/watch?v=t34AQlblSeE - retrofit
Неплохо было бы и изучить MVP. Вообще его следует изучать сразу. Видишь MVP - сразу пиши нормальный код. Никаких нахуй асинтасков внутри активити. Для самообразования можно написать его голыми руками или прогуглить, как это делается.
https://github.com/ArturVasilov/AndroidSchool - здесь рассматривается архитектура, и как ее ели с 2011 года.
MVP:
https://javarush.ru/groups/posts/505-mvp-v-android-dlja-samihkh-malenjhkikh - для понимания
https://github.com/Arello-Mobile/Moxy - плюшка для поворотов экрана
https://github.com/sockeqwe/mosby - англоязычная плюшка
MVVM - костыли от гугла:
Для нормального понимания желательно знать AAC.
https://startandroid.ru/ru/courses/architecture-components.html - свежие уроки от Димона
https://proandroiddev.com/the-missing-google-sample-of-android-architecture-components-guide-c7d6e7306b8f - для продвинутых
Пример MVVM
https://github.com/ericmaxwell2003/MvvmTipCalculator
Вышеописанные два подхода - всего лишь обертки, чтобы вынести логику из views. Для более углубленно изучения рекомендуется почитать
this: https://habr.com/company/mobileup/blog/335382/
Пример на котлине:
https://github.com/hitherejoe/GithubTrending
> Хочу анимировать мои говноподелки!
https://www.youtube.com/watch?v=dzB-1VlHJW8
Онли теория. Первые двадцать минут покрывают больше половины статей, которые можно найти на медиуме и т.д.
Здесь побольше практики на любой вкус: https://labs.ribot.co.uk/exploring-meaningful-motion-on-android-1cd95a4bc61d
Так же можно подробно почитать про смены сцен: https://blog.prototypr.io/applying-meaningful-motion-on-android-a271a873bd78
> Я заебался. Почему мои приложения постоянно падают в проде и как эту хуйню фиксить?
Для этого придумали тесты. Для общего понимания читаешь короткую статью
https://medium.com/android-testing-daily/the-3-tiers-of-the-android-test-pyramid-c1211b359acd
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17.05.2017 поддерживается официально.
https://www.youtube.com/watch?v=-H98SWHayL4 - свежие лекции на русском, объяснение корутин прост бжствно
https://www.amazon.com/Kotlin-Action-Dmitry-Jemerov/dp/1617293296 - библия
https://kupdf.com/download/kotlin-for-android-developers_59a05e2ddc0d60992a18496b_pdf - Kotlin for Android
https://www.udacity.com/course/kotlin-for-android-developers--ud888 - курсы Udacity
> Есть что-то кроме нативных приложений на Java/Kotlin?
- Flutter - кросс-платформенный фреймворк от Google. Js с аля строгой типизацией. Если совсем поехавший можешь начинать с него.
https://flutter.io/docs/ - документация
https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 - курсы от Udacity
Остальные куски:
ReactNative — мочаскрипт во всей красе.
- PhoneGap/Ionic/Titanium — имя им мочаскрипт-младшие, принципы у них разные, кроссплатформенность одного кода. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры!
LibGDX - слишком медленная параша для больших проектов, но познакомится можешь. Unity - для адекватных, Corona SDK, LOVE, Defold и другие. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии (уже androidx), shared preferences, SQLite, Handlers, Executors, Content-Providers), знание популярных библиотек типа Retrofit + Glide/Picasso + RxJava2 + Dagger2(по обстоятельствам) + гугловские поделки jetpack, понимания СОЛИД и других паттернов проектирования. Базовое понимание что вообще такое Gradle. И хотя бы несколько готовых приложений.
Полезные ссылки:
https://coursehunters.net/mobile-development - очень много уроков и не только по ведройду. Почекай и посмотри, вдруг зайдет.
https://www.youtube.com/channel/UCSwuCetC3YlO1Y7bqVW5GHg - канадский челик, поясняет за архитектуру и отвечает на разные вопросы на стримах.
https://github.com/toddmotto/public-apis - бесплатные API для создания приложений.
https://github.com/AlexeyZatsepin/Android-ORM-benchmark - бенчмарки на вопросы о том, какую БД выбирать.
https://androiddev.apptractor.ru/category/podcast/page/0/ - подкасты ведройд разрабов которые шарят про все и вся