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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
88 Кб, 1456x671
Разработка под Android тред №11 # OP #632324 В конец треда | Веб
Грядет время перемен...
В будущем, возможно, добавится карта библиотек.

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

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

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

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

Где брать инфу:
Интернет-ресурсы
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.
Можно эккеля "философия java" почитать.

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

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

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

Пишите в треде что добавить.
#2 #632331
>>632324 (OP)

>javarush


И сразу нахуй.
>>632332
#3 #632332
>>632331
Тебя нахуй, они пока эккеля прочитают джава сдохнет уже.
>>632335
#4 #632335
>>632332
На джавараше сразу на новичка сваливается поток непонятного говна с повторяющимися однотипными задачами. Как говорил один мудрый анон, не надо полгода читать одну книжку, надо хуярить их десятками: что непонятно в одной поймешь в другой.
>>632339>>643490
#5 #632339
>>632335
Я лично на джавараше дошел до 13го урока и премного ему благодарен, очень быстро выдали довольно прилично инфы. Очень коротко, но мне было достаточно знать что такое есть, дальше уже сам раздуплился слушая часовые лекции и читая тонны статей.
>>632359
#6 #632359
>>632339
Зачем придумывать велосипед? Энтри левел и дальше пусть идет нахуй в java тред и смотрит оп пост. После этого есть доки и "Busy Coder’s Guide".

В поисках старых индусских велосипедов можно посмотреть http://www.androidhive.info
>>632365>>632370
#7 #632365
>>632359
Ну я попытался описать те пункты с джавы которые в ведре нужны. Хотя бы какой-то минимум.
>>632383
#8 #632370
>>632359
В поисках старых индусских велосипедов можно посмотреть http://www.androidhive.info
В основном попадаю на такие сайты через гугл, и сайтов таких довольно дохера еще и блогов всяких, но поклацаю на досуге посмотрю.
#9 #632383
>>632365

>Хотя бы какой-то минимум.


Хорстманн до 7 главы. Codingbat.com. Джавараш до 10 уровня.

Дальше тренинг курс от гугла, считать котиков у климова. Всё. Можно писать всё что угодно обмазываюсь гуглом и SO.
>>632391>>632421
#10 #632391
>>632383
Для тех кто хочет вкатиться в гейдев есть отличная статья по созданию клона Flappy bird. https://habrahabr.ru/post/243471/
#11 #632396
>>632324 (OP)

> 10) Почитать про json.


Охуенная концовка, какой дегенерат это писал?...

> вакансий... работа... вакансий... работа ...


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

Вообще интерсно сколько опыта у ОПа, такое писать?
>>632421
#12 #632403
>>632367
Тогда все делают заключение, что цель твоего визита итт - исключительно всех заебать, ты ментально посылаешься нахуй всеми посетителями этого треда, а я ставлю очередной крест в своей толстой тетради.
Вменяемому посетителю просто нет смысла с тобой беседовать. Похвально, что ты сам открытым текстом нам об этом заявил.
>>632406
#13 #632406
>>632403
У тебя так бомбит от своей ничтожности, что боюсь
считать тебя адекватным посетителем не приходится.
#14 #632421
>>632383
Хорстман норм, джавараш тоже.
Codingbat.com не слышал даже.
Добавлю в след шапке если не забуду.

Вот котики мне совсем не понравились кстати, стартандроид как-то лучше заходил.

>>632396

>Охуенная концовка, какой дегенерат это писал?...


А работа с SQL тебя не смутила? Или то что из всей теории тредов я про ранейбл вспомнил?
Поверхностно накидал самое необходимое.
Json в заключении чтоб писали уже клиент серверку, думаю при прочтении инфы по джейсону найдут и инфу по парсингу и прочему.

>Иногда кажется, что я здесь единственный работающий android-программист.


>Остальные только могут об этом говорит.


Ну уверяю тебя ты ошибаешься.

>Вообще интерсно сколько опыта у ОПа, такое писать?


Около года.

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

А вообще иди на хуй.
>>632433>>632467
#15 #632433
>>632421
Из книг на русском неплохо заходил Харди Б., Филлипс Б. Программирование под Android.

Повествование ведётся через создание мелких приложений постепенно нагружая их функциональностью. Плюс поясняют про поддержку старых версий. Из минусов: 2013 год.
>>632445
#16 #632445
>>632433

>Из минусов: 2013 год.


Собственно потому не вариант. Из книг только активная подписка The Busy Coder’s Guide вменяемая, уж больно часто в ведре что-то меняют.
#17 #632467
>>632421

> Около года.



> Джун (в лучшем случае)


> Учит других программированию

>>632472>>632552
#18 #632472
>>632467
Поведай нам, О Великий Знаток, что такого надо сделать в ведроиде что бы не считаться джуном? Ковыряться в JNI? Знать подводные камни компонент? А может еще лучше писать так что бы не сталкиваться с ними? Мы внимаем, молви же!
>>632474
#19 #632474
>>632472
KOTLIN
>>632476
#20 #632476
>>632474
Котлин наоборот упрощает разработку, в нем нечего познавать, если ты конечно знаком с модными фишками более динамично развивающихся языков.
>>632585
328 Кб, 1280x800
#21 #632517
Антоши, есть один эдиттекст, к которому прикручен выпадающий список (фильтр).
Мне нужно, чтобы при выборе элемента из списка происходило событие, и не происходило при вводе текста.
Как это реализовать?
>>632555>>632609
#22 #632552
>>632467
А где тут обучение проги? Обычный гайд как вкатится. И да мне виднее я год назад вкатился, то по чему учился ты скорее всего устарело.
Но все же мог более адекватно сказать что не так, я лично нихуя не понял чего ты доебался-то.
#23 #632555
>>632517
Используй haskell
#24 #632585
>>632476

>хипстопараша


>динамично развивающиеся языки

#25 #632606
>>632585
А котлин так сильно развиватеся? Я думал выпутилии пилять понемногу.
>>632618
#26 #632609
>>632517
Какое событие? Какой список (ListView, RecyclerView)?
Нифига не понятно что ты хочешь.

>при выборе элемента из списка происходило событие


setOnItemClickListener (либо setOnItemSelectedListener)
#27 #632618
>>632606
Текущий статус: 1.0 beta 4

А это значит, что теоретически они могут менять язык без обратной совместимости.
Хотя сейчас они язык почти не трогают, а занимаются улучшением компилятора и библиотек.

Но если изменения происходят у них есть помощник-миграции.
#28 #632638
Lenovo s60-a стал умирать. При включении загрузка останавливается на изображении логотипа.

Factory reset вернул телефон к жизни, но буквально на день/два.

Собственно, можно ли как-то достать лог ошибок? Кто-то сталкивался с подобным?
>>633847>>643654
#29 #632650
>>632585
Динамично развивающиеся в плане количества сахара. В отличии от жавы.
>>632659
#30 #632652
Вот допустим у меня есть два класса. И я дагером вставляю их для разных конфигов. Нужно как-то указывать для конфигурации что бы он не встраивал неиспользуемый по факту класс в апк? Или все уже есть?
>>632700
66 Кб, 620x620
#31 #632659
>>632585
>>632650
Новый логотип треда
>>632698>>632701
#32 #632698
>>632659
Вот какие зеленные делают такую хуйню? Почему стримы на жабе не юзаются?
>>632708
#33 #632700
>>632652
Я не думаю что простая либа такое умеет, это скорее уже к градлу.
Хотя с даггером пока не приходилось работать.
>>632717
#34 #632701
>>632659
ЗАРПЛАТА НАЧИСЛЯЕТСЯ ПРОПОРЦИОНАЛЬНО КОЛИЧЕСТВУ НАПИСАННОГО ГОДА
@
СЫЧЕВ, KOTLIN - 15К
@
ЕРОХИН, JAVA - 150К
#35 #632702
>>632701
*кода
#36 #632706
>>632701
@
НАЧАЛЬНИК НАПИСАЛ ВСЕ САМ НА CLOURE
@
УВОЛИЛ ОБОИХ К ХУЯМ
#37 #632708
>>632698
Очевидно что Android-разработчики, Java 8 то еще не завезли.

>>632701
из Индии капчуешь?
>>632720
#38 #632713
А если я с нуля вкатываюсь в ведроид, то лучше начать через путь ксамарина или нейтив на джаве?
>>632715>>632718
#39 #632715
>>632713
Ньюфагам нравиться когда их обоссывают?
>>632716
#40 #632716
>>632715
Не бей лучше обоссы.
#41 #632717
>>632700
Да ясно что либа там не причем, я про систему сборки то и спрашивал, прогвард этим не занимается?
#42 #632718
>>632713
Не это пизедц, сколько шапку не пиши, все равно какой-то ебанько прийдет и задаст что-то такого уровня.
Лучше на сях писать конечно же.
#43 #632720
>>632708

>Очевидно что Android-разработчики, Java 8 то еще не завезли.


Тред по скале видел? Такая же картинка с этим же джавакодом.
>>632727
#44 #632727
>>632720
Ну так я ее от туда и взял, только переделал чуток.
Да и для Android она более актуальна.
>>632848
#45 #632848
>>632727

> Да и для Android она более актуальна.


Она вообще не актуальна.
4 Кб, 321x90
6 Кб, 300x303
#46 #632915
Обновление IntelliJ вышло.
>>632922>>632973
#47 #632922
>>632915

>IntelliJ


Нахуя?
>>632946
#48 #632946
>>632922
Родина дала им IntelliJ IDEA, нет они жрут говно в виде андроид студии, где в бетах второй версии рекламируют фичи которыми я пользовался в ИДЕЕ еще два года назад.
>>632956>>633004
#49 #632956
>>632946

>где в бетах второй версии рекламируют фичи которыми я пользовался в ИДЕЕ


Например? Я обратил внимание только на чисто ведроидовские фичи.

Алсо, стоят оба кстати, на студии работаю, на интелидж иногда захожу лабу сделать или еще чего. Студия удобнее как минимум тем что все уже настроено.
>>632976
736 Кб, 320x211
#50 #632973
>>632915
Can you feel that buddy?

It the KOTLIN.
#51 #632976
>>632956
Зачеркивание депрекатед для минсдк апи функций, артифакты, короче зайди в список нововведений андроид студии и сам смотри, все перечисленные там фичи давно есть в идее.

>все уже настроено


Путь до JDK и андроид SDK не так уж сложно выбрать вручную.
>>633086
#52 #633001
Поясните за RxJava, и вообще функциональное программирование в андроиде.
Прочитал первые две главы СИКП, фп понравилось, андроид только изучаю.
>>633284
#53 #633004
>>632946
Зачем это говно, когда есть эклипс?
>>633027>>633089
#54 #633027
>>633004
Толсто.
>>633028
#55 #633028
>>633027
Вовсе нет.
#56 #633086
>>632976
Путь до джедека и сдк ты и так выбирашь в студии.
#57 #633089
>>633004
Говно из говна потому что.
#58 #633098
test
76 Кб, 640x446
19 Кб, 921x117
61 Кб, 693x242
#59 #633284
>>633001
Тут основная концепция, что не ты вытягиваешь нужные тебе данные,
а данные льются на тебя потоком и ты их как-то обрабатываешь.

К примеру (чисто функцианальная задача):
Взять тред и вывести список наиболее частых слов.

Тебе на вход (из API) поступает поток постов
-> разбиваешь текст поста на список слов
-> отфильтровываешь только валидные слова
-> групируешь слова в группы [слово, кол-во повторений]
-> сортируешь группы по "кол-ву повторений" слова

На скриншотах пример реализации в спомощью RxJava + Retrofit + Kotlin.
44 Кб, 355x613
#60 #633287
>>633284
А вот собственно и результат для https://2ch.hk/pr/res/619370.html (М)
>>633313
#61 #633311
>>633284
Прикинул как третий скрин выглядит на джаве и обосрался.
#62 #633313
>>633287
Что-то никак не пойму, на какой иде ты пишешь? Виртуалка от ксамарина, все на котлине. Какой-то франкенштейн из иде.
>>633314>>633346
#63 #633314
>>633313
По подсветке у него очевидная идея.
>>633346
#64 #633316
>>633284
Какая же дрисня, блядь, и это у вас называется сахаром?
#65 #633346
>>633313 >>633314
Это Android Studio 1.5 (еще стоит IDEA для десктопных/web Java/Kotlin проектов
и RoboVM Studio для кросплатформенных приложений).

Так как стандартный эмуль не очень, приходится юзать сторонние.
Альтернатива только всякие проекты поверх VirtualBox.
Выбрал Xamarin Android Player, тк все равно на работе под Xamarin разрабатываю.
>>633354
#66 #633354
>>633346
Новый эмулятор (который в превью версии) довольно быстрый, да у меня и старый на маке не лагал вроде бы.
>>633361>>633413
#67 #633356
Кто-то пользуется ByteBuffer'ами? Нужно ли менять порядок байтов если я работаю с HttpUrlConnection, или там всегда будет нормальный порядок, а не интеловский?
>>633432
#68 #633361
>>633354
H A X M
A
X
M

Выкинь нахуй своё говно ~2013 года (сужу по лоурез скринам) и купи нормальную пеку, пока за 20-30 к нормальный собрать ещё можно.
>>633378>>633413
#69 #633378
>>633361
Но скрины не мои, у меня действительно мак 2013, но ретинка же. Да и HAXM рабоатет.
>>633404
#70 #633404
>>633378
Как же маковское сглаживание шрифтов уёбищно выглядит на лоудпи экране.
>>633463
#71 #633413
>>633361
Проблема стандартно эмулятора не в скорости, на air он не тормозит (спасибо haxm).
Его минус что он постоянно зависает и падает.
Напротив всякие Genimotion и XAP работают просто офигенно стабильно и так же быстро.

>>633354
Насчет нового (из AS 2.0) у меня хреновые предчуствия тк он работает на том же базе (qemu).
(не ну когда выйдет стабильная версия конечно попробую).

