> Хочу вкатиться в разработку под 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. И хотя бы одно готовое приложение.
Когда я пытаюсь добавить следующую часть элементов из БД в recyclerView я схватываю ConcurrentModificationException. Добавляю, как анон и пояснил на пике. Я пробовал итератор добавить в таком случае, но все равно ломается.
>>1127629 У меня до этих методов была реализация пика1. Здесь при скролле у меня просто элементы новые заменяли старые.
Потом я добавил пик2. И написал пик 3. Самое интересное то, что, если я после public void add(BRealm r) { напишу listAdapter.clear() То при первом скролле у меня отобразится 10 элемент (Изначально мы видим 5) А потом скролл не работает.
>>1127625 >mItems — это что? Массив? Обычный лист в адаптере.
>Вставляй все сразу и делай только один вызов notifyItemRangeInserted Пытался, все равно не хочет работать, только через clear() как выше.
>>1127635 ConcurrentModificationException возникает из-за реалма, так что ищи где у тебя несколько модификаций происходит, возможно ты пытаешься одни и те же инстансы юзать в разных потоках, не закрывая их при этом, а так, без всех сурсов тебе вряд ли кто-то поможет
>>1127771 Cпасибо большое, в очередной раз убеждаюсь, что нужно больше ебаться с документацией. Поигрался в этом направлении, заработало, в итоге у меня page_size стояло на 5, поставил на 50 - скролл нормально пошел.
С костылями и абы как я смог реализовать, к примеру, простенькое клиент-серверное приложение. Мы можем там бегать и читать новости. А вот теперь я хочу запилить так, чтобы при долгом нажатии элемент занести в заметку. В каком направлении мне копать? Это SharedPreference?
>>1127963 >Студия уже сама умеет без всяких ретролямбд. А вот некоторые проекты живут. И вообще, меня напрягают проблемы с компиляцией. Качаю репу чтобы детальней разобраться с кодом, а она блять не компилиться, ничего не помогает блять.
Хочу разобраться с firebase в андроиде. Довольно мало туториалов нашел по их бд. Интернет медленный поэтому читать документацию по базам данных firebase в андроиде - ад. Можете привести пример простой программы которая выводит в textView данные бд?
Ну в худшем случае предложите ресурс где я могу почитать про firebase(не документацию)
>>1128041 в SharedPreference лучше хранить простые данные типа ключ-значение, если тебе надо хранить какие-то более сложные данные, то лучше использовать базу данных >>1128235 firebase для лохов, realm для богов
>>1128292 >Realm для даунов-неосиляторов. Ну да, тогда и асинтаски лучше использовать, потому что рх для даунов-неосиляторов. Хули нам, костыльным пацанам, да?!
>>1128298 >>1128252 Блятьб, а firebase то здесь юзает кто-то? Реалм-кун может ответить на реквест простым примером только на реалмеЮ буду столько же благодарен
>>1128849 >кококо Человек шарит и посты пишет, а что ты делаешь? Вот оттуда подсосники и берутся. Я лично нейтрально к нему отношусь, но его посты действительно мне помогли в некоторых аспектах.
>>1129071 Посморел про room на хабре, получается, что он тоже использует sql запросы? > // Получение всех Person из бд с условием @Query("SELECT * FROM person WHERE favoriteColor LIKE :color")
>>1127618 (OP) Почему она проглатывает слова? И где вообще сабы? Из речи вроде слышно, что она говорит: Данные андройда в твоем кармане, или ты просто хочешь их видеть?
>>1129075 Рум неочень: 1) Запросы хуяришь руками на SQL 2) Всё, кроме селектов, не способно выдавать Rx 3) Выборка данных из Many to many - руками, из One to many - костыль через отдельную сущность 4) Слушатели на апдейты таблиц устанавливает сам рум, из таблиц в запросе. 5) Ебанутое тестирование, где тебе надо дао для тестов пилить
Лучше юзайте Storio, там всё это давно пофикшено, либо пилится в резолверах руками
>>1128849 потому что ВНЕЗАПНО именно он автор библиотеки ретрофит, которую теперь практически каждый андроид-разраб юзает в своих проектах, которая стала стандартом в разработке к-с приложений. Также он автор пикассо и баттернайфа, которые очень часто используются. Найди другого человека, который сделал настолько большой вклад в андроид разработку. Добавляем его общительность, помощь при решении каких-то проблем (с тем же ретрофитом хотя бы), кучу туторириалов и вот тебе ответ на вопрос
>>1129150 С румом еще не работал но. >2) Всё, кроме селектов, не способно выдавать Rx Делаешь селект и слушаешь изменения. В чем твоя проблема? Тебе сложно оборачивать инсерты в комплитаблы если оно само этого не делает? >3) Выборка данных из Many to many - руками, из One to many - костыль через отдельную сущность SQLite то еще говно, и подобных проблем походу во всех орм хватает. >4) Слушатели на апдейты таблиц устанавливает сам рум, из таблиц в запросе. А что в этом плохого? >1) Запросы хуяришь руками на SQL Ого, как с этим жить да?
Ударился об датабиндинг и текствью в ресайкле. Перфоманс днище, если в тексте 10к символов. Что посоветуете? Переносить разметку из XML и юзать статик лэйаут, или есть еще другие варианты?
>>1129216 Я думаю оно и без датабиндинга будетк ак говно работать. Советую поменять немного ux. И отображать текст не полностью, но дать возможность открывать итемы.
>>1129219 Там бабблы с сообщениями, все сложнее. Скрывать — такое. А проблема именно в ТВ. Вот я и думаю, есть ли варианты, чтобы не переписывать целую кучу кода.
Как сделать так, чтобы если длина текста больше, чем длинна TextView, вьюха не увеличивалась в высоту, а текст в ней прокручивался, как в бегущей строке?
>>1129118 она говорит: Это телефон андроид в твоем кармане или это ты так рад меня видеть? (типо намекает, что телефон выпирает как эрегированный хуй) мимо переводчик
>>1129213 >Делаешь селект и слушаешь изменения. В чем твоя проблема? Тебе сложно оборачивать инсерты в комплитаблы если оно само этого не делает? Да ни в чём, просто нелепая полуподдержка Rx
>SQLite то еще говно, и подобных проблем походу во всех орм хватает. >А что в этом плохого? >Ого, как с этим жить да? Да в общем-то, ничего смертельного в этом нет. Просто как орм рум - недоделок. Storio вообще не орм, а надстройка над голым апи sqlite. Но там для этой еботени специально сделаны резолверы, дефолтные запросы зауярены билдерами. Объём кода при этом получается примерно такой-же.
казалось бы, прошло 2 месяца с последнего релиза support lib-ы, можно и обновиться. Ох какой же я еблан. Отхватить креш у каждого пятого пользователя, из-за ебаного гугла и их говно либы. какие же уебаны там в гугле сидят, ох как пичот!
Чет джава-тред совсем тухлый, спрошу здесь. Андроид ведь принципиально не отличается от обычного джава-программирования, так что запилить рогалик на ней - норм идея? Или я не прав и принципиальные отличия есть?
>>1129653 сам синтаксис конечно такой же. Классы же абсолютно другие, так как берутся из андроид сдк. Поэтому смотри сам. А вообще в 2к18 юзать джаву на андроиде малость зашкварно и отстало, так как есть котлин
Имеется фрагмент, к которому прикручен синглтон (видеоплеер), нужно сохранять его состояние при смене конфига. До этого у меня было в манифесте прописано keyboardHidden|orientation, то бишь жизненный цикл активити и фрагмента оставался неизменным. Для меня остается непонятным, как сохранить этот синглтон. В гугле говорят в основном про сохранение примитивов. Какие есть варианты?
Посоны, поясните за копирование файлов. Вроде как в джаве 1.7 уже давно есть Files.copy, а в андроиде это только с Орео поддерживается что за хуйня. Может, есть какие-нибудь хитрые способы, или по старинке, через инпут/аутпут стримы пилить? Мимо начинающий
>>1129118 Она вовсе не проглатывает слова. По крайней мере на этом видео произнесла все слова вполне чётко. Ты просто плохо понимаешь язык на слух. И не надо говорить про акцент и тп, у неё стандартный американский.
Обмазывал ли кто из присутствующих свои приложения несвежей рекламой от AdMob? Обмазываю впервые, все по гайду, при отладке баннеры активны, после установки на все свои устройства три телебона на ведре баннеры так же крутят свою рекламу фейсбука и капусты лол. Скинул апк друзьям, у них реклама не появляется. В чем дело - не понимаю. Возможно, без размещения в сторе реклама не хочет генериться, но врятли.
Аноны, объясните, в чем кайф бандла? Почему при создавании экземпляра того же, скажем, алертдиалога, не передавать туда ссылки на какие-нибудь нестатичные вьюхи, с которыми будем взаимодействовать из диалога, тупо с помощью сеттера?
Пытаюсь запилить урок по гайдам с ютьюба, но всё заканчивается на синхронизации зависимостей. Пирилейтед. Гуглил, получал миллион решений, но никакое не помогло.
>>1132896 Ты читать умеешь на другом языке? Мне кажется, у тебя где-то там 27 recycler view стоит, кароче, ты юзаешь 26 суппорт, а ему нужно 27. Но это не точно.
>>1133297 Ты имеешь ввиду те что качаются в .gradle ? То есть я могу дома скачать эти файлы через android studio, потом скопировать папку .gradle на рабочий ПК и все будет работать?
>>1133360 В настройках студии можно выбирать папку, где у тебя лежит сдк. Соответственно также можно делать и с импортом сторонних библиотек, которые прописаны в градл.билд файле.
>>1133296 че ты за хуйню несешь, поехавший? сейчас для всех библиотек надо имплементейшн юзать, начиная с последней гредл версии, не забывая при этом среди репозиториев указать google()
Есть ли возможность написать юнит-тест для статического метода, возвращающего строку, в котором используется контекстхолдер для получения строк из ресурсов? Или забить хер на него и написать инструментальный тест для всего фрагмента сразу?
>>1134115 Отвыкай. Андройд настолько быстро шагает, что людям впадлу писать. Напишут, а уже будет неактуально. Но книги все же есть, лично меня они не устроили, если по хед фесту я смог джаву понять, то андройд книга полное дерьмо. В главе с фрагментами они очень сильно путают людей и особо не поясняют за network и мало мальски затрагивают SQ Lite. Хотя, некоторые могут порекомендовать и Murphy - Android, да вот лежит у меня, но я ней не пользовался ни разу.
Получше будет смотреть курсы от Udacity, там их как раз 6 или 7, на месяц хватит. С 0 до клиент-серверного дойдешь, а дальше можно уже свое приложение тестовое делать с попутным гуглением требуемых вещей.
>>1134115 Да, предыдущий анон все правильно расписал про то, что книги слишком быстро устаревают. Можно попробовать книгу по подписке почитать. Там море всего: https://commonsware.com
>>1134136 Если уже имеется написанная клиент серверка(получаю данные с сервера, отображаю в ресайклере, перехожу по фрагментам, имеется поиск по приложению), то стоит ли пробовать работу искать? Или еще все вышеописанное на дагер перевести?
>>1134144 Смотри пикрлейт. Пробуй и дагер, больше узнаешь - будет заебись. А вообще, в этом я не советчик, т.к. я клиент-серверное сам пока делаю, дальше ничего сказать не могу.
>>1134144 А зачем тебе тогда книги? Дальше можешь просто знакомиться с технологиями: тонны конференций на ютубе, куча различных архитектур, даже язык новый тебе запилили - это всё знать хотя бы поверхностно надо, чтобы потом когда прихватит было проще окунуться в это дерьмо с головой.
>>1134364 >Cколько лет будут продолжаться тупые вопросы? Алсо, учи дарт, хули. Или хамарин. Вон там прям разбирают людей, ух. Даже в питере 400 вакансий андройда и 13 по хамарину. Видишь! ХАМАРИН вырывается в топ!. Иди нахуй.
>>1134364 очевидно, что столько же, сколько будет жива ОС Андроид. Ты видишь, чтоб она загибалась? И я не вижу. Самый большой процент на рынке у нее. Так что лет 5-10 - это самый минимум. Другой вопрос в том, что разработка на джаве будет загибаться с каждым годом все больше и больше, и будет идти переход на котлин. Но это уже другая история
>>1134832 нахуй ты вообще приплел одно к другому? Гугл сделали котлин своим оффициальным языком для разработки андроид приложений. Сделали , чтоб не было судебной тягомотины с ораклом, которая длится годами. Окей, это все что достаточно знать. Все остальное лично меня вообще не ебет, срал я на это. Я уже использую котлин во всю и мне похуй на джаву, лол.
>>1134863 Видимо, этот малолетний даун понимает выражение "умрёт java" буквально, будто она вот возьмёт, и удалится нахуй с его компа прямо из папочки с доткой. И в JetBrains сразу же возьмут, и убьют котлин нахуй таким же способом. И они даже не подумают продолжать писать язык для последней вышедшей версии JVM.
>>1134968 двачую. Искренне заебали долбаебы, воспринимающие котлин, как какую-то новую версию джавы, не понимающие, что это - два независимых языка и что даже если умрет джава, то котлин дальше продолжит развиваться, пусть и на базе последней стабильной версии jvm.
>>1134917 > чтоб не было судебной тягомотины с ораклом, которая длится годами Для этого они перешли на опенждк. Системные компоненты все равно будет писаться на чистой джаве, а не котлине, иначе рантаим по пизде пойдет, когда у тебя в системе одна версия котлиновской стдлиб, а ты тащишь свою. После чего класслоадер тебе успешно подсовывает системную версию.
Сколько ПРИМЕРНО может стоить разработка приложения, которое опрашивает API нескольких сайтов, загружает оттуда данные (там будут тексты, картинки, видео и звуки), парсит их и показывает пользователю в читабельном виде. Будет экранов 10-15, меню, все дела. Дизайн стандартный без особых изысков.
Вот сколько: 5 тысяч? 10, 15?
А то жадные пидоры из руководства совсем охуели и считают, что тыжпрограммист должен и картриджи менять, и шиндошс переустанавливать, и мобильные приложения писать на зарплате в 20к.
>>1135649 >Вот сколько: 5 тысяч? 10, 15? Это тебе не картриджы менять.
>которое опрашивает API нескольких сайтов, загружает оттуда данные (там будут тексты, картинки, видео и звуки), парсит их и показывает пользователю в читабельном виде. Будет экранов 10-15, меню, все дела. Ну, если в подробности не лезть, то думаю здесь около 100-200 часов работы. Может и меньше. Я бы дал тысяч 100 за такое.
>>1135649 1) Версии API. Количество ебли зависит от них. Двачбраузер раньше работал с 1.6 но это кромешный пиздец хотя может уже послали олдфагов нахуй 2) Что планируешь делать с видео? 3) Кто занимается дизайном, тестированием? ТЗ будет? Стоимость зависит от этого. Соглашусь с предыдущим, будет около сотки, возможно выше. За 20к не стоит пилить вообще ничего - читай лаборюнион и не будь штрейкбрейхером. Одно дело намакакать ведроид-приложение, другое - его поддерживать и фиксить баги с лайфсайклами/версиями апи.
>>1135695 > 1) Версии API. API у нашего сайта это самодельное говно на PHP.
> 2) Что планируешь делать с видео? Воспроизводить его в YouTube player for Android
>3) Кто занимается дизайном, тестированием? Я, я.
>ТЗ Нет
Короче суть в том, чтобы пользователь получил всю информацию и новости от нашей говноконторы в одном месте, а не лазил по сайтам и ютьюбам с мобильного браузера.
>>1135712 >суть в том, чтобы пользователь получил всю информацию и новости от нашей говноконторы в одном месте, а не лазил по сайтам и ютьюбам с мобильного браузера. Орнул чет. Как-будто люди будут пользоваться этим.
Зачем в инфлейтере вьюхолдера прописывать viewGroup в паренте вместо null? Вообще, я хочу, чтобы у меня на экране была этакая матрица картинок с четырьмя колонками, и создал gridView с атрибутом numColumns = 4. Затем я хочу, чтобы длина ImageView вьюхолдера автоматически подгонялась под размер элемента в гриде. Я получаю длину экрана в MainActivity и передаю в конструкторе адаптера, а потом ставлю эту длину/4 ImageView в getView. Это вроде как работает, но мне кажется, это костыльно. Можно как-нибудь получить размер элемента GridView из самого адаптера?
Камрады, объясните мне, как так получилось, что современные приложения, вроде телеграма, вацапа, вайбера и т.д, жрут по 50-100 и больше метров? И набирают свой жир не за годы задротского общения, а почти мгновенно. Что может столько весить? Явно не километры java-кода и xml. Неимоверных размеров drawable? База? Тяжеленные библиотеки? При том, что на карте памяти я находил папки кеша метров по 10 примерно - это не он столько жрет Я привык к приложениям, занимающим от 5 до, максимум, 30 метров, и очень охереваю, когда какой-нибудь TripAdvisor жрет 585 метров! Сука, на что???
>>1130303 Подключил дагер к проекту. Написал модуль видеоплеера, создал компонент. Пометил все что нужно аннотацией @Singleton. Заинжектил компоненты во фрагменте, там же в методе onCreateView инициализирую компонент. Плеер работает, при повороте экрана все проебывается, т.к. проходят жизненные циклы, плеер повторно инициализируется, на фоне остался звук от другого экземпляра плеера, если не вызвать метод его разрушающий. Но мне то интересно сохранить состояние при повороте экрана. Если ориентация == ландскейп, то фуллскрин видео (создаю макеты для портрета и альбомной ориентации). О чем я говорю, так это как не проебывать состояние при жизненном цикле активити/фрагмента?
Создаю андроид плагин для unity3d. Дошел до последнего шага - создание BroadcastReceiver. Код этого ресивера есть, но где его создавать, в какой папке проекта?
>>1136314 Открой каким-нибудь апкутлом и узнаешь (правда только что в апкашке, с рутом узнаешь все остальное). Во-первых хранится сам файл апк, то есть байткод, ресурсы и нативный код (худший сценарий - нативный код для несколкьих архитектур, и ресурсы для кучи конфигураций, по хорошему это надо вырезать). Во-вторых на последних осях эта байда не просто распаковывается, а еще и оптимизируется под конкретный девайс, то есть у тебя еще и нативный код совсем не маленький будет место занимать.
Читаю: "Аннотация @Scope говорит Dagger 2 создавать только единственный экземпляр, даже если DaggerComponent.build() вызывается многократно. Это заставляет зависимость работать как singleton. Для настройки требуемой области (Scope) необходимо создать собственную аннотацию." Ок, все понятно, создаю как описано по тексту аннотацию и прочее, но в ходе работы, точнее при повороте экрана получаю новый экземпляр объекта. Где меня обманули? Может я себя обманываю?
>>1136734 Когда ты создаёшь новый scope, ты просто создаёшь новый scope. Dagger не знает, когда его нужно уничтожать и пересоздать. Это должен ты сам делать
>>1137024 ты меня не понял, нужно допустим приложение, я его запустил, оно начало в фоновом режиме работать, я потом пошел в хром картинки смотреть, и при попытке загрузки картинки мне алерт прилтал какой-нибудь и ссылка на эту пикчу сохранялась, как реализовать слежение?
Мне нужно написать андроид апп, джаву уже малехо знаю. Есть некоторые вопросы, хочу их уточнить.
1. Как организовать архитектуру приложения? Вот читаю что MVP это хорошая практика, погуглил про MVP - а там везде в статье пишут одно, а в репо примере создают какие-то левые непонятные пакеты. Поясните плиз как называть пакеты, разбивать по фичам или по назначению(вьюха, моделька и тд)?
2. Какая лучшая практика для создания рест клиента на андроиде? Подскажите в сторону чего копать.
3. Если я подниму сервак на локалхосте,то мой андроид клиент сможет отправлять на него запросы(если запустить в эмуляторе). Или лучше сервак залить куда-то на хироку? Или есть другие способы тестить связь сервера и клиента если клиент - ведро?
>>1137697 >2. Какая лучшая практика для создания рест клиента на андроиде? ретрофит.
> 1. Как организовать архитектуру приложения? Вот читаю что MVP это хорошая практика, погуглил про MVP - а там везде в статье пишут одно, а в репо примере создают какие-то левые непонятные пакеты. Поясните плиз как называть пакеты, разбивать по фичам или по назначению(вьюха, моделька и тд)? Если не имел дело до этого с клиент серверкой, то я бы рекомендовал не беспокоится по этому поводу. Практика этих тредов показала, что каждый маня-анон эту МПВ понимает по своему. И на первых порах лучше сосредоточится на серьезных вещах.
>>1137747 Погоди погоди, может дебильный вопрос но все же - если я поднимаю локалхост скажем на ноуте, что подключен к сети по wifi, то я могу отправить запрос с другого устройства, что подключено к этому же роутеру? >>1137749 До этого писал только на JEE, где MVC(только серверную часть). Но в примерах MVP на андроиде почти ничего не понял. Посмотрю еще немного, но не буду заморачиваться с этим на первых порах.
>>1137760 >Чтобы парсить картинки разного размера и подгонять под заданные рамки же А разве они автоматически не подгоняются? Например юзнул centerCrop в Glide?
>>1130303 Короче, блет, запутался с этой хуйней. Все удалил и вернулся к разбитому корыту. Все таки тут нужен другой подход. Итак, есть фрагмент с кнопкой и exoplayer-ом. В портретной ориентации будет пол экрана видео, под видео информация и кнопки, при повороте будем растягивать на весь экран. Как на ютубе например. Что я пробовал. Создавал обычный синглтон плеера и передавал туда из фрагмента ссылку на видео. Получал при повороте экрана пересоздание этого синглтона и на фоне оставался звук от старого экземпляра. Такая же хуйня была с даггером который сука меня запутал и теперь я хочу убить себя. Так вот, как правильно сделать этот ебаный плеер, чтоб при пересоздании он никуда не проебывался, да и собственно у меня тогда не только плеер тогда будет повторно все делать и запрос на сервер тоже будет повторятся. Кароче заебало блять, пойду спать.
>>1137789 Да. Хоть разработки здесь не будет пока что, но они очень хорошо поясняют за layout и разметку относительно экрана. Только с помощью них я это все дело понял. К слову, сами курсы делятся на платные и бесплатные. Я фришки проходил, но анон говорит, что, предоставив карту для покупки платных - они снимут деньги через неделю. Можно за неделю там накачать платного курса, но я не проверял. Может кто решится. А отличаются они информативностью всего лишь. Мне и фришного хватило.
>>1137803 Там месяц стоит 200 баксов, то бишь 12000 рублей, пиздец, раздражает эта атмосфера толерастии, но что поделаешь, таков современный мир. Если б этот курс снимался в 3м Рейхе, вместо китайской девочки и индуса сидели бы прилизанный фриц и арийская девушка из гитлерюгенда...
>>1137808 >Если б этот курс снимался в 3м Рейхе, вместо китайской девочки и индуса сидели бы прилизанный фриц и арийская девушка из гитлерюгенда... Тогда этот курс был бы ограничен к просмотру недочеловекам вроде тебя.
>>1137808 >Там месяц стоит 200 баксов, то бишь 12000 рублей, пиздец, >раздражает эта атмосфера толерастии, но что поделаешь, таков современный мир. Скажи спасибо, что у них бесплатные годные. 2 года людей по ним учат и ниче. Растут.
Сосаны, сорян, что встреваю в ваш учёный диалог, но скажите, какое минимум нужно железо чтобы этот ебаный андроид студио не вешал всю систему? Что прокачивать? SSD? Раму? Может есть какие-то альтернативы педроид студии? Как-то раз получалось завести хеллоуворлд под бобами, но, говорят, студио более стронг.
>>1138225 Тащемта есть. В любом случае, если сперва ты создал имутабельную битмап, то потом ты её уже не сделаешь мутабельной: только создав новую мутабельную.
>>1138104 Выше все ебанутые ответы. Говорю по своему опыту, год назад имел пеку 2009 и студия очень сильно лагала. В общем, нужно определиться, что у тебя за комп. В идеале можешь купить i3 с какой-нибудь мат платой + видяшка, за 3-4 тысячи или поменьше. SSD не нужен, ибо он предназначен для других дел. HDD простой на 500ГБ. Ну и остальное. За все это добро можно максимум 22к отдать - чисто для работы. В идеале лучше ай5 покупать, или вообще ай7. В итоге у меня отлично работает, даже дженимоушеном не пользуюсь, и так прогружается нормально. Билдит китайскую похабщину за минуту две без оптимизации.
>Может есть какие-то альтернативы педроид студии? Сейчас все на ней сидят. Даже аноны-клоуны.
>>1138386 бич не в плане денег, а в плане умственных способностей. Потому что адекватный человек уже в 2018-то году техникой эппла точно не будет пользоваться - все скатилось к хуям собачим
Как сделать контекстное меню списка определённым цветом? Делаю <item name="android:itemBackground">?android:attr/colorPrimary</item> и пункты красятся, но всё равно остаются две тёмно-серые полосы сверху и снизу.
>>1138934 >Как сделать контекстное меню списка определённым цветом? Делаю <item name="android:itemBackground">?android:attr/colorPrimary</item> и пункты красятся, но всё равно остаются две тёмно-серые полосы сверху и снизу. Анон помоги, как сделать так, чтобы мои буковки ВОН ТАМ ВОТ, НА СКРИНШОТЕ, Я ПРИЛЕПИЛ ЕГО, ВОН ТАМ, СВЕРХУ, не слетали?
Попробовал применить Architecture Component, конкретно Lifecycler. Хотел значит сохранить состояние видеоплеера при смене конфига, и сука, нахуя мне было это делать, если там тупо дублируется жизненный цикл в моем коде где описана работа и инициализация плеера? Я блять таким же методом мог бы ебануть и в активити эти методы и нихуя бы не изменилось. Меньше кода во вьюхе, ну его нахуй блять, я всего лишь хочу чтоб при повороте экрана у меня видео не воспроизводилось с самого начала блять пиздец. Скажите пожалуйста, что мне конкретно изучить, чтобы наконец-таки придти к желаемому результату? Я уже устал все эти вариант с хабра читать, прочитаю пару статей, пытаюсь что-нибудь сделать, а в реальности все наоборот. Будто они в другой реальности живут эти авторы. Еще ни разу ничего не сработало с этих ваших хабровхабров, только вводят меня в путаницу. Я только хочу сохранить состояние своего плеера. Пойду спать.
Наговнокодил приложение, хочу выложить его в маркет. Вопрос: файл называется app-release.apk. Заливать его так или нужно переименовать в нечто уникальное? Видел, как некоторые заморачиваются с названиями типа com.govno.mocha1488
Помогите ньюфагу Кароче, загорелся желанием сделать простенькое приложение на ведроид для учета статистики своих ставок. Если быть точным, то просто хочу взять готовую таблицу эксель и сделать ее как приложение, ибо юзать сам эксель очень муторно. Таблица простая, около 5 колонок и подсчёт итоговой суммы. Но главная проблема в том, что я вообще нихуя не шарю в программировании. Поэтому спрашиваю, что мне надо знать для реализации моей идеи?
>>1141112 А какие операции должны быть у таблицы? Если ты хочель туда добавить поддержку экселевых формул, то ты охуеешь ебаться с лексером, парсером и БНФ.
Аноны, помогите, уже весь гугл+гитхаб+стек обдрочил, никак не могу понять, в чем проблема. У меня есть релмАдаптер, который не хочет обновлять сам ресайклер. Т.е., если я меняю датасет и тыкаю на айтем с индексом, большим размера датасета, мне вылетает ArrayIndexOutOfBounds. Как я понял, адаптер успешно парсит новый датасет, но на экране ничего не обновляет. Как это фиксить?
>>1141608 бля, ты понимаешь что если ты сам имея ВСЮ ИНФОРМАЦИЮ на руках не можешь загуглить ответ, то почему ты ожидаешь от нас услышать ответ давая так мало инфы? пиздец, да там блять всё что угодно может быть, либо весь код давай либо расписывай вообще всё что там происходит прям максимально детально а вообще, если ты тот хуй что пилит приложения с вебмками то просто иди нахуй. заебал уже
>>1141630 Я ж кинул пастебин, или той информации недостаточно?
И да, я тот самый хуй с вебмками. Объясни, почему я тебя заебал? Если потому, что спрашиваю глупые вопросы, то извини, я только начинаю во всем этом разбираться и мне нужна твоя, анон, помощь. Я и так не лезу на сосач с проблемами, которые я гуглил меньше дня, но если тебя даже такая частота заебывает - буду писать еще реже. Энивей, скажи, какую информацию тебе ещё предоставить, и я тебе ее скину кроме фоток с супом.
>>1141641 ты уже пол года тут торчишь и спрашиваешь, мог уже давно залить свою парашу на гитхаб и расшарить его, это было бы полезно не только тебе, но и другим анонам в треде. кто-то мб будет ревьюить, вкатывальщики будут использовать как пример и так далее, а ты всё пастебин свой шлешь. боишься диванона - сделай новый акк и туда залей
>>1141763 Хмм Мб тут два таких анона с вебмками, или у тебя детектор сломался? Я здесь появился в конце января только. А насчет гитхаба - он у меня есть, диванона не боюсь, но расшарю, как только проект бует представлять из себя хоть что-нибудь более-менее нормальное. Я помню, как вручную писал уебанский аналог gridView, и только потом нагуглил grid и ещё чуть позже - recycler. Не думаю, что вкатывающимся анонам было бы полезно видеть мою наркоманию. Честно, я блеванул, когда увидел свои первые коммиты.
>>1141779 ну значит ты не один тут такой с вебмками. но если хочешь чтобы тебе помогли, то придется расшарить, иначе тебе придется ждать анона который возможно сталкивался с чем-то подобным или анона-телепата, который сможет без всего кода разобраться
>>1141813 Да я уже вроде как разобрался, перепилил немного логику и архитектуру, и оно заработало. Теперь ебусь с many-to-many связью в релме, никак не могу найти нормального мануала в гугле - там про свифт и objective-c. Нашёл только видео на caster.io, но оно платное
Хочу попробовать написать бота для автовзятия заказов или типо того в яндекс такси либо максим, или как там эта параша называется, с чего начать, с дрочева api этих хуевин? Нужно ли задрачивать джаву, т.к. эта хуйня под андроид нужна? На реактнейтив можно ли написать бота под эту хуйню? Просто джаву совсем плохо помню, больше жс-параша знакома(
>>1141608 Есть множество примеров на гитхабе, где обновляется ресуклер, когда скроллишь вниз. А вообще реилмовский адаптер с OrderedRealmCollection чот я не видел, чтобы люди юзали. Да и сам не юзаю его, хотя свой скроллинг со спиннером так и не решил.
>>1127618 (OP) Посоны, я руби-джун, у меня появилась идейка простенького, но полезного андроид приложения, кода минимум и он простой. Но я ВООБЩЕ не знаю джаву и андроид. За пару недель написать простенькое приложение реально?
>>1141880 >За пару недель написать простенькое приложение реально? Ну, не знаю. Смотря что за простенькое. За неделю можешь уложиться по 7 часов. И вообще, это выглядит как >Посоны, я сантехник-джун, у меня появилась идейка простенького, но полезного сайта, кода минимум и он простой. Но я ВООБЩЕ не знаю хтмл, ксс, жс, пхп, и программирование. За пару недель написать простенькое приложение реально?
При нажатии на элемент в recyclerview нужно выводить новую активность с картинками. Локально хранить картинки наверное не выгодно, ведь занимают места они довольно много, так что я решил что их нужно загружать с интернета. Но встал неожиданный вопрос: Где их хранить в интернете?Сервер? Есть ли сервисы для подобных нужд?
Боже, почему так сложно найти репозиторий, где написано, как по нажатию из одного ресуклер вью 1 фрагмента, показать инфу на другом ресуклер вью второго фрагмента.
Просто пиздец. Думал, щас законнекчу БД и все летать будет. Ага, проходит около 5 секунд, чтобы закачать картинки и отобразить текст. Нихрена себе, оптимизейшен.
Очередной дегенерат итт. В джаве не силен, только начал изучать, мотивированный разработкой под ведро. Встал перед вопросом реализации рандома. Вот есть у меня кнопка, по нажатию проигрывается звук. А если у меня штук десять звуков и нужно рандомно их проигрывать при нажатии на кнопку? Нужен массив. Больше ничего не знаю, ну как реализовать - тем более. https://ideone.com/md01jA онончеки, кому не лень, скажите, что нужно добавить, чтобы проигрывать кроме reee другие звуки :3
>>1142386 Там будет действительно много картинок, я не хочу что бы они загружались вместе с приложением я же писал, все это будет весить достаточно много
>>1142499 Если задаёшься таким вопросом, то загрузи в вк > вставь в приложение ссылки. Когда-нибудь потом, когда будешь зарабатывать миллионы на своём детище, придумаешь что-нибудь другое.
Анонче, ай нид хелп. Написал программу, но будучи рукохуем, сделал что-то страшное, а именно - не могу отладить это говно на эмуляторе с ведром ниже 7. Запускаю программу, всё збс, но как только устройство засыпает, то оно больше не просыпается и ни на что не реагирует. В логах только >E/libsuspend: Error writing to /sys/power/state: Device or resource busy
Куда копать и кто виноват? Я рукожопый или эмулятор?
>>1142761 очень годная инфа, я бы даже сказал. Лично я сам начинал свой путь в андроид-девелопмент именно с нее. Все знакомые андроидовщики аналогично. Там автор очень легко и хорошо все описывает с примерами и все бесплатно
boot receiver не работает, перепробовал уже все что смог нагуглить: синтаксис проверил, пермишены проверил, пробовал разные экшоны, типа REBOOT, POWERON etc, разные флажки, мошнил с ресивером, попробовал солюшен с 3.1+ андроидом (запустить апку первый раз вручную), все тщетно, логи не выводятся, в onReceive не заходит, где копать?
Алсо, на одном девайсе работает, лол, на остальных нет. (Девайсы все одинаковые, модель, версия андроида и т.д.)
Как поднять апп в поиске Google play. На первых местах по ключевым словам какие-то уебанские приложения, а мой супер апп в жопе. В описание и название ключевых слов напихал, чито еще делать?
>>1143400 Там индексация разная, по ключевым словам если не ошибаюсь, их должно быть не больше 10, т.к. в ином случае будет в минус идти, алсо, еще учитываются скачивания, рейтинг и т.д., так что нельзя вот так просто сразу вверху уйти
Насколько высока вероятность получить атятя, если я буду нагло пиздить/парсить картинки из гуглопоиска, в приложении на андроид с неплохой базой пользователей? И какие это могут быть атятя?
Короче есть прототип одного приложения, суть заключается в том что пользователь создает чат и все в радиусе N километров могут в нем писать. При этом можно смотреть расположение создателя чата на карте(то есть навигация между чатами происходит с помощью карты). За сколько по времени возможно написать такую прогу андроид джуну и сколько это будет стоить?
>>1143806 Помню такое же говно хотел написать, но там с беком ебаться надо, да и не захочет никто, чтобы его на карте палили >>1143489 Забанят акк гугл плей
Анончики, подскажите, а реально ли написать чатик со всеми стандартными функциями (кол-во людей в чате, непосредственно диалог между текущим юзером и другим, передача файлов ну или хотя бы картинок) чисто средствами фаербейза? То есть без своего сервера полностью
>>1143966 >Забанят акк гугл плей На основании чего? Нарушение какого-то пункта каких-то правил? Если результат берет все равно что сам пользователь из браузера, никаких 100500 запросов в секунду.
>>1144072 Дорого в обслуживании, чат это дохуя конекшенов и триггеров, даже если не сейвить переписки(а это какой-нибудь 1967) Я как-то считал что для хуевой апки обслуживание чата на фаербейзе для одного клиента обходится в 10-15 бачей/месяц
почему на Udasity в продолжительности некоторых курсов написано, что они длятся 6 недель, а если зайти на них, то там насчитыватся продолжительность чисто по урокам 5-6 часов?\
6 недель рассчитываются как среднее значение для всех пользователей как разность между датой начала курса и его окончания? Тогда как часто они обновляют эту цифру?
>>1145575 >недель рассчитываются как среднее значение для всех пользователей как разность между датой начала курса и его окончания? >Тогда как часто они обновляют эту цифру? Что за тупые вопросы? Тебе дали божественный материал - сиди и дрочи.
Сап, анончики, можете помочь выпилить автопрописные в сониклаве? Или хотя бы подсказать, какаие строчки в каком разделе отвечают за повышение регистра после точки и в начале абзаца? На xda ничего нет, а 4пидора молчат, для них это слишком сложна.
>>1145739 Ну вот смотри, есть xperia keyboard, в ней по дефолту стоит фича автопрописные/автозаглавные/autocab. То есть после каждой точки или просто в начале сообщения в мессенджере она ставит заглавную букву, и отключить это нельзя. Понятно, что она детектит среду и повышает регистр. Так вот, надо эту фичу выпилить.
>>1145749 >Ну вот смотри, есть xperia keyboard, в ней по дефолту стоит фича автопрописные/автозаглавные/autocab. То есть после каждой точки или просто в начале сообщения в мессенджере она ставит заглавную букву, и отключить это нельзя. Понятно, что она детектит среду и повышает регистр. Так вот, надо эту фичу выпилить. Вот оно что! Так это все просто! Напиши свое приложение - клавиатуру, которая будет начинаться с маленькой буквы. Чего тут париться.
>>1145773 > Вот оно что! Так это все просто! Напиши свое приложение - клавиатуру, которая будет начинаться с маленькой буквы. Чего тут париться. Все настолько сложно?
>>1145783 >Все настолько сложно? Человек не будет подстраиваться под твои вкусы, если ты ему конечно же не заплатишь. Ты хочешь срать, но не хочешь подтираться бумагой. Либо ты создаешь новую бумагу, либо подтираешься пальцами.
>>1145791 > Человек не будет подстраиваться под твои вкусы Шта? Это ж тред разрабов под ведро, ну я и пришел совета спросить. Перечитай первый пост. Я не просил за меня что-то переделывать. > Ты хочешь срать, но не хочешь подтираться бумагой. Либо ты создаешь новую бумагу, либо подтираешься пальцами. Бумага состоит из изменяемых строчек кода, ввиду чего может самоочищаться? Какая-то топорная у тебя аналогия.
>>1145794 >Бумага состоит из изменяемых строчек кода, ввиду чего может самоочищаться? Можешь и так. Осталось только найти тебе поменять пару строчек. >Шта? Это ж тред разрабов под ведро, ну я и пришел совета спросить. Перечитай первый пост. Я не просил за меня что-то переделывать. Я тебе пример привожу, неуч. Будто "разрабы под ведро" будут заниматься твоей бумагой. Это нельзя сделать без изменения самого приложения. Либо найти другое приложение, что маловероятно. Мешок.
>>1145796 > Осталось только найти тебе поменять пару строчек. Вот я и хочу. Модов на эту клаву дофига на 4пда, там и скины и добавленные символы, но от вопросов про выпил автокаба много кто об этом просил тамошние морозятся. > Я тебе пример привожу, неуч. Ты тупой какой-то и озлобленный. >Будто "разрабы под ведро" будут заниматься твоей бумагой. Я думал, что собирать клавы - одна из самых простых вещей в разработке приложений, и что тут могут подсказать в какую сторону копать. Спросил - мне ответили идти с этим в моби. Что ты от меня хочешь? > Это нельзя сделать без изменения самого приложения. Ну это и так понятно.
>>1145803 > Конечно. Хуй кто тебе даст это сделать. Странно, учитывая количество модов на эту клаву. > Кароче, тебе здесь никто не поможет, неудачник. В любом случае спасибо.
Сап двач, есть viewPager в нём ресайклер, если я хочу при нажатии на айтем открыть подробное его содержание то мне нужно запускать новую активити при клике или как-то заменить фрагмент в viewPager?
>>1145749 Ну смотри, я не против этим заняться, и даже более-менее знаю, куда копать, но мне тупо лень этим заняться я дохуя прокрастинатор и нет желания что-либо делать. Если сможешь мотивировать, не имею в виду финансовую мотивацию, но она тоже может сработать, наверное то займусь.
>>1145803 Анон, ты не совсем прав. Это, конечно, тред по программированию, а не по моддингу/декомпиляции/реверс инжинирингу, но я думаю, что каждый итт знаком с апктулом и может поменять пару условных переходов в смали, не особо напрягаясь. Или же я ошибаюсь?
>>1145919 > Если сможешь мотивировать Ну, если ты это сделаешь, то осчастливишь много людей, вопрошающих о выпиле автокапа с 2012 года (на 4пидора уже много раз просили, но мододелы их тупо игнорят, а на xda и сайте поддержки sonymobile шлют юзать гуглоподелие). >финансовую мотивацию, но она тоже может сработать Могу 500р. скинуть на киви :3
лучший ресурс на данный момент имхо, сам по нему вкатился в котлин и буквально через дня 3 после прочтения и осознания всего, что тут прочел, стал уже проекты чисто на котлине ебашить
Знаете что мне напоминают все современные идешки? Комбайн Nero Burner с кучей свистелок, которые мешают работе с самой программой.
Во время установки он жаловался, что не умеет читать кириллицу и я создал ему папку с английским шрифтом. Но во время докачки другой версии эмулятора он однохуйственно установил его в папку пользователя.
При попытке сбилдить проект, выдало сообщение о критической ошибке "Editor is already disposed", ну я сообщил гуглу о том, как получил ошибку.
>Aapt2 is enabled by default when you use android plugin for gradle 3.0. >But if you are facing issues with it: android.enableAapt2=false
А еще эта скотина во время создания проекта жрет 40%ЦП. У меня матлаб во время создания и обучения 100 нейронных сетей столько ресурсов потребляет.
>>1127618 (OP) Я конечно сомневаюсь что тут есть матерые синиоры. Но все же вопрос. Какие зп у них? Доу пиздит, потому как я на своем мидл+ имею 3к, а у них синиор с 3.5 к. В то же время на шарпах можно просить 4.5к. Я вот и думаю, какая граница у ведра. В вакансиях такие числа совсем не пишут.
>>1147703 так а в чем проблема? создаешь таблицу из двух столбцов, в один пишешь свой ключ, в другой лист с объектами, вроде бы значение поля может быть списком, а если нет то просто в эту же таблицу вместо списков складываешь объекты
>>1147746 Ну да наверно можно так, но чёт я хуй знает. Вообще ни разу не видел чтобы где-то юзались массивы sqlивские. Может сделать что-то типа такого: записывать объекты прям так в талицу, только сделать им автогенерируемый айди, а поиск делать по другому айди, который строка и сделать его индексом?
>>1147751 И ещё. У меня объект в котором таких хешмапов дохуя. Нормально ли будет, если я их будут селектить несколькими запросами но в одной транзакции? Или же надо писать невротебенный запрос с кучей джоинов?
Посоветуйте, если кто знает, готовую реализацию принятия и отклонения звонка. Сам в андроид разработке не шарю, но надо заставить делать человека, который не может пока ни сделать, ни нагуглить.
>>1147703 >HashMap<String, List<SomeObject>> сохранить в бд? Как мне грамотно таблицы организовать? Вообще подумать нужно. Нарисуй на листочке это все говно и хуйни в реилм.
>>1127618 (OP) Fused Location Provider либо выдает неверную погрешность определения координат, либо координаты всегда с погрешностью 20 метров. Либо не вызывается update коллбек. Приоритет на высокую точность.
Антоны, помогите с реализацией видоплеера. Нашёл кучу гайдов в гугле с использованием трех разных объектов - videoview, surfaceview и textureview. А вот в чем разница, какой из них круче/проще/выебистее имплементить в гугле хуево описано. Подскажите, в какую сторону гуглить или киньте за щеку годных гайдов, пожалуйста.
>>1148996 Ты уебок? Sketch у него на айосе. Sketch работает на маке, в нем делается дизайн, причем т ыможешь делать там дзиайн для гейоси, ведра, венды, хуинды, и прочего дерьма. Figma есть, работает через веб, умеет читать sketch.
>>1149050 Задачи совершенно стандартные - показывать видосы в фулскрине, скроллить туда-сюда, переключаться (ссылки на видосы будут поставляться из массива), ну и шаффлинг с рипитингом, наверно. Из-за тривиальности задачи я не очень хочу использовать экзоплеер, у меня и так уже две либы подключены. Кстати, благодаря этому у меня код практически без васянства, хотя размер апк сильно вырос, а я бы этого не хотел.
>>1149055 >2 либы >размер апк сильно вырос лол, найс рофлишь, в нормальных проектах и по 20 либ и никто не парится, И ТЕМБОЛЕЕ никто не думает о размере апк в 2018
Всем доброго здравия! Хочу ворваться в программирование, конкретнее в андроид направление. Ищу сообщество или просто пару новичков или продвинутых программистов в этой области. Если есть идейные люди или кто за шапку сухарей поможет разобраться в данной сфере деятельности прошу отпишитесь.
Всем привет, друзья! Хочу стать фрилансером и разрабатывать игры. Закончиваю девятый класс, хорошо знаю Turbo Pascal. Как лучше всего перейти к написанию игр для Android?
Есть приложение на котлине. При определённом событии вызывается метод, который делает HTTP-запрос через JSoup, а потом парсит полученный JSON и складывает результат в RecyclerView.
Изначально вызов метода был обёрнут в doAsync (из Anko). Этот таск запоминался и в некоторых случаях отменялся через cancel() с mayInterruptIfRunning=true. Проблема в том, что периодически cancel() каким-то образом умудрялся класть приложение с различными ошибками ввода-вывода (а не InterruptedException); часто проскакивал JSONException с воплями, что он не может считать поток. После этого я попробовал сменить doAsync на корутину. Работать стало в разы лучше, и в подавляющем большинстве случаев выполнение прерывалось CancellationException. Однако, если отменять корутины достаточно часто (или, скорее всего, попадать в какой-то определённый момент их выполнения), опять начинают сыпаться ошибки ввода-вывода (пикрелейтед). Иногда падает вообще молча, хотя стоит логгинг в catch(e: Exception).
Так вот, как сделать так, чтобы таски можно было спокойно прерывать, не роняя при этом всё приложение? Ловить IOException не вариант, искать вообще все эксепшены, которые выпадают - тоже. В каждый момент времени жив должен быть как максимум один таск - если живого не было, новый просто начинает выполняется, а если живой есть - он прерывается и новый занимает его место.
>>1149765 Ну, дружочек, прежде чем дыры латать на твоей посудине, давай порасcуждаем системно. Исключение, которое тебе бросается, https://docs.oracle.com/javase/7/docs/api/java/io/EOFException.html принадлежит к классу проверяемых исключений, а это означает. 1 Его можно избежать, гарантируя выполнение некоторых предусловий. 2 Выполнение кода восстановимо после исключения, если его обработать. 3 Предыдущий пункт проверяется компилятором.
Так что, обеспечивай контроль входных данных, не маскируй исключения суперклассами в сигнатурах методов, пиши обработчики исключений, особенно для методов, вызываемых асинхронно, и все будет ок.
Чет сидел сегодня и не вдуплял как хуйнуть onBackStack в обратной стрелочке в Toolbar. Где я должен это все делать? Есть активити с фрагментом базовым. Щелкаю на другой фрагмент - там лежит кликер Back. Мне в него хуйнуть onBackStack или как?
>>1149774 Такое ощущение, будто мой вопрос ты решил не читать.
>Исключение, которое тебе бросается, https://docs.oracle.com/javase/7/docs/api/java/io/EOFException.html Не одним EOFException (не) живём. Выпадали и другие, но все они IOException - проблема именно в том, что запрос к серверу не прерывается / прерывается некорректно.
>1 Его можно избежать, гарантируя выполнение некоторых предусловий. Да, отлично, именно то, что мне нужно! Как отменить корутину так, чтобы запрятанный в библиотеках ввод-вывод не бросил в меня своим эксепшеном, который тут вообще ни при чём? Причём сам ввод-вывод надо прервать. Ибо сейчас даже после отмены корутины операции ввода-вывода накапливаются зачем-то в очереди, что вообще не то, что мне нужно. >2 Выполнение кода восстановимо после исключения, если его обработать. Учитывая то, что иногда после отмены корутины приложение просто молча падает вообще без эксепшенов, восстановимо не очень.
>обеспечивай контроль входных данных Тут нет входных данных. >не маскируй исключения суперклассами в сигнатурах методов Приложение на котлине - в нём нет checked-эксепшенов и в сигнатурах они не указываются. >пиши обработчики исключений, особенно для методов, вызываемых асинхронно Куда ты хочешь, чтобы я впихнул try-catch на пикрелейтеде? Естественно, настоящий код содержит больше логики, но по смыслу и работоспособности один-в-один.
> task = null - зачем? Как только корутина заканчивает своё выполнение, "текущая задача" обнуляется. Тогда при следующем выполнении мы не будем пытаться остановить уже завершённый таск.
> bg { ... }.await() - зачем?!!! Что конкретно? bg - чтобы не было "network on UI thread". await - чтобы корутина дождалась момента, когда запрос данных завершится и доделала свои дела в UI-потоке.
>>1150272 >Спасибо кстати за сообщение об инновации котлиновской насчет исключений. Это какой такой инновации?
>Разве это не то же самое, что вызов обычной функции - тела bg и затем зануление task. Нет: await() работает в suspend-контексте (то бишь, только внутри корутины), потому что он приостанавливает корутину вместо блокировки потока. А блокировать UI-поток, как известно, идея плохая.
>>1150297 Да ладно, не страшно. Я сам в корутинах особо не разобрался, считай два дня с ними (пытаюсь) работаю. Null я использую потому, что изначально таска нет - вполне логично, как мне кажется, его отсутствие помечать именно нуллом. Да и хранить убитый таск незачем.
Аноны, подскажите такой момент. Я являюсь андроид разрабом, уровень мид уже есть железно. У нас в городе открылась бургерная, которая явно себя усиленно продвигает рекламой. Я хочу к ним придти и сказать, что я андроид разработчик, хочу написать приложение за соответствующую плату, и по факту я получаю деньги, они - доп рекламу и аудиторию, ну и приложение в плеймаркете, то есть всем хорошо, все в выигрыше.
В этой схеме есть подводные камни? Кто-то подобную вещь делал?
>>1127618 (OP) Сап. Сегодня в вузике мне засунули в жопу фсбшный зонд под названием "точка роста". У меня есть apk этого приложения и, я даже смог его декомпилировать. Но вот беда, я ничего не понимаю в яве и андройде в целом. Приложение я уже удалил, и несколько раз просканил систему разными антивирусами, которые, конечно же ничего не нашли (в фсб нет дураков, которые скормят свой троян антивирусным базам). Если я скину апк сюда, смогут ли достопочтенные господа сказать мне, где искать и выпиливать куски зонда? Или может быть сразу стоит менять прошивку.
>>1150809 > Сап. Сегодня в вузике мне засунули в жопу фсбшный зонд под названием "точка роста". Никто тебе ничего не засовывал, ты сделал это сам, терпела.
> У меня есть apk этого приложения Don't ask to ask. Скидывай уже.
> Или может быть сразу стоит менять прошивку. Стоило сделать это сразу после покупки телефона.
>>1150198 Если кому-нибудь интересен итог моих мучений, то я умудрился починить этот асинхронный недокошмар. Пикрелейтед работает как часы (я надеюсь).
Во-первых, оказалось, что в свежем anko-coroutines используются корутины от мая 2017 года. Экспериментальная библиотека, устаревшая на почти год. Нахуй anko-coroutines, простые kotlin-coroutines-android сами по себе ничем не хуже абсолютно (они буквально такие же). Во-вторых, делать task=null в конце корутины оказалось плохой идеей. Если быстро пустить сразу много этих тасков, то вскоре начинают появляться живые таски, которые почему-то вылетели из этой переменной. Не могу понять, где я проебался с синхронизацией. Впрочем, даже если навесить invokeOnCompletion { task = null }, лучше не становится.
С отменой ввода-вывода проблем больше не наблюдаю. Не знаю, из-за обновления ли библиотеки или просто из-за немного другого подхода к отмене корутин. Молчаливый вылет пофиксился обновлением библиотеки - буквально следующая версия содержит это исправление.
>>1150906 > Во-первых, оказалось, что в свежем anko-coroutines используются корутины от мая 2017 года. Экспериментальная библиотека, устаревшая на почти год. Почитай про транзитивные зависимости.
>>1150910 Если ты ведёшь к тому, что я мог указать нужную версию корутин, то это и так понятно. Но абсолютно незачем. anko-coroutines буквально содержат два метода, причём один из них и так есть в kotlin-coroutines (bg или async), а второй состоит из одной строчки.
Ребята, может есть рабочий open source проект, желательно живой, не маленький, опубликованный в сторе, написанный на java с нормальным mvp , без всяких выебонов типа kotlin, mvvm? Можно с dagger и rxjava. Гугл не помогает, нахожу только примеры архитектур на 3 экрана либо проекты из говна и палок, как я впринципе и сам делаю. Хочется прям пример хорошей архитектуры приложения, которые реально работает, а не сферические примерчики к реальной жизни не применимые.
Всем привет, давно сюда не заглядывал. Нужно написать нормальную разметку для активности. Суть активности заключается в описании рецепта. До этого работал со списками их рисовать просто легко и при этом красиво, но тут я в ступоре как по нормальному нарисовать, что бы у юзера после этого глаза не вытекли?
>>1151671 И в догонку - как мне сбилдить сраные тесты чтобы у меня даггеровский компонент сгенерировался? Rebuild all не работает, если просто запускать тесты - то же не работает.
Сижу как типичный форевералоун в праздники дома, думаю чем заняться, а "давайка в эти выходные я покожу что-нить под андроид для ознакомления." Скачал Андроид студию 3.0.1, последний ждк и накатил все это на свой ноут с win7. Решил реализовать какой-нить простенький туториал и запустить его на своем старом андроиде 4.1, но сгорел нахуй выставляя версии в app/build.gradle файле. Хуле ему пидору надо то, я не понимаю, какие версии ему надо прописать.
Вижу рабочее решение просто скачать старые версии sdk + api и прочее соответствующие моему 4.1 андроиду и выставить одинаковые во всех местах. Но это же хуевое решение, оно же должно уметь компилить и под старые версии на последних sdk?
android { compileSdkVersion "??" //buildToolsVersion "??" // - в конфиге который создавался средой, данной строчки не было defaultConfig { applicationId "com.example.anonname.myapplication" minSdkVersion 16 targetSdkVersion "??" versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } ... } Пиздец, до чего я дожил, версии в зависимостях не могу верные указать
>>1152228 Ну, в том-то и дело что тест есть. Но почему-то с кастомным раннером оно его не видит. А кастомный раннер мне нужен чтобы впилить кастомный класс аппликейшн с мокнутыми зависимостями для даггера.
Помоги, анон. Есть Toolbar, в который запихан саппортовский SearchView в качестве menu item. И я никак не могу с ним совладать.
1) У него есть какой-то необъяснимый с научной точки зрения маргин слева, который мне нужно убрать. app:contentInsetLeft="0dp" и подобное не помогает. Каких-либо маргинов/паддингов через Layout Inspector я обнаружить не смог. Hamburger-icon от библиотеки MaterialDrawer. 2) app:iconifiedByDefault в menu.xml не работает. Но если задавать аналогичное свойство в коде, работает нормально. Почему? Не то, чтобы важно, но интересно. 3) Иконку поиска надо убрать, app:searchIcon="@null" не работает. При этом, если iconifiedByDefault=true, то достигается нужный результат (пикрелейтед 2), но iconifiedByDefault нужен в состоянии false.
>>1152234 Короче разобрался с этой ссаной говниной, если кому ещё понадобится вдруг. Дело было в том, что не правильно запускал аппликейшн в кастом раннере.
Решил я перекатиться с Firebase Crash на Fabric Crashlytics. Поменял, как и написано в инструкции, Firebase.report(e) на Crashlytics.logException(e). В итоге вижу пик 1. Ни типа исключения, ни его места, в отличие от старой аналитики (пик 2), не видно. И там, и там одна и та же ошибка. Я где-то обосрался или это и есть те самые "улучшения"?
>>1153392 А ты плагин фабрика не забыл включить? А то судя по всему он не заливает маппинги на свой сервер. На самом деле я хуй знает про миграцию, но чтоб такой хуйни не было нужен именно плагин фабрика в градле.
>>1153480 Да, все верно. Я лично жду флаттер, чтобы потом с него быстро соскочить на новую ось гугла.
>>1153858 Желательно, ведь источником твоих данных является не интернет, а бд. По хорошему ты не должен знать откуда конкретно эти данные приходят, тогда и вопроса такого не будет в принципе.
Товарищи. Вопрос связанный с декомпиляцией apk. Опустим момент "зачем" - занялся чисто из любопытства.
В наличии тяжелый Apk. Внутри лежит 4 dex файла с исходниками. Код обфусцирован это и ежу понятно. При декмопиляции я получаю на выходе фактически битые исходники, а именно: - inner классы и анонимные классы так и остаются лежать снаружи - зачастую в коде вызываются либо несуществующие, либо неизвестные перегруженные методы
Это все последствия обфускации? Я ожидал что там максимум будут выполнены переименования у классов/полей/методов дабы затруднить чтение, но код хотя бы будет целостным. А так получется куча несвязных фрагментов что делает анализ невозможным.
Есть ли какая секретка? Возможно скрытые нюансы? Кто еще заморачивался реверс инжинирингом андроид приложений?
>>1153898 Зависит от того, что именно ты хочешь. Лучше всего начинать с поиска аннотаций, так быстро выйдешь на ретрофит, гсон и бд. Больше мало что использует рантаймовые аннотации. А дальше смотреть где они дергаются. Ну либо начинать со строк.
> но код хотя бы будет целостным Добро пожаловать в мир -optimizationpasses >5
>>1153930 Основная задача - изучить ту часть приложения что взаимодействует по bluetooth с неким девайсом. Анализ начал с того что искал BluetoothDevice и прочие классы из пакета android.bluetooth, и таки нашел их, но проблема в том что они разрозненны по классам самого приложения и по ним мне не удалось понять в каком порядке приложение взаимодействует с девайсами.
Еще такой момент. Так как стоит задача исследования взаимодействия двух дейвасов по Bluetooth, то исходно была идея проснифать Bluetooth трафик. Однако поверхностный гуглеж показал что для этого чуть ли не спец железку надо покупать. Поэтому то и стал копать в сторону исследования самого приложения. Теперь вот думаю вернуться к идее прослушивания трафика.
>>1153441 Тут ты похоже прав. Херачит названия именно в релизном билде. Но я эту штуку не добавлял и не настраивал. Если какой-то дефолтный и есть, то где он лежит?
>>1153540 >А ты плагин фабрика не забыл включить? А то судя по всему он не заливает маппинги на свой сервер. >На самом деле я хуй знает про миграцию, но чтоб такой хуйни не было нужен именно плагин фабрика в градле.
apply plugin: 'io.fabric' прописал
Прописал ключ Crashlytics в fabric.properties, а не в манифесте. Может из-за этого ошибки не приходят. Или задержка большая, пока точно не могу сказать. Пока оставил и старый, и новый сбор ошибок.
Cап анончики, очень нуждаюсь в вашей коллективной помощи. Сам андроид-разраб, 2 года стажа, делаю работу качественно, дедланы никогда не проебывал и т.д. И хочу вот в ближайшее время подойти к начальству нашей айтиконторки и попросить повышения зп, подскажите, как это лучше сделать лучше всего, какими словами? Дело в том, что я сам битард и омежка, поэтому крутым красноречием и уверенностью не обладаю и хз как правильно это все мне сказать. Так что подскажите, кто уже так делал
>>1154395 Сильно зависит от твоей компании, если это ООО Рога и Копыта. То тут все совсем неопнятно. В некоторых компаниях есть практика ежегодного персмотра и тд. Общий совет - сам для себя подумай почему тебе должны платить больше? Обдумай список объяснений. Собственно пример: "Дратути Иван Говнович/Пизда Ивановна, короче я уже два года работаю, выполняю задачи качественно и в срок, мой уровень квалификации вырос и исходя из этого прошу поднять мне зп."
>>1153480 >>1153540 >Dart Вы че ебанутые? Нахуй они вообще этот не взлетевший отброс форсят? Где вообще про эту фузию что-то есть? Я только за что бы ведроид в текущем виде сдох, но шансы мягко говоря не велики.
>>1127618 (OP) аноны, есть тут толковые разработчики? нужно запилить приложение типа каталога с сервером (онлайн-панелью управления) с возможностью создания пользовательских аккаунтов, чтоб могло работать офлайн, при наличии интернета синхронизация каталога на устройстве с сервером и выгрузка информации из устройства на сервер
>>1154004 Итак, я снова выхожу на связь. Включил эту опцию, однако лог файл так и не появился.
Проверил конфиг bluetooth командой
adb shell cat /etc/bluetooth/bt_stack.conf
И там ожидаемо обнаружил опцию
BtSnoopLogOutput=false
Т.е. режим для девелоперов не способен включить сбор логов для bluetooth. Там же нашел путь куда лог по идее должен складываться, и команда adb push дала в ответ что у меня нет прав.
Слил на комп файл bt_stack.conf, отредактировал параметр, однако push Не сработал - файловая система только для чтения.
Короче пиздец, логирование включить не удалось. Опять же, кто сталкивался? Может есть какая-то возможность таки включить логирование?
Как сделать длину на пикриле в своем приложении? меня фиксированный размер получается, когда я из search_menu дергаю item в onCreateOptionMenu. Пытался support SearchView засунуть в главный Toolbar и сделать невидимым, а при открытии фрагмента видимым - но не пошло.
Итак, аноны. Несколько недель назад я задавал здесь вопросы о проблемах при установке Android Studio, а теперь моё первое приложение под Android уже готово.
Сам я айфонобог, поэтому во время разработки пользовался симулятором. На симуляторе всё работает чётко и без каких-либо проблем.
Сегодня раздобыл ASUS ZENPHONE S2, поебался с установкой драйверов с 4PDA, и запустил приложение на нём. А дальше начались проблемы. Во-первых жутко фризит боковое меню, выдвигается рывками, прокручивается с тормозами. Хотя из всего кастома там есть только иконки, которые весят по 20kb.
Во-вторых, приложение крашится при запуске одного из Активити через меню, хотя в симуляторе оно прекрасно открывается на всех версиях андроида, начиная с 4.4 и до 8.
Понимаю, что экстрасенсов здесь нет, но есть хотя бы предположения из-за чего могут возникать проблемы?
Завтра дадут погонять ещё какой-то планшет, попробую запустить на нём.
>>1155394 > Несколько недель назад я задавал здесь вопросы о проблемах при установке Android Studio, а теперь моё первое приложение под Android уже готово. > Понимаю, что экстрасенсов здесь нет, но есть хотя бы предположения из-за чего могут возникать проблемы? Из-за того, что у тебя нет ни знаний, ни опыта и ты написал говнокод.
>>1155412 Ты пробовал хоть смотреть что в логах когда на девайсе гонял? Там же небось тривиальные вещи типа частой сборки мусора (фризы, может быть где-то ты кучу мусора плодишь), проебаны сильные ссылки на тяжелые объекты и ты вылетаешь по памяти (креш при открытии новой активти).
Сап. В приложении есть формочка, состоящая из EditText и Button, лежащих в вертикальном LinearLayout. Если нажать на EditText, то открывается клавиатура, которая смещает весь интерфейс так, чтобы EditText лежал прямо над ней. Это всё, конечно, прекрасно, но можно ли сделать так, чтобы андроид пытался весь LinearLayout над клавиатурой уместить?
>>1156046 К сожалению, не помогло. Интерфейс состоит из RelativeLayout, в котором лежит тот самый LinearLayout с centerInParent и ImageView, который привязан к верху формочки. Если в ScrollView обернуть формочку, не меняется ничего. Если обернуть вообще весь RelativeLayout, то формочка просто уплывает вверх.
>>1155840 запрети поворот экрана, лол. Сегодня сижу в конторе ебусь с сохранением состояния в фрагменте, в итоге мне сказали что ротейт выключили. Я дико орнул блять, пиздец, минус 2 часа времени.
>>1156226 Кейс: юзер сворачивает твое говно, открывает 10 вкладок в браузере и возвращается к тебе в приложение. В итоге на активити вероятней всего отработает onCreate с бандлом, т.к. была уничтожена в фоне.
Анон, как совладать с этой шайтан-иде? Не понимаю как создать виртуальное устройство, все тулзы и образы скачал, кнопка AVD неактивна, по манулам из сети таких пунктов меню не нахожу. блядь за то время пока ебусь давно уже приложение можно было сделать
>>1158344 Там встроенная виртуалка, оно вроде как из коробки должно запускаться. Ты установил необходимые СДК? Может твой проц не поддерживает апаратную виртуализацию. Можешь подключить свой ведройд и протестить на нем.
>>1158347 Одно активити у тебя отображает RecyclerView (ListActivity), а полный текст отображает уже другое активити (DetailsActivity).
Это такое тестовое задание на прием на работу? Интересно, где это так? Тоже собираюсь войтивайти, но очень очкую, что засрусь на собесе. Поэтому стараюсь как можно больше изучить и свой проектик написать более менее сносно.
>>1158347 >Вопрос: это можно сделать с одной активити, или две надо? Вообще, я бы погуглил очень много на эту тему. Из первого, что приходит на ум, так это фрагмент открывать по тэпу, а если еще раз нажать, то фрагмент закрывать.
>>1158586 >Сделаешь - можно кандидатскую защищать кек, слишком толсто. У меня третий курс - выбрал курсовую findMovie - проектов на гите да и от юдасити - море. Но зато мне будет заебись рассказывать про фреймворки. А на 4 курсе я думаю двач мобильный сделаю.
Гляньте приложение https://github.com/Biba93/FlashLang/blob/master/app-debug.apk (там нет майнера, я гарантирую). Мне кажется оно переусложнено: либа, которая делает всё, из 1100 методов 140 не используются. Также, угадайте кто его написал: кун или тян, олимпиадник или нет?
Итак, анон, необходимо внедрить в приложение БД, которая будет содержать в себе id элемента и булево значение соответственно (кнопки лайк и дизлайк). Хранить буду локально на устройстве. На эту тему еще ничего толком не читал и решил узнать у тебя, что мне об этом необходимо знать, чтобы реализовать данную задумку. Какую систему управления БД использовать? По треду попадался Room, насколько он мне подойдет или использовать старый SQLite?
>>1159718 >По треду попадался Room, насколько он мне подойдет или использовать старый SQLite? Если ты не юзаешь rx java или еще что-то связанное с РХ, юзай SQLite. Если тебе только это хранить нужно, то ничего особенного нет. Но вот лайки и дизлайки ты случайно не с сервака запрашиваешь?, тогда и рх пригодиться. И придется пердолиться.
>>1159729 Rx использую для запросов на сервер. Про лайки дизлайки могу пояснить. Они организованы таким образом: имеется айди элемента, который имеет toggleLike/toggleDislike. Последние имеют значение true or false. Допустим, у нас элемент имеет значения false/false, то в таком случае мы добавляем +1, в зависимости от выбранного нами лайк/дизлайк на сервер и параллельно должны записать себе в локальную БД айди элемента и булевы значения, чтобы в дальнейшем мы не могли бесконечно ставить лайки на этот элемент, а так же отменять свои лайки или дизлайки. Логика такова, если был дизлайк, а мы жмем на него еще раз, то получаем отмену нашего дизлайка и по аналогии с лайком. Организация данного процесса сделана довольно странно, но это меня не особо волнует, это же все тестовое и без учетных записей. Получается, если мы снесем наше приложение с устройства, то все БД потрутся и потом можно будет опять понаставить сколько угодно лайков.
>>1159742 вообще реилм для такого говна занимает слишком много места 5мб и методов. Если тебе в принципе больше ничего не нужно в бдшке копай в сторону Room - спонсируется от гугла, или можешь попробовать юзнуть рх на СКлайт, примерчики всегда найдутся.
>>1159570 >>1159516 Мопед не мой, я просто разместил объяву (решил посмотреть код победителя курсов по андроиду). В первом фрагменте вводишь слово и запоминаешь его. Во втором и третьем выбираешь языки и переводы слов. Открывается активити и для себя переводишь слова. Статистика сохраняется в Firebase и локальную БД(?) и показывается на последнем фрагменте. Вот и стало мне интересно, не переусложнён ли этот код (12 000 строк). И так не понял, где там imageloader юзается.
>>1159919 Мне нужно сохранять String id | boolean hasLike | boolean hasDislike. По гайдам от гугла вполне себе осуществимо, т.к. SharedPreferences позволяет сохранять ключ-значение. Но у меня в ходе ознакомления возникли вопросы. С его помощью именно ключ-значение или ключ-значение-значение можно сохранять и еще кучу переменных? Как потом мне получить список всех моих раннее записаных значений? Поскольку лайкнутые элементы у меня будут отображаться в списке фаворитов, то мне придется по сохраненным айдишникам обращаться на сервак, дабы получить список с полной инфой по лайкнутым элементам.
>>1160193 >Как долго вкатывался? В конце сентября начал каждый день задрачивать. >Что для этого делал? Курсы от юдасити. Потом пошел двач писать, не дописал - и взяли как раз на стажера. Что тут скрывать - берешь и хуяришь. Только вот работа мотивацию дает, раньше я на расслабончике, а сейчас дедлайны.
Ананасы, поясните слоупоку за рум. Вроде релм дофига гибкий, шустрый, поддерживается с 2011, куча документации и ответов на стеке, и тут гугол выкатывает йоба-обертку sqlite, которая, будучи относительно ноунеймом, сразу оказалась легче и удобнее релма. Так вот, чем рум лучше/хуже релма и наоборот? Насколько будет проблемно мигрировать с релма на рум, если учитывать, что у меня есть около пяти RealmRecyclerViewAdapter, которые нужно будет перепиливать с учетом реализации автообновления при изменении бд (насколько я понял, в руме нет такого, чтобы все апдейтилось искаропки)?
>>1160709 для начала стоит решить зачем вообще мигрировать и так ли это необходимо. и если вдруг это прям такая необходимость то тогда и отпадает вопрос о том проблемно это или нет, потому что у тебя есть необходимость и тут уже похуй на проблемы, а надо просто брать и делать
Насчет сторио - хуй знает, их описание на хабре слишком меметичное, что часто обозначает проект, написанный на коленке для защиты курсача или хеллоуворлд для ГП от васянов1999. И, кстати, мне нужны мутабельные запросы, а в сторио, насколько я понял, они имутабельны.
Анончики, использую RxJava для запросов из сети. Хочу немного отрефакторить код и вынести из view-класса запрос в отдельный класс. Переписал rx код в отдельный класс, но столкнулся с проблемой.
Использую либу с гитхаба socket.io, https://github.com/socketio/socket.io-client-java Мне нужно подключиться к серверу на сокетайо по определенному урлу, включающему querystring с юзертокеном. Ридми говорит, что нужно делать так: IO.Options opts = new IO.Options(); opts.forceNew = true; opts.query = "auth_token=" + authToken; Socket socket = IO.socket(hostURL, opts);
Однако когда я в opts кладу query, вся конструкция наебывается к херам. Не валит эксепшн, нихуя, просто перестает коннектиться, даже не срабатывает событие connect. Без query всё окей. Судя по тому что ни в issues репы, ни на стаковерфлоу, никто не поднимал данный вопрос - проблема это персонально моя. Может кто скинет пример реально рабочего кода с подключением к сокетайо-серверу с передачей параметров?
> Хочу вкатиться в разработку под 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/334340/