Двач.hk не отвечает.
Вы видите копию треда, сохраненную 2 июня 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
114 Кб, 500x429
Разработка под Android тред №18 #726626 В конец треда | Веб
Продолжаем изучать замысловатые переплетения лайфсайкла фрагментов.

Предыдущий тред тут:
https://2ch.hk/pr/res/714032.html (М)

Коротко о главном:
1) Мобильная разработка - это весело.
2) Android Studio & Java - легитимный набор, проверенно временем и поддерживается гуглом.

А также о неглавном:
3) PhoneGap/Ionic/Titanium/ReactNative - имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити.
4) Xamarin - мультиплатформенная разработка. Попытка серебряной пули на C#. Довольно популярный. Куплено Microsoft. Хз что будет дальше.
5) RoboVM - идейный наследник ксамарина, а теперь уже и его часть но на Java. Менее популярен, так как моложе. Куплен Microsoft. Вот он точно RIP.

Отдельного упоминания стоят:
1) Kotlin - Java от JetBrains, новый и стильный язык, куча синтаксического сахара прилагается, есть стримы и делегаты. Хотите писать на котлине? Добро пожаловать в JetBrains и Avito.

Где брать инфу:
Интернет-ресурсы
1) http://developer.android.com/index.html
Наша библия. Документация/небольшие примеры/гайды. Но только на инглише, но это плюс. Минус в том, что это все таки документация с небольшими примерами и гайдами и искать там реализацию чего-то хоть немного сложного нету смысла. Раздел Training как раз для старта.
2) http://stackoverflow.com/
Пользуюсь чаще чем первым сайтом. Можно найти практически все.
3) Есть два вполне вменяемых русскоязычных ресурса. Для старта подходят очень даже.
http://startandroid.ru/
и
http://developer.alexanderklimov.ru/android/
Второй еще и условно бесплатный. Главный плюс - это русский язык, простые гайдики, но переводы классов иногда заставляют фейспалмить.
4) http://habrahabr.ru/ - редко но метко, можно найти годные статьи по каким-то реализациям, или переводы с developer.android. Хотя чего тут объяснять.
5) https://www.udacity.com/ - в треде очевидцы говорили что есть годный курс, но я лично не смотрел.

Книги, их никто не читает, но все советуют только одну
1) The Busy Coder’s Guide to Android Development - в отличии от остальных книг она обновляется, а так как ведро не стоит на месте а хуярит семимильными шагами, то я бы и не советовал другие книги.

А теперь, так как заебали уже всех, гайд для:

>"Я хуярил на делфи 5 лет назад а теперь хочу вкатится в андроид":



Чтоб быстро хоть как-то вникнуть в джаву берешь и гуглишь javarush или codingbat.com.
Можно Эккеля "Философия java" почитать.
Или Хорстманн "Java. Библиотека профессионала" до 7 главы.

Что тебе нужно понять в самой жабе.
Энтри лвл.
1) ООП - сам принцип нужно именно понять, так как ооп язык.
2) Типы данных. Примитивы и ссылочные.
3) Структуры данных - Массивы/коллекции - без них никуда. Полезно почитать про алгоритмы работы коллекций и их сложности.
4) Дженерик типы, они как раз юзаются в коллекциях.
5) Классы/интерфейсы и все вытекающие.
Уже можно быдлокодить потихоньку и учить андроид параллельно с тем что ниже.

Дальше
6) Потоки ввода/вывода (streams). Не путать с тредами(threads).
7) Threads, особо не нужно вникать(в java.util.concurrent можно не лезть, в ведре все равно особо не пригодится), но нужно понять как работает многопоточка и что такое Runnable.
8) Прочитать про паттерны что-то. Начать с listener, adapter, singleton, iterator так как на каждом шагу. Ну и по накатанной.
Уже сделаешь что-то нормальное.

Дальше.
9) Работа с Sqlite, нужна будет в любом случае.
10) Работа с json.
Привет клиент-серверка.

Пишите в треде что добавить.
#2 #726630
Посоны поделитесь историями удачи и счастья- как вы замутили прогу какую-то и она взлетела.
>>726631
#3 #726631
>>726630

>прогу


только если игру
#4 #726632
>>726626 (OP)

> 4) Xamarin ...


> 5) RoboVM ...


ОП, #### ты такое ленивое #####?
>>726637
#5 #726637
>>726632
Я на работе, извини меня.
Да и ксамарин жив, а с робовм обосрался, но написал что он умер кстати смотрел в будущее.
#6 #726711
Если делать материал дизайн через беблиотеки поддержки, в жопу не выебут? Это не зашкварно?
#7 #726712
>>726711
Собственно, в чём минусы такого подхода?
#8 #726720
>>726711
Ну все, маня, готовь туза, завтра буду тебя в школе ебать.
#9 #726736
>>726711
а как ещё? все свои вьюхи делать?
sage #10 #726750
tfw когда мог вкатиться в андроид-девелоп, пока он только-только назревал
#11 #726908
>>726711
Если ты про гугловскую design support library, то это единственный легитимный вариант.
Не стоит использовать васянобиблиотеки MaterialDialogs, MaterialDrawer, MaterialAllah, когда всё можно сделать стандартными средствами из support library. И ты будешь уверен, что мейнтейнер библиотеки не забьет на неё хуй.
>>727002
#12 #727002
>>726908

>когда всё можно сделать стандартными средствами из support library


В том и дело что нельзя. И на счет либ от гула они иногда кривее чем кастомные.
Но да нужно стараться писать на них.
#13 #727125
Важный репост из прошлого треда.

Пробелы или табы?

Блок с новой строки?
{

}

Или с той же? {

}
#14 #727135
>>727125
Пробел. С той же.
#15 #727138
>>727125
Пробелы. 1TBS
#16 #727217
>>727125
Студия автоформатирует с пробелами.
>>727221
#17 #727221
>>727217
Можно настроить.
>>727225
#18 #727225
>>727221
Я не хочу подчинять себе студию.
>>727251
#19 #727251
>>727225
Пассив чтоле?
>>727255
#20 #727255
>>727251
Да, люблю, когда меня пробелят.
#21 #727359
вопрос с собеса: когда нужно начинать грузить данные, в onStart или в onResume?
>>727377>>727490
#22 #727377
>>727359
Мне кажется что в onResume безопасней, так как он точно вызовется, а onStart только один раз кажись.
>>727466>>727490
#23 #727466
>>727500
#24 #727490
>>727359
>>727377
Там заеб не с онстарт онрезюме а с онпауз онстоп, онстоп не всегда вызывается, потому чаще юзают связку онрезюме онпауз.
>>727503
#25 #727500
>>727466
И чо? Схема не отменяет того, что onResume вызовется даже тогда, когда onStart не вызовется, вопрос только в том, чтоит ли обновлять данные если юзеру попапнулся диалог, или только в случае когда данные совсем пропали с глаз.
>>727503
#26 #727503
>>727500
Какой еще диалог? Диалоги вообще не влияют на лайф-сайкл активити.

>>727490
Расскажи мне сынок, когда не вызывается onStop/onStart?
#27 #727534
>>727503
Показ диалога вызывает у активности onPause.
>>727551
27 Кб, 669x274
#28 #727551
>>727534
Вот тебе простейший пример (можешь повторить) http://pastebin.com/VYuuqgyH
Запускается приложение и через секунду показывает диалог, логи стоят на все нужные события.

Как видишь (пик 1) никаких логов о onPause/onResume
#29 #727580
>>727503
я не он, но onStop вроде может не вызваться когда системе срочняк нужна память, и она киляет процесс. так?
>>727583>>727588
#30 #727583
>>727580
onStop всегда срабатывает, onDestroy не срабатывает, когда андроид убивает
82 Кб, 928x350
#31 #727587
Смотрим документацию: http://d.android.com/intl/ru/reference/android/app/Activity.html#ActivityLifecycle

Да может на Android < 3.0
Тем кто разрабатывают под 2.3, стоит задуматься о том что сейчас 2016.
>>727588>>727601
#32 #727588
Это >>727587 сюда >>727580
>>727593
#33 #727593
>>727588
но ведь речь была про onStop
>>727594
#34 #727594
>>727593
аа, все, прочитал..
#35 #727601
>>727587
я пишу под 2.2, лол
>>727603
#36 #727603
>>727601
Нахуя?
>>727624
#37 #727624
>>727603
начальство повышать не дает
#38 #727629
>>727624
Ебать ты лох, что тут ещё сказать.
56 Кб, 790x436
#39 #727653
>>728161
#40 #727709
Посоны, кто-нибудь что-то знает про HLS на андроиде? Можно ли стримить видео с камеры на 14+ апишке? В интернетах нашел только одну анально огороженную либу и та под 18+
#41 #727714
вот все хвалят новый эмулятор, типо быстрый
ну скачал я, поставил preview n - тормозит пиздец
>>727775
#42 #727773
>>727503

>Какой еще диалог


Который активти, видал активти с темой диалога? Твое приложения еще видимо, но уже не в форграунде. После такой шляпы onStart не вызовется.
>>727786
#43 #727775
>>727714
Купи интел))))0)00)))
>>727794
#44 #727786
>>727773
Хорош маняврировать, это уже не диалог "активти с темой диалога".
#45 #727787
Котлинофил подскажи тему для годового дева для развития?
Пиздовать мвп для любого сервиса чтоль?
#46 #727794
>>727775
у меня макбук про блять
>>727802>>727823
#47 #727802
>>727794
HAXM ставил?
#48 #727823
>>727794
Ну тогда хуй знает что там у тебя. Попробуй 23 а не N. У меня довольно быстро.
#49 #727905
какую вьюху сейчас юзают для каруселей?
>>727930>>727933
#50 #727930
>>727905

> 2016


> Карусели


Остались только на выборах
#51 #727933
>>727905
ViewPager/RecyclerView с доводчиком, еслия правильно понял что такое карусель.
>>728265
#52 #727977
Котаны, поясните за jdk: в чём разница между jdk-8u91 и jdk-8u92 ?
>>728010
#53 #728010
>>727977
Погуглил за тебя. Не благодари
http://www.oracle.com/technetwork/java/javase/8u92-relnotes-2949471.html
>>728566
128 Кб, 475x477
#54 #728079
>>726626 (OP)
Как сделать такую подсказку?
#55 #728160
>>727624
А зачем нужно такое начальство? Я уже давно minSdkVersion ниже 16 не поддерживаю и не собираюсь.
>>728164
#56 #728161
>>727653
Если начальство ебанутое, они и на 1.6 делать заставят и им будет поебать на эти графики.
>>728198>>728310
#57 #728164
>>728160
Почему 14 не поддерживаешь?
#58 #728198
>>728161
Сочувствую тебе на самом деле нет, ведь ты прогибаешься, а не борешься
#60 #728310
>>728161
они не ебанутые, я их понимаю. у меня не приложение, а либа тащемто
#61 #728566
>>728010
спасибо
#62 #728570
После бесплатной части джавараша все так же идти и читать Эккеля или "уроки Джава" загуглить в гугле тоже сгодятся?
>>728589
#63 #728589
>>728570
Читать лекции, копить баллы. Потом платную подписку на месяц и за месяц решашь остальные 600 задач.
>>728595>>729636
#64 #728595
>>728589
Я серьезно задавал вопрос.
>>728635
#65 #728635
>>728595
Я тебе серьезно ответил.
Философию джавы тоже прочти, но без практики эффект будет меньше.
#66 #728642
Ананасы, пишу приложение с одним активити и тремя фрагментами.

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

Все фрагменты добавляются в процессе выполнения Activity.onCreate(), при этом два из них скрываются и вообще в любой момент видим только один фрагмент (.show(that).hide(this) в транзакции).
Соответственно переопределены Fragment.onHiddenChanged(). Для получения фрагмента используется fragmentManager.findFragmentByTag(SomeFragment.TAG).
Ещё в проекте есть класс, управляющий сетевыми подключениями и генерирующий события для интерфейса. Этот инстанцируется в одном из фрагментов. У каждого из них выставлено setRetainInstance(true), кстати.

Вопрос: насколько адекватно данное решение? Т/е если бы я приседал с 3 активити, то у меня бы была бы по кр мере анимация перехода, чего нет в подмене фрагментов. C другой стороны - там требуется обмениваться данными между фрагментами, которые не Parceable.

