Вы видите копию треда, сохраненную 30 января 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Мир твоему смартфону, анон. Прежде чем задавать свой вопрос, прочитай:
FAQ
> Хочу вкатиться в разработку под Android!
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.
> IDE и инструменты?
Android Studio — основной инструмент разработчика. Кроме неё потребуется Android SDK (устанавливается вместе со студией).
> Мануалы?
- Официальная документация: 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. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.
> Есть что-то кроме нативных приложений?
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия.
- 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://2ch.hk/pr/res/873367.html (М)
Есть же явно какая-то литература.
Мусорные вёдра, скажите, планируется ли поддержда джавы 8 в андроиде, и когда?
чего тебе не хватает?
> В 24-ом ведре завезли уже, раньше только ретролямбда/jack.
На уровне виртуальной машины новые инструкции? Тогда хорошо, через 5 лет может будет пользоваться.
Впрочем, я о подобном не слышал. Так что только retrolambda остаётся. А джек, когда я им пользовался в последний раз, был вообще неюзабелен, не знаю точно, как сейчас.
да SQLite
public void onUpgrade(SQLiteDatabase db, int oldV, int newV)
db.execSQL("DROP TABLE IF NOT EXISTS ")
onCreate(db);
Еще в отладчике пишет что где-то у меня в базе утечка, но я в душе не ебу где её закрывать. И вообще прочитал что сейчас андроид такой крутой, что ему похуй на эти утечки. Но вот, то что надо переустанавливать приложение что-бы появилась инфа из базы, вот это реально заебует.
если ты про структурные изменения бд, то скорее всегда в super конструктора не передаешь новую версию. На утечки похуй если у тебя например курсор остаеться незакрытыми или бд или пока ты не для прода пишешь
https://gitlab.com/i.komarov/multipane-fragmentmanager/tree/master
а смерджить ?)
Да, сейчас сделаю простенький sample, пока что не уверен работает ли там сохранение состояния правильно, или нет. (состояния отдельных фрагментов соответственно)
UPD: не работает, ибо я накосячил, сейчас допиливаю, отпишу когда запашет :) Если у кого есть желание помочь - буду рад.
>грузить с сервера
И че при апдейте делать? Выкинуть пользователя из приложения и синкать все?
Нет жеж, диалог и мерджить
Да, полностью рабочая версия готова, два дня, огромное тепловыделение сами-знаете-откуда, низкая производительность, но оно работает, и аналогов нет!
Если кто-то поможет прооптимизировать - буду очень признателен. Если найдете баги - тоже прошу написать :)
Буду очень признателен если кто-то посмотрит в чем проблема.
https://codepaste.net/gaa5pp
Всё хуйня, переделывай.
Зачем ты хранишь SQLiteDatabase в хелпере? Зачем у тебя там методы чтения записи. Читай документацию, как с бд работают на ведре.
Аноны, у меня есть CollapsingToolbarLayout и NestedScrollView. Так вот, когда я докручиваю до конца, то нет всего содержимого, которое должно быть, оно как бы находится под navigation bar'ом, но когда я переворачиваю в ленд скейп (navigation bar становится сбоку, а не снизу), то происходит то же самое. Всё работает нормально если добавить layout_marginBottom="?actionBarSize". Но щас мне пришлость добавить в NestedScrollView TextView, которое надо раскрывать, и когда я вызываю textView.setMaxLines(...) появляется этот самый отступ снизу, как быть? А, ещё при вызове setMaxLines срабатывает OffsetChangedListener у AppBarLayout.
build flavors
У меня регистрация на сайте через google Oauth2, но понадобилось еще сделать api для мобильного приложения.
Firebase мне не нужна.
webview и отлавливай deep link в shouldOverrideUrlLoading WebViewClient-а
Используют ли вообще те примеры, что в доках в реальной жизни или это просто для новичков?
Спасибо!
Берешь и без задней мысли реализовываешь в скролл вью с инфлейтом своих секций. Есть есть реюзабл ячейки - используешь RecyclerView.
То есть инфлейтить кучу recyclerview в scrollview? Это загнется уже на 3 recyclerview.
Либо инфлейты в скроллвью, либо ресайклервью.
Еще раз, в одной секции 2 колонки, в другой 3, в третьей 4 потом снова 1 итд, как ты в говноиде это запилишь? никак
Не пизди петух, ты такое никогда не реализовывал и даже не знаешь как такое делается. Завали ебало, чмырь.
Я знаю как сделать разные itemType, долбоебушка. Я спрашиваю как ты сделаешь разные СЕКЦИИ одних и тех же айтемов.
Укаждого view type своя специальная вьюха, и там рисуй секции-хуекции аллаха.
Ios-дебил, тебя в гугле забанили? Вбиваешь sectioned recyclerview, а лучше сразу fast adapter, и смотришь код на гитабе. Ручками реализуется, Вася - списочком, или хэшмапиком, и его анализом. Количество генерируемых вьюх тоже регулируется.
Android - это программирование, а не кодинг (в отличии от ios, и всякой backend-web-параши), там можно и нужно придумывать свои решения
через GridLayoutManager и его SpanSizeLookup
Кекнул с дауна, который не знает ничего кроме джавы и андройдапи и говорит, что Андройд - этопогромирование
Дебил, я говорю о сравнении с иос, рубями, питонами.Там никто не напрягается на тему КАК СДЕЛАТЬ ЕБАНЫЙ СПИСОК С СЕКЦИЯМИ.
Окей, распишу подробней. Есть объект, в нем есть поле double. Происходит нажатие на кнопку,я беру значение поля,прибавляю 0.1d и получившееся отображаю на экран
Или съеби в js-тред.
С плавающей точкой, умник.Почему при компиляции в одном проекте 0.2 + 0.1 = 0.3, а в другом 0.2 + 0.1 = 0.300...03453?Где тут это замешано?
ImageView сама сжимает/режет, но битмапка будет загружена вся. Если ты сам не скейланешь.
Покажи сорец. Не может быть таких сильных отклонений в простом коде.
Если тебе нужны значения без ошибок округления, то используй java.math.BigDecimal
Твоя проблема тут
>число должно увеличиваться на 0.1
Запомни, юный небесный странник, нецелочисленная арифметика крайне неточна, при каждой подобной операции происходит накопление ошибок, посему нельзя использовать результат подобного присваивания для последующих операций, погрешность нужно регулярно сбрасывать, разрывая такие замкнутые круги по переменным, как у тебя.
Тащемто это широкоизвестный прием работы с такой арифметикой.
Собственно у тебя и выхода нет:
Либо сбрасываешь ошибку, либо организуешь целочисленные вычесления, либо используешь тяжелую длинную арифметику - она от ошибок не избавит, просто отодвинет их на чуть более поздний срок.
Обычно стараются юзать целочисленную арифметику и приведения чисел, потому что с нецелочисленной арифметикой легко обосраться, и трудно обнаружить этот обосрамс - достаточно сделать одну ошибку, забыть сбросить ошибку например, и все, результат загублен.
Бери vim, для него плагин есть
> вот нахуя она качает к каждому проекту gradle
Так там кэширование есть библиотек и самого gradle
>Посему хочу ради эксперимента попробовать поработать не в студии, а в каком нибудь саблайме.
Тоже пытаюсь ради прикола работать в Atom.
Поставил плагин на gradle build + подсветка синтаксиса kotlin - работать можно, но сложно без авто ипортов
>А что эклипс не попробуете? Охуенная тема жи.
На эклипсе ADT сидел пару лет до появления Android Studio.
С каждым релизом он становился тяжелее и глючнее, точно на него не вернусь.
Вообще чистой IDEA CE хватает за глаза, Atom так побаловаться пока не завезут автокомлит Kotlin.
Аноны, нахуй нужен JobScheduler? Правильно ли я понял, что это замена BroadcastReceiver, которые регаются в манифесте на системные интенты и потом стартуют сервис?
гугол, там есть нужная мне кластеризация и прочий пересчет координат и проекций. Но ужасно напрягает, что нет такого гибкого балуна, как в яндексе. Приходится костыли городить
>И хотя бы оно готовое приложение.
А какого уровня приложение надо что бы ватиться? Парсер картинок? Работа с крупным Апи?
Или вы вообще все вырубаете автобекап в манифесте?
Отключи бекап токена и бд, чё ты как не это. С другой стороны тебе тогда нечего бекапить, так что смело отключайте все.
В том то и дело. У меня надо бекапить несколько табличек бд, но в то же время стоит тереть другие таблички, где внешние ключи висят на первых (т.е., вынести в отдельную базку - неочень вариант).
Он только файлы и папки умеет бекапить, так что отдельные таблицы - не вариант.
бамп вопросу
Клиент для какого-нибудь REST API. Например, приложение которое предлагается сделать в курсе на юдасити.
>Ссыль можно?
Нельзя конечно, вдруг еще напишешь kek и потом работу у меня отберешь kek2.
И даже не пытайся гуглить.
Я про урок с рестом.
Недавно вышло незначительное обновление,фикс багов.А так да, старая залупа.Но альтернатив не вижу,кроме гугла.
Popular Movies?
И вообще, как вкатиться? Среди 10 вакансий только 1 не сениор а миддл.
Без 1+ года вообще нахуй никому не нужен.
Я наверн обдвачевался, потому что не могу поверить, что ты не зеленый.
Запили уже себе хелпер класс с методом, который делает findViewById с приведением к дженерик типу.
google, ибо все наши проекты любезные ios-ники переводят на еблугл. Течет как сучка при виде меня (нет), дырявая что пиздец, оперативы жрет туевы хучи. Не используй никогда, анон, умоляю тебя
>>889833
>>889835
Спасибо Ананасы, сейчас буду разбирать. И еще манифест должен быть в каждой папке, разной версии программы ? Я вот перенес с папки main всё в папку paid, и в free. Но при компиляции, выдает ошибку что нету манифеста в папке Main. Нахуя оно вообще туда лезет если в build variant я выбираю Paid ?
Учитывая то, что ты сказал "Умею в фрагменты" - тебе бы выкатиться, а не вкатиться
Удобно, нет разрывающих пукан findViewById и необходимости хранить во фрагменте какую-нибудь хуйню типа адаптера доя ресайклера, просто setAdapter и все ну и тд.
Просто блять коллега взял код из другой ветки, а там была видать запушена хуйня какая-то, и теперь проект не собирается, я как вышестоящий должен разобраться чо за хуйню они там устроили и какого хуя в обход меня, но это другая история. Вот две ошибки нашел с помощью варнингов, а дальше непонятно.
Вот и ебись теперь с отладкой и тестированием, раз так удобно.
нормальные люди и так не хранят во фрагменте адаптер для ресайклера, у меня например универсальный йоба-адаптер для всех случаев жизни, работающий на рефлексии и rx-стероидах, который может все
Ну типа нет, давай объясню так, чтобы ты понял: приходит человек на работу программистов и говорит о своих навыках: "Ну я печатать быстро умею, еще могу вам пинг-понг-бонг на жабе написать". Как думаешь, что скажут ? То, что человек знает азы и так понятно, если он работать идет
Ой, смотрите, любитель бойлерплейта нашелся. Адаптер более чем соответствует SRP, он выполняет четко поставленную задачу. То, что он поддерживает доп фичи - уже дело разработчика, то, что он универсальный - тоже вопрос любви к бойлерплейту
Ну ты монстр ответов, однако, вопрос был в другом. Но по факту я предполагаю что нужно что-нибудь с комбинацией Observable делать, ибо их уже 6 штук и это только первый день я посидел над проектом и это без сети и прочего, only view
где хранится фоновая картинка экрана блокировки андроида 5.0?
я до сих пор не могу найти
некоторые эвенты лучше обрабатывать именно так - это во-первых. Во-вторых, увидел такой подход у кое-каких ребят, стало интересно попробовать
Понимание основных принципов программирования на Android
что имеется ввиду?
только вкатываюсь, вакансия стажера.
увидел в шапке, спасибо.
В проекте однотипные поля, но их количество и тип всегда разный.
На сраный экран с 4 et в til, ушло около 200 строк, с учетом валидаций, отображения ошибок сохранения состояний при пересоздании и тд.
Офк мвп\мввм и подобное не предлагать, там локики кот наплакал, и количество кода оно не уменьшит, так вот к чему я, задался вопросом, какого хуя?
Юзал bk, d2, support, ip. Соответственно, выходит либо пишешь на нативе + либы, либо пилишь собственный фреймворк. Но это всегда по боку выходит, кто-нибудь уже задумывался об этом?
Просто прилажухи на андройде.
telegram: @ozzmo
Насчет оплаты договоримся
Примеры заданий прилагаю
Тест рассчитан на 1.5 часа
Щас бы задачки уровня джавараш студентам решать.
школы
Пробовал немного, сам язык очень няшный, но я как-то не слышал, что под андроид он особо используется. Для градла находил плагин для поддержки скалы, но там официально поддерживаются только 22 и 23 версии апи и build tools соотвественно.
iosголовного мозга
Имеет право, это тематический тред в.т.ч. для подобной хуйни. Не кипятись, няш, у нас тут свободное общение.
Повеситься.
Ты не понял. Написано, что успешно пройдены ВСЕ тесты и там и там. Но на моем девайсе их больше почему-то, чем на эмуляторе.
Это норма?
Это такая фича у говноида, сам столкнулся недавно
Да.
Скорее всего прогварда немножко ужал, это норма и хорошо, но не забывай проверить не сломалось ли что-то, у меня так дефолтная сериализация gsonа слетела.
Сбили из консольки с verbose или профайлинном.
Он по умолчанию выключен, и судя по его вопросу он его не включал.
Релизная конфигурация же не содержит отладочных данных, поэтому она всегда немного меньше.
Пишу BLE приложение - получаю фидбэк типа НИРАБОТАЕТ НА МОЕЙ ГАЛАКСИ, хотя версия в коде вроде попадает.
Проверять на разных устройствах. Google Test Lab. Встроить какую-нибудь аналитику и трекать действия.
> а через Intellij я не могу
Другие Я к примеру значит могут, а ты какой-то особенный?
Что ты там не можешь?
Вопрос уровня: "Зачем android, когда есть iOS?"
Зачем скала, когда есть Хаселль?
ну и говно же вы
жаль тебя
я весь бекап twrp прошерстил уже.
картинка блокировки экрана? Спроси на xda - тут тебе не помогут с этим точно. Ну или на 4pda. тут мамкины программисты сидят, они телефон то прошить не могут
> тут мамкины программисты сидят, они телефон то прошить не могут
Прикладное программирование не имеет никакого отношения к желанию трахать ось изнутри, ковырять прошивки и совершать прочие непотребства.
>кинь ссылку на гайд что ли.
Ты нормальный? Какой тебе еще гайд нужен?
Запустил -> Create New Project -> Android -> начал говнокодить
Там все +- тоже самое что и в AS
Я читал это сегодня, там хардкод. Я например не знаю какой у меня будет root, а в примере его тупо затачивают под конкретный xml. C другим root парсер падает с эксепшном.
Что за хуйню ты парсишь? Раз такое дело, парси ручками: https://www.tutorialspoint.com/java_xml/java_dom_parse_document.htm
Делаю сериализатор XML для httpclientа. Бля с json все охуенно, вне зависимости от того что прийдет от серва, он отлично парсится в HashMap, а тут пиздец, уже вторые сутки с этим ебучим XML ебусь.
>Что за хуйню ты парсишь?
А как бы ты сделал? Для каждого ответа от серва клепал бы класс-приемник?
>>893246
Можно какой-нибудь бест практисес пример? Просто я в дальнейшем хочу свой httpclient засунуть в отдельный package и использовать его в других проектах, у меня есть на данный момент клиент использующий okhttp. Я при создании запроса задаю сериализатор, который будет использоваться для парсинга ответа сервера, JSONSerializer и XMLSerializer, получается что если для XML нужно пилить объекты приемники, я не могу его унифицировать. Бля это пиздец какой-то.
Почему не получится, получится, только ты определись тебе Map<String, String> или что-то по сложней.
>>893259
POJO будут писаться в конкретном приложении и под него будут парсится данные, это норма. Никто в здравом уме не будет таскать с собой по приложению какой-нибудь JSONObject или JSONArray.
В идеале Map<String, Object>
> POJO будут писаться в конкретном приложении и под него будут парсится данные, это норма. Никто в здравом уме не будет таскать с собой по приложению какой-нибудь JSONObject или JSONArray.
Я просто не совсем понимаю, как это будет выглядеть. У меня в данный момент схема такая.
Создается sender например в активити
sender.get(URL_SERVER_ADDRESS)
.handler(new ResponseHandler(){
@Override
void success(Map response) {
super.success(response);
// получение ответа
}
@Override
void error(String message) {
super.error(message);
// обработка ошибок
}
})
.send(new XMLSerializer());
handler опциональный, его не обязательно использовать.
в send передается сериализатор, это классы унаследованные от интерфейса
interface HTTPSerializer
{ Map<String, Object> deserialize(String response);
}
ну и в JSONSerializer у меня имплементится
@Override
public Map<String, Object> deserialize(String response) {
// тут я определяю что мне пришло
// определяю JSONObject или JSONArray
// с помощью библиотечки Gson
// конверчу это в Map и возвращаю на выход
}
А вот как провернуть подобное с XML, ума не приложу. И получается если использовать POJO, это немного поломает общую схему?
В идеале Map<String, Object>
> POJO будут писаться в конкретном приложении и под него будут парсится данные, это норма. Никто в здравом уме не будет таскать с собой по приложению какой-нибудь JSONObject или JSONArray.
Я просто не совсем понимаю, как это будет выглядеть. У меня в данный момент схема такая.
Создается sender например в активити
sender.get(URL_SERVER_ADDRESS)
.handler(new ResponseHandler(){
@Override
void success(Map response) {
super.success(response);
// получение ответа
}
@Override
void error(String message) {
super.error(message);
// обработка ошибок
}
})
.send(new XMLSerializer());
handler опциональный, его не обязательно использовать.
в send передается сериализатор, это классы унаследованные от интерфейса
interface HTTPSerializer
{ Map<String, Object> deserialize(String response);
}
ну и в JSONSerializer у меня имплементится
@Override
public Map<String, Object> deserialize(String response) {
// тут я определяю что мне пришло
// определяю JSONObject или JSONArray
// с помощью библиотечки Gson
// конверчу это в Map и возвращаю на выход
}
А вот как провернуть подобное с XML, ума не приложу. И получается если использовать POJO, это немного поломает общую схему?
> Для каждого ответа от серва клепал бы класс-приемник?
Интернет полон сайтов генероторов Java из JSON/XML
Не поломает, а сделает лучше, сейчас клиенту прийдется разгребать всякое говно с Object, что же там такое интересное лежит. А так указываешь маппер при вызове, или вешаешь на целый класс маппер, короче нахуй ты придумываешь велосипед?
Retrofit c GSON или SimpleXML адаптером используйте, а не изобретайте велосипеды с JSONObject и прочим говном, имбецилы необучаемые, блять
Я пытаюсь найти хорошее решение, просто опыта мало.
Молодец, ты умный, хороший.
Что подскажите делать в такой ситуации? Наследника от calendarView? Какие методы тогда переопределять? Или может есть библиотека, где такой функционал присутствует? Чтоб для выбора давалось именно ограниченное кол-во дней а остальные нельзя было выбрать.
Напиши сам.
По ходу тебе нужно писать кастомный дейтпикер. Есть сайтец, емнип называется android arsenal или что то в этом роде, там всякие кастомные контролы в свободном доступе, попробуй там поискать.
Анон, как дела на рынке труда для бездипломных тысячелетних вкатывальщиков? Устал байтики на повозке катать в Си, хочу к вам
Трабла в следующем: приложение должно дергать методы из библиотеки C, она откомпилирована отдельно. Dllimport и все такое.
Собираю, запускаю. При выполнении пишет, мол нету библы, что логично ибо в apk её нет. В проекте то же.
Пока проверял под винной - все работало, либу dll кидал рядом с экзешником а вот под ведром хз.
По каким путям нужно положить этот гребаный .so и куда, что б его увидело? Или как то в проект запихать, чтоб оно само?
Ньюфаг, кодинг - хобби.
Перепробовал несколько с первых ссылок в гугле, ни на одной не работает.
Посоны, неужто такой сложный вопрос? Ответьте хот бы это делается силами vs/xamarin или мне самому нужно выходной apk править?
В папку libs, удивительно. Не ебу где она в ксамариновском проекте, но в обычном джавовском она в корне модуля. Почему бы тебе не погугли подключение наивных библиотек в ксамарине, ты явно не первый.
Это от раздражения, споткнулся на фигне. Пардоньте.
>>893512
В сети вся инфа на случай, если библа компилится из исходников тут же. Или я дурак.
>>893535
>https://forums.xamarin.com/discussion/27692/native-library-so-adding-in-android-library-project
Третий ответ выглядит довольно правдоподобно.
Ну и там не только как с сорцов строить: https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/
Спасибо анончики, уже вечером проверю только.
Но если што не так - знайте, я вернусь.
что думаете?
Бамп
В нейросети не могу, так что новую призму не предлагать.
В объемные данные, которые надо будет хватать с сервера - тоже.
Игры - мимо.
Что-то такое просто и интересное. Типа мобильного приложения сайта(уже делал а-ля медуза).
С таким подходом можно ничего не делать.
Проиграл.
Ты уверен что у тебя правильный C?
Мне кажется там весь проект такой, если жсон просто в Map перегоняют. Друг доедает говно за сирунами.
У меня пизже
Для остроты ощущений
Функцилональные выебоны.
Господь должен заставлять таких людей писать юнит тесты.
Но вот чего я не понимаю - что сложного вынести константу? С ними же потом самим проще это говно редактировать?
Потому что чем хуже тем лучше.
Потому что ненавидят заказчиков, погонщиков, совесельников и тебя лично - и с удовольствием бы тебя удавил, например.
И насколько секурно их тереть с помощью file.delete()?
Просто у Ведра еще галлереи всякие и, насколько я понимаю, внутрисистемная БД для связи файлов с этими самыми галереями/плеерами и не хочется (из соображений секурности), чтобы файл заремувил, а линк на него повис где-то в системе.
Почему учитель в школе за гораздо меньшую зп не рисует хуйцы в журналах, и не пишет детям, что их мамки - шлюхи, родившие их по залету?
Почему эти пидоры мстят начальству, но устраивают ад для простых гребцов?
>не рисует хуйцы в журналах, и не пишет детям, что их мамки - шлюхи, родившие их по залету?
>не
Какие мы оптимисты.
>Почему эти пидоры мстят начальству, но устраивают ад для простых гребцов?
Потому что соси хуй, быдло
Хуйню какую-то платят, так что да, с другой стороны если они будут делать хуево, в норм место не попадут никогда.
https://zeroturnaround.com/software/jrebel-for-android/
Поюзал на десктопе пока триал не кончился было прикольно
После трех дней кодинга, поисков и матюков могу точно сказать, что для решения проблемы с календарем вот этот вот вариант https://github.com/prolificinteractive/material-calendarview однозначно самый лучший и удобный. Там при помощи DayViewDecorator можно просто чудеса с календарем творить) Так что для кастомизации календаря очень удобная штука!
Да, за такие бабки - достаточно вменяемый код.
Премного благодарен.
У меня все в порядке.
>>893821
Делюсь решением!
https://gist.github.com/nightmare00/7b05528de7bdd5874056140678202452
А GoogleAccountCredential как создать?
ШТОЭТАБЛЯДЬ
Есть.
И нахуй тебе помогать тогда? Ладно бы еще шаражная какая-нибудь, так тебя дауна еще и джуном потом возьмут небось.
Нахуй пошёл отсюда. Рака всем, кто ему поможет.
billing in app
public ServiceConnection myConnection = new ServiceConnection() { бла бла };
Не понимат.
myConnection - это переменная, которой присваивается экземпляр ServiceConnection, так?
Тогда что такое скобки?
Анонимный класс
мандада
Скриншоты на пикче, систем бар блокирую так:
void lockSystemBar() {
WindowManager manager = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE));
WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams();
localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
localLayoutParams.gravity = Gravity.TOP;
localLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
localLayoutParams.height = getHeightUiElement("status_bar_height");
localLayoutParams.format = PixelFormat.TRANSPARENT;
systemBarView = new CustomViewGroup(this);
manager.addView(systemBarView, localLayoutParams);
}
> Kotlin threw an uncaught NoClassDefFoundError. Disable Plugin
Version: 1.0.5-release-IJ2016.1-3
Android Studio 2.2.3
У меня он уже около месяца так падает, не помню, начиная с какого обновления
Сижу на чистой IDEA CE и не бед не знаю c Kotlin 1.1-EAP
Main.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Hi"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText1" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Press me" />
</LinearLayout>
MainActivity.cs
using Android.App;
using Android.Widget;
using Android.OS;
namespace App1
{
[Activity(Label = "App1", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Button button1;
TextView textView1;
EditText editText1;
SetContentView(Resource.Layout.Main);
button1 = (Button) FindViewById(Resource.Id.button1);
textView1 = (TextView)FindViewById(Resource.Id.textView1);
editText1 = (EditText)FindViewById(Resource.Id.editText1);
textView1.Text = ("Hi");
}
}
}
Провожу сборку, есть app1.app1-signed.apk, но не в эмуляторе ни на ведрофоне он даже запускаться не хочет. Ведь простая же программа с элементами, где обосрался?
Main.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Hi"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText1" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Press me" />
</LinearLayout>
MainActivity.cs
using Android.App;
using Android.Widget;
using Android.OS;
namespace App1
{
[Activity(Label = "App1", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Button button1;
TextView textView1;
EditText editText1;
SetContentView(Resource.Layout.Main);
button1 = (Button) FindViewById(Resource.Id.button1);
textView1 = (TextView)FindViewById(Resource.Id.textView1);
editText1 = (EditText)FindViewById(Resource.Id.editText1);
textView1.Text = ("Hi");
}
}
}
Провожу сборку, есть app1.app1-signed.apk, но не в эмуляторе ни на ведрофоне он даже запускаться не хочет. Ведь простая же программа с элементами, где обосрался?
Теперь эта напасть? Как переписать onclick, чтобы замена происходила успешно?
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView1.setText("Hi, " + editText1.getText().toString());
}
});
Значит += onClick, че ты C# не знаешь?
1) Что там в логах (исключение какое и стектрейс)?
2) Как ты привязал метод Clicked() к кнопке?
Они там совсем отбитые?
Не нужно, ведь есть Clojure и тот же Kotlin с его first-class функциями и лямбдами
>>896448
Тебе сюда >>827944 (OP) и сюда >>892500 (OP)
Тут не подтирают сопли вкатывальщикам
с чего ты взял что я вкатываюсь только?
Из раза в раз ситуация повторяется. И инициализации не могу найти.
Я серьезно спросил
Вычислил уже. Она живет. Потому что статичная. Щас пошел гуглить как это исправить.
Используй LeakCanary и проследи за интересующими тебя объектами.
Анон, помоги. Есть ли годные ресурсы/литература по бэкенду приложений? В частности, интересует клиент-серверная архитектура и прочее. Сам нашел только гайды а-ля СДЕЛАЙ МЫШКОЙ СЕРВЕР ДЛЯ ВЫВОДА ХЕЛЛОВОРЛД НА СВОЙ ГОВНОСАЙТ или невнятные статьи на хабре типа "Пишем бэкенд, сначала делаем так some code. а потом так some code" и так далее. Подскажи, а?
Нормальному бекенду похуй на клиента. Гугли RESTfull. И для ведра он такой же как и для гейоси или хуеба.
двачую
тут уж позволю себе немножко подкорректировать вас: если говорится о мобильном бэке, то идет большой акцент на то, что у мобилы оперативы то да и мощности проца поменьше, чем у компа, и инет может быть послабже, а потому максимум работы должно осуществляться на сервере
глянь гайд спринга, например, там примитивненько описано как собственные rest-сервисы создавать, дальше уже будет от чего плясать по крайней мере
в сервисе ?)
rx2, свои кастомные concurrency-базированные лесипеды
Не работал ни с чем где для мобилы делались послабления. Ничего особо тяжелого и не встречал, но считаю что если может сайт, то может и мобилка, решает кеширование.
>>897155
По пуш делать - раз плюнуть. Не знаю как с apns, но с fcm/gcm добавить токенов юзеру, удалить токен юзеру, а дальше ПРОСТЕЙШИЕ запросы к гуглу отправить json, ничего сверхвыделяющегося там нет.
Есть ли там методы для атомарного обновления значений в ячейках?
Вариант с несколькими запросами - не вариант. Один запрос не пройдет и пиши пропало.
кто-нибудь, подскажите, пожалуйста, как делать заметки. если у меня их фиксированное количество и все они изначально перед глазами, на фоне картинка.
Так чтобы стало понятно, в логи попадает только before map...
p.p.s. ошибок нигде не кидает, просто пустой эфир
Таки нашел ошибку, внутри анонимки в .map шло выкидывание NPE, который по каким-то неведомым мне причинам нихуя не отлавливался нигде. Таки даешь дебаг всего, путем оборачивания в try-catch :D
Перекатываюсь с божественного WPF.
Ну хз бро. Наебался я в свое время с подходом "Ебашим все в CodeBehind" и ну его нахуй.
годных нет, двустороннего binding-а на моей памяти еще не появилось ( разве что за последние полгода, когда я уже забил и на MVP вкатился ). А почему именно MVVM ?
Не знаю. Привык уже к нему. Не вижу лучшей альтернативы. Вкатился в него, когда хуярил на WPF. Потом перешел с WPF на ангуляр, где он тоже юзается. Писать руками код, который обновляет вьюху - считаю излишней работой.
Посоветуй материала по связке MVVM + WPF, а то в интернете миллион статей на заре 8.1 где упор идёт на мобилы и WinRT а нормального что почитать и нету.
Это не .NET, здесь MVVM бал не правит. Пока попробуешь довести хоть одну клиент-серверку нормальную на MVVM до продакшна - сотню раз возненавидишь себя за такое решение
>>892895
Настоящий андроид девелопер - это не чайник и должен уметь кроме программирования много другое.
Не совсем согласен, иногда программирование на уровне системки может играть важную роль, но, конечно же, ох ебать как иногда
Ну да, под нормальной подразумевается конечно же клиент-серверка на 80-100к+ строчек
Настоящий андроид девелопер — макакер уровня ЖС треда, дрочащий фреймворки и материал десигн. Реально стоящих вещей мало.
В случае провала вызывается subscriber.onError(Throwable e).
Как мне наиболее правильно доставить до UI сообщение об ошибке с учетом локализации?
1) Передать в конструктор Throwable(context.getString(R.string.cat));
2) Заготовить исключений на все случаи жизни и оттопырить в презентере это всё instanceof'ами?
да, пикучу обрезал
Я не удивлен, что ты не знаешь ответа.
Вариант с несколькими классами исключений выглядит самый правильный.
Далее через instanceof определяешь какая ошибка произошла и подгружаешь сообщение откуда захочется.
>Как мне наиболее правильно доставить до UI сообщение об ошибке с учетом локализации?
"Все есть объект"
Ты должен инкапсулировать всю логику преобразования ошибки в UI сообщение в отдельном объекте.
Если лень создавать кучу классов Throwable, можешь юзать один под каждый тип ошибок и параметризовать его enum'ами.
акая MVP либа наиболее адекватна сейчас?
1. Запустил загрузку данных с сайта
2. Перевернул смартфон
3. View уничтожено, асинхронный запрос завершился, а результат негде отображать. Где мне его сохранить, чтобы отобразить как только будет создано View?
В презентере?
http://hannesdorfmann.com/mosby/viewstate/
Между презентером и вью должна быть прослойка для таких ситуаций.
Они все равно затираются и до тебя доходит Throwable, вместо чего-то вменяемого.
Ёбнулся? Какая нахуй либа?
Если он такое говнище льет себе в бложек то не стоит такого "иксперта" воспринимать всерьез ясчитаю.
>Между презентером и вью должна быть прослойка
в mosby это не прослойка, а в moxy - прослойка
В mosby это скрыто при помощи наследования.
По сути да, view и viewstate там в итоге одно и тоже.
Я решаю проблему с помощью презентера с кэшем, который переживает смены конфига в лоадере. Как только допилю и оформлю на гит - закину сюда ссылочку. Будет полайтовее популярный фреймворков
Я делаю так:
1) Из модели летит Exception
2) В презентере через instanceof определяю, что за экзепшн.
3) В зависимости от этого, во вью показывается то, или иное сообщение (в снэкбаре/в диалоге/в отдельном сообщении - это решает презентер)
Тащемта, речь идет об rx-запросе и методе cache - так что да
потому что иногда запросы дорогие, и если идет прерывание в процессе запроса до получения ответа, его придется еще раз делать
Отвратительно, делай всю логику исключений в презентере, за исключением редкостей типа ExpiredTokenException/UserUnauthorizedException и тд
Так он там и делает. Прочитай еще раз.
Я о том что ты не знаешь нормального типа, он потерялся, прийдется прибегать к instanceof, не красиво (не егорка, не бейте).
Судя по всему околоидеал тоже. Иначе как объяснить тот факт, что какой бы код не написал, всегда найдется тот кто его отхуесосит.
К чему быть готовым? Что могут спрашивать? Как все выглядит?
Я просто впервые на собеседование иду, очень волнуюсь, что им рассказывать? Есть говеный курсач с бд и рестом, стоит показывать? Говеный в смысле дизайна, но я думаю за выходные исправить чтобы красиво выглядело. Короче расскажите к чему быть готовым, о чем почитать и мб какие советы будут.
Заходишь в фирму, тебе кидают полотенце под ноги. Ты должен его перешагнуть, но не наступить. Сразу же громко говоришь "Вечер в хату, мужики!". После этого к тебе должен подойти смотрящий и спросить, кто ты по жизни. Ответь, что простой мужик, рабочий. Если предложат в сесть в тазик, отвечай "я сяду, только если ты мне в хуй дунешь".
Выгляди как няша - стильный, опрятный.
Съешь валерьянки на пару с котом можешь наебнуть, заешь орбитом.
Причем если обводку не добавить - клик не проходит. Добавишь - работает, но где сука радиобатонны.
Мож кто подскажет? Код не выкладываю, ибо там все в говно выводами дебажными перемазано.
Выкладываю.
Методы адаптера:
https://codeshare.io/GqBPx2
XML описание радиокнопки:
https://codeshare.io/aYVL3G
>>899069
>>899071
Благодарю, но я все же хотел узнать за техническую сторону вопроса, о чем обычно с джуном говорят?
Задачу про два стула могут спросить. Или про море говна. Или про вилку в глаз.
ну хуй знает, по любому в какой нибудь хуйне опиздаволосился очевидной. И вообще юзай ресайклер, листвью лагать начинает с большим количеством итемов
Да тож понимаю, только третий день нихуя найти не могу. Как начал пытаться оптимизировать архитектуру, перелопачивая взаимодействие между презентером, фрагментом и адаптером так и вылезло это говно. В чем-то очевидном, но блять мы же даже никак радиобатон не добавлем, если он уже в xml-ине находится.
Взял чисто кусок xml с радиобатонном и вставил от балды в другой список. Все работает, хоть и логики никакой нет.
Вобщем походу это... Буду всем говорить что никаких радиобатоннов там и не было никогда. И вы, если чо, ничего не знаете.
>никаких радиобатоннов
Сами уволились вчера?
А если дизайн посмотрят? Не пиши AppCompat<ClassName>, ClassName автоматом на него заменится при компиляции, только если конструктор вызываешь надо компатовский класс писать. Удали все элементы из вьюхи кроме радио. И потом добавляй
Удалил - без изменений. Говорю ж. Не в xml-ине проблема. Ее я не трогал.
Скажу что они нарушали минималистичный дизайн стиль и их пришлось убрать. А вообще это мой соло проект, я его на показать в кампанию делаю и как диплом. Никто не контролирует особо.
enum YobaType{
OCHE_MALIY_YOBA ("oche_maliy_yoba"),
MALIY_YOBA ("maliy_yoba"),
BOLSHOY_YOBA ("bolshoy_yoba"),
OCHE_BOLSHOY_YOBA ("oche_bolshoy_yoba_yoba";
}
Я хочу чтобы по строке получался нужный enum,
то есть
String yobaString = "oche_maliy_yoba"
YobaType currentYobaType = YobaType.valueOf(yobaString);
// В итоге сurrentYobaType должно стать YobaType.OCHE_MALIY_YOBA, но вместо этого я ловлю эксепшн, мол нет такой константы. Как это сделать правильно, а то хуярить кучу if else вообще не вариант
Я тоже так пишу.
Я надеюсь, ты запилил себе дженерик обертку <T extends View> T findViewById(view, id) для этого? Иначе тогда да, как даун.
>>899518
Внутри BF еще и рефлекшон в довесок идет.
У меня приложение было заточено под VK, но теперь через мобильный API нельзя получить список песен.
Есть ли какие-то похожие халявные базы?
Дядь, ты когда вызываешь ButterKnife.bind(view, object) он через Class.forName ищет нужный сгенеренный заранее %ObjectClassName%_ViewBinder.
прикольно, че ещё расскажешь?
Я вам говорю, это один и тот же аутист тред бампает.
Зависит от того что хочешь, большинство ОРМ и библиотек работают все с тем же SQLite, есть Realm, можно тащить с приложением свой бинарник sqlite, но тогда нужно еще кучу кода тянуть, как телеграм.
Но в любом случае надо знать и хорошо разбираться в sqlite, прежде чем переходить на такие штуки?
Желательно, но не обязательно.
Надо хорошо знать реляционную модель данных, нормализацию до 3 формы, понимать принципы построения запросов. Дрочить чистый sqlite, уже имея опыт с реляционными субд, не обязательно, можно хоть сразу орм использовать. Главное, просто не быть тупой макакой.
кнута читай, искусство программирования
@
РАСКЛАДКА ПЕРЕСТАЛА ПЕРЕКЛЮЧАТЬСЯ С РУССКОГО НА АНГЛИЙСКИЙ
@
invalidate caches/restart
у soundcloud вроде апи было
Кстати, а какой правда смысл использовать студию? Что она представляет такого, чего не может идея с андроид плагином?
Андроид специфик штучки раньше обновятся.
Что-то типа fixedthreadpool с одним потоком.
Ага. Далее можно используя этот шедулер просто скармливать ему дохуя observable?
Заранее спасибки, надеюсь, с вашей помощью отмучаюсь поскорее :)
p.s. Сейчас придерживаюсь создания фабрики апишек с помощью ретрофита и надстройки в виде прокси над ней в виде синглтон-менеджера, который не позволяет говнишко всякое пихать в запросы.
И еще такой вопрос, стоит ли создавать DAO и проксю над локальной БД, в которую можно положить любые данные или же пусть пользователи сами ебстутся ? Пока что только база аккаунтов лежит под покровом прокси-менеджера
обновить
Это правильное поведение. Ну млжешь проверить не вызывается ли в твоем коде showErrorDialog. Если нет, то значит там в либе зашито так.
Вопрос снят, решение не красивое, но есть.
Ой, не ту пикчу прикрепил :3
GreenDAO
Почему же ? GreenDao крайне удобен, например, и по производительности весьма хорош
>ORM на ведре — это для долбоёбов.
>Android == Dalvik ~~ JVM
Я тебя дополню: ORM который работает только на ведре - это хреновая орм
Ради чего мы пишем на котлинах и грувях?
Что бы у нас был кроссплатформенный код, максимум которого можно протестировать локально.
К сожалению единственная orm которая это позволяла это OrmLite, но она скорее мертва.
я поржал :) Зачем, если есть готовые тулзы для удобной работы с бд ? Что ты там хранить собрался, что тебе не подходит ни зеленый, ни сах
арный ?
>Можно поизвращаться же с jdbc драйвером.
Да, андроид поддерживает jdbc, только у него нет изкоробочного драйвера для его sqlite.
Сам не юзал правда, благо ormlite позволяет подключаться на прямую.
Один представился.
> Dalvik ~~ JVM
Уже давно ART, но нихуя они не эквивалентны.
> ORM который работает только на ведре - это хреновая орм
StorIO — не ORM.
> Ради чего мы пишем на котлинах и грувях?
Лично мы не пишем, ибо не долбоёбы.
> максимум которого можно протестировать локально
Наверное, ты имеешь в виду на JVM. Как в этом твои котлины/груви/скалы помогут?
Особого смысла писать юнит-тесты для БД так, чтобы они запускались на чистом JVM нету, ибо интеграционные без ведра всё равно написать не получится.
Ну или ебись с jdbc, хули. На SO были чуваки, которые даже Hibernate на ведре использовали.
Примерно так и пишу. С небольшим количеством вспомогательных функций и precompiled statements.
Особого синтаксического сахара тут ожидать не стоит, ибо это не ORM.
>Уже давно ART, но нихуя они не эквивалентны.
Няшь, вот скажи мне, а что это меняет? Тем более сейчас, когда андроид укатился на open jdk.
>запускались на чистом JVM нету, ибо интеграционные без ведра всё равно написать не получится.
С ormlite как-то получалось. Просто логику надо абстрагировать от платформенного уровня.
Я делаю запрос к серверу в IntentService.
Получаю при помощи LocalBroadcast результат.
Но куда мне положить результат на случай, если юзер свернет приложение, чтобы показать ему его, когда он его развернет?
Мне нужно всего лишь показать и закрыть ProgressDialog.
Ок. В базу слишком жирно будет.
Самый известный баг, унаследованный от петушков из JetBrains. Вешай отдельные дополнительные, отдельные клавиши на русскую и английскую раскладки
God Tier
Realm. Большой и тяжеловесный - но быстрый, доделанный и простой в использовании.
Good tier
Native sqlite. Много кода для поддержки - но если нужно пилить нестандартную логику запросов, джоины, всякие нестандартные команды к базе и т.д.
Mid tier
StorIO. Если тебе не нужно чего-то нетривиального, в то же время не нужно огромной ORM - самое то. Убогая архитектура на ресолверах прилагается.
Shit tier
GreenDAO, ORMLite и им подобное говно. Тормоза, рефлексия и прочее не нужны
> StorIO Убогая архитектура
> Native sqlite выше StorIO
> Realm выше всех
Какое авторитетное мнение.
Бамп вопросу. Подсобите плиз. Хеллоуворлд написать хочу.
Гугли parallax view pager, когда-то такое делал.
>Стоит городить retrofit с сущностями
Стоит это кусок кода абстрагировать и вынести в отдельную сущность.
Дальше пишешь тривиальную реализацию и покрываешь ее тестами.
Потом уже, если логика запроса усложнится, то заменишь ее на ретрофит.
>сохранить пароль и логин в приложении
Это безопасно никак не делается. Все что есть на устройстве можно спизидть. Как вариант = AccountManager
Окей, спасибо.
можешь попробовать через жопу шифровать побитовыми сдвигами и прочей хуйней. Из-за того что это чистой воды ебланство ни кто не ломанет, базарю
Это слишком задрочно и не стоит того. Просто блять по ТЗ нужно впихивать логин и пароль в поля, если юзер логинился, а Гугл рекомендует хранить только токен и не сохранять credentials и пиздец.
socket =(BluetoothSocket) device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}).invoke(device,1);
>В Apple тебя с такими извратами сразу бы нахуй послали
Там было бы то же самое только с квадратными скобочками вместо точек.
Анончик, выручай.
Делаю что-то типо курсоуказателя, нужна помощь в выборе фигуры для отрисовки "пропаханного".
В общем, суть: нужно за двигающимся авто/трактором отрисовывать путь/маршрут заданной ширины (точность нужна побольше, чем просто ебануть polyline.width() в пикселях и смотреть как ширина меняется при зуме).
В начале реализовал так: делаю полигон, который перерисовывается, когда добавляется новая точка, получилось вроде как надо(пик 1).
Однако хуета в том, что когда "разворачиваешься" полигон пересекает сам себя и ломается нахуй! Просто в конченную ебалу, нихуя не похожую на няшный полигончик. (пик 2)
Пробовал строить полигон каждые новые две точки, получается крипотно и вообще хуета. (пик 3).
В общем хотелось получить стандартными средствами что-то по типу 4го пика, где полигон отрисовывается замкнутым и достаточно плавным.
Есть ли какие-то еще возможности? Думал еще через GroundOverlay ебануть, но там только прямоугольники, а в Polyline ширину только в пикселях задавать. (Собственно для полигона тоже, но я сам рассчитываю его координаты и влияю на точность)
Заранее дякую, если вопросы еще есть - задавайте.
В прямом. Вот в iOS проекте есть plist, как можно повторить его в Android проекте?
Я вполне вежливо задал вопрос, тут есть те кто перекатился с iOS на Android, следовательно могут на него ответить. Поэтому когда мне отвечают
> А мы ебем что у тебя там делает plist?
в таком духе, я отвечаю взаимностью.
plist это просто xml файл, так что у тебя два выбора
1) сгенерить java классы из твоего plist и сериализовать/десеризовать их
2) загружать сырой plist и работать с ним как с DOM и делать выборки через xpath
если ты хочешь просто хранить иерархические данные, лучше заюзать shared preferences
Как будто в Глайде её нету.
https://github.com/bumptech/glide/wiki/Integration-Libraries#okhttp
Дуров в Твиттере присывлает, если попросить
Напиши сам приложение, запускающее 2 приложения через getLaunchIntentForPackage.
Хотя я не представляю, зачем это нужно.
В onCreate первого приложения пишешь
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("имя.второго приложения","имя.второго.приложения.MainActivity"));
startActivity(intent);
>>901786
Программаны, я здесь залетный. Не совсем вас понимаю, можно обьяснить для даунов? Нужно чтобы скроблер и аудио плеер вместе запускались, вот.
Найди названия пакетов скроблера и аудиоплеера, там будет что-то типа com.yoballc.audioplayer или com.zaloopa.scrobler. А в своем приложении стартуешь их через интент, как я написал выше. Или ты спрашиваешь не как программист а как пользователь андроида?
> Или ты спрашиваешь не как программист а как пользователь андроида?
2ое , скроблер перестал запускаться автоматически при старте воспроизведения . Теперь всегда нужно запускать сперва плеер, а затем скроблер, ну или в другом порядке, похуй. Но главное чтобы скроблер был запущен и висел в процессах. Можно конечно никогда его не отключать, но я хотел найти более эргономичный вариант.
Ну сорян, чем мог тем помог. Как вариант, попробуй разобраться почем скроблер перестал запускаться как раньше.
вниз
Гугли сглаживание poliyne, вроде немало примеров было. Насколько я помню там нужно подшаманить с MitterCap или что-то в этом роде и тогда углы будут не острые а скругленные.
Ты там фрагментами не балуешься? Если ты первый фрагмент добавил в бекстек, то после нажатия на назад его выплюнет, а активити еще останется.
Балуюсь, но в бэкстэк ничего не добавлял. по крайней мере осознано
Такая же проблема происходит и при возвращении из простеньких активити, не имеющих фрагментов.
Подобную парашу не банят: https://play.google.com/store/apps/details?id=com.dextrit.trumpytheplumpy
С чего должны забанить тебя? Делай для стима, если не уверен, туда что угодно пропустят.
Цель сделать именно на ведро, рискну все таки. Просто начитался про удаление приложений из за всякой хуеты, а потом еще про баны аккаунтов из за обращений в сапорт, чтобы эти приложение вернули. Складывается впечатление что гуглу вообще похую на людей, которым сервис обязан своей аудиторией.
Когда я запихнул LinearLayout с двумя списками в ScrollView, стали неадекватно вести себя адаптеры. Убрал ScrollView - стал отображаться только первый список, и тот до середины экрана.
Что мне делать, анон? Что-то вроде CoordinatorLayout осваивать?
Кто как, ВКашка до сих пор на лонг полинге живет, другие на сокетах. Можешь телегу глянуть. Ну так себе влияет на батарею, но гугл заставляет всех пользоваться GCM, так что нормально.
Походу щелчек на кнопку передается айтему. Как заблочить?
Не до конца понял, что тебе нужно. Из того что понял могу сказать следующее: пили ресайклер в который клади итемы expandableRecycler(загугли это). Заполняй эти expandableRecycler'ы своими контактами. По умолчанию поставь, чтоб первый итем в корневом ресайлере был развернут, а когда до 2ого долистаешь(onBind поидее вызовется, ну или погугли, как определить, какой итем на экране) сворачивай первый и разворачивай 2ой
Fresco
Бамп вопросу.
Опытным путем установил, что такое происходит только при переходах типа Slide и Explode. При переходе Fade все работает как надо. Фрагментов в бэкстэке нет, это тоже проверил.
http://pastebin.com/p2QRXhRk
Получается следующее - после нескольких заходов во вторую активити из первой, по возвращению в первую ловится пикрелейтед. Собственно пустой экран цвета android:windowBackground из темы приложения. Количество возвращений до пустого экрана в среднем от 2 до 5, от чего оно зависит, проследить не смог. При одинаковых условиях оно было разным.
При этом, основная активити таки продолжает работать, проверил onResume() - он выполняется несмотря на пустой экран. Если повернуть девайс или еще как-нибудь перезапустить активити - все отобразиться корректно.
Все запросы в гугле, какие смог придумать, в итоге ничем не помогли. Может, это какая-то проблема отрисовки или типо того, но я уже не знаю, как к ней подступиться.
Мин апи 21, тема приложения наследуется от Theme.AppCompat.Light.DarkActionBar
Первая активити http://pastebin.com/ZR8PpbWi
Вторая активити http://pastebin.com/g4yACq5D
Фрагмент, вложенный в первую активити http://pastebin.com/4qwNGpSt
Я ещё не дошёл до этого. Но могу посоветовать попробовать кастомную либу для переходов. Видел статью на медиуме, где описывались кучи багов в Transitions Api
И у фрагментов есть такая штука как setRetainedInstance
Нашел только кастомные либы для совместимости с api<15.
Пробовал, кстати, делать через overridePendingTransition, эффект такой же, как и через средства апи 21.
>>902467
>Ебаный говнокод. Тебе не стыдно?
Нет, я не погромист.
>А по теме, вангую у тебя батернайф чудит
Проверил сделанный до перехода на баттернайф коммит, такое же дерьмо.
Мне нужно, чтобы половина списка была expandableRecycler, а половина - простые контакты. Я пока слабо знаком с RecyclerView, и не уверен, что можно справиться одним списком
Можно справиться одним списком. Я делал свой exandablerecyclerview с двойной вложенностью (группы в группах). Сиди да пихай себе notifyItemRangeInserted, или еще на порядок проще через DiffUtil.
for(ViewGroup group : listOfViews)
В этом цикле я хочу запихнуть их все в один ViewGroup, который потом в свою очередь запихнуть в Activity, как это лучше всего сделать?
Создаешь нужный тебе вьюгруп xml, инциализируешь в активити, затем пихаешь в него свои вьюхи во вьюхе.
Весьма скучно такое делать.
Именно.
Хотя они возможно исправились
https://google.github.io/styleguide/javaguide.html#s5.2.5-non-constant-field-names
О, я помню N тредов назад аноны ругались.
Перекат https://2ch.hk/pr/res/902606.html (М)
Перекат https://2ch.hk/pr/res/902606.html (М)
Перекат https://2ch.hk/pr/res/902606.html (М)
Перекат https://2ch.hk/pr/res/902606.html (М)
Примерно такую приложуху видел на МООС, вроде от едХ, можешь сразу загуглить. АПИ точно то же.
Анончик, не агрись - он уже почти год в как вышел и постоянно набирает обороты.
Пора бы уже смириться что знание Kotlin является плюсом на собеседованиях.
ну типа нахуй он кому нужен, синтаксический сахар над жабой + медленный билд - все, что он способен дать
нет, процентов 90 вакансий - на мидлов и сеньоров
И глядя с текущей "высоты" вниз, на свой путь, настоятельно рекомендую сначала досконально изучить java core курс (Эккеля хватит с некоторыми небольшими урывками типа concurrency, references, jmm) дабы подходя в ведру заниматься не дрочем жабы, а непосредственно ведром
Не понимаю. Я вообще код писать не умел, когда начинал писать под андроид, но всё легко изучил. Можно делать так, как хочется, правильного варианта нет.
Что-нибудь сложнее простой клиент-серверки в жизни хоть раз на андроид написал ?
Писал. И при чём тут это?
Они переживают, сами лодеры. А вот таски к ним привязанные — перезапускаются. Это норма.
В прикрепленном ньюфаг-треде ссылка именно на этот тред стоит, наверное поэтому.
Вы видите копию треда, сохраненную 30 января 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.