Этого треда уже нет.
Это копия, сохраненная 30 января 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
104 Кб, 800x726
Android Development Thread 2.0.4 #885914 В конец треда | Веб
Android Development Thread 2.0.4

Мир твоему смартфону, анон. Прежде чем задавать свой вопрос, прочитай:

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 (М)
#2 #885919
Как у андроида с фрилансом и удаленкой?
885945
#3 #885934
Скажите must read книги.
Есть же явно какая-то литература.
885945
57 Кб, 460x604
#4 #885945
>>885919
Индусы и студенты, тысячи их.
>>885934
Пик.
#5 #885996
>>885914 (OP)
Мусорные вёдра, скажите, планируется ли поддержда джавы 8 в андроиде, и когда?
886008886024
#6 #886008
>>885996
чего тебе не хватает?
#7 #886024
>>885996
В 24-ом ведре завезли уже, раньше только ретролямбда/jack.
886031
#8 #886031
>>886024

> В 24-ом ведре завезли уже, раньше только ретролямбда/jack.


На уровне виртуальной машины новые инструкции? Тогда хорошо, через 5 лет может будет пользоваться.
Впрочем, я о подобном не слышал. Так что только retrolambda остаётся. А джек, когда я им пользовался в последний раз, был вообще неюзабелен, не знаю точно, как сейчас.
30 Кб, 367x750
#9 #886053
Андреи, такой вопрос. Почему при изменении базы данных при повторной компиляции нихуя не меняется. Помогает только удалить/установить приложение.
886055
#10 #886055
>>886053
стандартная? в onUpgrade версию поднимал?
886057
146 Кб, 1080x1349
#11 #886057
>>886055
да SQLite

public void onUpgrade(SQLiteDatabase db, int oldV, int newV)
db.execSQL("DROP TABLE IF NOT EXISTS ")
onCreate(db);

Еще в отладчике пишет что где-то у меня в базе утечка, но я в душе не ебу где её закрывать. И вообще прочитал что сейчас андроид такой крутой, что ему похуй на эти утечки. Но вот, то что надо переустанавливать приложение что-бы появилась инфа из базы, вот это реально заебует.
886065886130886383
150 Кб, 1310x506
#12 #886065
>>886057
если ты про структурные изменения бд, то скорее всегда в super конструктора не передаешь новую версию. На утечки похуй если у тебя например курсор остаеться незакрытыми или бд или пока ты не для прода пишешь
886180
#13 #886130
>>886057
нужно базу с сервера потомучто грузить, как нормальные люди
886265886383
#14 #886179
Сап, ананасы, долго и тщательно копал интернеты на тему того, как сделать dual-pane без костылей только на фрагментах (да-да, master/detail flow в оф гайдах считаю мерзким), сделал свой велосипед. Можете посоветовать, как бы обойти постоянные executePendingTransactions() ?
https://gitlab.com/i.komarov/multipane-fragmentmanager/tree/master
886187886247886268
#15 #886180
>>886065
а смерджить ?)
#16 #886187
>>886179
Да, сейчас сделаю простенький sample, пока что не уверен работает ли там сохранение состояния правильно, или нет. (состояния отдельных фрагментов соответственно)
#17 #886247
>>886179
UPD: не работает, ибо я накосячил, сейчас допиливаю, отпишу когда запашет :) Если у кого есть желание помочь - буду рад.
#18 #886265
>>886130

>грузить с сервера


И че при апдейте делать? Выкинуть пользователя из приложения и синкать все?
886267
#19 #886267
>>886265
Нет жеж, диалог и мерджить
#20 #886268
>>886179
Да, полностью рабочая версия готова, два дня, огромное тепловыделение сами-знаете-откуда, низкая производительность, но оно работает, и аналогов нет!
Если кто-то поможет прооптимизировать - буду очень признателен. Если найдете баги - тоже прошу написать :)
124 Кб, 865x1080
#21 #886383
>>886130>>886057

Буду очень признателен если кто-то посмотрит в чем проблема.

https://codepaste.net/gaa5pp
886405
#22 #886405
>>886383
Всё хуйня, переделывай.
Зачем ты хранишь SQLiteDatabase в хелпере? Зачем у тебя там методы чтения записи. Читай документацию, как с бд работают на ведре.
#23 #886422
>>885914 (OP)
Аноны, у меня есть CollapsingToolbarLayout и NestedScrollView. Так вот, когда я докручиваю до конца, то нет всего содержимого, которое должно быть, оно как бы находится под navigation bar'ом, но когда я переворачиваю в ленд скейп (navigation bar становится сбоку, а не снизу), то происходит то же самое. Всё работает нормально если добавить layout_marginBottom="?actionBarSize". Но щас мне пришлость добавить в NestedScrollView TextView, которое надо раскрывать, и когда я вызываю textView.setMaxLines(...) появляется этот самый отступ снизу, как быть? А, ещё при вызове setMaxLines срабатывает OffsetChangedListener у AppBarLayout.
#24 #886449
Антуаны суть такова, хочу сохранить проэкт. У меня есть неполный проэкт, как бы превью, хочу выложить его в маркет, а потом дополнить проэкт и выложить его уже в маркет за определенную сумму. Но старый проэкт который бесплатный, я бы тоже хотел обновлять когда и обновляю платный проэкт. Как бы это сделать? В студии нету же save as. По логике я бы его просто сохранил под другим именем. Но нет же, это мне придется создавать новый проэкт и всё переносить туда. Может есть способ полегче?
886456
sage #25 #886456
>>886449
build flavors
#26 #886584
Котаны, где почитать как сделать авторизацию для REST api?
У меня регистрация на сайте через google Oauth2, но понадобилось еще сделать api для мобильного приложения.
886626886925
sage #27 #886626
>>886584
Google -> firebase Google oauth
886834
#28 #886834
>>886626
Firebase мне не нужна.
#29 #886925
>>886584
webview и отлавливай deep link в shouldOverrideUrlLoading WebViewClient-а
#30 #887087
Есть программно создаваемые textview. Нужно чтобы удалялся вью "смахиванием". Гуглю уже тучу времени, но разобраться не могу. Можно ли сделать полный аналог Оnclick? То есть написать метод, который получал бы на вход вью и при действии "смахивание" выполнил бы удаление? В примерах, которые мне попадались, только что-то вроде "если смахнули вправо, печатаем "вправо", а действий над конкретным вью - нет.
887195
#31 #887195
>>887087
RecyclerView + ItemTouchHelper + onSwiped
887440
#32 #887401
Все описанное в доках гугла это то, как делают и нужно делать?
Используют ли вообще те примеры, что в доках в реальной жизни или это просто для новичков?
#33 #887440
>>887195
Спасибо!
336 Кб, 823x720
#34 #887442
Как в андроиде реализуется аналог UITableView секции из iOS? Пока что вижу полный отсос андроида в этом плане. Допустим у меня есть куча динамических секций, с разным количеством колонок в каждой, как бы такое реализовали?
887449
#35 #887449
>>887442
Берешь и без задней мысли реализовываешь в скролл вью с инфлейтом своих секций. Есть есть реюзабл ячейки - используешь RecyclerView.
887454
#36 #887454
>>887449
То есть инфлейтить кучу recyclerview в scrollview? Это загнется уже на 3 recyclerview.
887465887478
#37 #887465
>>887454
Либо инфлейты в скроллвью, либо ресайклервью.
#38 #887478
>>887454
Дебил? Один ресайклервью и в нем разные секции.
887499
#39 #887499
>>887478
Еще раз, в одной секции 2 колонки, в другой 3, в третьей 4 потом снова 1 итд, как ты в говноиде это запилишь? никак
887515887734
#40 #887515
>>887499
Прочитай про отдельные итем ресайклера может поймешь, ебень.
887529
50 Кб, 200x195
#41 #887529
>>887515
Не пизди петух, ты такое никогда не реализовывал и даже не знаешь как такое делается. Завали ебало, чмырь.
887561891135
#42 #887561
>>887529
Как хорошо что не все iosники такте инвалиды.
Разные итем он не знает как сделать лол.
887580
#43 #887580
>>887561
Я знаю как сделать разные itemType, долбоебушка. Я спрашиваю как ты сделаешь разные СЕКЦИИ одних и тех же айтемов.
887606887616
#44 #887606
>>887580
Укаждого view type своя специальная вьюха, и там рисуй секции-хуекции аллаха.
#45 #887616
>>887580
Ios-дебил, тебя в гугле забанили? Вбиваешь sectioned recyclerview, а лучше сразу fast adapter, и смотришь код на гитабе. Ручками реализуется, Вася - списочком, или хэшмапиком, и его анализом. Количество генерируемых вьюх тоже регулируется.
Android - это программирование, а не кодинг (в отличии от ios, и всякой backend-web-параши), там можно и нужно придумывать свои решения
887740
#46 #887734
>>887499
через GridLayoutManager и его SpanSizeLookup
#47 #887740
>>887616
Кекнул с дауна, который не знает ничего кроме джавы и андройдапи и говорит, что Андройд - этопогромирование
887775
#48 #887775
>>887740
Дебил, я говорю о сравнении с иос, рубями, питонами.Там никто не напрягается на тему КАК СДЕЛАТЬ ЕБАНЫЙ СПИСОК С СЕКЦИЯМИ.
#49 #887947
Когда через glide пихаешь пикчу в imageview он ведь меняет подгоняет её размеры под размеры imageview? Ну то есть, не будет ли это сжирать память, если в маленький imageview пихать большую пикчу? Или может сам imageview это делает?
888106
#50 #888019
Парни, кто-нибудь ловил интересности при сложении/вычитании ебанных чисел формата double/float?При нажатии на кнопку определенную число должно увеличиваться на 0.1. Но оно увеличивается на 0.100...052343 или вроде того.И спустя 5-6 кликов оно увеличится уже не на 0.1, а на 0.2, в связи с этими накоплениями. Несколько часов убил, так и не понял, в чем дело. В итоге организовал всё через костыли. К слову, проект не мой, дали доделать, но код весь прошерстил и ничего особенного не обнаружил.
888024888161888211
#51 #888024
>>888019
0.1 - констаньа. Меняться не может.
Что-то ты делаешь не так.
888030
#52 #888030
>>888024
Окей, распишу подробней. Есть объект, в нем есть поле double. Происходит нажатие на кнопку,я беру значение поля,прибавляю 0.1d и получившееся отображаю на экран
888038888040
#53 #888035
Анон, какие карты ты используешь?Яндекс мап кит или Гугл?Как ощущения, на чем остановился?Алсо, сам пользую яндекс, но невозможность посмотреть исходный код и баги на некоторых телефонах как-то подзаебывают.
sage #54 #888038
>>888030
Прочитай уже про представление чисел с плавающей запятой в компьютере.
888051
sage #55 #888040
>>888030
Или съеби в js-тред.
#56 #888051
>>888038
С плавающей точкой, умник.Почему при компиляции в одном проекте 0.2 + 0.1 = 0.3, а в другом 0.2 + 0.1 = 0.300...03453?Где тут это замешано?
888054
sage #57 #888054
>>888051
Потому, что мать твоя шлюха.
#58 #888106
>>887947
ImageView сама сжимает/режет, но битмапка будет загружена вся. Если ты сам не скейланешь.
#59 #888161
>>888019
Покажи сорец. Не может быть таких сильных отклонений в простом коде.

Если тебе нужны значения без ошибок округления, то используй java.math.BigDecimal
#60 #888211
>>888019
Твоя проблема тут

>число должно увеличиваться на 0.1


Запомни, юный небесный странник, нецелочисленная арифметика крайне неточна, при каждой подобной операции происходит накопление ошибок, посему нельзя использовать результат подобного присваивания для последующих операций, погрешность нужно регулярно сбрасывать, разрывая такие замкнутые круги по переменным, как у тебя.
Тащемто это широкоизвестный прием работы с такой арифметикой.