599204
>>728645
#67 #728645
>>728642
Как говорится, что не Parselable, то Serializable.
#68 #728709
зашквар ли юзать тейбл лейаут в 2016 или сделать как нибудь по другому таблицу, которая динамически наполняется?
>>728720
#69 #728720
>>728709
Используй GridLayout, Люк
128 Кб, 340x340
#70 #728745
Аноны, вы когда-нибудь писали приложения на xamarin?

А я вот вторую неделю пишу. И уже люто, бешенно ненавижу эту блядскую поделку.
IDE — говно. Нет ни рефакторинга, ни навигации по коду, ни даже нормального поиска.
Дебаггер работает через жопу. Но даже если получится заставить его работать, то из-за кодогенерации стек вызова функций будет выглядеть как хуй пойми что, из-за чего найти место, где приложение упало, тот еще квест.
Отсутствует нормальная система сборки (даже блядского maven'a не завезли).
Ну и сам SDK: вы жаловались, что у андрюши кривой SDK? Это вы еще под xamarin не писали.

НЕНАВИЖУ

Выговорился.
На самом деле, есть и плюс: Если использовать MvvmLight и модули, то очень удобно определить для проекта общую кодовую база, которая будет работать для всех двух платформ. Тогда останется сделать ui специфичный для iOS и Android.

Есть тут еще кто-нибудь, кто писал под сабж? Поделитесь впечатлениями.
#71 #728771
>>728745
Ну так в вс2015 пиши, а не в мерзкой монодевелоппараше.
#72 #728828
А в чем проблема поддерживать 2.2? Саппорт library же есть, мы хоть от этого отказались, так как один петухан начал кукарекать про 1%, но считаю что зря, никаких проблем с суппорт-в4 и раньше не было.
>>728839
#73 #728832
>>728745
Недавно окончательно выпилил MvvmLight и заменил на свою реализацию MVVM.
Заебало что там все через WeakReference сделано и в iOS постоянно лябды удалялись сборщиком мусора.
При этом на Android тот же код нормально работал.

А Xamarin IDE говно (работаю на маке), когда Rider будет стабильный, будут в нем PCL ядро редактировать.
sage #74 #728839
>>728828
ну вот поддерживаю я 2.3, открываю аналитику с крешами и что я вижу на 2.3 : BadParcelableException: ClassNotFoundException when unmarshalling: android.support.v7.widget.RecyclerView$SavedState

и много такого говна
sage #75 #728843
подскажите какое халявное api чтобы можно было для тестового аппа качнуть jsonчик, показать списочек с картиночками, и detail screen
>>728847>>729154
#76 #728847
>>728843
Локальный веб-сервер поставить. Ты через вайфай ведь в интернете сидишь?
>>728852
sage #77 #728852
>>728847
я хочу в итоге вылить это на гитхаб, и что б любой пездюк мог собрать апп и достучаться до апи
>>728860>>728891
#78 #728860
>>728852

>собрать апп


никто такой хуйнёй не занимается
>>728867
sage #79 #728867
>>728860
я занимаюсь
>>728873
#80 #728873
>>728867
если посмотреть какой то пример от гугла, то да, а hr таким не занимаются
#81 #728891
>>728852
Ну так залей этот json на гитхаб и бери по ссылке на raw файл, в чем твоя проблема?
>>728927
sage #82 #728927
>>728891
не поверишь, так и начал делать)
#83 #729069
Дурчик обезумел и начал устраивать конкурсы один за другим. На этот раз нужно сделать приложение камеры под ведро. Кто-нибудь собирается участвовать?
>>729194>>729474
#84 #729154
>>728843
Heroku, можно сервак прям с гитхаба собирать.
#85 #729194
>>729069
Што? О чем ты блять.
#86 #729474
>>729069
че? где почитать про конкурс?
>>730167
#87 #729534
Сап, дроиды.
Хочется мне написать приложение с использованием eBay API, но при этом в вебе я вообще не разбираюсь. Ясно, что нужно отправлять реквесты с .xml файлами и получать .xml в ответ.
После долгих поисков в интернете мой выбор пал на следующую библиотеку: https://github.com/google/google-http-java-client
Так как я вообще слабо разбираюсь во всем этом, документации и примеров, которые эта библиотека предоставляет, мне оказалось недостаточно, с xml у них вообще нет примеров, да и не гуглятся они.

Так вот, аноны, может быть кто-нибудь использовал эту библиотеку, а именно ту частью, что про .xml, и сможет поделиться со мной своим опытом?
Или может кто-то здесь использовал eBay API (это было бы вообще идеально) или может предложить другие библиотеки (решения), подходящие для моих целей.
Буду очень признателен за любую помощь.
>>729563
#88 #729563
>>729534
retrofit + gson, забудь о xml
>>729590
#89 #729590
>>729563

>retrofit + gson, забудь о xml


eBay API не поддерживает json
>>729600>>729614
#90 #729600
>>729590
Retrofit + собственные конверторы в xml
>>729615
#91 #729614
>>729590
тогда retrofit + Jackson, он вроде умеет с xml работать
#92 #729615
>>729600

>собственные конверторы в xml


точно не стоит так делать
#93 #729636
>>728589
Оно того стоит?В свое время забросил эту дичь после 2423432 заданий с выводом строк.
>>729790
#94 #729717
задали написать сервис, который в бэкграунде будет выводить в консоль передвижение пользователя. Нагуглил пару проектов на гите. Основа делается через service, в котором есть LocationListener. А как сделать, так чтобы listener через что-то определенное кол-во времени запускался?
>>729733
#95 #729733
>>729717
handler
#96 #729790
>>729636
Так ввод-вывод надо уметь.
Там еще будет многопоточка.
sage #97 #730107
а тут есть успешные синьеры? просто интересно можно ли на андроид норм зарабатывать, или стоит в ios?
>>730110
#98 #730110
>>730107
только в ios, тут дно
>>730124
sage #99 #730124
>>730110
Так в iOS тоже дно.
>>731042
#101 #731026
Думал андроидов сервис (Service), он как демон, а оказалось как-то не совсем. Я в .онКриейт запускаю хандлер который что-то делает с многоразовыми задачами. Задачи добавляются у .онСтартКоманд. После завершения хандлер планирует самого себе через эн минут. Инфинит луп типа.
Мне эту муть переписать под АлармМенеджер или как вообще такое делается?

Еще тут подумал, всякие приложения не использующие гуглосервисы, но показывающие пуш нотификации, они наверное демона держат?
>>731053
#102 #731042
>>730124
iOS сакс, уже Андроидеры зарабатывают не меньше гейосеров, а то и больше
#103 #731053
>>731026

> АлармМенеджер


С doze модом лучше от него отказываться, вангую ты там что-то с сервера тащишь постоянно. Смотри в сторону gcm network manager. А так закидываешь в аларм менеджер интент, этот интент в нужное время отправляется тебе в сервис. Сервис делаешь IntentService и готово.

> Еще тут подумал, всякие приложения не использующие гуглосервисы, но показывающие пуш нотификации, они наверное демона держат?


Либо так же, по кд ходят на сервер, либо в сервисе держат лонгпулл.
>>731072
#104 #731072
>>731053

> gcm network manager


Выглядит хорошо, но я opt-out от гуглоапей. Сделал на аларме, да. Задачи не очень важные поэтому в setInexactRepeating ~15 минут.

А вообще практика сервисов демонов существует в этом мире? Мессенджеры и подобные аппликухи, которым прям важно получить и показать апдейты когда они случаются, они держат демонов с лонгпулами и т.п.? В менеджере показано, мол, куча программ держат свои сервисы запущенными (телеграм, ватсап, рсс читалка, квикпик блять). Не мой случай - просто интересно.
>>731087>>731095
#105 #731087
>>731072
Спасибо тебе Apple и Sony за STAMINA что ты стопаешь свернутые программы.
Иначе было бы хреново как Android из-за таких "изобретателей велосипедов".

Ну ничего Dozen придет - порядок наведет.
С каждой версией он все агрессивней к фоновым процессам.
>>731094
#106 #731094
>>731087

> изобретателей велосипедов


Ты меня имеешь ввиду? Приложение имеет очевидную отключаемую фоновую функцию. Каким образом аларм с setInexactRepeating велосипед?
>>731097>>731103
#107 #731095
>>731072

> каждые 15 минут


Пиздец у тебя там крайне важная задача.
>>731098
#108 #731097
>>731094

> в виду

#109 #731098
>>731095
В чем проблема?
27 Кб, 636x423
#110 #731103
>>731094
Используй GCM пуши, GCM Network Manager, JobScheduler и не выебывайся.

В Android 9.0 все равно уберут AlarmManager.
мимо Сундар Пичаи
>>731105>>731181
#111 #731105
>>731103

> GCM, GCM


Читай посты выше.

> JobScheduler


Посмотрел, написано >=5.0.

Где я выебывался? Я пришел спросить, а не утверждать как принято и лучше.
>>731107
sage #112 #731107
>>731105

> opt-out от гуглоапей


Нахуя на 99% девайсов есть GCM?
>>731113>>731142
#113 #731113
>>731107
Андроид разрабатывается гуглом. Ты это спрашиваешь или запятую забыл?
sage #114 #731142
>>731107
Нахуя? На 99% девайсов ведь есть GCM.
А оставшийся 1% это дауны люди даже без Google Store.
#115 #731181
>>731103
Допустим у меня есть старая апликуха, в ней каждую минуту нужно отправлять запрос, даже если телефон заблокировался, я делал алармменеджер и вейкфулинтентсервис. В результате телефоны садятся быстрее чем ожидалось.
GCM Network Manager - чем мне поможет?
#116 #731684
Пишу андроид клиент для сервера, сервер на Spring MVC REST + Spring Security. Андроид клиент не имеет системы аутентификации.
Суть в том что когда отправляю запрос то сервер мне постоянно возвращает ответ 403. В конфигах системы защиты разрешил делать POST вообще всем(permitAll()), и все равно 403.
Где я мог проебаться? Мб дело в заголовках и надо приписывать что-то в заголовок? csrf или еще что-то?
#117 #731699
>>731684
Попробуй достучаться до сервера каким-нибудь питоном.
А вообще, у тебя в пермишанах INTERNET есть?
>>731764
#118 #731742
Вот мне нужно в БД добавить много таблиц с одинаковой структурой, но разным наполнением. Мне действительно нужно отдельные таблицы создавать для каждого? Хз, может можно по-другому сделать.
>>731759>>731760
#119 #731759
>>731742
Нахуя тебе много таблиц, если у них одинаковые столбцы?
>>731774
#120 #731760
>>731684
Выводишь сырой HTTP запрос в спринге если это там возможно, сначала удачный потом нет, сравниваешь, подгоняешь.
>>731742
Это как? Ну добавь какое-нибудь поле типа type, если нужно эти данные как-то различать.
>>731774
#121 #731764
>>731699
У него 100% есть, иначе в логах он бы сразу ворнинг увидел.
#122 #731774
>>731759
>>731760
Я хуево объяснил видимо. У меня есть несколько расписаний, пользователь выбирает какое-нибудь, и дальше работаем уже с ним. Как это организовать правильно?
>>731895
#123 #731833
>>731684
Ведро хранит куки? Еще возможен вариант что он твои сертификаты на хую вертел.
#124 #731887
создал приложение с edittext и появилась такая пролема, что в этом поле(edittext) я могу писать либо англ символы, либо цифры, другие языки не доступны, как починить?
>>731936
35 Кб, 479x725
#125 #731890
>>726626 (OP)
Простите что не по теме. Можно ли как то обмануть пик?
>>731891
#126 #731891
>>731890
Изменить build.prop
>>731897
#127 #731895
>>731774
Если структура одинаковая, то смысла наверное нету.
Просто добавь отдельное поле, в котором будешь записывать, к какому расписанию принадлежит запись.
#128 #731897
>>731891
Понял, а что конкретно надо менять?
>>731907
#129 #731907
>>731897
Помоги, пожалуйста! Какие строчки менять? Как приложение узнает, что оно запущенно в эмуляторе?
>>731924
#130 #731924
>>731907

>Как приложение узнает, что оно запущенно в эмуляторе?


Макаки не могут в технологию антиэмуляции и антиотладки.
>>731928>>731929
#131 #731928
>>731924
Спасибо, конечно, но откуда столько негатива?
Да и не макака я.
#132 #731929
>>731924

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


