Этого треда уже нет.
Это копия, сохраненная 18 мая 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
51 Кб, 600x300
Разработка под Android тред №17 #714032 В конец треда | Веб
Ну нихуя ж себе, они релизнули вторую студию, теперь ждем бекпорта джавы 1.8.

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

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

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

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

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

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

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

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



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

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

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

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

Пишите в треде что добавить.
36 Кб, 671x514
#2 #714037
Есть два вьюпейджера, один(вертикальный) находится в другом(горизонтальный)
как настроить тоучлистенеры чтобы при скроле влево-вправо листался горизонтальный вьюпейджер, а при скроле вверх-вниз - горизонтальный ?
и хотелось бы немного разяснений услышать про onInterceptTouchEvent
Помогите разобратсья плз.
Уже наверное 4ый день бьюсь (
Вертикальный вьюпейдер развернут через текст трансформпейдж. И ловится движение по горизонтали и меняются координаты(пикча).
Можно ли в этом интеррупте вылавливать движения по горизонтали и отдавать их как то вьюпейджеру родителю(горизонтальный) ?
>>714042
#3 #714042
>>714037
Да похуй всем на твои вложеные виьпейджеры, нагородил какой-то изврат, а мы должны разбираться.

А мне вот надо делать новый пост про Kotlin, но мне лень :|
>>714094
#4 #714051
Как блять джаву быстро подтянуть, чтобы можно было после работы приходить и задрачивать. На работе пишу код на андройде, по джаве нихуя толком не умею делать, общий опыт программирования курсы пол года и все
>>714056>>714184
#5 #714056
>>714051
Что ты там подтягивтаь собрался? Пиши свой бекенд на спринге, так подтянешь.
>>714058
#6 #714057
Выручайте братцы, как собрать этот мультидекс, получаю вот такую бяку, когда пытаюсь собрать проект под pre-Lollipop:

Error:Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded (9 times)

Error:Error converting bytecode to dex:
Cause: java.lang.RuntimeException: Translation has been interrupted

Error:Execution failed for task ':app:transformClassesWithDexForProdDebug'.
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

Как вылечить, отсыпать больше памяти, где?
>>714097>>722310
#7 #714058
>>714056
я о спринге только слышал, написание кода у меня сейчаст это задрачивание людей на двачах, в жизни и стаковерфлоу. Я в ООП даже не могу нормально
>>714059
#8 #714059
>>714058
Тогда как пишешь на андроиде? Говно какое-то? Тогда иди проходи курсы на курсере и юдасити для совсем днищ.
>>714060
#9 #714060
>>714059
Курсам благодаря и пишу научился там всякой хуйне. Но юдасити годное только про разметки, про код вообще полную хуйню несут мне не нравится
>>714166
#10 #714094
>>714042
покажите хотябы как регулировать тоучлистенер если во вьюхе есть другая вьюха
#11 #714097
>>714057

>OutOfMemoryException


>это же очевидно как это решить нужно дать системе еще пару гигов памяти!!!!



Как хорошо что есть куча индусов с такими же проблемами.
118 Кб, 774x897
#12 #714098
Устанавливаю андроид студию под линукс, гляньте что он хочет
>>714107>>714141
#13 #714107
>>714098
Какая жаба стоит? Какой дистрибутив? И да, кажется он не может найти X Window System, скочай через свой менеджер пакетов.
#14 #714110
>>714107
Дебиан
>>714116
#15 #714113
>>714107
Кеды юзаю, есть еще гном
>>714116
#16 #714114
>>714107
ОпенЖДК
>>714116
#17 #714116
>>714114
>>714113
>>714110
Вы че там охуели, или ты один человек?

1) Поставь нормальную 8 с сайта оракла, могут быть траблы;
2) У меня на убунте все было ок сразу, иди нахуй;
3) Пошурши что за x11 такой, установи;
>>714123
#18 #714123
>>714116
Да это я, кек
sage #19 #714141
>>714098
Прыщеблядки соснул :)
>>714146
#20 #714144
В тред врывается абсолютный НОЛЬ! И буду задавать вопросы.

Есть 1 кнопка. Надо сделать из нее картинку. Но так чтоб без имэйджботтон. Как сделать ?
#21 #714146
>>714141
Нет, я не сосал, я покушать принес
#22 #714148
>>714144
android:background
setBackground(...)
#23 #714149
>>714144
почему имеджбаттон нет?
На любой или почти любой вью можно прописать onClick
>>714152
#24 #714150
>>714144
Просто делаешь ImageView, а на него уже цепляй обработчик.
>>714152
#25 #714152
>>714150
>>714149
Я уже просто примотал к ней функций. И не уверен что смогу написать их снова.
>>714157>>714198
#26 #714157
>>714152
Подумой, не нужно фиксироваться на Button, очень вероятно что все действия что ты к ней прицепил будут работать и с обычным View. не нужно себя ограничивать понапрасну. На краняк можешь прицепить Drawable через setCompoundDrawable
>>714159
#27 #714158
И никто не хочет сделать самое простое приложение по доставке. Типо новой почты без прибамбасов. Тупо чтоб вход и описание?
>>714174
#28 #714159
>>714157
Сложно. Пойду погуглю. Спасибо.
#29 #714166
>>714060
А шапка тебе не подходит?
>>714457
#30 #714174
>>714158
Заплачу!
>>714175
#31 #714175
>>714174
Понятно что заплатишь, лол.
353 Кб, 2560x1662
#32 #714184
>>714051
Твой пост просто надо в красную рамочу и сохранить.

Что бы потом тыкать всяких "знаю наизусть java core, есть 5 приложений в GP, сделал 100 тестовых заданий"
и при этом не могу устроится даже стажерами за еду.

А такой долбоеб как ты, уже деньги получает за свой говнокод, не знаю даже джавы.
>>714201>>714442
#33 #714198
>>714152
просто где объявляешь вью и кастинг на баттон делаешь, меняешь на имеджвью
#34 #714201
>>714184
да хуле я долбаеб я никогда кода не писал, пол года на курсы походил и все, это может они долбаебы)
#35 #714204
Кто сделает за деньги приложение?
#36 #714367
Подскажите пожалуйста, как ввести систему учетных записей. Чтоб по логину и паролю можно было только войти.
>>714374>>714416
#37 #714374
>>714367
Войти куда? И где регистрироваться? И что вообще ты хочешь? Подробнее распиши, что ли
#38 #714377
Люди, хочу управлять процессом закрытия приложения. Не чтоб нажал back и ждешь пока система соизволит, а чтоб ткнуть exit и все уверенно потухло (тушение своих сервисов я к этому приобщу). Гугл говорит в основном или "нахер оно тебе надо, пусть система все делает сама", или советуют finish, или killProcess.
Первый вариант не устраивает очень
Второго пробовал достичь через static boolean exitOrder, который по нажатию задается, а потом во всех Activity в onResume { if(exitOrder) finish(); }. В результате оно выходит из всех в backStack, из корневого, процесс остается висеть, флажок, соответственно, тоже, и открыть прогу уже нельзя. Херня, короче
А после killProcess приложение считает, что ее насильственно убили, это как-то непорядок и надо ее восстановить (как я понял из гугла). Восстанавливает, и она вылетает по еще одной херне, но это уже другая история.

Короче, что тут можно сделать?
#39 #714378
>>714377
Допустим, у сервисов есть флажки, которые говорят воскресать ему или нет. Может у Activity тоже что-то такое? Очень хочу, чтоб дохло по взмаху руки, и уже не вставало без команды
#40 #714385
>>714377
Зачем?
>>714472
#41 #714416
>>714367
Используй Google OAuth (авторизация по гугл аккаунту телефона), в android это из коробки.
sage #42 #714441
>>714144

> В тред врывается абсолютный НОЛЬ! И буду задавать вопросы.


> Есть 1 кнопка. Надо сделать из нее картинку. Но так чтоб без имэйджботтон. Как сделать ?


В первую очередь ты ноль в умении формулировать вопросы. Уёбывай отсюда и не возвращайся, потому что как только ты научишься, тебе будет достаточно гугла для твоих энтрилевельных вопросов.
#43 #714442
>>714184
Откуда вообще такие проблемы с трудоустройством? Я сам не пытался ещё никогда, так что интересно будет послушать.
#44 #714457
>>714166
да подходит шапка, но нудно в реактивном темпе все это усвоить. Думал может еще кто что подскажет
#45 #714467
Аноны, кто знает че и как ? Сохраняю объекты, что потом достать иъ и восстановить в listview но никак не получается это сделать
Вот как сохраняю:
http://pastebin.com/DSfFFyED
Вот как достаю это:
http://pastebin.com/gcH3MewB
Как теперь построить listview заново?
>>714468>>714485
#46 #714468
>>714467
Че это за говно? Нахуя ты в синглтон сохраняешь?
>>714469>>714492
#47 #714469
>>714468
не в синглтон, смотри внимательнее
#48 #714471
Вкатывайтесь в телеграм конфу, помощь 24/7.
https://telegram.me/AndroidChan
#49 #714472
>>714385
На самом деле, такое у меня ТЗ.
Но в целом, я не могу понять почему в том же ВК 2.7 это заросто сделали, как и в куче других приложений с кнопкой выхода, а мне, значит, система запрещает. Не может быть, чтобы это было нельзя сделать
>>714473
#50 #714473
>>714472
Я напримре нигде не видел что бы так было. Расковыряй приложение где такое видел.
>>714474>>714476
#51 #714474
>>714473
чем можно нормально расковырять приложение?
>>714484
#52 #714476
>>714473
Opera mini 7.6.40234
jasmine IM 5.5.1
ВК 2.7.6
Да, конечно, сейчас совсем не модно пилить кнопку выхода, так что нигде и нет. А с меня требуют поддержания этой старой традиции
>>715266
#53 #714484
>>714474
Да куча тулзов, вот например:
http://ibotpeaches.github.io/Apktool/
#54 #714485
>>714467

> никак не получается это сделать


Нафиг ты этот код скинул, я так понимаю в нем ошибок нет?
Как ты листвью изначально строишь?
>>714486>>714492
#55 #714486
>>714485
adapter = new ListAdapter(getApplicationContext());
buttonsListView = (ListView) findViewById(R.id.customListView);
buttonsListView.setAdapter(adapter);
Вот так
>>714489
#56 #714489
>>714486
Бля, а где дата из адаптера? Или она по дефолту строится?
>>714492>>714494
#57 #714492
>>714489
>>714485
>>714468
Какие люди нервные, кошмар
>>714500
#58 #714493
>>714377
Попробуй Activity.finishAffinity(...)
#59 #714494
#60 #714500
>>714492

>MySingleton.getOurInstance().getButtonToNotifications()


За такое убивают нахуй.
>>714505
#61 #714505
>>714500
Да че ты доебалсяб либо говори как правильно делать либо не пизди.
>>714510
#62 #714510
>>714505
Что правильно, ты лучше скажи что ты там вообще делаешь? Потому что лично мне понятно нихуя, какие-то кнопки в синглтоне, ты там крокодилом ставишься?

>MySingleton.getOurInstance().getButtonToNotifications()


Вот что это такое, какой у этого тип?

>SpinnerAdapter внутри ListAdapter


Нет ты точно ебанутый, почитай как делать свой адаптер.
>>714512
#63 #714511
>>714032 (OP)
Подскажите, реально ли разрабатывать под ведро на мелком ноуте типа http://ogo1.ru/market/noutbuki/158030-Lenovo-IdeaPad-100-14IBY-N3540?sample=

денег вообще нет, разрабатывать очень хочется, осваивать там пока в метро еду, вот это все.
#64 #714512
>>714510
Динамическое создание кнопок и добавление их в увидомление делаю. Спиннер адаптер отдельно лежит. С чего ты вообще взял что он внутри
>>714517
#65 #714513
>>714511
накатываешь линукс минт и можно делать небольше проекты, но лучше 4 гб оперативы
#66 #714515
>>714511
Ебать конские цены за это говно.
>>714516
#67 #714516
>>714515
Ну так а сайт как называется?
#68 #714517
>>714512
Динамическое создание кнопок? Ты там реально объёбаный.
>>714519>>714528
#69 #714519
>>714517
а хуле тебе не нравится?
#70 #714525
>>714511

> на мелком ноуте


> 14''


Я вообще на 13'' макбуке работаю 80% времени и мне норм.

Память только прокачай до 4 хотябы
>>714531
#71 #714528
>>714517
Если у него реально такая задача, то почему бы и нет? Ему, предположим, приходит конфиг с сервера, какие кнопки показывать с каким текстом и условный идентификатор того, что эта кнопка делает.
982 Кб, 972x1216
#72 #714530
>>714032 (OP)
ОП-хуй, куда лоли дел?
>>715303
#73 #714531
>>714525
Ты на макбуке работаешь, а там днище.
>>714533
#74 #714533
>>714531
Долбоёб в треде, все на Asus
>>714535
#75 #714535
>>714533
хех
#76 #715052
>>714032 (OP)
пацаны хелпаните
при работе в студии на диске С создаются несколько файлов по 2 ГБ из-за чего система жутко тормозит
как это фиксить?
знакомый разраб посоветовал юзать эмулятор genymotion, потому что дефолтный эмуль в студии у меня пизда как лагал
кто пользуется этим и может пояснить за эту штуку?
#77 #715056
>>715052
и че при попытке написать просто ответ мне пишет, что капча невалидна?
#78 #715076
>>715052
SSD
И еще новый эмулятор вроде четкий. Ну мне так показалось.
#79 #715266
>>714476

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