Собственно у тебя и выхода нет:
Либо сбрасываешь ошибку, либо организуешь целочисленные вычесления, либо используешь тяжелую длинную арифметику - она от ошибок не избавит, просто отодвинет их на чуть более поздний срок.

Обычно стараются юзать целочисленную арифметику и приведения чисел, потому что с нецелочисленной арифметикой легко обосраться, и трудно обнаружить этот обосрамс - достаточно сделать одну ошибку, забыть сбросить ошибку например, и все, результат загублен.
#61 #888293
Господа, а есть ли standalone UI пререндер, cpu/gpu/memory мониторы? Студия конечно хорошо и тд. Но мне она надоела, вот нахуя она качает к каждому проекту gradle, когда у меня он стоит в системе? Посему хочу ради эксперимента попробовать поработать не в студии, а в каком нибудь саблайме.
888306888367888390
#62 #888306
>>888293
Бери vim, для него плагин есть
#63 #888367
>>888293

> вот нахуя она качает к каждому проекту gradle


Так там кэширование есть библиотек и самого gradle

>Посему хочу ради эксперимента попробовать поработать не в студии, а в каком нибудь саблайме.


Тоже пытаюсь ради прикола работать в Atom.
Поставил плагин на gradle build + подсветка синтаксиса kotlin - работать можно, но сложно без авто ипортов
888390
#64 #888390
>>888367
>>888293
А что эклипс не попробуете? Охуенная тема жи.
888430888439
#65 #888430
>>888390

>Охуенная


На любителя, тем более он будет всю хуйню делать.
#66 #888439
>>888390

>А что эклипс не попробуете? Охуенная тема жи.


На эклипсе ADT сидел пару лет до появления Android Studio.
С каждым релизом он становился тяжелее и глючнее, точно на него не вернусь.

Вообще чистой IDEA CE хватает за глаза, Atom так побаловаться пока не завезут автокомлит Kotlin.
#67 #888768
>>885914 (OP)
Аноны, нахуй нужен JobScheduler? Правильно ли я понял, что это замена BroadcastReceiver, которые регаются в манифесте на системные интенты и потом стартуют сервис?
#68 #888825
>>888035
гугол, там есть нужная мне кластеризация и прочий пересчет координат и проекций. Но ужасно напрягает, что нет такого гибкого балуна, как в яндексе. Приходится костыли городить
#69 #888830
>>885914 (OP)

>И хотя бы оно готовое приложение.


А какого уровня приложение надо что бы ватиться? Парсер картинок? Работа с крупным Апи?
889060889067
#70 #888831
>>888035
Они выкатили новый мап кит? Или там до сих пор он со времен андроид 2?
889178
#71 #888917
Господа, кто юзал BackupAgent? У меня надо после автобекапа тереть токен, и пару таблиц в БД. В какой момент вообще вызываются методы бэкап агента относительно аппликейшена (до/после onCreate)?
Или вы вообще все вырубаете автобекап в манифесте?
888984
#72 #888984
>>888917
Отключи бекап токена и бд, чё ты как не это. С другой стороны тебе тогда нечего бекапить, так что смело отключайте все.
889029
#73 #889029
>>888984
В том то и дело. У меня надо бекапить несколько табличек бд, но в то же время стоит тереть другие таблички, где внешние ключи висят на первых (т.е., вынести в отдельную базку - неочень вариант).
889041
#74 #889041
>>889029
Он только файлы и папки умеет бекапить, так что отдельные таблицы - не вариант.
#75 #889060
>>888830
бамп вопросу
#76 #889067
>>888830
Клиент для какого-нибудь REST API. Например, приложение которое предлагается сделать в курсе на юдасити.
889113889252
#77 #889113
>>889067
Ссыль можно?
889125
sage #78 #889125
>>889113

>Ссыль можно?


Нельзя конечно, вдруг еще напишешь kek и потом работу у меня отберешь kek2.

И даже не пытайся гуглить.
889143
#79 #889143
>>889125
Я про урок с рестом.
#80 #889178
>>888831
Недавно вышло незначительное обновление,фикс багов.А так да, старая залупа.Но альтернатив не вижу,кроме гугла.
#81 #889252
>>889067
Popular Movies?
#82 #889420
Анон, доставьте проектов, с которыми возьмут на джуна.

И вообще, как вкатиться? Среди 10 вакансий только 1 не сениор а миддл.
Без 1+ года вообще нахуй никому не нужен.
#83 #889528
Посоны, трудно вкатиться на upwork имея полгода опыта за плечами?Умею в английский,фрагменты,еблю с RecyclerView,карты,REST API... и так далее и тому подобное.Или же толпы индусов не оставят шанса?
889848
#84 #889553
Как научиться делать игры для андроид? Заканчиваю девятый класс, хорошо знаю c++ и немного java. Собираюсь после окончания стать работать фрилансером.
889557889570
#85 #889557
>>889553
Я наверн обдвачевался, потому что не могу поверить, что ты не зеленый.
#86 #889570
>>889553

>для андроид


>хорошо знаю c++


>стать работать фрилансером

#87 #889713
>>888035
мапбокс смотрел?
890141
22 Кб, 346x76
#88 #889815
Андроны, есть проэкт с более 20-тью активи, хотел запилить разные версии с рекламой и без. Создал в проэкте две папки free, paid, прописал в градле флэворы. И начал переносить свой проэкт из мэина, путем копи паста в папку paid , и что я блять вижу, пакеты не находит, импортированные библиотеки тоже. Ебанная R ни один элемент не видит. Это блять надо 20 с хуем активити править ебанные названия пакетов, добавлять приставку .paid, .free. нахуй оно надо? Почему всё так хуево сделано?
889824889833889835
sage #89 #889824
>>889815
Butterknife
889847
#90 #889833
>>889815
Запили уже себе хелпер класс с методом, который делает findViewById с приведением к дженерик типу.
889847
#91 #889835
>>889815
find all and replace in dir юзни
889847
#92 #889837
>>888035
google, ибо все наши проекты любезные ios-ники переводят на еблугл. Течет как сучка при виде меня (нет), дырявая что пиздец, оперативы жрет туевы хучи. Не используй никогда, анон, умоляю тебя
192 Кб, 933x1396
#93 #889847
>>889824
>>889833
>>889835
Спасибо Ананасы, сейчас буду разбирать. И еще манифест должен быть в каждой папке, разной версии программы ? Я вот перенес с папки main всё в папку paid, и в free. Но при компиляции, выдает ошибку что нету манифеста в папке Main. Нахуя оно вообще туда лезет если в build variant я выбираю Paid ?
#94 #889848
>>889528
Учитывая то, что ты сказал "Умею в фрагменты" - тебе бы выкатиться, а не вкатиться
889852
sage #95 #889852
>>889848
Даун?
890005
#96 #889939
Как вылавливать ошибки в датабайндинге? В ошибках пишет только что пакет/символ не найден и если одна ошибка то все классы сгенерированные будут не найдены. Из предупреждений только просьба использовать метод референс, заменить "." на ":".
889950
#97 #889950
>>889939
А зачем тебе датабиндинг?
889970889972
#98 #889970
>>889950
Удобно, нет разрывающих пукан findViewById и необходимости хранить во фрагменте какую-нибудь хуйню типа адаптера доя ресайклера, просто setAdapter и все ну и тд.
889979890002
#99 #889972
>>889950
Просто блять коллега взял код из другой ветки, а там была видать запушена хуйня какая-то, и теперь проект не собирается, я как вышестоящий должен разобраться чо за хуйню они там устроили и какого хуя в обход меня, но это другая история. Вот две ошибки нашел с помощью варнингов, а дальше непонятно.
sage #100 #889979
>>889970
Вот и ебись теперь с отладкой и тестированием, раз так удобно.
#101 #889999
Хм, такой вопрос, если использовать RxBinding, то в каком слое MVP ( ну понятное дело в данном случае View или Presenter ) и в каком виде нужно содержать Observer-ы. Тут в принципе понятно, что нужно как-то содержать их в презентере, но не мутить же овер дохуя анонимок, али мутить ?
890009
#102 #890002
>>889970
нормальные люди и так не хранят во фрагменте адаптер для ресайклера, у меня например универсальный йоба-адаптер для всех случаев жизни, работающий на рефлексии и rx-стероидах, который может все
890040890060
#103 #890005
>>889852
Ну типа нет, давай объясню так, чтобы ты понял: приходит человек на работу программистов и говорит о своих навыках: "Ну я печатать быстро умею, еще могу вам пинг-понг-бонг на жабе написать". Как думаешь, что скажут ? То, что человек знает азы и так понятно, если он работать идет
#104 #890009
>>889999

>но не мутить же овер дохуя анонимок, али мутить ?


Юзай лямбды
890080
#105 #890040
>>890002

>reflection


Нет спасибо.
sage #106 #890060
>>890002

> который может все


SRP? Не, не слышали.
890079
#107 #890079
>>890060
Ой, смотрите, любитель бойлерплейта нашелся. Адаптер более чем соответствует SRP, он выполняет четко поставленную задачу. То, что он поддерживает доп фичи - уже дело разработчика, то, что он универсальный - тоже вопрос любви к бойлерплейту
#108 #890080
>>890009
Ну ты монстр ответов, однако, вопрос был в другом. Но по факту я предполагаю что нужно что-нибудь с комбинацией Observable делать, ибо их уже 6 штук и это только первый день я посидел над проектом и это без сети и прочего, only view
890087
#109 #890087
>>890080
Нахуй ты вьюхи через Observable делаешь? Ты что, ебанутый?
890100
#110 #890090
>>885914 (OP)
где хранится фоновая картинка экрана блокировки андроида 5.0?
я до сих пор не могу найти
890143
#111 #890100
>>890087
некоторые эвенты лучше обрабатывать именно так - это во-первых. Во-вторых, увидел такой подход у кое-каких ребят, стало интересно попробовать
890142
#112 #890107
Аноны, в требованиях говорится
Понимание основных принципов программирования на Android

что имеется ввиду?
только вкатываюсь, вакансия стажера.
890109
#113 #890109
>>890107
увидел в шапке, спасибо.
#114 #890141
>>889713
Нет.
Выглядит вкусно, а как там с кастомизацией балунов?
#115 #890142
>>890100
В том-то и дело, что только некоторые.
Ну ок, дрочи на Артемку, если хочется.
sage #116 #890143
>>890090
Возможно она хранится в пизде твоей мамаши шлюхи
892772
#117 #890194
Блять, почему мой сервис киллится и не рестартится? START_STICKY и ACTION_BOOT_COMPLETED прописаны. Редми 3 если что.
890718890981
#118 #890718
>>890194

> МИУИОПТИМИЗАЦИИ