>жява

#133 #731936
>>731887
Ты не в эмуляторе случайно?
#134 #732403
Поссоны, как оцентровать edittext по отношению к другому view
>>732413
#135 #732413
>>732403
linearLayout-ами вложенными, как еще
#136 #732415
Использовал Дashcha и Оvеrchan. В овeрчане треды листаются гораздо плавнее/приятнее, значит ли это, что сложные/длинные вьюхи лучше делать хтмлем внутри одной вебвью, нежели нативными виджетами (дашчан, наверное, recyclerview использует)?
>>732441>>732445
#137 #732441
>>732415

>что сложные/длинные вьюхи лучше делать хтмлем внутри одной вебвью


Ты понимаешь что ты несешь?
>>732448
#138 #732445
>>732415

> сложные/длинные вьюхи лучше делать хтмлем внутри одной вебвью, нежели нативными виджетами


На 0 поделил у нас во дворе за такие вопросы убивают нахуй
>>732448
#139 #732448
>>732441>>732445
По делу можно сказать? Я вполне понимаю, что звучит глупо. Почему настолько видимая глазу разница между дашчаном/овeрчаном?

Овeрчан в спам листе. Хм.
>>732451
#140 #732451
>>732448
Я ебу что где быстрее/медленнее, но ты нес хуйню полную. Тебе в сорсы лезть смотреть кто что наговнякал?
>>732454
#141 #732454
>>732451
Я сорсов дашчана не нашел. Но сомневаюсь, что там что-то такое странное, что делает стандартный нативный виджет хуже вебвью.
>>732455
#142 #732455
>>732454
Ну а к нам ты чего приебался?
>>732460
#143 #732460
>>732455
Ну если не знаешь зачем кидаться-то? Кто знает, пускай ответят. Вопрос вполне себе в теме треда.
>>732475
#144 #732475
>>732460
Что знает? Почему список в вебвью работает быстрее чем в какой-то апликухе? Ты понимаешь что реализовать его можно по разному?
>>732480
#145 #732480
>>732475
В одной вебвью в другой натив.

> Ты понимаешь что реализовать его можно по разному?


Я понимаю, что страничка может быть сверстана по разному, что повлияет на скорость работы, да. Но, судя по реакции выше, представление со скроллом (листинг постов) на нативе всегда покажет себя лучше.
>>732481
#146 #732481
>>732480
Всегда можно наговнокодить так, что будет медленнее.
>>732493
5 Кб, 669x318
#147 #732490
Появился вопрос по анимации. В документации расписано как делать всякие сдвиги и повороты, а вот как сделать анимацию как на пике? Есть кружок, и нужно плавно его закрасить.
#148 #732493
>>732481
Спасибо за очевидный ответ.
>>732495
#149 #732495
>>732493
Какой вопрос такой ответ.
>>732496
#150 #732496
>>732495
Вопрос не был настолько общим. Я, например, допускаю что вебвью может быть предпочтительней и показать себя лучше в какой-то ситуации. Дашчан/овeрчан могут подпадать под этот случай.
Если кто ими пользовался и может сказать конкретнее, буду признателен.
#151 #732541
>>732490
Есть же увеличение используй его.
#152 #732552
>>732490
ClipDrawbles сунуть по центру и анимировать или толщину краев + радиус. Наверное.
#153 #732565
>>732490
Я бы делал собственной вьюхой, тут в ондроу только овал нарисовать.
#154 #732819
Сап, сабж: recyclerView ведет себя как последняя паскуда и постоянно при скроллинге мешает элементы между собой. Самое неприятное - У элементов есть маркер, состояние которого, очевидно, тоже елдозит по всему списку. Как это лечить ?
>>732835
#155 #732835
>>732819
Написать нормальный адаптер?
>>732844
#156 #732844
>>732835
И как же ? Адаптер вполне нормальный, увидел какой-то жуткий трешак на гите с дополнительно написанными 4 вроде классами на многамнога строк и обосрался
>>732849
#157 #732849
>>732844

>вполне нормальный


Нормальные адаптеры не мешают данные в списке и как-то хранят важные особенности итемов (типа отмеченности)
>>732855>>732856
#158 #732855
>>732849
ты мне щас хочешь сказать что в "нормальных адаптерах" нет переиспользования vh ?
>>732900
#159 #732856
>>732849
хранят, да да, блять
>>732900
#160 #732863
Костыльное решение через SparseBooleanArray сделал, но что-то все же мне подсказывает что оно костыльное
>>732874
#161 #732874
>>732863
Нормальное же решение, не?
>>732879>>732883
#162 #732879
>>732874
нет, решение говно, но хоть как-то работает.
1 на 100 то выдаст неверный результат
>>732886
#163 #732883
>>732874
Да, собственно оно и не работает особо
>>732885
#164 #732885
>>732883
Это локальное решение, но вот факт перемешивания итемов это вообще никак не изменяет
#165 #732886
>>732879
И чем же решение говно? Если состояние выбранности обрабатывается только в адаптере, то решение отличное. Если нет, то нужно выносить на уровень модели.
Да и ты вероятней всего хуйню какую то накодил, раз не работает.
>>732888
#166 #732888
>>732886
конечно оно отметит выделенность, только вот исключительно позиции, а то, что на этой позиции милый ресайклер наплодил другую вьюху ему насрать :)
#167 #732890
Фактически, кроме того ужаса на гите скорее всего решений то и нет, чтобы гарантированно иметь выделение соответствующее нужному view-элементу
#168 #732900
>>732856
>>732855
Я не знаю о чем ты, покажи этот адаптер.
>>732901
#169 #732901
>>732900
vh - viewHolder, повторюсь, ты считаешь, что у тебя под каждый итем отдельный viewholder и они не переиспользуются ?
>>732903
#170 #732903
>>732901
Я знаю как работает RcyclerView, не втирай мне тут, если нормальный onBind и данные ты хранишь в линейно структуре (списке или массиве), то ничего у тебя не перемешается, скинь ссылку на адаптер блять.
>>732906
#171 #732906
>>732903
Нашел последний косяк, на этот раз у себя. Теперь вроде все запахало. Нужно было отдельно еще и вложенные вьюхи очищать (в каждом из элементов списка было нн-ое количество вложенных вьюх)
>>732907
#172 #732907
>>732906
Ты можешь просто скинуть ссылку на адаптер? Ммм?
>>732908
#173 #732908
>>732907
адаптер нигде не залит
>>732909>>732911
#174 #732909
>>732908
могу отдельно залить для тебя :)
>>732911
#175 #732911
>>732909
Залил тебе за щеку.
>>732908
Ты же писал что-то про гитхаб?
>>732913
#176 #732912
#177 #732913
>>732911
То решение, которое я еще нашел, пардон, скинул свой
#178 #732915
sage #179 #732918
>>732490
Весь остальной функционал уже реализовал, раз уже анимацией кнопок занимаешься?
>>732924
#180 #732924
>>732918
Сука по живому...
>>732928
sage #181 #732928
>>732924
Понятно. У меня пока так же.
#182 #732935
Анон, привет. Я снова вкатываюсь с вопросами по стеку активитей.

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

Во втором случае, если запустилась основная активити, а потом я закрыл приложение нажатием на кнопку Back, и запускаю приложение снова - снова запускается активити с диалогом. Можно ли эту активити после совершения действий каких-либо в диалоге подменить в бэкстеке на активити со сплэшскрином?

Прошу прощения за неровный почерк.
#183 #732944
>>732935
Можно.
>>732945
#184 #732945
>>732944

Спасибо за подробный ответ! А как?
>>732946
#185 #732946
>>732945
Не много вопросов за сегодня?
>>732947
#186 #732947
>>732946

Ладно, спрошу завтра.

подскажи хоть какие ключевые слова в гуголь вбить
>>732949
#187 #732949
>>732947
Я не ебу, я вообще другой анон.
Ну смотри, после того, как ты нажал на уведомление, запустилась активити с диалогом, ты там что-то сделал, запустилась основная активити. После нажатия кнопки бэк по идее должна запускаться активити с диалогом(а точнее, делать onResume, если я не ошибаюсья тупой джун). Но если ты завершаешь приложение, переписав значение кнопки бэк, то при запуске приложения через иконку получаться должен случай 1, никак не активити с диалогом. Я вообще не понял, что именно тебе надо, потому что ты коряво написал или я хочу спать.
#188 #732952
InstantRun — говно ебаное
>>732999
#189 #732953
>>732935
погугли в сторону launchMode
тебе не нужно ничего менять в бэкстеке
#190 #732955
>>732490
сделай белый кружочек поверх чёрного, и на белый view используй ScaleAnimation
>>733692
#191 #732999
>>732952
Что это такое? Кто-нибудь может рассказать?
>>733029
84 Кб, 430x430
Боже мой, какой же СКУЧНЫЙ тред. #192 #733029
>>732935 >>732490 >>732999
Вечный нубы (забаненны в гугле) с вопросами "где в API ..." / "как обойти костыли в API".
Такое ощущение что кроме верстки в Android ничего нет.

Никто не задумывался на такие темы:
0) Борьба со сложностью Android программ ("правильная" архитектура)
1) Применение DSL в Android
2) Функционально программирование и immutable данные
3) Сравнение и преймущества MVVM / MVP / MVC
4) Реактивный расширения vs Коррутины в C# Kotlin
5) Кроссплатформенное программирование
#193 #733050
>>733029
Это и так каждый тред обсуждают.
Так зачем этот Instabt Run нужен?
#194 #733093
Как сделать android:scaleType="fitXY" для картинок в спинере?
>>733120
#195 #733120
>>733093
Камрады, а как вы делаете переход из нотификаций в приложение? Вот допустим у меня етсь токен с ограниченным временем жизни, поэтому просто открыть активити с нужным контентом я не могу, значит нужно проверить при нажатии на нотификацию залогинен ди юзер и в таком случае идти дальше. Это получается создается активити которая разруливает кому куда идти верно? А ведь еще нужно правильный бекстек активитей создать.
>>733149
#196 #733149
>>733120
почему не разрулить в receiver-е?
>>733154>>733156
#197 #733154
>>733149
В промежуток между показом и нажатием токен может протухнуть.
>>733156
#198 #733156
>>733154
>>733149
Да вообщем-то он прав, можно действительно проверять токен в ресивере, а не в активити, один хрен. Другое дело что диплинки будут вести на этот активити и можно было бы их разруливать вместе.
8 Кб, 340x280
#199 #733190
>>733029
Оп на связи.
Ну а что поделать то, я тут уже редко засиживаюсь, постоянно какую-то хуйню спрашивают. И ладно, хоть не вопросы с чего начать.
Но тут есть или бывают пара человек которые что-то да выдадут интересного.

>0) Борьба со сложностью Android программ ("правильная" архитектура)


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

>1) Применение DSL в Android


Честно говоря первый раз вижу чтоб тема затрагивалась.

>2) Функционально программирование


RX тебе в руки

>immutable данные


Тоже не стыкался.

>3) Сравнение и преймущества MVVM / MVP / MVC


Читай свой первый вопрос. MVC никто не юзает. Есть еще VIPER.

>4) Реактивный расширения vs Коррутины в C# Kotlin


Ну это к андроиду очень относится да.

>5) Кроссплатформенное программирование


А хули там обсуждать? Тут иногда вкатываются люди с ксамарина, но толку, если большая половина на нейтиве?
>>733247>>733294
#200 #733200
>>733029

> Сравнение и преймущества MVVM / MVP / MVC


Джуниорские паттерны оставь джуниорам из джаватреда, это говно ещё скучнее, чем вопросы про стек активитей.

> Реактивный расширения vs Коррутины в C# Kotlin


Поебать на новомодное хипстерское говно.

> Кроссплатформенное программирование


Не нужно.
>>733204
#201 #733204
>>733200

>Джуниорские паттерны оставь джуниорам из джаватреда, это говно ещё скучнее, чем вопросы про стек активитей.


Из всех заданных ним вопросов этот самый адекватный и важный.
299 Кб, 1078x875
#202 #733247
>>733190
Насмотришься бывает докладов с JPoint от всяких умных дядек про Clojure или архитектуру реактивных программ.
Потом приходишь в свой тред (я ведь Android девелопер), а здесь никого опытнее ОПа нуфани с одним годом опыта.
Даже совета ни у кого спросить, тк всех интересуют лишь "приземленные вещи" :\