Тупо делай finish и всё. В тз ведь не сказано, чтобы процесс убивался?
>>715267
#80 #715267
>>715266
Сказано... Чтобы убивалось и приложение и сервис
>>715268
#81 #715268
>>715267
Это не равно убийству процесса. Делай finish и останавливай сервис, вот и всё.
>>715269
#82 #715269
>>715268
Ну сервис я закрывать умею. Просто тут в чем разница. Можно нажать просто назад и получить свой finish. Приложение немного повисит, сервис останется жить и будет воскресать. А есть кнопка exit, которая должна оправдывать свое наличие, все тушить, чтоб убирать все бесследно
>>715272
#83 #715272
>>715269
По кнопке ты делаешь finish + остановку сервиса, что тут непонятного-то?
>>715273
#84 #715273
>>715272
Не, это понятно. Просто кнопка должна быть чуть убойнее, чтоб приложения след простывал
>>715274>>715277
#85 #715274
>>715273
Да ты заебал, сделай уже system.exit(0)
>>715275
#86 #715275
>>715274
пробовал
#87 #715277
>>715273
Блядь, от тебя этого никто не требует. Требуется закрытие приложения и серивиса. Никто в здравом уме не заставит тебя убивать процесс приложения, тем более в 2016.
Выдумал блядь себе задачу и ебёт мозги всему треду теперь.
>>715278
#88 #715278
>>715277
В здравом уме, ключевое слово
#89 #715303
>>714530
Не заметил.
#90 #715440
Есть файл в вебе формата CSV.

Представляет из себя простую таблицу с двумя столбцами из слов.
Выглядит как-то так:

кококо покпок
копко логор

Вопрос:

как это парсить и занести в приложение?
Оно должно само скачивать этот файл и заносить куда-нибудь (массив, стринг, это уже не важно).
#91 #715455
>>715440
Берешь и просто без задней мысли скачиваешь и парсишь.
Гугли как скачивать файлы, парсить csv и д.р.
>>715533
#92 #715459
>>715440
Тебе нужен:
ICSVParser csvParser = CSVParserFabric.createCSVFileParserInstance();
ICSVDocument doc = csvParser.parseFromURL("2ch.hk");
>>715533
10 Кб, 313x111
#93 #715479
>>715440
Кажется это работа для Kotlin-man.

Вот так, легким движение руки, у тебя получается список из кортежей (ключ, значение):
[(кококо, покпок), (копко, логор), (...), ...]
>>715533
#94 #715533
>>715455
>>715459
>>715479
Спасибо, ананасы.

Думаю, если я в тестовом задании на работу напишу на котлине, по голове меня не погладят
>>715568
44 Кб, 471x559
#95 #715544
День добрый, аноны, нужны ваши советы по поводу реализации.

По центру экрана будут две картинки, под ними - две стрелки для смены картинок.

Можно как-то реализовать в центре CardView, сделав при этом две его половины кликабельными (чтоб каждая вела на свою отдельную активити или фрагмент, хз как лучше)?

Как лучше реализовать эти стрелки? Это что-то вроде табов, только делается стрелками (при этом анимашку от табов было бы здорово подключить).

И собственно, как в целом лучше? Сделать это все как-нибудь фрагментами или активити тоже пойдет?

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

Примерная схема на моем медскилзе в пейнте.
#96 #715547
Как вы считаете, что имеет в виду работодатель под
"возможность корректно завершить приложение"?

Мне казалось, что простая кнопка назад с этим достаточно неплохо справляется.
>>715566>>716166
#97 #715563
>>715544
Ну тут простой вьюпейджер, у него есть метод установки текущей страницы с анимацией перелистывания.
#98 #715566
>>715547
Может сервисы хуервисы по закрывать, ресурсы освободить какие.
#99 #715568
>>715533
Это тестовое задание на работу андроид девом? И ты пришел сюда с этим вопросом? Не удивлюсь, если тебя возьмут.
>>715796
#100 #715796
>>715568
это часть задания.

>Не удивлюсь, если тебя возьмут.


Надеюсь, лол.
>>716238
#101 #715978
>>715544
мб viewflipper
#102 #716118
Анон,есть два стула.На одном Retrofit дроченный,на другом-дефолтная java-либа.В ближайшее время предстоит за кратчайший срок запилить клиент-серверное приложение,что посоветуете использовать?Какие подводные камни?
>>716121
#103 #716121
>>716118
Retrofit, no exceptions.
Самый быстрый и надежный способ. Проблемы возникнут если у твоего бекенда кривое апи, но это все преодолимо, куча вещей из коробки.
>>716574
#104 #716155
Аноны, кто работал с VK SDK, там есть готовое решение для работы с сообщениями в реальном времени, или необходимо самому подключаться к лонг пуллу и что то с ним делать?
#105 #716157
Ну что, готовы на Swift переходить? :)
>>716159
#106 #716159
>>716157
даже если так будет, то ой как нескоро
#107 #716164
>>715544
Тольо фрагментами, с активити будет пролаг при создании новой активити. Как сделать? Ну, лол, легко. У тебя где-то в БД или кэше хранится лист карточек и для каждой карточки у тебя свой фрагмент, при этом структура одна и та же, так? Значит крепишь к стрелкам коллбэк к активити с указанием позиции в листе соответствующего объекта, который описывает текущий фрагмент. А активити обрабатывает эту хуйню - реплейсит фрагмент на такой же, но с другими объектами, и при реплейсе вызывает нужную тебе анимацию, какую напишешь. Добавишь ещё проверку на первый-последний элемент, чтобы стрелки гасить.
А что должно показываться при клике на половинки кардвью, я так и не понял. На всякий случай советую не тупить и написать онкликлистенеры для этих двух картинок, которые показываются, и там можно что угодно делать.
>>716982
#108 #716166
>>715547
Сделай кнопку выход, которая будет Activity.finish() вызывать, ололо.
#109 #716237
Слушайте, у меня ничего не наебнется, если я установлю Студию не в папку по дефолту, а в другую, которую сам создам? Как по канону лучше поступить
#110 #716238
>>715796
Слишком просто?
#111 #716423
Анон, напомни. Версия SDK, на которой я пилю приложение и версия SDK у AVD обязательно должны совпадать?
>>716441
#112 #716441
>>716423
Что ты подразумеваешь под версией SDK? Есть Sdk Tools, есть Platform-Tools, есть Build Tools. Могут быть разными ничего страшного.
>>716450
#113 #716442
Можно ли схитрожопить и заставить elevation работать на pre-Lolipop ?
>>716451
#114 #716450
>>716441

>Что ты подразумеваешь под версией SDK


Выбор, минимального SDK, когда нажимаю Create New Project и SDK Tools, когда в SDK менеджере качаю необходимые компоненты.
У меня тут просто эмулятор не запускается никак, я уже заебался и не знаю, на что подумать
>>716461
#115 #716451
>>716442
app:elevation?
>>716479>>717375
#116 #716461
>>716450
Самое интересное, что создается и висит процесс emulator, но нихуя не запускается.
После нескольких попыток, у меня уже 6 процессов emulator висит. Может, кто сталкивался или знает, как пофиксить?
У меня тут интеловский проц. и интеловская видяха на ноуте
>>716471
#117 #716471
>>716461
Ну из очевидных вариантов проверь включена ли виртуализация в биосе. Попробуй genymotion поставить если ничего неполучается с офф эмулятором
>>716474
#118 #716474
>>716471
Виртуализацию уже чекнул - работает.
Оф. эмулятор уже такой же кошерный, как и дженимоушн, да еще и фичи бесплатные, так что хочу именно его
>>716483
#119 #716479
>>716451
Хах, а ты смешной.
#120 #716483
>>716474
Это не может быть проблемой, у тебя точно новый эмулятор? Я вот запускаю проект с минсдк 17 скомпиленый под 23 с таргетом на 22, на тулзах 23 на эмуляторе 24rc.
>>716485>>716488
#121 #716485
>>716483

> target 22


Лень с пермишенами ебаться?
>>716504
#122 #716488
>>716483

>у тебя точно новый эмулятор


Да, только-только Студию последнюю скачал.
Ох, еще ни разу не было, чтобы все поставилось с нуля без пердолинга, сколько ставлю Студию.
>>716521
#123 #716492
>>714032 (OP)
Зачем нужны retainfragment'ы если есть те же лоадеры из коробки, или они используются в принципиально разных вещах?
>>716499>>717228
#124 #716499
>>716492
Лоaдеры хороши для операций чтения (immutаble):
- их можно вызывать сколько угодно раз (при каждом повороте)
- данные в них можно кэшировать

Retаin фрагменты нужны, когда у тебя "одноразовая, меняющая операция", типа создание поста на сайте.
У нее есть начало, прогресс и фиксированный конец.

Ты бы не хотел, что бы эта операция повторялась при каждом configChаnged (или кэшировалась).
Так что их обычно это делают через retаin-frаgment + АsyncTask.
>>716510>>716607
#125 #716504
>>716485
Мне за это не доплачивают, и времени не выделяют. Скажут сделать сделаю без проблем, только время + деньги.
#126 #716510
>>716499
понятно, спасибо
23 Кб, 153x218
#127 #716513
Почему хуево отображаются иконки?
Каждая находится в папке, в которой 2 варианта xxhdpi и xxxhdpi. Отрисовываются через PrimaryDrawerItem.withIcon
>>716611>>716775
#128 #716521
>>716488
Короче, спустя 2 часа таки пофиксил. Небольшие костыли, но все же.
Короче, переключился на Dev канал обновлений, обновил студию до 2.1, обновил SDK и подтянул в SDK все обновления, включая Preview (правда, сколько бы я их не ставил, два обновления таки не отмечаются галочками. У всех так?)
#129 #716574
>>716121
Благодарствую
#130 #716591
На чем писать и комилировать консольные эльфы для андроида?
>>716593
29 Кб, 1001x289
#131 #716592
и чё ниуого не появилось проблем с сегодняшним апдейтом?
#132 #716593
>>716591 IAR ругется н синтаксис в библиотеках
#133 #716607
>>716499
Почему мне кажется, что ретаин фрагменты - самый дичайший костыль андроид сдк?
>>716619
#134 #716611
>>716513
Ну видимо слишком низкого разрешения они.
Да и они довольно легкие, пройдись инкскейповским векторизатором, получишь svg на выход.
>>716764
#135 #716619
>>716607
Сынок, а ты хоть знаешь как нам приходилось выкручиваться до появления фрагментов.
9 Кб, 337x42
#136 #716764
>>716611
Я так понял svg он не кушает
>>716942>>717062
#137 #716775
>>716513
Что за мониторинг?
#138 #716778
Антоны, помогите.
Нужно написать простейшее приложение на андроиде - страничка логина, потом простейшая форма постинга с тремя элементами. Данные из формы отправляются на сервер, всплывает окошко с текстом и обратно на страничку постинга. Вообще никаких наворотов, все просто донельзя.
Сервер spring mvc, spring security, уже написан.
Тыкните носом в какой-то гайд для чтобы очень быстро въехать в тему, сгенерировать проект и накидать формочку.
Пишу на яве, андроид мне не нужен, но так получилось что надо быстро сделать такую хрень.
#139 #716798
ORM или sqlite или realm?
кто чем пользуется?
Если ORM: мне приходит json я его разбираю на модели и сохраняю в бд, то с sqlite я буду сразу в бд закидывать json? и при чтении разбирать данные?
>>716837>>716857
#140 #716835
сап андраны
Простое приложение, один запрос, один json и листвью. Как к этому захуярить тесты? Как это вообще работает, что нужно тестировать, как это выглядит в андройде? Знаю только, что есть что-то типа JUnit и все. В гугле только либо assert 2+2 =4, либо какие-то там эти ваши фреймворки.
Накидайте годных статей или может своими словами объясните, please
>>716853
#141 #716837
>>716798
В прошлом треде, то же хотел определиться.
С одной стороны ormlite не обновляется уже 3 года, с другой он делает все что мне надо
с приемлемой скоростью и там не надо ебаться с потоками/закрытием.

Тк в realm еще и нет поддержки robovm, то решил так и остаться на ormlite.
>>718436
#142 #716853
>>716835
Тебе UI тесты или unit?

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

В unit тестах нужно тестировать то что:
1) может содержать ошибки или велика вероятность того что сломается
2) до конца не понятно как работает (стороннее апи)
3) не понятно как правильно (размытые бизнес требования)
4) редко переделывается (ты же не хочешь постоянно тесты переписывать)

Чаще всего это "бизнес логика"
#143 #716857
>>716798
sqlite + cupboard
#144 #716942
>>716764
9-pinch гугли.
>>717062
#145 #716967
Как сделать long polling соединение с okHttp? Нихуя толкового не гуглится
#146 #716982
>>716164
Я вроде как понял тебя, но не очень представляю как сделать это коллбэками именно в плане кода.