Често говоря, я от Google ждал СИМУЛЯТОРА как для iOS, вот это было бы круто.
И это обидно тк наработки у них есть (ARC https://developer.chrome.com/apps/getstarted_arc ).
>>633468
#72 #633432
>>633356
Можно по подробнее, как ты с ним работаешь?
Так-то по умолчанию порядок всегда BIG_ENDIAN (об этом и в java доках написано)
>>633472
#73 #633463
>>633404
Это проблемы маковской жавы. С интелиж 1.5 у них нормальное сглаживание сделанное JetBrains.
>>633720
#74 #633468
>>633413
Я редко дергаю стандартный эмулятор, только если гугловские сервисы или новую прошивку. Поэтому не сталкивался с вылетами и еще какой херней.
#75 #633472
>>633432
Ну я особо не работаю, просто инетерсно, когда
это может потребоваться, вот например для получения локального айпишника, в случае если нативный порядок не BIG_ENDIAN, нужно биты повернуть. А дефолтный в буфере конечно BIG_ENDIAN, просто может оно лучше работает если использовать нативный порядок в отличии от дефолтного, а самом деле я отказался от ByteBuffer, потому что он там только больше сущностей создает и заменил на byte[]. Вот на интеловских процессорах точно должен быть LITTLE_ENDIAN.
#76 #633720
>>633463
Так на студии тоже, или нет?
#77 #633732
У начинающего ведроеба возник вопрос. Знакомый иос дебилопер (хейтер ведра) сказал, что чуть ли не половину суммарного времени, затраченного на написание проекта, ты его адаптируешь под некродевайсы (апи<19), т.к. производителям проще клепать девайсы-одногодки, а не обновлять старые,а некроведер все еще овер дохуя(а именно, ~35% устройств работает на апи 19 и выше)
По этому он перекатился на гейос, где аппл насильно всех посадили на хуй апдейты, и он пишет один код, который охватывает 99,(9)% процентов устройств.
Прошу знающего анона подтвердить, либо опровергнуть сие суждение. Сам ещё ньюфаг в этих делах.
#78 #633742
Анончик, объясни по хардкору, что за пермишшн такой BROADCAST_STICKY и нахуя он нужен? С моими знаниями ангельского я никак въехать не могу
>>633860
#79 #633813
Таки шапка есть, но вопрос будет. Если я хочу параллельно развиваться и в Java, и в Android дева, мне что надо для такого читать (я полунуфаг, темы из шапки гуглю и смотрю примеры + задачки решаю. После этого какую книгу взять по джаве, чтобы и в её сторону развиваться (в дальнейшем скалу хочу потрогать))?
#80 #633825
Господа, в качестве Иде для джавы подойдет Нетбинс?
>>633851
#81 #633847
>>632638
Почему ты спрашиваешь это здесь?
>>643498
#82 #633851
>>633732
Это когда ты можешь бросать интенты типа ACTION_BATTERY_CHANGED
http://developer.android.com/training/monitoring-device-state/battery-monitoring.html

Когда ты подписываешься на такой sticky-интент, через метод
Intent prevIntent = context.registerReceiver(new MyReceiver());
Тебе (в prevIntent) сразу возвращается предыдущий отравленный итент, но для этого системе надо
выделять память что бы хранить твои интенты. Поэтому это по умолчанию отключено.

Хотя ты можешь особо не париться, в API 21 методы sendStickyBroadcast(...) стали Deprecated

>>633825
это не джава тред да подойдет
>>633860>>636539
#83 #633855
>>633732
Все так, кроме того что люди сами переходят на новые версии на гейоси, железа то хуй да нихуя для апдейта.
#84 #633859
>>633732
На самом деле не все так критично, и не половину времени.
Овердохуя компат библиотек есть. Вот только постоянно приходится смотреть не появилась ли новая.
Но гуглы выпускают все новые компат и саппорт либы, и работать становится проще.
#85 #633860
>>633742
>>633851

>>633732
Сейчас если ты обмажешься support-* библиотеками и поставишь API > 14,
то можешь особо не париться про разные версии.

Но могу возникнуть проблемы если ты:
1) Используешь скрытые API - оно может не работать или работать сильно по разному
2) Нестандартно работаешь с WebView (типа запуск своего JS) - до 4.4 был вебкит, после chromium
3) Используешь консольные linux приложения (через Runtime.exec()) - нет никакой гарантии что они вообще есть в системе
>>633866
#86 #633866
>>633860
Не все есть в компате, со многими мелочами приходится ебаланится, но эти мелочи заметны и они раздражают.
>>633870
#87 #633867
Но ведь на джаве разрабатывают под айос, как это не жава тред?
И да, можно ли разрабатывать под айос без смартфона-айфона?
>>633871
#88 #633870
>>633866
Примеры приведи (мне для общего развития)
>>633872
#89 #633871
>>633867
Што? Есть отдельные стандартной жавы тред, есть тред по веб жаве и андроидовскому тред. Под айос на жаве ты только с робовм разработаешь.
#90 #633872
>>633870
Элевэйшон, риппл, ртл, документ. Слова из сам листа на английсеом.
>>633876
#91 #633876
>>633872
Блин чувак сожалею, что тебе приходиться работать с такими дизами которые не понимают
что эти эффекты для lollipop (сам помнится в начале с такими сталкивался)

Сейчас я просто вежливо объясняю, что никто на это время тратить не будет.
И показываю google play в качестве образца.
>>633878
#92 #633878
>>633876
Так я знаю, и они знают. Просто приходится делать разные папки для разной хуйни.
#93 #633992
Автор поста >>633732
Всем спасибо за ответы
#94 #634094
Есть какой-нибудь гайд по общепринятому наилучшему использованию активти+фрагмент?
>>634106
#95 #634106
>>634094
Ох ананас, если бы они был, в программирование не существует единого-правильного подхода.

Но базовые вещи можешь почитать тут:
http://d.android.com/guide/components/activities.html
http://d.android.com/guide/components/fragments.html

Так то даже у фрагментов есть альтернатива:
https://www.youtube.com/watch?v=RPRl8fgBiNA
>>634118>>634171
#96 #634118
>>634106
Да понятно что нет серебряной пули, я просто вот хотел сделать MVP, но примеры какие-то серенькие.

Короче вот такая идея: единое активти, в котором инжектнут презентер, который занимается разруливанием всех инвентов (нажатие кнопки, поменять страницу), путем делегирования их внутренним презентерам, работать будут только те, которые грубо говоря активны. Нормально, или хуйня несвязанная и костыльная.

Алсо: Операции - Activity, это что-то на уровне активность или даже выше.
>>634142
#97 #634121
Таки шапка есть, но вопрос будет. Если я хочу параллельно развиваться и в Java, и в Android дева, мне что надо для такого читать (я полунуфаг, темы из шапки гуглю и смотрю примеры + задачки решаю. После этого какую книгу взять по джаве, чтобы и в её сторону развиваться (в дальнейшем скалу хочу потрогать))?
>>634137
#98 #634137
>>634121

>После этого какую книгу взять по джаве, чтобы и в её сторону развиваться (в дальнейшем скалу хочу потрогать))?


Если ты про бэкенд то там все намного хуже чем на ведре. У нас тут одно сдк и не так много вариантов, там же технологий жопой жуй.
С такими вопросами в соответствующий тред иди. Шапка только по Java SE и нужным ее элементам, а тебе нужна Java EE.
#99 #634142
>>634118
А какой в этом астральный смысл?
Я бы посоветовал не усложнять задачу (KISS). Если ты не собираешься писать
модульные тесты на Presenter и Model, может тебе и MVP не нужен?

===========================================================
Приведу пример реальной задачи где может пригодится MVP
===========================================================
"Требуется кросс-платформенная программа на RoboVM для Android/iOS"

Вот тут и встает конкретная проблема: как переиспользовать максимум кода/логики
между Android (Activity/Fragment) и iOS (UIViewController)?

Деваться некуда, я беру MVP (MVVM не катит, нет поддержки на уровне платформ).
View - java-интерфейс, от которого я наследую Activity и UIViewController
Model - это асинхронные сервисы на RxJava (в общем не суть)
Presener - просто класс которые забирает из View введенные данные и дергает
методы сервисов, а так-же обновляет View (View у него только в виде ссылки)

В этом случае в Activity и UIViewController я не помещаю никакой логике, только реагирование
на запросы презентера.
>>634147>>634148
#100 #634147
>>634142
Вот всегда меня сбивало то что активити по сути своей контроллер. А тут ты его в вью втулил.
Как ты вообще собираешься работать с презентером без контекста? Как вообще все это описать ровно?
В общем сложно понять и нужно смотреть.

мимо-год-разработки-заебали-архитектуры-на-словах
>>634148>>634164
#101 #634148
>>634147
>>634142
Да заебало просто говнокодить.
>>634151
#102 #634151
>>634148
Двачую, но нужен нормальный гайд и много опыта. В андроиде все это не прозрачно.
>>634154
#103 #634154
>>634151
Ну вот я наклепал 2 клиентсерверки, музыкальный плеер с вконтактиком. А все равно чувствую что получается не очень хорошо.
>>634163>>634164
#104 #634163
>>634154
У тебя сколько опыта?
Или ты чувак с котлином и 4 годами опыта?

За год я понял только то что ведро это какой-то пиздец где буквально каждый дрочит как хочет. А я пока что дрочу по гайдам. Всякие мортары и флов страшно в своем проекте юзать, и потому нужно в личное время их испытывать, а времени мало. Короче хуйня какая-то. Без гайдов тяжко.
>>634166
#105 #634164
>>634147

>Вот всегда меня сбивало то что активити по сути своей контроллер


А это вопрос точки зрения (и наличия или отсутствия логики в активити).
iOS программисты как узнали что активити разрушаются при повороте, так в один
голос давай заливать что это View.

Мне кажется, на самом деле активити и НЕ контролер и НЕ вью, это View+Controller (как в ios, или Form в WinForm).
И чем она в итоге будет, зависит только от тебя username :)

>>634154
Клипай еще, программирование это постоянные поиск и совершенствование знаний.
Если через год ты посмотришь на свой старый код и скажешь "какие деб... так проектируют", значит ты на верном пути.

А вообще главное что надо запомнить: SOLID, KISS, DRY (и другие основополагающие принципы).
#106 #634166
>>634163
Ну вот полтора года, все сам с нуля на дядю конечно же.
>>634168
#107 #634168
>>634166
Так ты мой брат и друг.
Вообще сейчас с нуля проект пишу.
Юзаю стандартно активити+фрагменты с навигейшн баром, переходы глубже - новые активити.
Ретрофит вызывается непосредственно с места где он нужен, туда и колбек прилетает, т.е. в активити или в адаптере на худой конец. Так хотя бы понятно что и где происходит.
Работа с бд через контентпровайдер и курсор-лоадеры, очень уж мне понравилось с ними работать. Т.е. с ретрофита просто записываю в бд, и из бд уже обновляется юи. Кто-то скажен долго, я скажу зато отображаются всегда те данные которые закешировались.
С бд работаю через маленькую недоорм, так как уже писал я руками эти названия таблиц, ебись оно боком. Также и для ответов от сервера делаю модельки для парсинга, ибо та же хуйня ловить джейсон обжекты и вытаскивать по ключам.

Но пугает меня то что на фрагменты и лоадеры все ругаются, а меня они пока устраивают.
>>634172>>634183
#108 #634171
>>634106
Да ну его найхуй с его английским. Вообще нихуя не понятно, лучше бы написали статейку.
#109 #634172
>>634168
Кто ругается на фрагменты и лоадеры? Я вот использую свой ContentProvider и Rx в ретэйнутом фрагменте.
>>634174
#110 #634174
>>634172

>Кто ругается на фрагменты и лоадеры?


Всякие Джейки Вартоны которые сделали для ведра кучу полезностей.

>свой ContentProvider


В каком смысле свой?

>и Rx в ретэйнутом фрагменте


Нужно будет на Rx переходить пробовать.
На работе почему-то не особо любят всякие фичи.
>>634177
#111 #634177
>>634174
Потмоу что сложно вкатится всем. Ну джэйк молодец, кто же спорит. Но для простых людей мне кажется легче воспользоваться фрагментами, чем лезть в кучу библиотек разом. Свой в плане, что надстройка над бдшкой. Используется как бы для нотифкаций удобных и фасада над базой.
>>634185
#112 #634183
>>634168

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


Можно свой SuperCursolLoader написать, слегка переделав исходники
стандартного CursorLoader и тебе не придется больше использовать провайдер.
Сможешь просто колбек передавать или еще что угодно.

Да и вообще ContentProvider были введены в Android для передачи данных
между отдельными процессами. Юзать их в рамках одного процесса - это ненужное
усложнение программы.
>>634191>>634193
#113 #634185
>>634177

>Потмоу что сложно вкатится всем.


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


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

К примеру сделать алпикуху на фрагментах с асинктасками и лоадерами, а потом переделать на Rx с мортаром и фловом. Это две разных апликухи на выходе. Или же, делать оповещение через евентБас или через обычные локальные ресиверы/или прокидывать листенеры?
В результате я не ебу за что браться.
>>634193
#114 #634191
>>634183

>Да и вообще ContentProvider были введены в Android для передачи данных


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

>Можно свой SuperCursolLoader написать, слегка переделав исходники


стандартного CursorLoader и тебе не придется больше использовать провайдер.
Спасибо попробую, как раз в проекте к этому подошел.

>Сможешь просто колбек передавать или еще что угодно.


Вот тут немного не вкурил каким образом. Как я подпишусь своим СуперКурсорЛоадером на изменение данных в бд?
>>634194
#115 #634193
>>634183
Мне не нравится курсорлоадер, какой-то хуевый он, я хочу получать нотификации и уже тогда сам решу как мне обновить данные.
>>634185
Брр асинк таски, интересно сколько людей знают что по дефолту они работают в одном треде по очереди? Мне басы не нравятся так как слишком неразборчиво получается и как мне кажется оверхед. Зато люблю ресиверы, вот сейчас думаю засунуть ресивер в ретэйн фрагмент, пусть дрочит rx, там столько то возможностей появится.
>>634202
#116 #634194
>>634204
#117 #634202
>>634193

>Брр асинк таски


Я асинтаски не юзаю и никогда по сути в проектах не юзал, просто к примеру сказал, для асинхронки андроид-болтс юзал.

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


Так курсор попросту прилетает тебе при обновлении данных в таблице, в чем проблема?

>Зато люблю ресиверы


Мне почему-то казались они затратными, да и хуй поймешь куда что летит. Вообще хуй поймешь, когда за чужой код сел с кучей ресиверов чуть не обосрался и плакал как сучка, особенно когда из третьего по глубине адаптера высылаются данные на ресивер.
>>634213
#118 #634204
>>634194 retCursor.setNotificationUri(getContext().getContentResolver(), uri);

getContext().getContentResolver().notifyChange(uri, null);
Да понял, что-то втыканул.
#119 #634205
Ладно, отвлечемся от вкуса фламастеров инструментов.
Вводная:
Пиздецки большая вьюшка фрагмента, штук 8 кнопок, ViewPager, дочерний MapFragment, горизонтальный RecyclerView.
Вопрос:
Как все это сделать так что бы не загнуться. Пока разбил на логические блоки, соответсвенно для каждого блока два метода, первый для инициализации, второй для перерисовке при изменении данных. Насколько хуево, альтернативы?
>>634216
#120 #634213
>>634202

>Мне почему-то казались они затратными


Есть LocalBroadcastManager

>да и хуй поймешь куда что летит.


Енджои ин AKKA (модный тренд однако)
>>634264
#121 #634216
>>634205
Ну блин бьешь на фрагменты, суешь их в FragmentStatePagerAdapter.
Будет тормозить, приход, обсудим.
>>634228
#122 #634228
>>634216
Нет, там не так, там вертикальная вьюшка и в ней вью пэйджер. Оно не тормозит, прсот оможет можно как-т оне так калечно сделать? Хотя из не калечного только байндинг получается есть.
>>634234
#123 #634234
>>634228

> вертикальная вьюшка и в ней вью пэйджер


большой ублюдок.jpg
вертикальная вьюшка - это RecyclerView?
#124 #634264
>>634213

>Енджои ин AKKA (модный тренд однако)


Akka.io? Первый раз слышу. Перед тем как я инфу начал задрачивать, можешь описать в нескольких словах что и как и нахуя?
>>634288
#125 #634276
Котаны, есть проблема.
Когда ставлю в манифесте android:launchMode="singleInstance" для main activity, то в диспетчере задач приложение не отображается на устройствах ниже, чем Android 6.0.1.
Как это пофиксить?
>>634288
#126 #634288
>>634264
Антошь не стоит вскрывать, это суровый java/scala энетрпрайз. И на твое счастье не работает на Android.
Кратно: программа состоит из блоков которые общаются друг-с-другом пересылкой сообщений
(локально или через сеть). Позволяет легко маштабировать приложение на кластеры.


>>634276
Чего то ты не договариваешь. У меня везде нормально отображается и в 5.0 и 4.2.2.
Что ты подразумеваешь под "диспетчером задач"?
>>634301>>634328
599 Кб, 720x1280
#127 #634301
>>634288
Имею ввиду вот эту хуйню, что на пике.
Как это правильно называется?