892051
#119 #890981
>>890194
Тестируй на nexus 5.
892051
#120 #891040
Переписывал недавно старый проект, задался вопросом.
В проекте однотипные поля, но их количество и тип всегда разный.
На сраный экран с 4 et в til, ушло около 200 строк, с учетом валидаций, отображения ошибок сохранения состояний при пересоздании и тд.
Офк мвп\мввм и подобное не предлагать, там локики кот наплакал, и количество кода оно не уменьшит, так вот к чему я, задался вопросом, какого хуя?
Юзал bk, d2, support, ip. Соответственно, выходит либо пишешь на нативе + либы, либо пилишь собственный фреймворк. Но это всегда по боку выходит, кто-нибудь уже задумывался об этом?
#121 #891070
Ребят, а какая сейчас версия минимальна для теста, 4.0 или уже выше?
891072
#122 #891072
>>891070
Для какого теста?
891078
#123 #891078
>>891072
Просто прилажухи на андройде.
15 Кб, 1120x268
12 Кб, 1129x233
15 Кб, 1130x438
9 Кб, 1133x262
#124 #891094
Нужен человек который сможет завтра в 12-13 мск помочь с тестом по классам джава и немного андроид студии
telegram: @ozzmo
Насчет оплаты договоримся
Примеры заданий прилагаю
Тест рассчитан на 1.5 часа
891096891097891099
#125 #891096
>>891094
А это вообще для студняка или школы?
891101
#126 #891097
>>891094
Щас бы задачки уровня джавараш студентам решать.
sage #127 #891099
>>891094
Пошёл нахуй, говно. Зарепорил.
891149
#128 #891101
>>891096
школы
на скале кто-то пишет тут? #129 #891114
есть?
891118
#130 #891115
Прохожу курс на юдасити и там надо добавлять тесты для приложения, ну я добавил, все проходится нормально. Но обнаружил что если запускаю тесты на своем телефоне с 19 апи то прогоняются 10 тестов, а запускаю на эмуляторе с апи 25, то прогоняются 6 тестов. Откуда эта разница? Почему так? Поясните пожалуйста.
891326
#131 #891118
>>891114
Пробовал немного, сам язык очень няшный, но я как-то не слышал, что под андроид он особо используется. Для градла находил плагин для поддержки скалы, но там официально поддерживаются только 22 и 23 версии апи и build tools соотвественно.
#132 #891135
>>887529
iosголовного мозга
#133 #891149
>>891099
Имеет право, это тематический тред в.т.ч. для подобной хуйни. Не кипятись, няш, у нас тут свободное общение.
#134 #891326
>>891115
Когда ты прогоняешь тесты и какие-то не выполняются, в них пишется почему...
891712
#135 #891645
доктор, у меня вечный gradle:build при создании или загрузке проекта. Что мне делать???
891700892285
sage #136 #891700
>>891645
Повеситься.
#137 #891712
>>891326

Ты не понял. Написано, что успешно пройдены ВСЕ тесты и там и там. Но на моем девайсе их больше почему-то, чем на эмуляторе.
#138 #892051
>>890718
>>890981
Таки-да, на HTC Explorer сервис жив после перезагрузки. Буду смотреть дальше.
#139 #892172
Такая проблема с RecyclerView - если долго листать вниз, затем начать листать наверх, то айтемы, изображения из которых уже выгрузились из кэша, начинают резко "выскакивать" сверху, вместо плавной прокрутки. Это возможно как-то пофиксить?
892230
#140 #892220
Делаю апкшник в AS - приложение весит чуть меньше, чем то, которое заливается при отладке.

Это норма?
892264892291
#141 #892230
>>892172
Это такая фича у говноида, сам столкнулся недавно
#142 #892264
#143 #892285
>>891645
бамп
892294
#144 #892291
>>892220
Скорее всего прогварда немножко ужал, это норма и хорошо, но не забывай проверить не сломалось ли что-то, у меня так дефолтная сериализация gsonа слетела.
892297892321
#145 #892294
>>892285
Сбили из консольки с verbose или профайлинном.
#146 #892297
>>892291

>прогварда


Что это и для чего?
892413
#147 #892321
>>892291
Он по умолчанию выключен, и судя по его вопросу он его не включал.
Релизная конфигурация же не содержит отладочных данных, поэтому она всегда немного меньше.
#148 #892345
Что вообще можете сказать по поводу совместимости с разными устройствами?

Пишу BLE приложение - получаю фидбэк типа НИРАБОТАЕТ НА МОЕЙ ГАЛАКСИ, хотя версия в коде вроде попадает.
892422
#150 #892422
>>892345
Проверять на разных устройствах. Google Test Lab. Встроить какую-нибудь аналитику и трекать действия.
android scala #151 #892549
блять, не могу никак создать проект на скала через IDE. Вроде как Android Studio не работает, а через Intellij я не могу. Есть какой-нибудь блять гайд, что бы это все запилить?
892556892579
#152 #892556
>>892549
Зачем тебе скала, когда есть котлин?
892600892633
#153 #892579
>>892549

> а через Intellij я не могу


Другие Я к примеру значит могут, а ты какой-то особенный?
Что ты там не можешь?
892709
#154 #892600
>>892556
Вопрос уровня: "Зачем android, когда есть iOS?"
#155 #892633
>>892556
Зачем котлин, когда есть скала?
892755
#156 #892709
>>892579
кинь ссылку на гайд что ли..
Вот скачал я IntelliJ дальше что?
892931
#157 #892755
>>892633
Зачем скала, когда есть Хаселль?
#158 #892772
>>890143
ну и говно же вы
#159 #892773
кто скажет мне где хранится эта ёбаная картинка в ётафоне2 с 134 прошивкой скину 100р
#160 #892776
апну для трипла
#161 #892777
если не скажете где картинка никому из вас не повезет. сила трипла
892795
#162 #892795
>>892777
/sdcard/jёpa/huy
892801
#163 #892801
>>892795
жаль тебя
#164 #892810
блять пиздец неужели никто из вас не может просто подсказать? кроме этого козла, который меня постоянно посылает?
я весь бекап twrp прошерстил уже.
892868
#165 #892868
>>892810
вопрос то какой?
892869
#166 #892869
>>892868
картинка блокировки экрана? Спроси на xda - тут тебе не помогут с этим точно. Ну или на 4pda. тут мамкины программисты сидят, они телефон то прошить не могут
892881892895892933
#167 #892881
>>892869

> они телефон то прошить не могут


А ты можешь? Блин, круто...
#168 #892895
>>892869

> тут мамкины программисты сидят, они телефон то прошить не могут


Прикладное программирование не имеет никакого отношения к желанию трахать ось изнутри, ковырять прошивки и совершать прочие непотребства.
898180898193
#169 #892931
>>892709

>кинь ссылку на гайд что ли.


Ты нормальный? Какой тебе еще гайд нужен?

Запустил -> Create New Project -> Android -> начал говнокодить
Там все +- тоже самое что и в AS
74 Кб, 405x350
sage #170 #892933
>>892869
Сук блять съеби уже в /mobi/, весь тред засрал я тебя репортить буду
#171 #893120
Как можно сконвертировать динамичную XML в HashMap? Перепробовал кучу либ, но у них почему то примеры заточены под конкретные классы, я понятия не имею какие у меня поля будут, мне нужно вне зависимости от них упаковать их в Map. В данный момент остановился на xStream, но он тоже отказывается паковать мои xml.
893170
#173 #893176
>>893170
Я читал это сегодня, там хардкод. Я например не знаю какой у меня будет root, а в примере его тупо затачивают под конкретный xml. C другим root парсер падает с эксепшном.
893184
#174 #893184
>>893176
Что за хуйню ты парсишь? Раз такое дело, парси ручками: https://www.tutorialspoint.com/java_xml/java_dom_parse_document.htm
893221893225
#175 #893221
>>893184
Делаю сериализатор XML для httpclientа. Бля с json все охуенно, вне зависимости от того что прийдет от серва, он отлично парсится в HashMap, а тут пиздец, уже вторые сутки с этим ебучим XML ебусь.
#176 #893225
>>893184

>Что за хуйню ты парсишь?


А как бы ты сделал? Для каждого ответа от серва клепал бы класс-приемник?
893245893246893285
#177 #893245
893255893259
#178 #893246
>>893225
Ну так и делают ващет.
893255893259
#179 #893255
>>893245
>>893246
То есть что, универсальный способ как с json не получится сделать?
893266
#180 #893259
>>893245
>>893246
Можно какой-нибудь бест практисес пример? Просто я в дальнейшем хочу свой httpclient засунуть в отдельный package и использовать его в других проектах, у меня есть на данный момент клиент использующий okhttp. Я при создании запроса задаю сериализатор, который будет использоваться для парсинга ответа сервера, JSONSerializer и XMLSerializer, получается что если для XML нужно пилить объекты приемники, я не могу его унифицировать. Бля это пиздец какой-то.
893266
#181 #893266
>>893255
Почему не получится, получится, только ты определись тебе Map<String, String> или что-то по сложней.
>>893259
POJO будут писаться в конкретном приложении и под него будут парсится данные, это норма. Никто в здравом уме не будет таскать с собой по приложению какой-нибудь JSONObject или JSONArray.
893280
#182 #893280
>>893266
В идеале 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, это немного поломает общую схему?
#182 #893280
>>893266
В идеале 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, это немного поломает общую схему?
893295
#183 #893285
>>893225

> Для каждого ответа от серва клепал бы класс-приемник?


Интернет полон сайтов генероторов Java из JSON/XML
#184 #893295
>>893280
Не поломает, а сделает лучше, сейчас клиенту прийдется разгребать всякое говно с Object, что же там такое интересное лежит. А так указываешь маппер при вызове, или вешаешь на целый класс маппер, короче нахуй ты придумываешь велосипед?
893298
#185 #893297
Что за хуйню вы здесь обсуждаете?
Retrofit c GSON или SimpleXML адаптером используйте, а не изобретайте велосипеды с JSONObject и прочим говном, имбецилы необучаемые, блять
893302
#186 #893298
>>893295
Я пытаюсь найти хорошее решение, просто опыта мало.
#187 #893302
>>893297
Молодец, ты умный, хороший.
301 Кб, 811x1137
#188 #893304
Привет, андроидо аноны, помогите решить следующую проблему: необходимо сделать вьюшку (не диалог) для выбора необходимой даты (datePicker / calendarView), но чтоб при этом выбирать можно было только из ОГРАНИЧЕННОГО списка дат, а остальные дизейблились. Ну и само собой возможные для выбора подсвечивались одним цветов, а остальные другим. Пересмотрел все, что есть в вышеуказанных datePicker и calendarView , там нужного не нашел, максимум что можно сделать - выбор даты ОТ одной и ДО другой, но это не то. Поискал несколько сторонних либ, там по функционалу тоже самое.
Что подскажите делать в такой ситуации? Наследника от calendarView? Какие методы тогда переопределять? Или может есть библиотека, где такой функционал присутствует? Чтоб для выбора давалось именно ограниченное кол-во дней а остальные нельзя было выбрать.
893306893307894190
#189 #893306
>>893304
Напиши сам.
#190 #893307
>>893304
По ходу тебе нужно писать кастомный дейтпикер. Есть сайтец, емнип называется android arsenal или что то в этом роде, там всякие кастомные контролы в свободном доступе, попробуй там поискать.
#191 #893326
>>885914 (OP)
Анон, как дела на рынке труда для бездипломных тысячелетних вкатывальщиков? Устал байтики на повозке катать в Си, хочу к вам
#192 #893443
Антон умеет в xamarin? Поможет?
Трабла в следующем: приложение должно дергать методы из библиотеки C, она откомпилирована отдельно. Dllimport и все такое.
Собираю, запускаю. При выполнении пишет, мол нету библы, что логично ибо в apk её нет. В проекте то же.
Пока проверял под винной - все работало, либу dll кидал рядом с экзешником а вот под ведром хз.
По каким путям нужно положить этот гребаный .so и куда, что б его увидело? Или как то в проект запихать, чтоб оно само?
Ньюфаг, кодинг - хобби.
893488893493893512
#193 #893454
Господа, подскажите библиотеку с PreferenceCompat, где работает клик на вложенный PrefererenceScreen, и есть материал десигн?
Перепробовал несколько с первых ссылок в гугле, ни на одной не работает.
893579
#194 #893488
>>893443
Бамп его!
893495
#195 #893493
>>893443
Посоны, неужто такой сложный вопрос? Ответьте хот бы это делается силами vs/xamarin или мне самому нужно выходной apk править?
893495
#196 #893495
>>893493
>>893488
Ты из бэ чтоли, что так переживаешь, что тебе аж за 3(!!!!) часа не ответили?
Придет котлиноеб, может ответит, у него есть опыт в этом говне.
#197 #893512
>>893443
В папку libs, удивительно. Не ебу где она в ксамариновском проекте, но в обычном джавовском она в корне модуля. Почему бы тебе не погугли подключение наивных библиотек в ксамарине, ты явно не первый.
893532
#198 #893532
>>893512
Это от раздражения, споткнулся на фигне. Пардоньте.
>>893512
В сети вся инфа на случай, если библа компилится из исходников тут же. Или я дурак.
893542
#199 #893535
После работы попробую собрать проект с внешней динамической библиотекой внутри, гляну, как это будет выглядеть. Но это пиздец неудобно.
893542
#200 #893542
>>893532
>>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/
#201 #893548
https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/ читал, но не вкурилось, видимо плохо пытался.