Можешь вкинуть какой-нибудь простой пример?
Например, во фрагменте один текствью и все фрагменты будут банально отличаться по содержимому этого текствью.
#147 #717062
>>716764
Нахуя?
>>716942
Студия умеет импортировать svg в свой xml vector drawable формат.
#148 #717070
На NDK скомпилировал простейший эльф:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#define__lint__
#define __symbolrename(x)

int main()
{

printf('%i',2);
return 0;
}

закинул на флешку и попытался запусить через adb.
выдает Segmentation Fault. Как это исправить?
>>717511>>717516
#149 #717228
>>716492
Асинктаск через лодеры ты не сделаешь нормально, например, при повороте экрана лодер пересоздастся.
#150 #717375
>>716451
он самый
#151 #717511
>>717070
Архитектуры сравни, что они одинаковые
>>717513
#152 #717513
>>717511
Разобрался уже дело было в переносе строки
#153 #717516
>>717070
Почему апострофы в printf?
>>717519
#154 #717519
>>717516
в этом тоже
#155 #717526
Я хочу перенести сайт на приложение, как сделать, чтобы сайт работал без интернета? Чтобы просто была база данных и все.
#156 #717553
Есть какой-нибудь безболезненный путь заставить ведро svg есть?
>>717563
#157 #717563
>>717553
Ведро не ест svg бля. Ты должен сконвертировать его в xml vector drawable, который ведро умеет рисовать.
#158 #717630
Есть примеры реалиации ведения сессий у приложения?
80 Кб, 400x400
RoboVM - ВСЕ #159 #717644
https://robovm.com/robovm-winding-down/
Таки придется перекатываться на Intel Multi-OS Engine

Спасибо тебе Microsoft :\
>>718276
2162 Кб, 3264x2448
#160 #717664
Привет, котаны.
Есть нестандартная задача:
С сервера загружается список.
Далее необходимо его закешировать и для каждого элемента списка произвести рассчеты, потом обновить эти элементы в списке и в кэше.

Как бы наиболее красиво сделать обновление элементов в списке по мере продвижения рассчетов?
>>717667>>717689
#161 #717667
>>717664
NotifyItemChanged у recyclerview.adapter
>>717689
#162 #717689
>>717667
>>717664
Ну и добавлю, что делаешь все через rx

apiObservable
.observeOn( computation )
.map(items -> cache(items))
.observeOn( mainThread )
.map( items -> recyclerAdapter.setData(items) )
.observeOn( computation )
.flatMap(items -> Observable.create(... рассчеты для каждого), 4)
.subscribeOn( mainThread )
.forEach( item -> recyclerAdapter.notifyItemChanged )

Примерно так, но вероятней всего я напутал положение observeOn'ов.
>>717693>>717720
#163 #717693
>>717689
Как это может выглядеть стандартными средствами?
#164 #717720
>>717689
Лишь бы выпендрица, нафиг там map, ты же не преобразовываешь данные?...
>>717723
#165 #717723
>>717720
Да, есть же doOnNext.
#166 #717729
Что-то не могу разобраться - у меня процессор не поддерживает интеловские технологии, не запускается эмулятор в android studio. Что делать?
>>717730>>718791
#167 #717730
>>717729
Genymotion
>>717770
#168 #717743
Аноны, нужно ли как то изъебываться с запросами в сервисе? или просто можно все делать в обычном асинктаске?
>>717760
#169 #717760
>>717743
С сырыми сервисами точно сейчас ебаться не стоит.
Глянь на GCM NetworkManager (требует gapps) или Job Scheduler (Android 5.0)

http://developer.android.com/intl/ru/training/performance/battery/network/action-app-traffic.html
>>717793
#170 #717770
>>717730
Не работает. VirtualBox пишет VT-x is not available (VERR_VMX_NO_VMX).
Есть еще какие-то варианты разработки под таким ноутбуком?
>>718741
#171 #717793
>>717760
Ну я не пишу свой сервер, мне надо подключаться к лонг пуллу
>>717795
#172 #717795
>>717793
При чем здесь сервер?
Логн пул вообще хреновая идея в плане батареи, попробуй лучше пуши.
>>717800
#173 #717800
>>717795
А как по твоему работает GCM?
>>717821
#174 #717821
>>717800
Один гугловский лонгпул лучше чем 10.
>>717830
#175 #717830
>>717821
Найс маневр.
>>717929
#176 #717881
Неужели что бы просто отправить какое то значение на сервер(логин например), надо создавать ретеин фрагмент?
>>717883>>717899
#177 #717883
>>717881
Rx, или интент сервис.
>>717899
#178 #717899
>>717881
>>717883
Или AsyncTask, бгг
#179 #717929
>>717830
В Android N Dozen режет в фоне инет и стопает все программы.
А в исключение там добавлены только Google Services.
>>717942
#180 #717942
>>717929
И что же интересно будет с девайсами без сервисов? Я уверен можно будет попросить систему не убивать тебя и юзер даст разрешение.
>>717964
#181 #717964
>>717942

> И что же интересно будет с девайсами без сервисов?


Батарею будут держать дольше.
GCM есть в исключение и этого достаточно (для пушей /JobScheduler).

> юзер даст разрешение


Может даст, а может нахуй пошлет и поставит приложение конкурента.
>>717973
#182 #717973
>>717964
Мы говорим о девайсах без GCM. В плане с конекшоном мое приложение ни чем не будет отличаться от приложения конкурента.
>>717983
#183 #717983
>>717973

> Мы говорим о девайсах без GCM


Это ты про CM (ну и конечно владельцы Android < 2.2)?

Кому нужны эти дебилы странные люди, если на их телефонах даже нет Google Play.
>>717986
#184 #717986
>>717983
Китайфоны и требы русскокитайского произовдства.
>>718018
#185 #718018
>>717986
Они вероятней всего даже поставить твое приложение не смогут, ведь основной источник распространения - GP. Так стоит ли ебаться ради двух с половиной калек?
>>718067
#186 #718067
>>718018
Тогда как ты объяснишь то, что всякие пейсбуки/вотсапы/вайберы/скайпы/телеграммы делают в обход GCM?
>>718201
#187 #718201
>>718067
Вотсапп юзает gcm, по крайней мере его версия из гп. Фейсбуки скайпы телеграммы жрут батарею как ебанутые.
#188 #718276
>>717644
Ну пиздец. Хотя мы все это знали.
мимо-ОП
#189 #718304
То чувство, когда ты до сих пор пользуешься эклипсом, асинктасками, httpurlconnection и org.json.*... Когда этот тред успел превратиться в цирк хипстеров от мира андроид разработки? Год назад такой хуйни не было.
>>718306
#190 #718306
>>718304
Ну джисоном и я пользуюсь, а вот ретрофит мне приятнее. И баттернайф. Вот думаю ещё в ретролямбде разобраться.
>>718350
#191 #718350
>>718306

>И баттернайф.


Мне батернайф кстати вообще не зашел, хотя я все остальное юзаю.
Эти паблик вьюхи по всему проекту делают меня плакать, особенно в адаптерах.
>>718412
#192 #718412
>>718350

> паблик


package visible, а не паблик.
>>718457
#193 #718436
>>716837

> нет поддержки robovm


Так RoboVM ведь официально мертва со вчерашнего дня
#194 #718439
Подскажите, как работать с пагинацией в RecyclerView.
API отдаёт мне некие элементы постранично, то есть http://example.com/users?page=1 и так далее.
Загрузить сразу все страницы — не вариант, их слишком много.
Я думал, загружать данные постранично, но тут появляется другая проблема: данные (и их порядок) обновляются часто. То есть, то есть, пока пользователь смотрел первую страницу, а потом доскроллил до второй, данные могли измениться и загрузив лишь вторую страницу, мы получим дублирующиеся или неверные данные.
>>718459
#195 #718457
>>718412
Ну меня это не сильно ебет, суть ты понял.
>>718502
#196 #718459
>>718439
Не делать говно с страницами а делать идшники.
>>718467
#197 #718467
>>718459
Это как? Типа что бы каждый итем был с айдишником, но как это поможет?
>>718470
#198 #718470
>>718467
То что у тебя получилось с страницами проеб серверщика.
Ты никак не сделаешь нормальное отображение страниц если они у тебя могут меняться пока ты их выводишь.

Если брать в учет что порядок элементов не может меняться, то идшники тебя спасают. Правда было бы понятнее если бы ты объяснил бизнес логику этих элементов списка.
Например у нас лист сообщений с датой, следовательно сортируются они по дате, и в середину листа новое сообщение никак не попадет, тогда на сервере делается метод
который принимает последний ИД сообщение который у тебя есть, и количество новых элементов для подтягивания вторым аргументом. Но это вниз по списку, от новых к старым, нужен будет еще один метод вверх по списку.
Ну в общем я вроде понятно объяснил.
>>718493
#199 #718474
Пацаны, как компилировать lk(tittle kernel) для MTK из винды?
#200 #718493
>>718470
Спасибо за ответ.

> Ну в общем я вроде понятно объяснил.


Честно говоря, не совсем тебя понял. Имеешь в виду, что если бы у нас были id и порядок элементов бы не менялся, а лишь добавлялись новые элементы? Таймлайн в Твиттере, кажется, такое API имеет. Тогда мы бы делали запросы типа "получить все новые твиты после id 1234" и "получить 20 твитов до твита с id 1234". Кажется, ты это имел в виду? Если да, то я думал тоже о таком, но в данном случае это не сработает: у API нет таких методов. Ну и порядок элементов меняется.

> было бы понятнее если бы ты объяснил бизнес логику этих элементов списка


Попробую. Пусть для примера будет так: мне нужно отобразить список самых популярных игроков в какой-то онлайн-игре. Соответственно, я делаю запрос к API и получаю примерно такой json: http://pastebin.com/uucVg8Dp
У каждого игрока есть свой уникальный id. Позиции игроков в топе меняются (часто меняются!). Так же иногда появляются новые игроки (но появляются они где-то в конце списка, что логично).
>>718517
#201 #718502
>>718457
А в чем проблема-то? Ну станут у тебя вьюхи видимыми во всем пакете. И что?
>>718503
#202 #718503
>>718502
Ниче.
#203 #718517
>>718493

>Кажется, ты это имел в виду?


Да.

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

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

Но в любом случае это страшний костылизм и лапшекод.
>>718528
#204 #718528
>>718517

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


Такая идея мне не приходила в голову.
Я до этого думал при скроле вниз на страницу n запрашивать страницы с первой по n-ую. Кажется, твоё решение менее костыльное.

Если бы у меня был ArrayAdaper или что-то похожее, то я пожалуй бы использовал твою идею. Однако, у меня адапер использует Cursor, который загружается ContentProvider'ом (т.е. я сначала складываю данные в БД, а потом показываю в recyclerView). Не уверен, что описанный тобой способ получится применить в таком случае.

В любом случае, спасибо за подсказку.
>>718587
#205 #718587
>>718528
Тебе в любом случае нужен лист, отказывайся от курсор адаптера, он работает только без доп логики, а тебе как раз она нужна.
Просто парси курсор в лист и дальше с ним работай.
#206 #718653
Как мне удалить рабочую версию приложения в маркете и запустить бета тестирование?
Достаточно ли деактивировать текущую версию и залить бета версию под другим номером версии?
>>718663>>726177
#207 #718663
>>718653

> Как мне удалить рабочую версию приложения в маркете


Никак.
>>718671
#208 #718671
>>718663
Ну и фиг с ним тогда.
#209 #718741
>>717770
неужели нет ниодной живой андроид трубы?
#210 #718791
>>717729
Прекрасно и на AMD всё работает. Проблема не в этом
#211 #718827
Есть у меня двумерный массив с данными:

List<String[]> resultList = new ArrayList<String[]>();

Данные в виде
name lol
nome pop

Как мне правильно занести это дело в базу данных?
Стандартная SQLite.
>>718836>>719008
#213 #719008
>>719414
#214 #719194
Я совсем ньюфаг, поясните такую вещь. В моем универе среди студентов популярно приложение Расписашка, там можно с сайта универа скачать расписание, настраивать, обновлять и тд. Так вот. Как это реализовано? Что гуглить по этой теме? То есть могу ли я вот та же с какого-нибудь сайта ржд или почты России скачивать в свое приложение инфу?
#215 #719257
Как только реализовать MVC на Android?
Использую Otto для оповещений, есть синглтон для сетевых данных.
В приложении один корневой активити, который управляет фрагментами. У фрагментов свои интерфейсы (нажатие/выбор в основном), все их отрабатывает корневой активити.
При разработке под Андроид меня не покидает чувство что я что то не так желаю, что все очень хрупко и ненадежно.
Как у вас устроены приложения? Как меняете тайтл у тулбара при изменении текущего фрагмента например?
>>719305>>719428
#216 #719285
Сложно ли реализовать приложение виджет?, который бы висел на экране блокировки и показывал оставшееся время до определенного события? В андроиде не шарю, пишу на крестах, могу читать джаву
>>719289
#217 #719289
>>719285
Уведомлением можно. Или обоиной для локскрина сделать, правда не все смартфоны вроде умеют в отдельные обои для рабочего стола и для локскрина.
#218 #719305
>>719257
Ты можешь обрабатывать все клики и обработку в самом фрагменте, например прицепить MVP и фрагмент будет в роли View.