Когда убираю singleInstance - отображается.
Ставлю singleInstance - не отображается.
#128 #634304
>>634301
Это кстати не главная активити.
>>634308
#129 #634308
>>634301
>>634304
Там сделано так: Запускается главная активити, далее, если нужно пользователя перенаправляют на брифинг или на форму авторизации Вконтакте (если он не авторизован), далее на single instance активити, где вся движуха происходит.
>>634598
#130 #634328
>>634288

>Антошь не стоит вскрывать


Ну собственно вопрос остался открытым, каким образом сделать ресиверы и пересылки на них читабельными?
>>634339
#131 #634339
>>634328
А в чем проблема с пересылками? Класс ресивера, который не будет дергать активити, если оно запаузено, или скидывает в сабскрипшен с буферами, опять же там можешь через Rx раскидать куда надо., когда надо. Модешь сделать фабрику мессаджей, которая будет тебе выдавать интент по заданным параметрам, заведи константы для типов.
>>634345
#132 #634344
Объясните популярно, что такое КОНТЕКСТЫ, и зачем они нужны? Зачем, например, знать контекст методу LayoutInflater'у? Зачем нужны getApplicationContext() и getBaseContext()?

Учу по учебнику, автор хуячит их в свои методах в качестве аргументов (например, в singleton'ах), но еще не использует, дайте спойлер, для чего в будущем это делается.
#133 #634345
>>634339
Не, я немного не об этом. Например ресивер повешали в активити, на этот ресивер высылают что-то из третьего по счеты активити с нестед фрагментами. В результате оно все ок отсылает, но читабельность страдает сильно.
#134 #634361
>>634344
двачую вопрос.

я примерно понял, что контекст это супер-класс для всех активити и прочих, что он может получить доступ ко всему (точно ко всему?) приложению и обрабатывать запросы вроде "получить ресурс из string.xml". и у меня вытекают от этого вопросы:

1) является ли контекст последней инстанцией, с которой взаимодействует сама система девайса?
2) зачем указывать context в создании контролов (view)? получается, что new Button(Activity.this) создает инстанс кнопки внутри активити? А если использовать
getApplicationContext() - он создаст кнопку во всем приложении и ее можно подключать в любое активити?
3)Activity.this указывает на созданный инстанс моего Activity?
Можно ли иначе, вызвав функцию getContext()? И у меня, кстати, сама по себе getContext() не работает, такой функции похоже вообще нет.
#135 #634369
>>634361

>1) является ли контекст последней инстанцией, с которой взаимодействует сама система девайса?


Я не понял что ты написал, но через контекст ты работаешь с системой ведра. Контекст включает в себя все менеджеры и прочее.

>2) зачем указывать context в создании контролов (view)? получается, что new Button(Activity.this) создает инстанс кнопки внутри активити? А если использовать


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

>3)Activity.this указывает на созданный инстанс моего Activity?


Ну это больше джава и область видимости слова this.

>Можно ли иначе, вызвав функцию getContext()? И у меня, кстати, сама по себе getContext() не работает, такой функции похоже вообще нет.


Это не функция а метод в активити, фрагментах и т.д.
>>634372
#136 #634372
>>634369
Спасибо за ответ. Я как раз и имел ввиду, то что ты первым пунктом написал, что система ведра обращается к контексту и наоборот.

А что такое "инфлейтить"? И еще раз прости за вопрос: сама суть new Button(this) в том, что создается кнопка, определенная в активити? Или как понимать данную строку?
>>634382
#137 #634380
>>634344 >>634361

>контекст это супер-класс для всех активити


У активити родителький класс ContextWrapper, он просто имитирует контекст делегирую запросы.

>зачем указывать context в создании контролов (view)


Для простоты представь, что контекст это API для доступа ко всем ресурсам из APK.

Когда ты передаешь активити в "new Button(...)", ресурсы перегружаются с учетом темы (theme) этой активити
>>634384
#138 #634382
>>634372

>что система ведра обращается к контексту и наоборот


Не думаю что именно так, скорее контекст имеет в себе все эти модули с которыми работает ведро. Т.е. не с самим контекстом, а с внутренними элементами.

>А что такое "инфлейтить"? И еще раз прости за вопрос: сама суть new Button(this) в том, что создается кнопка, определенная в активити? Или как понимать данную строку?


Настолько отвык от создания вьюх в коде.
Инфлейт это создания вьюхи из xml. Но мне кажется если передать в баттон обычный контекст, то ты тоже получишь эрор.
>>634385
#139 #634383
>>634344
Контекст — объект, обеспечивающий простой доступ к каким-либо ресурсам, сервисам и т.д. Созданием контекстов занимается Instrumentation, больше тебе знать не надо.
Application Context - самый "изначальный " контекст а если быть точнее, обёртка над ним.
Контексты можно оборачивать, чтобы применить изменения к контексту. Для этого существует ContextWrapper. Application, Activity и Service — примеры таких обёрток. Для получения "обёрнутого" контекста как раз используется getBaseContext.
#140 #634384
>>634380

>Когда ты передаешь активити в "new Button(...)", ресурсы перегружаются с учетом темы (theme) этой активити



Выходит, что если разные стили у каждой активити, а я использую глобальный контекст - стиль кнопки может отличаться? Или я не так понимаю понятие темы?
>>634409
#141 #634385
>>634382

>Но мне кажется если передать в баттон обычный контекст


Вообще-то нет, ты можешь и Application передавать в "new Button()"
View все равно откуда ресурсы (картинки, тексты) забирать.
>>634387
#142 #634387
>>634385
Может быть, но с инфлейтом была точно трабла. Запрашивало именно активити.
Так давно это было, а иде запускать впадлу. Поищу может статейку найду.
#143 #634388
>>634361

> является ли контекст последней инстанцией, с которой взаимодействует сама система девайса?


С контекстом система вообще не взаимодействует. Она взаимодействует с серверами типа WindowManager, ActivityManager и т.д. Со стороны приложения контекст уже может работать с ними.

> зачем указывать context в создании контролов (view)? получается, что new Button(Activity.this) создает инстанс кнопки внутри активити? А если использовать getApplicationContext() - он создаст кнопку во всем приложении и ее можно подключать в любое активити?


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

> Activity.this указывает на созданный инстанс моего Activity? Можно ли иначе, вызвав функцию getContext()? И у меня, кстати, сама по себе getContext() не работает, такой функции похоже вообще нет.


Тут не понял ничего.
>>634392
#144 #634392
>>634388

>Тут не понял ничего.


Он запутался как получать контекст.
getContext нету в активити. Есть два других.
И он спрашивает еще в чем разница между this и Activity.this.
Ни в чем. последние два идентичны, просто this иногда может пониматся как анонимный класс например.
Есть активити контекст и апликейшн контекст.
Все остальное обертки над ними.
И только с активити контекста можно инфлейтить, если не ошибся.
>>634397
#145 #634393
ебать вы охуенные ребята. спасибо за помощь.
#146 #634397
>>634392

> Есть активити контекст и апликейшн контекст.


Нет, не так. Есть куча ContextImpl. Над одним обёртка - Activity, над другим - Application. Такого, что один контекст где-то является Activity, а где-то Service, не бывает.
>>634469
#147 #634409
>>634384
Если для каждой активити задаешь отдельную тему с разным textColorPrimary
<item name="android:textColorPrimary">...</item>
и будешь создавать кнопку из кода передавая активити, у тебя будет везде разный цвет.

Если ты передашь Application, то к кнопке примениться какой-то стандартный-системный стиль.
#148 #634469
>>634397
Та ты заебал, открыл блять документацию и задрачиваешь меня уточнениями.

>активити контекст и апликейшн контекст


Вот тут и имелись ввиду твои враперы для контекста.
Да и говорили только про активити и вызовы контекста из него, так что и сервис тут не при чем.
#149 #634549
Анон, помоги. Есть друг, который изучает JS, я изучаю Android. Хотели запилить какой-то учебный проект вместе. Это реально? Или жс и андроид нигде не соприкасаются, что бы покодить с ним вместе?
>>634581>>634589
#150 #634581
>>634549

>Анон, помоги. Есть друг, который изучает JS, я изучаю Android. Хотели запилить какой-то учебный проект вместе. Это реально? Или жс и андроид нигде не соприкасаются, что бы покодить с ним вместе?



На JS можно, но пртложения такие сильо тормозят.
#151 #634589
>>634549
шапку читай, жуеба.
#152 #634597
>>632324 (OP)
Почему нет треда про Swift под аппл?
>>634610
#153 #634598
>>634308
Скинь манифест
>>639524
#154 #634610
>>634597
А туда ли ты зашел, петушек? https://2ch.hk/pr/res/630631.html (М)
94 Кб, 500x303
#155 #634673
Бампану послединй раз

Провожу исследование "можно ли портировать часть Android API на обычную Java".
Это нужно чтобы запускать Android приложения на WP10 (вместо проекта Astoria)
и просто на Window/OS X/Linux без эмуляторов (к примеру для быстрой отладки).

Может быть кто нибудь захочет присоединится?
Или просто мысли свои по этому выразить.

P.S.
Я знаю что у Google есть расширение к хрому которое примерно это же делает.
101 Кб, 500x303
#156 #634677
>>634673
быстрофикс картинки зря что-ли фотошопил
#157 #634720
>>634673
Windows phone умирает.
#158 #634726
>>634673
Гибриды нежизнеспособны.
Dixi.
#159 #634878
>>632324 (OP)
Наконец о Xamarin годно сказано
#160 #635123
>>633284
А как в мейнстриме с этим? Можно выебнуться на собеседовании/использовать на работе?
>>635182>>635251
#161 #635127
В каких источниках про то, как годно сделать нотификейшны можно прочитать? А то я ужасы про всякие сервисы в тредах видел, неужели всё через задницу?
>>635176>>635186
#162 #635172
.
#163 #635176
>>635127
Тебе нотификации нужны или пушуведомления?
Просто нотификацию показать можно строчек за 5.

А вот с пушами придётся потрудиться.
>>635197
#164 #635182
>>635123
Сам понимаешь не очень, язык ещё в бете, правда следующий релиз уже RC.
Swift вон уже больше года в продакшене (версия 2 уже вышла),
а все никак не пересядут.

Я на нём переписывать на работе один проект с xamarin ,а для себя только на котлине пишу
>>635185
#165 #635185
>>635182
чем xamarin не устроил?
>>635207
#166 #635186
>>635127
Сервисы потому что нотификэйшн обычно их них показывается, они там ни для чего не нужны.
#167 #635196
Друзья, разбираюсь в потоках и работе в фоне. Заодно пытаюсь написать программу, которая:
1) Создает CDlowder объект-наследник Thread. В run() указано, что бы он через каждую секунду отправлял данные в LogCat.
2) Поток запускается через нажатие кнопки button, через buttonCancel - останавливается и пишет в textView информацию.

И у меня тут не получается ничего. Запускаю приложение, а поток не работает в фоне и гуй не дает ничего нажать до остановки потока.

В догонку еще вопросы:
1) Как лучше всего останавливать потоки?
2) Читал на стаковерфлоу, что Thread лучше не использовать, а юзать ASyncTast, вместо Handler. В чем там разница? И как принято у разработчиков менять состояние гуя через потоки?

Сам код: http://pastebin.com/9Wa5c6BG
>>635214
#168 #635197
>>635176
Пуши, да. А что за "просто нотификации" тогда?
>>635211
#169 #635207
>>635185
• APK минимум 15 MB, уменьшить нельзя тк Xamarin не может сжимать DLL (по объективным причинам).
Против 2.5 MB у RoboVM (и это без обфускации).
• Неродной рантайм для обеих систем (Android, iOS).
В RoboVM у меня хотя бы на Android нет прослоек.
• Continuous Integration на Xamarin работает только с Business подиской ($999)
• Слабенькая IDE (Xamarin Studio).
Для Kotlin/RoboVM я использую IntelliJ IDEA.
>>635241>>635248
#170 #635211
>>635197
http://developer.android.com/intl/ru/training/notify-user/build-notification.html
Создаешь объект Notification, передаешь его в метод notify() класса NotificationManager
>>635257
#171 #635214
>>635196
Анонас, почему документацию не читаешь?
Вызывать надо cDlowder.start(), а не cDlowder.run()
>>635221
#172 #635221
>>635214
Спасибо. А как останавливать потоки?
>>635251
#173 #635241
>>635207

>Xamarin не может сжимать DLL


Как это не может когда Link All линкует все подряд и убирает из dll неиспользуемый код. Размер апк конечно больше получается чем у Native но не намного. Сейчас на нынешних устройствах это не критично.

> Неродной рантайм для обеих систем (Android, iOS).


И? Лично видел как на огромных нативных проектах пишут свои гарбадж коллекторы. Если не заметил в ios xamarin фигачит бинарник который подтягивает твои dll.
В андроиде согласен 2 параллельных рантайма убираются за 2000$, что нихуево.

>Continuous Integration на Xamarin работает только с Business подиской ($999)



Я например на Business и сижу. Плачу не я, а фирма. Если же ты фрилансер, то есть кряки.

>Слабенькая IDE (Xamarin Studio)


Да, слабенькая. но опять же смотри выше. Я пишу в VS с Resharper

И это все?
>>635313
#174 #635248
>>635207
ах, да, и проект какой? Это важно. Поскольку Xamarin решает хорошо бизнес-задачи. Если мелкие утилитки, программки, мелкие сервисы или сильно платформозависимые приложения - конечно Xamarin это не выбор. Но для всего остального.... Да и на UpWork проектов на Xamarin полно. С RoboVm не встречал...
21 Кб, 386x246
#175 #635251
>>635221
Через interrupt() можно, ты только в цикл добавь выход из него.

>>635123
Работа это конечно хорошо, но глядя на >>634958 (OP) задумываешься, а стоит ли зацикливаться на одном языке?
>>635266
sage #176 #635257
>>635211
Ок, а что чаще юзают - нотификейшны и пуши? Т.е. нотификейшны легко добавить, а с пушами в чем проблема? И то, и то работает при закрытом приложении?
У меня суть такая: юезр делает заказ, и через какое-то время он появляется на складе. И в этот момент надо его уведомить. Кто что посоветует?
>>635268
#177 #635266
>>635251

> Через interrupt() можно, ты только в цикл добавь выход из него.


Сразу добавлю, что throw InterruptedExeption сбрысывает isInterrupted текущего треда в false.
Довольно важное замечание ебанутого поведения джавы.
#178 #635268
>>635257

> юезр делает заказ, и через какое-то время он появляется на складе. И в этот момент надо его уведомить. Кто что посоветует?


1. Через алармменеджер раз в пол дня проверяешь наличие заказа в сервисе. Показываешь нотификацию через Notification.
2. Если есть доступ к бэкэнду, то пуши. Приложение не будет ебать батарею и получит данные только тогда, когда этого захочет сервер. Ловишь пуш в сервисе, показываешь нотификацию через Notification, либо указываешь параметры показа в самом теле пуш сообщения.
https://developers.google.com/cloud-messaging/
>>635310
#179 #635310
>>635268
К бэкэнду есть доступ. Тогда я буду ловить эти КлаудМесэджи через GcmListenerService.onMessageReceived, и всё? Или какие-то подводные камни, в виде сложной реализации или еще чего-то?
>>635326
#180 #635313
>>635241
Забыл упомянуть, Xamarin приложения дольше запускается даже на топовых девайсах

> Как это не может когда Link All линкует все подряд и


Я про то что Xamarin вообще не сжимает DLL помещая их в APK (сжимал бы, apk были бы в 2-3 раза меньше)

> Размер апк конечно больше получается чем у Native но не намного


2.5 MB против 15 MB это НЕ немного