Спасибо анончики, уже вечером проверю только.
Но если што не так - знайте, я вернусь.
#202 #893563
Тут кто-нибудь юзал XStream?
#203 #893572
хранить презентер в конфиг персистент компоненте даггера. в активити/вью инжектится презентер, в базовой активити/вью в бандл сохраняется айди на onSaveInstanceState. по этому айди в статический мап слхраняется компонент даггера со всеми нужными зависимостями (презентер этц)

что думаете?
#204 #893579
>>893454
Бамп
#205 #893593
Есть у кого идеи, какой сервис можно реализовать сейчас? Мне для веселья и получения опыта(ну и набитого портфолио).

В нейросети не могу, так что новую призму не предлагать.
В объемные данные, которые надо будет хватать с сервера - тоже.
Игры - мимо.

Что-то такое просто и интересное. Типа мобильного приложения сайта(уже делал а-ля медуза).
893601
#206 #893601
>>893593
Клиент для двача
893603
#207 #893603
>>893601
а разве его нет?
893733
#208 #893733
>>893603
С таким подходом можно ничего не делать.
#209 #893821
Какой BEST WAY узнать имя и фамилию гугловского аккаунта?
894367894395
339 Кб, 1934x910
#210 #893848
Господь, жги!
#211 #893855
>>893848
Проиграл.
#212 #893868
>>893848
тут ещё 300 строчек, и как я понимаю, это далеко не конец
893887
43 Кб, 960x845
#213 #893876
>>893848
А у меня норм?
893885893888
#214 #893885
>>893876
Ты уверен что у тебя правильный C?
#215 #893887
>>893868
Мне кажется там весь проект такой, если жсон просто в Map перегоняют. Друг доедает говно за сирунами.
21 Кб, 798x400
#216 #893888
>>893876
У меня пизже
12 Кб, 770x262
#217 #893890
Раз такая пьянка... Только вкатываюсь в ведро, оцените.
893892893905
#218 #893892
>>893890
Зачем тебе JNI?
893900
#219 #893900
>>893892
Для остроты ощущений
#220 #893905
>>893890
<- это что? последний раз делал lab2 на плюсах
893914
#221 #893914
>>893905
Функцилональные выебоны.
#222 #893985
Хей .дроиды. Шлю уведомление через notificationManager, отсрачиваю отправку Handler postDelayed. Эта ебань работает, но если перекатываюсь на рил девайс, то уведомление не отправляется (надо отправлять от пары часов до суток). Видимо срабатывает какое-то энергосбережение. Куда копать? Просить права(как?) или будить приложение через событие типа будильника(как?). Кто побеждал такое?
894021
#223 #894021
>>893985

> postDelayed на несколько часов


Пиздец.
AlarmManager юзай.
#224 #894023
>>893848
Господь должен заставлять таких людей писать юнит тесты.
Но вот чего я не понимаю - что сложного вынести константу? С ними же потом самим проще это говно редактировать?
894030894079
#225 #894030
>>894023
Потому что чем хуже тем лучше.
Потому что ненавидят заказчиков, погонщиков, совесельников и тебя лично - и с удовольствием бы тебя удавил, например.
894041894079
45 Кб, 600x559
#226 #894038
Анан, а скажи, есть в android sdk средства для безвозвратного и, желательно, достаточно низкоуровневого удаления файлов (вот прям совсем нахуй, но желательно на жабе)?
И насколько секурно их тереть с помощью file.delete()?
Просто у Ведра еще галлереи всякие и, насколько я понимаю, внутрисистемная БД для связи файлов с этими самыми галереями/плеерами и не хочется (из соображений секурности), чтобы файл заремувил, а линк на него повис где-то в системе.
894083
#227 #894041
>>894030
Почему учитель в школе за гораздо меньшую зп не рисует хуйцы в журналах, и не пишет детям, что их мамки - шлюхи, родившие их по залету?
Почему эти пидоры мстят начальству, но устраивают ад для простых гребцов?
894080894084
#228 #894079
>>894023
>>894030
Долбоебы просто они, там не только в константу, а в типизированный POJO выносить надо. И все будет норм, и текст явно не хардкодить нужно.
#229 #894080
>>894041
Это СТАРТАП не волнуйся.
894086
#230 #894083
>>894038
DocumentProvider, ContentResolver::delete, в зависимости от условий.
894121
#231 #894084
>>894041

>не рисует хуйцы в журналах, и не пишет детям, что их мамки - шлюхи, родившие их по залету?


>не


Какие мы оптимисты.

>Почему эти пидоры мстят начальству, но устраивают ад для простых гребцов?


Потому что соси хуй, быдло
#232 #894086
>>894080

>СТАРТАП


То есть все тоже самое, только денег не платят.
894088
#233 #894088
>>894086
Хуйню какую-то платят, так что да, с другой стороны если они будут делать хуево, в норм место не попадут никогда.
894219
#234 #894121
>>894083
>>894083
Спасибки, попробую. Чет я подзабыл про них.
#235 #894173
Котаны, а как по-максимуму разогнать скорость билда ?
894177894181894183
#238 #894183
>>894173
https://zeroturnaround.com/software/jrebel-for-android/

Поюзал на десктопе пока триал не кончился было прикольно
#239 #894190
Снова всем привет, я вот этот анон >>893304 .
После трех дней кодинга, поисков и матюков могу точно сказать, что для решения проблемы с календарем вот этот вот вариант https://github.com/prolificinteractive/material-calendarview однозначно самый лучший и удобный. Там при помощи DayViewDecorator можно просто чудеса с календарем творить) Так что для кастомизации календаря очень удобная штука!
#240 #894214
Подскажите ньюфагу, как сделать, чтобы если TextView ограничен одной строкой, но текста в нем больше, чем на одну строку, в конце добавлялись три точки?
894216
#241 #894216
>>894214
в xml свойство
android:ellipsize="end"
добавь
894351
#242 #894219
>>894088
Но ведь в ваших стартапах платят 50-100, и это гораздо больше зп учителя
894241
#243 #894241
>>894219
Хз как, у них 800 баксов. А может тем говноделам еще меньше платили.
894345
#244 #894345
>>894241
Да, за такие бабки - достаточно вменяемый код.
#245 #894351
>>894216
Премного благодарен.
358 Кб, 1024x683
#246 #894367
>>893821
Котобамп вопросу.
894395
#247 #894378
сап, котаны. Тут такая тема, либо я ебанутый, либо рантайм пермишены геолокации теперь закрывают приложение на 6ке. Тестил на самсунге и эмуляторе. Че за говно, раньше же такого не было
894387
#248 #894387
>>894378
У меня все в порядке.
244 Кб, 963x3743
#249 #894391
Бля. Это конструктор
894533
#252 #894490
>>894402
А GoogleAccountCredential как создать?
#253 #894533
>>894391
ШТОЭТАБЛЯДЬ
1282 Кб, 249x206
#254 #894534
Апельсинки, а есть у гугула какая-нибудь статистика отражающая процент наличия датчиков (освещения, высоты, и т.д) на общее количество устройств на рынке?
894553
#255 #894553
>>894534
Есть.
36 Кб, 1002x440
43 Кб, 987x586
21 Кб, 906x402
#256 #894624
Памагити
894625894639895111
48 Кб, 997x362
#257 #894625
#258 #894639
>>894624
Что за тест?
894640
#259 #894640
>>894639
от самсунговской школы
894649
#260 #894649
>>894640
И нахуй тебе помогать тогда? Ладно бы еще шаражная какая-нибудь, так тебя дауна еще и джуном потом возьмут небось.
894650
#261 #894650
>>894649
Для школьников школа
каким джуном
мне корочка ток нужна
894684
sage #262 #894684
>>894650
Нахуй пошёл отсюда. Рака всем, кто ему поможет.
#263 #894698
Что проще делать: shared element transition между fragment и activity, или между двумя fragment?
sage #264 #895111
>>894624
Свали отсюда, школьник, и иди учись.
ещё раз - и репорт
#265 #895121
Ананасы, есть закрыте разделы в программе, чем сделать так что-бы в приложении можно было купить этот раздел и он откроется?
895184
#266 #895184
>>895121
billing in app
#267 #895262
MyService myService;
public ServiceConnection myConnection = new ServiceConnection() { бла бла };

Не понимат.
myConnection - это переменная, которой присваивается экземпляр ServiceConnection, так?

Тогда что такое скобки?
895266895658
#268 #895266
>>895262
Анонимный класс
#269 #895658
>>895262
мандада
49 Кб, 1280x630
#270 #895747
Аноны, подскажите по такому вопросу. Есть задача разработать приложение которое будет работать в kiosk mode, т.е. отключить возможности свернуть или закрыть приложение. Версия Android < 5, поэтому просто использовать screen pinning не выйдет. Основная часть задачи была решена добавлением двух прозрачных view поверх system & nav панелей. Но при открытии клавиатуры, вместе с ней появляется новый navBar, который по видимому является частью ее окна. Каким образом можно либо получить ссылку на его WindowManager, чтобы добавить вьюху в него так же через метод addView(View view, ViewGroup.LayoutParams params), либо просто скрыть это бар?

Скриншоты на пикче, систем бар блокирую так:

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);
}
895803
#272 #895943
У вас котлин плагин не отвалился после обновления?

> Kotlin threw an uncaught NoClassDefFoundError. Disable Plugin



Version: 1.0.5-release-IJ2016.1-3
Android Studio 2.2.3
895955896058
#273 #895955
>>895943
У меня он уже около месяца так падает, не помню, начиная с какого обновления
#274 #896058
>>895943
Сижу на чистой IDEA CE и не бед не знаю c Kotlin 1.1-EAP
61 Кб, 604x602
#275 #896138
Ананасы, подскажите полному нубу что не так.

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, но не в эмуляторе ни на ведрофоне он даже запускаться не хочет. Ведь простая же программа с элементами, где обосрался?
61 Кб, 604x602
#275 #896138
Ананасы, подскажите полному нубу что не так.

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, но не в эмуляторе ни на ведрофоне он даже запускаться не хочет. Ведь простая же программа с элементами, где обосрался?
896152896278
#276 #896152
>>896138
Отбой, запустилось само как-то.
896167
74 Кб, 1231x500
17 Кб, 415x193
#277 #896167
>>896152
Теперь эта напасть? Как переписать onclick, чтобы замена происходила успешно?
896212896249896427
#278 #896212
>>896167
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView1.setText("Hi, " + editText1.getText().toString());
}
});
896248
#279 #896248
>>896212
это же xamarin
896257
#281 #896257
>>896248
Значит += onClick, че ты C# не знаешь?
sage #282 #896278
>>896138

> где обосрался?