По поводу тулбара, можешь его использовать прямо из фрагмента, допустим у HostActivity есть метод bindToolbar(Toolbar toolbar) который будет вызываться в onActivityCreated у фрагмента
#219 #719403
Как записать массив с Bitmap в один ByteArrayOutputStream, и потом считать его обратно?
ObjectOutputStream не поддерживает несериализуемые объекты.
С другими подклассами стримов я могу записать все в кашу, но как потом это разделять при чтении?
>>719408>>719410
#220 #719408
>>719403
Bitmap.compress. Или через Parcel. Совсем по-разному работают, зависит от того, чего ты хочешь достичь.
>>719463
#221 #719410
>>719403
А, ну и через getPixels, конечно же.
#222 #719414
>>719008
Но ведь это говно
>>719650>>719707
#223 #719428
>>719257
Я вот кстати тоже не пойму как правильно сделать в МВП оповещение про то что данные обновились. Допустим сервис все обновляет, но это надо иногда выводить на экран, как правильно делать? Нет ну понятно евентбас поможет, но это сродни готу в асемблере.
>>719456>>719488
#224 #719456
>>719428
Сабим при создании активити/фрагмента на ивент определенного типа, ансабимся на дестрой. Смотрящий за моделью чейкает данные когда хочет и отсылает уведомления.
>>719460>>719501
#225 #719460
>>719456
Тогда уже презентер подписываем но этот ивент. У нас же мвп.
Да активити\фрагмент будет вью, иначе ебля с лайфсайклом.
>>719471
#226 #719463
>>719408
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
for (Bitmap photo : this.draftPhotos) {
photo.compress(Bitmap.CompressFormat.PNG, 0, dos);
photo.recycle();
}
dos.close();
baos.close();
byte[] bytes = baos.toByteArray();

Записал допустим два фото, а при чтении через DataInputStream как понять где конец первого фото и начало второго?
>>719475
#227 #719471
>>719460
На ивенты подписывается активити и шурудит обновления вью-фрагментов самостоятельно?
>>719480
#228 #719475
>>719463
Для такого лучше использовать getPixels или Parcel.
#229 #719480
>>719471
Не активити или фрагмент, а презентер.
>>719507
#230 #719488
>>719428
Просто нужно использовать ContentResolver и ContentProvider
>>719492
#231 #719492
>>719488
Ой иди нахуй, вот к чему ты это спизданул?
>>719498
131 Кб, 600x377
#232 #719494
Разве IntentService работает не в отдельном потоке? UI фризится, если работа onHandleIntent() работает слишком долго. Что я делаю не так?
>>719495
#233 #719495
>>719494
В отдельном, хуй знает что ты там наговнякал.
>>719508
#234 #719498
>>719492

> оповещение про то что данные обновились


Что значит к чему? Если получать данные из БД используя Loader и ContentResolver, то при любом изменении данных, курсор, привязанный к URI этих данных автоматически их получит
>>719509
#235 #719501
>>719456

> Смотрящий за моделью


Какой-то тюремный сленг
#236 #719507
>>719480

>а презентер


Какой профит в MVP в сравнении с MVC?
Мое mvc на андроиде мне не очень нравится.
>>719510
#237 #719508
>>719495

> 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.


Точно в отдельном. Странно...
>>719513
#238 #719509
>>719498
Нет, ты ошибаешься.
>>719514
#239 #719510
>>719507

> Какой профит в MVP в сравнении с MVC?


V и P связаны меньше, чем V и C
Гораздо удобнее тестировать
>>719511
#240 #719511
>>719510
Поправка, совсем не связаны.
#241 #719513
>>719508
Ведро хуево работает со многими потоками кстати, но я думаю для интентсервисом они додумались сделать какой-то шедулер.
#242 #719514
>>719509
Нет, не ошибаюсь. У меня два приложения именно так работают, лол.
Собственно, это основное преимущество использования SQLite + ContentProvider. Если ты будешь использовать какой-нибудь Realm, то всю эту логику тебе придётся реализовывать самостоятельно
>>719515>>719516
#243 #719515
>>719514
Ошибаешься, раз ты решил умничать, теперь моя очередь.

У реалма кстати есть оповещения.
>>719517
#244 #719516
>>719514

>использования SQLite + ContentProvider


Вот эти ребята, можно по развернутей на пальцах?
>>719518>>719524
#245 #719517
>>719515

> Ошибаешься


И в чем же я ошибаюсь?

> теперь моя очередь


Ты уже дважды написал, что я ошибаюсь, но так и не сказал в чём. Очень умно, да.

> У реалма кстати есть оповещения.


Я в курсе. Я и написал, что тебе самому их нужно ловить и делать обновление данных
>>719519
#246 #719518
>>719516
Пиздец, вас в гугле забанили? Это стандартный набор же.
#247 #719519
>>719517

>Ты уже дважды написал, что я ошибаюсь, но так и не сказал в чём. Очень умно, да.


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

>>719517

> Я и написал, что тебе самому их нужно ловить и делать обновление данных


А курсор тебе ловить не нужно? Менять его в том же курсор адаптере не нужно?
>>719520
#248 #719520
>>719519

> А курсор тебе ловить не нужно? Менять его в том же курсор адаптере не нужно?


Loaders именно для этого и придуманы

> Контент провайдер не нужен


Ну ок, раз не нужен, то думай сам, как же узнать об обновлении данных.

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


Типа, если программист не в состоянии правильно реализовать методы query() и insert(), то это проблема КонтентПровайдера, а не программиста?
>>719523>>719526
#249 #719523
>>719520

>Типа, если программист не в состоянии правильно реализовать методы query() и insert(), то это проблема КонтентПровайдера, а не программиста?


Нет, проблема программиста в том что он не знает нахуй нужен контент провайдер.
>>719533
#251 #719526
>>719520

>Loaders именно для этого и придуманы


Нет, придуманы для этого курсорлоадеры, не более. И в реалме это быстро делаеться.
30 Кб, 580x387
#252 #719533
>>719523
Ты какой-то странный.

> — Я вот не пойму как правильно сделать оповещение про то что данные обновились


> — Используй ContentProvider и Loaders, тогда тебе не нужно будет об этом беспокоиться


> — Ты ошибаешься! КонтентПровайдер не нужен! Ты даже не знаешь, зачем он нужен!

>>719541
#253 #719541
>>719533

>— Ты ошибаешься! КонтентПровайдер не нужен! Ты даже не знаешь, зачем он нужен!


Так это правда.
Нотификатор можно делать самому, без контент провайдера. В контентпровайдере ты его даже пишешь сам.
Теперь вопрос, нахуй тебе контентпровайдер?
#254 #719650
>>719414
почему?
>>719652>>719707
#255 #719652
>>719650
По определению.
>>719707>>719887
#256 #719707
>>719652
>>719414
Ты дебил.
>>719650
Забей на толстяка, прекрасная либа, если ненужны джоины.
>>719727
#257 #719727
>>719707

> ненужны

>>719734
#258 #719734
>>719727
Доебался так доебался
#259 #719749
Андроноиды, подскажите пожалуйста по жизненному циклу активити мне.

У меня есть основная активити и сервис, принимающий сообщенния и срущий нотификациями о сообщениях пользователю. Клик на нотификацию инициирует запуск дополнительной активити, показывающей АлертДиалог с содержимым сообщения. Из АлертДиалога этого можно запускать основную активити.

Если нотификация прилетает когда основная активити была закэширована (бандл с состоянием непустой) - вызов основной активити через интент (startActivity(new Intent(this, MainActivity.class))) форсирует создание нвого экземпляра активити, в котором бандл с состоянием пуст. Причём если закрыть эту активити - приложение само восстанавливает закэшированную активити.

Можно ли как-то форсировать восстановление закэшированного экземпляра активити из кода?
>>719759
#260 #719759
>>719749
Активити ушло в бэкграунд и находится в стеке? Если да, то нужно указать в манифесте тип singleTop для этой активити и кажется еще какой-то флаг укзаать при создании интента, но возможно я ошибаюсь и флаг не потребуется. Тогда потребуется ловить в активити onNewIntent.
>>719761
#261 #719761
>>719759

> и находится в стеке


Я нубоват и смутно представляю что есть стек в ведре. Имеется в виду, выгружена она из памяти или нет? Вроде как выгружена. Если приложение попробовать запустить просто кликом на иконку - активити восстановит своё состояние, записанное в бандл.
>>719781
#262 #719781
>>719761

Погуглил. Судя по http://developer.android.com/intl/ru/guide/components/tasks-and-back-stack.html моя активити уже не в стеке.
#263 #719887
>>719652
и что по твоему не говно?
#264 #719894
Посоветуйте хороший перехватчик\инспектор пакетов. В идеале чтобы можно было задавать автоматическую подмену данных в пакете с конкретными заголовками.
>>719895>>719933
#265 #719895
>>719894
Fiddler сам использовал.
Слышал еще Charles есть, на Хабре статейка была.
#266 #719933
>>719894
OkHttp.interceptors
#267 #719942
2 студия не хочет видеть майкрософтовский эмулятор андроида. Студиевский не могу из-за хайпер-в использовать, а он мне нужен дял кое-чего другого.
>>719946
#268 #719946
>>719942
1) запускаешь эмулятор вручную
2) смотришь его локальный ip
3) вызываешь команду adb connect <ip>
#269 #719984
Есть surfaceview и camera. Если surfaceview загнать за свой контейнер через отрицательный марджин топ или установки высоты больше высоты контейнера, то превью все равно вписывается только в видимую область.
Так поступать нужно, вопрос в том, как избежать распидорасивание изображения.
Данная ситуация на API 16, на 21 и выше все норм. На других проверить возможности нет.
>>720016>>720063
103 Кб, 1436x1137
50 Кб, 600x600
#270 #720000
Отчего у андрюши такой API уебищный?

Решил вкатиться и вот страдаю теперь.

1) Какой - то дикий оверинжениринг (для сравнения - жизненный цикл приложения альтернативной платформы
http://i.stack.imgur.com/Jn6MZ.png)

2) Свистопляска в названиях аргументов у функций (savedInstanceState в одном месте, outState в другом)

3) Какие - то костыли в виде Fragment (по кр мере таково восприятие при текущем уровне понимания предмета) и вообще дикая свалка в иерархии объектов.

4) Начинаешь разбираться почему onSaveInstanceState() не работает - на стековерфлоу находишь ответы, в которых рекомендуют поколдовать со стилями. И эти ответы получают позитивные отклики - т/е объективно не совсем бред.

5) Всратые конфетные релизы и непонятные проблемы когда демка из уроков двухлетней давности перестает работать

6) Вроде и механизм обмена сообщениями есть и тут же до кучи callback-ов и все в перемешку.

Почему так, Ананас?
>>720003>>720479
sage #271 #720003
>>720000
Швабода, опенсорс индусы
#272 #720016
>>719984
Решил проблему, использовав textureview.
#273 #720029
Не могу загрузить активити с imageView, постоянно вылетает ошибка java.lang.OutOfMemoryError
Картинки добавляляю через drawable в xml
Размер картинком не больше 2048 пикселейБ а вес не больше 400 кб в чем может быть проблема и как поченить?
>>720033
#274 #720031
Веб макака приветствует тя. Нужно запилить минимальное приложение в котором понадобится всего то по клику на карте поставить метку (мапс api), пара запросов на сервак и до блютуза добраться, хотелось бы не вылезать за пределы жс, т.к. оно и на иос нужно будет. Анон, скажи че юзать ? Кордова, реакт нейтив, или на джаве писать ? Где меньше ебли короч.
#275 #720033
>>720029
2048 в высоту/ширину? Тогда 2048*2048 = 16 мб на картинку в профиле argb_8888
>>720036
238 Кб, 550x550
#276 #720034
>>720031
Kotlin + Intel MultiOS Engine
>>720180>>720217
57 Кб, 604x471
#277 #720035
>>714032 (OP)
Господа, расскажите, есть ли годный способ писать на Python под Андроид? Я в курсе про Kivy, но у меня вопрос - получится ли на питоне без проблем вызывать системные штуки - типа записи звука или работа со шторкой?
>>720049
#278 #720036
>>720033 картинки где-то 2048*2000 размер их окло 400 килобайт, я ничего про профиль не понял. Можешь яснее обяснить
>>720042>>720044
#279 #720038
>>720031
На джаве бы писать не хотелось т.к. ни строчки на ней не писал
#280 #720042
>>720036
16 мб - разжатая картинка, 400 кб - сжатая. Размер сжатой картинки влияет лишь на вес апк и скорость ее разжатия.
#281 #720044
>>720036
Ты гуманитарий или просто тупой школьник?
Иди учи матчасть:
http://lmgtfy.com/?q=представление+изображений+в+памяти+компьютера
>>720066
#282 #720049
>>720035
Используй наиболее сильные и проверенные временем инструменты: Java
#283 #720053
>>720031

>Веб макака


