> Хочу вкатиться в разработку под Android! С чего начать? Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде. После этого можно установить Android Studio, открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение. В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Не хочу писать на Java! - Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17 мая поддерживается официально.
> Есть что-то кроме нативных приложений на Java/Kotlin? - Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде. - Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде. - PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред. - BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры! LibGDX или Unity. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь? Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. И хотя бы оно готовое приложение.
>>1079278 http://developer.alexanderklimov.ru/android/views/edittext.php А еще, лучше займись джавой на месяца два три, и научись гуглить. Когда разберешься с потоками, коллекциями, классами, построишь интерполяционный многочлен лагранжа, тогда можешь привыкать к андройду. Не лезь, сука.
>>1079659 Не я решаю. Мне в конце августа нужно проект на android studio сдать и потом начнем изучать C++ %%тоже хз нахуя андроид. Я посмотрел, больше половины функций из андройда реализованы другими командами.
вкатываюсь, хочу выяснить — насколько велика вероятность в android/ios со временем начать работать из дома. скажем, в течение года с момента старта. необязательно (даже желательно не) фриланс, а просто чтобы разрешили не ходить в офис и самому планировать своё время. судя по вакансиям с возможностью работать из дома на hh, это больше характерно для веба с фронтэндом (к которым у меня душа сейчас не лежит), но вы что скажете?
>>1079670 ты хуйнёй какой-то страдаешь. никого не ебёт что тебе нужно. твой запрос уровня "нихуя не хочу разбираться зделайте плс".
разбей на подзадачи и реши их с помощью мозгов и гугла: - считай из EditText строку, преобразуй её в массив хуй знает как конкретно тебе надо. - сделай какуюто хуйню с этим массивом, требуемую тебе по задаче, ибо нахуя тогда в массив бы было преобразовывать? - массив преобразуй назад в строку и выведи в TextView.
но я, сказать честно, подозреваю что тебе и массив нахуй не всрался, и андроид нахуй не всрался, и с++ потом, и вообще айти с такими подходами к решению задач.
>>1079810 ясно, спасибо. java-треда в разделе я не вижу, спрошу у тебя — бесплатные лекции по джаве на ютубе от головача 2013-14 годов, это норм? для лекций 2013 года срок давности 5 лет скоро будет. нужно искать что-то более свежее на английском?
>>1079807 Да с выводом массива в textview я уже разобрался и >нихуя не хочу разбираться зделайте плс С этим я не согласен. Я хотел сделать программу которая строит графики, но я не могу понять как в моей библиотеке присваивать данные массива точкам на графике поэтому и просил гайд чтобы разобраться
>>1079814 Нормально. и хёд фёст 2012 года тоже нормально. Может потом после фёста скачать полное руководство - там и лямбы и чего только нет или украсть 9 издание, оно недавно вышло на англ. Еще здесь лежит https://github.com/pafnat/golovachcourses.com но я пока не копался в этом.
>>1079817 >нихуя не хочу разбираться зделайте плс >С этим я не согласен. Ой блять, давай рассказывай. Захочешь - задрочишь сам и прощерстишь весь интернет.
Как учиться material design, пасаны? Вот есть набор гайдлайнов, окей, круто. А вот как их применять, какие элементы для лэйаутов использовать, как это все соотносить с темами/стилями? Где про это вот все почитать можно?
>>1082177 А если бы twitter был написан на xamarin, все бы побежали скачивать visual studio?
Алсо, почему-таки xamarin не популярен? Мне кажется есть в этом какое-то луддитство. Xamarin слишком охуенен, т.к. с ним становятся не нужны отдельные команды по разработке для каждой платформы. Программисты боятся что станут не нужны
>>1082196 >ко-ко Ну и чем это отличается от написанного мной? Без xamarin разработка приложений дороже - выгода программистам. Эдакая цеховая солидарность
>>1082177 если брать настолько жирные приложения - там можно найти любое мыслимое хайповое говно/технологию/язык. с таким же успехом на пикче можно написать там же Top apps that contain Javascript или C++.
лучше покажи список, который не contains а полностью написан на сабже.
Серьёзно думаешь, что кто-то будет переписывать готовое приложение на котлине? Полностью написанные на нем приложения только начинают появляться. А в топе приложений (именно о нем речь на пикче) новые приложения появляются в лучшем случае раз в квартал. Хочешь не из топа? Открывай гитхаб и смотри, тонны их.
Блять, вчера полдня ебался с неработающими тестами, а оказалось, что Espresso не работает с ProgressBar. Даже если отключаешь анимацию, Espresso все равно думает, что анимация происходит и зависает.
>>1082626 >Серьёзно думаешь, что кто-то будет переписывать готовое приложение на котлине?
не поверишь, но в как раз именно в больших конторах регулярно таким говном маются, переписывая значительные части на новый фреймворк-нейм. не аргумент.
а так-то никого не ебёт на чем написано, главное чтобы быстро и дёшево разрабатывалось. а вообще я в рот ебал андроид - похуй на каком ЯП, всёравно говно выйдет из-за того что на xml-лях всё основано.
>>1082638 ага в дельфи топчик было, ебаться после этого с разметкой иксемельки - днище.
олсо ты не прав вдвойне, т.к. гуглы преподнесли ConstraintLayout для тягания мышкой , который ожидаемо тоже говно на фоне дельфи. как охниебатьсяпрорыв в удобстве.
но я не о лайаутах в первую очередь, а манифестах, компонентах, стилях, селекторах, xml-дроваблов итп. лайауты из всего этого наиболее адекватная часть.
олсо, студия 3.0 наконецто созрела из беток, порадуемся.
>>1082677 >гуглы преподнесли ConstraintLayout для тягания мышкой И я ебашу его в xmlе, так тупо быстрей. Пиздец как мне бомбит от Xcoda, там автолэйаут только мышкой, пиздец как же это долго.
Кто-то пользовался "новыми" xml-шрифтами? Можно ли ими полностью заменить Calligraphy. В частности интересует возможность исспользовать шрифты из xml в связке со Spannable. Сейчас как я вижу нужно создавать свой класс спана, можно скопировать от каллиграфии. Еще не могу понять что значит fontWeight в аттрибутах для font в font-family, по какому принципу они выбираются? Игрался со значениями - разницы не увидел. И почему для fontStyle доступны только normal и italics?
Опытные аноны, нужно реализовать клиент-серверное приложение, клиент отправляет серверу картинку, сервер эту картинку с помощью специальных алгоритмов обрабатывает и улучшает ее качество (алгоритм super resolution). Каким образом лучше реализовать бэкенд приложения? Сложно ли реализовать серверную часть на питоне? Сложно ли вообще организовать связь приложения с удаленным сервером? Опыта андроид разработки ноль, но времени полно.
Есть один Coordinator, Recycler, Appbar, CollapsingToolbar лейауты. Вся эта конструкция при скролле скрывает тулбар. Интересует вот что. Я проскроллил только половину тулбара, ушел в другой фрагмент, затем вернулся. Как мне сохранить стейт аппбара, чтобы он был так же наполовину проскролленным, как я его и оставил?
Знатоки, внимание вопрос. Есть приложение в котором пять разных карточек, у всех разные xml,но данные тянет с одного сайта. В одной из карточек есть поле EditText, получив цифру из которого нужно использовать как id для ссылки, чтобы получить ответ с сервера. Как реализовать это? Использовать буду Retrofit2.
A request URL can be updated dynamically using replacement blocks and parameters on the method. A replacement block is an alphanumeric string surrounded by { and }. A corresponding parameter must be annotated with @Path using the same string.
@GET("group/{id}/users") Call<List<User>> groupList(@Path("id") int groupId);
Сап, андроидач. Есть один фрагмент, в лэйауте которого есть несколько заглушек для различных ситуаций (прогрессбар, сообщение об ошибке, еще пара вещей по мелочи). Сейчас пока смена заглушек происходит через смену visibility, но лэйаут фрагмента сильно перегружен и код говно получается. Что делать? У меня из идей только оставить в фрагменте FrameLayout и инфлэйтить туда отдельные лэйауты заглушек при необходимости. Какие подводные камни в этом случае?
Котоны, немного ньюфажный вопрос. Как происходит сборка DEX при формировании apk и что он в итоге содержит? Я тут немного погуглил и вот что понял: сначала все .java файлы пропускаются через javac и на выходе получаем .class (который представляет собой байт-код JVM), затем при помощи dx все .class файлы собираются и транслируются в байт-код Dalvik. Я все правильно поднял? Также меня интересует какие оптимизации производят javac и dx. Судя по вики javac особо ничего не оптимизирует и тупо делает проверки и раскрывает всякий синтаксический сахар, а dx тупо транслирует байт-код джавы в дальвик. В итоге DEX содержит практически оригинальный джавакод с минимальными изменениями?
>>1085000 В студию? Качаешь/берешь у друга/находишь на помойке sdk. Идешь в Andrid Studio -> Tools -> SDK Manager. Указываешь путь к sdk.
Правда, хуй знает, где скачать по прямой ссылке чисто SDK, обычно используется SDK Manager. Но ты, наверное, можешь попросить кого-то скачать все нужные компоненты и тупо скопировать папке.
>>1085005 О, вот сорцами dx и правда надо обмазаться, спасибо. Алсо обмазался тут apktool и глянул выхлоп в smali: там всё, даже оригинальные названия полей и переменных, раскрыты все циклы да if'ы, похоже ни javac ни dx нихуя толком и не делают.
>>1085089 proguard может немножко соптимизировать, но если ты попросишь. Есть утилита фейсбуковая, чето-то там делает. Но вообще главное в JIT, и на новых версиях при утсановке немного под устройстов оптимизирует ART.
>>1085246 Ну про odex и art я знаю, меня интересовало в каком виде жавакод лежит в apk и насколько полно его можно будет восстановить при условии что не используются всякие мокрописьки-обфускаторы. Как оказалось, восстановить можно достаточно подробно.
>>1085408 В идеале в модель данные которые надо куда-то передаватьи не попадают. То есть допустим ты ты находишься в профиле, по клику ты попадаешь на экран редактирования. Но данные ты не передаешь между экранами, у них либо общий презентер, либо у их презхентеров есть общие данные на уровне модели. Соответсвенно ничего никуда класть не надо, если оно уже где-то было, то оно и осталосьв модели.
>>1085408 Переход на другой экран осуществляет вьюха (интент, фрагмент-менеджер etc). Вьюха нового экрана получает входные данные (extras) и передает их презентеру.
Анон, есть методыhttps://pastebin.com/VVBqqiSG нужно передать значение переменной streamUrl из setWebmData в onResume. На данный момент пробовал через сеттер-геттер, но переменная остается пустая. Проверял работу обычным Toast. Если проверять в setWebmData, то данные в сеттер передаются. Но не далее чем в этом месте. Куда копать? Это связано с потоками?
Ананасы, мой календарь на ксяоми автоматически тянет даты с писем на gmail и добавляет ивенты. Как мне сделать такое же? Почитал вот это https://developers.google.com/gmail/api/quickstart/android , но тут вроде про включение возможности парсинга писем со своего аккаунта.
Анон, есть SqlBrite а есть Room. При том что у обоих есть rx поддержка, в сэмпл проекте SqlBrite используется Room. В чем разница между этими двумя либами? Какую мне использовать?
Есть ли для этого возможность без глючных гемов и т.п., чтобы я просто в Rubymine или другом редакторе захуярил код, а потом сделал apk и протестил на своём телефоне?
Вопросы настолько простые, потому что я нуб в программировании, просто есть идеи приложений, которые я хочу сделать.
>>1087562 Не думаю что тут кто-то настолько извращался что бы на руби писать, смысла нет. Ну на жабоскрипте пишут, но опять же тут таких мало, реакт нейтив конечно лучший из их семейства.
>>1087487 На gmail почту приходят письма с ивентами, в которых есть даты. Типа такого то числа приходите на такое то мероприятие. Гугл календарь эти мероприятия автоматически добавлчет на указанные в письмах даты. Как мне такое же сделать?
>>1087545 Меня взяли на Android Basics. Пока очень смахивает на какую-то хрень: материал выдают без объяснения того, как всё это работет. Даже и не знаю, стоит ли тратить время.
>>1087694 Этот курс они используют для отсева кандидатов. Из 20 000 стипендиатов по итогам этого тренировочного курса они отберут 2000, которые получать доступ к Android Basics Nanodegree Program.
>>1087717 Чего у тебя так припекает? Курс то как сам по себе? Стоит на него тратить время, или можно как-то быстрее и качественнее эту информацию получить?
>>1087545 Чёто почитал инфу и хуйнёй какой-то это оказалось. Все интересные плюшки будут только во втором туре, куда смогут попасть только 10% от изначальной массы. Отбирать будут в основном, как я понял, по активности на форуме и в слаке, по-скольку задания, которые выдают в первом туре уже с решениями и тебе по-сути делать нихуя не надо, только перепечатывать. Т.е. отбирать по результатам задания не получится, так как у всех всё одно и тоже будет. Да и там сказано, что проверять никто это не будет. Всё это во втором туре только. Соответственно, если ты не социоблядь, то сразу в пролёте оказываешься.
Возник вопрос насчет использования Android SDK на линуксе. Как должны быть настроены разрешения если SDK находится в /opt/android-sdk-linux? Или если это совсем хуевый путь, куда его можно засунуть на общем билд сервере? А то у меня сборка градлом падает с ошибками вроде "Exception while marshalling что-то там .xml. Probably the SDK is read-only".
Анон, как стать таким же, как авторы этого репозитория? Сколько за свою непродолжительную карьеру занимаюсь программированием, такое встречаю редко. Обычно все пишут не так красиво и технически правильно. Даже не знаю, как с этим работать после кучи непрофессионального кода.
>>1088105 После тщетных попыток, вернулся к прежнему решению, и перенес часть кода из метода инициализации плеера в метод, где происходит запрос данных.
У меня такой вопрос, анон. Имеется список картинок, которые загружаются с сервера. Написал для его отображения и отправки запроса класс, наследуемый от Fragment, поскольку использую NavigationDrawerMenu. Собственно с сервера можно получить сортировку по времени загрузки, количеству просмотров и лайкнутые картинки. Переход по этим пунктам будет осуществляться с помощью того самого навигационного меню. Теперь вопрос, как мне обойтись без копипасты и не копировать один и тот же код, ведь нужно всего лишь заменить в запросе одну строчку? Возможно ли передавать интент в виде тех самых строк, при нажатии пункта меню?
Сап, анон. Актуально ли вкатываться в Android development в конце 2k17 или вообще в 20!8? Недавно читал статьи в духе "Native apps are doomed, long live Progressive Web Apps". Не хотелось бы потратить время на Java/Kotlin, Android SDK и сторонние фреймворки зря.
Попробовал приложение после нексуса вкатить на виртуалку с мелким экраном, ну и с моими руками конечно ничего не влезает.
Есть какой-нибудь трюк, чтобы скрывать элементы, если высота экрана слишком маленькая (в лендскейпе, например)? C ловлей смены размера все очевидно, а можно на чистом XML скрыть? без дублирования лейаутов и скроллвью, понятное дело
>>1088793 Там вместо бутона десяток элементов с прописанными лейаутами. Их тогда либо выносить во фрейм, либо в инклуд, иначе все это чревато мучениями с поддержкой; в любом случае, тут уже проще будет кодом.
Тут больше академический интерес, может, есть какой-нибудь andoid:minScreenHeightToDisplay.
Сап, анон. Актуально ли вкатываться в Android development в конце 2k17 или вообще в 20!8? Недавно читал статьи в духе "Native apps are doomed, long live Progressive Web Apps". Не хотелось бы потратить время на Java/Kotlin, Android SDK и сторонние фреймворки зря.
>>1088868 Все кроме двух пунктов - пиздеж и оправдания неосиляторов и аутистов. Уже блеять сколько их было, фонегапы ионы и подобной хуйеты, но js долбоебы досихпор не могут остановиться думать, что их параша лучше всего остального и клепают продукты однодневки, которые через год два уже поддерживать никто не хочет.
Сап, ребят, вкатываюсь к вам за помощью по такому вопросу: надо в приложухе сделать пуши из firebase, которые бы нормально приходили и когда приложуха открыта, и когда закрыта, и когда вообще выкинута из фона. Раньше для этого можно было юзать классы-наследники от WakefulBroadcastReceiver и FirebaseMessagingService. Вернее, даже первым можно было обойтись. Но траблы начались недавно, когда таргетСДК стал ставить 26-27, то во-первых WakefulBroadcastReceiver стал deprecated (по той причине, что фоновые сервисы убираются потихоньку, хотя имхо это лютая ошибка гугла делать было такую херню, ну да ладно), а во-вторых когда приложуха выкинута из фона, то пуши приходят, и при этом во-первых отрабатывает onReceive в WakefulBroadcastReceiver, где я показываю свой notification, а во-вторых показывается ЕЩЕ ОДИН notification, генерируемый автоматом , на который я влиять не могу и который я не вызываю, который по факту дублирует мой собственный. И эта херня только на 8 андроиде и только, когда приложение убито из фона.
Сам я эту тему гуглил, но на Stackoverflow пока никто не ебет, что надо делать, в инете вменяемых примеров нет. Что-то нашел, что для фоновых сервисов надо теперь юзать JobService, но опять же, адекватных примеров для JobService+Firebase нет вообще от слова ВООБЩЕ. Такая беда, аноны.
Кто-то из опытных девелоперов с таким сталкивался? Как разрулили? С меня как всегда два чаю
Анон, как стать таким же, как авторы Телеграма? Сколько за свою непродолжительную карьеру занимаюсь программированием, такое встречаю редко. Обычно все пишут не так красиво и технически правильно. Даже не знаю, как с этим работать после кучи непрофессионального кода.
>>1089894 я очень надеюсь, что это сарказм или тралинг. Потому что за такие моменты:
> pinnedMessageTextView.setTextSize(14);
>Theme.getColor(Theme.key_chat_topPanelMessage)
>LocaleController.getString("стринга, не вынесенная в отдельный класс с прочими ключами или хотя бы в глобальную переменную"
> антипаттерн проектирования, так как "god object"
я бы отбивал нахуй руки из-за нечитаемости кода и невероятно сложной отладки. То что телеграм - большая и используемая программа - не значит, что там нет говнокода и быдло кода. И пример, что ты кинул - наиболее наглядный.
>>1089894 а если хочешь научиться писать по-настоящему читабельный и чистый код, то во-первых, нужен опыть хотя бы года 2, чтоб знать досконально, что и как связано, а во-вторых, не ориентироваться на отечественных разрабов, как минимум.
Вкатился в андроид 2 месяца назад, дали проект сложный в котором большой стэк технологий, за выходные надо все понять и продолжить ебашить хороший читабельный чистый код Посоветуйте чтива по: - mvp, design patterns (в теории знаю что такое мвп, юзать не умею, знаю синлгтон, билдер) - web sockets - Dependency injection, dagger - butterknife - rxJava - Room, Dao (в понедельник надо бд спроектировать, а я ОРМ не юзал раньше)
Нужны топовые гайды, которые быстро введут меня в курс дела.
Также посоветуйте годные ресурсы чтобы держать себя в курсе в ИТ сфере, новостные сайты, каналы в соц сетях етц.
>>1090090 >mvp Семпл от Антониа Левиа и от гугла в clean architecture >web socket Чо ты там про них учить хочешь? Это костыль для веба который не умеет в обычные сокеты, по сути открывается обычное соединение, которое не разрывается очень долго и постоянно гоняются туда-сюда сигналы что бы проверить что ты на месте. В okhttp из короробки есть. >Dagger Просто что бы тебе легче управлять зависимостями было, самое узкое место - говняные классы ведра, где нельзя вцепится в конструктор. 3 статьи на habr'e от xoxol_89 мне показались самым лучшим вариантом. >butterknife Просто тулза что бы не ебашить десяток findViewById, генерирует классы в компайл тайме, но в рантайме создаются через рефлексию, но это не важно. Ты декларативно записываешь свои вьюхи/листенеры вьюх в поля класса, а потом вызывааешь bind/unbind >rxJava Няшная штука, но многие пользубтся не правильно, лучше всего презенташки от Wharton'а. Ну и вообще понимания смысла реактивности. >Room Это не ОРМ, странно что впилили в проект, только недавно стабильной стала. Лично мне показалась менее удобной чем StorIO, позволяется тебе декларативно задать DAO для работы с базой.
Просто берешь гугл/медиум/забр и смотришь статьи там, ну еще семплы на гитхабе.
Аноны, нужен совет. Увлекаюсь мобильной разработкой, учусь в забугорном ВУЗе. В будущем хочу быть моб. девелопером. Есть возможность пройти практику в солидном стартапе (во всяком случае выглядит солидно), но там нет ничего связанного с Android, только Backend на java спринге. Стоит ли идти туда или лучше на галеру где дадут соло проекты / в тиме 4< человек ковырять?
>>1090547 Как правильно, нет, ибо люди этим действительно разные занимаются. И ML на мобильных устройствах а ближайшее время не предвидется. Почти все приложения (Prisma, vl, аппы гугла, микрософта и Яндекса) шлют данные на сервер, который уже там с ними что-то делает.
Парни, есть .scetch файл с дизайном приложения. Сам сижу на виндоус. Есть вариант как-то напрямую этот файл импортировать в студию и получить всё готовое? или стоит ручками всё вытягивать и заново создавать десигн?
>>1079097 (OP) Проблема такова: Нужно прикрутить bassboost и virtualizer к проигрывателю. Я сделал это, но не уверен, работает ли. И ещё одна вещь: хотел сделать так, чтобы по нажатию одного выключателя - другой отключался. Графически так и выходит, но вот музыка продолжает играть. https://pastebin.com/4duu99BP
>>1091078 Тебе надо sketch прочитать, или ты хочешь что бы тебе на основе скетча весь UI сделался автоматом? Для первого есть Zepplin/Figma, для второго тебя собственно наняли.
>>1091250 Причем здесь фреймворк, причем здесь домен? Ты понимаешь что ты делаешь? Токены обычно пихаются в хедеры, смотри как доабвить хедер к запросу. Боди пишется через стрим, опять же примеров полно.
>>1091442 Это шутка такая или куда? Задание для даунов, а ты заставляешь читать лишнего. Полиморфизм - могу, умею, практикую. Но в данном случае что нужно сделать, применяя полиморфизм - неясно. Не мог бы ли ты не так абстрактно сформулировать совет свой?
>>1091601 Что-то в голос прорвало посмеяться с твоей логики: не разобравшись толком - скорее показать, что ты хоть что-то выучил за свою жизнь, ведь без тебя бы никто и никогда не узнал настолько гениальной вещи. Иди учи школьников, гений домашний
пацаны, как выучить kotlin правильно? java не знаю. укажите порядок, и если уж нужно сначала java, то книги. английские ок, лишь бы можно было достать в бумаге.
>>1090239 пацаны, как выучить kotlin правильно? java не знаю. укажите порядок, и если уж нужно сначала java, то книги. английские ок, лишь бы можно было достать в бумаге.
>>1091663 1) Трей Нэш, «C# 2010. Ускоренный курс для профессионалов» 2) Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му, «Язык программирования C++» 3) И только потом уже Benjamin Evans, David Flanagan, «Java in a Nutshell» вроде бы у неё есть перевод.
>kotlin Он не выйдет за пределы своей платформы, эти знания бесценны в том смысле, что их ценность —
Можно ли на ведройде работать фрилансером? Посмотриел количество вакансий на апворке 4к, в 8 раз больше чем на рельсах. Правда половина из них джс дрисня.
>>1092363 та ну хз. ConstraintLayout как был дновым, нелогичным и баганым изначально, таким пока и остается. Так что, в зависимости от ситуации, LinearLayout или RelativeLаyout юзать вполне норм.
Sup, /pr/. Новенький в итт. Учусь на курсе на разработчика приложений андроид. Куча вопросов. Буду потихоньку задавать тут. Благодарю за терпение и ответы. Почему при поиски кнопки через id нужно указывать это так: button1 = (Button). Для чего этот button в скобках?
>>1093898 Когда сможешь на это ответить, попытайся в андройд. Типы данных. (Примитивные и ссылочные) Циклы(for/while/for each) Устройство памяти в Java(Stack, Heap). Так же важно понимать, как и на каком уровне работает Garbarage collector Методы — возвращаемые/не возвращаемые Массивы и коллекции, а так же операции с ними (Сортировки) ООП (Полиморфизм, Наследование, Инкапсуляция, Абстракция) Comparator и Comparable (для сортировки объектов) Threads и Runnable, для понимания, как устроена многопоточность в Java. Exceptions (try/catch/finnaly) — для «отлова» ошибок Generics (Обобщенные типы)
Вкатился на хуевую контору, сижу на поддержке ссаного проекта, фиксаю 1-2 бага в неделю, остальное время пинаю пистон т.к. проектов нету. Вкатился джуном. Завтра иду на большую контору на собеседование, позиция - trainee
Не проебусь ли я, если пойду туда? Просто чувствую что деградирую аки ебаная шавка.
Привет всем, такой вопрос, не совсем по теме программирования под андроид, но из этой сферы. В общем, стал работать в конторе, получаю порядка 800 в месяц, работаю уже полтора года там. Работаю, как я считаю, хорошо, в дедлайны вкладываюсь и т. д. Но у меня подозрения, что зп как для этой сферы маловата, слышал, что платить должны в таких случаях около 2к. Подскажите, тут уже я сильно губу раскатал или я прав? Валить надо из конторы из-за низкой зп или оставаться, мол 800 тоже норм?
Город указывать не буду, считайте обычный СНГ-город на 600к людей.
>>1094547 Ну если ты чувствуешь себя на 2к, то да, но возможно у тебя задач день на 3 часа пинания хуев. Сколько другие чуваки получают у тебя в конторе?
>>1079097 (OP) Шалом, генацвале, пытаюсь прикрутить дата биндинг. Судя по гайдам, что я нашел, нужно добавить по одной строке в градл модуля и приложения. Это я сделал. Дальше несу тег <data> в разметку layout'а, но компайлер в упор не видит атрибутов name и type у тега variable. Как мне заставить эту суку работать?
Анон, как в своем приложении сделать чтобы его шапка в листе всех запущенных приложений тоже меняла цвет, как на скрине? Программно меняю цвет тулбара и статус бара, с ними всё окей, но списку на все эти цвета до пизды, мое приложение в нём остается белым.
>>1096109 > А ассемблер я не должен знать? Должен. Только не ассемблер, а язык ассемблера. И байт-код, конечно же. Иначе так и останешься пицценосом, которого унижает собственный код.
>>1079097 (OP) Посоны, а что вы разрабатываете? Большинство людей на телефоне ничего, кроме браузера, соцсетей и читалок не держат, а если им что-то нужно, то они гуглят в браузере, а не в плэй маркете. Других способов использования ведра я не вижу, просветите меня плес.
>>1096140 >>1096295 Но все, кроме нахуй не нужных стартапов на Андроиде, за вас уже создано. Да и не может так много людей делать настолько оригинальные продукты
Проигрался с ListView и адаптером, почитал на глаз материал дизайн и поделал калькулятор. Применил обратную совместимость, покопался в классах андройда, почитал многопоточность, взял AsynsTask, взял рандомный API и через интернет распарсил данные. Показалось мало, создал едитТекст, нашел другой АПИ и начал делать так, чтобы при вводе текста андройд находил книгу например, и показывал мне ее с автором и т.д. При повороте экрана помещал объекты в Parceble, ну и с ним поигрался. Думаю сейчасс фрагментами покопаюсь, запилю напоминалку с RecycleView. А что дальше изучать? Алсо, пытался открыть исходный код проекта для бегиннера, но там так было запутано все, аж пиздец меня накрыл. Не могу собраться с мыслями, хочется и то и то взять сразу и быстрее я но нихуя не получается и путаюсь во всем.
>>1096323 Тоесть вы фрилансите на лохов с ОРИГИНАЛЬНЫМИ ИДЕЯМИ, которые сразу же проваливаются? Ебать, сколько же таких лохов существует, если андроид разработчики актуальны. В моем манямирке, погромироаание существует только в вебе и Энтерпрайзе, и я хочу понять, существует ли оно за этими сферами. как я понял, на ведре и гейоси его нет
>>1096333 Да один хуй что с вебом, на днях в руки попала индуская апка, суть: есть 2 апки, одна для доктора, вторая для пациента пациент может вызвать доктора на дом, у доктора приходят нотификейшены от клиентов, менеджмент вызовов и т.д. Фриланс для докторов короче
Челик хотел редизайн и рефакторинг
Когда я начал тестить он мне написал что у них пиздец как сервера напряглись и он не понимает что происходит. Апке больше года, до 300 скачиваний
Если я сделал клон приложения могу ли я выложить его в аппстор без каких-либо профитов, просто в качестве портфолио? Исходники открыты тоже. Не пидорнут ли его и не заблочат ли мне акк?
Пацаны, это ведь утечка, да? Я 5 раз повернул телефон и вижу пять инстансов активити. Плюс на эту хуйню триггернулся ликкенери и стриктмод. Но чё мне с этим делать. Чекнул либу эту, там вроде всё норм, вызываются гугловские методы для отписки. Чё делать дальше я хз.
>>1097081 асинкс таски вообще лучше забыть и выкинуть. Нужна многопоточность - thread в помощь. Запросы через связку retrofit+okhttp, там асинронность нормально соблюдается. Сверху потом приправляй Rxjava + mvp архитектурой. Если и с этим справишься - то dependency injection (dagger 2). Когда перечисленное закончишь и врубишься, то считай работа андроид девелопера тебе обеспечена
>>1097105 Корутины, кстати, просто щикарная вещь. Что мне не нравится в rxjava, это то, что нужно плодить кучу классов для промежуточных стримов, либо для того чтобы объединить несколько стримов в один и тд. А с корутинами просто херачишь код как раньше.
>>1097196 ебать дибил, как там в 2011? Асинк таски - устаревшая хрень, без адекватной отмены задач, которые уже выполяются, без адекватных перехватов их же и т.д. Сами гугл признали, что асинк таск - неудачная замена тредам в андроиде, да почитай хотя бы англоязычные форумы об этом.
То что ты упомянул тимлидов, которые юзают асинк таски - это лично твой манямирок. Во всех конторах, в которых я работал, либо с людьми из которых общаюсь - все чуть ли не сразу говорили джунам, что асинтаски - зло, вместо нах юзать треды. Очень много людей на собеседованиях из-за этого валилось, потому что дупля не давали, что такое тред из-за недостаточной грамотности в кодинге и лютого надроча на асинктаски после чтения русскоязычных форумов.
Буквально недели 2 назад искали нового мида в компанию, выбирали из двух кандидатов, в итоге выбрали того, который использовал в определенных местах именно треды, вместо тех же тасков.
Любой тимлид тебе по ебалу даст как раз за то, что ты эти таски заюзал. А если ты их еще делаешь для сетевых запросов, то тебя надо сжигать живьем имхо.
В общем, ты обосрался, перекатывайся в пхп, там тебе будет проще
>>1097235 Тупая мелкобуква продолжает прилюдно обсираться.
> ебать дибил, как там в 2011? Асинк таски - устаревшая хрень, без адекватной отмены задач, которые уже выполяются, без адекватных перехватов их же и т.д. Где я говорил обратное, даун?
> ты упомянул тимлидов, которые юзают асинк таски Пальцем покажи, где я такое писал. Долбоеб, сам придумал хуйню, сам стал её опровергать.
> вместо нах юзать треды. Очень много людей на собеседованиях из-за этого валилось, потому что дупля не давали, что такое тред из-за недостаточной грамотности в кодинге и лютого надроча на асинктаски после чтения русскоязычных форумов. Давай, показывай, как ты Thread для асинхронных запросов на сервер используешь. Обоссым твой говнокод. > Любой тимлид тебе по ебалу даст как раз за то, что ты эти таски заюзал. А если ты их еще делаешь для сетевых запросов, то тебя надо сжигать живьем имхо. В общем, ты обосрался: сам придумал хуйню и приписал её мне. Представляю, какой ты код пишешь. В js-треде тебе были бы рады.
>>1097196 Ну вообще-то, нет. От матерых тимлидов слышал как раз, что асинктаски очень нерекомендуемы для использования и Thread - единственный выход, если надо что-то сделать в отдельном потоке. Вот этот анон >>1097235 прав
>>1097237 Так же как и обычный код? Корутинам можно задавать пул потоков на котором они будут исполняться. В случае андроида есть стандартный пул для выполнения корутин в гуи потоке - UI. Ну а дальше остаётся только как и с rxjava сделать провайдеры этих пулов и передавать в случае реального кода пул с бекграунд потоками, а в случае тестов UI пул.
>>1097255 > намекая, что нужны асинктаски, так? Ты опять придумываешь за меня то, чего я не говорил.
> ты че, серьезно? Скажи, а ты точно программист? > (new Thread(() -> { > // 123 > // 456 > })).start(); Охуенно. И где тут синхронизация с главным потоком? Где возможность отменить асинхронную операцию? Где возможность использовать пул потоков? Где обработка смены конфигурации (например поворота)?
Услышать, что асинктаски плохие - услышали, но вот понять, почему они плохие, и как сделать хорошо - не в курсах. Зпто перед другими ватывальщиками выебываются "коко асинктаски коко".
>>1097259 ок, если не асинк таск и не тред, то что?
>Охуенно. И где тут синхронизация с главным потоком? runOnUiThread
> Где возможность отменить асинхронную операцию? interrupt
>Где возможность использовать пул потоков? ExecutorService threadPool = Executors.newFixedThreadPool(8);
>Где обработка смены конфигурации (например поворота)? тут уже уточняй задачу, вариантов решений подобного масса. Самый лучший - это, банально, отключить пересоздание экрана при повороте в манифест файле.
>Услышать, что асинктаски плохие - услышали, но вот понять, почему они плохие, и как сделать хорошо - не в курсах. Зпто перед другими ватывальщиками выебываются "коко асинктаски коко". ты стал отвечать оскорблениями - оскорбления пошли тебе в ответ, хули ты ноешь теперь?
Конечно мда. Raw new Thread тоже ничем не лучше AsyncTask'a так как все те же проблемы. Родина дала им Executor'ы, Future'ы и это без бибилотек, но нет - хочу жрать говно.
Как найти угол между осью Y и горизонтом без учёта вращения вокруг других осей? Т.е. при использовании примера вот тут - https://developer.android.com/guide/topics/sensors/sensors_position.html берётся плоскость в 3D и при наклоне телефона значение уменьшается. Надо вот как тут - https://youtu.be/-Cy75fAkK4s . Как я понял, это какая-то математика с векторами, но я школу прогуливал, вообще не могу сообразить.
Как объединить поиск по картинкам Google со своим приложением? Допустим, google картинки распознало что-то и эти теги необходимо отобразить в программе
>>1097667 Ну типа кандидат должен уметь писать по 200 строчек кода в минуту, иметь 10 успешных аппок на маркете с 100к скачиваний ну и было бы неплохо уметь анимации делать
Как лучше поступать с соединением SQLite: 1. открыть соединение с БД один раз и пользоваться по необходимости 2. открывать и закрывать непосредственно до и перед операцией DML ?
>>1097694 Перед каждым действием, когда нужна запись getWritableDb (для чтения - getReadable). Не закрывай, ведро само закроет когда грохнет твое приложение.
Ребятки, можете внятно пояснить - чем в андроид разработке отличаются архитектуры MVP и MVVM? Сам юзаю первую (та и почти вся наша контора тоже) , но появился один петушок, который уже всех заебал MVVM , так что уже самому стало интересно - есть ли какие-то плюсы в нем по сравнению с mvp?
>>1098242 В том и дело, что с гуглплея не могу скачать (недоступно для моей страны). VPN не решил проблему, т.к. гугл подхватывает страну из аккаунта, ну или я где-то затупил.
>>1098297 Маня, архитектура затрагивает всё приложение, а MVP/MVVM определяет только способ организации слоя, ответственного за отображения и взаимодействие с UI.
>>1098304 та всем похуй, все это понимают именно как архитектуру. А это: >Это не архитектуры, а презентационные паттерны. нахуй никому не нужное задротство, не меняющее сути.
>>1098304 1. Это архитектурные паттерны. 2. Эти архитектуры затрагивают все приложение. Почему так. Model - набор классов отвечающих за данные, работу с сетью, получение и обработку, базы данных и тд, а не сраненькие POJO. И да, Model включает в себя так же и сраненькие POJO. View - собственно то что отображает твои данные. Presenter - класс, который является прослойкой между Model и View, обрабатывает инпут от пользователя и решает что с ним дальше делать. Получает данные от Model и решает как поступить с вьюхой на основе этих данных. Так о чем я? О том что это архитектурный паттерн, то есть полноценная архитектура.
>>1098438 Так в этом и соль — при аплоде apk из apkpure какие гарантии того, что там нет изменений в коде? Идея в том, чтобы проверить, что нужное мне приложение я могу скачать из apkpure в том же виде, в каком оно в Google Play. Не понимаю, почему на странице приложения в гугл плей нет информации о фингерпринтах ключей разработчиков, которыми они подписывают распространяемые апк.
Проблема для меня в том, что я не знаю, насколько можно доверять apkpure (возможно, страхи из прошлого, и идут ассоциации с васянскими сайтами "скочать апк безплатно", но тем не менее, просто интересно, можно ли как-то более-менее достоверно проверить апкшки не из Google Play).
>>1098445 > Эти архитектуры затрагивают все приложение Только если в твоей приложении ничего кроме UI и нет.
Собственно, MVP ничего и не говорит о том, как организовать M. Более того, MVP не говорит ни слова о том, что делать с бизнес-логикой. Именно поэтому это не архитектура.
Пиздец, как же вы заебали. >>1098293 тут я просто попросил описать отличие этих двух архитектур, с минимальнми примерами в коде или, на крайний случай, словами. Нормально попросил, понятно описал, потому что юзаю в жизни мвп и стало интересно "а что если мввм?". Но нет же, сука, местные ебучие дегроды решили доебаться до слова АРХИТЕКТУРА, развести срач, а потом и вовсе начать кидать бесполезные ссылки, где в одном предложении встретятся слова mvp и architecture. Поистине, pr - сборище для даунов, которые минимально вкатились в программирование , в более-менее сложных вопросах нихуя не разбираются, но тем не менее, пытаются блеснуть своим "дохуя умным" нахуй никому не нужным мнением, даже если в вопросе вообще не разбираются, и вот этот вопрос это явно показал. Идите вы нахуй, короче. Теперь воспринимаю pr не более чем флудилку на околопрограммистские темы и место для тралинга недопрограммистов. Еще раз идите нахуй.
>>1098630 > Пиздец, как же вы заебали. > тут я просто попросил описать отличие этих двух архитектур Это не архитектуры.
Ответ на твой вопрос гуглится в один запрос, но ты ждёшь, что всё за тебя разжуют и расскажут. А когда тебе указали на распространённую ошибку, о которой ты от гугла уже не узнаешь, ты начал брызгать слюной и обзывать всех школьниками. Так что да, с каким подходом к обучению, тебе нечего делать в этом треде. Да и в IT тоже.
>>1098640 >гуглится в один запрос >ошибку, о которой ты от гугла уже не узнаешь кек, ты обосрался в своих же паре предложений.
>Это не архитектуры. а еще упорно пытаешься оставаться долбаебом. Почитай уже про мвп, вникни в суть, пример на гитхабе том же найди небольшой. Посмотри, что в проекте с mvp классы по своему рассортировываются по пакетам, имеют определенные названия. А это отчасти и есть архитектура проекта.
>ты начал брызгать слюной и обзывать всех школьниками потому что так оно и есть - тут в своем большинстве либо школьники, либо долбоны с комплексами школьников, вроде тебя. Ты даже до сих пор не понял, в чем заключался мой вопрос - там можно было проигнорировать даже слово архитектура, суть бы не поменялась. Но с твоими комплексами пришлось разводить срач даже тут.
>Так что да, с каким подходом к обучению, тебе нечего делать в этом треде кек, с каким таким? Я задал вопрос - дауны развели срач не по теме практически, какой ту тподход, ты о чем вообще, маня.
п.с. я достаточно знаю программирование, чтоб игнорить не шарящего школотрона с двачей вроде тебя, который мне заливает про архитектуру, не шаря в ней сам. Но вопрос насчет различий мвп с мввм был интересен, однако я видимо оказался слишком наивен, думая, что тут кто-то вообще поймет саму суть и уж тем более что-то внятное напишет.
>>1094024 Согласен, мне рановато андроид, но увы не я решаю. Я на курсе от армии(я из израиля). Тут нам просто выдают материал, и идите учите сами. Поэтому темы выбирает учитель, а я учу, как могу. Увы, не все ответа находятся в гугл, или я неправильно подаю запрос. Но тут сидят довольно умные люди, возможно кто и поможет.
>>1093931 >>1093943 >>1094074 >>1094137 >>1094029 Спасибо за ответы. Всё прогуглю. Ответил тут анону выше, но напишу еще раз, если интересно. Я получил курс от армии (не рашка). Тут нас обучали джаве пару месяцев (1 урок в неделю, что на мой взгляд маловато). Потом сразу перевели на андроид. Дали пока задание: написать калькулятор через фрагменты. Сижу, пытаюсь понять что и как делать, но особо подвижек нет. Знаю, что отсутствует база знаний по джаве, но у меня почти нет времени возвращаться назад, пока не сделаю калькулятор. Поэтому пытаюсь выгуглить\спросить что могу, чтобы потихоньку начать понимать суть вопроса.
народ, подскажите ньюфагу, как реализовать рисование на экране пальцем? точнее, возможность рисования в определенной области экрана. Нужно рисование простейших черт, по принципу как работает кисть в пейнте. Ну нажал палец, ведешь по экрану рисуется линия, отпустил перестала.
Суп, ведро. Бомж в треде. У меня максимально всратая пека, она с трудом и в конвульсиях запускает Андроид студио, к тому же, если добавить к этому то, что там все СЛОЖНА, то все желание что-то пилить и учиться в конечном итоге пропадает. Но, у меня есть ведро которое мощнее пеки, и я просто хочу пилить на него свои программы, и не важно как и на каком языке, главное чтобы не в сраном Андроид студио. Что посоветуете? Естественно, нужно такое, чтобы потянул мой калькулятор, и чтобы можно было по usb запускать на ведре, либо сразу делать апк и скидывать на него.
еще есть такая замечательная вещь, как jenkins, но имхо, там без бубна и двух литров не разобраться. Но если ты усидчивый, то можешь попробовать погуглить и пошерстить инфу в эту сторону. Вкратце - код пишешь у себя , заливаешь на битбакет, а дженкинс из определенной ветки все достанет, скомпилит и разошлет кому хочешь.
>>1099733 кек, школьник зашел на борду, отличную от /ро/ или /b/, увидел какое-то сложное незнакомое слово и по старой привычке вскукарекнул, не подумав даже вникнуть минимально в суть. Классический двач, че. Однако уебывай назад в /po, недоразвитый
На некоторых устройствах перестает запускаться приложение. Не стартует даже контент провайдер. После перезагрузки устройства начинает некоторое время работать, потом снова идет по пизде. Доступа к проблемных устройствам нету. На тестовых устройствах повторить не получается. Какие есть варианты найти проблему, кроме поиска других тестовых устройств?
Есть кроссплатформенное ядро приложения. И есть логи. Какой способ лучше, практичнее и менее пердольный для ограничения логов (для релизной версии приложения) в этом ядре, учитывая регулярный обмаз тестами? - Интерфейс уровня Debuggable с методом setDebuggable(boolean isDebuggable) и проверкой флажка перед выдачей лога, который реализуют логгируемые классы? - ProGuard (им вообще реально убрать логи, скажем, в десктопном коде, в котором нет андроидных костылей?)?
>>1101401 Можно передавать экземпляр конфигурации через все приложение. Никаких неявных зависимостей через статические поля или синглтоны. Дополнительные плюшки в виде возможности передать еще всякое. Никакой магии уровня ProGuard'a. И все это с тестируемостью.
>>1101428 Что-то вроде того, как в libgdx, например. Java-модуль, который должен быть максимально независимым от того, запускается приложение на пеке, или на мобилках.
Как делается бегущая полоса загрузки как, например вверху страницы в мобильной опере? Сделал прогрессбаром, но там отступы сверху и снизу от полосы остаются. Никак не могу убрать.
Как настроить databinding для list view или recycler view? Я создал шаблон-лэйаут для элемента list/recycler view, там в xml настраиваю биндинг для отдельного элемента. Что теперь писать в activity_main.java? вот есть у меня recycler view с id recView Как теперь мне заставить его схавать коллекцию элементов и отображать каждый ее элемент в кастомном лэйауте?
Обращаюсь к состоявшимся Android-разработчикам. Правда ли что большая часть времени уходит на верску, чтобы приложение одинаково красиво смотрелась и на последнем Нексусе, и на китайской свистелке за $100?
И вопрос по поводу карьерной лестницы. Представим walkthrough мобильного разработчика. В начале пути это стажер/джун, а кто на самом верху, к чему нужно стремиться?
>>1102429 Некоторые уже перешли. И будет переходить всё больше и больше. На iOS кстати так же было — сначала он 3 года назад появился и был нахуй никому не нужен. Потом на него переписали линкедин. Твиттер. Кучу самых популярных либ. То у мамонтов, которые писали на Objective-C (некоторые начали на нём писать 20-30 лет назад), тоже началось отрицание. Сейчас и белые люди, и ваффиянский тырпрайз перешёл или переходит вовсю на Свифт. Родилось поколение разработчиков, которое не знает Objective-C. И так далее. >>1102439 >В начале пути это стажер/джун, а кто на самом верху, к чему нужно стремиться? Если ты постоянно учишь новое, радеешь за чистый-чистый код, помогаешь всем коллегам — то очевидно твою жопу рады будут продать за дорого, бросая на самые трудные вещи. И платить соответственно будут прилично. Если тебе больше нравятся организационные моменты, собеседования, умение найти подход к каждому разработчику — станешь лидом мобильной платформы на своей галере.
>>1102466 >То у мамонтов, которые писали на Objective-C (некоторые начали на нём писать 20-30 лет назад), тоже началось отрицание. Сейчас и белые люди, и ваффиянский тырпрайз перешёл или переходит вовсю на Свифт. Родилось поколение разработчиков, которое не знает Objective-C. И так далее. Не знаю, что там свифт, я в живую подходил к одногруппнику, который работает в компании, и он мне говорил, что свифт такое себе, что-то там про несовместимость сказал и в конце добавил, что нормальные компании пилит Objective-C. У него стаж третий год и думаю вряд ли он будет пиздеть. Так что сори, тырпрайз.
>>1102488 Возможно. Просто у меня круг общения несколько шире, чем пара одногруппников. А именно — весь цвет и тырпрайз, и стартап-разработки Пидарахии, Усраины (где пилится куча всего для первого мира) и т.д. Несовместимость — решат в след мажорном релизе. А пока — похуй на неё. Эппл убил Обжси разработку. Всё. О чём можно говорить дальше.
>>1102211 Among Android developers using either Java or Kotlin – and not other languages via Android NDK – 94.9 per cent used Java in September 2016 and 5.1 per cent used Kotlin.
A year later, the ratio has shifted to 85.7 per cent Java and 14.3 per cent Kotlin, a fairly sizable change.
"Since Google blessed Kotlin as an acceptable language on Android, which happened in May at Google I/O, Kotlin use has just exploded, " said Paul Kopacki, veep of marketing at Realm, in a phone interview with The Register. "We think by the end of next year, Kotlin will have eclipsed Java for Android apps."
According to Realm, 20 per cent of Android apps built with Java prior to Google I/O are being rewritten in Kotlin.
Ну сам смотри, по мне так это охуеть какой рост, учитывая что 15-20% от всего кода, включая уже написанный тоннами джава-код.
>>1102550 очень удобно. а если я хочу в этом onclick'е открывать новую активити с резалтом, то мне еще в конструктор адаптера закидывать ссылку на main activity?
>>1102556 Зачем ссылки? Адаптер знает всю хуйню про элементы которые в нем размещены. Вся хуйня из элемента по которому кликнули пакуется адаптером в интент и отдается активити которая ее отображает/делает с ней все что нужно.
>>1102556 У тебя ссылка на кликнутую вьюху в onClick(View v), v.getContext(). Сечешь? Но в адаптере логику клика лучше не держать. Делай умные вьюхолдеры.
>>1102557 >>1102558 я не джава, я из соседнего лагеря. что вы под коллбэками имеете в виду? отправлять в конструктор VH/adapter'а делегат/указатель на функцию? или это у вас так называются обработчики событий типа onClick()? >>1102664 >У тебя ссылка на кликнутую вьюху в onClick(View v), v.getContext(). Сечешь? не секу. что мне дает эта информация? типа можно по родителям добраться до активити? >Делай умные вьюхолдеры. это как гуглить?
>>1102923 да я беситься начинаю, когда гуглю. смотрю видосы у индусов, как они в конструктор viewholder'а через адаптер передают контекст активити И, сука, список объектов для отображения. и у этого 95% лайков, как будто это, блять, национальная идея у андроидов - делать всё через жопу. я отчаянно надеюсь, что это не так, и это просто индусы хуйню пишут, но блять, на 15000 просмотров 7 дизлайков. похоже всех такое устраивает
>>1102927 Только дебил учатся по видосиками на ютюбе. Что-то хорошее там может быть только если доклады с конференций смотреть, да и то не все. Но там про такие ньюфажные темы не говорят.
>>1102979 я бы с радостью читал бы официальную документацию по настройке RecyclerView или DataBinding для него, вот только про onClick ни там ни там нихуя не написано. и на сайтах различных тоже нихуя, либо говно какое то. ютуб для меня был последней надеждой, но и там какие то индусы охуенные костыли пихают
>>1103018 это всё круто, конечно, но мне нужно с клика стартовать активити с результатом. как мне модифицировать пример обработчика в мануале, чтобы я мог это сделать?
>>1102856 >это как гуглить? Берешь вьюхолдер и реализуешь всю логину отображения/обработки кликов внутри, а не в адаптере. Во вьюхолдер в onBindViewHolder просто сеттишь данные в свой вьюхолдер типо viewholder.setData(dataset.get(pos)).
>>1102856 >не секу. что мне дает эта информация? типа можно по родителям добраться до активити? Ясно. Ты просто тупой. Context имеет метод startActivity(даже не смотря на то что активити наследуется от контекста и то что все вьюхи в большинстве своем имеют контекст активити в котором созданы). Теперь сечешь?
>>1103083 Лол, о какой архитектуре ты говоришь, если долбоеб не может активити из клика стартануть. Можно и для вьюхолдеров ебануть всю связку MVP/MVVM и ещё чего. Но этот долбоеб же не осилит.
лол , как же я проигрываю с ДОЛБАЕБОВ, которые не в состоянии написать блядь банальный интерфейс с одним методом OnRecyclerItemClick , передать этот интерфейс в конструктор адаптера и в нем уже при нажатии на весь итем вызывать метод этого интерфейса. При этом вся обработка нажатия будет уже в активити\фрагменте, а адаптер отвечает лишь за отображение данных (что соответствует определению паттерна АДАПТЕР). Но нет, школоло-пиздюки и макаки-первокурсники лезут даже с такими элементарными вопросами сюда. Сириузли, как вы дальше собираетесь кодить, если даже такой детский сад вам не под силу?
Расскажите мне как правильно делают крутые чуваки в продакшене.
Нужно иметь данные из настроек приложений: скажем, юзернейм и сессионный ключ. Храню я их в SharedPreferences. А вот как с ними работать: 1. Наследоваться от класса Application (я так понимаю он синглтон). В методе onCreate считывать в его поля из шаредов значения, при изменении настроек изменять эти поля, сохранять их в шаред к пример в onStop. Использовать данные как app.username. 2. Создавать класс настроек (он должен быть синглтон?), там в геттерах и сеттерах читать и писать данные напрямую из SharedPreferences. Использовать данные как appSettings.getUsername. В таком случае нужно передавать контекст в конструктор класса. 3. Обращаться к шаред в функциях прямо по месту требования.
>>1103415 Создаешь интерйфес SessionManager (допустим, называй как хочешь). У него можно получать токен/имя, че там тебе надо. Дальше развилка: 1) Создаешь объект класса реализующего этот интерфейс (может брать из перефернсов, может из аллаха и тд) в Application::onCreate, а дальше как-то его достаешь оттуда; 2) Берешь Dagger, добавляешь в компоненту модуль провайдяший этот самый менеджер, ну или в билере компоненты используешь @BindsInstance, как хочешь. А дальше либо инжектишь по нужному месту доставая компоненту из апликейшона, либо дергаешь из компоненты аксесор на эту штуку, тут уж как тебе удобней. По сути второй вариант модификация первого, которая имеет смысл при большом графе зависимостей.
У него написано, что с апи 19 он вообще не нужон. При этом в доках он причислен к Dangerous Permission. И на стековерфлоу куча постов о том, что у них лолипоп+ выдаёт ошибку при попытке лезть без запроса пермишена. Кто-нибудь сталкивался с подобным, или это удел каких-то ноунейм китаедевайсов, и пермишен можно выкидывать?
>>1103739 Ты что-то путаешь. Read ненужен, а вот без write ты во внешку хуй запишешь. Разумеется без получения пермишена от юзера начиная с зефирки будет падать.
Господа, выручайте. Сам я нюфаня еще тот. Ситуация примерно такая: приходит стринговый массив. Количество строк неизвестно. Мне нужно в зависимости от количества строк, создать такое же количество текстовых полей(для вывода строк) и кнопок рядом(повесить на них отдельный функционал). То есть парами: строка = поле + кнопка. Проблема в том, что я не могу найти в Constraint, как выравнивать вьюшки относительно друг друга, ну и родительского Layout(подчеркну на всякий - создание интерфейса ПРОГРАММНОЕ). Перешерстил немного гугл, документацию, но чет ничего не нашел. Выручайте. Остальное я примерно знаю как осуществить, но вот в это расположение уперся и пиздец
>>1104224 Я уже только что понял, что я про эти прекрасные вещи забыл. Буду через них делать Но все же, чисто теоретически, так сказать для общего развития, есть возможность программно двигать вьюшки? Вроде для Relative Layout что-то видел похожее. Но, для Constraint не было, хотя он же вроде подразумевает под собой все лучшее из Relative, насколько я понял
>>1104233 Можно двигать, можно добавлять. Например, делаешь линейный лайаут (вертикальный). Потом в рантайме засовываешь туда сколько нужно линейных лайаутов (горизонтальных) с кнопкой и надписью. Но там еще ебаться нужно со скролом, с размерами чтобы все ок было. Нормальных причин такое делать нет. Это если у тебя очень сложное вью, каждый элемент уникальный по структуре которая еще и заранее не известна (описание вытаскивается из json), тогда может быть.
>>1079097 (OP) Анон, сейчас будет самый тупой вопрос за время существования вашего треда: мне нужно написать кое-какое приложение на андроид, главное - с простым почти статичным UI есть какие-то годные эмуляторы, чтобы всё это дело тестить и запускать, потому что я червь с обосранной нокией 7310?
>>1104249 >>1104252 Ну я понимаю, да. Просто я не нашел такого рода команд именно для Constraint. Для Relative видел что-то вроде addRule(), в котором задаешь куда элементу двигаться, и относительного какого. Впрочем, наверное, похер, это не столь важно уже.
Можно ли как нибудь загрузить незакоммиченные изменения в удаленный репозиторий, чтобы потом скачать их, удалить из remote и продолжить работу на другой машине? Не хочу делать коммит с промежуточным "мусором".
>>1104362 Хериггеред! азаза На то и форк, чтобы там страдать любой хуйней, ребейзить, форсить, хоть в жопу ебаться. Потом приводишь это все в красивый читабельный вид и делаешь мерж-реквест.
Аноны, поясните пожалуйста за котлин, под что на нем пишут кроме андроида? Какова продуктивность, популярность? Много ли работы? Есть фриланс или только энтерпрайс?
>>1104935 кек, как там фоновые процессы? как там функциональность уведомлений? как там перекидывание файлов с телефона на комп и наоборот? как там работа с svgшками при разработке? как там работа с svgшками при разработке? как там эпловская экосистема по сравнению с гугловской? Особенно интересно про карты и видеохостинг почитать. как там мультиоконность? напомню, что сейчас уже почти 2к18, а кое-где ее до сих пор не завезли.
добавляем ко всему этому ебанутую дороговизну телефонов, даже в сравнении равных по характеристикам моделей (пиксели против айфонов например) и яблокобляди идут нахуй отсасывать за очередной айфон
>>1104938 Это конечно все хорошо, но на ведре ис svgшками не все хорошо, как меня заебал варнинг unsupported tag, опять же всеми любимая фрагментированность.
>>1104935 Гейосеры заебали про пидоров на работе шутить. >>1104938 >как там фоновые процессы? Как раз это в Эппле правильней сделано. >как там функциональность уведомлений? А что там не так.
>>1104950 >Как раз это в Эппле правильней сделано. лел! правильно - это типо не сделано вообще? У них нет вообще такого понятия, как фоновый процесс, а в андроиде тебе на это Service есть.
>Это конечно все хорошо, но на ведре ис svgшками не все хорошо, как меня заебал варнинг unsupported tag, опять же всеми любимая фрагментированность.
ну хз, у меня всегда свгшки нормально парсятся. Если же не открываются, то прошу дизайнера перенарезать их, либо конверстирую в хмл сторонними сервисами на изи. Опять же, у яблокоблядей их нет вообще
>как там функциональность уведомлений? >А что там не так. то что в отличие от андроиде она не несут никакой ползы или функций
>>1104972 >у меня всегда свгшки нормально парсятся Я про то что многи штуки с 23 апи. >яблокоблядей их нет вообще Ну как бы да, но но самам деле это не какая-то килерфича. закидываешь пдф с вектором и тебе сгенерит при блиде все нужные каотинки Может быть я просто непарвильно свгшками пользуюсь, максимум тинт/поворот.
>не сделано вообще Так и проблем с батарейками нет! Тебе не нужно накладывать анальные ограничения на бэкгрануд если его нет.
>>1104972 >правильно - это типо не сделано вообще? Именно. Спасает от разрабов-долбоёбов. >в отличие от андроиде она не несут никакой ползы или функций Первый раз про это слышу. Такие же там уведомления.
Алсо, возможно, кто-то знает другой способ автоматически определять свой номер на устройстве?
Через TelephonyManager не вариант, т.к. на большинстве устройств номер тупо не хранится. Можно выделять его из входящего смс с номером при запросе номера у оператора, но многие операторы возвращают номер в формате USSD
Блять, аноны, поясните мне за тупое говно тупого говна. Вот есть Java и Kotlin. Мне бы хотелось познать андроиз через котлин, без написания кода на ебаной джаве, это реально? Есть ли туториалы аля андроид с нуля, только на котлин?
Кому-нибудь приходилось иметь дело с легаси где ещё используется roboguice? Предложили проект для совмещения, он огромный, грязно написан, использует похороненные технологии (robospice ещё). Глядя на него хочется только переписать все с нуля, но заказчики хотят только местами улучшить поддерживаемость, платить собираются хорошо. Т.к. есть основная работа, то пока думаю, соглашаться или нет? Анон, ты стоял перед подобным выбором?
>>1106065 >Не нравится джава - свифт и высокие зарплаты в ios разработке ждут тебя.
Lol, в iOS ещё очень много проектов на objective-c. Чтобы всерьез туда вкатиться придется сначала прилично освоить, так сказать, первичный язык. А потом swift возможно и не захочется, как мне, например
>>1106108 Не лезь, блядь, дебил, сука, ебаный. Ты чё, хххуёл, я те сказали что ли? Залезь, наххуй, нака обратно, блядь! Дебил, блядь. Она тебя сожрёт, блядь. Нахуй ты б?..
>>1105905 А нахуя? Джава - это основа, без нее щитаю в андройд разработке делать нечего. Котлин - приятное дополнение для тех, кто знает яву, начинать сразу с котлина(не зная хотя бы шарпа) очень глупо т.к. почти вся экосистема, сторонние библиотеки, все это на яве и не смотря на крутой интероп, если ты не будешь знать яву - будешь натыкаться на кучу граблей и неочевидностей в использовании библиотек т.к. там идеоматический код на этих языках в куче мест отличается.
Да и сорцы интересных либ/проектов не сможешь читать.
Хочу вкатиться в андроед, и, прежде чем пойти джуном, запилить небольшое приложение. Есть некоторые знания джавы. На ней пилить, или на хипстерско-модном котлине? Или на скале нахуй?
Можно ли простыми средствами и без ебли канваса руками сделать как на пикрил1? Если раскрашиваю обычный view, который внутри cardView то с закругленными углами получается пикрил2, а если ставить cardPreventCornerOverlap="false", выходит то, что на пикрил3.
Сколько примерно будет стоить хороший ноут с 16гиг и норм процом? Не обязательно ультрабук. Алсо, можете вкидывать хорошие машины для кодинга под ведро/свои рабочие компы.
>>1107445 Ебанись, сколько ваша ведроид студия ресурсов жрёт, на моём десятилетнем два ядра@два гига даже эклипс притормаживает, похоже, вопрос стоит-ли вкатываться в андроид-разработку для меня закрыт. Алсо, как оно на линуксе работает, через wine-костыли? Тогда всё ещё хуже. нищеброд, мимо скролил главную
>>1107399 Юзаю макбук-эир ай5 1,6Ггц, 8 гигов. Работать вполне комфортно, имею в виду, что эмулятор тоже запущен. Покупал его б/у за 45к. Зависимость есть. Кстати, заметил, что когда запускаю эмулятор под Орео апи 26+, то тяжелее работает. А вот 23 апи шикарно.
Молодые люди, помогите мне, пожалуйста, с отображением, мать их, картинок.Вот скачиваю я с сервера глайдом картинку, и она может быть самого разного разрешения и иметь самое разное соотношение сторон.Поместить её надо в контейнер фиксированного размера.Какой бы scaleType я не брал, как бы не выставлял размеры - всё равно часть картинок отображается некорректно.Есть какая-нибудь чудесная умная либа, которая сделает всё классно?Скажем, нормально отцентрирует, хотя бы.Или нужно самому мудрить с битмапом, смотреть на размеры картинки, исходя из этого выставлять настройки ImageView и т.д. и т.п.?
Аноны, есть веб сервис, который пока запускаю локально и приложение, которое его использует. На эмуляторе для тестов все просто, 10.0.2.2 - это локалхост машины, на которой запущен эмулятор, соответственно его в base_url для ретрофита и использую. А как можно получить внешний Ip или ip машины в своей wifi сети, используя который я мог инжектить его через buildConfig и тестировать приложение на своем телефоне? Пробовал вот этот метод, но не работает и как я понял это просто более надежный аналог поиска адреса локалхоста. http://jeremie-martinez.com/2015/05/05/inject-host-gradle/
>>1107626 Ты все таки определи почему не правильно отображает. Юзал несколько раз глайд на больших наборах картинок/фоток - все нормально и отоброжало и центировало, и перекодировало битмапы для превьюх. Большей йобы для изображений, на мой взгляд, уже не придумать.
>>1106413 C этим вроде разобрался Если кому нужно: settings -> editor -> code style -> xml -> android -> layout files -> insert line break after last attribute
Зато так и не разобрался как сделать чтобы xmlns=.... тоже переносилось на новую строку везде стоят галки insert line break before first attribute, но если делать реформат разметки все равно этот блядский аттрибут неймспейса на той же строке. Это баг или фича что?
>>1109204 >заказчик хочет ещё вот сранных либ добавить Рекламка? Нет, особо никаких проблем не замечал. Ну начиная с лолипопа. А что, прогвард тоже не вывозит? У меня так 50-60% вырезается.
>>1109231 Без proguard и не запустится же, слишком много методов Притом самого кода прилаги - около 10к, остальное гугл и суппорт либы, + плюс ебаные аналитик либы rx 6к методов, я худею
>>1109245 Хз, использую Observable с ретрофитом и Single в некоторых местах, но вообще приложуха однотипная и небольшая, наверное из-за этого. Сколько тебе вообще прогвард вырезает?
>>1109200 Билдил довольно крупный проект аналог Vimeo, первый запуск идет туговато, но потом в пределах пары минут, да и первый не особо далеко уходит. Но уснуть не успеваешь в общем. Макбук эир сейчас не является чем-то дорогим и крутым, он даже наоборот сейчас является выбором нищебродов, которые берут себе устройство не на один год.
Ведробоги, у меня при удалении определенного айтема запускается runnable в другом треде, который удаляет кучу данных из разных таблиц в бд. Если при этом юзер решит удалить другой айтем, пока не удалились данные из предыдущего и запуститься новый поток удаления уже других данных sqlite нормально это обработает или нужно городить очередь?
Вкатывание и доказательства, что ты что-то умеешь. В случае ведра - нужно ли показывать свой говнокод на гитхабе? Или сойдет работающий пример из гугломаркета, и, скажем, приглашение в приватный репозиторий на bitbucket'е, если захотят видеть код?
>>1109579 Я бы тоже хотел себе стационарный комп, но таскать его по съемным хатам не хочется. Да и вообще, мобильный разработчик, должен быть мобильным.
>>1109594 асло купил себе ноут, с i7 , по идее даже мощнее стационарника, но собирает даже медленней. Думаю вот взять макбук, чтобы ios подтянуть, так когда смотрю на их железо и цены - плакать хочется
>>1109586 Конечно хватит, меньше хабрапараши читай про звездочки и успешность на гитхабах. Такой инфантильныйуспешный челик скорее будет первым кандидатом на неоплачиваемые переработки и прочее говно в будущем, если его возьмут.
>>1109586 Если спросят то покажешь код, а так тебя должны по архитектуре спрашивать - типа как ты то делал, как другое. Код твой никому нахуй не нужен - все равно им прийдется дополнительные вопросы задавать, чтобы понять ты его писал или спиздил где-то. Разве что захотят просто на внешний вид посмотреть. Можешь перед собеседованием закинуть на гитхаб, а потом удалить чтобы не ебаться с доступом к битбакету.
сап, гайс. Вопрос к скорее более-менее опытным анонам - вы заметили, что в последнее время полгода так точно у заказчиков возникло прямо какое-то обострение на жесткие требования к проектам, такие как мвп + даггер + RXджава ? Если раньше про это мало кто говорил и это от себя уже рекомендовалось им, то сейчас все прямо поехали на том, что хотят в своих проектах такое видеть. Чем это вызвано? И заодно напишите в чем вообще прикол от юзания DI, по крайней мере в андроид разработке? Если например польза от мвп и rx явно заметна, то DI мало того, что добавляет путаницы и сложности к отладке, так еще читаемость кода сокращает, при этом не имея явных плюсов. Плюс только для самого разработчика, что можно просить повышения зп, ведь юзаю новую сложную технологию, лол что я и сделал успешно
П.С. Я сам активно тот же DI использую, не надо писать, чтоб я гуглил и т.д., все я в коде прекрасно делаю и все работает, я лишь спросил, нахера оно надо, если не имеет смысла
>>1109922 Что бы не ебаться с созданием объектов, и что бы изолировать реализацию, так и тестить удобнее. Вот сам подумай, тебе удобнее сделать: PresentersPersistanceSingletone.getInstance().getProfileScreenPresenter(RetrofitSingletone.getApiInstance(), GovnoDaoSingletone.getInstance()); Или: ((MyApp) getApplicationContext()).getComponentManager().getProfileComponent().profilePresenter()
так нормальный программист все равно писать не будет)
Ну хз, насчет создания объектов соглашусь, насчет изолирования реализации - читабельность лучше не станет. Надо тебе поменять что-то в модуле для сетевых запросов - тебе лезть хз куда надо. А если вдруг тебе надо два объекта одного класса - надо через аннотацию @named ебашить, которая тоже головной боли может добавить. А если вдруг после всего даггера в коде что-то не компилируется, то реально сложно отследить, что именно не так, так как тебе точная строка с ошибкой не покажется и тебе надо уже по всем компонентам и модулями лазить высматривать, где ты проебался
Есть активити с таблейаутом в котором три фрагмента. В это активити приходят события из сервиса через ивентбас, которые далее раскидываются по фрагментам через гугловскую вьюмодель и rxjava. Вопрос - как это протестить? Юнит тестами я тестирую вьюмодели, но как мне протестить полный маршрут ивентов от сервиса в активити и далее в нужный фрагмент? Тут походу только через инструментальные тесты, да? Роболектрики всякие не подойдут, да? Или же забить хуй на полный маршрут и тесть только отдельные часть?
>>1109952 >А если вдруг после всего даггера в коде что-то не компилируется, то реально сложно отследить, что именно не так, так как тебе точная строка с ошибкой не покажется и тебе надо уже по всем компонентам и модулями лазить высматривать, где ты проебался Ебать. Что за чушь я читаю? Даггер всегда явно говорит где ты соснул.
Анон, для того, чтобы добавлять, удалять, искать данные в бд, нужно для каждой задачи создавать каждый раз отдельный поток (т.е. ебошить кучу AsyncTask'ов) или можно поступить как-то иначе?
>>1110267 AsyncTask не создает каждый раз отдельный поток. В зависимости от версии они выполняются или на одном потоке последовательно или на пуле потоков. Для версий старше 4.0 это один поток. Можешь спокойно ебашить асинками. Так как на новых версиях все асинки по умолчанию выполняются последовательно то если операции долгие используешь втроеный пул потоков асинк таска - executeOnExecutor с партаметром THREAD_POOL_EXECUTOR. Или наварачиваешь свой пул.
> Хочу вкатиться в разработку под Android! С чего начать?
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно установить Android Studio, открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> Мануалы?
- Официальная документация: http://developer.android.com/
- Полезный гайд для начинающих и продвинутых: http://guides.thecodepath.com/android
- Бесплатный видеокурс от Google для новичков: https://www.udacity.com/course/android-development-for-beginners--ud837
- Два ресурса, единственный плюс которых — русский язык: http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?": http://stackoverflow.com/
> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. С 17 мая поддерживается официально.
> Есть что-то кроме нативных приложений на Java/Kotlin?
- Qt — кросс-платформенный фреймворк на C++. Используется в основном для игры и для приложений с высокими требованиями к производительности (обработка изображений, звука, ГИС-системы). Спрашивать в C++ треде.
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия. Спрашивать в C#-треде.
- PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.
> Хочу писать игры!
LibGDX или Unity. Спрашивать в /gd/.
> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. И хотя бы оно готовое приложение.
Предыдущий тред: https://arhivach.org/thread/293352/