Выбрал говнофреймворк вместо нативной разработки.
#283 #896427
>>896167
1) Что там в логах (исключение какое и стектрейс)?
2) Как ты привязал метод Clicked() к кнопке?
#284 #896435
896451896452
#285 #896448
аноны, какое простенькое приложение написать для портфолио? Что бы с нетворком и бэкжндом. Бэкэнда нет, взять бы готовый, типа гитхаба.. Но приложение под гитхаб скучно
896452
#286 #896451
>>896435
Они там совсем отбитые?
sage #287 #896452
>>896435
Не нужно, ведь есть Clojure и тот же Kotlin с его first-class функциями и лямбдами

>>896448
Тебе сюда >>827944 (OP) и сюда >>892500 (OP)
Тут не подтирают сопли вкатывальщикам
896475
#288 #896475
>>896452
с чего ты взял что я вкатываюсь только?
#289 #896659
Что сейчас модно использовать для многопоточки в больших с взрослых проектах? Вроде сейчас в тренде Rx, но он не имеет привязки к жизненному циклу, robospice вроде уже почти не используют, опять же из-за того что все переехали на Rx или по другой причине? Посмотрел небольшую библиотеку Chronos, она умеет и лайвцикл и кэш, у кого-то есть продолжительный опыт использования оной? В общем поделитесь опытом.
896701897157
#290 #896701
>>896659
AsyncTask
896713
#291 #896704
Каковы шансы того что переменная продолжает хранить ссылку на объект даже после выхода из приложения?
Из раза в раз ситуация повторяется. И инициализации не могу найти.
896715896720897156
#292 #896713
>>896701
Я серьезно спросил
#293 #896715
>>896704
Попробуй встроенным в AS мемори-профайлером воспользоваться
896717
#294 #896717
>>896715
Вычислил уже. Она живет. Потому что статичная. Щас пошел гуглить как это исправить.
#295 #896720
>>896704
Используй LeakCanary и проследи за интересующими тебя объектами.
#296 #896840
>>885914 (OP)
Анон, помоги. Есть ли годные ресурсы/литература по бэкенду приложений? В частности, интересует клиент-серверная архитектура и прочее. Сам нашел только гайды а-ля СДЕЛАЙ МЫШКОЙ СЕРВЕР ДЛЯ ВЫВОДА ХЕЛЛОВОРЛД НА СВОЙ ГОВНОСАЙТ или невнятные статьи на хабре типа "Пишем бэкенд, сначала делаем так some code. а потом так some code" и так далее. Подскажи, а?
896992897154
#297 #896992
>>896840
Причем здесь андроид?
897087
#298 #897087
>>896992
Вопрос был о бэкенде мобильных приложений. В частности, под ведро.
897135
#299 #897135
>>897087
Нормальному бекенду похуй на клиента. Гугли RESTfull. И для ведра он такой же как и для гейоси или хуеба.
897136897153
#300 #897136
>>897135
двачую
#301 #897153
>>897135
тут уж позволю себе немножко подкорректировать вас: если говорится о мобильном бэке, то идет большой акцент на то, что у мобилы оперативы то да и мощности проца поменьше, чем у компа, и инет может быть послабже, а потому максимум работы должно осуществляться на сервере
897155897167
#302 #897154
>>896840
глянь гайд спринга, например, там примитивненько описано как собственные rest-сервисы создавать, дальше уже будет от чего плясать по крайней мере
#303 #897155
>>897153
ну и пуши, конечно же в основном - по части мобильного бэка
897167
#304 #897156
>>896704
в сервисе ?)
#305 #897157
>>896659
rx2, свои кастомные concurrency-базированные лесипеды
#306 #897167
>>897153
Не работал ни с чем где для мобилы делались послабления. Ничего особо тяжелого и не встречал, но считаю что если может сайт, то может и мобилка, решает кеширование.
>>897155
По пуш делать - раз плюнуть. Не знаю как с apns, но с fcm/gcm добавить токенов юзеру, удалить токен юзеру, а дальше ПРОСТЕЙШИЕ запросы к гуглу отправить json, ничего сверхвыделяющегося там нет.
264 Кб, 558x420
#307 #897190
Котаны, кто-нибудь юзал API Google Sheets? (com.google.apis:google-api-services-sheets:v4-rev38-1.22.0)
Есть ли там методы для атомарного обновления значений в ячейках?
Вариант с несколькими запросами - не вариант. Один запрос не пройдет и пиши пропало.
#308 #897262
>>885914 (OP)
кто-нибудь, подскажите, пожалуйста, как делать заметки. если у меня их фиксированное количество и все они изначально перед глазами, на фоне картинка.
35 Кб, 610x152
#309 #897764
Сап, котаны, ебусь с траблой уже наверное часика три. Суть - есть дохуя жирный rx2-чейн. Но эта сука прерывает эмиттинг итемов где-то. Нашел-таки где (см пик). Схуяли такое может происходить ? все происходит на io.
897765897818897992
#310 #897765
>>897764
Так чтобы стало понятно, в логи попадает только before map...
#311 #897818
>>897764
p.p.s. ошибок нигде не кидает, просто пустой эфир
#312 #897992
>>897764
Таки нашел ошибку, внутри анонимки в .map шло выкидывание NPE, который по каким-то неведомым мне причинам нихуя не отлавливался нигде. Таки даешь дебаг всего, путем оборачивания в try-catch :D
898005
sage #313 #898005
#314 #898038
Антуаны подскажите годные MVVM + DI фреймворки под разработку на андрюше.
Перекатываюсь с божественного WPF.
898041898047
#315 #898041
>>898038

> mvvm фреимворки


Их полторы и всем похуй на твое mvvm.
898042
#316 #898042
>>898041
Ну хз бро. Наебался я в свое время с подходом "Ебашим все в CodeBehind" и ну его нахуй.
898141
#317 #898047
>>898038
годных нет, двустороннего binding-а на моей памяти еще не появилось ( разве что за последние полгода, когда я уже забил и на MVP вкатился ). А почему именно MVVM ?
898049902293
#318 #898049
>>898047
Не знаю. Привык уже к нему. Не вижу лучшей альтернативы. Вкатился в него, когда хуярил на WPF. Потом перешел с WPF на ангуляр, где он тоже юзается. Писать руками код, который обновляет вьюху - считаю излишней работой.
898163
#319 #898141
>>898042
Посоветуй материала по связке MVVM + WPF, а то в интернете миллион статей на заре 8.1 где упор идёт на мобилы и WinRT а нормального что почитать и нету.
#320 #898163
>>898049
Это не .NET, здесь MVVM бал не правит. Пока попробуешь довести хоть одну клиент-серверку нормальную на MVVM до продакшна - сотню раз возненавидишь себя за такое решение
898194
#321 #898180
>>892895
>>892895
Настоящий андроид девелопер - это не чайник и должен уметь кроме программирования много другое.
898275
#322 #898193
>>892895
Не совсем согласен, иногда программирование на уровне системки может играть важную роль, но, конечно же, ох ебать как иногда
#323 #898194
>>898163
Ну да, под нормальной подразумевается конечно же клиент-серверка на 80-100к+ строчек
#324 #898275
>>898180
Настоящий андроид девелопер — макакер уровня ЖС треда, дрочащий фреймворки и материал десигн. Реально стоящих вещей мало.
248 Кб, 488x393
#325 #898303
Котаны, у меня есть Observable, в которой некий запрос к API.
В случае провала вызывается subscriber.onError(Throwable e).
Как мне наиболее правильно доставить до UI сообщение об ошибке с учетом локализации?

1) Передать в конструктор Throwable(context.getString(R.string.cat));
2) Заготовить исключений на все случаи жизни и оттопырить в презентере это всё instanceof'ами?

да, пикучу обрезал
#326 #898329
>>898303
Про разделение логики и представления слышал?
898331
#327 #898331
>>898329
Отвечай конкретно.
Конечно же слышал.
898336
sage #328 #898336
>>898331
Ответил тебе за щеку.
898338
#329 #898338
>>898336
Я не удивлен, что ты не знаешь ответа.
#330 #898349
>>898303
Вариант с несколькими классами исключений выглядит самый правильный.
Далее через instanceof определяешь какая ошибка произошла и подгружаешь сообщение откуда захочется.
898377
9 Кб, 100x100
#331 #898374
>>898303

>Как мне наиболее правильно доставить до UI сообщение об ошибке с учетом локализации?


"Все есть объект"
Ты должен инкапсулировать всю логику преобразования ошибки в UI сообщение в отдельном объекте.

Если лень создавать кучу классов Throwable, можешь юзать один под каждый тип ошибок и параметризовать его enum'ами.
898440
#332 #898377
>>898349

> через instanceof определяешь какая ошибка


Блядь, ты троллишь так или серьезно?
#333 #898385
Имеет ли смысл в почти что 2017-ом изобретать свою MVP хуйню или стоит взять готовую?
акая MVP либа наиболее адекватна сейчас?
898445
#334 #898412
Есть у меня Model, Presenter и View.
1. Запустил загрузку данных с сайта
2. Перевернул смартфон
3. View уничтожено, асинхронный запрос завершился, а результат негде отображать. Где мне его сохранить, чтобы отобразить как только будет создано View?
В презентере?
898431898570
#335 #898431
>>898412
http://hannesdorfmann.com/mosby/viewstate/

Между презентером и вью должна быть прослойка для таких ситуаций.
898449898462898598
#336 #898440
>>898374
Они все равно затираются и до тебя доходит Throwable, вместо чего-то вменяемого.
898794
sage #337 #898445
>>898385
Ёбнулся? Какая нахуй либа?
#338 #898449
>>898431
У меня на этом сайте вся верстка прыгает, что за имбецил его писал?
898459
#339 #898459
>>898449
Hannes Dorfmann
898461
#340 #898461
>>898459
Если он такое говнище льет себе в бложек то не стоит такого "иксперта" воспринимать всерьез ясчитаю.
#341 #898462
>>898431

>Между презентером и вью должна быть прослойка