Очевидна кордова.
>>720060
#285 #720063
>>719984
SurfaceView устаревшее говно, намеренно сделанное через жопу. Если у тебя нет цели поддерживать версии ведра ниже 4.0, переходи на TextureView.
#286 #720066
>>720044
это конечно охуительный совет, но как это сейчас поможет мне в моей проблеме?
>>720069
#287 #720069
>>720066
В какой конкретно папке лежит картинка?
Какое разрешение экрана у твоего смартфона?
>>720073
#288 #720073
>>720069
все картинки лежат в папке drawable, вылетает на всех смартфонах не зависимо от разрешения
>>720074
#289 #720074
>>720073
Назови все смартфоны. Проблема скорее всего от того, что картинка скейлится. Перемести её в drawable-nodpi.
А вообще я не понимаю, зачем тебе такие большие картинки в приложении.
>>720075
#290 #720075
>>720074
Samsung s4, s5, htc m8, lenovo хуй знает какой. Много смартфонов короче плюс еще эмулятор. А картинки больше для экранов с выскоим dpi. Как в эту папку переместить ? ее создать надо ил и она где-то лежит, если лежит то где?
>>720080
#291 #720080
>>720075
Создать. А лучше вообще через assets грузить, если в этом есть реальная необходимость.
#292 #720085
Подскажите плагин для студии, чтобы генерил уменьшенные версии картинок xdpi hdpi и т.д. с указанного файла.
#293 #720143
Проблема есть одна, подскажете?
Короче, задание у меня такое: рисовать жестами линии на гугловых картах. Сначала решил попробовать на чем попроще - сделал кастомный ImageView, перегрузил в нем onDraw. Где-то там есть OnTouchListener, который по нажатию меняет флажок на режим рисования, по движению зовет метод drawPoint(x,y) (который делает invalidate, и если флажок, то рисуется точка по координатам), а отпускающие события возвращают из режима рисования. Ладно, хрен с тем, что результат не сохраняется (с этим разберусь еще), главное что что-то да рисуется и точка/фигура двигается за пальцем. Значит работает.
Вернулся к картам. Написал, значит, CustomMapFragment extends SupportMapFragment, в нем View basicView (карта) и WrapperLayout wrapperLayout (extends FrameLayout - обертка, которой можно манипулировать как View, т.к. гугловым фрагментом манипулировать нормально нельзя). И такой код в onCreateView:

basicView= super.onCreateView(inflater,container,savedInstanceState);
wrapperLayout= new WrapperLayout(getActivity() );
wrapperLayout.addView(basicView);
return wrapperLayout;

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

paint.setColor(Color.parseColor("#0000ff"));
paint.setStrokeWidth(10);
super.onDraw(canvas);
if(nowDrawing)
canvas.drawRect(drawPointX-50,drawPointY-50,drawPointX+50,drawPointY+50,paint);

onDraw принадлежит WrapperLayout. Есть мысли, что оно даже рисуется, но на более нижнем слое, а верхний с картой все перекрывает, но не могу это проверить. Допустим, если закомментить super.onDraw(canvas), все полотно view должно было становиться белым, но нет, по прежнему карта видна.
Гуглю уже давно и что-то нихрена не нахожу.
#293 #720143
Проблема есть одна, подскажете?
Короче, задание у меня такое: рисовать жестами линии на гугловых картах. Сначала решил попробовать на чем попроще - сделал кастомный ImageView, перегрузил в нем onDraw. Где-то там есть OnTouchListener, который по нажатию меняет флажок на режим рисования, по движению зовет метод drawPoint(x,y) (который делает invalidate, и если флажок, то рисуется точка по координатам), а отпускающие события возвращают из режима рисования. Ладно, хрен с тем, что результат не сохраняется (с этим разберусь еще), главное что что-то да рисуется и точка/фигура двигается за пальцем. Значит работает.
Вернулся к картам. Написал, значит, CustomMapFragment extends SupportMapFragment, в нем View basicView (карта) и WrapperLayout wrapperLayout (extends FrameLayout - обертка, которой можно манипулировать как View, т.к. гугловым фрагментом манипулировать нормально нельзя). И такой код в onCreateView:

basicView= super.onCreateView(inflater,container,savedInstanceState);
wrapperLayout= new WrapperLayout(getActivity() );
wrapperLayout.addView(basicView);
return wrapperLayout;

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

paint.setColor(Color.parseColor("#0000ff"));
paint.setStrokeWidth(10);
super.onDraw(canvas);
if(nowDrawing)
canvas.drawRect(drawPointX-50,drawPointY-50,drawPointX+50,drawPointY+50,paint);

onDraw принадлежит WrapperLayout. Есть мысли, что оно даже рисуется, но на более нижнем слое, а верхний с картой все перекрывает, но не могу это проверить. Допустим, если закомментить super.onDraw(canvas), все полотно view должно было становиться белым, но нет, по прежнему карта видна.
Гуглю уже давно и что-то нихрена не нахожу.
#294 #720180
>>720034

>Intel MultiOS Engine


Оно живое вообще? Как оно там на ней?
>>720216
#295 #720216
>>720180
Там на форуме некоторое возбуждение после закрытия robovm (видать новые клиенты пожаловали).
По факту проект развивается, есть первый апдейт.

Из минусов:
1) Просто дохрена аннотаций. Пустой шаблон контролера на половину состоит из одних аннатаций и так везде.
И не особо понятоно как с ними работать надо доки подробно читать
2) Размер IPA больше чем у robovm

Из плюсов:
1) Поддержка Kotlin
2) Поддержка на iOS andorid.database.sqlite.SqliteDatabase и курсоров (даже запустил поверх этого OrmLite на android connectionsource)
3) ART - ahead of time компиляция
4) Удобная сихронизация с XCode/storyboard, генерация java/objectc прослоек

P.S.
Что еще интересно: в этом видео https://www.youtube.com/watch?v=SrujAdCdAjE чувак говорит что возглавляет разработку.
И на официальном форуме от Intel отвечают люди с русскими фамилиями.
Может это как и Kotlin "отечественная" разработка?...
#296 #720217
>>720034
Мне нравится твоя самоирония.
#297 #720353
Тут только программки пишут или и в выяснении gpio камеры могут помочь?
>>720365>>720367
#298 #720365
>>720353
Тут спрашивают как вкатится в ведро.
#299 #720367
>>720353
Тут только срачи.
#300 #720479
>>720000

> Какие - то костыли в виде Fragment


Да ну. Один из лучших архитектурных концептов андроида
>>720482
#301 #720482
>>720479
Особенно retain фрагменты, ммм...
>>720504
#302 #720486
Как стартануть активити и очистить все старые активити в этой же таске? FLAG_ACTIVITY_CLEAR_TASK ничего не меняет, если юзать его вместе с ACTIVITY_NEW_TASK, то работает как надо, но появляется анимация перехода в новую таску, что не подходит.
#303 #720504
>>720482
О, спасибо за отсылку - похоже очень полезная штука, кажется, снимает часть головняка из пункта 1 и мои проблемы с разрывом bluetooth соединений.

Знаю, что есть еще сервисы и шины сообщений, но я пока начинающий и пытаюсь осваивать примеры к sdk, в которых с решения попроще и которые, к слову, сделаны на отъебись.

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

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

До кучи - вспомнился еще пункт
7) Какая-то маниакальная настойчивость в прописывании

>super.method(..)


в начале переопределения метода method() - не помню ни одного фреймворка, где это бы так форсировалось.
>>720506
#304 #720506
>>720504
Это особенность джавы, а не апи ведра.
>>720618
#305 #720517
Народ, срочно выручайте, нужно сделать затемнение expandablelistview при expand-е группы всего, кроме экспэнднутой группы и ее деток. Ебусь сутки, выходит хуйня
>>720518
#306 #720518
>>720517
ну и соответственно при коллапсе лист и все содержимое возвращает исходный цвет
#307 #720612
Если я полунюфаг, есть ли возможность вкатиться в котлин и начать писать под Android? Есть ли какие-то уроки по написанию под андроид на Котлине? Надо ли знать Java?
>>720756
#308 #720618
>>720506
ненене

>super.method(..)


если повсеместно требуется писать подобное в callback функциях - что-то не так в консерватории.
#309 #720655
Бамп.
67 Кб, 620x620
60 Кб, 960x540
62 Кб, 960x540
82 Кб, 960x540
#310 #720756
>>720612
Вкатывание такое же как и в "Scala/Groovy/... под андроид"
1) Учишь Android API
2) Независимо учишь язык; переписываешь примеры на Kotlin

Вот тебе Android API: http://developer.android.com/intl/ru/training/index.html
Вот материалы по Kotlin:
https://kotlinlang.org - Основной сайт
https://habrahabr.ru/hub/kotlin/ - HUB Habrahabr
https://habrahabr.ru/post/279667/ - Ссылки на доклады и подкасты
https://habrahabr.ru/post/278169/ - Интересная статья "Как себе выстрелить в ногу в Kotlin"

http://kotlin.link - Сборник ссылок по Kotlin (на английском)
https://www.reddit.com/r/Kotlin/ - Reddit (тут тоже можно узнать новости и ссылки на интересные статьи)

Видео с Youtube:
https://www.youtube.com/watch?v=HWyd1gYMkl0&list=PLVe-2wcL84b8pj7VOoa-6L9Q0sDjibdoF
Конкретно под Android:
https://www.youtube.com/watch?v=VU_L2_XGQ9s
https://www.youtube.com/watch?v=-BvN0X5tqjw
Еде есть как минимум два на русском, но они не от разработчиков так что сам ищи.
#311 #720764
#312 #720766
>>720756

> 1 пик


Stream API

> 2 пик


Шлёшь нахуй бобовую спецификацию и делаешь всё package-local/public

> 3 пик


А теперь перепишите через лямбды

> 4 пик


Stream API
>>720770
#313 #720770
>>720766

> 2016


> Android


> Stream


Стримы только в Android N, который выйдет в Q3 2016

> Шлёшь нахуй бобовую спецификацию и делаешь всё package-local/public


Плохая идея для неприватных классов, а вдруг придется логику сеттера менять ( o_O )
>>720779
#314 #720779
>>720770
Стримы с лямбдами в джек енд джиле с обратной совместимостью до 2.3
>>720782>>720871
#315 #720782
>>720779
Ты что-то напутал, там функционал уровня retrolambda.
#316 #720784
>>720756
1. def products = orders.products.flatten();
2. class MyGroovyClass {
final int a = 1;
int b = 1;
final def c = 1;
def d = 1;
}
3. class MyActivity extends Activity{
def example() {
def view = findById(R.id.button);
view.onClickListener += { Log.d("TAG", "Item clicked"); }
}
}
4. def example() {
def os = ["Android", "iOS", null, "Windows Phone"];
os.grep{it}.sort {it.length()}
.toUpperCase().forEach { println it};
}
Java 0
Kotlin 0
Groovy 1
>>720785>>720788
#317 #720785
>>720784
астериски проебались, кто шарит тот поймет.
sage #318 #720788
>>720784
Код понял, а почему котлин = 0?
>>720858
#319 #720817
>>714032 (OP)

>udacity


Что хоть за годный курс, кто-то знает?
Он напрямую гуглом предоставлен, или кем-то другим? мимо шлют мне на мыло всякую маркетинговую хрень
>>720933
#320 #720858
>>720788
Еще больше сократили.
#321 #720871
>>720779
Стримы в Java это ебанный АД >>715577
1) Периодическое отсутсвие методов перевода в стримы (из тех же паттернов)
2) Гребанные чекед исключения
3) Отсутствие блять метода takeWhile (только в Java 9.0 завезли).
Да и вообще любых метод расширения этих стримов.
4) Пляски с коллекторами и сплиттераторами
#322 #720884
Есть psd файл с разрешением 1080*1920 480dpi. Когда пытаюсь верстать на такой же экран в андройд студио отступы и размеры картинок получаются намного больше, чем они изображены в psd. Размеры высчитываю здесь https://pixplicity.com/dp-px-converter/
Что я делаю не так и как это исправить?
>>720911
#323 #720911
>>720884
Чому 420, а не 480?
>>720912>>720913
#324 #720912
>>720911
А в глаза ебусь. Ты превью какой девайс смотришь, нексус 5?
>>720914
#325 #720913
>>720911
да его. Я не понимаю ка кэто правильно всерстать или макет неправильный вообще. Если не правильный то как объяснитть это дизайнерам?
>>720914
#326 #720914
#327 #720933
>>720817
Проходил на юдасити курс по градл, понравилось. Сейчас там по libgdx прохожу.
15 Кб, 500x375
#328 #720954
Приглашаю начинающего или опытного Android-разработчика. Нужно запилить несложное приложение. Бюджет 10000 руб.