Кстати, спасибо тебе ОПушка за ответы, хоть они и не нужны были я это в принципе знаю.
Я их написал просто для примера, того что здесь не обсуждают.

Сейчас кстати задумался о применимости DDD к разработки сложных приложений под мобилки.
Но пока не уверен что это даст какие-нибудь профиты (надо исследовать тему).


P.S.

> Честно говоря первый раз вижу чтоб тема затрагивалась.


Вот видишь как все печально, а это ведьосновной инструмент борьбы со сложность ПО.
Ты можешь не в Java конечно сделать свой выразительный синтаксис билдинга MVVM (без кодогенерации)
или запросов к абстрактно базе.

> Ну это к андроиду очень относится да.


Относится уже сейчас если ты C# Xamarin девелопер.
Будет скоро относится ко всем, когда Kotlin заимплементят async/await (черновая спецификация уже есть на github).
>>733255>>733274
#203 #733255
>>733247

>а здесь никого опытнее ОПа нуфани с одним годом опыта.


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

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


Ну если можно разделить знания в разработке под ведро на ступени, то я сейчас как раз пробил скорлупу сдк слишком толстая оказалась, даже сейчас иногда элементарные действия могут занимать овердохуя времени и пытаюсь теперь научится архитектуре, тестам и всему что с этим связано. Пока все остальное типа DDD лишь слова услышанные от дядек.

А тебе советую топать во всякие чатики в скайпах и тд, там больше шарящих на самом деле. Да и обсуждения зачатую интереснее.

>Ты можешь не в Java конечно сделать свой выразительный синтаксис билдинга MVVM (без кодогенерации)


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

>Относится уже сейчас если ты C# Xamarin девелопер.


Ну с таким же успехом можешь включать в разговор джаваскрипт с их фичами и тд.

>Котлин


Мне лично пока рано, есть много вещей пополезнее типа архитектуры и тд, ретролямбды под rx пока хватает, вот если уволюсь/уволят то сделаю себе месяц перерыва поучу.
>>733292
#204 #733274
>>733247

> Даже совета ни у кого спросить, тк всех интересуют лишь "приземленные вещи" :\


Меня, с одной стороны, приземлённые вещи не интересуют, с другой, то, что ты перечислил, я вообще не знаю и даже не интересуюсь.
#205 #733292
>>733255

> МВВМ обсирают за счет того что если нужно что-то впаять типа логики начинаются костыли. МВП мне больше нравится


Собственно, никто не мешает в проекте на MVP еще и MVVP. Не скажу, что мне нравится такой вариант, но он имеет право на существование.
>>733305
#206 #733294
>>733029
>>733190
А чего ты ожидал, придя на двач? Хочешь нормальной дискуссии — иди туда, где тусуются профессионалы.
>>733298
#207 #733298
>>733294
Куда?
>>733306
#208 #733305
>>733292

> MVVP


MVVM, конечно же. Опечатка.
#209 #733306
>>733298
Ищи сам. В прошлый раз меня моча за такие ссылки забанила.
>>733307
#210 #733307
>>733306
Та на пастебин закинь и сюда скинь. И вправду ведь интересно.
22 Кб, 480x800
#211 #733376
Допустим, сделал я свой кастомный ExpandableListView, который позволяет отображать не двухуровневые списки, а N - уровневые.

Вопрос - как мне его привести к стандартному интерфейсу ExpandableList как на пикче, например?
Пока выходит только всякое говно.
#212 #733530
Антоши, появилась проблема.
Есть текстовое поле, класс EditText, из него получаю значение, создаю в конструкторе объект, и отправляют на REST сервер как restTemplate.postForObject(url, objectForServer, String.class);
Проблема в том что в базу данных попадают знаки вопроса ???? вместо русских букв. С латинскими буквами все нормально, через веб-форму русский текст отправляется и выводится нормально.
У кого-то наблюдалась такая проблема с формой?
>>733557>>733590
#213 #733553
Аноны, я настолько не знаю, что делать, что задаю вопрос сюда. Кто-то знает, как выключить WebRTC в WebView хромиумовском?
#214 #733557
>>733530
base64 отменили?
#215 #733590
>>733530
UTF-8 используй
#216 #733692
>>732955
блядь, гениально.
Серьёзно, спасибо
#217 #733703
>>733029
А нахуя вот лично мне это нужно? Какие очевидные профиты? Если я не могу нормально анимации сделать, зачем мне лезть, например, в кросс платформу? Зачем мне дохуя знать про архитектуры, вот я MVP более-менее осознал и пользуюсь, зачем мне ещё что-то?
>>733710
49 Кб, 300x300
#218 #733710
>>733703
Ну если сам не понимаешь, то действитель не зачем.
>>734286
#219 #734014
Подскажите пожалуйста супер хорошую книгу по Java для нюфань после которой можно будет сразу перейти на Android.
Желательно на русском.
>>734018>>734031
sage #220 #734018
>>734014
ОП, прекращай тред бампать , ну не могут нюфаги быть настолько ТУПЫМИ что бы шапку даже не прочитать.
>>734155
#221 #734031
>>734014
В списке книг с шапки нет задач после каждой главы, Эккель на русском обрывается посредине.
>>734155
#222 #734155
>>734018
Я бы рад бампать, но не приходится.
>>734031
Что ты несешь.
#223 #734286
>>733710
Зачем писать, если сказать нечего?
#224 #734445
Есть Java/Android конференция в телеграме?
>>734496
#225 #734496
>>734445
https://telegram.me/AndroidChan
Почему до сих пор в шапке нет?
>>734552>>734578
#226 #734552
>>734496

>https://telegram.me/AndroidChan


Я там больше половины знаю, супер гнилые люди, не буду заходить туда.
>>734572
#227 #734572
>>734552
А никто тебя и не просит заходить.
#228 #734578
>>734496
Полистал, крайне тухло.
37 Кб, 642x760
#229 #734979
>>726626 (OP)
Аноны, в чем может быть проблема?
#230 #735002
>>734979
Грузишь слишком большие картинки?
>>735010
#231 #735010
>>735002
нет
>>735021
sage #232 #735021
>>735010
Пидора ответ
Мы тебя тут что гадать должны что ли
#233 #735042
>>734979
переведите на русский, я не понимаю
#234 #735054
Короче изучаю андроид около месяца-двух. Захотелось написать какое то клиент-серверное приложение. Посоветовали написать приложуху для отслежевиния погоды, используя открытое АПИ с опенвезрмапс. Короче возникло пару вопросов. Нашел подобный курс на юдасити, там они используют фрагменты. Но на стартандроиде еще не дошел до этой темы. Поясните почему нельзя все в мэйн активити писать? И вообзе какие советы дадите по написанию такого приложения?
#235 #735078
>>735054

>все в мэйн активити


Замусорится всякой хуйней.
#236 #735176
правда, что андроид перепишут на свифте?
#237 #735177
>>735176
Инфа 100%.
#238 #735194
>>735054

>>месяца-двух


>>еще не дошел

#239 #735197
>>735054
Да никаких, хуярь сначала как получается, со временем сам поймешь как тебе удобнее, первая апликуха на то и первая что говно полное.
>>735176
Не слушай тролей, это спизданули хуй пойми кто, хуй пойми где, хуй пойми когда, пока нету офф заявы все хуйня.
#240 #735209
>>735176
на голанге же
>>735720
#241 #735486
Такс, значит, у меня вопрос. Нормально ли взять видео курс или просто погуглить темы чтобы вкатиться в жаву и андроид (темы из шапки которые в конце написаны)? А то книги по жабе хуесоские, читать невозможно, единственные читабельные книги по руби и перлу.
>>735500>>735663
#242 #735500
>>735486
И сразу иди на хуй.
#243 #735662
>>735176
На Хаскелле
>>735720
#244 #735663
>>735486
Учи haskell, за ним будущее android разработки.
#245 #735719
решил от нечего делать заюзать dagger. Собрал сэмпл, который тянет json-нину, парсит и выводит. добавил модули эти для ретрофита и окклиета. профитов пока не вижу. тесты писать что ли?
3675 Кб, 298x224
4 Кб, 250x250
#246 #735720
>>735176 >>735209 >>735662
Посмешили, молодцы
#247 #735827
У меня есть несколько типов данных, для которых я хочу сделать detail view. Они во многом похожи, но их представления должны различаться по дизайну и вёрстке (функционал практически одинаковый). Предположим, у меня есть разные фильмы. И, в зависимости от жанра фильма, экран с ним должен выглядеть по-разному. Как в таком случае поступить?
1) Сделать для каждого жанра свой фрагмент (типа, ComedyFilmFragment, AdventureFilmFragment etc), и в зависимости от типа фильма инстанциировать нужный фрагмент внутри activity. Плюсы: четкое разделение, у каждого представления будет свой класс (фрагмент) и вид (разметка в xml). Минусы: код будет дублироваться (всякие жмаканья на кнопки и прочее), не очень красивый каскад из if-else внутри Acivity#onCreate()
2) Сделать всё это внутри одного фрагмента, со сложной разметкой, скрывая часть вьюшек во время инициализации фрагмента, настраивая их состояние. Минусы: сложная разметка, нагромождение if-else каскадов по всему коду фрагмента.
3) Сделать BaseFragment, с неким общим функционалом. Отдельные фрагменты будут наследоваться от него, использовать различные xml разметки. Кажется, что этот подход сочетает в себе минусы первых двух, а вот насчет плюсов не уверен.

Может, есть какие-то другие пути? Посоветуйте что-нибудь, аноны, или покритикуйте ход моих мыслей.
#248 #735841
>>735827
3, который убирает дублирование из 1 метода.
#249 #735853
>>735827
использовать хипстерский mvp, отделить view от логики
>>735999
#250 #735855
>>735827
Первое + вынеси общий код в отдельные классы и скомпозируй (НЕ через наследование).
Как вариант можно вычленить Presenter (MVP), а в фрагментах у тебя останется только код отвечающий за разницу в UI.

Можно еще сделать кастомные View и туда засунуть какую-то UI логику что бы не засорять фрагменты.
При этом их можно будет переиспользовать для разных типов окно фильмов.

В итоге окажется что в отдельных фрагментах/верстки у тебя содержится только эта разница в представление.
#251 #735984
Как блядскую макось заставить не сжимать в оперативке студию и ее дочерний процесс градла? Постоянные подлаги из-за этого. Зато блять кэшированных файлов на 2 гб в оперативке, при том что стоит ссд.
>>735995
#252 #735995
>>735984
Так же как и любой другой макос процесс, нужно просто съебать в /s/oft доску и там его задавать
#253 #735999
>>735853

>хипстерский mvp


мвп то олдфажный вообще-то
355 Кб, 960x484
#254 #736029
Неспеша учу уже некоторое время андроид. Пока написал только змейку, погодное приложение и всякую мелочь по гайдам и курсам. Хочу теперь написать полностью сам хорошее приложение уровня джуна, что бы не стыдно было показывать на собеседованиях. Думаю сделать приложение для какого-нибудь магазина, что-то вроде заказа суши/пиццы или каких-то услуг, просто покупки каких-нибудь вещей, ну вы поняли. Реализовать там все что возможно. Нормальная идея для пет-проекта?
Где можно взять готовый бэк-энд? если я правильно выражаюсь Что бы там можно было зарегать юзера, хранить историю заказов, вот это все, что там магазины хранят в бд. Parse.com подойдет для этого? Хотя слышал, что его скоро закрывать собираются. Может что посоветуете.
#255 #736070
>>736029

> учу уже некоторое время андроид


> сам написать... приложение для какого-нибудь магазина


Обосрешся 100%.
Даже если доведешь до конца, будут спагетти с макарошками,
которое не то что нельзя показать на собеседование, лучше сразу сжечь.
>>736144
#256 #736073
не совсем понял, может я туплю, но чем DDD от банальной клиент-серверки отличается ? Как еще то можно, лол
>>736083
#257 #736083
>>736073

> чем Domain Drive Design от клиент-серверки отличается


Ты что несешь? При чем тут вообще сервер-клиент?
#258 #736113
>>736029
firebase мб
>>736144
#259 #736144
>>736070

Это настолько сложно? А что делать тогда?

>>736113

Спасибо, посмотрю.
>>736300
#260 #736300
>>736144
Погодное приложение, лол.