в mosby это не прослойка, а в moxy - прослойка
898463
#342 #898463
>>898462
В mosby это скрыто при помощи наследования.
По сути да, view и viewstate там в итоге одно и тоже.
#343 #898570
>>898412
Я решаю проблему с помощью презентера с кэшем, который переживает смены конфига в лоадере. Как только допилю и оформлю на гит - закину сюда ссылочку. Будет полайтовее популярный фреймворков
898598
#344 #898598
>>898431
>>898570
Господа, имхо, в большинстве случаев это - код ради кода. Почему бы просто не кэшировать сами запросы во время выполнения, а потом сохранять отписываться от них в onPause/подписываться в onResume?
898782898810
#345 #898607
>>898303
Я делаю так:
1) Из модели летит Exception
2) В презентере через instanceof определяю, что за экзепшн.
3) В зависимости от этого, во вью показывается то, или иное сообщение (в снэкбаре/в диалоге/в отдельном сообщении - это решает презентер)
898811
#346 #898782
>>898598
При подписывании поддянется резульиат, который где-то лежит?
898789
#347 #898789
>>898782
Тащемта, речь идет об rx-запросе и методе cache - так что да
#348 #898794
>>898440
Ты можешь его выкинуть опять throw e и обработать в любом месте
898842
#349 #898810
>>898598
потому что иногда запросы дорогие, и если идет прерывание в процессе запроса до получения ответа, его придется еще раз делать
#350 #898811
>>898607
Отвратительно, делай всю логику исключений в презентере, за исключением редкостей типа ExpiredTokenException/UserUnauthorizedException и тд
898841
#351 #898841
>>898811
Так он там и делает. Прочитай еще раз.
#352 #898842
>>898794
Я о том что ты не знаешь нормального типа, он потерялся, прийдется прибегать к instanceof, не красиво (не егорка, не бейте).
#353 #898896
Пиздец, как писать идеальный код, чтобы никто не доебался? Ни один учебник этому не учит.
898901
#354 #898901
>>898896
Потому что идеал недостижим, чмонька.
898906
#355 #898906
>>898901
Судя по всему околоидеал тоже. Иначе как объяснить тот факт, что какой бы код не написал, всегда найдется тот кто его отхуесосит.
#356 #899059
Пригласили на собеседование (джуном). Одна из топовых фирм города. Пригласила рекрутерша по джунам, думаю они набирают на обучение всяких бомжей типа меня.
К чему быть готовым? Что могут спрашивать? Как все выглядит?
Я просто впервые на собеседование иду, очень волнуюсь, что им рассказывать? Есть говеный курсач с бд и рестом, стоит показывать? Говеный в смысле дизайна, но я думаю за выходные исправить чтобы красиво выглядело. Короче расскажите к чему быть готовым, о чем почитать и мб какие советы будут.
899069899071899084
sage #357 #899069
>>899059
Заходишь в фирму, тебе кидают полотенце под ноги. Ты должен его перешагнуть, но не наступить. Сразу же громко говоришь "Вечер в хату, мужики!". После этого к тебе должен подойти смотрящий и спросить, кто ты по жизни. Ответь, что простой мужик, рабочий. Если предложат в сесть в тазик, отвечай "я сяду, только если ты мне в хуй дунешь".
899278
#358 #899071
>>899059
Выгляди как няша - стильный, опрятный.
Съешь валерьянки на пару с котом можешь наебнуть, заешь орбитом.
899278
102 Кб, 413x276
#360 #899160
Кто-то спер мои радиобаттоны. На скрине должны быть слева от каждого айтема, там щас обводка. Сам ее добавил что бы понять где они сука. Не выводятся бладж тупо. Причем в xml ничо не менял. Взаимодействие между адаптером и фрагментом менял, но блин, для вывода радиобаттонов нихрена же и не надо, только в getView адаптера возвращать layout с гребанным радиобаттоном. И текст-вьюхи работают же у айтема.

Причем если обводку не добавить - клик не проходит. Добавишь - работает, но где сука радиобатонны.

Мож кто подскажет? Код не выкладываю, ибо там все в говно выводами дебажными перемазано.
899179
#361 #899179
>>899160
Выкладываю.
Методы адаптера:
https://codeshare.io/GqBPx2
XML описание радиокнопки:
https://codeshare.io/aYVL3G
899335
#362 #899278
>>899084
>>899069
>>899071
Благодарю, но я все же хотел узнать за техническую сторону вопроса, о чем обычно с джуном говорят?
899369
#363 #899335
>>899179
в импортах там все в поряде? radio button appCompatv7 импортируешь?
899341
#364 #899341
>>899335
Не, просто RadioButton был. Но замена результатов не принесла
899440
sage #365 #899369
>>899278
Задачу про два стула могут спросить. Или про море говна. Или про вилку в глаз.
#366 #899440
>>899341
ну хуй знает, по любому в какой нибудь хуйне опиздаволосился очевидной. И вообще юзай ресайклер, листвью лагать начинает с большим количеством итемов
899444
#367 #899444
>>899440
Да тож понимаю, только третий день нихуя найти не могу. Как начал пытаться оптимизировать архитектуру, перелопачивая взаимодействие между презентером, фрагментом и адаптером так и вылезло это говно. В чем-то очевидном, но блять мы же даже никак радиобатон не добавлем, если он уже в xml-ине находится.

Взял чисто кусок xml с радиобатонном и вставил от балды в другой список. Все работает, хоть и логики никакой нет.

Вобщем походу это... Буду всем говорить что никаких радиобатоннов там и не было никогда. И вы, если чо, ничего не знаете.
899496
#368 #899496
>>899444

>никаких радиобатоннов


Сами уволились вчера?
А если дизайн посмотрят? Не пиши AppCompat<ClassName>, ClassName автоматом на него заменится при компиляции, только если конструктор вызываешь надо компатовский класс писать. Удали все элементы из вьюхи кроме радио. И потом добавляй
899505
#369 #899505
>>899496
Удалил - без изменений. Говорю ж. Не в xml-ине проблема. Ее я не трогал.

Скажу что они нарушали минималистичный дизайн стиль и их пришлось убрать. А вообще это мой соло проект, я его на показать в кампанию делаю и как диплом. Никто не контролирует особо.
#370 #899506
Господа, стоит ли пилить в резюме проект без Butterknife? Или в 2016 я один пишу ебучие findViewById?
899517899518899521
#371 #899516
Как получить правильный enum по строке? Допустим у меня есть строка "oche_maliy_yoba" и есть enum типа

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 вообще не вариант
#372 #899517
>>899506
Я тоже так пишу.
#373 #899518
>>899506

> имплаинг Butterknife не делает то же самое.

899521
#374 #899521
>>899506
Я надеюсь, ты запилил себе дженерик обертку <T extends View> T findViewById(view, id) для этого? Иначе тогда да, как даун.
>>899518
Внутри BF еще и рефлекшон в довесок идет.
899558
#375 #899548
Котаны, где теперь брать халявную музыку?
У меня приложение было заточено под VK, но теперь через мобильный API нельзя получить список песен.

Есть ли какие-то похожие халявные базы?
899962
#376 #899558
>>899521

>Внутри BF еще и рефлекшон в довесок идет.


мм, найс истории, продолжай
899564
#377 #899564
>>899558
Дядь, ты когда вызываешь ButterKnife.bind(view, object) он через Class.forName ищет нужный сгенеренный заранее %ObjectClassName%_ViewBinder.
899569899578
#378 #899569
>>899564
прикольно, че ещё расскажешь?
sage #379 #899578
>>899564
Еблан, исходники открой и посмотри. Нет там никакой reflection
899595
257 Кб, 1316x998
251 Кб, 1372x822
#380 #899595
>>899578
Это не рефлексия?
260 Кб, 960x776
#381 #899597
Анон, посоветуй чтиво по алгоритмах.
899960
#382 #899609
Как научиться делать игры для андроид? Заканчиваю девятый класс, хорошо знаю c++ и немного java. Собираюсь после окончания стать работать фрилансером.
899616899620
#383 #899616
>>899609

> хорошо знаю c++


А теперь напиши это в плюсо-треде.
#384 #899620
>>899609
Где-то я это уже видел...
899621
#385 #899621
>>899620
Я вам говорю, это один и тот же аутист тред бампает.
#386 #899773
Гайс. Недавно вкатился в Андроид. Уровень ПРЕДжуниор. Данные храню в обычном SQLite, но недавно услышал, что все опытные погромисты юзают некие сторонние библиотеки или какие-то заменители стандартного SQlite. Поясните. И обязательно хорошо сначала разбираться в основах sqlite прежде чем переходить на некие заменители
#387 #899776
>>899773
Зависит от того что хочешь, большинство ОРМ и библиотек работают все с тем же SQLite, есть Realm, можно тащить с приложением свой бинарник sqlite, но тогда нужно еще кучу кода тянуть, как телеграм.
899780
#388 #899780
>>899776
Но в любом случае надо знать и хорошо разбираться в sqlite, прежде чем переходить на такие штуки?
899783
#389 #899783
>>899780
Желательно, но не обязательно.
#390 #899791
>>899773
Надо хорошо знать реляционную модель данных, нормализацию до 3 формы, понимать принципы построения запросов. Дрочить чистый sqlite, уже имея опыт с реляционными субд, не обязательно, можно хоть сразу орм использовать. Главное, просто не быть тупой макакой.
#391 #899935
Поставил на visual studio 2015 community edition xamarin, создаю проект и пытаюсь запустить. Мне выдает сообщение There were deployment errors. Continue? Никаких ворнингов и ошибок не выводится. Что делать?
901074
#392 #899960
>>899597
кнута читай, искусство программирования
19 Кб, 200x191
#393 #899961
ПИШЕШЬ ТАКОЙ КОД В ANDROID STUDIO
@
РАСКЛАДКА ПЕРЕСТАЛА ПЕРЕКЛЮЧАТЬСЯ С РУССКОГО НА АНГЛИЙСКИЙ
@
invalidate caches/restart
899964900995
#394 #899962
>>899548
у soundcloud вроде апи было
#395 #899964
>>899961
Нехуй сидеть на нестальных версиях и вообще юзать АС когда есть IDEA CE
899968899989
#396 #899968
>>899964
Не понял. Что ты говоришь?
Нельзя юзать последнюю версию Android Studio?
#397 #899989
>>899964
Кстати, а какой правда смысл использовать студию? Что она представляет такого, чего не может идея с андроид плагином?
899998
#398 #899998
>>899989
Андроид специфик штучки раньше обновятся.
#399 #900168
Как сделать очередь запросов на RxJava?
Что-то типа fixedthreadpool с одним потоком.
900182
#400 #900182
>>900168
Schedulers.fromExecutor(Executors.newSingleThreadPool());
900184
#401 #900184
>>900182
Ага. Далее можно используя этот шедулер просто скармливать ему дохуя observable?
#402 #900206
Сап, котаны, с вами снова больной на голову студентишка-разраб, который пилит SDK под полностью реактивную поддержку MS Graph API. С последнего поста (пару тредов назад) объем проектика увеличился в несколько раз, количество отработанных запросов теперь в районе 100-120, но это охватило где-то 8-10% графа. Пока что вроде как все идет нормально, но чувствую, что при росте в 10 то раз (до этого такие еба-проджекты не писал) могу обосраться от путаницы. Что посоветуете, чтобы максимально жестко и правильно структурировать и абстрагировать весь этот пиздец ? Есть ли какие-то паттерны проектирования сдк-шек или йоба-либ ?
Заранее спасибки, надеюсь, с вашей помощью отмучаюсь поскорее :)
900208
#403 #900208
>>900206
p.s. Сейчас придерживаюсь создания фабрики апишек с помощью ретрофита и надстройки в виде прокси над ней в виде синглтон-менеджера, который не позволяет говнишко всякое пихать в запросы.
И еще такой вопрос, стоит ли создавать DAO и проксю над локальной БД, в которую можно положить любые данные или же пусть пользователи сами ебстутся ? Пока что только база аккаунтов лежит под покровом прокси-менеджера
#404 #900288
Сталкивался кто с проблемой, что если подключить к приложению сервисы гугл плей, то на девайсах с апи 16 при запуске приложения будет предлагать их обновить? Как это можно решить?
900291900293
#405 #900291
>>900288
обновить
#406 #900293
>>900288
Это правильное поведение. Ну млжешь проверить не вызывается ли в твоем коде showErrorDialog. Если нет, то значит там в либе зашито так.
#407 #900321
Можно ли где-то вклинится в RxCallAdapterFactory retrofit'a, что бы на каждый создаваемый Observable цеплять свой retryWhen?
900340
263 Кб, 1458x1068
#408 #900340
>>900321
Вопрос снят, решение не красивое, но есть.
56 Кб, 650x500
#409 #900515
Котаны, посоветуйте ORM с минимальным оверхедом по памяти и производительности. При этом с возможностью подписаться на изменение данных в таблице.
900516900527900564
#410 #900516
>>900515
Ой, не ту пикчу прикрепил :3
#411 #900527
>>900515
GreenDAO
#412 #900564
>>900515
>>899773
ORM на ведре — это для долбоёбов.
Научитесь уже готовить божественную StorIO.
900590900611900618
#413 #900590
>>900564
Почему же ? GreenDao крайне удобен, например, и по производительности весьма хорош
#414 #900611
>>900564

>ORM на ведре — это для долбоёбов.


>Android == Dalvik ~~ JVM


Я тебя дополню: ORM который работает только на ведре - это хреновая орм