Jwh01m@,8ANUShmamai{>slPUNCTUMc'TIom
>>720960
#329 #720960
>>720954
ru.nekit.androif+2dANUSglXdmailPUNCTUMmO~com

Примеры-примерчики:
https://github.com/ru-nekit-android/Clean-Architecture-MVP
#330 #720977
Посоны, поясните какие перспективы у андроид-девелопингы, много ли ваканский и тд. Думаю вкатиться.
>>720980
#331 #720980
>>720977
Ваще забей, рынок перенасыщён, разработка под ведро это что-то уровня пэхапэ.
>>720981>>720990
#332 #720981
>>720980
Та так о всём говорят - перенасыщен. Я конечно понимаю что сейчас везде многие вкатываются, но всё-равно готов учить и осваивать. Вот и интересуюсь нет ли полной задницы чтоб не огорчиться.

Сейчас собственно учу пэхапэ, по учебе надо несколько проектов сделать(в т.ч. дипломный). Ну и думаю что учить для себя. Веб в целом мне нравится, но хотел за андроид уточнить.
>>720985
#333 #720984
https://github.com/google/agera
Ну грац ребята, нам новый rx подогнали, теперь более запутанный но оффициальный.

#гуглидинахуй #гуглумри #гугллучшесделаймвп
#334 #720985
>>720981
Раз нравится, то учи.
>>720986
#335 #720986
>>720985
Вакансии есть?
Реально найти работу джуном?
>>720988
#336 #720988
>>720986
Есть, реально.
#337 #720990
>>720980
Пиздец, просто разрабы под ведро есть разные.
#338 #721000
>>715052
Юзай дженимоушн, намного быстрее тупого стандартного эмулятора.
Можно развернуть его вообще на другой машине, если проблемы с оперативной памятью, но у меня даже на ноуте с 4гб проблем пока нет.
#339 #721006
>>720984
что это вообще за пиздос ?!
>>721007
#340 #721007
>>721006
Это гугл детка
43 Кб, 796x598
#341 #721038
Установил Android Studio. Такая вот ошибка происходит во время загрузки доп. компонентов. Пытался пробовать снова, но все равно та же ошибка. Это критично? Можно пропускать?
>>721044
#342 #721044
>>721038
Проверь свободное место на диске. Хорошо если там реально несколько гигабайт будет - с запасом так.

У меня по кр мере в начале знакомства постоянные неадекватные сообщения (привет говнокодерам из гугла и джет брейнс) были на этапе инсталляции и даже запуска эмулятора.
>>721090
#343 #721080
>>720756
Вопрос был именно надо ли нуфагу вкатываться в андроид через джаву или можно с нулевыми практически знаниями вкатиться в котлин?
>>721257
10 Кб, 310x160
#344 #721090
>>721044
c местом на диске все ок
в общем погуглил проблему, отключил брандмауэр, перезагрузил и запустил от имени администратора, все установилось без ошибок
#345 #721164
Хочу имейдж вью в навигейшнвью задать
height = wrap_content
width = match_parent
смысл в том чтоб картинка отскейлилась по ширине.
В результате высота становится нихуя не врапконтент.
Что не находил на стековерфлов не работает.
#346 #721255
>>720984
Видели. Пиздос.

> #гугллучшесделаймвп


Так сделал же уже
>>721366
#347 #721257
>>721080
Сначала нужно выучить XML — на нём в андроиде все разметки, хоть на джаве, хоть на котлине.
>>721313
11 Кб, 450x134
#348 #721261
>>720984
Стоит еще почитать первый и единственный issue у этого велосипеда: https://github.com/google/agera/issues/20
Показательно
>>721376
38 Кб, 794x477
#349 #721265
Как для notification сделать largeIcon, чтобы она нормально рисовалась? Какие размеры нужны, или ее генерить как-то надо? Эта херня в студии вообще бесполезная и не понимаю зачем вообще нужна. Оно то растягивается и урезается, то наоборот слишком маленькое. Толкового ничего так и не нагуглил
#350 #721313
>>721257
Ну а после?
>>721447
#351 #721366
>>721255

>Так сделал же уже


Где?
#352 #721376
>>721261
Честно мой инглиш так себе, я заебался понимать что они там пишут.
Из прочитанного
"нахуй оно надо?"
"ну хуй знает"

и еще один ответ
"оно вроде как будет лагать, но пруфов не будет"
>>721448
#353 #721447
>>721313
Стандарт андроид-разработки сейчас - это джава. Котлин - модная штучка, по которой мало учебного материала и почти нет вакансий.
#354 #721448
>>721376

> "нахуй оно надо?"


> "ну хуй знает"


Ты уловил суть.
#355 #721468
Аноны, как найти где течет память?
>>721566>>721575
#356 #721566
>>721468
Использовать профайлер памяти?
Так сразу тебе никто не скажет, для начала определись, что именно у тебя утекает.
#357 #721575
>>721468
Начни с коллекций ).

Попробуй выделить точкни инвариантности по отношению к добавлению/удалению в коллекцию и добавить туда проверок.

Используй инструментальные средства http://developer.android.com/tools/performance/comparison.html

Хотя по мне, нет ничего лучше jvisualvm с его оперативной статистикой использования объектов с показом данных в дельта-режиме. Так -то если отталкиваться от https://karussell.wordpress.com/2011/04/10/viewing-hprof-from-android-with-jvisualvm/ - можно сравнить три дампа взятых за продолжительный период - по идее можно выделить тренд.

Впрочем, возможен эвристический анализ и по одному дампу с помощью MemoryAnalyzer.
>>721577
#358 #721577
>>721575
Это, конечно, если куча протекает )
>>721624
#359 #721624
>>721577
А что еще может протекать?
Давайте посремся на тему того что в джаве нет утечек, а есть в пустую занятые ресурсы
>>721697
#360 #721697
>>721624
out of heap memory под java.nio, память выделенная в jni, стек )
>>721713
#361 #721713
>>721697

>стек


Это как?

>out of heap


Ну опять же это потому что ты где-то зажал ссылку не? И сборщик его не удалил.

>в jni


Ну ладно, но жавовскими профайлерами это разве можно выявить? И это не не в джаве проблема, так что несчитово.
>>721734
#362 #721734
>>721713
stackoverflow - другое имя

http://www.evanjones.ca/java-bytebuffer-leak.html

считово, например, если есть
native acquire()
native release()
но контракт использования не выполнен.
>>721746
#363 #721746
>>721734

>stackoverflow - другое имя


Так это не значит что у тебя стек течет, это значит что у тебя стек уперся в кучу, или наоборот. Видимо кто-то где-то решил сделать рекурсию без выхода, или объекты в кучу не влезают и попадают в область выделенную для стека.
>>721774
#364 #721773
анончики, что если я хочу протестировать приложение на физическом устройстве, но я нищеброд с MTC 982T
хочу установить OEM Driver, но не знаю какая модель, фирма фирма, я так понял, Huawei
>>721861>>722412
#365 #721774
>>721746
Cмотри в суть вещи. Есть ресурс - память под стек, который из-за неправильно написанного кода источается. Если буквально - утекают стековые фреймы.

stack over flow.
#366 #721861
>>721773
Ох уж эти виндоус-проблемы.

Не тупи анончик, GOOGLE тебе уже дала единственно-нужный драйвер:
0) На телефоне включаешь "Отладка по USB"
1) Скачивашь через Android SDK "Google USB driver" (он там где-то внизу списка компонентов)
2) Подключаешь своей говно-девайс к компьютеру
3) Открываешь "список устройств" и находишь там неопознаный девай
4) Открываешь меню выбора драйвера и там "указать путь к дровам" (или что-то похожее)
5) Выбираешь путь к папке с Google USB Driver.
Он где-то внутри папки SDK/extras/google/usb.
6) Дальше если надо, в списке выбираешь "Google ADB Complex" (или что-то похожее)
>>722394>>722660
#367 #722310
>>714057
Такая же проблема, как решил?
#368 #722394
>>721861
У меня например на nexus 5 достаточно этого драйвера, а для HTC One нужно ставить свое говно.
>>722410
#369 #722410
>>722394
На работе все тестовые девайсы (хуавеи/леновы/самсунги/соньки),
только через одни этот драйвер настраивал.

HTC у нас нет, но я сильно сомневаюсь что там по другому.
#371 #722465
Есть rest сервер, нужно сделать систему авторизации на андроид устройстве. Какую систему на сервере выбрать - httpSessions, OAuth2, JWT?
Дайте какой-нибудь гайд как запилить систему аутентификации на устройстве.
>>722482
#372 #722482
>>722465
Google OAuth:
1) на андроиде "из коробки" (есть java API)
2) пользователю не придется запоминать новые пароли
#373 #722660
>>721861
сделал по твоему гайду, не сработало, но все равно спасибо
>>722412
спасибо, аночик
скачал самый последний драйвер и установил
сейчас тестю приложение
#374 #723043
Посоны, посоветуйте задачек нубских позязя (или ресурс с ними по возрастающей сложности)
>>723087
126 Кб, 668x459
#376 #723148
анон я тут игру делаю Кароч если слово и оно на буквы рассыпается и буквы по всему экрану ты их потом перетягиваешь в окно и если правильный порядок то ты выиграл.

Кароч вот фрейм в который я объекты должен закинуть а объекты в цикле создаются. TextView это одна буква считай.
[CODE]
RelativeLayout.LayoutParams frameLP = new RelativeLayout.LayoutParams(300, 300);
frameLP.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
frameForLetters.setLayoutParams(frameLP);

Random random = new Random();
for (int i = 0; i < 3; i++) {
TextView textView = new TextView(getActivity());
textView.setX(random.nextInt(size.x - 200));
textView.setY(random.nextInt(size.y - 200));
textView.setText(i + "");
textView.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
textView.setTextSize(50);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(lp);
textView.setOnTouchListener(touchListener);
frameFor.addView(textView);
}[/CODE]

Есть охуительный точ лисенер которым я двигаю объекты.

[CODE]View.OnTouchListener touchListener = new View.OnTouchListener() {
float dX, dY;

@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

dX = view.getX() - event.getRawX();
dY = view.getY() - event.getRawY();
break;

case MotionEvent.ACTION_MOVE:

view.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
break;
default:
return false;
}
return true;
}
};[/CODE]

Я знаю координаты объекта ну и наверное его ширину высоту. В принципе путем охуительных алгоритмов и геометрии все это можно захуярить но мне лень. мб есть другой путь? Пик рилейтед.
126 Кб, 668x459
#376 #723148
анон я тут игру делаю Кароч если слово и оно на буквы рассыпается и буквы по всему экрану ты их потом перетягиваешь в окно и если правильный порядок то ты выиграл.

Кароч вот фрейм в который я объекты должен закинуть а объекты в цикле создаются. TextView это одна буква считай.
[CODE]
RelativeLayout.LayoutParams frameLP = new RelativeLayout.LayoutParams(300, 300);
frameLP.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
frameForLetters.setLayoutParams(frameLP);

Random random = new Random();
for (int i = 0; i < 3; i++) {
TextView textView = new TextView(getActivity());
textView.setX(random.nextInt(size.x - 200));
textView.setY(random.nextInt(size.y - 200));
textView.setText(i + "");
textView.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
textView.setTextSize(50);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(lp);
textView.setOnTouchListener(touchListener);
frameFor.addView(textView);
}[/CODE]

Есть охуительный точ лисенер которым я двигаю объекты.

[CODE]View.OnTouchListener touchListener = new View.OnTouchListener() {
float dX, dY;

@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

dX = view.getX() - event.getRawX();
dY = view.getY() - event.getRawY();
break;

case MotionEvent.ACTION_MOVE:

view.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
break;
default:
return false;
}
return true;
}
};[/CODE]

Я знаю координаты объекта ну и наверное его ширину высоту. В принципе путем охуительных алгоритмов и геометрии все это можно захуярить но мне лень. мб есть другой путь? Пик рилейтед.
>>723271>>724290
sage #377 #723271
>>723148
либо уноси это pastebin, либо иди нахуй
>>723272
#378 #723272
>>723271
сорян. я не виноват что ебучая вакаба не может мне в [CODE] обернуть

[CODE]ТЕСТ[/CODE]
62 Кб, 500x368
#380 #723467
Возможно ли непрерывное распознование голоса?
Поставить на час и пускай пишет те слова, которые распознал.
#381 #723486
>>714032 (OP)
Суп, аноны. Нужна помощь.
Как в андроиде проверяется наличие активного соединения с интернетом? Путем опроса ConnectivityManager'а методами getActiveNetwork/getActiveNetworkInfo или есть ещё способы? Если первое, то как можно зарегистрировать у этого менеджера свою?
Объясняю, зачем мне это нужно.
Есть планшет, на нем интернет вручную поднимается с помощью pppd (с мобилы через отг, потому что я не осилил DUN на ебучем bluedroid), затем утилитой ndc создается сеть, в которую добавляется интерфейс ppp0, и делается активным. В результате интернет работает во многих приложениях кроме тех, что, по всей видимости, запрашивают информацию об активной сети. Они выдают ошибку об отсутствии подключения.
>>723693>>724373
#382 #723500
Поцоны, оцените тестовое задание для https://career.ru/vacancy/16687881

http://pastebin.com/u3ZYacvx
http://pastebin.com/VcszSRKU

В таком виде пойдёт? Я никогда не работал разработчиком и не знаю общепринятых стандартов. Везде откуда звонят по отправленным резюме спрашивают "какие ФРЕЙМВОРКИ вы знаете", может какой-нибудь Spring for Android засунуть,?
>>723549>>723624
#383 #723549
>>723500

> new Thread -> runOnUiThread


Это даже хуже, чем асинктаск. Лучше на него переделай хотя бы.
#384 #723551
>>723549
-Чем хуже?
-Чем асинктаск.

Пояснил бы почему хуже.
#385 #723552
Билдили ффмпег с x264 и фильтрами под андроид?
#386 #723559
>>723549
Асинктаск почему плох?
>>723568
#387 #723560
>>723549
А как тру? Через handler-ы? И что в runOnUiThread крамольного?
>>723568
#388 #723568
>>723559
Без контекста ничем.
>>723560
Если ты используешь runOnUi, то вероятней всего у тебя есть ссылка на контекст неявная. А это значит гроб гроб кладбище утекающие активности.
>>723812
#389 #723624
>>723500