> Сейчас на нынешних устройствах это не критично.


Устройства бывают разные и не у всех S6.

> И? Лично видел как на огромных нативных проектах пишут свои гарбадж коллекторы


Тут спорить не о чем, нативный код для платформы всегда лучше.

> Если же ты фрилансер, то есть кряки.


Хорошая у тебя компания, раз может по штуке баксов выделять на разработчика.
Нет актуальных кряков для ios (они вечно под устаревшие версии)

> Я пишу в VS с Resharper


Мне удобно на макбуке работать, что бы сториборды сразу править в Xcode

> проект какой?


Менеджер "данных" CRUD с криптографией, бэкенд синхронизацией, нативным дизайном
>>635336
#181 #635326
>>635310

> Или какие-то подводные камни


В твоем случае нет, можешь ловить спокойно.
>>635334
#182 #635334
>>635326
Спасибо большое. Если у кого-то еще есть мнения, буду рад послушать.
#183 #635336
>>635313
а, ну у нас разное workflow

Да Xamarin дольше запускается. Но мы используем это время с пользой - показываем рекламный баннер на сплешскрине. Нам размер не критичен. 15-50МБ однохуйственно. Пишем в основном на топовые девайсы - xhdpi, xxhdpi xxxhdpi, Retina короче.
На контору 3 лицухи - 2 ios 1 android. Когда покупали - предоставили скидку 20%, да и курс весной был божеский.
В моем распоряжении 2 компа - MacMini и PC. У нас 1 сториборд описывающий сплэшскрин, все остальное xaml.

Менеджер "данных" 1-м сеньором пишется на ура.

Но мне интересно послушать о возможностях RoboVM. Какой там паттерн проектирования заложен, как UI пилить, как например подключить SDK Vkontakte или Фэйсбука на ios. Вот это все.
>>635423
#184 #635423
>>635336

> Какой там паттерн проектирования заложен


Никакого. Как и в Xamarin если не использовать Xamarin Forms.

> как UI пилить


Через xml и storyboard. Лично я юзаю MVP (без фреймворков).

> как например подключить SDK Vkontakte


Как xcode проект
>>635430
#185 #635430
>>635423
Нет ощущения что скатился до MVP с паттерна богов MVVM - если использовал его конечно, необязательно в Forms, через mvvmcross например.

И если юзал формсы не напрягает что теперь UI надо верстать 2 раза?

Почему по твоему мнению такие вещи не перевешивают размер и скорость запуска? Ну пользователь не обеднеет так то, а ты кучу времени сэкономишь на разработке. Особенно важно когда нужно прототип. И не сегодня а вчера.
>>635441>>635590
#186 #635441
>>635430

>что скатился до MVP с паттерна богов MVVM


Вас не смущает что они на 95% одинаковы?
Сириусли объясните мне эту критическую разницу то?
Что в презентере ты связываешь модель с вью, что в вьюмоделе.
>>635451
#187 #635443
Я правильно понимаю что нужно первым делом разобраться в java?
>>635449
#188 #635449
>>635443
иди нахуй
#189 #635451
>>635441
Да вообще ни разу не одинаковы. в MVVM заложен механизм биндингов. Особый смак TwoWay биндинги. Вся фишка в них. В том что ты не пишешь кучу update методов и не завязан на событийную модель вообще никак, более того ты можешь вьюмодели отнести в другой проект и написать к ним тесты итд итд
>>635452
#190 #635452
>>635451
Ну если нужны двунаправленные биндинги то в ведре это пока что невозможно. Если в последние пару месяцев не сделали.
>>635454
#191 #635454
>>635452
Ну в Xamarin это тоже до недавнего времени было возможно только через фреймворк.

Понятно. Ну в общем решать надо в каждом проекте отдельно что важнее - скорость разработки или скорость работы приложения, его размеры и стоимость лицухи. Впрочем как и всегда - важно все взвесить и просчитать.
>>635461
#192 #635461
>>635454

>скорость разработки или скорость работы приложения


Скорость разработки на ксамарине сугубо под ведро не может быть быстрее чем на жабе. Так как ксамарин стандартный сдк и юзает.
Т.е. если ты пишешь апликуху под ведро, то выбор не то что очевиден, его и нету совсем.
>>635463
#193 #635463
>>635461
Какой скрытый смысл разработки на ксамарине сугубо под ведро? В чем вообще профит?

Профит по деньгам очевиден, когда на нативных SDK проекты запланированы в совокупности длиннее 2 месяцев и нужно выпустить 2 приложения.
Условно Зп 1 кодеманки 2000$. Условно он за 1 месяц на Замарине сделает то что такой же кодеманки сделает за 2 на нэйтиве. Бизнес-лицуха на год 2000$.
4000$ и 1 месяц против 4000$ и двух месяцев. Ну а дальше начинается чистая экономия и похуй на то, что приложуха грузится на 5 сек дольше и её дольше будут загружать по 3G.

Я достаточно быстро адаптировал проект на формах под андроид, в то время когда он же уже был 100% выполнен под ios. Под ios мы его писали 6 месяцев, адаптация на ведро прошла за 2. Итог - мы фичевали фичи на ios и они автоматом попадали в недоделанный андроидный билд, любые правки в логике, сервисах и верстке автоматом пилились в ведро, основное время потратили тупо на оптимизации, внешний вид и на текста, которые бы подбирали размер шрифта под доступную область + осталась работа по прикручиванию VKSDK.
>>635572>>635574
#194 #635572
>>635463

>Какой скрытый смысл разработки на ксамарине сугубо под ведро? В чем вообще профит?


Я про это и говорю, если заказ поступил сугубо на ведро, то финита ля комедия.
#195 #635574
>>635463
Тебя послушать так серебряная пуля.
105 Кб, 695x412
#196 #635580
Каждый раз теряю ответы на свой вопрос.
Можно ли писать под андроид и эппл без андроидов и эппла?
>>635584
#197 #635584
>>635580
Можно, но если на ведро тебе нужен будет один джениМоушн, то на на эпл скорее всего понадобится еще и виртуальная машина под Mac OS.
Вариант хуярить на кроссплатформе, но они платные и хз как там с эмуляторами девайсов.
#198 #635590
>>635430

> через mvvmcross, mvvmlight


То еще г### и все равно (на Android/iOS) через код делается.
С MVP ощущаешь простоту, ибо никаких сторонних фреймворков, никаких спец. базовых классов и тд.

> UI надо верстать 2 раза


Нам нужен нативный-красивый дизайн, а не формы (разные макеты, разная верстка)

> Особенно важно когда нужно прототип


Вот у нас и был прототип на Xamarin, а теперь переделываем на продакшен решение.
>>635797
#199 #635797
>>635590
https://itunes.apple.com/ru/app/smartmafia/id1013949031?mt=8

Это попадает под определение "нативный-красивый дизайн"?
>>635836
#200 #635836
>>635797
Android: apk 51 MB
ресурсы максимум для xxhdpi
не совместим с Nexus 5X

iOS: ipa 80 MB.
Размеры кнопок разные (особенно нравиться "Начать").
Хочу ввести "Имя" в окне "Вход" клавиатура перекрывает поле
(кнопки перехода к следующему полю нет).

В общем не самые приятные впечатления оставляет.
Да и фильм говно
>>636038>>636103
#201 #636038
>>635836

> не совместим с Nexus 5X


на ведро мы выложим через пару дней обнову. Будет Nexus 5X, да и вообще куча говна в виде багов уйдет

> Да и фильм говно


Фильм говно, и к нему мы отношения не имеем. Мы забрендились просто на месяц. Скоро вернем обратно приятный арт. Я был всеми руками против этого брендинга но не я решаю.

> Хочу ввести "Имя" в окне "Вход" клавиатура перекрывает поле


(кнопки перехода к следующему полю нет).
iphone 4s? да, есть такое говно. Мы вообще 4-ки будем отцеплять
#202 #636051
Как называется такая анимация: жмешь, например, на картинку в кардвью и открывается фрагмент или активити, куда эта картинка плавно переносится. Или сбросьте туториал на такую штуку.
>>636257
#203 #636103
>>635836

>Размеры кнопок разные


Оптический обман зрения. В стилях одинаковые размеры стоят.
#205 #636539
>>633851

>Это когда ты можешь бросать интенты типа ACTION_BATTERY_CHANGED


Уже немного яснее, спасибо!
Чем больше читаю, тем больше понимаю, почему разработчику так нужен ингриш
#206 #636547
Как же хочется под маком разрабатывать на Xamarin

>tfw no OC X

#207 #636578
AndroidAnnotations юзаете?
#208 #636596
Какая альтернатива асинктаскам кроме rx?
#209 #636607
>>636596
AsyncTaskLoader, CompletableFuture (есть какая-то либа для совместимости)
#210 #636632
>>636596
Да кстати, а чем не устраивает RxJava?

У меня есть некоторый опыт юзания, могу объяснить если что-то непонятно по RX.
#211 #636635
>>636596
Android-bolts еще норм.
66 Кб, 600x449
#212 #636694
Мой аларм сервис должен вызывать приложение, и открывать определённый активити. Как он будет действовать, если он сработает, при открытом уже приложении, или через что вообще такое лучше пилить? Пишу что-то вроде напоминатора.
>>636708
#213 #636708
>>636694

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


Так как из сервиса можно активности запускать только через NEW_TASK, то перекроет твои текущие окна.
Да и не лучше ли нотификации делать, вместо вызова целой активити?
>>636959
#214 #636809
Я чет не понял, как мне скрестить PhoneGap и православную IDE, киньте мануал.
#215 #636959
>>636708
Спасибо, понил. Нотификация не вариант, я должен перед рожей видеть, что событие настало.
#216 #637009
Андроидач, что можно положить в портфолио джуну? Пока в голове только виджет погоды, калькулятор бмр, рсс ридер.
>>637742
#217 #637070
Ононы, сколько живет Intent? Могу я рассчитывать на то, что в результате всякой хуйни (повороты, low memory, запуск новых активити) Intent моего активити (вернее, интент активити, хостящего мой фрагмент) не изменится?

Грубо говоря, могу я пользоваться getArguments() в onCreate()? Может ли он потерять изначально переданные в активити данные?
>>637147
#218 #637147
>>637070
Если ты про getIntent(), то нет тк интенты активити сериализуются на диску.
И сохраняются даже при вылетание приложений из памяти сохраняются.

getArguments() фрагмента храниться в Bundle активити, который тоже сериализуется на диск.
>>637153>>637242
#219 #637153
>>637147

> то нет


В смысле что не изменится / не потеряется
>>637242
#220 #637242
>>637153
>>637147
Спасибо, а то я думал их уже в Bundle savedInstanceState кидать.
#221 #637309
Анончик, пилю кнопку с изображением внутри. Через андроид студио импортировал имидж ассет в мипмап, сделал вот так:

<ImageButton
android:id="@+id/facebook_button"
android:drawable="@mipmap/facebook_released"
android:layout_width="230px"
android:layout_height="230px" />

А изображения на кнопке все равно нихуя нет :ссс
Как решить проблему?

(соре, не нашел 11 тред сразу)
>>637348
#222 #637328
Аноны, у кого есть подписка и свежая версия
The Busy Coder’s Guide? а то у меня за 2014, а может и древнее
#223 #637337
Я хз профан, андроид ведь apk?

Есть проги редактирующие их?
Рекламку бы порезать в них
>>637348
#224 #637338
Подскажите по асинктаску. Насколько правильно передавать в наследника контекст (или активити), что бы посредством него управлять состоянием гуя? Или надо по отдельности каждый изменяющийся вью передавать?

И почему нельзя создать объект AsyncTaskExtended(this) в onClick()?
>>637348
#225 #637348
>>637309
нужно не
android:drawable="@mipmap/facebook_released"
, а (тк ImageButton это наследник ImageView)
android:src="@mipmap/facebook_released"

>>637337
гугли apktools - http://ibotpeaches.github.io/Apktool/

>>637338
нихрена не понял, что ты хочешь
>>637350
#226 #637350
>>637348
Есть AsyncTaskExtend, который наследуется от асинктаска. Он управляет состоянием вызвавшего его активити и делает свои действия в onProgressUpdate.

Так вот вопрос, я правильно понимаю: что бы управлять состоянием - нужно создать объект типа AsyncTaskExtend(Activity.this), а внутри класса описать уже нужные мне контролы и как они будут менятся во время работы асинктаска?
>>637352>>637480
#227 #637352
>>637350
ой, в doInBackground() делает. фикс.
#228 #637364
антоши, а можно ли как-то запускать музыкальный файл через медиаплеер, если его имя содержит пробелы?
типа mMediaPlayer = MediaPlayer.create(this, R.raw.08 Some track); ?
>>637369
#229 #637369
>>637364
Почему бы не переименовать? Мне кажется R для такого файла не сгенерится.
>>637370
#230 #637370
>>637369
а как тогда пишутся приложения типа медиаплееров? там по прямой ссылке доступ?
>>637373
#231 #637373
>>637370
Конечно. В assets нельзя нихрена запихнуть потом. Достаются URI/path из базы и пошел проигрывать.
>>637375
#232 #637375
>>637373
а по бд еще не подскажешь? у меня этого курса в универе почти не было, единственное что я вынес - это то что бд надо разделять и много столбцов это плохо.
пытаюсь осваивать SQLite. допустим есть простой список контактов с полями "имя", "фамилия", "телефон", "адрес" и куча-куча прочей информации. мне выходит надо создать одну базу данных, которая будет содержать эти 10-15 столбцов и заполнять? или все таки стоит разделять на подбазы.

и что вообще можно по бд почитать, что бы примерно представлять язык SQL и как их строить?
>>637391
#233 #637391
>>637375
Я сам БД со скрипом в универе сдал, но по моему скромному опыту преждевременная нормализация, а ты говоришь о ней, когда хочешь уменьшить количество столбцов в таблице, не нужно. И ты бы создавал не подбазы, а различные связанные (например по номеру телефона, или еще по какому уникальному ключу) таблицы в одно БД.
Из шапки жабо-треда:
5. Что насчет SQL?
Начни с малого: http://www.w3schools.com/sql/default.asp
Затем переходи к: http://www.sql-ex.ru/
В качестве чтива рекомендую: http://oreilly.com/catalog/sqlhks/chapter/
#234 #637392
Господа, а как решают задачу проверки сайта раз в полдня? Я правильно понимаю, что надо создать сервис, который проверит раз и будет заданное время посредством Thread.sleep()?
>>637394
#235 #637394
>>637392
AlarmManager.
>>637398
#236 #637398
>>637394
А это разве не класс для реализации нотификаций? Или через него можно и сервис запускать раз в определенное время?
>>637412>>637541
#237 #637412
>>637398
Можно.
#238 #637427
Знаю C++, нужно разработать простенькую графическую игрушку под ведроид. Чем лучше воспользоваться? Ну, с джавой, думаю, тоже разобраться смогу, но желательно плюсы.
>>637541
#239 #637480
>>637350
Какие нахуй контролы? Через коллбэки управляешь состоянием юая.
#240 #637541
Пора бы в шапку добавить про разработку игор, а то из /gd частенько заходят >>637427.

Unity, Unreal, Cocos2Dx

>>637398
Туда пихается PendingIntent, а в него уже почти любой другой интент.
>>637585
#241 #637585
>>637541

>а то из /gd частенько заходят


Я, скорее, из универа сюда зашел. И я, конечно, понимаю, что в нынешней инди-индустрии принято на каждый чих юнити тащить, но мне как-то сомнительно, что для игры про давление бегающих по столу тараканов нужен целый 3Д-движок.
>>637740
#242 #637740
>>637585
Бери кокос, если хочешь плюсы, но это тоже "целый 3-д движок". Любое комплексное решение это куча не нужного тебе говна. Для небольшой игры подойдет libGDX.
#243 #637742
>>637009
бамп
>>637750
#244 #637750
>>637742
Открываешь google.play, смотришь в ТОПах что-нибудье просто что сможешь сделать.

Делаешь, выкладываешь в play, может кто и скачает. Люди любят конкуренцию.
>>637754
#245 #637754
>>637750
Я хочу присосаться в какую-нибудь контору, а не быть фрилансером и надеяться, что "авось кто скачает". Вот хочу знать, на какой уровень ориентироваться. Чтобы знать, что если я не могу пока осилить вот эту ебалу, нужно еще потренироваться, а если могу, то можно уже идти обсираться на собеседованиях.
Алсо, если честно, мне лень доводить до ума мелкую хуйню типа шифра цезаря, делать дизайн, ебать шрифты и прочее, хочу в портфель сложить только код и незамысловатый интерфейс (или вовсе спиздить его на 99%).
>>637798
#246 #637773
>>634301
Это называется Tasks stack. если я правильно понял
#247 #637798
>>637754
Музыкальный плеер.
>>637803
#248 #637803
>>637798
Спасибо, добавил в список.
#249 #637995
Посоны, может тут кто-нибудь пояснить за блютуз на ведре? А именно за стек bluedroid.
Интересует PAN/NAP. Т.к. гугленье по этой теме не дало результатов, я пришел к выводу, что готовой утилитки (хотя бы что-то типа pand из bluez) для подключения к существующей/создания новой сети нет. Так ли это? Если да, то где искать документацию к этому ебучему блюдроиду?
>>638011
#250 #638011
>>637995
Есть это https://source.android.com/devices/halref/bt__pan_8h_source.html
но нормальной документацией это трудно назвать.
#251 #638025
Реально где-нибудь найти The Busy Coder's Guide to Android Development последней версии? Все интернеты перерыл. Неужели никто не выкладывает?
4 Кб, 128x128
#252 #638068
Антоши, есть такой Джисон:

{
"a" : ["e","f"],
"b" : ["g","h"]
}

есть библиотека simple-json - https://code.google.com/archive/p/json-simple/ , которую я использую.

Подскажите, пожалуйста, как этот джисон перекодировать в какой-нибудь хэшмап, чтобы уже нормально использовать.
39 Кб, 797x655
36 Кб, 654x553
#253 #638102
Сап.
В общем, есть такой вот фрагмент, который то ли работает, то ли не очень.
Под виртуальным андроидом 4 (14 API) всё запускается, всё работает.
Под реальным устройством с андроидом 5.1 (21 API, CyanogenMod) нихрена не запускается и выбивает NPE на строке 36 (то есть, navigationDrawer == null).
Почему так и что с этим делать?
>>638113>>638256
#254 #638113
>>638102
А, нет, вру, на реальном устройстве API 22.
>>638128
#255 #638123
Поясните пожалуйста как работают коллбеки. Сколько не смотрю - внятного объяснения не могу найти.

- Я правильно понимаю, что на коллбеках построен полиморфимз и вся работа с кнопками в частности?
- Если так, то как это работает? Кнопка в главном потоке постоянно отслеживает (как отслеживает, тоже своим потоком?) состояние и если оно изменилось - передает объект, имплементирующий метод действий?
- И если все так, то где это еще используется?
>>638126
#256 #638126
>>638123
Причём тут полиморфизм вообще?
Коллбэк - это такой паттерн, в котором у объекта есть один или несколько листенеров, у которых этот объект при каких-то условиях вызывает какой-либо метод - то есть, коллбэк.
#257 #638128
>>638113
Может быть фрагмент не успел добавится в активити, вообще говно какое-то добавлять фрагменты через xml.
>>638134
#258 #638134
>>638128
Но почему тогда он всегда стабильно успевает добавляться на четвёртом андроиде, но не на пятом? Кроме того интересно то, что до этого и на пятом всё нормально работало. А потом после небольших изменений в одной из зависимостей (которая с андроидом вообще ничего общего не имеет!) стало вот так.
А если не прописывать фрагмент через XML - то как тогда? Вот есть у меня этот самый NavigationDrawerFragment. Как мне его добавить в мой лейаут?
#259 #638135
>>638126
А как обычно листенер реализуют?
>>638139
#260 #638139
>>638135
Примерно так. http://pastebin.com/EPbit0uf
Но это с вплетением Java 8 для краткости.
>>638160
#261 #638146
Аноны, а что из мейнстрим библиотек посоветуйте, которые все нормальные конторы используют? Видел инфу про какую то либу на аннотациях, но потерял линк.

Еще есть ли продвинутые тулсы чтобы смотреть как выглядит гуй(анимации, нажатия и т.д.)? хотяб для декларативных
>>638207
31 Кб, 839x592
#262 #638150
Аноны, недавно перекатился в android studio(до этого пару лет забил на робота) и вылезла такая хуйта как на пике, обновления не помогают, как лечить?
>>638206
#263 #638157
Чопоны. Кто нибудь рассматривал http://metanit.com, как вариант обучению на андрея? Прочитал первые 2 главы, полет нормальный. Инфа актуальная и преподносится годно.
#264 #638160
>>638126
>>638139

Так чем они тогда отличаются? и тот, и тот класстческий observer

Другой-анон
#265 #638186
>>638126
Какой еще паттерн? Коллбэк - это указатель на функцию, который вызывается в теле другой функции.
То, что ты описываешь называется обсервером.
>>638223
#266 #638197
Я правильно понимаю, что интентсервис не выключается до тех пор, пока не обработает все интенты? Если создать кнопку, которая отправляет интенты в сервис при нажатии и нажимать на нее много раз - интентсервис будет каждый интент ставить в очередь и по очереди каждый из них обрабатывать? Не будет такого, что бы несколько копий сервисов запускалось?
>>638208
#267 #638206
>>638150
Что там у тебя с джавой? Ты кэш старых версий чистил?
>>638212
#268 #638207
>>638146
Retrofit, Picasso/UniversalImageLoader/Glide, Calligraphy, Gson/Jackson, Dagger2.
Еще крутые: RxAndroid, Retrolambda(это правда плагин), Fresco, Mortar, Flow, AndroidBolts, Butterknife (скоро будет нинужно).
Еще популярные: EventBus, greenDAO, ormLite, Realm.
#269 #638208
>>638197

>All requests are handled on a single worker thread -- they may take as long as necessary (and will not block the application's main loop), but only one request will be processed at a time.


Все верно.
#270 #638212
>>638206

Стоит jdk и jre 8 версии + я так понимаю 32 битные версии jdk 7 и jre 6,7(находяться в паке programms x86, куда я так понимаю винда 32 битные проги ставит)

Насчет кэша не очень понял, гугл ответил только про temporary files в java control panel, с которой кстати такой же косяк, артефакты с надписями. Очистил, не помогло. Может проблема в каком нибудь стандартной гуй либе, которую испльзует java(не оч шарю в этом)?
>>638332
#271 #638223
>>638186

> Коллбэк - это указатель на функцию, который вызывается в теле другой функции.


> Java

>>638234>>638444
#272 #638234
>>638223
бля ну вы бы хоть пояснили че такое коллбек. а то с умным видом сидят и гринтекстят.
>>638446
#273 #638240
Есть ли для андроида аналоги jimulabs.com или знаете где надыбать этот плагин без триала?
#274 #638256
>>638102
Попробуй вместо getFragmentManager() (28 строка) вызывать getChildFragmentManager().
>>638448
#275 #638264
>>638207

> RxAndroid


Ну что ты позоришься, нужно советовать RxJava

RxAndroid только добавлять шедулер для хендлера
(которые можно и самому написать без проблем).
>>638329
#276 #638329
>>638264
Я не уверен что там только это. А так конечно да, без RxJava ничего не будет.
#277 #638332
>>638212
Да я бы посоветовал стереть все джавы. А потом нормально накатить, если пользуешься rx то надо будет и 6 и 7, но 8 обязательно. Можешь еще превью студии скачать, с ней отдельная jre будет для шрифтов, хотя может это только на маки.
#278 #638386
>>638207

>Butterknife


Что-то не зашел, все паблик должно быть и тд.
А почему не нужно будет? Гуглы сделали биндинг какой-то?

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

Ну и cupboard() вы забыли, лучше всяких орм.
>>638422>>638439
#279 #638422
>>638386
Ну достаточно было package-private (без модификатора доступа). Вообще да, есть в бете: http://developer.android.com/intl/ru/tools/data-binding/guide.html

Про тимбер забыл чет.
#280 #638426
Парни, ищу студента ведро-девелопера 2-4 курса из Киева. Для совместного проекта. Заинтересован ли кто-то?
>>638470
#281 #638439
>>638207
>>638386

Спасиб антоши, пойду ковырять.
А с гуем как работаете? Деплоите на дейвайс и смотрите как все выглядит? Неужели нет годных утилит для предпросмотра, хотябы для анимаций?
#282 #638444
>>638223
Я понимаю, что ява настолько бедный язык, чтов нем нет указателей на функцию, как в крестах или делегатов, как в сисярпе. Но от этого значение слова коллбэк не меняется. Просто его нет в яве. Приходится выкручиваться, реализуя обсервер и называя его коллбэком, лол.
#283 #638446
>>638234
Прочитай про паттерн Observer.
#284 #638448
>>638256
Для getChildFragmentManager() минимальное API - 17, а мне надо бы поддержку с 14.
>>638468
#285 #638449
Как с работой, посоны? Совсем хуйню делать приходится или интересные проекты? Как платят?
#286 #638468
>>638448
Ну так ты юзай support.Fragment
#287 #638470
>>638426
А ну, что за проект? Деньги платят, или за идею? Анисимов?
>>638494
#288 #638494
>>638470
Так я тебе и рассказал. Есть идеи для стартапа, ищу напарника для реализации.
#289 #638575
Привет.
Использую VK SDK, приемущественно запрашиваю список аудиозаписей (из поиска, из альбомов, аудио друзей и т.п.)
Как бы мне кешировать всю эту ебулду? Или смысла не имеет?
>>638656
#290 #638656
>>638575
Имеет, запросы не самые быстрые, в базу родименькую писать всю хуйню. Обновлять или в ручную, или в крайнем случае через 15 минут, типа ушел с экрана - вернулся и побежал запрос на синхронизацию.
#291 #638831
Есть годны гайды по cocos2d конкретно для ведроида, а то везде гейос-гейос?
#292 #638913
Как из фрагмента изменить что либо в активити(текст изменить к примеру) из которого и надулся фрагмент?
>>638923
#293 #638923
>>638913
Эээ попробуй getActivity().findViewById(), но это как-то не красиво.
>>639122
15 Кб, 712x521
#294 #638962
Пытаюсь сделать http запрос в андроиде
Создаю экземпляр HttpURLConnection.
Студия мне выкидывает методы для переопределения, пикрелейтед.
Не могу понять что писать в методе connect, похоже они все обновили, а документация осталась старая.
http://developer.android.com/intl/ru/reference/java/net/HttpURLConnection.html
Помогите, коданы, я в этой джаве недавно.

p.s. И почему он ругается на малформед урл?
>>638973>>638979
21 Кб, 395x85
#295 #638973
>>638962

>http://developer.android.com/intl/ru/reference/java/net/HttpURLConnection.html


Тебе нужно обернуть выражение в try-catch
>>639036
#296 #638979
>>638962
Потому что HttpUrlConnection — абстракция. Нужно работать с её реализацией, в андроиде такая есть.
new URL(...).openConnection().
>>639036
#297 #638992
Думаю обновить апарат, а учитывая что мой телефон автоматически станет "рабочим" то хотелось бы всегда самое свежее ведро.
Думаю взять нексус 5х, но внутрений еврей говорит что отдавать больше половины зп за телефон ебанизм.
В результате глаза падают на бюджетное китайское говно.
Я понимаю что к разработке никоим образом, но все же, какое у вас отношение к выбору девайса?
>>639137>>639149
7 Кб, 750x150
#298 #639036
>>638979
>>638973
Делаю вот так и в текствью пусто все равно
>>639149>>639161
#299 #639037
Пацаны, а как называются виджеты в уведомлениях на нашей охуенной платформе? А то я даже хз что гуглить.
>>639039>>639153
197 Кб, 700x466
#300 #639039
>>639037
Типо вот этой хуйни, только под ведроид.
#301 #639122
>>638923
так нельзя
>>639123
#302 #639123
>>639122
add
точнее можно, ладно другой вопрос.
Как запустить метод в активити из фрагмента?
>>639124
#303 #639124
>>639123
add
if(activity instanceof MainActivity){
((MainActivity) activity).startMethod;
}
есть такое решение, можно хотя бы пояснить что здесь происходит?
#304 #639137
>>638992
Бери nexus 5x. Он не такой и дорогой. Хорошие вещи не дешевые.
>>639513
#305 #639149
>>639036
Логи посмотри.

У тебя скорее всего запрос в главном потоке, в новых аднроидах это вызывает исключение.
Создай AsyncTask и внути выполни запрос.

>>638992

> хотелось бы всегда самое свежее ведро


> глаза падают на бюджетное китайское говно


Ты уж определись как-нибудь.

Если нужны новые прошивки на два года вперед по любому только 5X остается.
В принципе он как и личный телефон неплох купил еще по пред заказу
>>639513
25 Кб, 733x142
#307 #639161
>>639036
Вот пример с AsyncTask

P.S.
1) Не забудь добавить в манифест
<uses-permission android:name="android.permission.INTERNET" />
2) Смени http на https (yandex не дружит с http)
#308 #639187
>>639161
Ты зачем нуфага путаешь своим котлином, мм?
>>639193
#309 #639193
>>639187
Да мне скучно прост
#310 #639513
>>639137
>>639149
Еще подумаю, все же дороговат зараза.
>>639527
#311 #639524
Поднимаю этот вопрос снова.

>Котаны, есть проблема.


Когда ставлю в манифесте android:launchMode="singleInstance" для main activity, то в диспетчере задач приложение не отображается на устройствах ниже, чем Android 6.0.1.
Как это пофиксить?
>>634598

Содержимое манифеста:
http://pastie.org/10702981
>>639542>>639622
#312 #639527
>>639513
Очень печально, когда тратишь кучу времени на обход бага и потом оказывается, что такой баг только на этом китайском говне.
С nexus 5X у тебя будет на что ориентироваться.
Так то любое приложение никогда не будет работать одинаково везде.
>>639618
#313 #639542
>>639524
noHistory у ui.BriefActivity это обязательно?
>>639589
#314 #639589
>>639542
Да, по идеи эта активити показывается пользователю 1 раз при первом запуске приложения. И он не должен вернуться на неё через кнопку назад.
>>639622
#315 #639618
>>639527
У начальника говно-блекбери, и был там один баг с проверкой интернета, суть в том что иногда интернет был, а апликуха получала данные что его нету.
В результате немного нервов потратил, но в конце концов забили, так как ебучий блекбери даже к адб не подключался.
>>639626
#316 #639622
>>639589
>>639524
Решение проблемы: нельзя оставлять аттрибут android:label пустым.
#317 #639626
>>639618
Самое страшное - это всякие апликухи, которые работают с bluetooth или обмениваются данными через аудио/usb.
Главное - фиг протестируешь, где то же надо брать целую кучу устройств.
>>639634
#318 #639634
>>639626
Пока не приходилось с этим ебаться, но представляю себе.
1531 Кб, 1531x822
#319 #639958
Аноны, как можно получить фото города по названию или его координатам? Пробовал с помощью гугловских апи, но он не возвращает фотореференс для городов, возвращает только для мест(ресторанов, музеев етц).
Пробовал с помощью фликр апи, там возвращаются совершенно рандомные фотки, крипота какая то. Откуда гугл берет фото, как на пикрелейтед?
Есть ещё panoramio, вроде как, тоже можно искать фото по координатам, и наверное, им пользуется гугл. Но я не могу понять, как пользоваться их апи http://www.panoramio.com/api/widget/reference.html#PhotoRequest класс PhotoRequest подходит, но есть ли у них rest апи?
#320 #639967
Какое апи можно юзать, чтоб выдавать юзеру suggestions адресов, и потом по адресам координаты получать?
>>639984
#321 #639984
>>639967
В google play services есть модуль для этого.
#322 #640068
>>639161