Ради чего мы пишем на котлинах и грувях?
Что бы у нас был кроссплатформенный код, максимум которого можно протестировать локально.

К сожалению единственная orm которая это позволяла это OrmLite, но она скорее мертва.
900620900671
298 Кб, 1636x1062
#415 #900618
>>900564
Как ты пишешь джойны что бы они не были монструозными?
900674
#416 #900620
>>900611
Можно поизвращаться же с jdbc драйвером.
900626900649
#417 #900626
>>900620
еще к удаленной базе подключайся через драйвер блять с телефона
900641
#418 #900641
>>900626
Не к удаленной, а к локальной.
900648
#419 #900648
>>900641
я поржал :) Зачем, если есть готовые тулзы для удобной работы с бд ? Что ты там хранить собрался, что тебе не подходит ни зеленый, ни сах
арный ?
#420 #900649
>>900620

>Можно поизвращаться же с jdbc драйвером.


Да, андроид поддерживает jdbc, только у него нет изкоробочного драйвера для его sqlite.
Сам не юзал правда, благо ormlite позволяет подключаться на прямую.
sage #421 #900656
Перепись долбоёбов, блядь.
900666
#422 #900666
>>900656
Один представился.
#423 #900671
>>900611

> Dalvik ~~ JVM


Уже давно ART, но нихуя они не эквивалентны.

> ORM который работает только на ведре - это хреновая орм


StorIO — не ORM.

> Ради чего мы пишем на котлинах и грувях?


Лично мы не пишем, ибо не долбоёбы.

> максимум которого можно протестировать локально


Наверное, ты имеешь в виду на JVM. Как в этом твои котлины/груви/скалы помогут?
Особого смысла писать юнит-тесты для БД так, чтобы они запускались на чистом JVM нету, ибо интеграционные без ведра всё равно написать не получится.

Ну или ебись с jdbc, хули. На SO были чуваки, которые даже Hibernate на ведре использовали.
900705
#424 #900674
>>900618
Примерно так и пишу. С небольшим количеством вспомогательных функций и precompiled statements.
Особого синтаксического сахара тут ожидать не стоит, ибо это не ORM.
#425 #900676
А кто-то пробовал обновлять таблицы при смене схемы в greendao3, при использовании SQLCipher ? У меня идет крит с сообшением о том, что таблицы не найдены, но тащемта они есть :)
#426 #900705
>>900671

>Уже давно ART, но нихуя они не эквивалентны.


Няшь, вот скажи мне, а что это меняет? Тем более сейчас, когда андроид укатился на open jdk.

>запускались на чистом JVM нету, ибо интеграционные без ведра всё равно написать не получится.


С ormlite как-то получалось. Просто логику надо абстрагировать от платформенного уровня.
#427 #900827
Няши, подскажите мне вот такое:

Я делаю запрос к серверу в IntentService.
Получаю при помощи LocalBroadcast результат.
Но куда мне положить результат на случай, если юзер свернет приложение, чтобы показать ему его, когда он его развернет?
Мне нужно всего лишь показать и закрыть ProgressDialog.
900867
#428 #900867
>>900827
В базу или в SharedPreferences.
900871
#429 #900871
>>900867
Ок. В базу слишком жирно будет.
#430 #900995
>>899961
Самый известный баг, унаследованный от петушков из JetBrains. Вешай отдельные дополнительные, отдельные клавиши на русскую и английскую раскладки
#431 #901002
>>899773
God Tier
Realm. Большой и тяжеловесный - но быстрый, доделанный и простой в использовании.

Good tier
Native sqlite. Много кода для поддержки - но если нужно пилить нестандартную логику запросов, джоины, всякие нестандартные команды к базе и т.д.

Mid tier
StorIO. Если тебе не нужно чего-то нетривиального, в то же время не нужно огромной ORM - самое то. Убогая архитектура на ресолверах прилагается.

Shit tier
GreenDAO, ORMLite и им подобное говно. Тормоза, рефлексия и прочее не нужны
901006
56 Кб, 491x500
sage #432 #901006
>>901002

> StorIO Убогая архитектура


> Native sqlite выше StorIO


> Realm выше всех



Какое авторитетное мнение.
#433 #901071
Glide или Picasso? И почему?
901111902286
#434 #901074
>>899935
Бамп вопросу. Подсобите плиз. Хеллоуворлд написать хочу.
#435 #901079
Как можно сделать прокрутку пикчи на фоне, когда пользователь перемещается вбок между слайдинг табс? Типо как на рабочем столе андроида.
901112
#436 #901111
>>901071
Picasso из-за связки с okhttp.
901723
#437 #901112
>>901079
Гугли parallax view pager, когда-то такое делал.
#438 #901145
Стоит городить retrofit с сущностями и хуйней-малафьей, если в приложении используется один маленький параметр, который берется из одного единственного сетевого запроса к рест сервису?
901181
#439 #901181
>>901145

>Стоит городить retrofit с сущностями


Стоит это кусок кода абстрагировать и вынести в отдельную сущность.
Дальше пишешь тривиальную реализацию и покрываешь ее тестами.

Потом уже, если логика запроса усложнится, то заменишь ее на ретрофит.
#440 #901186
Народ, подскажите плиз, нужно сохранить пароль и логин в приложении, чтобы потом достать их. Насколько я понял в SharedPreferences хранить не безопасно, что лучше всего использовать из андроидовских возможностей? Желательно без ебли с шифрованием и добавлением хуевой горы кустарных библиотек в gradle dependencies.
901193901202
#441 #901193
>>901186

>сохранить пароль и логин в приложении


Это безопасно никак не делается. Все что есть на устройстве можно спизидть. Как вариант = AccountManager
901194
#442 #901194
>>901193
Окей, спасибо.
#443 #901202
>>901186
можешь попробовать через жопу шифровать побитовыми сдвигами и прочей хуйней. Из-за того что это чистой воды ебланство ни кто не ломанет, базарю
901228
#444 #901228
>>901202
Это слишком задрочно и не стоит того. Просто блять по ТЗ нужно впихивать логин и пароль в поля, если юзер логинился, а Гугл рекомендует хранить только токен и не сохранять credentials и пиздец.
#445 #901256
ебанный андроид
socket =(BluetoothSocket) device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}).invoke(device,1);
901282
#446 #901282
>>901256
Нехуй пользоваться приватным API.
В Apple тебя с такими извратами сразу бы нахуй послали.
901357
#447 #901357
>>901282

>В Apple тебя с такими извратами сразу бы нахуй послали


Там было бы то же самое только с квадратными скобочками вместо точек.
#448 #901359
В андроиде есть какой-то аналог plist?
901380
#449 #901380
>>901359

>В андроиде есть какой-то аналог plist?


Аналог в каком смысле?
901385
783 Кб, 675x1080
694 Кб, 675x1080
794 Кб, 675x1080
211 Кб, 372x329
#450 #901381
>>885914 (OP)
Анончик, выручай.

Делаю что-то типо курсоуказателя, нужна помощь в выборе фигуры для отрисовки "пропаханного".

В общем, суть: нужно за двигающимся авто/трактором отрисовывать путь/маршрут заданной ширины (точность нужна побольше, чем просто ебануть polyline.width() в пикселях и смотреть как ширина меняется при зуме).

В начале реализовал так: делаю полигон, который перерисовывается, когда добавляется новая точка, получилось вроде как надо(пик 1).
Однако хуета в том, что когда "разворачиваешься" полигон пересекает сам себя и ломается нахуй! Просто в конченную ебалу, нихуя не похожую на няшный полигончик. (пик 2)

Пробовал строить полигон каждые новые две точки, получается крипотно и вообще хуета. (пик 3).

В общем хотелось получить стандартными средствами что-то по типу 4го пика, где полигон отрисовывается замкнутым и достаточно плавным.

Есть ли какие-то еще возможности? Думал еще через GroundOverlay ебануть, но там только прямоугольники, а в Polyline ширину только в пикселях задавать. (Собственно для полигона тоже, но я сам рассчитываю его координаты и влияю на точность)

Заранее дякую, если вопросы еще есть - задавайте.
901825
#451 #901385
>>901380
В прямом. Вот в iOS проекте есть plist, как можно повторить его в Android проекте?
901390
#452 #901390
>>901385
А мы ебем что у тебя там делает plist?
901393
#453 #901393
>>901390
Если ты не знаешь то какого хуя ты отвечаешь?
901395
sage #454 #901395
>>901393
Чел либо ты ведешь себя вежливо, либо идешь нахуй, а твои вскукареки скрывают

мимо
901401
#455 #901401
>>901395
Я вполне вежливо задал вопрос, тут есть те кто перекатился с iOS на Android, следовательно могут на него ответить. Поэтому когда мне отвечают

> А мы ебем что у тебя там делает plist?


в таком духе, я отвечаю взаимностью.
901463901516
sage #456 #901463
>>901401
Хуй соси, пидор.
901596
#457 #901516
>>901401
plist это просто xml файл, так что у тебя два выбора
1) сгенерить java классы из твоего plist и сериализовать/десеризовать их
2) загружать сырой plist и работать с ним как с DOM и делать выборки через xpath

если ты хочешь просто хранить иерархические данные, лучше заюзать shared preferences
901596
#458 #901535
Как справляетесь с блоком аудио апи в Vk? Авторизация путём замены айди приложения на айди официального до сих пор работает?
901728
#459 #901596
>>901463
Cкрыл твой вскукарек.

>>901516
Ок, спасибо.
#460 #901723
#461 #901728
>>901535
Где взять айди оф?
901737
sage #462 #901737
>>901728
Дуров в Твиттере присывлает, если попросить
#463 #901779
Хуй знает где спросить, ананас, спрошу у тебя. Как на ведре заставить запускаться 2 приложения одним ярлыком ? Нужно чтобы они вмеесте запускались.
901783901786
#464 #901783
>>901779
Напиши сам приложение, запускающее 2 приложения через getLaunchIntentForPackage.
Хотя я не представляю, зачем это нужно.
901797
#465 #901786
>>901779
В onCreate первого приложения пишешь

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("имя.второго приложения","имя.второго.приложения.MainActivity"));
startActivity(intent);
901797
#466 #901797
>>901783
>>901786
Программаны, я здесь залетный. Не совсем вас понимаю, можно обьяснить для даунов? Нужно чтобы скроблер и аудио плеер вместе запускались, вот.
901798
#467 #901798
>>901797
Найди названия пакетов скроблера и аудиоплеера, там будет что-то типа com.yoballc.audioplayer или com.zaloopa.scrobler. А в своем приложении стартуешь их через интент, как я написал выше. Или ты спрашиваешь не как программист а как пользователь андроида?
901802
#468 #901802
>>901798

> Или ты спрашиваешь не как программист а как пользователь андроида?


2ое , скроблер перестал запускаться автоматически при старте воспроизведения . Теперь всегда нужно запускать сперва плеер, а затем скроблер, ну или в другом порядке, похуй. Но главное чтобы скроблер был запущен и висел в процессах. Можно конечно никогда его не отключать, но я хотел найти более эргономичный вариант.
901804
#469 #901804
>>901802
А, ну так тебе в другой раздел тогда https://2ch.hk/mobi/ (М)
Вот здесь тебе подскажут
901806
#470 #901806
>>901804
Да там не шарит никто. Эх, ладно.
901810
#471 #901810
>>901806
Ну сорян, чем мог тем помог. Как вариант, попробуй разобраться почем скроблер перестал запускаться как раньше.
#472 #901825
>>901381
Ведраны, ну хоть подскажите куда копать.
901829901834
sage #473 #901829
>>901825
вниз
#474 #901834
>>901825
Гугли сглаживание poliyne, вроде немало примеров было. Насколько я помню там нужно подшаманить с MitterCap или что-то в этом роде и тогда углы будут не острые а скругленные.
901858
#475 #901858
>>901834