Сделал так и уже неделю как трудоустроенный джун.
>>736553
#261 #736394
>>734979
попробуй в манифесте прописать android:largeHeap="true"
#262 #736398
>>735827
3, при чём в BaseFragment методы, делающие разные действия должны быть абстрактными
#263 #736401
>>736029
на google drive можешь
заодно и прикрутишь гугловую авторизацию через google services
#264 #736553
>>736300

Так я уже 2-е пишу, к первому даже самоопределение локации прикрутил.
Погоди, ты хочешь сказать, что вот этой хуиты, которая пишется за неделю, достаточно, что бы уже идти устраиваться на джуна?
>>736601
#265 #736554
>>726626 (OP)
Собираюсь вкатится, удобна ли Intellij для этих целей или нет?
>>736556>>736620
#266 #736556
>>736554
Лучше сразу Android Studio, что, по сути, и есть Intellij, просто заточенная
#267 #736572
Анон, есть идея одного приложения, сколько примерно будет стоить разработка?
Приложение связывается с сервером, берет оттуда данные и рассылает учебный материал всему классу. В приложении есть общий чат, учитель в онлайне видит что творят ученики.
>>736621>>736920
#268 #736601
>>736553

Ну я же не говорил, что написал только погодное приложение
А ты попробуй сходить на какое-нибудь собеседование, удивишься скорее всего.
От джунов многого и не ждут. Скорее всего, тебя вообще по яве будут гонять, в основном.
>>736936
#269 #736620
>>736554
Удобна, но ее раньше немного настраивать надо было. У меня сейчас идея и студия.
Идея крякнута и не обновленная, студия свежая, иногда из беты, советую делать так же.
>>736673>>736919
#270 #736621
>>736572
Конфа в любом мессенджере.
#271 #736673
>>736620

> Идея крякнута и не обновленная


Про Comunity слышал? Там есть все для Android и даже Котлин.
>>736917
72 Кб, 600x474
#272 #736892
>>726626 (OP)
Сап, анон. Нид хелп.

Полгода изучаю жабу (и программирование вообще), по книгам и урокам, недавно возникла потребность написать простенький тренажер, дающий задачи и проверяющий результат. Консольную версию написал за вечер.
Ведро решил изучать по ходу пьесы. После установки Студии, хотел чисто для ознакомление проэмулировать какой-нибуть хэлловорд, однако в AVD абсолютно все варианты, включая мною создаваемые приводят к

Unfortunately, your computer does not support hardware accelerated virtualization.
Here are some of your options:
1) Use a physical device for testing
2) Develop on a Windows/OSX computer with an Intel processor that supports VT-x and NX
3) Develop on a Linux computer that supports VT-x or SVM
4) Use an Android Virtual Device based on an ARM system image
(This is 10x slower than hardware accelerated virtualization)

Собственно варианты устройств с armeabi тоже не поддерживаються. Значит ли это что проэмулировать никак не получится?
Для меня это сириус бизнес ибо привык все изучать, проверяя результат.
Мое железо пикрелейтед.
Нешто мой полугодовалый ноут такое непроходимое говно?
#273 #736917
>>736673
Триал тривиально делается бесконечным, нет смысла ебаться со старыми версиями плагинов.
>>737018
#274 #736919
>>736620

> Идея крякнута


Ну и мразь же ты.
#275 #736920
>>736572

> сколько примерно будет стоить разработка?


С какой целью интересуешься?
Если хочешь заказать, то находи исполнителя и обговаривай с ним подробности, он назовёт тебе цену.
#276 #736928
>>736892
Попробуй genymotion. Может запустится.
Но работать всё равно будет слишком медленно, о чем тебя AVD и предупреждает. И даже предлагает разные варианты, что делать.
>>736946
#277 #736936
>>736601

А что еще написал?
>>736940
#278 #736940
>>736936
Стихи о весне.
#279 #736946
>>736928
Спасибо, буду пробовать.
Алсо, да варианты есть, но на планш кидать апк с моими скиллами придеться сильно часто. Четвертый вариант мне не помогает, сообщение аналогичное, а другой комп до дембеля мне не светит.
>>737199
#280 #736954
В процессе запила своего калькулятора. Да, я в курсе, что мой высер никому не уперся блаблабла, но хочется выложить его гуглеплей, чтобы потешить свое чсв, чтоб было ощущение хоть какой-то законченности.
Но проблема в том, что я не умею в дизайн от слова совсем.
Анон, если заказывал, какую биржу юзал, какие подводные и вообще посоветую по этой теме чего-нибудь.
#281 #736989
Наткнулся на вот такую штуку http://www.appcelerator.com/mobile-app-development-products/

Что-то посмотрел их ролики и охуел. Там же можно даже без особого знания кодинга сделать приложение сразу под все платформы. Это реально так просто? В чем подвох?
#282 #737018
>>736917
Зачем тебе вообще это нужно школьный синдром максималиста?
Все что надо для Android есть Community и плагины там все новые и обновляется без проблем.
>>737021
#283 #737021
>>737018
Я ее крякнул когда комьюнити не было, да и пользуюсь раз в пол года. Нахуй мне переустанавливать?
#284 #737022
>>736989
Ну ты попробуй, расскажешь как оно.
#285 #737031
>>736989

>Там же можно даже без особого знания кодинга сделать приложение сразу под все платформы.


Чую серебряную пулю. Но их не бывает.

Хуй знает, если честно, выглядит как говно и кажется мне что там нихуя мало мальски сложного написать невозможно. Но пробуй, расскажешь как оно.
5 Кб, 150x150
#286 #737040
>>736989
JavaScript
19 Кб, 500x375
#287 #737156
Привет анон. Очень понравилась писать под андроид, думаю перекатиться сюда. Но возник вопросик, на сколько перспективен андроид за границей. Смогу ли я где-нибудь найти работу?
>>737186
#288 #737186
>>737156
Нет
#289 #737199
>>736946

> Алсо, да варианты есть, но на планш кидать апк


Зачем? Shift + F10 и все уже запущено на твоём планшета.
>>737448
Javascript #290 #737357
Если в адресную строку хрома вбить код на js, он будет выполняться. Хочу чтобы можно было применять свой яваскрипт к любым страницам в моём вебвью. Как запилить? На стаковерфлоу увы не то, что я хотел бы видеть по своим запросам. Хэлп
>>737359
#291 #737359
>>737357
(Да, это всё касается андроида и хром имею ввиду мобильный, не надо меня в js тред)
#292 #737448
>>737199
>>737199
Почему? Это ж вроде просто прогонка проги с игнорированием AVD? Повторюсь, я нубас.
>>737648
#293 #737473
Сегодня делал небольшой UI, 6 кнопок, 2 имейдж-вью. Пытался все сделать с минимум лейаутов, но все не хотело становиться как надо, долго ебался с этими align/gravity. В итоге в корневой relativelayout насовал linearlayout, а в них уже свои групы кнопок и имейдж-вью. Сразу стало удобнее располагать работая с linearlayout'ми. Это нормально так делать? Производительность не пострадает, если у меня, допустим, не просто идут два имейдж-вью, а оба они "обернуты" linearlayout'ми? Код вроде от этого не особо загажен, все с ходу понятно если глянуть.
>>737488>>737538
#294 #737488
>>737473
будет тормозить - оптимизируешь. В пезду преждевременную оптимизацию
#295 #737538
>>737473
волноваться начинай, когда количество вложенных лэйаутов перевалит за десяток.
То, что ты сделал - совершенно нормальная практика.
#296 #737648
>>737448
Напиши какой-нибудь Hello World с одной кнопкой и попробуй запустить на своём планшете. Увидишь, как оно всё работает.
запускать на физическом устройстве гораздо удобнее, чем в эмуляторе
>>738005
Big Dick #297 #737673
s
sage #298 #737708
Итак, господа, я решил вкатиться в андроид. Есть опыт 2 года промышленной джава разработки. Пожелайте удачи, хули.
#299 #737709
>>737708
Сажа приклеилась.
#300 #737734
>>737708

> 2016


> Разрабатывать под Android на Java


Сразу видно что ты здесь новенький
>>737764
#301 #737738
>>737708
ну удачи, хули.
#302 #737747
>>726626 (OP)
Аноны, есть одна активность(главная) она содержит два ListView, один с ссылками на активности категорий, а второй с списком любимых напитков, сами напитки считываются с бд. Пользователь переходит к активности категорий, выбирает напиток, ставит галочку любимый(записывается информация в бд), потом по нажатию кнопки назад - возвращается к главной активности. Считывание любимых напитков в главной активности происходит с помощью AsyncTask. Как сделать так чтоб список обновлялся по возвращению, в активность? Пробовал создать новый обьект AsyncTask, и запустить, но выбивает исключение. Помогите пожалуйста.
>>737751>>737807
#303 #737751
>>737747
В onResume считываешь данные из бд опять.
>>737807
#304 #737764
>>737734
Гейтс плиз.
>>737768
#305 #737768
>>737764
Это скорее всего котлино-блядок.
>>737771
#306 #737771
>>737768
Так робовм помер, на интеле ебал я в ближайший год даже смотреть.
>>737800>>737819
#307 #737800
>>737771

>2016


Делать кросплатформу, бля давай сразу на джавасрипте, ок?
>>737992
#308 #737807
>>737751
>>737747

> Пробовал создать новый обьект AsyncTask, и запустить, но выбивает исключение


Какое, когда?
В onResume нормально вызывать, но можно еще исхитриться и вызывать обновление бд только в onActivityResult при resultCode == RESULT_OK
>>738077
#309 #737819
>>737771
Еще до закрытия RoboVM, народ форкнул сорцы и сделал свою платформу BugVM
http://bugvm.com/

Так же Intel недавно выпустил второй апдейт MOE - наконец появилась поддержка чистой IDEA.
В принципе теперь под iOS можно разрабатывать и на Windows, а тестить в облачном эмуляторе.
И все бы хорошо, но блин как же трудно использовать, да еще и бинарники получаются жирнее чем на Xamarin.
>>737995
#310 #737935
Где бы найти небольшие заказы на разработку приложений, кроме фриланс бирж?
ВНИМАНИЕ #311 #737936
Если в адресную строку хрома вбить код на js, он будет выполняться. Хочу чтобы можно было применять свой яваскрипт к любым страницам в моём вебвью. Как запилить? На стаковерфлоу увы не то, что я хотел бы видеть по своим запросам. Хэлп
>>738041
#312 #737992
>>737800
Да хули на аппреакторе иксемелькой напиздуем.
>>737994
#313 #737994
>>737992
аппселераторе имел ввиду
#314 #737995
>>737819

>Еще до закрытия RoboVM, народ форкнул сорцы и сделал свою платформу BugVM


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

>Так же Intel недавно выпустил второй апдейт MOE


Потому я и сказал что еще год не буду даже смотреть в эту сторону. Как доделают, думаю будет годно, интел все же не хуи моржовые, но пока они 100% выкатили говноверсию.
#315 #738005
>>737648
но для этого нужно покупать физическое устройство
>>738008
#316 #738008
>>738005
Я тебе больше скажу: чтобы заниматься разработкой под Android, нужно покупать много физических устройств.
>>738142
#317 #738011
У меня та же проблема с avd и sdk
#318 #738041
>>737936

> Хочу чтобы можно было применять свой яваскрипт к любым страницам в моём вебвью.


http://stackoverflow.com/questions/4325639/android-calling-javascript-functions-in-webview

И в чем твоя проблема?
#319 #738066
Sup, androids
Как мне к джаве с либгэдэиксом прикрутить floatactionbutton?
>>738311
#320 #738077
>>737807
снова писать execute(), для вызова? Если делать так, то вылазит исключение, если же пробовать создавать новый обьект и вызывать - то все равно исключение. Все в onResume.
>>738143
#321 #738142
>>738008
Достаточно трёх:
Nexus 5 / 6
Планшет 10.1'' с Android 4.4
Смартфон с Android 4.0.4
>>738150
#322 #738143
>>738077

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


Сразу пиши какое, тут нет экстрасенсов.
>>738232
#323 #738150
>>738142

>Планшет 10.1'' с Android 4.4