>котлин


>плебсу надо писать точки с запятой, а я пишу быстра))))))

>>640071
#323 #640071
>>640068
В асинктасках особенно хорошо видно, что Android API приходится адаптироваться к убогому java 1.6 синтаксису.
В техже лямблах, это можно написать гораздо короче и код будет более гибким и понятным.
44 Кб, 544x499
#324 #640110
1170 Кб, 1081x608
823 Кб, 1024x567
301 Кб, 1600x900
Android TV плеер для RuTracker #325 #640137
Есть идея написать плеер для воспроизведения видео с торрент трекеров (в частности с rutracker) в режиме "стриминга".

ГЛАВНОЕ: приложение будет бесплатное и open source (исходники всего будут на github.com)

Приложение будет состоять из двух частей:

1) Android "плеер и каталог" адаптированный под телевизоры (управление пультом, размер экрана и тд).
Приложение будет написано на Kotlin, тк это современный и лаконичный язык.

2) Мини-сервервера, который будет выкачивать торрет и стримить видео.
Он нужен что бы не захламлять память (обычно ограниченную) на android устройстве.
Для кросплатформенности, сервер будет написан на ASP NET Core 5.0 (его плюс что он может работать без .NET/mono)

Сервер будет поставляться в нескольких вариантах:
2.1) Windows / Linux / OS X консольное приложение и которые будет хостить в себе мини-сайт.
У приложения будет простой UI для настройки (или конфиг-файл).
2.2) Настроенный docker контейнер, который можно будет в две команды развернуть на любом Linux сервере
2.3) Как часть Android приложения (в этом не уверен)

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

К ПРОЕКТУ ПРИГЛАШАЮТСЯ ВСЕ ЖЕЛАЮЩИЕ
Пока проект, это только идея и можно выразить свои мысли по нему может спереть, я за конкуренцию

FAQ
В: Почему стриминг с трекеров?
О: Трекеры это огромный каталог и HD фильмов (многих из которых нет в магазинах) и их сложно заблокировать правообладателям.

В: Зачем мне участвовать в этом пректе?
О: Можно будет набраться знаний по современным технологиям (ASP NET Core, Kotlin) и праславиться.
1170 Кб, 1081x608
823 Кб, 1024x567
301 Кб, 1600x900
Android TV плеер для RuTracker #325 #640137
Есть идея написать плеер для воспроизведения видео с торрент трекеров (в частности с rutracker) в режиме "стриминга".

ГЛАВНОЕ: приложение будет бесплатное и open source (исходники всего будут на github.com)

Приложение будет состоять из двух частей:

1) Android "плеер и каталог" адаптированный под телевизоры (управление пультом, размер экрана и тд).
Приложение будет написано на Kotlin, тк это современный и лаконичный язык.

2) Мини-сервервера, который будет выкачивать торрет и стримить видео.
Он нужен что бы не захламлять память (обычно ограниченную) на android устройстве.
Для кросплатформенности, сервер будет написан на ASP NET Core 5.0 (его плюс что он может работать без .NET/mono)

Сервер будет поставляться в нескольких вариантах:
2.1) Windows / Linux / OS X консольное приложение и которые будет хостить в себе мини-сайт.
У приложения будет простой UI для настройки (или конфиг-файл).
2.2) Настроенный docker контейнер, который можно будет в две команды развернуть на любом Linux сервере
2.3) Как часть Android приложения (в этом не уверен)

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

К ПРОЕКТУ ПРИГЛАШАЮТСЯ ВСЕ ЖЕЛАЮЩИЕ
Пока проект, это только идея и можно выразить свои мысли по нему может спереть, я за конкуренцию

FAQ
В: Почему стриминг с трекеров?
О: Трекеры это огромный каталог и HD фильмов (многих из которых нет в магазинах) и их сложно заблокировать правообладателям.

В: Зачем мне участвовать в этом пректе?
О: Можно будет набраться знаний по современным технологиям (ASP NET Core, Kotlin) и праславиться.
#326 #640142
>>640137
Возможно ли сделать стрим через DLNA?
>>640151
#327 #640150
>>640137

>Он нужен что бы не захламлять память (обычно ограниченную) на android устройстве.


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

>Для кросплатформенности, сервер будет написан на ASP NET Core 5.0 (его плюс что он может работать без .NET/mono)


Его минус в том что это кусок беты. Учитывая что даже виндовый дотнет проигрывает яве в перформансе - сомнительная затея.
>>640172>>640224
#328 #640151
>>640142
Честно говоря не знаю (никогда не работал), пока идея была создавать ссылки вида https://???.mp4

Сейчас основная концепция:
"Удобный просмотра фильмом на стационаром телевизоре с Android TV"

С DLNA я так понимаю Android клиент вообще нужен, а это не совсем то чего хотелось бы.
#329 #640172
>>640150

> Зато вот на сервере нужна неограниченная память


Где-то точно нужна будет не ограниченная память (если не удалять сразу после просмотра)
И уж лучше это будет на сервере чем на Android плеер с 8gb памяти
(плюс nexus player не поддерживать карты памяти)

> не гарантирует передачи данных по порядку


Как минимум отдельные файлы (серии) можно качать с разным приоритетом

> Его минус в том что это кусок беты


Так то он уже несколько месяцев RC1, скоро уже RC2, а там уже и релиз.
Сам работаю с CoreClr еще с первых бет, перевел все свои бэкенды на него с полного .NET - полет нормальный.
>>640189
#330 #640189
>>640172

>Сам работаю с CoreClr еще с первых бет, перевел все свои бэкенды на него с полного .NET - полет нормальный.


Ок. А теперь скажу по другому - допустим что я бомж/гость, у которого в наличии нетбук с 2 гб оперативки (1,5 которых под системой и прочим) и мобильным говном вместо процессора. Хочу такой, значит, посмотреть кинцо на телеке пока следующая серия качается.
А дотнет мне такой - погоди-ка челик, у тебя оперативка/батарейка не бесконечные, ты уж выбирай - стул с хуями или никакой.
К чему я вообще всю эту еботу написал - не надо тащить это говно на десктоп.
>>640210
#331 #640210
>>640189

> допустим что я бомж


Тогда скорее всего ты не являешься нашей "целевой аудиторией".
А вообще для этого случая есть пункт (2.3) "Как часть Android приложения".

Это кстати интересный кейс, можно было бы продавать доступ к уже настроенным серверам,
хотя вряд ли те кто пользуются торрентами, будет за что-то платить :)
>>640221
#332 #640221
>>640210

>Тогда скорее всего ты не являешься нашей "целевой аудиторией".


Откидываешь 2/3 целевой аудитории андроеда?

>хотя вряд ли те кто пользуются торрентами, будет за что-то платить :)


Ну так все умные люди уже давно на f2p модель монетизации перешли. Хош жрать говно - не плати и смотри рекламу. Не хош - ну будь уж так любезе раскошелиться.

>А вообще для этого случая есть пункт (2.3) "Как часть Android приложения".


Втройне хуевая затея. Тебе нужно одновременно качать >мб/сек, декодировать видео и слать его на телек. Пользователя сборщик мусора очень быстро порадует.
#333 #640224
>>640150

>дотнет проигрывает яве в перформансе


Можно немного proofs? На винде он разве не выигрывает по понятным причинам? А то у меня есть один знакомый латентный дотнетчик, работает на джаве, а когда один раз поделал что-то на дотнете сразу обосрался, но кончает радугой от C#, хочу его потралирвоать.
>>640251
#334 #640225
>>640137
Ни черта не понял.
1) Приложение под Android TV, или android как пульт?
2) Сервер, который скачивает чанки, отдает чанки, которые стримятся. Что это за пиздец будет?

Я вообще не против принять участие, но что-то как-то все мутно.
>>640243
#335 #640233
>>640137
Вангую ты обосрешься.
Тебе не нужен сервер, ты можешь локально выкачивать торренты нужный кусок и локально же этот кусок стримить на локалхост по тому же dlna, чтобы другие плееры его хавали.
>>640252
#336 #640243
>>640225

> 1) Приложение под Android TV, или android как пульт?


Есть такая приставка Android TV, у нее уже есть свой пульт.
Нужно для приставки (там стоит обычный Android 6.0) приложение написать.

> 2) Сервер, который скачивает чанки,


Сервер НЕ отдает чанки android клиенту, он выкачивает файл целиком и потому уже их стримит.
Android клиенту приходят HTTP ссылка уже на целиком скаченный файл.

> Я вообще не против принять участие


Попробуй прочитать еще раз описание
#337 #640251
>>640224
В гугле пруфы. Правда графики - всегда говёная вещь если показывать их человеку крутящимуся в этой области, вот например реальные пруфы:
ШINDOWS
https://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=plaintext&s=1
Божественная бубунта:
https://www.techempower.com/benchmarks/#section=data-r11&hw=peak&test=plaintext&l=6g6
>>640355
#338 #640252
>>640233

> Тебе не нужен сервер, ты можешь локально выкачивать торренты


Вообще-то я и так предлагаю сервер который будет локально запускаться на той-же винде.

При использование DLNA нам Android клиент не нужен.
Хотя у Android клиента есть преимущество:
1) проще первоначальная настройка
2) будет удобная навигация по файлам
3) просмотр описаний (взятых с трекеров) и управление закачкой

==========================================================
==========================================================
Вообще можно сделать два отдельных приложения:

1) Локальный сервер который стримет в DNLA (сдесь вообще не нужен Android) или через Android приложение.

2) Android приложение с навигаций/описание/управлением.
>>640359
83 Кб, 585x604
#339 #640342
Есть тут студенты без опыта которые готовые за еду работать?
Украина.
#340 #640355
>>640251
Говно твои пруфы, плеинтекст отдавать, охуеть. Давайте я тоже tcp сервер напишу, который будет отдавать статичный текст и мериться против чего-либо.
В шарпосервее дохуя абстракций на абстракциях абстракциями погоняет, еще и в модульном core.
Я конечно не удивлюсь, если кор в нормальном юзеркейзе проебет, но сравнивать его в указанном тобой как-то глупо ящитаю.
#341 #640359
>>640252
Никому твой локальнозапускающийся виндосервер не нужен будет.
Хочешь аналог попкорнтайма, так пили, но чтобы это все крутилось локально на девайсе.
На девайсе качаешь торрент файл, на девайсе получаешь данные от пиров, на девайсе показываешь в собственном плеере, либо рестримишь по какому то протоклу в уже установленные плееры.

Алсо, тот же битторрент клиент умеет выкачивать файлы последовательно и рестримить в плееры.
>>640387>>640403
#342 #640364
>>640400
#343 #640368
>>640342
Чё за еда?
>>640400
#344 #640387
>>640359
Ну спасибо за ссылку на готовый продукт, а в этом приложение есть прон?
Я правда думал не про глобальную базу фильмов, а конкетно под релизы парочки определенных трекеров.

В любом случае и для конкурентного продукта думаю найдется местечко.

> все крутилось локально на девайсе


А что делать с местом, на Google Nexus Player всего 8GB (из которых половина занимает система)?
В Google продуманные чуваки сидят, специально место урезали что бы только стриминг был.

Даже если как-то стримить "на лету", все равно нужна локальная базу "любимых" фильмов.
>>640478
#345 #640400
>>640364
>>640368
Около 10 бачей за приложение, моя помощь с дизайном.
Я не сильно шарю в расценках, но мне сказали что это нормально для начинающего.
>>640548
#346 #640403
>>640359
Кстати может, как пользователь, скажешь что тебе не хватает в Popcorn Time?
>>640478
#347 #640465
>>640342
Готов, если будешь няшить под хвост.
>>640505
#348 #640478
>>640403
Я его не юзал. Но шуму он наделал.
>>640387

> на Google Nexus Player всего 8GB (из которых половина занимает система)


Хранишь только те данные, которые тебе нужны в данный момент. Т.е. текущее место воспроизведения + 5 минут кэша. Это вопрос 500 мегабайт хорошего рипа.

> локальная базу "любимых" фильмов


Локальная база формируется только названием фильма и его магнет ссылкой, что требует аж 1 килобайт на фильм.
>>640490
#349 #640490
>>640478

> Хранишь только те данные, которые тебе нужны в данный момент


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

> Локальная база формируется только названием фильма и его магнет ссылкой


В таком виде локальная база вообще не нужна, если будет поиск по трекерам.
Нужны именно скаченные фильмы.

Если Popcorn Time заточен под стриминг, то с хранилищем у нас будет хоть какое-то конкурентное отличие.
>>640510
#350 #640505
>>640465
а ты няшный?
#351 #640510
>>640490

> ой подождите нужно хотя бы 100 mb скачать, идите чайку попейте


Ну а хули ты хотел? И рыбку съесть, и на хуй сесть?
Я еще раз говорю, локально пердолить сервер будут единицы, а свой собственный ты не окупишь.

И да, попкорн заточен под стриминг.
#352 #640548
>>640400
Приложение уровня засунуть сайт в WebView? Альфред это ты?
>>640564
#353 #640564
>>640548
Чего? В любом случае, это не Альфред.
>>640584
#354 #640584
>>640564
Ну а что еще можно сделать за 10 бачей.
>>640589
#355 #640589
>>640584
А сколько может требовать студент без опыта и толковой практики?
>>640622
#356 #640622
>>640589
Ну если его там будут именно учить то нисколько. Но в данном случае его учить не будут.
>>640640
#357 #640640
>>640622
Учить не будут, но практика и опыт который потом можно будет показать у него появятся, еще и деньги.
>>640668
#358 #640641
Сид и думаю, как в резюме засунуть опыт работы год и 4 месяца например?
1 год и 4 месяца опыта? Звучит как пизда.
>>640731
#359 #640668
>>640640
Ну я вот первую хуйню делал без опыта, но сделал, и получил вполне хорошие деньги.
#360 #640702
Эй котлинофаг, ты тут? Как мне передать просто Runnable в thread(), сигнатурка не подходит, или это by-design и там обязательно должна быть лямбда?

http://pastebin.com/Z0u1JEzn
>>640761
#361 #640731
>>640641
Округли до 3 года
#362 #640761
>>640702
1) Там есть куча промежуточных параметров,
либо называй имя параметра для лямбы
1.1.1) thread(name = "TestThread3", block = { keker.invoke() }).start()
1.1.2) thread(name = "TestThread3", block = keker).start()
либо вставляй вне скобок
1.2.1) thread(name = "TestThread3") { keker.invoke() }.start()
1.2.2) thread(name = "TestThread3") { keker() }.start()