>стажер, работа 20 часов в неделю


>опыт работы от 1 до 3 лет



Они там совсем охренели?
>>723626
#390 #723626
>>723624
они ещё и денег не платят, а только

>Компенсация расходов на питание и проезд



Ничего не имею против стажировки, но с адекватными требованиями.
>>723727
#391 #723630
дайте ссылку на отстойный подкаст на русском, что тут кидали
>>723635
#392 #723635
>>723630
Гугли apptractor androiddev.
475 Кб, 900x400
#393 #723676
Котаны, есть вопрос.
Один малознакомый чувак, узнав что я могу в программирование, попросил слепить для него приложение для андроида. Еще в начале недели о разработке под андроид я не знал вообще ничего, но установив студию и почитав мануалы определил что уйдет на написание этой пороги около месяца (если уделять этому два-три часа в день).
Вопрос: какая адекватная цена разработки такого несложного приложения?
>>723680>>723681
#394 #723680
>>723676

>около месяца


Значит два месяца.

>уделять этому два-три часа в день


Если по 6 часов в день.

30-50к, в зависимости от твоей наглости.
>>723690
#395 #723681
>>723676
300 р в час за то что нихуя еще не знаешь 2 часа 30 дней = 18 косых, скинь до 15
>>723690
#396 #723688
А у меня все еще эмулятор с сдк не работает.
#397 #723690
>>723680
>>723681
Благодарю. Я и думал назвать сумму в районе 20-30к.
#398 #723693
>>723486
Бамп вопросу
247 Кб, 720x1280
#399 #723727
>>723549
так трушнее? http://pastebin.com/EcQeBH32

>>723626
насколько я понял от того, кто там стажировался — платят 70000 за полный рабочий день, наверное половину за 20 часов в неделю. Питание и проезд компенсируют помимо этого. Если не платят, то, конечно, хуй я туда пойду.
>>723758
#400 #723758
>>723727
А нафига ты первый редирект руками обрабатываешь?
>>723816
#401 #723812
>>723568

> Без контекста ничем.


Контекст ненужон. Если очень нужен — можно передать контекст приложения, его всегда должно хватить.
>>723939>>724198
#402 #723816
>>723758
По хорошему, все редиректы надо вручную обрабатывать.
>>723835
#403 #723835
>>723816
По хороше надо пользоваться нормальными библиотеками, а не

> This implementation doesn't follow redirects from HTTPS to HTTP or vice versa.


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

> так трушнее?


Разницы никакой, ведь GetHtmlTextTask "inner класс" и так же захватывает ссылку на активити.
#404 #723939
>>723812

> контекст приложения, его всегда должно хватить.


А потом удивляются, почему память течёт.
>>723941>>723952
#405 #723941
>>723939
Ну если у тебя память от контекста апликухи течет то ты явно даун.
>>724156
#406 #723952
>>723939
Поясни подробнее, контекст приложения ведь никогда не разрушается.
>>723966>>724156
#407 #723966
>>723952
Та он придурок.
>>723982>>724156
#408 #723982
>>723966
Ну может быть и так, хотя тезис что "от использования контекста-приложения бывают утечки", помню еще со времен андроида 1.6

Возможно это связано с тем, что загруженные Drawable кэшируются внутри Resources
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/content/res/Resources.java/#115
, но там все ссылки WeakReference
>>724033
#409 #723985
Платиновый вопрос. А есть ли тут серьезные бизнесмены, которые зарабатывают на своих подделках? Пишите прохладные
>>723989
#410 #723989
>>723985
*поделках
Проклятый свайп
>>724012
#411 #724012
>>723989
--- Успех разрабочкика уровня /b/

Я за пол-года заработал и вывел на инапах 100$ (меньше вывести нельзя),
потом еще около 50$ и приложения заблокировал Google за "эротику".
>>724288
#412 #724033
>>723982
Нельзя юзать активити контекст где попало.
Апликейшн контекст всегда синг энтити.
>>724156
#413 #724045
Долгое время писал под WinPhone 8, ну и UWP. Писал относительно простенькие приложения. Продал Люмию и купил топовый андроид. Шарпы знаю относительно хорошо, с java не сталкивался никогда. Вопрос: решил что буду теперь писать под андрюшу и xamarin мне не особо понравился, что можно почитать по java, чтобы быстро вникнуть и писать уже на любимую андрюшу? хелп анончики
>>724053>>724163
#414 #724053
>>724045
Начинай сразу с Kotlin, он ближе к C# и даже местами круче (а скоро еще добавят async/await).

Вот смотри реп батл C# vs Kotlin на dotNext конференции
https://www.youtube.com/watch?v=jDrCvq0yo7g
>>724064
#415 #724064
>>724053
не хочу начинать kotlin только потому что планирую в ближайшие полгода устроиться android прогером. Тем более слышал что котлин медленный местами + гугл не планирует его внедрять полностью вместо джавы (сравниваю свифт в ios)
>>724273
#416 #724156
>>723966
>>723952
>>724033
>>723941

Открой документацию и почитай сам: https://developer.android.com/reference/android/content/ContextWrapper.html#getApplicationContext()

> This generally should only be used if you need a Context whose lifecycle is separate from the current context, that is tied to the lifetime of the process rather than the current component.


> If used from the Context returned here, the receiver is being registered with the global state associated with your application. Thus it will never be unregistered for you. This is necessary if the receiver is associated with static data, not a particular component. However using the ApplicationContext elsewhere can easily lead to serious leaks if you forget to unregister, unbind, etc.



Ну или сюда загляните: https://stackoverflow.com/questions/7298731/
>>724180>>724375
#417 #724163
>>724045
Если хорошо знаешь шарпы, то лучше начать с ксамарина. В джаву и нативные приложения вкатываться — это процесс небыстрый.

> xamarin мне не особо понравился


Так и должно быть, ведь он говно.

> что можно почитать по java, чтобы быстро вникнуть и писать уже на любимую андрюшу?


Официальную документацию. Или хуйню из шапки.
>>724201
#418 #724180
>>724156
Юзать активити контекст еще чреватее. Захочешь ты синглтон сделать, какой контекст заюзаешь, а? Активити? Вот и дибил.

А вообще почитаю еще, как юзание апликейшн контекста который внезапно сингл инстанс должен вызывать мемори лики. Каким хуем то?
>>724198
#419 #724198
>>724180
Я разве говорил, что нужно везде использовать Activity, даун?

Это вон тут >>723812 утверждалось, что "апп контекста хватит всем"
>>724202
#420 #724201
>>724163

>Или хуйню из шапки.


>Эккель


>Хорстманн


>хуйню из шапки


>Официальную документацию.

#421 #724202
>>724198
Но я так и не понял откуда будет мемори лик, если ссылаешься на сингл энтити.
Пускай это хуевый паттерн, но лик то откуда?
>>724276
68 Кб, 600x494
#422 #724273
>>724064

> Тем более слыша


А я слышал, что твоя мамаша сосет у краснолюда пруфов конечно не будет.
#423 #724276
>>724202
Я так понял если хранить ссылки на что-то внутри кастомного Applicatoin.

В общем эта хуйная переоценена ну или действитель надо быть дауном,
в iOS есть статический метод на получение UIApplication и живут с этим как-то без утечек.

другой анон
#424 #724288
>>724012
Интересно, а за фуррятинку заблочат?
#425 #724290
>>723148

>игра на андроидокомпонентах


ШТОООАААА?
#426 #724373
>>723486
Бамп вопросу
#427 #724375
>>724156
Там про бродкаст ресиверы рассказывается, однако нет смысла регистрировать ресивер, нужный активити, внутри приложения. А вот в ситуациях, когда контекст вызывает утечку, хранить ссылку на аппликуху для простого обращеня к ресурсам, получения системных данных и тому подобного — отличное решение, не имеющее никаких недостатков.
>>724392
#428 #724392
>>724375
Также для любого синглтона в твеом приложении.
Смысл юзать активити контекст есть только в адаптерах.
>>724411>>724413
#429 #724407
>>714032 (OP)
как же хочется сладости ><
#430 #724411
>>724392
В асинктасках тоже, например.
#431 #724413
>>724392
А вот в адаптерах как раз таки нет смысла. Более того, в адаптерах даже контекст активити нет смысла держать, а если держишь — то это проёб по архитектуре. Но проёб допустимый.
>>724421>>724422
#432 #724421
>>724413
Из апликейшн контекста ты не можешь инфлейтить.
>>724423
#433 #724422
>>724413
Лист адаптер как работает маня?
>>724423>>724426
#434 #724423
>>724421
Внимательно прочитай, я говорю, что контекст аппликухи не нужен в любом случае.
>>724422
И как же он работает?
>>724426
#435 #724426
>>724423
Да но внезапно нужен контекст активити.
>>724422
Инфлейтами.

Также то что ты говоришь проеб архитектуры, ты сам не понимаешь что говоришь на самом деле.
Контекст божественный класс который дает тебе доступ ко всему. Ресурсы, любые менеджеры и тд. Как ты вынесешь всю работу из адаптера и тем самым вынесешь активити контекст?
>>724427
#436 #724427
>>724426

> Да но внезапно нужен контекст активити.


Нет.

> Инфлейтами.


И зачем для этого адаптеру ссылка на контекст акиивити?
>>724481>>724528
#437 #724481
>>724427
Что бы стили и тема была та же. А то потом удивляются хули вьюшки как говно и текст не того цвета.
>>724483
#438 #724483
>>724481
А схуяли бы им не быть нормальными?
#439 #724528
>>724427
Там же вроде как есть баг, что из апликейшнконтекста инфлейтитт с ошибкой.
>>724600
#440 #724600
>>724528
Да ёбаный в рот, третий раз говорю, не нужно никакого контекста приложения. Достаточно контекста parent метода getView в момент получения вьюхи.
>>724614
#441 #724614
>>724600
Ты вообше долбоеб? На момент первых прорисовок нету вьюхи.
Потому сука и суют контекст в адаптеры, чтоб инфлейтить эту ебаную вьюху. А если засунуть в конструктор апликейшн контекст то вроде бы как раз и будет экепшн. Я правда его так давно ловил что и не помню всех ньюансов.
Потому я и сказал что для ебучих адаптеров нужен активити контекст, но кто-то возможно ты спизданул что-то про кривую архитектуру.
Заебал нахуй, со своим ресайлервью вообще ополоумели.
Если от тебя заинкапсулировали реализацию и ты неебешь что откуда берется то иди ты нахуй.
#442 #724634
>>724614
Хм, пойду поищу в своих проектах адаптеры.
Точно помню, что контекст активити когда-то убрал за ненадобностью.
#443 #724646
>>724614
http://d.android.com/intl/ru/reference/android/widget/Adapter.html#getView(int, android.view.View, android.view.ViewGroup)
http://d.android.com/intl/ru/reference/android/support/v7/widget/RecyclerView.Adapter.html#onCreateViewHolder(android.view.ViewGroup, int)

"ViewGroup parent" есть и на момент первой прорисовки,
из него можно взять контекст и в ListView/GridView и в RecyclerView
#444 #724700
>>724614

> Ты вообше долбоеб? На момент первых прорисовок нету вьюхи.


parent есть всегда, учи матчасть.

> Заебал нахуй, со своим ресайлервью вообще ополоумели.


Я про ListView говорю.
287 Кб, 700x1256
154 Кб, 688x1052
107 Кб, 816x444
#445 #724737
Таблица на GridLayout(столбцы растягиваются по columnWeight). Cтолбы ужимаются, а сами баттоны в них растягиваются по ширине столбца и, я так понимаю, на маленьком экране(меньше, чем 4.7 дюйма) размер столбца становится меньше минимального размера баттона, поэтому верстка плывет. Как сделать ужатие самих баттонов вместе со столбцами? Подскажите, куда копать, пожалуйста.
Вертикальное сжатие кнопок тоже интересует, т.к. на последнем скрине кнопки уходят вниз.
>>724746
#446 #724746
>>724737
Хуй знает, что там с гридом, но есть замечательный percent relativelayout.
>>724760
#447 #724760
>>724746
спасибо за наводочку
73 Кб, 500x370
#448 #724856
Как сделать ширину Spinner Dropdown размером в самый широкий item?
>>724865>>724871
#449 #724865
>>724856
android:layout_width:"wrap_content", не?
#450 #724870
>>724865
Нет. Ему этот атрибут до пизды.
>>724871
#451 #724871
>>724856
>>724865
>>724870
Такс, анончики. Я налажал.
У меня Spinner в режиме Dialog.
Как в этом режиме сделать ширину списка под самый широкий итем?
>>725002>>725108
#452 #725002
>>724871
Что ещё за режим Dialog блядь
>>725196
#453 #725108
>>724871
Тебе же дали ответ выше. Wrap content используй для листа
>>725196
#454 #725119
Аноны, я уже себе весь мозг выебал. Как получить блядский список друзей в facebook.
Пробовал "me/friends" он возвращает только количество друзей и данные тех из них кто пользуется моим приложением никто
А /me/taggable_friends вместо id у юзеров возвращает левую хрень.
Это вообще возможно сделать?
>>725189
#455 #725189
>>725119
А погуглить? me/firends вернет только тех его друзяшек которые уже в твоей приложухе. А чистый список, дл яинвайтов например, получить низя, нужно вызывать пейсбучный диалог. Еще можно оформить приложуху как игру, тогда можно использовать invitable_friends, и показывать их в своем ui.
>>725597
#457 #725209
>>725196
Теперь понял. Вполне возможно, что это нельзя одной строчкой сделать, придётся самому реализовывать.
>>725230
#458 #725230
>>725209
Причем даже через кастомный адаптер не удалось.
#459 #725597
>>725189
Нифига, invitable_friends сорт оф taggable_friends
>>725613>>725772
#460 #725613
>>725597
В целом в api у fb, какой то пиздец твориться. То нельзя, туда не пустим, ко ко ко это ради юзеров. Мудилы блять.
#461 #725733
Привет.
Энетрпрайзный примат в теме.
Дохуя стажа в яваЕЕ. В основном бакенды. Стеки редхата и оракла.

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