Почему именно такой, а не например на желибине?
>>738157
#324 #738157
>>738150
Планшет - чтобы разметку для планшетов отлаживать.
4.4 - более распространен.
#325 #738232
>>738143
FATAL EXCEPTION: AsyncTask #2
java.lang.RuntimeException: An error occured while executing doInBackground()
Скорее всего у меня просто корявый код.
>>738234
#326 #738234
>>738232
Ну бля, у тебя в таске ошибка. Сиди отлаживай дебаггером.
#327 #738311
>>738066
ты ебанулся?
334 Кб, 1920x933
#328 #738405
Господа, а вот эти три этапа отрисовки UI, Measure: xxx ms, Layout: xxx ms, Draw: xxx ms. Они происходят много раз в секунду? То есть что бы поддреживать 60 фпс, надо, что бы вся эта отрисовка была не дольше ~16 ms, так?
>>738445>>738449
#329 #738445
>>738405
Нет. Мешуры и лейаты один раз до следующего requestLayout, который может настать никогда. Дровы во время invalidate, нажатия, смены состояния, скролла. Т.е. тоже не постоянно.
#330 #738449
>>738405
Что означают зеленые точки?
>>738469
#331 #738469
>>738449

Вроде бы индикаторы на каком из этих 3-х этапов прорисовки вью плохая(красный)/нормальная(желтый)/хорошая(зеленый) производительность.
>>738481
#332 #738481
>>738469
Лучше бы в цифрах.
#333 #738677
Анончик, я тут хотел сделать приложение, отправляющее смс и сделал. Нажимаю на кнопку и заранее заготовленный текст улетает на заранее заготовленный номер.
Вопрос вот в чем, когда я нажимаю на кнопку, сообщение не сразу улетает, а открывается стандартный отправщик смс, в который подставляется текст и номер и уже только после нажатия "Отправить" в стандартном мессенжере, сообщение улетит. Есть ли способы обойти стандартный мессенджер и сделать так, чтобы смс улетало мгновенно из приложения?
>>738698
#334 #738698
>>738677
Нафиг задавать вопросы, которые так легко гуглятся:
http://www.codeproject.com/Articles/1044639/Android-SMS-MMS-API-Sending-SMS-MMS-Receiving-SMS

В следующий раз тебе будет ссылка на http://lmgtfy.com/
>>738794
#335 #738715
Сап.
Я нюфаг, изучаю с#.
Хочу потом вкатиться в андроид.
Какого уровня я должен достичь, прежде чем начинать вкатываться в него?
>>738731
sage #336 #738731
>>738715
Эльфа 80 уровня
#337 #738794
>>738698
Спасибо, анон!
Ты прак, как никогда
>>738811
#338 #738811
>>738794

>прав


фикс
#339 #739079
Есть один android.graphics.pdf.PdfRenderer который добавлен в api 21, можно его как то использовать в api 17?
>>739134
#340 #739089
Напомните, почему они до сих пор используют Java и не переходят на Go?
>>739128
24 Кб, 334x288
#341 #739128
>>739089
K O T L I N
O
T
L
I
N
>>739131
#342 #739130
>>736892
Возможно, тебе в BOIS'е нужно включить виртуализацию.
Например:
Enable hardware virtualization in BIOS
http://h30434.www3.hp.com/t5/Desktop-Hardware-and-Upgrade-Questions/Enable-hardware-virtualization-in-BIOS/td-p/1152355
>>739138
#343 #739131
>>739128
Все та же байтопараша, не могущая в скорость нативного кода.
>>739134
#344 #739134
>>739079
Конкретно его никак, ведь это просто Java прослойка к нативному API.
Ищи стороннюю библиотеку.

>>739131
На самом деле это спорный вопрос, если НЕ нагружать GC, то современные JVM сравнимы по скорости с нативом
(на часто встречающихся задачах).
А если вдруг потребуется супер-быстро перемножать матрицы, то у нас есть C++
>>739145
#345 #739138
>>736892
Твой процессор поддерживает виртуализацию, так что включай как >>739130 говорит, либо подключи какой нибудь андроид шнуром.
#346 #739145
>>739134
Любой GUI на Java тормозит. Наглядно видно при использовании одного и того же приложения на iOS и Android.
>>739156
sage #347 #739156
>>739145
Ты это владельцам iPhone 4S расскажи у меня был такой.

Да и про UI это не актуально, он сейчас везде рисуется с помощью аппаратного ускорения (через OpenGL).
>>739181
#348 #739181
>>739156
В iOS гуй не останавливается, переставая отвечать на действия пользователя - потому что там нет GC, вместо него используется reference counting.
>>739200
sage #349 #739200
>>739181
Но в Go тоже есть GC (мы же его все еще обсуждаем)

Кстати в iOS анимации плавные из-за отрисовка идет в отельном потоке (а не GC).
Там даже если кто-то залочит (чтением с диска) главный поток, то анимации все равно продолжатся.
Только контролы перестанут отрабатывать нажатия (кнопки, меню и тд).
#350 #739211
В iOS есть пара охуительных штуки - UINavigationController и UITabBarController. Отвечаю грубо говоря за навигацию и переключение ее ветвей.
Есть в андроиде аналоги? Слишком много болер кода приходится писать про жонглирование фрагментами и переименовывание тайтла в тулбаре. Хуета получается, не красиво.
>>739238
#351 #739238
>>739211
Выносишь установку Toolbar в какой-нибудь базовый класс для активити (или вообще работаешь по старинке с ActionBar).

Насчет UITabBarController, если хочешь что бы все было в разметки, то можно ОДИН РАЗ написать кастомный контрол,
который внутри создаст FragmentTabHost и все настроит.
Дальше ты будешь его переиспользовать, а кастомизировать в XML верстачки через атрибуты.

Пожалуйста, у тебя все как в iOS:
1) Вместо self.navigationItem => this.supportActionBar
2) Вместо UITabBarController => твой кастомный контрол
3) Вместо Swift => Kotlin

Все элегантно и удивительно чисто.
#352 #739240
Почему может не работать ретрофит с парамтером на андроиде 6? Просто отправляется запрос без параметра. На всех остальных работает версиях работает.
>>739243
#353 #739243
>>739240
Может ретрофит 2? Поставь логи на полные, и посмотри хули. Или дебагер.
>>739244
#354 #739244
>>739243
да, ретрофит 2
>>739258
#355 #739258
>>739244
Ну я думаю скорее всего с ним какая-то хуйня. Кстати, возможно ты проебался с пермишенами и он по умному их проверил. Ты там не чиатешь файлы случайно?
>>739264>>739394
#356 #739264
>>739258
читаю, на них вылетает, но в сплеш скрине без параметров все загружается нормально. Попробую доделать эти новые пермишены (уже не новые)
>>739334
#357 #739334
>>739264
Что вылетает? Где стектрейс? Без него тебя надо сразу гнать ссаными тряпками отсюда.
#358 #739394
>>739258
щас поставил таргет сдк 22, файлы читает нормально, но так же параметр не отправляется, ебаный ретрофит
#359 #739544
Нужно разместить N вьюх ~100x100dp в группу, чтобы полностью заполняли родителя (кол-во колонок и маргины динамически). Gridlayout не подошел, на gridview+адаптер делать?
>>739565
#360 #739565
>>739544
1) GridView
2) Кастомный ViewGroup (там на самом деле все просто)
>>739571>>739578
#361 #739571
>>739565
3) Найти готовый контрол на gihub
https://github.com/ApmeM/android-flowlayout
Вроде такой тип называется FlowLayout
>>739578
#362 #739578
>>739571
>>739565
Спасибо.

> (там на самом деле все просто)


http://developer.android.com/reference/android/view/ViewGroup.html
Довольно жирно.
#363 #739595
аноны, если я отправляю пендинг интент в мой сервис, че то делаю, активити в это время пересоздается и мой пендинг интент вернется в две активити или он поймет, что надо в новую возвращаться?
>>739615
#364 #739615
#365 #739966
Как наебать ведро на отправку коротких смс сообщений без подтверждения?
Раньше заебись деньги текли до Jellybean примерно, щас не текут.

>>741122
#366 #740299
ребята, учил джаву чтобы вкатиться джуном, но к сожалению, пока учил контора уже взяла себе пару студентов и во мне там совсем нет необходимости. мухосранск у меня довольно сухо относится к IT, мест куда можно пойти мало. но сейчас появилась вакансия на джунов/мидлов андроид девелоперов.
каких знаний по Android SDK будет достаточно чтобы был смысл кидать им резюме? почитал шапку, все таланты которые требуются от джавы я приобрел. заранее благодарю
>>740317>>740337
#367 #740317
>>740299
Лол, мы что экстрасенсы, откуда мы знаем, какой уровень им нужен?
>>740331
sage #368 #740331
>>740317
Нахуй ты ему вообще отвечаешь...

Пора бы уже добавить в шапку

> Сколько лет вы не можете найти работу никому не интересно.

#369 #740335
какие -то вы тут отбитые. человек просто спросил уровень знаний достаточный для джуна, вы тут начали реагировать по дикому. не знаете - не пишите хуйни хотя бы
>>740355
#370 #740337
>>740299
требуются мидлы и джуны нужно понимать, как платить много не хотим, но и учить, тоже, не горим.
>>740340
#371 #740340
>>740337
а не горим. потомучто сами нихуя не знаем. вот и делай выводы какой нужен уровень. напиздить четко на собеседовании, потом хоть трава не расти.
#372 #740355
>>740335
Семен не палится.
10 Кб, 485x189
4 Кб, 711x47
10 Кб, 656x162
13 Кб, 655x197
#373 #740439
Пилю игру в intellij idea под андроид и десктоп.
Так вот, я создал 3 модуля - кор, десктоп, андроид, подключил там в зависимости(прожект структур-моудули) эти либы либгдкса(джар файлы), а папке андроид в libs скинул .so библиотеки в папки armeabi-v7 x86 и ещё что-то, ну вы поняли. Так вот, всё идеально работало, всё собиралось и на андроид и десктоп.
И вот я решил добавить ещё одну библиотеку - пик 1. Это джар файл, внутри там .java файлы и .class файлы, даже примеры, ещё и мета инф есть, добавил этот джар файл в зависимости для кор модуля и всё нормально работало на десктопе.
И вот решил затестить на андроиде - апк файл(который я через артифактс настроил) собрался. Когда подключаю телефон и сразу на нём через иде запускаю - оно всё собирается, устанавливается на телефон, но пишет ошибку сразу ошибку(пик 2).

Что за хуйня? Я гуглил и везде написано все библиотеки положить в android/libs(у меня они даже не в папке андроид, в android/libs только .so файлы от либгдкса). Так вот, .so файлов от этой библиотеки нет, только джар, и что же делать?

Пик 3 - зависимости андроида. Пик 4 - зависимости кора.
Я конечно могу просто скопировать все нужные файлы из этой библиотеки в свой кор модуль и всё будет работать, но надо же разобраться в чём проблема на всякий случай.
>>740533>>740642
#374 #740454
сабж: есть хэдер с эффектом параллакса построенный по канонам design 23 и скроллящаяся вьюха. В хэдере есть ImageView, в который пихается картинка посредством Glide. При быстром и интенсивном скроллинге картинка с ImageView пропадает. Вопрос: как бы это исправить/хотя-бы отловить момент чтобы быстро прикрепить обратно ?
>>740518
#375 #740518
>>740454
кажется в коде чет поправить надо
>>740524
#376 #740524
>>740518
а несколько более точное предположение ?
>>740645
8 Кб, 302x221
#377 #740533
>>740439
Вот ещё - почему все те библиотеки Library home, а rlforj нет?
>>740642
88 Кб, 1122x357
#378 #740574
Что я делаю не так?
>>740577
#379 #740577
>>740574
Юзаешь хуй пойми что
>>740581
#380 #740581
>>740577
Задали написать сервис, который будет в консоль выводить местоположение телефона. Так как я тупой, то решил ручками переписать http://stackoverflow.com/questions/28535703/best-way-to-get-user-gps-location-in-background-in-android
#381 #740599
>>740581
1) Покажи импорты этого класса
2) Покажи исходники своего LocationListener

У тебя тут какая-то дичь, не понимаю как это компилируется даже (я в курсе что это Kotlin)
>>740621
10 Кб, 435x155
#382 #740605
>>740581
Если ты просто конвертнул ответ со SOF, то у тебя должен быть такой массив листнеров.
#383 #740621
>>740639
#384 #740629
>>728745
Берешь студию 2015, юзаешь mvvmcross вместо лайта и радуешься жизни. зависимость есть, брат жив
>>740651
#385 #740639
>>740621
Глянь импорт, ты используешь
com.google.android.gms.location.LocationListener