>MitterCap


Этого гугл не знает, но, в любом случае, спасибо. Попиздовал искать.
19 Кб, 1080x1920
#476 #901874
Обмазался анимированными переходами между активититеми, что из api 21, периодически выходит пикрелейтед экран после нажатия кнопки назад. При каких условиях он появляется - так и не понял, при равных условиях он может и появиться, а может и нет. В чем может быть дело?
901885902348902466
#477 #901885
>>901874
Ты там фрагментами не балуешься? Если ты первый фрагмент добавил в бекстек, то после нажатия на назад его выплюнет, а активити еще останется.
901936
#478 #901936
>>901885
Балуюсь, но в бэкстэк ничего не добавлял. по крайней мере осознано
Такая же проблема происходит и при возвращении из простеньких активити, не имеющих фрагментов.
#479 #902129
Котаны, вопрос не столько по конкретной технической реализации, а концептуальный. Вот я услышал что (якобы) эти все мессенджеры используют TCP для связи с бекэндом. Есть какое-то годное чтиво на эту тему? Клиенты поддерживают постоянное соединение - тоесть бекэнд ебется с миллионами действующих подключений? Или там устанавливается соеденение только на время передачи сообщения? И тогда получается что клиент на телефоне должен работать как сервер - принимать подключение от бекэнда когда приходит сообщение. Как постоянно открытое соединение (если такое используют) влияет на батарею - при условии что оно не используется, просто поддержание соединения в ожидании сообщений от бекэнда?
902235
#480 #902148
Антуаны, кого рода приложение могут забанить? Хочу написать игру связанную с диктаторами, но боюсь что такое не пропустят, а аккаунт забанят. Игра на мой взгляд не пропагандирует ничего, а лишь "освящает" некоторые интересные аспекты политики этих людей.
902160
#481 #902160
>>902148
Подобную парашу не банят: https://play.google.com/store/apps/details?id=com.dextrit.trumpytheplumpy
С чего должны забанить тебя? Делай для стима, если не уверен, туда что угодно пропустят.
902165
#482 #902165
>>902160
Цель сделать именно на ведро, рискну все таки. Просто начитался про удаление приложений из за всякой хуеты, а потом еще про баны аккаунтов из за обращений в сапорт, чтобы эти приложение вернули. Складывается впечатление что гуглу вообще похую на людей, которым сервис обязан своей аудиторией.
#483 #902220
Хочу сделать в своем приложении список некоей хрени и группы. Типа как в аське с контактами: группа друзей, группа коллег, группа родственников, а внизу - список оставшихся контактов, которые вне группы. Выпадающий список я уже написал. По идее, это будет ListView выпадающих списков, сразу под которыми ListView не попавших в группы. И так, чтобы первый список заполонял экран, а потом, когда долистается, вытягивался второй список. Ну ты понел, анон
Когда я запихнул LinearLayout с двумя списками в ScrollView, стали неадекватно вести себя адаптеры. Убрал ScrollView - стал отображаться только первый список, и тот до середины экрана.

Что мне делать, анон? Что-то вроде CoordinatorLayout осваивать?
902259
#484 #902235
>>902129
Кто как, ВКашка до сих пор на лонг полинге живет, другие на сокетах. Можешь телегу глянуть. Ну так себе влияет на батарею, но гугл заставляет всех пользоваться GCM, так что нормально.
#485 #902258
На айтеме в списке - OnItemClick, на кнопке - OnClick. Кнопка в айтеме.
Походу щелчек на кнопку передается айтему. Как заблочить?
#486 #902259
>>902220
Не до конца понял, что тебе нужно. Из того что понял могу сказать следующее: пили ресайклер в который клади итемы expandableRecycler(загугли это). Заполняй эти expandableRecycler'ы своими контактами. По умолчанию поставь, чтоб первый итем в корневом ресайлере был развернут, а когда до 2ого долистаешь(onBind поидее вызовется, ну или погугли, как определить, какой итем на экране) сворачивай первый и разворачивай 2ой
902523
#487 #902286
>>901071
Fresco
#488 #902293
>>898047

>двустороннего binding-а на моей памяти еще не появилось


Android Databinding
#489 #902348
>>901874
Бамп вопросу.
Опытным путем установил, что такое происходит только при переходах типа Slide и Explode. При переходе Fade все работает как надо. Фрагментов в бэкстэке нет, это тоже проверил.
902371
#490 #902371
>>902348
код
902391
2 Кб, 270x480
#491 #902391
>>902371
http://pastebin.com/p2QRXhRk
Получается следующее - после нескольких заходов во вторую активити из первой, по возвращению в первую ловится пикрелейтед. Собственно пустой экран цвета android:windowBackground из темы приложения. Количество возвращений до пустого экрана в среднем от 2 до 5, от чего оно зависит, проследить не смог. При одинаковых условиях оно было разным.
При этом, основная активити таки продолжает работать, проверил onResume() - он выполняется несмотря на пустой экран. Если повернуть девайс или еще как-нибудь перезапустить активити - все отобразиться корректно.
Все запросы в гугле, какие смог придумать, в итоге ничем не помогли. Может, это какая-то проблема отрисовки или типо того, но я уже не знаю, как к ней подступиться.
Мин апи 21, тема приложения наследуется от Theme.AppCompat.Light.DarkActionBar
902423
#492 #902423
>>902391
К сожалению мало кода.
902457
#493 #902457
>>902423
Первая активити http://pastebin.com/ZR8PpbWi
Вторая активити http://pastebin.com/g4yACq5D
Фрагмент, вложенный в первую активити http://pastebin.com/4qwNGpSt
902467902468
#494 #902466
>>901874
Я ещё не дошёл до этого. Но могу посоветовать попробовать кастомную либу для переходов. Видел статью на медиуме, где описывались кучи багов в Transitions Api
902487
#495 #902467
>>902457
Ебаный говнокод. Тебе не стыдно?
А по теме, вангую у тебя батернайф чудит
902487
#496 #902468
>>902457
И у фрагментов есть такая штука как setRetainedInstance
#497 #902487
>>902466
Нашел только кастомные либы для совместимости с api<15.
Пробовал, кстати, делать через overridePendingTransition, эффект такой же, как и через средства апи 21.

>>902467

>Ебаный говнокод. Тебе не стыдно?


Нет, я не погромист.

>А по теме, вангую у тебя батернайф чудит


Проверил сделанный до перехода на баттернайф коммит, такое же дерьмо.
#498 #902523
>>902259
Мне нужно, чтобы половина списка была expandableRecycler, а половина - простые контакты. Я пока слабо знаком с RecyclerView, и не уверен, что можно справиться одним списком
902529
#499 #902529
>>902523
Можно справиться одним списком. Я делал свой exandablerecyclerview с двойной вложенностью (группы в группах). Сиди да пихай себе notifyItemRangeInserted, или еще на порядок проще через DiffUtil.
#500 #902535
Такой вопрос, у меня есть динамическое количество вьюх, которые могут быть или унаследованны либо от LinearLayout либо от RelativeLayout, я их собираю в ArrayList, а затем перебираю
for(ViewGroup group : listOfViews)

В этом цикле я хочу запихнуть их все в один ViewGroup, который потом в свою очередь запихнуть в Activity, как это лучше всего сделать?
902564
#501 #902564
>>902535
Создаешь нужный тебе вьюгруп xml, инциализируешь в активити, затем пихаешь в него свои вьюхи во вьюхе.
55 Кб, 873x762
56 Кб, 775x740
#502 #902565
Доставьте подобного, пожалуйста.
902573902575902714
#503 #902573
>>902565

>code-style от Google


Пошли они нахуй.
902574902623
#504 #902574
>>902573
А что не так?
902577
#505 #902575
>>902565
Весьма скучно такое делать.
#506 #902577
>>902574

>m


Вот это не так.
#507 #902581
>>902577
Именно.
#508 #902585
#509 #902588
#510 #902589
>>902577
О, я помню N тредов назад аноны ругались.
393 Кб, 650x650
#512 #902623
>>902573

>code-style от Google


>Пошли они нахуй.



Ну так пили на Kotlin - что сложного-то?
902658
sage #513 #902658
>>902623
Съеби.
902718
#514 #902714
>>902565
Примерно такую приложуху видел на МООС, вроде от едХ, можешь сразу загуглить. АПИ точно то же.
#515 #902718
>>902658
Анончик, не агрись - он уже почти год в как вышел и постоянно набирает обороты.

Пора бы уже смириться что знание Kotlin является плюсом на собеседованиях.
903580
#516 #903580
>>902718
Знание плюсов на собесе плюсом является, а котлина - минусом скорее
904052
#517 #904052
>>903580
Почему котлин минус? Если что то я к нему сам с подозрение отношусь.
904265
#518 #904265
>>904052
ну типа нахуй он кому нужен, синтаксический сахар над жабой + медленный билд - все, что он способен дать
#519 #904953
Сап, аноны. Прочитал первую главу книги Шилдта (полное руководство) и решил вкатиться в андроид. Чекнул вакансии на hh и чет приохуел. 194 вакансии в дс2, часть из которых это шарпеи с ксамарином, а другая часть ебанные курьеры, которым пишут в требованиях андроид смартфон для gps. Реально ли вообще вкатиться во всю эту шнягу совсем без опыта в разработке офк перед этим написав приложеньку и выложить ее в гугл плей?
910288911192
#520 #910288
>>904953
нет, процентов 90 вакансий - на мидлов и сеньоров
#521 #911189
В связи с некорректной работой loader-ов внутри не-retain фрагментов при повороте (они, сука, персоздаются, гляди), решил подумать в сторону сохранения презентеров в сервисе. Насколько это ебнутая затея? Главное условие - презентер должен жить когда View претерпевает изменения конфигурации, уходит в бэкграунд и пр. пр.
911271
#522 #911192
>>904953
И глядя с текущей "высоты" вниз, на свой путь, настоятельно рекомендую сначала досконально изучить java core курс (Эккеля хватит с некоторыми небольшими урывками типа concurrency, references, jmm) дабы подходя в ведру заниматься не дрочем жабы, а непосредственно ведром
911272
#523 #911271
>>911189

> (они, сука, персоздаются, гляди)


Они так и должны работать.
911309
#524 #911272
>>911192
Не понимаю. Я вообще код писать не умел, когда начинал писать под андроид, но всё легко изучил. Можно делать так, как хочется, правильного варианта нет.
911310
#525 #911309
>>911271
Они должны переживать смену конфигурации (см доки)
911540
#526 #911310
>>911272
Что-нибудь сложнее простой клиент-серверки в жизни хоть раз на андроид написал ?
911457
#527 #911457
>>911310
Писал. И при чём тут это?
#528 #911540
>>911309
Они переживают, сами лодеры. А вот таски к ним привязанные — перезапускаются. Это норма.
912482
#529 #911965
А может кто-то расписать, как организовывать работу с кэшированием, например, новостей, когда идет проверка по timeStamp-у наличия новых итемов ? То есть как, например, лимитировать количество записей в базе до определенного объема кэша, как правильнее организовать подгрузку только лишь нужных итемов, вымещение новыми старых из базы ? А то сделать нужно, да и хотелось бы, но вот прикинув так в уме количество аспектов, понял, что грабли выебут мой лоб, если не последует помощи со стороны
912482
#530 #912482
>>911965
>>911540
Зачем вы пишите в старый тред?
919557
#531 #919557
>>912482
В прикрепленном ньюфаг-треде ссылка именно на этот тред стоит, наверное поэтому.
Тред утонул или удален.
Это копия, сохраненная 30 января 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски