Лето почти закончилось, а вы успели отдохнуть? Ну и думаю потихоньку можно начинать ждать новый нексус, правда что-то дизайн так себе. Алсо, первый месяц на новой работе прошел довольно потно.Предыдущий тред тут:https://2ch.hk/pr/res/801015.htmlКоротко о главном:1) Мобильная разработка - это весело.2) Android Studio & Java - легитимный набор, проверенно временем и поддерживается гуглом.А также о неглавном:3) PhoneGap/Ionic/Titanium/ReactNative - имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити.4) Xamarin - мультиплатформенная разработка. Попытка серебряной пули на C#. Довольно популярный. Куплено Microsoft. Теперь есть бесплатная версия.5) BugVM (RIP RoboVM) - идейный наследник ксамарина, а теперь уже и его часть но на Java. Учитывая что Microsoft убила RoboVM, встречаем опенсорсный BugVM.Отдельного упоминания стоят: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.Привет клиент-серверка.Пишите в треде что добавить
Народ, есть бд, и я хочу подключить к приложению логин через гугл, чтобы пользователь мог пользоваться этой бд на любых девайсах под его аккаунтом. Как лучше это сделать?
Сап, котаны, суть вопроса - при быстром вводе в searchview, в которую подсказки подгружаются при событии onTextChanged со сторонней апишки, происходит фатал - данные для адаптера были изменены но метод notifydatasetchanged не был вызван. Но только при быстром вводе/слабом интернете
>>814735https://android-developers.blogspot.ru/2016/01/using-google-sign-in-with-your-server.html
У меня баттхёрт.Я охуеваю, дорогая редакция. Неужели Гугл не смог сделать вменяемый инструмент разработки, который способен запуститься и работать после установки?Установил я этот Android Studio - он после создания проекта-сэмпла начал выдавать какоё-то gradle family unavailable. Оказалось, что это надо лечить установкой какого-то флага для Java (охуеть, как будто сами не могут его передать в Java).Ладно, это сделано - но теперь там следующий уровень ебанизма - невозможность запуска и хз из-за чего:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 1
>>814746> седьмая джаваНу и ты хуйню какую то натворил сто пудово, еще небось из под прыщей сидишь.
>>814736Код покажи. Мы же не экстрасенсы тут.На крайняк - попробуй в коллбэке после прилета данных(который, наверное, выполняется в основном потоке, так?) не просто обновлять данные и вызывать notifyDataSetChanged(), а постить Runnable в Handler, который связан с Main Thread Looper. Например, создав этот Handler в главном потоке, или же создав его где хочешь вот так:Handler handler = new Handler(Looper.getMainLooper());То есть, например, у тебя будет что-то такое:http://pastebin.com/L28mYi9Q}
>>814736Ну и то, что я предложил - это все-таки хак, тебе нужно проверить свой код, там точно есть какая-то хуита(но есть и шанс, что гуглолибы глючат).Ну и я бы советовал смотреть, для какой строки ты принимаешь данные. То есть если вдруг у тебя отправились запросы сначала для "2ch" и потом для "2ch.hk", то может случиться так, что ответ для 2ch.hk придет раньше, а для "2ch" - позже. Поэтому сравнивай данные, которые получаешь с теми, которые хочешь получить.>>814754-кун.
>>814752>C:\Java\jdk1.7.0_79\bin\java.exe>C:\>из-под прыщей
>>814777>.exe>из-под прыщей
оп хуй
>>814800Через WINE
>>814738Таак, т.е. мне придётся пилить свой сервер?
>>814821А у тебя БД не на сервере?
>>814811Хейтеры буду наказаны.
>>814800gcc hello.c -o hello.exe
>>814827нет, сервера у меня пока что нет.
>>814835Посмотри Firebase, мне кажется, что тебе подойдет. Если вкратце - ты можешь на сервере сохранять данные в виде дерева объектов.
>>814839Т.е. все должны быть наследниками одного?
>>814839Там No-SQL, если не ошибаюсь. Думаешь, хранить до тысячи объектов будет удобно?
>>814843Да.
>>814848И как, удобно? Или начальный класс просто болванка типа обжекта?
>>814847> Думаешь, хранить до тысячи объектов будет удобноХранил там 3000 объектов. Отказался из-за того, что обновляется фаирбейз дольше. 1 мб сети + куча обработки, а с собственным сервером 100кб gzip json.
>>814851Но к своему серверу надо ещё аутентификацию прикручивать
>>814871Пошел нахуй со своим говном.
>>814881Пошел нахуй, говна кусок.
>>814849Да, типа того.
>>814871>>814881Моча, какого хуя это говно всё еще в треде?
>>814752Свежая установка Android Studio. А вот что он не опознал восьмую джаву - это да, странно
>>814910Тестерам Android Studio нужно выдернуть руки. Или просто отрубить их с корнем. Как можно выпустить настолько глючный продукт, да ещё и рекомендовать его как основное средство разработки, я не представляю.
>>815107Ой, иди нахуй, долбоеб. Поставь себе эклипс и жри говно.
>>815333Думаю он про 2.2 версию.
>>815339Тогда он еще больший долбоёб. Ставит превью-версию и чему-то там возмущается.
>>814733 (OP)Короче думаю здесь найдётся кто-нибудь, кто пояснит за MVP.Желательно в виде ссылок на какие-нибудь хипстерские медиумы и чтобы их потом прикрепили к ОП-посту. Ну про медиум шучу, хотя он основной источник всего этого шума.Я просто часто слышу MVP в контексте андроида и сам по сути понимаю, что активити как god-object по сути плохо. Но штука в том что по всей видимости никаких фреймворков, либ и даже просто шаблонов проектов нет. Типо есть упоминания о презентере, а кто как его делает - это дело личное (даже в прошлом треде анон сетовал про организацию своей архитектуры). Ладно, допустим, кто-нибудь даст ссылку про то что вот один чел сделал у себя в проекте каким-нибудь определенным образом. Но у меня проблемы уже в самой терминологии. Модель - тут более менее ясно - вся логика, которая выносится и не зависит от андроида - должна быть вынесена. Правда вот где совершать чтение файлов и баз данных, если для этого нужен контекст - наверное инициализировать модель с помощью аплекейшен контекста.Далее Вью - это активити? Или вью - это делать свои кастомные лейауты на каждый чих и в них завязывать логику отображения?И самое неясное презентер. его соотношение один презентер к одной активити? какие задачи он обычно выполняет?При этом всём наверное ещё используется дагер, чтобы сложнее было найти что где вызывается. И юнит тестам поддаётся только модель? которой передаётся на вход замоканный контекст, файлы, бд и проверяется, что, к примеру, возвращаемый столбец соответствует замоканному?
>>815712Тебя в гугле забанили? На каждый твой вопрос есть ответ в гугле. А делают всё равно все по-разному. И будут дальше так делать.
>>815712> Но штука в том что по всей видимости никаких фреймворков, либ и даже просто шаблонов проектов нет.Ну реально в гугле забанили.
>>815714Бля мне просто хочется пожевать риторического говна типа> А делают всё равно все по-разному. И будут дальше так делать.(Насколько по-разному?) Ну просто знаешь хочется немного общения и реального опыта простых пацанов с двача - люди же сюда за этим и заходят. Независимо от раздела.От статеек с хабра подустал чуток - чисто много текста из разных источников ради кармочки. Ну ладно зачастую там реально неплохая отправная точка.Ладно ок берём рандомную ссылку (одну из первых). https://github.com/konmik/konmik.github.io/wiki/Introduction-to-Model-View-Presenter-on-Android> View is a layer that displays data and reacts to user actions. On Android, this could be an Activity, a Fragment, an android.view.View or a Dialog.Ну всё что даёт андроид - это вью. Ок.>Model is a data access layer such as database API or remote server API.Видимо набор статик методов, чтобы открывать файлики и там например скачивать странички в стринг.> Presenter is a layer that provides View with data from Model. Presenter also handles background tasks.Ну и всем оставшимся заведует презентер. Видимо это, что называется, логика.Всё так, анон? Взаимосвязь вьюхи и презентера в одну и в другую сторону? Если элемент списка в бд изменился, то происходит notifyItemChanged, заранее зная про адаптер или присылается новый список и происходит полное обновление вьюхи? Хах, ладно, в общем-то я уже заебался...Короче можешь ответить за тестирование хотя бы. У меня большинство функций воид и вызываются андроидом. А те, которые более менее чистые - private (ну серьёзно, когда более менее логика накапливается выношу в приватный метод). Мне интересно - неужели у других нормальный воркфлоу, что такого дерьма изначально не накапливается. Или более существенный вопрос - скачиваю xml и паршу в объекты. Мне бы хотелось заранее протестировать парсер, хоть это и внешняя либа, но кто-знает правильно ли аннотации расставлены. Понятное дело, что меня никто не остановит проверить парсер на локальном файлике. Но норм ребята же так не делают? да и в какую папку кидать файл? А вообще если я тебя конкретно так бешу, то просто нахуй пошли. Я на дваче редко засиживаюсь.
>>815789> konmik githubНа этого долбаеба забей, у него там говно, а либа его еще большее говно. Почитай у mosby гайд.
По DI вопрос.Вот у нас есть Component, который мы успешно сбилдили в Application.onCreate. Как этот компонент правильно передавать в активити/презентеры?Если с активити более менее ясно, там в onCreate всегда можно вытащить getApplication и ему сделать метод getComponent, то как быть в презентере? Делать статик геттер апликейшону? Уебанство же.
>>815937Создаешь презентер через DI, нужный компонент добавляешь в параметры контсруктора.DI при создание презентера туда сам передаст нужный компонент.
>>815944А если презентеры создаются через либу (mosby, moxy)?
Чому ваша ёбаная джава не в состоянии сама прописаться в пути? Мне его на бумажку записывать, блять, при установке?
>>815945>А если презентеры создаются через либу (mosby, moxy)?Что это за фигня и зачем через них создавать?
Уважаемые, заранее извиняюсь за тупую просьбу. Просто постоянно все обновляется-меняется и старые гайды чет нихуя уже не помогают. Кто-нибудь может ПОЛНОСТЬЮ, последовательно и для тупых расписать процесс установки всех необходимых инструментов ? Типо сначала андроид студио, окай, какие именно пакеты надо в сдк менеджере, как там подключить джаву, что там с libgdx, надо ли genymotionБыл бы очень благодарен.
>>815971Мог бы и загуглить.
>>815975Хозяин, а если этот колОр?https://www.youtube.com/results?q=installing+android+studio+from+scratch
>>815978Там видосы все старее годаА зимой же вроде эклипс перестали поддерживать
>>815975Ничего никогад не меняется.1) Скачиваешь oracle jdk с сайта oracle, устанавливаешь прописываешь в PATH если за тебя это не сделал твой установщик/менеджер пакетов, проверяешь;2) Ставишь Ведроид студию с SDK, пакеты для каждого свои очевидно, но если это линукс/винда то надо обязательно драйвера. Лично я ставлю несколько последних Android Build Tools, последние Android SDK Platform-Tools и Android SDK Tools, не превью конечно же. Для каждой платформы под которую разрабатываю SDK Platform, ну и конечно из экстрасов кучу всего.3) Genymotion елси тебя не устраивает стандартный эмулятор/телефоны меня устраивают;4) libGDX все просто - у них свой инсталятор, взял и поставил.Джава сама подхватится, если нет, то ты знаешь где она лежит и прописать ее для студии не составит труда. Возможно потребуется добавить в path и что-то андроидовское, что бы студия подхватила.
>>815981>прописываешь в PATHhttps://developer.android.com/studio/install.html>add a new system variable JAVA_HOME that points to your JDK folder, for example C:\Program Files\Java\jdk1.8.0_77JAVA_HOME не достаточно? Надо и в PATH, где javac сидит?
>>815982>JAVA_HOME не достаточно? Надо и в PATH, где javac сидит?Тебе так сложно добавить и проверить? Ты видишь что бы там писалось ДОБАВЬТЕ JAVAC_HOME?
>>815983Задам вопрос иначе. Где проверить в Studio, что джава видна?
>>815987Открываешь консоль и пишешь туда "java -version". В студии можешь открыть File -> Project Structure и там сразу будет видно пути к сдк и jdk.
>>815992Короче, прописать как JAVA_HOME, вроде, достаточно. В PATH я не прописывал. javac -version в консоле не вызывается
>>815997Ну это не очень хорошо, попробуй собрать проект, у меня есть сомнения.
>>815980> А зимой же вроде эклипс перестали поддерживатьАга. Прошлой.
>>815998проверю дома, посмотрев видосах, куда давить и вообще
>>815924Аргументированно.
>>815963Да успокойся ты, даун. У всех всё работает. Хватит тред засирать.
>>816094Конкретно в nucleus нет поддержки вьюстейта из коробки. С учетом deprecated getView, его приходится оборачивать null чеками и //noinspection deprecation из-за того, что его restartable говно вообще не подходит для неасинхронных операций в стиле: нажал кнопку -> вызвал презентер -> презентер сказал вьюхе переименовать кнопку, и приходится либо прокидывать вьюху параметром, либо получать удовольстивие от зачеркнутого и разукрашеного желтым кода.> Do not try to make your Presenter control your ViewНу и у он охуительно затирает, что вьюха что-то да должна сама решать, а не быть просто вьюхой, поэтому он и сделал этот убеанский механизм restartable.> But when control goes like this: user -> view -> presenter -> view -> presenter -> model -> data, it is just violates KISS principleКококо нарушение КИСС. Простейший пример. Начать по кнопке загрузку и показать прогресс бар. Как должно быть: buttonClick -> presenter.load -> view.showLoading, но он затирает, что так делать неправильно, и вьюха сама должна решить, переходить ей в showLoading или нет, хотя это явно отвественность презентера.
>>815789> Взаимосвязь вьюхи и презентера в одну и в другую сторонуЗависимость только в одну (вьюха от презентера), а так они друг дружку по очереди вызывают.> Если элемент списка в бд изменился, то происходит notifyItemChangedИ как ты это словишь? У тебя курсор полностью ресетится если меняется один элемент запроса.> Но норм ребята же так не делаютХули нет то?Это если ты полностью network service тетируешь, то да, ты мокируешь сетевой вызов как "норм ребята". А когда у тебя цель тестирования только парсер то почему бы и нет?
>>816113Вот теперь действительно аргументированно.
>>816113>неасинхронных Что-то прям с подливой проиграл с этого.Вообще со своим ариксом обезумели нахуй. Даже значения слов уже не понимают.
>>816364Что тебя не устраивает, даун?
>>816364В посте ни слова про rx. Или для тебя асинхронные операции только через него делаются?
>>816429Просто он даун.
Студия var properties котлина подчеркивает, в этом есть какой то сокральный смысл, или можно отключать нахуй чтобы глаза не резало?
>>816598А что пишет у меня на IDEA CE не подчеркивает?
>>816605Ничего. Как пример:lateinit var presenter: PresenterИ это подчеркивание везде у этого поля, а когда в строчку несколько обращений к такому полю то пиздец глаза вытекают.
>>816608Если ты про это (пик 1), то так подчеркиваются любый изменяемы объекты (свойства, переменные и тд).Отключается в настройках темы (пик 2).Хотя это ведь не спроста. В котлине более идиоматично использовать immutable свойства и переменные.И "плавающих" ошибок меньше будет из-за хранения изменяемого стейта.
>>816617Вот как чувствовал, что тот даун и котлинофаг - это одно лицо. Так и оказалось.
>>815789На хабре есть нормальное описание MVP, где все разжевано более чем достаточно... Линк: https://habrahabr.ru/post/278815/
>>816697Настолько MVP, что у них модель через ивент-бас с представлением общается.Десять MVP из десяти просто
Android StudioБывает такое, что код ведет себя не адекватно в определенном классе, будто его изменения не влияют на работу? Потом ты удаляешь апп, ребилдишь и все встает на свои места?Я уже который раз трачу время в пустую, когда нужно почистить прост :)
>>816841Бывает.
>>816841instant run?
>>816847Нет, я даже выгружаю приложение руками.На мой взгляд это пиздец
>>816841Да, ресурсы пропадают, и падает с БЭД НОТИФИКЕЙШОН. Все этот инстант ран, чего не сделаешь ради быстрой сборки.
>>816853То что ты там выгружаешь скорее всего не помогает, так как инстант ран разбивает на несколько дексов, и что-то в результате херится так как он думает что все будет ок. Но это елси много изменений сразу замутить.
Аноны, как правильно поступать в такой ситуации: например, у меня есть 3 фрагмента. В первом должен быть просто тулбар, во втором коллапсинг тулбар, в третьем тулбар с табами. Мне в мою хост-активити надо бахнуть в тулбар всё возможное и потом, смотря какой фрагмент, делать что-то visible, а что то gone?
>>816903Да
Аноны, подскажите, я смогу в андроид N использовать java-либы скомпилированные в байткод восьмой джавы (там где версия класс файлов 52)?
>>815712Есть какое-то мосби, и ему подобные решения.С лоадерами, файлами и т.д. - это пихают уже в зависимости от реализации либо отдельно, либо в презентер, либо во активити/фрагмент.Советую определиться с тем, что ты хочешь. Разные реализации хорошо подходят под некоторый круг задач. Топового решения нет.Алсо, многие юзают мвп чисто для разделения логики.
Я захотел стать у мамы читором и украсть у тутошних мамкиных програмистов сраные два бакса.Накатил рут, скачал гейгвардин, но что то нихуя не получается хакать игрули. Нечетким поиском нахожу какие то значения, но что с ними дальше делать чтобы стать бохатым не пойму.
>>817014F R E E D O M/ Lucky Patcher
>>817015ШТОБЕ ГУГЛ МНЕ ВСЮ ПАРНУХУ УДАЛИЛ И В ПЛОНШЕТ НИЗАХОДИЛО!?!?!?!?фридом требует аккаунт гугля, лакипатчер на то и лаки что не всегда выходит. Плюс, есть игрули в которых нихуя доната нету, но читерить в них хочется.
Имеется такая разметка<LinearLayout...> <FrameLayout... android:id="@+id/fragmentContainer"> <ImageButton.../> <ImageButton.../> <ImageButton.../> </FrameLayout ></LinearLayout >и примерно такой код:public void onClick(View v) { ... transaction= fragmentManager.beginTransaction(); transaction.replace(R.id.fragmentContainer,fragments[color]); transaction.commit(); }Результат на картинке: фрагмент рисуется поверх кнопок. Как сделать, чтобы кнопки рисовались поверх фрагмента?
>>817019Вынеси fragmentContainer в отдельный framelayout|FrameLayout|-|FrameLayout (@+id/fragmentContainer)|-|LinearLayout|--|ImageButton|--|ImageButton|--|ImageButton|
>>817023Спасибо, попробую
>>817023Еще раз спасибо, заработало!
Подскажите способ отправки файлов метров по 50-100 по http без outofmemory? Я использую multipart, в котором дроблю его на пятиметровые куски, но где-то на четвертом оно падает
>>817048> отправки файлов метров по 50-100 по http без outofmemoryFileInputStream> Я использую multipartЧерез что ты отправляешь (URL, Retrofit, HttpClient)?
>>817048Отправки куда? Тот же твиттер с фейсбуком таки поддерживают твой способ, в котором нужно указыват байтовые смещения.
>>817053HttpUrlConnection обычный>>817054просто на некий сервер
>>817055> где-то на четвертом оно падаетПокажи код, похоже у тебя утечка
>>817055А этот некий сервер сервер поддерживает такой аплоад чанками?Да и вообще проще код показать.
>>817058чанки, точно. Вот в какую сторону надо гуглить...>>817057код такойhttp://pastebin.com/ZPXLGjic
>>817062Пробуй flush после каждой записи буффера.
Есть какой-то нормальный виджет, который можно с любой позиции влево и вправо свайпать? А то все зацикленные вьюпейджеры какие-то хуевые.
>>814733 (OP)на чём разрабатывать, если все ide на java -ресурсоёмкое тормознутое говно?
>>817089Не разрабатывай. У меня все летает, проблемы на вашей стороне.
>>817089Попробуй в Atom или VIM, собирать один хрен в конце придется через gradle.Так же разработку "бизнес слоя" можно вынести в отдельном java-se модульи проверять правильность юнитестами, выполняемыми на дексктопной java.Дядя Боб скажет "молодца".
>>817071не помогло
>>817116Подключи ретрофит и отправь через него, должно работать норм. Или ручками через okio.
>>817116Скинь эксепшен и точно место где он возникает.
>>817140http://pastebin.com/6mv7ESMpВот здесьdos.write(buffer, 0, bytesRead);
>>817154Добавь conn.setChunkedStreamingMode(0)
Сап, кто работал с Glide. Возможно ли с помощью этой либы спокойно работать с ImageButton?
>>817183Не работай с ImageButton. Нахуй она тебе нужна? Что ты подразумеваешь под "спокойно работать"? Загрузить (+ трансформировать) картинку без еботни в ImageButton можно так же как и в ImageView.
>>817172Кажется, это колдунство заработало. Осталось только понять почему
>>817364Не работай с ImageButton. Нахуй она тебе нужна?а какие альернативы?
>>817386загружать картинку для кнопки какой-то маразм
>>817386Чего тебе не хватает в ImageView?
>>817094конечно на нашей: заоблачные системные требования java ide не удовлетвворил. На заоблачность требований всем похуй.
>>817371>This method is used to enable streaming of a HTTP request body without internal bufferingБуффер съедал всё память
>>814746Пожуй какашек, ебанашка. небось 4гб оперативки?
>>816903Нет
>>817549ImageButton
В DI нужно иметь отдельный компонент на каждый экран, или один единый компонент инжектящий во все возможное?Если будут разные компоненты, то синглтоны же будут синглтонами на компонент или на все приложение?
>>818222Повторяю вопрос. Что для тебя есть в ImageButton'е такого, чего нет в ImageView?
>>818221Ну а как надо?
>>818279Сделать разные активити? Чет слабо верится что это все у тебя через дровер связано, а если связано то нахуй такой дизайн.
>>818300А, ясно
>>816903Просто объяви тулбары внутри фрагментов, а активити сделай NoActionBar
Двощ у меня апатия. Пытаюсь стать джуниором, сделал пару проектов. Ну как, сделал. Функционал довольно примитивный, дизайна нет, но кое-что изучил по ходу работы.Два круда с некоторым функционалом и один дёргающий данные из рест апи и показывающий картинки в gridview.Заебали, довёл до определённой логической стадии и видеть их не могу. Решил отдохнуть от практики и подучиться немного.Какие мастхэв скиллы должны быть у джуниора?Из того что точно ещё не использовал/не знаю: ContentProvider, Loader, анимации, датчики, камера, микрофон, карты. Не использовал почти никаких либ, хотел бы разузнать зачем и куда применить хуиту типа dagger, rxjava, event bus.Хотел бы попробовать MVP или чистую архитектуру, но в туториалах везде куча библиотек используется, да и не знаю надо ли мне всё это на данном этапе.Короче, куда мне сейчас податься? Есть пару туториалов по библиотекам и MVP, есть курсы на юдасити, есть гайды в Busy Coder’s Guide.
>>818364Устраиваешься джуниором.
>>818387А что, этого хватит на джуна? В хохлостране сейчас не оче с вакансиями, боюсь никто не возьмёт меня такого как сейчас.Энивей, я смогу на фуллтайм пойти только начиная с октября, поскольку есть некоторые дела ИРЛ. Вот думаю до этого времени скилл поднять.
>>818410>только начиная с октября, поскольку есть некоторые дела ИРЛИди лучше к перездачам готовься, а то в котле придется джинуть
>>818416Я уже давно выкатился из шараги и меня могут призывать в любую секунду
>>818343Что тебе ясно, ммм?
>>818416Зарепорил промытого дауна.
>>818488Что твоя мать шлюха.
>>818488>это все у тебя через дровер связано, а если связано то нахуй такой дизайн.
Сап, аноны, выручайте. Пишу список, добавление в который производится динамически. Для каждого View использую ViewHolder ибо элементов внутри вьюхи много. Сначала добавляю первый элемент, все ок, создаю View, нахожу все что внутри и пишу это в ViewHolder. Когда я добавляю в список ВТОРОЙ элемент, и вызываю notifyDataSetChanged(), происходит вот что:1. Вызывается getView() для первого элемента, convertView равен null (при этом помним что у первого элемента уже было ранее созданное View), поэтому приходится заново его создавать и все находить.2. Вызывается getView() для второго элемента, при этом в качестве convertView выступает то View, который раньше (еще до добавления второго элемента в список) использовалось для первого, соответственно все ссылки в его ViewHolder'е указывают на вьюшки первого элемента списка, и приходится находить их сначала. Если бы для первого элемента можно было использовать то View, которое для него использовалось раньше, а для второго создавать новое, то все было бы збс. Можно ли это как-то организовать? Я спрашивал здесь: http://stackoverflow.com/questions/38790574/getview-has-its-convertview-null-for-already-existed-item-when-i-add-new-item, но там написали что сделать этого нельзя, мб тут кто-нибудь шарит? RecyclerView не предлагать
>>818586>Для каждого View использую ViewHolderкак я понял, тебе нет смысла юзать ресайклер вью, всё равно там нечему ресайклиться. Складывай всё просто в скролл вью
>>818586Я не понимаю, в чем твоя проблема. Ну уйдет твоя конверт вьюха второму элементу, пиздец потеря. Ты все равно вьюхам будешь данные назначать в любом случае, даже если они там есть.> RecyclerView не предлагатьСхуяли? Хотя он все равно тебе перебиндит вьюху.
>>818611>>818611Дело не в назначении данных, ViewHolder хранит ссылки на вьюхи, входящие в состав элемента списка, а потеря в том, что тогда придется находить все эти вьюхи заново (около 20 элементов на каждый элемент списка). Причем даже если convertView != null это не означает что можно просто достать все из ViewHolder, придется заново вызывать findViewById() для каждой вьюхи и только потом присваивать им значения. Более того, раз уж теперь convertView != null не гарантия того, что не нужно искать вьюхи заново, искать их придется и в том случае, когда мы просто пролистываем список (хотя в этом случае их как раз таки можно взять из ViewHolder)
>>818618> что тогда придется находить все эти вьюхи заново Нет, в этом и суть вьюхолдера. Вьюхолдер привязан к конкретной вьюхе, внутри которой конкретные объекты вью, которые при конверте не меняются.
>>818622Смотри, если взять случай со вторым элементом списка, convertView != null, но во вьюхолдере этого convertView хранятся ссылки на вьюхи первого элемента, поэтому придется их искать заново чтобы они ссылались на вьюхи второго элемента. Тут без поиска точно не обойтись. Можно конечно вообще не использовать вьюхолдер, но он как раз-таки нужен в тех случаях, когда getView() вызывается не при добавлении нового вью в список, а при скроллинге.
>>818627> но во вьюхолдере этого convertView хранятся ссылки на вьюхи первого элемента, поэтому придется их искать заново чтобы они ссылались на вьюхи второго элементаВо вьюхолдере convertView хранятся ссылки на вьюхи внутри этого convertView. convertView похуй, какой она идет по счету.Ты не понимаешь сути адаптера, и я даже не знаю как тебе объяснить ее не расписывая целую статью. Надеюсь ты найдешь такую.RecyclerView даже будет понятней для понимания этого механизма.
>>818628>Во вьюхолдере convertView хранятся ссылки на вьюхи внутри этого convertViewНу я с этим и не спорил вродеМне кажется ты просто не понял меня. Когда я вызываю getView для второго элемента, в качестве convertView я получаю то View, которое раньше использовалось для первого элемента, а значит внутри вьюхолдера этого конкретного convertView хранятся ссылки на те вьюхи, которые используются в данный момент первым элементом списка, правильно?Теперь если я просто возьму эти элементы из вьюхолдера и запишу в них данные, предназначенные для второго элемента, то по сути я перепишу их для первого элемента, а это совсем не то что я хочу сделать
>>818641> Теперь если я просто возьму эти элементы из вьюхолдера и запишу в них данные, предназначенные для второго элемента, то по сути я перепишу их для первого элементаДа, и это ок.> а это совсем не то что я хочу сделатьНу что ж поделать. Вьюха должна просто показывать данные, а всякие состояния нажата кнопка, не нажата, ты должен хранить не во вьюхе.
>>818646Просто тогда получается, что если не находить вьюшки заново, то все вьюшки любого элемента списка будут ссылаться на вьюшки первого элемента (так собственно оно и есть, когда я например чекаю чекбокс в 6-м элементе он чекается у всех остальных тоже)>состояния нажата кнопка, не нажата, ты должен хранить не во вьюхеХм, спасибо, подумаю над этим
Ребят, поясните за The Busy Coder’s Guide to Android Development. Читал некую русскоязычную литературу по андрею. Хочу перекатиться в англоязычную The Busy Coder’s Guide to Android Development.Есть ли вариант вникать в такую литературу, учитывая несильный английский?
Не совсем понял. Почему у меня при создании проекта с минимальным API 14: class MainActivity extends AppCompatActivity?С какой версии можно использовать Activity?
>>818800С 4.0 же можно? AppCompatActivity только для устройств с < 4.0 ведроидом?
>>818800И вообще, есть ли смысл использовать Activity вместо AppCompatActivity? То же самое, но + обратная совместимость, разве нет?
>>818804Я так понимаю, раз минимальное API 14 - то я могу спокойно использовать Activity, а на других приложение все равно не запустится?
Почему Material design выглядит, словно даун-первоклассник нахуярил в паинте кружков и прямоугольников из двух вырвиглазных цветов?Почему отсутствие дизайна в куче статей называется "то касается визуально-функциональной части, то Google удалось объединить принципы хорошего дизайна с инновациями и возможностями новых технологий и науки.Material design базируется на тактильной реальности, вдохновлен изучением бумаги и чернил, технологически продвинут и открыт для воображения и магии."?
>>818809Потому что. Дизайнеры решили. Ты не дизайнер, и вообще способен только на субъективные оценочные суждения.
До меня тут дошло наконец, что мне нужен МЕНТОР, т.к. я застопорился.Либо готов вступить в проект.вкtiper2014Рассмотрю задания энивэй я вообще за любую движуху
>>818823Сколько готов заплатить?
>>818824по стандартному прайсу
>>81882520к есть в месяц?
>>818826найду
>>818641Оказалось что проблема была в том, что listView по высоте был выставлен в wrap_content, из-за этого для отрисовки каждого элемента списка getView вызывался по 2 раза, при этом в качестве convertView передавался один и тот же элемент (хз почему). Исправил на match_parent и все заработало
>>818804> Activity вместо AppCompatActivityЕсли хочешь разный дизайн на разных устройствах то юзай. AppCompatActivity тащит за собой материал дизайн.>>818809Ну ананасу с харкача виднее как дизайн делать. Можешь портировать иос дизайн на ведро 1 в 1, есть каста самых пришибленных заказчиков, они как раз так обожают.
>>818272мммб ImageButton
>>818279Ну, например, у меня сделано так.Есть класс от которого наследуются все фрагменты, например "BaseFragment".На стадии создания активити, я запихиваю все свои фрагменты во фрагментменеджер и хайдю их там, чтобы они не перерисовывались.В базовом классе я проверяю при изменении статуса isHiddenhttp://pastebin.com/btBVwZa9 и пихаю тулбары, которые прописаны в лейаутах фрагментов. Подводных камней не вижу.
Какой смарт лучше купить для тестов? Нексус?
>>819144Да, тогда точно все будет ок, но жди что на других устроствах некоторый функционал может отваливаться.
>>819186Спасибо, ну есть эмуляторы.
>>819187заебешься на эмуляторах все тестить.
Пытался привинтить navigation drawer. Спросил у коллеги в двух словах описать как это делается и тот направил подсмотреть в шаблонах студии. Смотрел туда и еще статейку из гугла, где наворотили и табы и тулбар, и все что угодно. В шаблоне тоже наворочено много ненужной мне левоты через координаторы. Понял, что не понимаю как работает координатор и много много смежных элементов. Короче, вопрос такой: где почитать (на русском языке, желательно) последовательной от простого к сложному информации по теме? Это же называется material design?
Анончики, как через VK API получить список групповых чатов? У самого VK API какая-то бедная документация.У меня сейчас так://----------------------------------------------------------@Overridepublic void onActivityResult(final int requestCode, int resultCode, Intent data){ if(VKSdk.onActivityResult(requestCode, resultCode, data, new VKCallback<VKAccessToken>() { @Override public void onResult(VKAccessToken res) { mAccessToken = res; } @Override public void onError(VKError error) { finishActivity(requestCode); } })) { super.onActivityResult(requestCode, resultCode, data); } VKRequest dialogsRequest = VKApi.messages().getDialogs(VKParameters.from(VKApiConst.ACCESS_TOKEN, mAccessToken, VKApiConst.COUNT, 200)); final VKCommentArray dialogs = new VKCommentArray(); dialogsRequest.executeWithListener(new VKRequest.VKRequestListener() { @Override public void onComplete(VKResponse response) { super.onComplete(response); try { dialogs.parse(response.json); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onError(final VKError error) { Log.i("ERROR", error.toString()); } });}//----------------------------------------------------------Но реквест всегда выполняется с ошибкой. В error.toString() строка "VKError (API errorVKError (code: 15; ; Access denied: no access to call this method))".AccessToken вроде передаю нормально. Может, дело в разрешениях в самом вк на страничке приложения? Какое разрешение нужно, чтобы просматривать групповые чаты?
Сап, подскажите какую базу данных лучше использовать для выгрузки данных из интернета в приложение. MySQL?
>>819518SQLite
>>819511Читать умеешь?
>>819505Все очень просто.1) Базовый DrawerLayout, так в принципе уже мало смысла делать: https://developer.android.com/training/implementing-navigation/nav-drawer.html2) С "новым" NavigationView: http://www.android4devs.com/2015/06/navigation-view-material-design-support.htmlА вообще если ты не можешь разобраться в семплах, то пизда тебе короче.
>>819524Это какой из?
>>819532Не ебу что это за окошко, но тебе нужно при запросе токена на клиенте добавлять нужные пермишены.
>>819530> так в принципе уже мало смысла делатьПока пидорасы-дизайнеры будут делать собственный дизайн бокового меню а такие найдутся всегда, смысл будет.
>>819543С NavigationView это всеравно проще будет скорее всего.
>>819541Это в VKSdk.login()?Я вызываю VKSdk.login(this, null). И не ебу, что можно поставить вместо null. Сигнатура функции такая:VKSdk.login(Activity runningActivity, String... scope); Что такое scope? Что он вообще должен делать? Гугл-переводчик переводит это как "объём". Какой нахуй объём?В документации ни слова нет об этой функции. Примеров тоже нет. Я догадываюсь, что вместо scope нужно что-то подставить, но не ебу что.
>>819546>String... scopeЭто разрешения, которые запрашивает приложение при доступе к функционалу ВК.
>>819546>Что такое scope? Что он вообще должен делать? Гугл-переводчик переводит это как "объём". Какой нахуй объём?Ты нахуй сюда пришел? Ты документацию читал? Ещё что-то где-то посматривал? Банально, сука, открой сорцы VKSdk / Starts authorization process. If VK app is available in the system, it will be opened to request access from user. Otherwise, UIWebView with standard UINavigationBar will be used. @param activity current running activity @param scope array of permissions for your applications / public static void login(@NonNull Activity activity, String... scope) { VKServiceActivity.startLoginActivity(activity, requestedPermissions = preparingScopeList(scope)); }
>>819550То есть я, например, должен вызвать VKSdk.login(this, "messages")?Хуле об этом в документации не написано? Почему даже примеров нет? Пиздец. Блядь, ну посмотрите вы на MSDN - образец превосходной документации. На каждую(каждую, блядь!) функцию расписаны подробно все её параметры, какими они могут быть, что должны делать, ещё и примечания внизу на случай самых разных непоняток. А тут "ну короче у нас есть такая функция, используйте её, только мы не скажем, как".Я вот знаю только одно значения слова Scope - это область видимости внутри скобочек в языках программирования. А у них, блядь, так параметр называется незадокументированный.Пиздец, просто пиздец.
>>819551А, это же джава. Документация не там, где она должна быть, а по сорцам размазана тонким слоем.
>>819552>Хуле об этом в документации не написано? Ой, все. Иди нахуй, жопочтец.
>>819553И это хорошо.
>>819546>>819552Ты просто не очень умный. Ничего страшного. JS тред вперед по коридору и на лево.
>>819560Ссылку забыл, вот ВСЕ расписано с примером блять рабочего приложения. https://github.com/VKCOM/vk-android-sdk
>>819561Я думаю с жс ему будет тоже сложно. Пусть уебывает дворы мести.
>>819555Да, давайте хранить документацию непонятно где, а потом называть всех жопочтецами.>>819559Чем хорошо-то? Блядь, джава же - ООП-язык. Её создатели должны понимать важность таких вещи, как инкапсуляция и отделение чёрного от белого. Тогда хули у них сорцы вперемешку с документацией идут, когда это две отдельных сущности? Хуле пользователю нужно залезать во внутренности реализации, чтобы узнать, как обращаться с интерфейсом? Где основные принципы, блядь?Блядь, и так у них в этом плане всё хуже, чем в C++, так нет же, они ещё дополнительно всё смешивают. Так делать нельзя.
>>819560Странно, что в C++ таких проблем не возникает. МОЖЕТ, ПОТОМУ, ЧТО ТАМ УМЕЮТ ДЕЛАТЬ ДОКУМЕНТАЦИЮ?
>>819565Отделил свое жидкое от своего длинного за твою щечку. Проверяй.
>>819565> Тогда хули у них сорцы вперемешку с документацией идутАлло, твой MSDN генерится автоматически с исходников. Так же работает и javadoc.https://msdn.microsoft.com/en-us/library/5ast78ax.aspx
>>819565>>819567Ой вася, javadoc это приятное дополнение. Документация зависит от создателя, а не от языка. Команда ВК не потрудилаьс сделать отдельную доку, но у самой джавы и андроида, а так же хороших либ есть свои документации где все расписано.
>>819563Это форс какого-то поехавшего из джава треда, всех направляет в js. Я только ленивых туда отправляю.
>>819570Ты не на тот язык документацию смотришь. Вот примеры превосходной, написанной вручную документации:https://msdn.microsoft.com/en-us/library/windows/hardware/ff551072(v=vs.85).aspxhttps://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v=vs.85).aspxhttps://msdn.microsoft.com/en-us/library/windows/desktop/ff476082(v=vs.85).aspx>>819571Ну допустим, тут ты прав. В любом случае, документация VK API - говно. А оставлять в продакшене в качестве документации комменты в сорцах может только идиот.
>>819575Ну у Вк не самая худшая документация. Эхх помню пару лет назад смотрю документацию гугла, а потом понимаю что там все диприкейтед и мне нужно форсировано включать английскую версию что бы увидеть новую. Или фейсбук где ты навсегда потеряешься среди ревизий и новых версий, а поиск кидает тебя обязательно на старое.
>>819575>А оставлять в продакшене в качестве документации комменты в сорцах может только идиот.Ебаните этому дебилу чем нибудь тяжелым по голове.
>>819577Но они могли хотя бы сделать отдельную веб-страничку с описанием всех методов для Android SDK. И читать удобно, и в сорцы лезть не надо.В любом случае, всем спасибо.
>>819580>и в сорцы лезть не надоИ еще пальцы молотком отбейте, чтобы никогда печатать не смог.
>>819519так, а как её связать с хостингом?
>>819581>>819578Как ты вообще с такими понятиями на ООП-языке пишешь?
>>819585Очевидно что лучше чем ты. А ты в каком то манямирке живешь.
>>819583Кажется тебе ответили на другой вопрос. Ты спрашиваешь какую базу тебе использовать на бекенде, или какую базу тебе использовать на клиенте? Если второе, то конечно SQLite, а как ты связывать атм будешь, ну хуй знает, можешь с сокетами поебаться, можешь SOAP, моешь REST Api. Тебе открыты все двери.
>>819586>лучше чем ты>Не умеет отделять интерфейс от реализацииНет, ну ты серьёзно?
Так задемпинговать рынок - это надо постаратьсяhttps://hh.ru/resume/25064bdf00020df79e0039ed1f776b326e4b36?query=Androidhttps://hh.ru/resume/a18adba50001ce6ce50039ed1f725a6f6a3548?query=Androidhttps://hh.ru/resume/891c957b0002dd62780039ed1f503762326f48?query=Android(вообще пушка, 10к рублей)https://hh.ru/resume/722403a50002cbcacf0039ed1f394b384e3344?query=Androidhttps://hh.ru/resume/62241aaf00021cdeac0039ed1f724737414f43?query=AndroidЗП меньше тестеров, блять
>>819597Что ты несешь?>>819607Это ж джуны.
Аноны, поясните за тестирование.Есть одно приложение, которое построено вокруг взаимодействия с несколькими сетевыми API. Для каждого апи есть класс-обертка, методы которого оборачивают параметры в HTTP запрос и шлют его на сервер.Так вот, как это дело правильно тестировать? Очевидно что мне в тестовом нужно как-то подменить класс, отсылающий реальные запросы, на другой, который отвечает просто заранее заготовленным ответом. Как это лучше сделать? Понятно что надо выделить интерфейс, настоящую и тестовую реализации. А вот что делать дальше?Тестирование при этом проводится автоматически на CI-сервере, так что вариант "перед тестами вручную что-то менять в коде" не катит.Я пока вижу два варианта:1) В коде теста в явном виде вызывать метод у моей Activity, который запишет в нее нужный мне экземпляр апи.2) Выделить Factory этих апи, сделать отдельный flavour для теста и для реальной версии, в которых они будут отличаться буквально в одной строчке кода - в реальном создаваеом классе.Есть еще какие-то Dependency Injection типа Dagger 2, я их смотрел но они мне кажутся какими-то дохуя навороченными для такой простой задачи.
>>819671>тестирование>2016
Гугл заменит java на swiftПердаки горятhttps://lenta.ru/news/2016/08/14/newgoogleos/
>>819730Скорее пердаки будут гореть у intellij
>>819730>лента
>>819730В статье ни слова про свифт. Это очень даже хорошо если уберут все старые костыли и начнут заново.
>>819734А при чем тут жетбрейнс, их идеешки все равно лучше.
>>819734Им то че? У них аппкод есть.
>>819703> 2016> писать глючный индусский код без тестирования и непрерывной интеграции
https://lenta.ru/news/2016/08/14/newgoogleos/Сушим весла пацаны
>>819842Глаза протри.
>>819730>>819842Съеби, а?
Здарова, мужики. Чего-то у вас бедно по инструментам. Хочу вкатиться на месяц-другой, запилить чисто себе говноприлагу типа клиент могильный для сайта, но не хочу/не буду джяву. Ксамарин отпадает так как ради него не собираюсь ставить прошивку для игорь. Что еще есть? В курсе про ндк, это пиздец геморно. Сам чаще пишу на питоне и го. Выблядок хипстерский, ага Что посоветовать можете, кроме бочки и хуйцов?
>>820330cordova и съебать в js тред
>>820341Я натурал.
>>820330Напиши на Хаскелле. После го и питона вообще просто будет https://github.com/neurocyte/android-haskell-activity/blob/master/src/HaskellActivity.hs
>>820352Норм, спасибо
>>817048Посмотри как это через retrofit делается, я конечно на 100 мегов не отправлял, но на 4-5 тянет легко
>>820348Натуралы на андроид пишут на джаве, ну в крайнем случае на котлине. Если тебе сделать копию сайта то действительно cordova твой друг.
>>819530Это опять я. Разобрался немного с шаблоном по nav-drawer-у. Но там создается немного не то. В шаблоне вызывается drawer по нажатию на кнопку в тулбаре, и все это делается через toggle. Я написал то же, что было здесь: https://developer.android.com/training/implementing-navigation/nav-drawer.html за исключением мест, связанных с этим toggl-ом. Казалось бы, пальцем уже можно что-то выдвинуть, но пока нихрена не выдвигается. Вообще, я пытаюсь привязать выдвижение drawer-а к какой-то своей кнопке на экране а тулбар вообще у меня отсутствует. Что мне делать?
>>820408Ну хуй знает, у меня все ОК.
>>820426>>820408Лэйаут активити.
>>819671Бамп вопросу. Неужели никто тут юнит-тесты на ведре не делает?
Сап, резонно ли использовать AccountManager в более-менее крупном проекте ? (Авторизация через свой сервер со своими соотв. данными)
>>820408Если б-г разумом не наделил, то можешь например поюзать либу от Mike Penz-а, а так, статей по навигации тысячи
>>819751ИМХО, жаба достаточно вменяема для создания стандартных приложений, нафига что-то менять я понять не могу, лучше уж пусть запилят сборку побыстрее в студии...
>>820447Сборка и так быстрая, если дать памяти и в отдельной жвм.Я не про косяки джавы, у самого андроида жуткая фрагментированность и куча старых болячек, их надо уничтожить, новая система это могла бы сделать, но вряд ли они откажутся от нашего нелюбимого зеленого гомункула.
>>820447Андроид был типичным стартапчиком. Его побыстрому сляпали из говна и палок и вовремя заняли нишу.Теперь, когда andorid принадлежит ~90% рынка, нужно переделывать нормально.По опыту наблюдением за развитием WindowPhone, я тебе гарантирую, там будет:1) обратная совместимость со старыми android приложениями2) нормальное обновление в независимости от производителя (как у iOS/WP)Так что для людей, которые учились программировать, а не задрачивать Java+AndroidAPI - все только в плюс.
>>820447>нафига что-то менять я понять не могуТам вроде всякие легальные терки с ораклом были, который та еще корпорация зла с анальнейшими лицензионными соглашениями, просто не разменивается на мелочи и суды с кем-то меньшим чем гугл.
>>820465Господа, вот какое будущие нам готовит Google:0) OS НЕ на ядре Linux, а чистая Виртуальная Машина, работающая прямо на железе1) Atom вместо IDE2) Dark вместо языка3) ReactJS/Native стиль разработки UI и при этом полностью в коде4) Кроссплатформа (android/ios/fuchsia) из коробки, это частино решит проблему миграции (android->fuchsia)5) Material Design везде (и на iOS)Пользователи macOS/Linux могут уже сейчас ощутить на губах вкус новой жизни https://flutter.io/getting-started/
>>820535>2) Dark вместо языка2) Dart вместо языка
>>820442Да.
>>820535Просто иди нахуй.
>>820465> По опыту наблюдением за развитием WindowPhoneЭто которая благополучно сдохла?
>>820580Аноняшь, умерь агрессию, я же не говорю что это хорошо.Я просто, принес последние новости из Android мира.
>>820589Какие нахуй новости? Хватит всякое говно читать и новостями это называть. Заебали со своими истериками.ГУГЛ ДУМАЕТ ПЕРЕЙТИ НА СВИФТГУГЛ ДУМАЕТ ПЕРЕЙТИ НА ГОГУГЛ ДУМАЕТ ПЕРЕЙТИ НА РЕАКЕТЖСГУГЛ ХОЧЕТ ПЕРЕЙТИ НА ФУКСИЮИ так, сука, каждый месяц. Необучаемые.
>>820535Какой смысл в этой говняной смеси из жса и жавы?
>>820593В истерике, здесь бьешься только ты небось еще и не java пишешь.Интеллигентные разработчике #slack, с интересом обсуждают эту новость.http://www.androidpolice.com/2016/08/12/google-developing-new-fuchsia-os-also-likes-making-new-words/
>>820601> Хватит всякое говно читать и новостями это называть.
Раз в месяца 3 берусь за новый проект и заканчиваю подключением GCM и это пиздец. Каждый раз всплывают какие то новые баги и несовместимости с обновлением множественных "модулей", рождаются новые костыли. Просто в голове не укладывается что я трачу на это время. По сравнение с "этим" в iOS Apple уже все за тебя сделали.
>>820593> ВРЕЕЕЕЕТИЗадания жавараш уже подходят к концу? :3
>>820600>Какой смысл в этой говняной смеси из жса и жавы?Ты про Dart? ХЗ, спроси у Google.Наверное что бы подмять всех под себе: OS принадлежит Google, язык теперь тоже Google.Хреновая вообщем тенденция, лучше бы сделали легкий дистрибутив Linux для мобилок.Все бы, тогда писали бы на чем сами бы захотели.
>>820613Да-да, АНДРОИД СКОРО ВСЁ.То его Ксамарин похоронит.То РеактНэйтив.Теперь вот Фуксия.Джава тоже СКОРО ВСЁ.Сначала её убъет Котлин.Потом её убъет ЖС.Потом её убъет Дарт.
>>820535Кстати, по последним данным вроде бы Intel Multi-OS Engine закрылся.Видимо, Intel поняли что не смогу тягаться с Google на умирающей платформе.
>>820620Не пизди, они на той неделе новый релиз выкатили.> на умирающей платформеШто?
ЧЯДНТ?Intent intent = new Intent(this, RegistrationIntentService.class);startService(intent);
>>820625в манифесте прописал?
>>820628МАНЯФЕСТ гыгыг
>>820426Странно. Вроде тот же код, а работать не хотитhttp://pastebin.com/YkfCPzGx
>>820628>>820625InstanceID instanceID = InstanceID.getInstance(getApplicationContext());Вот так сработало без ошибки и выдало токен. Апи 17.
>>820621>Не пизди, они на той неделе новый релиз выкатили.Ну ни трялль плиз1) последний билд от 20 мая2) форум разработчиков, уже в корзине
>>819552>Я вот знаю только одно значения слова Scope - это область видимости внутри скобочек в языках программирования.Говна тебе в кашу.
>>819752>>819770Они как бы котлин разрабатывают.
>>820625Нахуй тебе маслонож, когда есть православный датабиндинг?
>>819730>>820593>>820617
>>820688Оракле их просто доебало уже
>>820684Да хоть очко себе пусть разрабатывают. Не велика потеря.
Я хуею с этого аподила, куча жарников с говном и это называется медиация, блять.Вот такой вот замечательный стектрейс получаю:Fatal Exception: java.lang.VerifyError: com/avocarrot/androidsdk/DeviceInfo at com.avocarrot.androidsdk.Avocarrot.(Avocarrot.java:49) at com.avocarrot.androidsdk.Avocarrot.getInstance(Avocarrot.java:108) at com.avocarrot.androidsdk.BaseController.(BaseController.java:53) at com.avocarrot.androidsdk.BaseController.(BaseController.java:47) at com.avocarrot.androidsdk.AvocarrotCustom.(AvocarrotCustom.java:21) at com.appodeal.ads.native_ad.c.a(Unknown Source) at com.appodeal.ads.y$1.run(Unknown Source) at android.app.Activity.runOnUiThread(Activity.java:4737) at com.appodeal.ads.y.a(Unknown Source) at com.appodeal.ads.y.a(Unknown Source) at com.appodeal.ads.y$a.a(Unknown Source) at com.appodeal.ads.r$b.a(Unknown Source) at com.appodeal.ads.r$b.onPostExecute(Unknown Source) at android.os.AsyncTask.finish(AsyncTask.java:632) at android.os.AsyncTask.access$600(AsyncTask.java:177) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5372) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:970) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:786) at dalvik.system.NativeStart.main(NativeStart.java)
>>820535Занятно, мне понравилось на первый взгляд.
Двощ, помоги. Все началось с того что мне нужно было установить картинку на весь экран. Она имела размер 1080h на 1920w пикселей. Ну выдало мне мне нехватку памяти. Полез разбираться - нужно юзать битмап и скейлить изображение. Окей, взял со stackowerflow метод - принимает 2 параметра необходимую высоту и ширину и скейлит изображение.Вначале проверил на 600 на 600 - норм выглядит, норм работает. Но дело в том что размеры экрана моего устройства (metrics.heightPixels и ширина) как раз 1080 на 1920. И самом собой при использовании метода по сжатию - мне опять выдает out of memory + меня смущает что при 600 на 600 она выглядит норм. Может исходный ресурс какое-то разрешение не верное имеет? Или блять что-то не в пикслях считает, а в dp?
>>821133Glide/Picasso/Universal Image loader в помощь. Юзают почти все
>>821133Что-то ты неправильно делаешь, видимо у тебя до загрузки картинки память уже забита.Сделай дам прямо пере загрузкой и скинь картинкой.
>>821137Спасибо анон, но мне в чем тут проблема хотелось понять. В приложении только одна картинка и есть - фоновая. Не хотелось бы из-за нее одной фреймворк подключать и разбираться.Эта картинка в drawable лежит. Может нужно в какой drawable-экстра hdpi засунуть?
>>821151В drawable-nodpi ставь. Обычный drawable в твоём случае скейлится в 3 раза, отсюда oom.
>>821149Да нечему там до картинки отжирать. Все нормально было, пока я с ней не стал работать, вот кодhttp://www.codesend.com/view/fb5c2d7a4c9e32c4f28616b77ff9ed7c/Вот расход памяти:Memory 1117Memory 1117Memory 77912>>821157Спасибо, сейчас попробую
>>821157Большое спасибо, после изменения начало хавать 13 метров. Настрою еще что бы на альфаканал не обращало внимание и может чуть уменьшу - вообще отлично будет. Который час уже с этим долбился, ты мой спаситель.А можешь чуть развернетее объяснить почему так происходило? Оно в 3раза больший размер выводило?Оно будет так же норм, если я буду пихать в свой drawable-xxhdpi, так?
>>821171> Оно в 3раза больший размер выводило?drawable аналогичен drawable-mdpi.У тебя xxhdpi, это в 3 раза больше, чем mdpi, поэтому система сама скейлит картинки.> Оно будет так же норм, если я буду пихать в свой drawable-xxhdpi, так?Лучше drawable-nodpi, но я понятия не имею, что ты там делаешь вообще.
Привет анончики. Начал проходить курсы на udacity, там начинается с разметки приложения. RelativeLayout, LiniarLayout и т.д. Вообще ийзи идёт, что-то на уровне легкости html. Ну оно и не удивительно, похожие же языки разметки.Но у меня есть вопрос: в сколько раз сама разработка сложнее, чем все эти разметки.
>>821495Я уже полгода пишу логику для этой ебучей разметки. На юдасити шли нахуй все видео, если ты выбрал курс Android dev и сразу пиши приложения - так сэкономишь время курса.
>>821498Спасибо за ответ. Вот же пидоры. Выставляют все так, как будто разработка под андроид это легко и даже твоя бабка сможет её осилить, начиная с разметки. А то я так потрачу овер 9000 часов на разметку, а потом окажется что я не тащу собственно саму логику. И нахуй мне теперь все эти сраные атрибуты.
>>821499Да, это легко. Поначалу.
>>821133>Окей, взял со stackowerflow методStackoverflow Driven Development. Вся суть современных разработчиков.
>>821526>Stackoverflow Driven DevelopmentВсе по книгам
Не, ну это уже вообще на грани фантастики. ЗАЩО
Аноны, подскажите пожалуйста.Как вытащить данные из базы данных? То есть у меня есть база данных, в которой есть какой-то текст. Как мне его вывести, например, в TextView? Подскажите, какие методы используются, чтобы это сделать. Дальше уже буду искать туториалы, да на stackoverflow смотреть.
>>821499Это действительно легко. На уровне пыховебмакакинга, сложно найти что-то более простое в профессии.
>>821674Мамкин программист с 300к/с подъехал?
>>821672>Как вытащить данные из базы данных?Ташема секретов то тут и нет.Тупа берешь через openOrCreateDatabase + rawQuery и вытаскиваешь.
>>821712> openOrCreate> rawQuery Ну ты и говноед
>>821719Иди нахуй, так деды еще в 45 кодили под 1.1 и нам велели.Ты ветеранов андроид-разработки не уважаешь что-ли, сука?..
>>821719Какие тогда альтернативы?
>>821746SQLiteOpenHelpergetReadableDatabasequery
Прохожу курс от "Android Development for Beginners". Господи какой-то же он классный. А ведущая девушка азиатской внешности такая милая. Невозможно оторваться от курса. Только что по клику кнопки изменил число на экране. Эйфория. Порой даже верится что получится в программисты.
>>821752Ты еще провайдеры посоветуй
>>821760от Udacityбыстрофикс
>>821760Хуйня, начинай сразу обычный курс по ведру.
>>821772У меня щас охуенный флоу, не сбивай мне комбо. дай побыть еще в манямирке
>>821781>Закаать
>>821785Лол, даже не заметил. Не сплю с 2 ночи, мозг процентов на 40 работает.
>>821762Ну я все таки считаю что они оверхед. Хотя если хочешь что бы с uri было то да, почему бы и нет.
>>821791Если писал приложение всё это время, то одобряю. Я потратил сутки(отрываясь на еду и толчок) на написание Movie Base в другом курсе по андроиду от юдасити
>>821803Да прям в 2 ночи проснулся, стукнуло в голову стать андроид разработчиком. Установил студию, открыл курсы на юдасити и пошло поехало. Надеюсь дойду до Movie Base как и ты и не застопорюсь с унылыми мыслями что программирование это тяжело и какой же я тупой.
>>821814Ну удачи тебе :3
>>821752>>821712Спасибо. А как, так же вытащить, только, из MySQL?
>>821798Это был сарказм.Теперь честно:1) contentprovider - НЕ НУЖЕН2) sqlite без ORM - НЕ НУЖЕН
>>821820А, это ты. Тебе уже сказали как пилить рест морду.>>821814Да, вначале всегда романтика. А потом говнозаказчики, говнодизайнеры и говноменеджеры всю романтику портят.
>>821861Скажи, пожалуйста по каким тегам гуглить? Ничего годного найти не могу.
>>821872mysql + express + nodejs
>>821821Очень содержательно.
>>8218211) Если у тебя простое приложение, то ContentProvider может быть избыточным2) ORM и всякие Realm не нужны. Достаточно использовать лёгкую библиотеку, предоставляющую удобное API для SQLite. например, StorIOПофиксил тебя.
>>821896OK, даже спорить не буду ибо это продолжается уже не один тред, едем дальше.
>>814733 (OP)Анончики, как правильно нотифаить о завершении запроса из сервиса? Юзать евинтбас? А он придет потом, если приложение свернуто в этот момент, и я отписался в онстопе?
>>821984Не прийдет тебе после он стопа нихуя. Только пляски с синглтонами и преференсами.
>>821998ну епт, а в чем тогда плюс евентбаса от бродакстресиверов всяких?
>>822011А ты какую библиотеку используешь для реализации эвентбаса?
>>822011Тем что не надо ебаться генерить плагином с парселеблом.
>>821896>Достаточно использовать лёгкую библиотеку, предоставляющую удобное API для SQLite. например, StorIO>StorIOCupboard наше все. Хули все так рекламируют этот сторИО?
Учил вот джаву, но что-то очень скучно, решил попробовать андроид, расскажите чем занимаетесь, сколько времени идет на обучение. Советы и ответы на ФАК приветствууются
>>822042>расскажите чем занимаетесьЗанимаемся разработкой мобильных приложений на андроид.>сколько времени идет на обучениеУже полтора года опыта, а все еще учусь.оп
>>822020я только otto знаю
>>822042>расскажите чем занимаетесьПердолимся с косяками системы и чужими косяками в процессе создаем свои, иногда пьем смузи с маффинами и чизкейками на митапах.>сколько времени идет на обучениеВсегда учишься. Ну это вообще про программирование если конечно речь не про энтерпрайз.
>>822041>Хули все так рекламируют этот сторИО?С Rx связка нормальная.
Поставил студию, но она закрывается без еррора,в процессах её нету. В чем дело?
Получил класный креш:android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. at android.database.CursorWindow.<init>(CursorWindow.java:108) at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198) at android.database.sqlite.SQLiteCursor.clearOrCreateWindow(SQLiteCursor.java:300) at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:138) at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:132) at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:219) at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:258)И это на строке:if (cursor != null && cursor.moveToFirst()) {...Чо мне с курсором то делать надо что бы такого не было?
>>822114Не создавать.
>>822042> сколько времени идет на обучение.4 с половиной года учусь, например. До сих пор днище ибо работать не пробовал, а практика нерегулярная. Не будь таким, как я.
>>820535>2 пик? Это макось? Красиво! Сначала подумал, что элементари
>>821781Не слушай его, курс хорош, если ты с нуля. И делали гугловские разработчики.Там по соседству где-то курс по Гиту от двух тянок валяется, тебе тоже пригодится в будущем
Что за шрифт на пикче используется для отображения времени? Хотеть такой
>>822166Roboto Light. Или Thin, на глаз не всегда могу отличить.
>>822167Спасибо анончик, добра тебе
>>822120И как же вытаскивать данные про треки юзер без курсора?
Аноны, как устроены мессенджеры? Они что, опрашивают сервер каждую секунду, чтобы узнать, нет ли новых сообщений? А если нет, то как?
>>822212С О К Е Т
>>821816Спасибо. Да я уже андроид-разработчик бвухахахаха. Ты тоже пости свои достижения. Movie Base, например.
>>819703нет ну вы посмотрите, этот идиот гринтекстит тестирование, как вы его еще до сих пор не обоссали блять, сука, тред школьников и дегенератов
Анончики, что надо знать, чтобы взяли на работу джуном, или хотя бы стажером?
>>820439https://habrahabr.ru/company/rambler-co/blog/266837/roboelectric позволяет тестировать http запросы, думаю, это то, что тебе нужно
>>822458Обоссывают школьники и дегенераты. Вменяемым похуй. Пройдите в /b/, пожалуйста.
>>822509каждый раз, когда вменяемым похуй, школьников и дегенератов становится больше, это раковая опухоль, а ее надо лечить.
Так что ведроиданы, как спасаться от курсора более 2мб. И какв ообще с такими объемами данных вменяемо работать на мобилке?
>>822609Очевидно пиздовать в стаковерфлоу в котором эта тема обсасывалась уже не раз использовать новую поистине кроссплатформенную СУБД Realm.
>>822428Добавь отмену предыдущего действия
>>822463di mvp rx mvvm kotlin
>>822458пиздец, дурачку припекло, что пока он пишет свои ссаные тесты, норм парни едят маффины и ебут тёлок
Здравствуйте, это снова я с VK-приложением. >>819511(Не спрашивайте, почему так долго пишу, был занят другими делами).Так вот, допустим, я создаю новую Activity, чтобы, например, показать в ней информацию о чате.Как туда передать VKAccessToken?Остальные данные худо-бедно передаются:Bundle chatData = new Bundle();chatData.putIntArray("CHAT USERS", chosenChat.users);chatData.putString("CHAT TITLE", chosenChat.title);Intent intent = new Intent(Activity.this, ChatActivity.class); intent.putExtra("CHAT DATA", chatData); startActivity(intent);Но! VkAccessToken нельзя передать просто так. Его не разобрать на элементы и собрать заново, он не Serializable, и вообще какой-то мутный. В новой Activity заново проходить авторизацию, что ли?
>>822819Вакаба опять съела спецсимволы.
>>822819Ты сорцы принципиально не смотришь?У тебя аж 4 возможности!1. Через файл2. Через шаред преференсы3. Через сериализацию в строку методом serialize4. VkAccessToken - блядский синглтон
>>822835Оу. Спасибо большое!Непривычно лезть в сорцы. Всегда, когда хотел узнать про метод, заходил на MSDN, вводил название и получал самое подробное описание.
>>822045Она уже deprecated.
>>822473Нет, это хуйня.
>>822621Говна пожуй.
>>822838> MSDNТебя уже не спасти. Уж лучше бы ты на пхп писал.
>>822666Хотел добавить, но Андроид студия перестала работать. Точнее эмулятор перестал работать. Вчера работал, сегодня включил пеку и эмулятор больше не запускается, жалуясь на отсутствие аппаратного ускорения в процессоре. Это пиздос, еще вчера все работало.
>>822924Маленькие гомики вынесли из твоего процессора аппаратное ускорение, чтобы ты не стал андроид разработчиком. Честь им хвала.
>>822900Очко у тебя дерпекейтед
>>822962Переустановил шиндовс, студия заработала. Пилю кнопку "назад".
>>822666>>822981Вообщем вот, готово.Функционал довольно простой.При клике на кнопку 3/2/1 очка в переменную currentState записываю 3 2 или 1. Потом на методе кнопки отмены:if (currentState == 1 || currentState == 2 || currentStat == 3) teamscore = teamscore - currentState; display(teamscore);Просто отнимаю у текущего количества очков, то, что было нажато.Я понимаю что это может быть нубское и кривое и неправильное решение, но это единственное с чем я смог совладать.
Есть здесь такие, кто пользовал MaterialDrawer от mikepenz? Мне нужно запихнуть его во фрагмент, но в билдере есть метод только withActivity. Я могу привязать его к общей для фрагментов Activity, но как сделать, чтобы на одних он выдвигался, а на других - нет? Пока что лучшее что я придумал это closedrawer в onDrawerSlide, но это кривовато смотрится, да и в целом
Как лучше хранить изображения в SQLITE?
>>823030Пути к изображениям.
Как поменять connection interval со стороны мастера для ble или это можно только сделать через реквест со стороны периферии? Необходимо выставить его как можно большим.
>>822991Заноси весь счет за матч в коллекцию, чтобы кнопка отмены работала не один раз, а несколько.
>>823204А она и так не один раз работает, а сколько угодно. Переменные очков матчей - глобальные.У меня тут другая проблема назрела. Иду дальше по курсе, пришло время делать чекбокс. Тут андроид студия мне выкидывает новый сюрприз. Вместо чекбокса в превью просто надпись Checkbox серая. Превью еще и ошибку выдаёт.Кто-нибудь сталкивался? Есть не сложно проверьте как вас, может они поломали чекбоксы?
>>823217Отбой. Загуглив ошибку, оказалось что если переключить превью на API 23 вместо 24, то ошибка исправляется.
>>823291Сделай Darcula тему, глаза режет.
>>823402тёмная тема вырвиглазная
>>823418Твоя белая тема вырвиглазная. Еще и на дваче небось дефолтная тема вместо Neutron.Попробуй, когда привыкнешь, не сможешь вернуться обратно.
>>823418Она тебе зрение бережёт, дурашка :3
>>823427бережет только если кодишь в темноте. У меня на ней всё расплывается, нихуя не вижу.>>823425Futaba у меня
>>823402Ну такое... Удобность зависит от времени суток. Сейчас ночью да, удобно.>>823430Че за футаба, кидай скрин/линк.Иду дальше по курсу. Ведущая попросила добавить функционал учета сливок и шоколада, взял и добавил, без задней мысли. Сейчас буду смотреть как она это сделала.
Эээ, у двача есть темы, а где их можно поменять?
>Че за футаба, кидай скрин/линк.А все понял, это тема двача. Этот желтый вырвиглазный цвет... >>823445Самое вернее меню.
>>823450он телесный, а не желтый
>>823418Ночью - охуенно.А вот днем пробовал работать на дракуле с улицы - нихуя не видно было вообще, как ни странно.А вообще у меня sublimetext3
>>823425> Твоя белая тема вырвиглазная. Еще и на дваче небось дефолтная тема вместо Neutron.Лол, так ведь это нейтрон — вырвиглазная параша, тогда как фотон очень выглядит очень солидно и стильно.Кстати, тоже предпочитаю светлую тему в AS. Не понимаю вашего спора, кто-то любит светлые темы, кто-то тёмные, так что пусть пользуется тем, что нравится.
>>823657Серо-оранжевый фотон выглядит как хуита для школьников-"экстремалов" и прочей ниферской нечисти из середины нулевых в патрулях и обосранных джинсах с мотней до пола.футаба-демиург
>>823000В активити создай поле куда ты можешь запихнуть текущий открытый фрагмент и делай проверку при открытии дровера, мол тот ли этот фрагмент для которого дровера надо открывать.
Хелп. Есть код с ViewPager, 3 фрагмента для него и лайаута.Когда добавляю 2 фрагмента, всё отлично перелистывается и работает, а когда пытаюсь добавить третий всё крашиться. Что делать?Вот код MainActivity: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewPager); viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(),getApplicationContext())); } private class CustomAdapter extends FragmentPagerAdapter { private String fragments [] = {"1","2"}; public CustomAdapter(FragmentManager supportFragmentManager, Context applicationContext) { super(supportFragmentManager); } @Override public Fragment getItem(int position) { switch (position){ case 0: return new Fragment1(); case 1: return new Fragment3(); case 3: return new Fragment2(); default: return null; } } @Override public int getCount() { return fragments.length; } @Override public CharSequence getPageTitle(int position) { return fragments[position]; } }}
>>823830забыть о программирование
>>823830Почему нельзя просто кинуть код на пастбин, нахуя засорять тред?
>>823830Fragments.length тебе возвращает 3, при этом ты запрашиваешь индекс третьего фрагмента как 3 вместо 2. Из за того и крашит.
>>823830Да и вообще у тебя там какая то хуита писана. Возвращаешь null вместо какого нибудь дефолтного фрагмента, вообще идиот, пиздец
Есть ли фриланс на андроиде сравнимый с вебом, просто саморазвитие саморазвитием, но деньги тоже нужны.
>>823030байткод
>>824247нету
>>824272А хоть какой-то есть ?
В универе учили Си, сейчас хочу вкатиться в Джаву. Какую книгу посоветуете, чтобы именно не плотно стоящий на ногах студент первого курса (уже получается второго) со знаниями Си мог вкатиться в джаву и затем в андроид? Философия Джава идеально подходит?
>>824399Забудь за все что ты учил в универе. И программирование тоже, оно для больных гениев.https://ideone.com/jZL4CzПосмотри на этот код. Этот код я взял из реального проекта. Из игры. Это код отвечающий за парсинг файлика .osz - местный формат карт в игре. 700 строк кода, просто что бы запарсить 1 жалкий файлик. 1400 строк кода gamedata.javaА теперь после просмотра этого когда, спроси себя, сможешь ли ты совладать с этим?
>>824405>https://ideone.com/jZL4CzИгры на java вместо юнити? Что с тобой?Вы даже жавадок оформили молодцы.
>>824415>Игры на java? Что с тобой?действительно, нужно же было на котлине писать
>>824464>kotlinУноси отсюда это, будь добр!
>>824466Няш, не бугурти, на вот тебе кексикhttps://www.youtube.com/watch?v=CABN2r4GPpQ
>>824497Уруру :3, но ты всё равно уноси подальше.
>>824466Форс форсом, а мне понравилось. Перенес свой мелкий проект на него.
> Ensure SwipeRefreshLayout indicator is shown when setRefreshing(true) is called before the first measurement pass> Reported Oct 18, 2014Господе, какие же гуглы мудаки. Ну хотя бы можно теперь не ебаться вызовом через post.
>>824276нету
1. У меня есть активити с чекбоксами и прочей парашей, обычный круд который сохраняет в бд. Можно ли как-то легко стилизировать его в стиле настроек, чтобы вместо чекбоксов была кнопка которая ездит влево-вправа (как эта параша вообще называется?), дропдаун лист тоже как в настройках стандартных приложений.2. Чтобы взять ширину/высоту вложенного элемента уже после всей обработки я делаю так:pizdaView.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { int width = pizdaView.getWidth(); pizda.fuck(new Hui(width)); } });Это норма и так все делают? Выглядит довольно костыльно.
>>825020> которая ездит влево-вправаhttps://developer.android.com/reference/android/widget/Switch.html> и так все делаютЯ делаю через pizdaView.post { pizdaView.getWidth() }, но никто не запрещает вручную вызвать measure с нужными параметрами и посмотреть. Хоть в некоторых случаях у меня не получается так высчитать
Неясного о Fuchsia остается еще много. Главный вопрос все же остается прежним — в каких системах планируется использовать эту ОС? Ожидать, что она создана в качестве альтернативы Android OS не стоит, ведь для того, чтобы программный продукт, в особенности, операционная система стал успешным, нужно активное сообщество разработчиков, каталог приложений и т.п. Google вложил сотни миллионов долларов в Android и вряд ли собирается что-то поменять.Фух. Выдыхаем.
>>825180То есть до этого тебе это было непонятно? Какой же ты умный.
Ведроиданы, у фронтендщиков есть вот такой вот плагин к системе сборки - https://www.npmjs.com/package/gulp-imagemin. Есть что-то подобное для gradle?
>>825278У фронтендщиков скиптодрисня и этим все сказано. Теоретически обфускация может сократить размеры class файлов.
>>825278> Есть что-то подобное для gradleТочно видел, но мне лень искать.
>>825342>>825278https://github.com/fabiomsr/drawable-optimizer
>>825322Я ж не классы прошу сжимать, ясное дело что там прогвард, вообщем-то она таки и сжимает, но на фоне ресурсов это хуйня, пару тысяч методов удалится, но это сотни килобайтов. Я про ассеты и ресурсы картинок.>>825342>но мне лень искатьНу лан.Короче аапт для ресурсов это делает сам, но кастомно можно добиться лучшего результата.https://medium.com/@duhroach/smaller-pngs-and-android-s-aapt-tool-4ce38a24019dИ разумеется если ты пожмешь сам, то аапт может сделать хуже.
>>825371О, найс, спасибо. Сейчас поиграемся.
>>825376Да ты там и 10% не вытянешь.
>>825384Но мне обещают 20%...А не вытяну, значит плагин плохой, лол. Поиграюсь с библиотеками посмотрим чо как, мне ведь в принципе ассеты один раз сжать.
>>814733 (OP)Аноны, какие шансы устроиться джуном на ведре?Знаю что мобильная разработка сейчас пользуется огромным спросом, но все же? Какие требования к джунам?
>>825600RX + DI + MVP + KOTLIN
>>825603на андроиде же все пишут, зачем котлин?
>>825634На xml все пишут в вашем аднроиде.
>>825600Java, Android Studio, свои приложения в Google Play.
>>825714Что можно запилить свое?мимодругойанон
>>825718Вайпалку тредов гей ниграми с рандомными ниграми и, чтобы батхертнутые посты в баззу данных сохранял.
>>825722А как определять батхертнутые посты?
>>825723Парсером
>>825724Звучит так, будто кто-то уже такое сделал
>>825723Машинное обучение же. Крайне необходимое умение в 2016.
>>825730нейросети
>>825726Всё, что ты можешь сделать сам уже кто-то сделал до тебя. Причём значительно лучше.
>>814733 (OP)Аноны, если я аттачу/детачу вью к пресентуру в онкриейте/ондестрое, и эта вью ретаин фрагмент, то не будет же ничего течь? Пресенет соответсвенно находится в ретеин фрагменте.
>>825906Ландан из зе кепитал оф грейт бритн в
Есть тут такие же несчастные, кому как и мне приходится писать под xamarin? Расскажите, как вы вообще живёте
>>825983> несчастныеИ хули ты несчастен? Если не замарин.формс, то тот же самый ведросдк + более няшный сярп.
>>825983>Есть тут такие же несчастные, кому как и мне приходится писать код каждый деньРасскажите, как вы вообще живёте
sup подскажите, анонымогу ли я сделать в RecyclerViewAdapter кастомизированый первый айтем списка?типо мне надо что бы первый айтем отображался с картинкой и текстом, а следующие обычные айтемы только текстэто надо в onBindViewHolder напиать что то типо if(position =0){}да?
>>826317Переопределяешь getItemViewType, на нулевой итем возвращаешь какую-то константу, а на остальные - другую константу. В onCreateViewholder ты будешь получать viewType, в onBind ты можешь его получить через getItemViewType(position), но лучше конечно отдавать работу самому холдеру по байндингу данных.
>>826323спасибо, анончик
Шапку читал. Вопрос - за сколько реально освоить джаву до уровня андроида уделяя ей 4 часа ежедневно? Из опыта только Си в универе.
Вкатываюсь с проблемкой. Решение понадобится где-то через неделю, а может и позже, поэтому пишу сюда, а не гуглю и курю документацию, как белый человек.Есть одно приложение и в нём есть платная услуга. Основная его функциональность обеспечивается сервером, платная услуга даёт дополнительную функциональность.Итак, вопрос: как можно на серверной стороне проверить, купил ли человек эту услугу? Можно ли как-нибудь спросить подтверждение с сервера гугла?
>>826589А ты не пробовал почитать документацию по in-app billing'у гугла? Они вообщем-то другую неохотно пропустят, если пропустят вообще. А в той конечно можно проверить наличие конкретной покупки, вот только ломается всякими лакипатчерами и прочей шляпой. Вообще у любой нормальной pay-системы есть возможность проверить перевода денег на счет, а на своем серваке после перевода бабоса записать транзакцию.
>>826628>>826589У вас при покупке выдается идентификатор покупки, который вы должны отправить себе на сервер и свалидировать у гуглов через апи.
>>820617А потом по их костям придет Хаскелл и похоронит всех!
>>822991Надеюсь, команда А и команда Б разнесены по фрагментам?
>>826491>а сколько реально освоить джаву до уровня андроидаПримерно, как анатомию в мед. вузе.
>>826646Долбоеб что ли? Зачем?
>>826695Он прав, либо адаптер делать либо 2 фрагмента, или 2 вьюхи на худой конец. 2 экземпляра одного объекта само собой.
Котаны скажите плиз. Я сам ее-макака. Хочу использовать привычные методики. Могу ли я в Андроиде:1. Создать службу стартующую при запуске приложения. 2. Служба должна быть синглтоном. 3. В коде в активити с помощью депенденси инжекшен получать доступ к методам синглтоновской службы.
>>826965Или вместо синглтона должен стартовать некий пул из экземпляров сервиса. А при депенденси инжекшене должен выбираться экземпляр из пула и после возвращаться в пул обратно
>>822991>только установил студию и делает приложение>выглядит уже лучше моихто чувство когда антидизайнер
>>826967Так там изи же.http://www.materialup.com/ в помощь.
Короче есть под андроид cdi на уровне аннотаций. Или все же пилить ручную фабрику и гетинстансить
Насколько андроид перспективен для молодого разработчика без опыта? Сколько еще мобильный рынок будет на коне?
>>826979Хайп сходит, перспектив никаких. Рынок перенасыщён, разработка происходит на уровне пхп макакинга. Лет 5 назад можно было вкатиться, сейчас просто забей.
>>826988Какие альтернативы? Какая сфера на подъеме? Ты тралишь очевидно. Сейчас довольно популярна связка вр шлема + смартфон.
>>826971>>826966>>826965Блять, о чем ты? Иди реализуй AbstractSingletonProxyFactoryBean.> Создать службу стартующую при запуске приложения> Служба должна быть синглтономЧто ты вкладываешь в понятие служба. Можно запустить сервис как компонент приложения, можно просто хуякнуть в onCreate создание синглтона.> В коде в активити с помощью депенденси инжекшен получать доступ к методам синглтоновской службыТогда только в виде обычного синглтона, DI есть, берешь и без задней мысли инжектишь. @Provides @Singlton, хуяк хуяк и в гуглплей.>>826991> Сейчас довольно популярна связка вр шлема + смартфонПопулярна где? Этим занимаются полторы студии и 3 калеки. Работу чтобы делать именно вр ты не найдешь.
>>827017>Этим занимаются полторы студии и 3 калеки.Самсунг, хуавей, даже сам гугл выходит на рынок со своим шлемом и платформой, а значит появится единый стандарт для запиливания приложух под вр, инструментарий удобный и тд.
Да кстати игры под андроид пишут на джаве или плюсах? Речь об играх уровня энгри бердс, растения и зомби и тд без графических наворотов.
>>827020LibGDX - на javaUnity - C#Cocos2dx - C++
>>827019Выходить на рынок != пилить контент. АндроидТВ с АндроидАвто тоже вышел на рынок, но запил приложений на него не сильно то и популярен.
>>826991>Сейчас довольно популярна связка вр шлема + смартфонТебя в любом случае не возьмут без опыта работы с графонием.
>>827031Спасибо, глупый вопрос, но вот если андроид работает на джаве нативной, как он запускает с шарп код, это все как-то оборачивается в джаву перед загрузкой в гугл маркет?
>>827039Для игр достаточно сишного NDK - там графика, звук, сенсоры. Юнити поверх него и работает.
>>827040Понятно
>>827040>там графика, звук, сенсорыа еще сик фолты и утечки памяти и c++ фу нахуй
Эмуляторы могут в Hot Swap.
>>827047Это был вопрос.
>>827047Instant Run.
У меня есть custom view, метод onDraw вызывает тяжеловатые вычисления. Есть ли какой-то изкоробочный метод чтобы инвалидировать view, и делать вычисления только по необходимости?Или самому добавить переменную и тупо чекаеть её в onDraw?
>>827057Тяжеловесные вычисления какой природы? Если их можно один раз подсчитать, а потом использовать. А подсчитывать скорее всего нужно в onLayout/onMeasure. Сделать свой сеттер, который при смене параметра вызывает invalidate.
>>827046> c++Выбор долбоёба. Идеальный вариант — чистый си.
>>827046>а еще сик фолты и утечки памяти и c++Это называется фильтр от долбоебов.
>>827060Обработка возможных пересечений/коллизий объектов (от наличия которых зависит как их рисовать). Если пользователь подвигает объекты внутри, тогда надо перерисовывать и пересчитывать, однако это не каждый onDraw происходит.>Сделать свой сеттер, который при смене параметра вызывает invalidateне понел
аноны, нид хелпесть список ReyclerView и адаптер кастомныйпри нажатии на айтем списка должно открываться новое активитино почему то когда происходит клик, то в моем листе, из которого я достаю данные обнаруживается, что он пустойвот код адаптера - http://pastebin.com/VUQGmXc9и мэйн активити - http://pastebin.com/iWPe6nbM
>>827086Вообще похуй, по-видимому андроид достаточно умён сам по себе чтобы не вызывать onDraw постоянно, он это делает только когда я трогаю соответствующую вьюху.Это чтобы его наоборот заставить перерисовывать надо вызывать invalidate.
Ведроиданы, есть какие-то четкие-ровные либы для WebRTC видео чатов? Ну такие что бы именно ваще крутяк, как retrofit или gson в своих нишах. Если нет, то это https://github.com/QuickBlox/quickblox-android-sdk нормальная тема? А это https://docs.oracle.com/cd/E55119_01/doc.71/e55126/wd_androidapps.htm#WSEWD512 ?
Анон, где можно поучить колекции?
>>827207В гугле. Ну сириусли, вы смеетесь?
>>827207>Анон, где можно поучить колекции?https://kotlinlang.org/docs/reference/collections.htmlне благодари
>>827227На сколько хуево, если я кладу котлин файлы в java папку?
Как вы делаете такую чтуку? При страте активити или фрагмента надо показать анимацию появления чего то, как это делать по правильному? В он старте, через хендлер или ещё есть какие то способы?
>>827262Я в онСтарте через хендлер, если это больше ни от чего не зависит.
>>827256В последних версия уже пофиг.Тоже кстати ленюсь перекидывать в /kotlin/.
>>814733 (OP)https://www.udacity.com/course/developing-android-apps--ud853 нормас тема в дополнение к книгам и докам?
>>827307https://www.udacity.com/course/android-developer-nanodegree-by-google--nd801Вот единственный годный курс. Можешь его на месяц бесплатно получить, если есть студенческий аккаунт на гитхабе.
>>827324Так это не курс, а программа целая и первый курс как раз тот, который я скинул, ну короче норм. Нет к сожалению уже не студент и еще не студент.
>>827329И книги выкинь, они все уже устарели.
>>827329Хотя если деньги есть, купи эту программу - не пожалеешь ни разу. Там даже кодревью делают тебе.
>>827307Неплохой курс, но нанодегри пизже конечно.
>>827341>>827344Спасибо, может и куплю.
>>827340The Busy Coder’s Guide to Android Development И эта тоже?
Кто кстате записался на 24-часовой экзамен от гуглов за 100 бачей?
>>827347Не вижу смысла в такой книге, когда есть бесплатные, обновляемые доки от гугла.
>>827356Ок, понял.
>>814733 (OP)Такой вопрос, аноны. Курсы от гикбрейнз хуйня или стоящая штука? интересует именно мобайл разработчик. Напрягает долгость изучения - 11 мес, это чет долго
>>827376По мне так мутная контора
>>827389Почему? Мне прельстит что там типа общаешься ирл вроде как с людьми в профессии, можно спросить прям сразу что да как
>>827402Так-то оно так, но набирают они там огромное количество народа и много внимания они вряд ли уделят каждому, проще на двач код залить, авось кто и посмотрит. Я сам с 0 вкатываюсь (только си знаю и питон). Сначала думаю джаву выучить по Эккелю, а потом брать доки и курс вот этот >>827324. Ну дело твое.
>>827405Спасибо за курс, >>82740513к в мес, пизда, мне бы зарабатывать каким-нибудь веб-макакингом столько в своей мухосрани
>>827376>>827409Ты ж дебил, что тебе делать в программировании? Все их курсы давно на торрентах пылятся.
>>827456А кодревью и саппорт тоже пылится?Так-то все доки у гугла бесплатные, но что-то я не вижу дохуя макак в андроиде.
>>827492> что-то я не вижу дохуя макак в андроидеХуево смотришь.
>>827456Зачем на торрентах? Они и там бесплатные видео и домашки, а коревью можно и купить отдельно где нибудь найти.
>>827492Я тебе повторяю, что тебе делать в программировании?Если ты не можешь в САМОСТОЯТЕЛЬНОСТЬ, то просто забей, это не твоё.>саппортНяньку он блять хочет, охуеть вообще.Тебе на торентах лекции дали, домашку дали. Ебись дальше сам, какой нахуй кодревью, поехавший. Для особо одаренных, в начале следующей лекции полтора часа разбирают домашки всех студентов, сможешь посмотреть как вообще нормальные люди кодят. Но лучше забей. И купи курс для лохов за 70к
>>827505Java и Android платные. Бесплатные только всякая шелуха типа html и введения в программирование.
>>827621Да я про муриканский курс, лучше его бери, а если не знаешь ангельский, то начни с этого, много времени потом сэкономишь, так как будешь читать свежайшие доки, а не переводы.
>>827713Поц, ты обрезал код холдера.
С чего лучше прогать под андроид - с бубунты или спермёрки?
>>827731Без разницы, но под виндой у IDE шрифты лучше.
Как вам Нуга?https://www.youtube.com/watch?v=5W1KvjWudGE
>>827731Из под мака.
>>827746как землямимо владелец пятого нексуса
Как использовать init в фрагменте?
>>827753>мимо владелец пятого нексусаkek, не повезло тебевладелец 5X
Скотский гугол заебал сжирать своими регулярками все, кроме цифр и букв в поисковике.Поясните, чем отличается String[] от String... в джаве?
>>827848Первое - массив стрингов, второе просто обьект
>>827850public static void main(String... args) {....validatePhoneNumber("123-456-7890", "456-7890");}Конкретно в качестве передачи произвольного числа параметров методу разницы нет?
>>827376Говно для даунов.
Котлиноперекат плиз>>827862Ну в одном случае ты создаешь массив ручками, в другом он создается за тебя перечислением через запятую.
Здравствуйте, как многие знают, Google готовит замену Android, новая ОС будет называется - Fuchsia. Но проблема в другом, недавно(3 дня назад) я начал изучать разработку ПО на Android, и после прочтения данной новости у меня возник вопрос: "А стоит ли продолжать?", раньше я возился над С++(остановился на классах) и с увеличением востребовательности разработчиков мобильного софта решил на время заняться данной сферой, дабы заработать. Вообщем я уже запутался, и решил спросить совет у опытных программистов.
>>828054> тостерПиздец, что ты там забыл?
>>828054Неясного о Fuchsia остается еще много. Главный вопрос все же остается прежним — в каких системах планируется использовать эту ОС? Ожидать, что она создана в качестве альтернативы Android OS не стоит, ведь для того, чтобы программный продукт, в особенности, операционная система стал успешным, нужно активное сообщество разработчиков, каталог приложений и т.п. Google вложил сотни миллионов долларов в Android и вряд ли собирается что-то поменять.
>>814733 (OP)Аноны, как сделать, чтобы если не открыта нужная активити, то показать нотификейшн, иначе получить данные в этой активити? Щас показываю нотификейшн и бросаю бродкаст, когда перехватываю его, то удаляю нотификеёшн, но в таком случае на пол секунды становиться видно иконку в статус баре
>>828146http://stackoverflow.com/questions/3873659/android-how-can-i-get-the-current-foreground-activity-from-a-serviceЕсли хочешь стопроцентно рабочий вариант, то я предлагаю тебе записывать текущую активити в какую-нибудь переменную твоего Application'а или в SharedPreferences.
>>828169> Если хочешь стопроцентно рабочий вариант, то я предлагаю тебе записывать текущую активити в какую-нибудь переменную твоего Application'а или в SharedPreferences.Ебать говнокод.
>>828176И в чем же говнокод? Это стопроцентно работает для его задачи, в отличии от туманных игрулек с GET_TASK, который диприкейтед уже 4 версии как.
>>828146Сервис, который отображает уведомление, поддерживает биндинг. К нему коннектишь активити и через биндер инкрементируешь счётчик подключений. Если счётчик на нуле — показывай уведомление.Несколько громозкий вариант, но надежный и не говнокод.
Как использовать загружать изображения через Gilde в фрагменте?
>>828556Берешь и без задней мысли загружаешь.
Сап, есть активити с бэкграундом в котором фрагменты. Этот фон ложиться поверх фрагментов и в итоге видно один фон. Что сделать, чтобы изображения в фрагментах ложились поверх фона?
>>828617Залей цветом бэкграунд вьюхи своего фрагмента.
>>828487действительно норм, пожалуй так и сделаю
Андруаны, кто как решает проблему с медлительностью АС? Или терпеть приходится?Перекатил свой одноядерный днищебук на х64убунту, всё быстрее чем на винде кроме иде:0~30с - мигает иконка 30с~1м - заставка...~1:40 - появилось окно...~2:40 - появился редактор...~3:30 - догрузились остальные окна...~5:15 - закончились синтаксический анализ и постройка градлаГрадл настроил работать в демоне, апп запускается чутка быстрее, зависит от ситуации, запускаю на риал устройстве.Сейчас еще попробую режим энергосбережения.Кстати, почему синт анализ запускается когда нипопадя, т.е. даже после каждого отступа?
>>814733 (OP)Анончики, кто юзвет StorIO? Мне надо положить в бд два разных объекта, т.е. сделавть два put'a с разными классами, но надо чтобы они были в транзакции. Это делается через lowlevel? Т.е. например:lowlevel().beginTransaction();storIOSQLite.put().object(firstObject)...//First classstorIOSQLite.put().object(secondObject)...//Second classlowlevel().setTransactionSuccessful();lowlevel().endTransaction();Правильно?
>>828800Сколько оперативки? Если 8ГБ и больше, можешь в настройках -Xms512m -Xmx1024m прописать. Так я решал проблему на макбук эйре с 8 гигами, на десктопе с 16 пока не заметил проблем.
ПЕРЕКАТ >>829054 (OP)
>>828977Насколько я знаю, правильно.
>>8290484gb-Xmx512m -XX:MaxPermSize=512m сделалдумаю покопаться в настройках проверки синтаксиса, можно ил сделать чтобы проверял пореже и не все?
>>829257> Xmx512m Мхех, мда. Ему минимум 2гб нужно.
>5) Классы/интерфейсы и все вытекающие.Здесь имеется ввиду понять что такое класс, интерфейс и т.д., или же надо поучить основные классы?
>>830406И то, и другое.
test
sdf
test 3
Какую ORM для SQLite лучше использовать?