, a LocationManager работает только с
android.location.LocationListener.

На SOF чувак вообще создал свой класс LocationListener (унаследовав его от android.location.LocationListener)
>>741057
#386 #740642
>>740439
>>740533
Потому, что нужно использовать нормальную систему сборки (т.е. Gradle, раз речь про Android), а не настраивать всё кривыми руками.
>>740648
#387 #740643
>>740581
тестовое дали написать на котлине?
>>741051
#388 #740645
>>740524
нужно найти ошибку и исправить её
#389 #740648
>>740642
Ну так у меня всё нормально настроено, ничего лишнего и вот пригодилась эта библиотека, а как её правильно добавить я не знаю, так как нет .so файла.
>>740653
#390 #740651
>>740629

> Берешь студию 2015


Только вот где я её под Mac возьму? (корпоративный стандарт такой)
Жду, когда JetBrains Rider в бету выложат, хотя и непонятно, насколько там Xamarin поддерживаться будет.

> mvvmcross


Расскажешь, в чем плюсы по сравнению с MvvmLight?

> радуешься жизни


С ксамарином этого точно не будет.. Сейчас уже лучше идёт, но всё равно — ощущение, как будто после python'a пишешь на visual basic'е, причем исключительно в блокноте.
>>740666
#391 #740653
>>740648

> Что за хуйня? Что делать?


> Твой совет говно, у меня всё отлично


Ну как знаешь.
>>740660
#392 #740660
>>740653
Ну а что такого гредл делает чего нельзя вручную сделать?
>>740669
#393 #740666
>>740651
Накати винду дуалбутом?
191 Кб, 1000x566
#394 #740669
>>740660

> Ну а что такого гредл делает чего нельзя вручную сделать?


> Ну а что такого IDE делает чего нельзя сделать в блокноте?


> Ну а что такого git делает чего нельзя сделать, копируя исходники в разные папки?


> Ну а что такого java делает чего нельзя на паскале сделать?


А действительно, чего?
#395 #740681
Ведройдолюбы, за 10к деревянных напишите говнопрогу? Суть в личку
2chlo^5averANUSmaip-"lPUNCTUM>orru
>>740695
27 Кб, 500x408
#396 #740695
>>740681

> Не сказал ни слова про проект


> Но указал стоимость


> 10 000 рублей

>>740747
#397 #740747
>>740695

> mail.ru


Вангую, будет проект a-la сделать клон твитора, без нормального тз, дизайна и с кучей доработок в любое время дня и ночи. Плавали - знаем.
>>740828
#398 #740828
>>740747
нет
#399 #740871
Аноны, что почитать по mvp, mvvm? И про то, как в 2016 правильно организовывать работу клиент-серверки?
#400 #741040
>>741095>>741283
#401 #741051
>>740643
Ага
#402 #741057
>>740639
А как наследовать в Котлине? Прочитал гайд официальный, но так и не понял.
>>741058
#403 #741058
>>741057
Все, разобрался, оказывается нужно было дописать android.location. к LocationListener в наследовании
48 Кб, 402x328
#404 #741095
>>741040
Кстати (спс что напомнил), вот лайфхак по поводу тестов с mocikto:

PowerMock - https://github.com/jayway/powermock
Небольшое расширение для mockito с которым вы сможете мокать любой Kotlin класс.
#405 #741122
>>739966
БАМП ГОДНОМУ ВОПРОСУ
>>741556
#406 #741147
После обновления sdk студия перестала видеть мой планшет, было такое у кого?
871 Кб, 948x990
#407 #741271
Ребят, подскажите библиотеку для ксамарина, с которой можно реализовать подписи клиента. Рисовалка это конечно здорово, но может что интересней существует?
>>741283>>741558
#408 #741283
>>741271

> подписи клиента


А ручками сделать никак?

P.S. >>741040
Кстати, Кекс :) то прикольный чувак:
1) популяризирует экстремальное программирование"
2) борется с энтерпрайзом в java разработке
3) делает прикольные доклады ("как нам спасти java" и "стиль (одежды) программиста" и тп)

Вообще я думал он из такой "школы" что будет до конца жизни дрочить жабку и никогда даже не посмотрит на другие языки.
sage #409 #741556
>>741122
Семён не палится
sage #410 #741558
>>741271
А погуглить не пробовал? https://github.com/xamarin/SignaturePad
#411 #741645
>>726626 (OP)
Аноны, щас прочитал ряд статей на хабре про rx, посмотрел видео от яндекса, как же это охуенно, почему все это не юзают, есть какие то подводные камни?
>>741708>>741937
#412 #741654
Кто знает как проверить, что устройство в данный момент "спит" себе где-нибудь на полочке, а не в руках пользователя в активном, собственно, пользовании? И нужен ли для такой проверки какой-нибудь лишний permission?
>>741658
#413 #741658
>>741654
просто не знаю как называется это состояние, иначе бы у гугла спросил
#414 #741708
>>741645
Много кто использует на самом деле и даже Google
(только они сделали свой Rx "с блекджеком ...". в пред. треде была ссылка на гитхаб).

Не совсем понятно его будущие в Android после появления там CompletableFuture "из коробки".

Юзаю RxJava в Kotlin, но планирую в будущем перекатится на async/await
>>741712
#415 #741712
>>741708
Накидайте простых приложений на kotlin для обучения, я не знаю ни android, ни kotlin. Возможно через котлин вкатится или все же через джаву будет проще?
>>741728>>741762
#416 #741728
>>741712
Лучше начать с Haskell, так проще всего будет.
>>741729
#417 #741729
>>741728

>Лучше начать с Haskell, так проще всего будет.


Я не понимаю сарказм это или нет, но я знаю haskell.
>>741734>>741851
#418 #741734
>>741729

>знаю haskell


И клингонский поди знаешь?
Это был супер сарказм. Если ты хочешь вкатывать в область очень тесно связанную с джавой, нет смысла вкатываться не на джаве, а на обертке для нее. Это все можно потом.
>>741757>>741851
#419 #741757
>>741734
Я знаю c# и могу разобраться в работе программы на джаве, но в отношении ведра в коде на мой взгляд творится лютый пиздец, даже в топовых проектах. Потому хотел перескачить и начать сразу с котлина, но похоже не осилю.
>>741860
18 Кб, 178x178
#420 #741762
>>741712
Kotlin Koans - набор тестов для обучения
https://kotlinlang.org/docs/tutorials/koans.html (также есть плагин для Idea)

Вот сравнение одного и того кода для Android на 4 языках (да АНОН сейчас есть выбор)
https://github.com/SidneyXu/AndroidDemoIn4Languages

Вот видосики на youtube (под попкорн)
https://www.youtube.com/playlist?list=PLVe-2wcL84b8pj7VOoa-6L9Q0sDjibdoF
>>741773>>741816
#421 #741773
>>741762
Ну спасибо, попробую вкатится к вам.
#422 #741816
>>741762

>(да АНОН сейчас есть выбор)


>Groovy


>Scala


Нету выбора, то что джавамашина жрет любой из них не значит что этот язык нужно использовать.
>>741832
sage #423 #741832
>>741816
Ага, тебя спросить забыли.

Впрочем и у тебя есть выбор сидеть в своей... джаве
>>741833
#424 #741833
>>741832
Как и у тебя лол.
#425 #741851
>>741734
>>741729

Сами вы сарказм. За Хаскеллем будущее андроид-разработки! https://github.com/neurocyte/android-haskell-activity/blob/master/src/HaskellActivity.hs
>>741868
#426 #741860
>>741757

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


То есть, если заменить java на kotlin, то сразу же всё станет замечательным, код красивым, а обои нескучными?
>>741862
#427 #741862
>>741860
Там хотя бы код посимпатичнее.
>>741869
267 Кб, 1920x1080
#428 #741868
>>741851
Последнее время мне кажется будущие всего Android вообще за

C L O J U R E

такой-то он ахуенный.

С другой стороны, конкретно в мобилках, не особо нужны его плюшки (STM и всеобъемлющая иммутабельность)
>>741871
#429 #741869
>>741862
И как это поможет проекту, код которого — лютый пиздец? Был лютый пиздец на Джаве, станет лютый пиздец на Котлине. Охуеть победа.
#430 #741871
>>741868

> конкретно в мобилках, не особо нужны его плюшки


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


Какая связь? Почему всеобъемлющая иммутабельность нужна для одной платформы, но "не особо нужна на мобилках"?
>>741885
#431 #741885
>>741871
Потому что иммутабильность вызывает повышенную работу GC (что для мобилок плохо).
(Хотя в Cloujure это конечно оптимизированно, но у нас все же не HotSpot, а ART/Dalvik заточенные под мобильные нужды).

Вообще ее плюс для простоты СИЛЬНО-многопоточного кода (как и STM), что опять таки на Android не нужно.
Это все для серверов замечательно, а в Android с данными работают обычно в 2-х потоках (главом и фоновом).

Хотя фиг его знает, на JS то его портировали зачем-то. Чем Android хуже?
#432 #741929
Аноны, помогите разобраться с mvp, грубо говоря view - это каждая активити, model - данные для каждой активити, т.е. допустим у нас 3 активити, значит и 3 модели, да? А что с presenter'ами? их тоже должно быть 3? Но зачем тогда во всех примерах у model, view и presenter есть свои интерфейсы, если они все будут выполнять разную работу с разными методами?
>>741954
#433 #741937
>>741645
Хуй знает, не вижу задач.
#434 #741954
>>741929

> view - это каждая активити


Не обязательно. Внутри одной activity может быть несколько V (не путать с классом android.view.View).

> model - данные для каждой активити


Тоже не обязательно. Три activity могут работать с одной и той же M.

> т.е. допустим у нас 3 активити, значит и 3 модели


Зависит от приложения.

> А что с presenter'ами? их тоже должно быть 3?


Как правило, да.

> зачем есть свои интерфейсы, если они все будут выполнять разную работу с разными методами?


Использование интерфейсов позволяет абстрагироваться от реализации. Стандартный пример: работа с БД. Скажем, если раньше ты использовал SQLite, а теперь нужно перейти на какой-нибудь Realm (чего делать, как правило, не стоит), то тебе нужно будет изменять код во многих местах. Если же определить некий интерфейс для работы с базой данных и использовать его, то поменять нужно будет лишь одну строку. Грубо говоря, раньше было:
DatabaseProvider db = new MySqliteDatabaseProvider();
, а теперь будет:
DatabaseProvider db = new MyRealmDatabaseProvider();
Оба класса реализуют интерфейс DatabaseProvider. Во всех местах приложения мы работаем не с конкретной реализацией, а с нашим интерфейсом: db.saveSomethingToDb(...).
Независимость от реализации — это общий принцип проектирования, напрямую с MVP он не связан.
>>741970>>742506
#435 #741970
>>741954
О спасибо, анон, а как тогда лучше распалогать интерфейс и его имплементацию? Делать отдельную папку, например, .../models/somemodel/ISomeModel и тут же SomeModelImpl?
>>742354
#436 #742296
Аноны, тут есть хоть кто нибудь успешный? Вы разрабатывали предложения с доходом хотя бы 10к в месяц?
>>742334
#437 #742334
>>742296
Разрабатывал. Каждый месяц 15к с рекламы до сих пор идет, хотя забил на них (точнее это 1 прога) 2-3 года назад.
>>742337
#438 #742337
>>742334
Приложение какое-то уникальное или чужое скопировал? Почему дропнул и не делаешь ещё?
>>742339
#439 #742339
>>742337
На тот момент аналогов было много, но они все были лютым говном. Забросил, потому что неинтересно совсем. Я думаю, потому многие и забрасывали, что не интересно. Это был мой первый проект под ведро, так что поначалу я думал, что это норм. Ну и в те времена легко было подняться в гплее, сейчас уже не то.
#440 #742354
>>741970
Анончик, а что в твоем понимание "модель"?
>>742395
#441 #742395
>>742354
Ну например то, что возвращает observable ретрофита
>>742444
#442 #742398
какой лимит на вебм здесь?
#443 #742444
>>742395
ОК, а есть ли в твое концепции "сервисы" (НЕ в смысле "Android сервисы")?
>>742454
#444 #742454
>>742444
в смысле? сервисы ретрофита?
>>742468
#445 #742468
>>742454
https://lostechies.com/jimmybogard/2008/08/21/services-in-domain-driven-design/