2) Таки да, есть перевод лямбд в функциональные интерфейсы, обратное не разрешается.
Функция thread просто хелпер для создания, если нужны именно runnable, создавай через конструктор:
Thread(kek, "TestThread4").start()
>>640979
#363 #640883
>>640342
Напиши-ка на labamZ#biba1ANUSgmaie1$lPUNCTUMcqM"om
#364 #640937
>>640342
Иди ты нахуй с таким разводом.
10 баксов бля.
Я лучше сам кому-то из треда 10 баксов дам если что-то нормальное напишут.
Работу он предлагает. Просто иди в задницу.
>>640940
#365 #640940
>>640937
А сколько ты хочешь? пидор
#366 #640952
Качаю андроид студио. ДЕСЯТЬ БАЧЕЙ, ДЕРЖИТЕСЬ.
#367 #640979
>>640761
Спс, уже разобрался, я так понял метод thread не очень полезный, так как плодит постоянно анонимные классы, которые экстендяд треды.
#368 #641134
Как изменить состояние тулбара из фрагмента, если тулбар определён в активити?
>>641141
sage #369 #641141
>>641134
Вызвать метод активити.
#370 #641171
https://android.googlesource.com/platform/development/+/bbdfd7c347b4abc5094e890eb1fc2b48d9ff1d95/ndk/samples/native-activity
Поясните ньюфагу: как именно передается управление сишному коду в этом примере? Сишный код компилируется в .so, затем подгружается из жавы с помощью System.loadLibrary, после чего ищется функция с условленным именем (android_main) и вызывается? Так?
>>641178
#371 #641178
>>641171
Мне кажется первым вызывается метод ANativeActivity_onCreate, так как собственно это Активити и указанно как лаунчер в манифесте.
>>641183>>641191
#372 #641183
>>641178
А, действительно. Код по ссылке немного отличается от того, что у меня.
#373 #641191
>>641178
Но это не так важно. Меня больше интересует, запускается сначала жвм и подгружает so или управление непосредственно передается эльфу?
>>641195
#374 #641195
>>641191
Конечно сначала запустится JVM, точнее она никогда и не спит. А потом увидев какая хуйня метод main, которого нам никогда не увидеть подгрузит .so и сделает вызов в JNI
>>641202
#375 #641202
>>641195
Других путей получения активити нет? М.б. есть какой-нибудь IPC API
>>641295
#376 #641295
>>641202
Может быть дело происходит не в main, а в Context'е, там где есть доступ к ActivityManger'у и там он решат какие вызовы куда перeдовать и передает вызовы в JNI.
#377 #641455
Как задать соотношение сторон 16/9 у imageview через xml?
>>641460
#378 #641460
>>641455
PercentReplaytiveLayout свежей версии. width = 100%, apectRate = 177%
>>641461>>641490
#379 #641461
>>641460

> PercentReplaytiveLayout


PercentRelativeLayout
#380 #641490
>>641460
<android.support.percent.PercentRelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ImageView
android:id="@+id/image"
app:layout_widthPercent="100%"
app:layout_aspectRatio="178%"
android:adjustViewBounds="true"
android:src="@drawable/moscow_1"/>
<TextView
android:layout_below="@+id/image"
android:id="@+id/info_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Moscow" />

</android.support.percent.PercentRelativeLayout>

Картинка не появляется, а если app:layout_widthPercent="100%" убрать и добавить
android:layout_width="match_parent", то размеры остаются такими же
>>641515
#381 #641515
>>641490
теперь заработало, ебаная студия
116 Кб, 1440x1280
#382 #641826
Сап, анчоусы.
Посоветуйте источник знаний. Посмотрел все курсы startandroid, devcolibri, metanit, и даже что-то понял.
Но все подобные курсы топчатся на самых азах. Подкиньте более углубленный курс.
>>641835>>641899
#384 #641853
>>641835
Благодарочка
#386 #642049
используют ли местные эксперты butter knife?
>>642090
#387 #642090
>>642049
Нахуй это нужно, когда есть android-binding
#388 #642100
используют ли местные эксперты butter knife?
>>642101>>642112
#389 #642101
>>642100
лол норм лаг
#390 #642112
>>642100
Нахуй это нужно, когда есть android-binding ;)
#391 #642363
>>632324 (OP)
Пикрелейд андроид наяривает мороженку с говном? Весьма тонко.
363 Кб, 1456x982
#392 #642369
>>632324 (OP)
СПЕШАЛ ФО ЗИС ТРЕД
Ориджинал контент.
15 Кб, 430x496
#393 #642481
Антоши, есть диалог для установки времени - таймпикер, там можно задать с минутным шагом, но мне нужно, чтобы шаг был равен 10 минутам, как такое сделать?
И ещё вопрос: как для установщик даты - дейтпикера оставить только выбор месяца, без дня?
Благодарю.
>>642835>>642871
#394 #642485
Программач подкинь годного гайда по меню для Action-бара, хочется, чтобы оно всё время было свёрнутым, и открывалось по нажатию, а то всё, что нахожу работает, но пункты меню вылезают строкой, а не "коллапсируют".
93 Кб, 796x495
#395 #642596
анон, я не могу в архитектуру и не знаю где подчерпнуть знаний. Например когда испльзовать Activity а когда Fragment ну и так далее.
Я скачал приложение по доставке еды:
https://play.google.com/store/apps/details?id=com.eat24.app
и разобрал его. Так там 150 layout files 50 активити и блять чего только нет. smali хуй прочитаешь.
1)Где и как посмотреть на структуру проектов, понять как блять писать то нужно?

В одно конторе сказали что у меня есть критические ошибки в коде.
https://github.com/lectricas/fixedrec_android
вот мой говнокод.

2)Скажите, что там у меня не так.
Спасибо.
>>642651>>642653
#396 #642651
>>642596
Что они успели посмотреть, просто осhе много кода что бы взять и так сказать где там ошибка.

Ну короче единого гайда нет, главное правило использовать фрагменты для UI предпочтительней чем активити, активити могут упростить разработку навигации.
#397 #642653
>>642596
1) apktools + http://stackoverflow.com/a/5657474
2)
Леш, я что-то вообще не понимаю что твой код делает, где конкретно бизнес-логика/u]?
Тонный шаблонного кода, за которыми ни черта не разберешь (нет что-бы писать на Kotlin).
Тыкни меня хотя бы в то место где ты запросы к вэбу делаешь.
>>642658>>642666
#398 #642658
>>642653

>apktools


ну так о ни даст этих смали
>>642669
#399 #642666
>>642653
при чем здесь Kotlin вообще - хватит его форсить.
Как строить бизнес логику я не знаю.
Там же указаны название package-ей - тот что с вебом наверное называется sync.
И декомпилировать полностью не получится - лучше уж smali читать.
>>642683
#400 #642669
>>642658
В смысле? apktools как раз вы выдаст тебе каталог со всем smalli.
Хотя с dex2jar можно apk просто распаковать и скормить ему classes.dex
>>642721
223 Кб, 612x746
#401 #642677
например пикрилейтед - приложение похожее на мое.

https://play.google.com/store/apps/details?id=nl.sogeti.android.gpstracker&hl=ru
ссылка на маркет.

https://code.google.com/archive/p/open-gpstracker/source/default/source
исходники.
Хочется спросить нахуя так много файлов? Там еще есть по ТЫСЯЧЕ строк кода блять. А приложение делает всего нихуя. У меня гораздо скромней получилось еще и с синхронизацией и аккаут менеджерами всякими.
Так вот это называется бизнес логика или как?
>>642683>>642750
#402 #642683
>>642666

> при чем здесь Kotlin вообще


Ты просто еще маленький и не понимаешь что писать меньше кода это лучше.

> Как строить бизнес логику я не знаю.


Ну ты хотя бы отдели ее остальных классов, что бы спагетти не получались.
Погугли SOLID и конкретно Dependency Inversion почитай "чистый код"

> вебом наверное называется sync


На самом деле не очень это очевидно.
Да и вообще зачем ты тащешь это старье (AbstractThreadedSyncAdapter) из Android 1.5
Есть же JobScheduler / GcmNetworkManager?

> лучше уж smali читать.


Ну ок, если для тебя smali понятнее чем *.class

>>642677
Дизайн из начал 2010, давно я такого не видел
>>642773>>642789
#403 #642721
>>642669
и что делать со смали?
#404 #642750
>>642677
Это называется "жява и её идеология".
#405 #642773
>>642683

> Ты просто еще маленький и не понимаешь что писать меньше кода это лучше.


А по мне так он уже неплохо понимает, что нет смысла писать на языке, за который не платят.
>>642828
#406 #642789
Вы уже 3 трэда перетираете kotlin может уже хватит?>>642683
Про solid и его последний принцип я прочитал. Как его применить к моему приложению? Дайте кто нибудь исходники же нихкя не понятно без них. Ну пишем мы интерфейс и что. К какой заднице его прикручивать? Мне нужно то всего одно прилежение которое точно написано по канонам что бы даинуть дальше
>>642817
#407 #642817
>>642789

> solid и его последний принцип я прочитал


> Ну пишем мы интерфейс и что


чет не очень ты понял, иди книжек наверни по проектированию/паттернам, а то так и будешь даунить
>>643253
#408 #642828
>>642773
Как же вы доебали. С разговорами о работе в соответствующие треды и /wrk съебите, это тред о разработке. Как программисту знание нового языка с новыми парадигмами никому не помешает, а так же точно не уйдет в минус если вы на собеседовании с умным ебалом расскажите про какие нибудь вакуумные nonnullable типы и чем это ахуенно.
15 Кб, 430x496
#409 #642835
Антоши, ответьте на это, пожалуйста - >>642481
#410 #642871
>>642481
Поищи в документации про этот таймеикер что нибудь. Если не получится установит интервал 10 мин то пиши свой пикер
128 Кб, 810x714
95 Кб, 619x717
102 Кб, 1078x710
#411 #643186
Как залочить CollapsingToolbarLayout, чтобы не раскрывался, т.к. в данном примере вроде бы залочен, но тулбар как-то бажно раскрывается. Сначала не реагирует на движение пальца, а потом сам до конца раскрывается.
#412 #643217
суп, аноны, у меня есть идея игры под ведро, которую я с другом хотел бы реализовать в течении этого года. Поскольку мои знания тяжело даже базовыми назвать (почти до конца выучил ява кор, но потом по некоторым обстоятельствам забросил) хочу спросить у анона список технологий, которые предстоит нам выучить. Суть игры: 2d или 2.5d игра с видом сверху, машина едет по прямой(типа раннера) попутно обьезжая преграды и расчленяя капотом, всякими обвесами и оружием зомбаков собирая счёт и монетки.

Анон, подскажи, стоит ли делать в Unity или начисто можна писать или какие другие инструменты использовать, в идеале порекомендуйте ресурсы/книги где можно б их изучить.
>>643234
#413 #643228
Как сделать свой gson Deserializer с retrofit 2?
Пробую так:
Gson gson =
new GsonBuilder()
.registerTypeAdapter(City.class, new WeatherDeserializer())
.create();
return new Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create(gson))
.client(CLIENT)
.build();

но случается StackOverflowError, что делать?
>>643233
#414 #643233
>>643228
а почему ты не хочешь создать Model и подставить ее в new Gson.fromJson(Model.class...)?
>>643247>>643263
#415 #643234
>>643217
пиши лучше на Unity - можно будет сразу захуячить под ios
>>643240>>643252
#416 #643240
>>643234
посоветуешь ресурсы?
>>643260
#417 #643247
>>643233
там много массивов и они друг в друге
#418 #643252
>>643234
кстати что насчёт cocos2d?
#419 #643253
>>642817
ну кароч я почитал и понял что фреймворк сам нам говорит какие шаблоны использовать. А точнее их там 4 что ли. Главный это MVVM, где Activity это ViewModel например. Все происходит при помощи отправки сообщений и широковещательной рассылки - это еще 2 шаблона. Content Provider это позднее связывание и на счет него я не до конца уверен - эти ебучие URI вообще мне не нравятся. ORM хоть тупой и медленный но зато сахар и не нужно писать кучу какой-то хуйни. Так вот, где тут должна хранится бизнес логика? Зачем мне наворачивать паттерны если они не нужны? В общем поясните
>>643319
#420 #643260
>>643240
в общем ты еще школьник и тебе лучше начать с чего-то попроще. Попробуй поиграть в gmod с другом, полепить модельки и повеселится. Потом попробую наклепать что-нибудь на unity.
А вообще тебе в https://2ch.hk/gd/ (М)
>>643264
#421 #643263
>>643233
а понял, я думал Deserializer надо подключать прямо к ретрофиту d ,bkltht
#422 #643264
>>643260
спс, насчёт гарис мод не очень интересует, мне бы больше самому порисовать и покодить
#423 #643319
>>643253
Сегодня ты узнал больше, чем за все свои 12 лет жизни.

Прочитай "Code Complete" и через полгода приходи осудим еще раз.
#424 #643323
Посоны, в шапку также стоит добавить что поддержка 8 жабки под андроид вполне себе вырисовывается. Пруфы в интернетах имеются - google android openjdk 8
>>643327>>643339
#425 #643327
>>643323
Это не поможет старым версиям, конечно рано или поздно 8 бы появилась и так, она и так на лолипопе, но легче от этого не становится, так что retrolambda наше все.
#426 #643339
>>643323
Как будто от openjdk появятся нормальные лямбды, zip у стримов и что-то лучше @NotNull.

Можно сколько угодно заниматься самовнушением, но выход только один.
>>643341
#427 #643341
>>643339
Ну ты сам подумай, вот представь себя на месте жуна, который решил о бля ща короче пишем на котлине, а ему потом пистон вставляют.
>>643486
#428 #643375
Как лучше с AndroiBinding быть, ебашить ObservableField или экстендить BaseObservable и дописывать к аксессорам хуйню?
>>643378
484 Кб, 1280x850
#429 #643378
Отправил резюме на 8 вакансий и нихуя. Позвонили с одной, но мне контора не подошла, да и зп.

>>643375
Меня пугает то что я практически нихуя не понял. Обьяснись и дай ссылку на инфу если можно.
Тот андроид биндинг который я видел, односторонняя хуйня из xml.
>>643380
#430 #643380
>>643378
http://developer.android.com/intl/ru/tools/data-binding/guide.html
1) Observable Objects (A class implementing the Observable interface will allow the binding to attach a single listener to a bound object to listen for changes of all properties on that object.)
2) ObservableFields

И вот я думаю что лучше, похоже поля подходят для более простых объектов, иначе лучше ручками дописать.
Мам, где моя кодогенерация на аннотациях, ну маам!
>>643401
#431 #643401
>>643380
Спасибо. Слишком сонный осилить сейчас.

Но интересно можно ли эту штуку в проектах юзать и не будет ли в ней подводных камней.
#432 #643411
Привет котаны. Сразу к делу:
Уточнение: Я ниразу не программист, но налабать привет_мир, наполовину скопипастив думаю осилю. Так что не нервничайте.
Есть один вопрос:
Мне надо посылать одной хуитке команды с лопаты и читать что она там говорит на лопату. Мой хитрый план.
Берем Qt и прочую муть. И вот эту фигню, сразу ссылка на пример использования: http://www.modbusdriver.com/doc/libmbusmaster/examples.html#example2
Лепим в QtCreator ебло и логику, собираем, отправляем на телефон и радуемся.
Запашет ли эта библиотека под андроидом? Кьют то запашет, инфа около соточки.
150 Кб, 1088x1920
#433 #643423
первый опыт под адроид и вообще разработки UI, не кидайте в меня санными тряпками.

нужно сделать слайдшоу с двумя кнопками. сделал по демке http://developer.android.com/training/animation/screen-slide.html

но сейчас пришел к выводу, что OptionMenu + splitActionBarWhenNarrow -- днище, а не решение.