Учебников ява за 21 день не предлагать лол. Ибо подозреваю что яву я знаю всяко лучше чем 80% местных посетителей, как и груви со скалой.

Короче реквестирую быстрый вкат в мобильный дев для энтерпрайзомакак?
>>725761>>725796
#462 #725761
>>725733
Гуглишь тестовые задания
@
Вкатываешься
>>725844
#463 #725772
>>725597

>Нифига, invitable_friends сорт оф taggable_friends


С чего ты взял? Мне это возвращает весь список друзей кто еще не в приложухе.
>>725774
#464 #725774
>>725772
Я о том что idшки юзеров получить для загрузки данных профиля невозможно используя invitable_friends
>>725776
#465 #725776
>>725774
Лол, а нахуя тебе их идентификаторы?
>>725779
#466 #725779
>>725776
Задание тестовое делаю. С контактом все влет получилось, а от пейсбука меня трясет уже. Дальше списка друзей никак не продвинуться. А надо всего лишь дату рождения, телефон (если есть), пикчу и имя.
>>725785
#467 #725785
>>725779
Даже если ты получишь айдишник друга юзера хуй ты инфу с него достанешь. Те кто давал тестовое в курсе что после graph api 2.0 многое пошло по пизде? А то мне на полном серьйозе хотели показать "мол раньше все работало ща покажу, чо воняешь" - и прямо на месте обсирались.
>>725790>>725800
#468 #725790
>>725785
Там еще предлагают мыла юзеров парсить, такое чувство что они тз для задания лет 10 не меняли. Хотя там 5е ведро в требованиях и вся хуйня.
>>725800
#469 #725791
https://www.dropbox.com/s/ao57yihcgmbfnpy/Android_test.pdf?dl=0 Вот можно заценить задание.
#470 #725796
>>725733
Если у тебя дохуя стажа в проге, перед глазами шапка, и ты спрашиваешь как вкатится, то у меня для тебя плохие новости.
>>725843
#471 #725800
>>725790
>>725785
Хотя я кажется обосрался, имея адйишник ты что-т о вытащишь, но только то что совсем в публичном доступе лежит.
#472 #725805
>>725791
Ну я думаю тебе стоит им аргументированно объяснить, что ничего больше чем имя/фотку ты от фейсбука получить не сможешь.
>>725806
#473 #725806
>>725805
Угу, так и сделаю.
#474 #725843
>>725796
Ебать дебил.
Ты сам шапку то читал?
Там кроме ссылки на сайт гугля по андроиду нихуя нет
>>725854>>725855
#475 #725844
>>725761
Чот нихуя.
Надо какой то учебник хотя бы.
Эти лайоты и прочая хуйня не имеет ничего общего с ejb jpa jta jms с которыми я работаю сейчас
>>725852
#476 #725852
>>725844
Советую тебе Алексея Климова, ну и официальные туториалы.

Чет странно что ты за столько лет гуглом не овладел
>>725855
#477 #725854
>>725843
И чем же тебя сайт гугла не устроил?
#478 #725855
>>725843
Я ее писал если что.
Никак не пойму что тебе не нравится. В офф источнике помимо документации есть примеры и гайды, русские ресурсы так вообще изложили все попорядку и у них туевая куча уроков.
Что ты ожидаешь получить в ответ "посоны как вкатится"? Ты должен быть достаточно сведущ в проге чтоб понимать, единственный способ вкатится писать что-то.

>>725852
В шапке внезапно это все есть.
#479 #725863
Почему они не переходят на Go?
#480 #725866
>>725863
А нахуй го уперлось?
#481 #725936
>>725863
Каким образом ебанашка? Давай перепиши все что есть на Go.
#482 #726026
>>725863
go не нужен же
#483 #726030
>>725863

> Go


Хуита для хипстеров. Ещё бы на вайтспейс предложил перейти.
>>726033
#484 #726033
>>726030
Питон штоле?
#485 #726177
>>718653
Еблан, просто залей новую версию в beta-раздел :3
#486 #726210
Ребят, где можно найти тестовые задания на андроиде?
>>726240
#487 #726240
>>726210
В этом треде например: >>725791

Ты тот чувак у которого дохуя опыта в энтерпрайзе, да?
>>726257
#488 #726257
>>726240
Нет, я хуй прочитавший HeadFirst.
>>726258
#489 #726258
>>726257
Собственно и задания ищу средняковые.
#490 #726267
Антоны, я приложение по вечерам пилил и закинул в googleplay. Сейчас посмотрел там почти 900 инсталов и всего около 90 активных. Нигде не рекламировал но думаю это и так понятно. Посмотри, может посоветуешь чего.
https://play.google.com/store/apps/details?id=com.kota.randommovie.application
>>726271>>726306
#491 #726271
>>726267
Дизайн говно, код наверное тоже (раз не показываешь).

Ты бы вставил аналитику (типа google/flurry), ибо активные пользователи в GP иногда завышаются.
Да и вообще это не те кто им пользуются, а кто поставил и забыл удалить.
>>726351
323 Кб, 720x1280
#492 #726306
>>726267
Братан, названия разные, непорядок.

Алсо было очень интересно почитать про Дмитрия Евдокимова, ну просто пиздец как, очень увлекательно, базарю.
#493 #726347
>>725791
а не охуеют они там?
>>726351
#494 #726351
>>726271
Спасибо. А что можно с дизайном сделать? Как вообще прокачать построение интерфейсов?

>>726347
А что не так, вроде норм задание для джуна.
>>726357
#495 #726357
>>726351
ХЗ, у меня тоже хреново с дизайном, но я отдаю себе в этом отчем.

Поэтому я иду на FL (или freelance.ru) и делаю заказ на материал-дизайн интерфейса.
Потом выбираю оптимального исполнителя по цене/качеству.
#496 #726494
Посоны поделитесь историями удачи и счастья- как вы замутили прогу какую-то и она взлетела.
>>726501>>726544
#497 #726501
>>726494
ехал в тралике, увидел как бабка разгадывает кроссворд, запилил апп, не взлетело
>>726534
#498 #726521
зачем все пишут "m" перед началом имени переменной, такого пиздеца никогда не встречал
>>726547>>726728
#499 #726534
>>726501
Кек
#500 #726544
>>726494
Дело было в 2012, сделал несколько говнопрог, залил в гуглплей, в итоге у каждой сейчас по несколько миллионов установок а мне вообще похуй, стало лень ими заниматься в том же 2012.
>>726572
#501 #726547
>>726521

>зачем все пишут "m" перед началом имени переменной, такого пиздеца никогда не встречал


Подражание Android SDK, загляни туда.
>>726557
#502 #726557
>>726547
ну а какой смысл в этом, что это значит?
>>726561
#503 #726561
>>726557
mXXX от слова member (класса).
У каждой команды есть определенные конвенции, их надо придерживаться.

А насчет того что все пишут, это не правда - я не пишу (в конструкторе пользуюсь this.XXX = XXX)
>>726817
#504 #726572
>>726544
Что у тебя за проги такие?
>>726619
#505 #726619
>>726572
Говно всякое же, серьёзно. Уровня "очиститель андроид батареи виджет".
#506 #726627
#508 #726728
>>726521
m - non-public non-static переменная.
#509 #726817
>>726561
а mm - memberMember? Что за mumbling?

Казалось бы венгерская нотация осталась в 90х, ан нет нашлись форсеры сраные.
#510 #726823
Пробелы или табы?

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

}

Или с той же? {

}
>>727075>>741017
#511 #727075
>>726823
ctrl+shift+L
Идея всё сделает за тебя как надо.
>>727124
#512 #727124
>>727075
Не пользуюсь идеей, наверняка это "как надо" можно настроить так, как мне захочется.
#513 #741013
>>714032 (OP)
Андроиданы, тут такое дело.
Завтра утром я иду на собеседование на другую работу. А я очень давно этим не занимался, года три точно, да и волнался раньше на них жутко, просто из-за стрессовой обстановки.
Какие сейчас вопросы задают? Чего ожидать? Что по быстрому освежить.
#514 #741017
>>726823
Пробелы. Code Style на что? Там все расписано и объяснено.

Скобки - это однозначно египетские скобки. Это вообще впитывается с первым Hello World на яве.
>>741066
#515 #741066
>>741017

> Пробелы. Code Style на что? Там все расписано и объяснено.


Не слышал о таком, не гуглится. Поясни давай.

> Скобки - это однозначно египетские скобки. Это вообще впитывается с первым Hello World на яве.


Какая разница, как был написан первый хэллоуворлд на джаве?
>>741152
#516 #741152
>>741205
#517 #741205
>>741152

> Ты дурак?


А ты мне сказал, какой надо гуглить? Ты мне 2 в ответ кинул, которые ещё и противоречат друг другу. Ни то, ни другое не называется "Code Style".

> http://www.oracle.com/technetwork/java/codeconvtoc-136057.html


Four spaces should be used as the unit of indentation. The exact construction of the indentation (spaces vs. tabs) is unspecified. Tabs must be set exactly every 8 spaces (not 4).
Нет определённого общего соглашения, что пробелы можно, а табы — нет, у всех оно разное.

> Большая.


Классная аргументация. Если бы хэллоу ворлд был бы написан одной строкой, ты бы оформлял код одной строкой по сей день?
>>741419
#518 #741419
>>741205
Поехавший, по запросу Java Code Style гугл выдает первую ссылку.
Оттуда же:
2.3.1 Whitespace characters

Aside from the line terminator sequence, the ASCII horizontal space character (0x20) is the only whitespace character that appears anywhere in a source file. This implies that:

All other whitespace characters in string and character literals are escaped.
Tab characters are not used for indentation.

Braces follow the Kernighan and Ritchie style ("Egyptian brackets") for nonempty blocks and block-like constructs:

No line break before the opening brace.
Line break after the opening brace.
Line break before the closing brace.
Line break after the closing brace if that brace terminates a statement or the body of a method, constructor or named class. For example, there is no line break after the brace if it is followed by else or a comma.
>>741511
#519 #741511
>>741419

> Поехавший, по запросу Java Code Style гугл выдает первую ссылку.


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

Ты мне кинул 2 ссылки в прошлом посте. В одной сказано, что табы нельзя, в другой — что табы можно. Догадываешься уже, что ты облажался?
>>741566
#520 #741566
>>741511

>одна не указывает точного стандарта в этом вопросе, вторая его уточняет


Очевидно
Если бы ты не был дауном, желающим доебаться из-за мелочи, то из поисковой выдачи и того, что я написал, легко бы сделал правильный вывод о том, какие документы тебе нужны.
Долбоеб.
>>741671
#521 #741671
>>741566
Ясно, упорно 2 раза пропустил один и тот же аргумент, да ещё и перешёл на оскорбления. Слив засчитан.

> Если бы ты не был дауном, желающим доебаться из-за мелочи


Это вообще ни разу не мелочь. Если есть общий нормативный документ, ты дашь его точное название. А дело в том, что такого документа просто не существует.
>>741802
#522 #741802
>>741671
Где я, блядь, давал ТОЧНОЕ НАЗВАНИЕ ДОКУМЕНТА? Покажи мне. Ткни, блядь, пальцем.
Это общепринятое, блядь, словосочетание, тупой ты мудак. Синоним Programming Style.
Какой аргумент я пропустил?
Еще раз: один документ не дает точной спецификации по КОНКРЕТНОМУ пункту. Второй этот пункт уточняет и полностью, блядь, регламентирует.
>>741935
#523 #741935
>>741802

> Это общепринятое, блядь, словосочетание, тупой ты мудак. Синоним Programming Style.


Общепринятое сочетание, по которому с одинаковой успешностью гуглится рекомендация от гугла и вопрос на стэковерфлоу "как надо оформлять код????" с длинным дискассом ни о чём.

> Какой аргумент я пропустил?


Что документа два и они друг другу противоречат.

> Еще раз:


Первый раз, видимо, был монологом в твоей голове?

> один документ не дает точной спецификации по КОНКРЕТНОМУ пункту. Второй этот пункт уточняет и полностью, блядь, регламентирует


Один документ говорит что можно и так и так, второй — онли пробелы. Причём второй дан всего-лишь гуглом, это их гуглостайл, который в принципе не может быть единственно верным.
Тред утонул или удален.
Это копия, сохраненная 18 мая 2016 года.

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

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