В твоем случае я бы сказал что:
сервис - это экзкмпляр твоего класс API (ретрофита) или обертка над ним (c методами типа get(int id):Observable<Item> )
модель (бизнес логики) - объекты которые имеют тип T из твоих Observable<T>. Они же могут быть DTO.
#446 #742506
>>741954
Что из себя будет представлять Presenter?
Кучу коллбеков от кнопок и прочих элементов из View?
>>742519
#447 #742519
>>742506
ну по идеи вроде как да, если не юзать rxbinding'и
369 Кб, 554x494
#448 #742718
Сап, анончики, подскажите как запилить вьюху как на пике слева? Можно ли взять элемент ScrollView в качестве основы? Как сделать шкалу с левой стороны и связать ее с прямоугольной областью, внутри которой указано время? При перемещении этой области время, отображаемое внутри него, должно меняться в соответствии с текущим значением шкалы слева. Пока что унаследовался от View и переопределил onTouchEvent и onDraw, прямоугольник двигается, но как шкалу привинтить не знаю.
#449 #742720
>>742718
Да, на правую картинку не обращайте внимания, лень обрезать было
#450 #742765
Кто разбирается с rx?
RxView.clicks(btn)
.concatMap(aVoid -> Observable.just("a", "-", "b"))
.reduce((s1, s2) -> return s2 + s1)
.subscribe(s -> Log.d("Log", s));

В логи ничего не выводится, reduce работает правильно, но на нем все останавливается, в чем дело?
>>742775
#451 #742775
>>742765

> reduce( ) — apply a function to each emitted item, sequentially, and emit only the final accumulated value


Я не пробовал, ну думаю клики не вызывают onComplete, от чего reduce застревает.
>>742804
#452 #742793
>>726626 (OP)
Здравствуйте друзья. Закатился в тред за советом и наставлениями.
Хочу для 3 летнего сына собрать простенькую игру на андроид планшет.
Возник вопрос: Есть ли под это дело графические программы по сборке софта? Ну типа кнопочки и им присвоить действия и чтобы все это было в три клика,а не в написание кода руками для присвоения той или иной функции.
>>742800
#453 #742800
>>742793
Да, Android Studio
>>742810
#454 #742804
>>742775
бля, точно, спасибо
#455 #742810
>>742800
Спасибо за ответ. Качаю http://developer.android.com/sdk/index.html
#456 #742867
Ведроиданы, пользовал ли из вас кто-то cocos2dx для нашей нелюбимой платформы? В /gd/ не гоните, чет не нашел там треда, где мог уже спросил. А дело вот в чем, для нашего ведра там чет система кривая, то есть компилируй в консольке, хуй тебе автодополнения для C++ и тд. Так вот уменя етсь проблема, может кто знает как решить? Суть - не могу нормально настроить сборку, как все было:
1) Создал я из консольки новый проект; (-l cpp)
2) Откомпилил, запутсил на мобилке - все ОК;
3) Открываю proj.android-studio собственно студией;
4) Вношу изменения в AppActivity (просто логирование с помощью Timber);
5) Ожидание - логи с текгом AppActivity, на деле - нихуя;
6) Окей может надо еще раз cocos compile -p android --android-studio?
7) Не помогло, решил проверить и вставил Log.d(TAG, "Cocos sucks!"); в onCreate Cocos2dxActivity - после перекомпиляции все сработало;
Короче как это все починить? Алсо может знаете поему 3.11 раза в полтора меньше 3.10, какой лучше использовать?
#457 #742936
Анон, есть свободное время на работе, хочу вкатиться. Поставил студию, а прав для авд не хватает. Что делать? Как проверять свои хеллаворды?
#458 #743035
>>742718
Я бы сам делал, благо рисовать в onDraw не так уж и много. Да и из жестов то только скролл, а значит можно обойтись обычными MotionEvent Down, Move, Up.
Единственное, сделал бы обычной текствьюхой 12:00PM
#459 #743041
>>742718

> прямоугольник двигается, но как шкалу привинтить не знаю.


На сколько я себе представляю эту анимацию, двигаться должна только шкала, прямоугольник должен оставаться на месте. Сначала сделай просто скролл значений слева, чтобы он был зацикленным и занимал всю высоту экрана. Благо количество элементов в нем константно. Если ты это сделаешь, получить элемент по центру не составит проблем, его то и закинешь в текствьюху по центру.
Дальше уже нужно будет думать с анимациями и добавлением промежуточного элемента отвечающего за половину часа у центра.
#460 #743066
Сап, котаны. Суть в следующем: есть несколько довольно жирных фрагментов, между которыми организована навигация ( читай - экраны приложения ). Так или иначе в парочке из них есть списки и соответственно нужны переходы на экраны элементов списков с возможность возврата. Сделал все через backstack, но как же он, сука, много оперативки зажирает !
Утечек как таковых нет, а дело, как я понял, в том что бэкстэк держит strong referenc-ы на фрагменты вплоть до смерти всего всего. Как это лечить ?
Если никак - то, помнится, кто-то тут упоминал flow как альтернативу. Но я никак не могу найти в гугле никаких упоминаний об этой либе. Если можно - скиньте линк и описание + ваше мнение в пару строк.
Заранее спасибо
#461 #743074
>>743066
вроде бы нашел, flow это про то, что по ссылке ?
https://github.com/square/flow
>>743080
#462 #743080
>>743074
Прочитал про flow, заинтриговало, не могли бы вы подкинуть русскоязычных ( в идеале ), или если среди них нету годных, то англоязычных гайдов объясняющих за него ?
#463 #743081
>>743066
Никогда не понимал смысл делать экраны фрагментами. Ну ладно, когда у нас дровер есть, то его экраны приходится пихать в фрагмент. Но при переходе на уровень глубже есть же уже смысл делать активностями.
>>743088>>743090
#464 #743088
>>743081
в том то и дело что drawer есть и мне пизды дадут если я его заменю на что-то. Самое веселье то в том, что сейчас что-то типа последнего момента передумать насчет архитектуры, потому что дальше объем начнет зашкаливать и тупо не успею, в лучшем случае рефакторинг после релиза полный буду делать тогда уже. Но блять, релиза с бэкстэком в 60+мб нихуя не будет
>>743091
#465 #743090
>>743081
Можешь посмотреть код, покритиковать, что-ли ? Так как это фактически мой второй проект на аутсорсе, а первый был дичайшим трешем и провалом, но хоть до конца довести получилось, на том спасибо. Вроде я постарался что-то вменяемое изобразить, но все-равно пиздец
#466 #743091
>>743088
А ты все фрагменты add'ом добавляешь? Поменяй на replace, где допустимо.
>>743092>>743095
#467 #743092
>>743091
везде replace
>>743098
#468 #743095
>>743091
скинь свой аккаунт в гилабе, расшарю на тебя проект, глянешь
>>743098
#469 #743098
>>743092
А ты стек как замерил? Ты уверен, что у тебя стек фрагментов столько весит, а не что-то другое?
>>743095

> гилабе


У меня его нет, и ну нахуй, я сегодня отдыхаю от ведрокодинга.
>>743103
#470 #743103
>>743098
Да, уверен, убрал везде добавление в стек, оператива перестала расти при переключении в бешеных темпах
>>743113
#471 #743106
Если кто-то сможет покритиковать проект/ помочь с допиливанием за скромное спасибо и дальнейшую помощь ( если вдруг какую херню монотонную нужно будет делать например ) от меня, буду очень очень признателен. Киньте сюда свой гитлаб-аккаунт, добавлю :)
>>743108
#472 #743108
>>743106
Да нет уж, кидай свой, мы его анонимно посмотрим
>>743109>>743110
#473 #743109
>>743108
Он запривачен, и расприватить его мне тима не даст
>>743111
#474 #743110
>>743108
Ну вернее как, пизды мне дадут за это. Могу мыло свое оставить чтобы вы здесь аккаунты свои не светили
#475 #743111
>>743109
Зато даст каких-то левых хуев с двачика добавлять, да?
>>743112
#476 #743112
>>743111
Всегда могу сказать что привлек еще кого-то, но открывать реп точно не дадут
>>743199
#477 #743113
>>743103
Я оче хуево знаком с фрагмент менеджером, но у него внутри есть оптимизации свои. Там интсанс фрагмента на самом деле не очищается. Возможна ли ситуация, что у тебя, во первых огромное количество этих переходов, во вторых эти фрагменты выделяют себе большое количество памяти, не связанную с вьюхами? Битмапы например.
>>743114
#478 #743114
>>743113
все связанное с битмапами делается аккуратно через Glide, фрагмент с картой, например, вообще не добавляю в бэкстэк
>>743116
#479 #743116
>>743114
А в onDestoryView очищаешь ссылки на вьюхи? Через тот же баттеркнайф, просто unbindViews.
>>743119
#480 #743119
>>743116
ни разу не видел чтобы так делали, сейчас попробую. Баттер не юзал
>>743122
#481 #743122
>>743119
http://jakewharton.github.io/butterknife/

> BINDING RESET



Если Джейк Вартон делает, то и ты делай.
>>743125>>743126
#482 #743125
>>743122
Во всех ViewHolder-ах списков тоже также или он косячить как data binding будет ?
>>743130
74 Кб, 317x847
#483 #743126
>>743122
Ну и эта пикча намекает, почему так делать нужно.
#484 #743130
>>743125
Нет, в них не нужно.
>>743174
#485 #743174
>>743130
а с SupportMapFragment сделать ничего нельзя посредством ButterKnife-а ?
>>743178
#486 #743178
>>743174
Ничего и не надо.
>>743200
#487 #743199
>>743112

> Привлекаешь анонов


> Аноны расшаривают код


> Получаешь пизды от тимы

>>743201
#488 #743200
>>743178
Сделал-таки через баттернайф unbind-ы и несмотря на уменьшение загрузки оперативы она всеравно напирает. Подумываю о том чтобы сразу создать по экземпляру фрагмента и дальше уже веселится через Bundle ( извращенец detected )
>>743202>>743239
#489 #743201
>>743199
Ну ок, че поделать.
#490 #743202
>>743200
и, да, CanaryLeak нашла лишь одну утечку и та на 800кб
>>743245
#491 #743239
>>743200
Ты какой то странный. А ты при переходе по бургер меню стек сбрасываешь?
>>743272
#492 #743240
>>743066
Не надо юзать всякие ненужные либы.
Используй активити.
#493 #743245
>>743202

>Есть вероятность, что приложение будут запускать на ретрограде с 512 мб оперативки, из которых сам занешь сколько свободно


>всего-то мегабайт


Ондроед он такой.
#494 #743250
Есть активити. Нужно ее запускать под разными вариациями (передаю опцию в intent.putExtra), но если для какой-то вариации уже есть запущенная активити ее просто нужно вывести вперед. Запускать как изнутри так и извне. Как такое делать? Смотрю на Intent.FLAG_ACTIVITY_NEW_TASK, оно?
>>743267>>743273
#495 #743267
>>743250
Как много вариаций?
>>743276
#496 #743272
>>743239
Нет, блядь, я имбицил
>>743274
#497 #743273
>>743250
Энное количество. ~3-15.
>>743276>>743277
#498 #743274
>>743272
Одна из проблем с тем, что карта гугловская v2 жрет оперативы туеву хучу
#499 #743276
#500 #743277
>>743273
Ну хуй знает тогда. Странная у тебя какая то задача, тебе зачем такое?
Я мог бы предложить launchMode = singleInstance, но он тогда будет одну и ту же активность дрочить, без разделения по extra дате.
>>743289
#501 #743289
>>743277
Что-то как например у редакторов документов, одна активити - один файл, запустил уже открытый файл - активити вышла на передний план.
СингИнстанс я видел, да, не подходит. Мне нужно чтобы в активитименеджере было видно разделение. Попробую вместо extra сунуть опцию как суффикс к action, чтобы FLAG_ACTIVITY_NEW_TASK понял. Должно получиться, наверное.
>>743290
#502 #743290
>>743289

> Мне нужно чтобы в активитименеджере было видно разделение.


https://www.youtube.com/watch?v=4Y3JMvbcxQE
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 2 июня 2016 года.

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

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