мне надо какой-то хитровыебанный лейаут и две кнопки? какой лейаут и как правильно выставить высоту? и еще бы titlebar убрать нахуй. анон помоги
>>643457>>652405
#434 #643457
>>643423
Сделай кнопки при помощи linear и framelayout.
Сделай background selector, чтобы кнопка нажималась.
Это самое гибкое решение.
>>643481>>643576
#435 #643481
>>643457
при помощи linear зачем юзать это ненужное баганое говно?
>>643655>>643657
#436 #643486
>>643341
Ребят, а здесь правда тусуются только школьники и безработные студенты?
>>643513
#437 #643490
>>632335
Двачую этого. Лучше java для детей, имхо
#438 #643498
>>633847
Ну вы же погромизды... А ещё у меня чайник потек и у тугосери планшет не играет. Он его об стул ебнул. Подскажите, как починить? На что нажать, чтоб все заработало? А то в мастерских меня нахуй шлют, негодяи!
#439 #643501
>>633732
Если хочешь чтобы графика была системная то никаких проблем, поддерживать можно безболезненно хоть с api > 4, но если менеджеры заебут с единообразным материалдезайном, навигейшн дравером и прочей хуйней, то это да, полный пиздец.
>>652410
#440 #643513
>>643486
Конечно правда.
#441 #643522
Подходит ли python для разработки приложение под андройд?
>>643660
#442 #643576
>>643457
спасибо, попробую вечером
#443 #643654
>>632638
Выкинуть это китайское говно и купить Pixel C.
#444 #643655
>>643481
Научись писАть.
#445 #643657
>>643481
Щито?
#446 #643660
>>643522
Неочень
>>643687
#447 #643687
>>643660
почему?
>>643985
#448 #643694
Парни скиньте хороший гайдов,курсов,статей и т.д. по CORDOV'е чтобы начать сразу на практике.
#449 #643881
Книгу из оп-поста скиньте, 45 баксов это для меня немного дорого.
>>645573
#450 #643985
>>643687
Ну едси ты скомпилишь его в байткод то может и норм, то опять же ты будешь сильно ебаться с версткой и тд. Если же он будет каким-то интерпритируемым, то зашивайся, приложение будет работать медленно. Пизудй на тостер там таким уже пояснили.
#451 #644070
Какой уровень знания java core нужен?
Прочитал head 1st java, могу скомпилировать из сосноли но не знаю как работает ИДЕ. Стоит ли заморачиваться на всяких сборщиках проектов итд типа ant, maven итд? Или просто отдаться ИДЕ и хуй с ним? Хотел сделать каких-то проектов под десктоп для опыта, но сильно вникать не хочется.
Надо ли заморачиваться с gradle и всей экосистемой андроида? Как-то неприятно не понимать что происходит за сценами.
>>644303
53 Кб, 867x661
38 Кб, 400x400
KOTLIN обновился до версии RC 1 #452 #644099
Господа открываем шампанское, Kotlin уже не beta, а самый настоящий Release Candidate.

Кто еще не приобщился советую не терять время, что бы к моменту релиза уже быть экспертом.
>>644222
#453 #644222
>>644099

> что бы к моменту релиза уже быть экспертом


Нахуя? Судя по всему, единственное место, где на нем пишут - Авито ну и сам джетбреинс.
>>644312
129 Кб, 480x800
135 Кб, 480x800
#454 #644252
Как достичь такого эффекта? Верхняя часть остаётся прокручиваемой.
>>644297>>652412
#455 #644297
>>644252
TabLayout?
>>644385
#456 #644303
>>644070
В любом случае с системой прийдется заморочиться, десктоп - нахуй, не сильно поможет. Ну и конечно хорошо понимать чо там в gradle происходит. Но это опционално и приходит после наворачивания тонны библиотек.
114 Кб, 766x514
#457 #644312
>>644222
А ты не догадываешься почему , нытик?
>>644316
#458 #644316
>>644312
Только за "fun" не буду даже смотреть в сторону этого языка.
>>644319>>644322
#459 #644319
>>644316
Двачую. Вот реально, это такой пиздец. Можно было бы нормально def сделать например.
#460 #644322
>>644316
А в чем проблема? Вас в детстве вчера fun обидел?

В Scala и Swift используется func и тут тоже самое.
>>644327
#461 #644327
>>644322

> В Scala и Swift используется func и тут тоже самое.


Func — нормально. Fun — пиздец.
>>644353
#462 #644353
>>644327
Аргументированно :facepalm:
#463 #644385
>>644297
Нижняя часть текста "ПРАВИЛЬНО" и кнопка перехода.
>>644704
871 Кб, 2560x1920
#464 #644677
Программач подкинь годного гайда по меню для Action-бара, хочется, чтобы оно всё время было свёрнутым, и открывалось по нажатию, а то всё, что нахожу работает, но пункты меню вылезают строкой, а не "коллапсируют".
>>644703
#465 #644703
>>644677
Странная у тебя хотелка. Дизайн дай.
Хотя думаю, ты хочешь, чтобы были точки, а потом по нажатию на точки, появлялись остальные кнопки. Делаешь эти точки отдельным пунктом меню в отдельном меню. При нажатии на их, инвалидируешь менюху и подставляешь другое меню с точками и остальными пунктами.
#466 #644704
>>644385
Ну, у тебя сами вопросы лежат в вьюпейджере. В фрагменте вопроса ебись как хочешь с разметкой. Т.к. там переход на ПРАВИЛЬНО программный, то либо меняешь визиблы у ПРАВИЛЬНО и пунктов ответов, либо через ОбжектАниматор плавненько возишь вьюхи за / на экран.
27 Кб, 559x165
69 Кб, 601x177
#467 #645194
Почему анимация конца ресайклвью начинается над тулбаром, а не под ним?
>>645254
#468 #645203
Вопрос по RX:
Я с сервера первым запросом получаю некий список, потом для каждого элемента из списка мне нужно делать дополнительные запросы.
В итоге сейчас это выглядит так:
API.getStringObservableFromServer(URL)
.map(... парсим стрингу, получаем список объектов ...)
.flatMap(Observable::from)
.map(... из каждого объекта получаем другой список объектов ...)
.flatMap(Observable::from)
.flatMap(o -> API.getStringObservableFromServer(o.URL))
.map(... парсим полученную стрингу ...)

Проблема в следующем: этапы выполняются синхронно из-за чего у меня сжирается хуева куча памяти (каждый API.getStringObservableFromServer возвращает String размером в мегабайт). Можно ли добиться полной асинхронности между этапами, чтобы сборщик мусора мог убрать лишние строки?
>>645293
#469 #645254
>>645194
Потому что ресайклервью располагается за тулбаром, а не ниже него.
#470 #645293
>>645203
От асинхронности обычно бывает только хуже (в неудачном случае у тебя все запросы одновременно выполняться).

По идее у тебя и так должна очищаться память у уже отработанных элементов.
Может у тебя утечка где-нибудь?
>>645304>>645323
#471 #645304
>>645293

> .flatMap(o -> API.getStringObservableFromServer(o.URL))


> .map(... парсим полученную стрингу ...)



На последнем этапе у меня около флетмап выдает мне около сотни запросов всего. Сначала полностью выполняется flatMap, а потом уже map.
Мне по-хорошему наверное надо сунуть в flatMap - API.getStringObservableFromServer(o.URL).map(...), да?
>>645323
#472 #645323
>>645304
>>645293
Понял в чем проблема.

Я использовал собственный пул потоков в 8 шт на subscribeOn и observeOn. В итоге в его очередь встали сначала сетевые запросы, потом обработка.
Поставил на сетевые запросы io(), в итоге получил 300 потоков в конце.
В итоге остановился на конфигурации - subscribeOn свой пул потоков для сетевых запросов, observeOn computation().
>>645351
#473 #645351
>>645323
Была похожая проблема io шедулер + flatMap овердохуя потоков.

Нагуглил совет в таком случает использовать flatMap(..., N)
Второй параметр (N) ограничивает максимальное кол-во потоков.
#474 #645573
>>643881
Бамп реквесту.
>>645806
#475 #645794
Сап, ведрач. Я хуев поел с этим фейсбуком. Я, блядь, к ним в офис уже ездил, Цукербергу ебало бить, но вахтер не пустил (а он чот пиздец громила). Благо живу недалеко и домашний адрес вышеупомянутого Марка знаю. Если не решу проблему до конца недели - поеду к нему домой его пиздить, пруфов не будет, читайте прессу.
Однако, харкач, у тебя есть шанс спасти товарища Цукерберга от предварительной госпитализации. Для этого ты должен помочь мне решить ну очень нубскую проблему.

Есть одна кнопка, по нажатию на нее, если человек не залогинен, вылетает окошко фб. Если залогинен - то действие 2.
Вот код:
http://pastebin.com/R4n5hj8x

Соль в том, что сдкинитиалайс прописан еще в онкрейте, но почему-то не видится. Дефолтная логин-кнопка работает безотказно прямо как твоя мамка

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
>>645905>>652419
#476 #645806
>>645573
Иди лучше интернеты читай, чем клянчи на книгу, которую положишь на полку.
#477 #645905
>>645794

> сдкинитиалайс прописан еще в онкрейте


В onCreate чего? Application? Activity? Ты в initialize передаешь id приложения (явно или неявно через ресурсы)?
>>645914
#478 #645914
>>645905
Активити, офк. На счет айди приложения не уверен, эту часть не я писал.
>>645972
#479 #645972
>>645914
Проверь в строках наличие facebook_app_id если инициализируешь FacebookSdk.sdkInitialize(getApplicationContext());
Если нет, то нужно передавать id вторым параметром.
>>646043
#480 #646040
А еще твой initialize мог не успеть отработать, в него можно коллбек передать.
>>646045
#481 #646042
Вообще чувак у фэйсбук из всех сдкашек лучшая документация, просто открой get started и по шагам пройдись.
>>646045>>652423
#482 #646043
>>645972
Да я, на самом деле, еблан. Профиль-то не записал никуда. Кто-то добрый написал метод fetchProfile, который я впихнул и все заработало.
>>646057
#483 #646045
>>646042
>>646040
Ошибка вообще была в онклике, профиль никуда не писался. Обнаружилось вообще только при построчном дебаге.

Ну вот, а я уже настроился в пол второго ночи ехать ебало бить :с
>>646057
#484 #646057
>>646043
>>646045
Там надо быть осторожней со сторонними запросиками, вовремя не обновишь и получишь банан.

Алсо чуваки что за фигня с плей сервисами. Нужно было включить аналитику, ну думаю хуле делов-то, два раза успешно встраивал, почему бы и на третий не получилось? Добавил все шняги в манифест, подключил грейдловский плагин сервисов, все ключики проверил в консольке. И тут БАЦ, пишет мол не хватает хуйни в манифесте. Хиты логаются локально, а дальше не идут. Смотрю на другом устройстве - всем все отправляется, но в логе все равно варнинг, мол не хватает хуйни в манифесте, у кого-нибудь было?
109 Кб, 688x451
#485 #646188
Анон вот я нихуя не пойму. Стал копать проекты что бы понять как делать свои и наткнулся на какой-то пизец. Прикрилейтед -
SettingsActivity Телеграма.
https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.javaПочему так?
Почему он не использовал switch?
Кто такой DrKLO? Почему он один пишет телеграм блять? Почему он еще живет в рашке если пишет такие проекты?
Кароче поясните где блять в этом проекте "БИЗНЕС ЛОГИКА".
Какие шаблоны программирования он использовал и как разобраться в этой куче говна?
#486 #646235
>>646188
Телеграмм довольно говнистый в коде, не лучший проект)))
#487 #646461
Нужен совет по авторским правам и публикации в ГП в общем, кто-нибудь может помочь?
>>646584
#488 #646476
>>646188
На телеграм забей на самом деле, там гений граничит с долбоебством. Т.е. в любом из двух случаев не читабельною
>>652425
#489 #646584
>>646461
Ну ты вопрос задай.
>>646934
#490 #646741
Как делать activity transition в ресайклвью? Делаю лисенеры в onBindViewHolder, ресайклвью не загружается, ерроров нет, что делать?
#491 #646916
Как лучше "экспортировать" картинки в галлерею пользователя,
что бы на новых девайсах НЕ запрашивать пермишен "write_external_storage"?
74 Кб, 2058x855
#492 #646934
>>646584
У меня небольшой обосрамс вышел с контентом, теперь боюсь выкладывать. Как они вообще проверяют музыку, пикчи? Бот как и на ютубе? Влияет ли на что то написаная в about инфа о лицензии? И последнее, если музыку не блочат на ютубе, какова вероятность что ее залочат на гп?
>>647187
#493 #647187
>>646934
Выложи, заблочат так заблочат, акк банить не будут сразу.
11 Кб, 870x151
#494 #647359
есть вот такой код:

ImageView ava = (ImageView) view.findViewById(R.id.avatarka);
ava.setImageURI(Uri.parse("https://pp.vk.me/c629127/v629127625/2038f/7n8YdB8cIUY.jpg"));

выдает вот такую ошибку:

I/System.out: resolveUri failed on bad bitmap uri: https://pp.vk.me/c629127/v629127625/2038f/7n8YdB8cIUY.jpg

ЧЯДНТ и как получить пикчу правильно ?
>>647379
#495 #647379
>>647359
Заюзать Picasso.
Каким хуем оно тебе с ури подтянет картинку из интернета?
>>647385>>647407
#496 #647385
>>647379
Хотел было написать про то, что гуглы могли бы и осилить написать imageView, умеющий грузить картинку себе из сети, ведь это одна из самых распространенных задач, но вспомнил, что они такой уже написали, грузящий через volley.
>>647400
#497 #647400
>>647385
ИмейджВью это вьюха, она и не должна уметь грузить из интернета.
Есть же вроде стандартный какой-то имейджлоадер. Но я его даже не юзал никогда.
#498 #647407
>>647379
Как правильно вытянуть картинку именно из вк? Я только учусь
>>647409>>652602
#499 #647409
>>647407
Какая разница откуда? Просто прямую ссылку на картинку в пикасо вбей.
>>647423
#500 #647423
>>647409
Я про пикасу не слышал даж. Дело в том что имейдж я получаю через вкАпи. Но спасибо за совет. Я погуглю.
#501 #647509
аноны, кто может пояснить за архитектуру. У меня есть приложение да там сверху оно лол которое сука из говна сделано, хочу переписать а как - хуй его знает. Кто может помочь опытый в двух словах описать что да как использовать?
#503 #652405
>>643423
я сейчас пришел к решению делать все элементы кастомными, ибо нехуй. Табы стали кнопками с кастомным фоном в linear layout, тулбар закастомил для своих элементов управления. Советую делать так же
#504 #652410
>>643501
материал , к слову, удобен и хорош. Придрочиться и на конвейер
#505 #652412
>>644252
фрагменты ?)
#506 #652419
>>645794
чекни за вызов логина, он может быть не там, где нужно и как следствие - не триггериться
#507 #652423
>>646042
дерьмо полное, нихуя не расписано за кастомные фб кнопки, в рот их ебал с их login манагером. Скушали у меня чуть ли не день времени на кастомизацию кнопки
#508 #652424
>>646188
быстрее чем свич, вроде как
#509 #652425
>>646476
ну, я вроде как помнится, читал тамошний код, не то чтобы совсем треш
#510 #652602
>>647407
прочитать vk api
#511 #657134
>>632324 (OP)
Чуваки , объясните нахуя нужеен RxJava, чем лучше EventBus. Только нормально, для дауна. Хули сейчас все с этой RxJava носятся
#512 #657140
>>632324 (OP)
В Яндексе бля все на RxJava помешались, пиздец. Хули, нахуя, не пойму. Это же извращение пиздец
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 3 марта 2016 года.

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

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