Сохранен 502
https://2ch.hk/pr/res/856749.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Android Development Thread 2.0.2

 Аноним 14/10/16 Птн 22:23:24 #1 №856749 
14764730048450.png
Android Development Thread 2.0.2

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

FAQ

> Хочу вкатиться в разработку под Android!
Большинство приложений написано на Java, выучить её на хорошем уровне — это первое, что необходимо сделать. Рекомендуемую литературу см. в Java-треде.
После этого можно открыть официальную документацию http://developer.android.com/training/index.html и попробовать создать по туториалам своё первое приложение.
В дальнейшем потребуется базовое знание SQL, понимание XML и JSON.

> IDE и инструменты?
Android Studio — основной инструмент разработчика. Кроме неё потребуется Android SDK (устанавливается вместе со студией).

> Мануалы?
- Официальная документация: http://developer.android.com/
- Полезный гайд для начинающих и продвинутых: http://guides.thecodepath.com/android
- Бесплатный видеокурс от Google для новичков: https://www.udacity.com/course/android-development-for-beginners--ud837
- Два ресурса, единственный плюс которых — русский язык: http://startandroid.ru/ и http://developer.alexanderklimov.ru/android/
- Классика, способная дать ответ на почти любой вопрос "Как сделать xyz?": http://stackoverflow.com/

> Не хочу писать на Java!
- Kotlin — JVM-совместимый язык от JetBrains. Есть лямбды, стримы и делегаты. Можно использовать в проекте вместе с кодом на Java.

> Есть что-то кроме нативных приложений?
- Xamarin — кросс-платформенный фреймворк на C#. Представляет из себя обёртку над Android API. Куплено Microsoft. Теперь есть бесплатная версия.
- PhoneGap/Ionic/Titanium/ReactNative — имя им javascript, принципы у них разные, первые три попытка в кроссплатформенность одного кода, ReactNative проповедует другой подход, а именно написание разного кода но на одном языке. Популярность у них разная как и размер комьюнити. Вопросы по ним — в js-тред.
- BugVM — кросс-платформенный фреймворк, написанный на Java. Форк невинно убиенного RoboVM.

> Хочу писать игры!
LibGDX или Unity. Спрашивать в /gd/

> Что нужно, чтобы взяли джуниором? Что учить в первую очередь?
Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. И хотя бы оно готовое приложение.

Предыдущий тред: https://2ch.hk/pr/res/846976.html
Аноним 14/10/16 Птн 23:06:35 #2 №856769 
Ну так что в итоге, как презентеру лучше пережить пересоздание активити?
Аноним 14/10/16 Птн 23:10:21 #3 №856771 
>>856769
как презентеру
Аноним 14/10/16 Птн 23:55:21 #4 №856795 
>>856769
configChаnges я серьезно
Так делают Chrоme и все игры, чем ты хуже?
Аноним 15/10/16 Суб 00:08:06 #5 №856800 
>>856795
Chrome? Он опенсорс?
Если это правда, то получается что гугл сам себе ссыт в ебло, запрещая это в документации.
Аноним 15/10/16 Суб 00:10:40 #6 №856803 
>>856795
Иди-ка ты нахуй, с такими советами
Аноним 15/10/16 Суб 00:15:10 #7 №856807 
Больше интересно, что совет с синглтоном похоже таки имеет право на жизнь. Бегло просмотрел исходники cachedobservable, там какая-то статик переменная даже без слабой ссылки.
Одни и те же говноеды делали, что и котлин
Аноним 15/10/16 Суб 00:34:43 #8 №856820 
>>856803
>Иди-ка ты нахуй, с такими советами
Аргументируй или умолкни.

В iOS/WP нет никаких разрушений при поворотах.
В Android это была ошибка проектирования, которая уже >6 лет будоражит неокрепшие умы
и является основным источником костылей.
Аноним 15/10/16 Суб 00:38:38 #9 №856824 
>>856820
И как же они так по хитрому мутят? Кляти индусы говна в андроид залили, когда это уже задеприкейтят?
Аноним 15/10/16 Суб 00:39:44 #10 №856825 
>>856807
>Одни и те же говноеды делали, что и котлин
Сильное утверждение, проверять мы его конечно же не будем.
Там ващет предупреждение для ебантяев, мол сильная ссылка, используйте с умом.

Аноним 15/10/16 Суб 01:01:35 #11 №856834 
>>856825
Я даже не нашел, сколько времени хранится этот "кэш". Получается, самый оптимальный вариант - нихуя не кэшировать, и хранить презентер в ретейн фрагменте со слабой ссылкой на вью.
Аноним 15/10/16 Суб 01:45:29 #12 №856841 
>>856769
Я делаю как в mosby, все экраны - ретеин фрагменты, и в них соответственно находится презентер, минусов пока не вижу
Аноним 15/10/16 Суб 10:00:35 #13 №856900 
>>856841
Retainfragment - это вообщем очевтдно.
Единственная полезная вещь, которая есть в mosby - прослойка viewstate.
Аноним 15/10/16 Суб 15:25:24 #14 №857027 
Кто-нибудь юзает Firebase TestLab? Судя по их описанию, эмуляторы теперь вообще нинужны.
Аноним 15/10/16 Суб 15:55:24 #15 №857044 
>>857027
Только если у тебя дохуя бабла.
Аноним 15/10/16 Суб 16:00:47 #16 №857048 
>>857027
Лично мне нинужна Firebase TestLab.
Бизнес-логика тестируется на JVM; инстурментационные юнит-тесты, интеграционные и системные на эмуляторе на CI сервере.
Аноним 15/10/16 Суб 16:59:54 #17 №857067 
Котлин - очередной мем-недоязык или на нем серьезно можно писать что-то?
На джяве писать - как говна поесть.
Аноним 15/10/16 Суб 17:14:12 #18 №857078 
>>857048
Ты тестировщику хоть что-то оставляешь?
Аноним 15/10/16 Суб 17:22:06 #19 №857087 
>>857078
Фрилансер же, нет никакого тестировщика.
Даже если бы был, написание тестов - это всё равно задача разработчика.
Аноним 15/10/16 Суб 17:33:13 #20 №857092 
>>857067
Можно.
Не очень большие проекты рекомендую на нём и писать. По крайней мере, попробуй.
Аноним 15/10/16 Суб 20:43:24 #21 №857194 
Господа, подскажите: сколько же сейчас нужно оперативы, чтобы ведроид студия + эмулятор работали нормально?
Хватит ли ноута
https://www.ulmart.ru/goods/3805012 ? Или онли стационарник с лучшими характеристиками? Бюджет 70к.
Аноним 15/10/16 Суб 20:43:51 #22 №857195 
О каких примерах говорит лектор с 3й минуты? Где почитать?
https://www.youtube.com/watch?v=AlxMGxs2QnM
Аноним 15/10/16 Суб 20:44:33 #23 №857196 
>>857194
Купи мак.
Аноним 15/10/16 Суб 20:52:03 #24 №857198 
>>857196
Двачую.
Аноним 15/10/16 Суб 21:35:05 #25 №857219 
>>857194
Минимум 8 Гб, лучше 16.
Обязательно SSD.

Макбук не нужен.
Аноним 15/10/16 Суб 22:36:18 #26 №857251 
Котаны, подскажите как ускорить отрисовку на canvas?
У меня щас в onDraw рисуется график из 1000 точек через path + drawCircle. Выделений памяти нет, точки из ArrayList беру. При скролле недостаточно плавно скроллится.
Аноним 15/10/16 Суб 22:40:28 #27 №857253 
>>857251
Смотри что жрет время. Вряд ли замена на массив тебе поможет, хз, вон даже блюр динамический умудряются делать что бы не лагало, код в студию.
Аноним 15/10/16 Суб 23:10:37 #28 №857274 
>>857251
- Результаты профайлера в студию (или хотя бы код)
- Нафиг ты рисуешь в 1000 точек? Погуги про Levels Of Detail и подумай как это применить (вряд ли пользователь может воспринять твои 1000 точек)
Аноним 15/10/16 Суб 23:55:43 #29 №857308 
Что делать, если у тебя в презентере обработка всяких дат, в том числе системной, которые потом идут адаптеру? Надо юзать Calendar для системного времени, а он отдает Date из android.
Хуячить всю логику в отдельный интерактор?
Аноним 16/10/16 Вск 00:19:11 #30 №857325 
>>857251
Инициализация всех draw, paint и т.д. должна происходить НЕ в onDraw
Аноним 16/10/16 Вск 00:19:40 #31 №857326 
>>857308
Напиши Adapter
Аноним 16/10/16 Вск 12:46:49 #32 №857527 
>>857308
Передавать презентеру Calendar.
Аноним 16/10/16 Вск 13:44:52 #33 №857570 
Аноны, где почитать нормальный код? Что то простое для начала.
Аноним 16/10/16 Вск 14:14:44 #34 №857595 
>>857274
Прореживание и так есть.
>>857253
Вот код отрисовки точек:
https://gist.github.com/anonymous/1db126a2d96ad1e860095ab5e01d6561
Здесь что-то можно оптимизировать?
>>857325
Так и есть.
Аноним 16/10/16 Вск 14:22:02 #35 №857602 
>>857595
Ты уверен, что тебе нужен double вместо float?
Аноним 16/10/16 Вск 14:32:12 #36 №857612 
>>857602
Не уверен. Но пускай будет.
Смена float на double ни на что не повлияла.
Аноним 16/10/16 Вск 15:23:50 #37 №857650 
Аноны, мне надо чтобы мой linearlayout во фрагменте растягивался под статус бар, но его содержимое не лезло под статус бар, как такое сделать?
Аноним 16/10/16 Вск 15:32:19 #38 №857661 
>>857612
Ну double считается в 2 раза дольше если что.
sageАноним 16/10/16 Вск 16:35:09 #39 №857706 
>>857661
Расставляй приоритеты, накладные расходы на эту арифметику ничтожны, в масштабе 1000 точек это всего лишь пара лишних микросекунд.
Аноним 16/10/16 Вск 18:06:27 #40 №857765 
>>857251
Можно конечно два деления из каждого витка убрать, но это тебе вряд ли тебе поможет. Тут именно что обращений к канвасу много, может там и есть какие-то батчи.
Аноним 16/10/16 Вск 18:26:37 #41 №857779 
>>857765
> может там и есть какие-то батчи
https://developer.android.com/reference/android/graphics/Path.html

Можно делать один drawPath, но его тоже долго собирать.
Аноним 16/10/16 Вск 18:48:55 #42 №857795 
>>857779
А если куча маленьких вьюшек с простым onDraw?
Аноним 16/10/16 Вск 18:50:11 #43 №857796 
Перекатываюсь
Как запилить ебаные локальные юнит тесты?
Сделал все по гайду, от гугла:
1. положил класс с тестами в src/test/java
2. прописал зависимости testCompile.
Нихуя не работает, причем никакие зависимости со скоупом testCompile не подтягиваются вообще.
Либо мб есть способ использовать файл из файловой системы в androidTest?
Аноним 16/10/16 Вск 19:23:45 #44 №857807 
>>857795
То еще хуже, ведь они будут также 1000 раз вызывать onDraw, так еще и будут 1000 раз вызывать onMeasure, onLayout.
Аноним 16/10/16 Вск 20:34:37 #45 №857851 
>>857807
Ну тогда только SurfaceView/TextureView.
Аноним 16/10/16 Вск 23:09:51 #46 №857963 
>>857796
> Нихуя не работает
У меня всё работает. А телепаты в отпуске.
Аноним 17/10/16 Пнд 00:20:12 #47 №858045 
>>857963
Есть класс com.example.TestClass лежит в src/test/java/. В нём есть метод аннотированный @Test, при запуске этого теста через Ctrl+Shift+10 он запускается на виртуальном устройстве, при попытке запуска через JUnit-овский run config он мне сообщает, что no test found. И плюс к этому всему зависимости с testCompile скоупом не видны в src/test/java
Аноним 17/10/16 Пнд 17:35:49 #48 №858411 
>>858045
Ну, у меня всё работает, говорю же.
Создай новый проект, там будет пример тестов в test и androidTest, проверь, запускаются ли они. Потом ищи, что ты сломал в своём проекте.
Аноним 17/10/16 Пнд 17:43:21 #49 №858415 
14767154016060.jpg
Анон, подскажи можно ли реализоват 2P2 передаху данных через интернет на андроиде?
Аноним 17/10/16 Пнд 17:43:45 #50 №858417 
>>858415
P2P*
Аноним 17/10/16 Пнд 18:26:01 #51 №858446 
Поясните: RxSingle никто не юзает из-за отсутствия кэша?
Аноним 17/10/16 Пнд 18:33:53 #52 №858450 
>>858415
Можно.
Аноним 17/10/16 Пнд 21:10:14 #53 №858570 
>>858446
Потому что в rx какого то хуя на самом деле понятно какого Signle, Completable и Observable несовместимы. А дрочить toSingle() toObservable() неудобно.
Аноним 17/10/16 Пнд 21:42:05 #54 №858592 
>>858446
>RxSingle
Я юзал Single/Completable везде где было явно 1/0 onNext(), что бы убрать явный unsibscribe().

Потом меня тоже заебали toSingle/toComlpletable/toObservable (и то что они по умолчанию "холодные")
и я вообще ущел на CompletableFuture
Аноним 18/10/16 Втр 00:09:00 #55 №858691 
>>858450
как? Нечего кроме wifi найти не могу.
Аноним 18/10/16 Втр 00:19:30 #56 №858700 
>>858691
Нужно писать самому протокол и реализацию.
Аноним 18/10/16 Втр 00:20:11 #57 №858701 
>>858592
> и я вообще ущел на CompletableFuture
Ах ты пидор!
Аноним 18/10/16 Втр 01:33:22 #58 №858772 
анончики, подскажите плз
вот дали задание написать фоторедактор с сервером приложения
короче юзер авторизируется в сети, выбирает пикчу из галереи и редактирует ее(яркость,контраст,фильтры етс)
после чего у него есть возможность созранить эту картинку на сервере приложения, что бы не засорять память телефона
так же он может с этого сервера загрузить фоточки, которые редактировал
в качестве сервера приложение решил юзать Firebase, почитал про него, вроде подходит под мою задачу
пара вопросов:
1) как реализовать загрузку фоток из галереи?
2) какими фреймворками пользоваться для редактирования фотки?
3) есть ли какой то получше вариант, чем Firebase, в данной задаче?
Аноним 18/10/16 Втр 03:09:22 #59 №858796 
>Большинство приложений написано на Java
Вот те раз. Она же будет течь и тут же втягивать в себя вытекшую память сборщиком мусора. Это лишние циклы и потребление.
Аноним 18/10/16 Втр 09:26:07 #60 №858827 
>2016
>называть не закрытые ресурсы утечками
Аноним 18/10/16 Втр 12:03:24 #61 №858889 
>>858772
Node.js получше будет.
Аноним 18/10/16 Втр 15:21:24 #62 №859057 
Если я сделаю игру с помощью libGDX смогу ли импортировать эту игру в свой старый проект в android studio?
Аноним 18/10/16 Втр 18:27:35 #63 №859143 
Нужен пример сохранения инстанса активити внутри фрагмента с setRetainInstance.
Аноним 18/10/16 Втр 18:46:08 #64 №859149 
>>859143
Ебанутый?
Аноним 18/10/16 Втр 18:49:21 #65 №859151 
>>859149
Что не так?
Аноним 18/10/16 Втр 19:36:43 #66 №859179 
Анончики, хули он до меня доебался? Подключил недостающию либу к готовому проекту, версия точно такая же
Аноним 18/10/16 Втр 19:37:02 #67 №859180 
14768086230240.png
>>859179
пикчу потерял
Аноним 18/10/16 Втр 19:38:01 #68 №859181 
>>859143
чего вьебал?
Аноним 18/10/16 Втр 19:40:13 #69 №859183 
>>859181
>>859149
Сам нашел.
https://developer.android.com/guide/topics/resources/runtime-changes.html?hl=ru
Аноним 18/10/16 Втр 19:40:16 #70 №859184 
Ведроидеры, го меряться зарплатами!
30к, дс-2
Аноним 18/10/16 Втр 19:42:10 #71 №859187 
>>859184
Стажер, иди нахуй

мимо senior-помидор
Аноним 18/10/16 Втр 21:37:43 #72 №859228 
>>859057
С можешь, главное не стркутура проекта, а код.
Аноним 18/10/16 Втр 22:14:02 #73 №859261 
>>859228
> С можешь
Значение знаешь?
Аноним 18/10/16 Втр 22:30:28 #74 №859290 
>>859261
про бел
Аноним 19/10/16 Срд 03:39:09 #75 №859445 
>>858772
>вот дали задание написать фоторедактор с сервером приложения
>1) как реализовать загрузку фоток из галереи?
>2) какими фреймворками пользоваться для редактирования фотки?
Нахуй ты сюда пришел, макака?
Аноним 19/10/16 Срд 03:42:36 #76 №859446 
>>857251
Хуяч на glsurface нативно
Аноним 19/10/16 Срд 19:48:26 #77 №859957 
Есть чего почитать фундаментального про Kotlin без изучения Java? До этого прогал на C#. Для удобства усвоения лучше на русском
Аноним 19/10/16 Срд 21:09:11 #78 №860030 
>>859957
>фундаментального
>по котлину
>без джавы
>на русском
Я даже не знаю можно ли тебе помочь. Можешь посмотреть презенташки.
Аноним 19/10/16 Срд 21:33:56 #79 №860062 
>>859957
https://kotlinlang.org/docs/reference/ - online доки (и список книг)
https://kotlinlang.org/docs/kotlin-docs.pdf - offline доки (сойдет за книгу)
https://www.manning.com/books/kotlin-in-action - книга от разработчиков языка (как обладатель, могу сказать что это пересказ доков)

https://blog.jetbrains.com/kotlin/2016/03/kotlin-educational-plugin/
Поставь этот плагин в IDEA (AndroidStudio) - если сделаешь все задачки, считай что язык освоил
Аноним 19/10/16 Срд 21:36:35 #80 №860068 
>>859957
Когда станет лень читать глянь видосики из этого плейлиста (начинай со старых)
https://www.youtube.com/playlist?list=PLVe-2wcL84b8pj7VOoa-6L9Q0sDjibdoF
+
https://www.youtube.com/watch?v=9x6utkLDBs8
Аноним 19/10/16 Срд 22:16:37 #81 №860107 
На крестах не написать приложуху? Не хочу ебучую жабу.
Аноним 19/10/16 Срд 22:18:16 #82 №860109 
>>860107
Лучше возьми Haskell.
Аноним 19/10/16 Срд 22:33:23 #83 №860120 
14769056032410.jpg
Сложно ли сделать кросс-платформенный клиент (Android, iOS, Windows) для сайта-сервиса? Чтобы синхронизация, чтобы всякие пуш-уведомления/оповещения - вот это всё.
Дорого ли будет, если веб-приложение почти полностью готово?
Ты, вот ты, суперразработчик, за сколько бы взялся за такое?
Перепост из прикреплённого, вдруг суперразработчики его скрыли
Аноним 19/10/16 Срд 22:35:09 #84 №860122 
>>860109
А серьезно? Я в крестах себя чувствую гораздо комфортнее, чем в шарпе, джава явно не лучше зайдет.
Аноним 19/10/16 Срд 22:36:54 #85 №860125 
>>860122
Ты в крестах будешь голый, без кнопочек и формочек. Можешь конечно попробовать Qt. Кресты для всякой низкоуровневой поебени со звуком и прочими акселерометрами.
Аноним 19/10/16 Срд 23:05:08 #86 №860145 
>>860120
~500$-1f$ - пальцем в небо без ТЗ
P.S. Я бы и не взялся за такое, ибо это просто омерзительно.
P.P.S. Да, нюфаг-тред всегда скрываю - это же как и /b/ по сути помойка.

сеньер-разработчик
Аноним 19/10/16 Срд 23:11:36 #87 №860151 
14769078968780.jpg
>>860145
Спасибо за ответ, бро.
500-1к именно за кроссплатформенный клиент?
Омерзительная именно кроссплатформенность?
Ну а как быть, если на iOS самая платёжеспособная часть аудитории, а на Android - бОльшая часть аудитории, причём не менее платёжеспособная? И рыбку съесть, и на ёлку влезть.
Аноним 19/10/16 Срд 23:24:48 #88 №860175 
>>860151
Кроссплатформа может получится кривой. Да и тот ценник что он тебе назвал какая-то шляпа. Нельзя сказать стоимость, не зная че ты там хочешь.
Аноним 19/10/16 Срд 23:39:02 #89 №860195 
>>860175
Ну то да, конечно.
Там покупки должны быть встроены, а так вроде ничего больше, кроме синхронизации.
А вообще как тут обстоят дела, с чего это начинается? Мне нужно все исходники зарядить разрабу, это ж не один месяц трудов!
Аноним 19/10/16 Срд 23:44:53 #90 №860202 
>>860151
>500-1к именно за кроссплатформенный клиент?
За обертки под android/ios/windows + пуши (не понял что за синхронизация).

Что бы меньше возиться с android фрагментацией, можно взять кросплатформенную (ios/android) библиотеку
для webview на хромиуме.
Для пушей тоже есть единый GCM (под android/ios).

На WP с оберткой и пушами придется поебаться отдельно тк он нахрен никому не нужен.

>Омерзительная именно кроссплатформенность?
Нет, а реализация через веб клиент.

>И рыбку съесть, и на ёлку влезть.
На Xamarin.Forms / RoboVM+Kotlin я бы еще подумал, но там будет дороже в разы.
Аноним 20/10/16 Чтв 00:07:16 #91 №860228 
>>860202
Синхронизация с веб-приложением. Основным всё-таки будет просто сайт, доступный из браузера. Или приложение на мобильнике, по идее, и является копией веб-приложения, о чём я несу... То есть все изменения в мобильном приложении и так должны отображаться в основном.
Я просто нуб, даже не подумал о таком, ну тупой.. Это же как другой браузер открыть, залогиниться, внести изменения и увидеть их в основном браузере на сайте.
>Нет, а реализация через веб клиент.
Ну просто это основное, пока никуда не деться от этого.
>На Xamarin.Forms / RoboVM+Kotlin я бы еще подумал, но там будет дороже в разы
Спасибо, записал это.
Аноним 20/10/16 Чтв 00:15:08 #92 №860240 
Анон, есть джава библиотека для решения СЛАУ?
Аноним 20/10/16 Чтв 00:18:53 #93 №860243 
>>860240
Не сдашь лабу, пидор
Аноним 20/10/16 Чтв 00:20:27 #94 №860244 
>>860243
Ну плес, я этот ебучий метод гаусса не понимнаюю
sageАноним 20/10/16 Чтв 00:23:03 #95 №860245 
>>860244
Нахуй ты тогда в программирование попёрся? Улицы грязные, щебень не разгружен.
Аноним 20/10/16 Чтв 00:24:54 #96 №860249 
>>860175
> Кроссплатформа может получится кривой.
Не может, а получится.
sageАноним 20/10/16 Чтв 00:26:05 #97 №860252 
>>860202
> На Xamarin.Forms / RoboVM+Kotlin я бы еще подумал
Ты бы и на ReactNative'e подумал.
Аноним 20/10/16 Чтв 00:30:03 #98 №860257 
>>860245
Будто он в нужен в реальной ит-индустрии, тем более порядочным андроид-господинам.
sageАноним 20/10/16 Чтв 00:32:09 #99 №860261 
>>860257
Будто безмозглые макаки, неспособные ёбаный метод Гаусса понять, нужны.
Аноним 20/10/16 Чтв 01:15:12 #100 №860300 
Оцените проект:
https://github.com/konstantinx/simplemailclient

Можно ли такой говнокод кидать в резюме на джуна java или лучше не стоит?
Аноним 20/10/16 Чтв 01:44:30 #101 №860319 
14769170709950.png
14769170709951.png
14769170709952.png
>>860300
Так-то адище.
Аноним 20/10/16 Чтв 01:47:55 #102 №860322 
>>860300
Оформи код хотя бы согласно java code conventions, попытайся не пихать всё в кучу, а разбить на отдельные классы, каждый из которых выполняет отдельную задачу.
Аноним 20/10/16 Чтв 02:30:34 #103 №860334 
>>860319
>asynctask
Нет, с таким резюме тебя никуда не возьмут
Аноним 20/10/16 Чтв 02:53:44 #104 №860337 
>>860334
Можно кто-то нормально объяснить, чем плох AsyncTask и что лучше использовать?
мимо другой
Аноним 20/10/16 Чтв 03:33:38 #105 №860340 
>>860337
rxjava
Аноним 20/10/16 Чтв 03:33:49 #106 №860341 
>>860319
Поясни: чем плох первый пик? Одни орут, что без геттеров и сеттеров - никуда, другие - что они не нужны, ибо раздувают код. Заодно приглашаются сениоры притащить свой вариант их использования.

>>860300
Я посмотрел только общую структуру и пару классов.

1) Java code conventions
2) Все константные значения должны быть обозначены. Если ты хочешь идти Android-джуном - за отображение строк не из XML, твоё резюме мгновенно пошлют нахуй.
3) Рефакторинг кода, пик 2 намекает
4) Читай про архитектуру проектов. А лучше, посмотри пример чужих проектов. У тебя нет даже чёткого логического разбиения на модули.
5) Твой анонимный асинктаск содержит в себе неявную ссылку на объект - хранителя. Это 100% утечка. За такое могут тоже обоссать.
6) Я не вникал в логику, но если у тебя там хуйня общается по почтовому протоколу - нужно учитывать возможные ошибки протокола, и обрабатывать их. Если идёшь в ведроид - ситуации отсутствия сети, или внезапной её потери тоже нужно обрабатывать.

Это если не говорить о тестируемости, расширяемости, внедрении зависимостей...
Код слабый, на яваджуна врядли потянет, на ведроидера - точно нет. Сама идея неплохая, по сравнению со змейками и отображателями погоды.
Так что редактируй. Длинная простыня - но похуй, тред полумёртвый
Аноним 20/10/16 Чтв 03:41:47 #107 №860342 
>>860337
Тут в треде орудует несколько Rx-дебилов, которые ненавидят все стандартные решения.
Асинктаск плох тем, что для его корректной работы нужно писать много обслуживающего кода.
Для Rx нужно всё тоже самое, ибо слабые ссылочки никто не отменял. Но там хотябы можно нормально обрабатывать ошибки.
Аноним 20/10/16 Чтв 09:30:54 #108 №860378 
14769450542970.png
>>860341
>приглашаются сениоры притащить свой вариант
Да без проблем
Аноним 20/10/16 Чтв 09:47:09 #109 №860385 
>>860378
Мог бы и дата классом сделать.
Аноним 20/10/16 Чтв 09:52:59 #110 №860389 
>>856769
сиглтон кэш для запросов и синглтон кэш для ViewState
Аноним 20/10/16 Чтв 09:56:26 #111 №860390 
>>857251
юзай linkedhashmap, индекс - порядок отрисовки, ключ - координаты, данные - rgb
Аноним 20/10/16 Чтв 10:48:49 #112 №860416 
>>860390
У него с с количеством проблемы.
Аноним 20/10/16 Чтв 12:22:34 #113 №860485 
Правильно и я понимаю что контракт классы нужны, чтобы объявлять в них внутренние классы, которые будут хранить константы для наименований столбцов и представлять отдельную таблицу в БД?
sageАноним 20/10/16 Чтв 14:23:44 #114 №860595 
>>860378
В школу уже собрался, синьор?
Аноним 20/10/16 Чтв 17:04:29 #115 №860725 
Ребята, выручайте.
Есть, значит, инфа в JSON, которую принимает приложение. Примерно вот такого вида:
[code]
{
"title": "Test to file2",
"description": "Test description1245",
"fileGroup": "file2",
"icon": "check_i"
}
[/code]

В поле icon передаётся название drawable-ресурса, который должен выводиться при выводе этого JSON-объекта на экран. Если я напишу что-то вроде

[code]
JSONObject jsonData = getJSONObject(R.raw.json);
String icon = jsonData.getString("icon");
[/code]

то при вызове R.drawable.icon компилятор меня закономерно пошлёт нахуй, сами понимаете. Что делать, анон?
Аноним 20/10/16 Чтв 17:10:51 #116 №860736 
>>860725
Может, сразу перечислять где-нибудь ссылки на ресурсы? Что-то вроде
Array(
"icon" => R.drawable.icon;
"picture" => R.drawable.picture;
...
);

А потом просто брать элемент из массива. Но это же такой костыль, просто пиздец.
Аноним 20/10/16 Чтв 17:44:15 #117 №860758 
Чет не нравится мне в джаве принудиловка с обязательной обработкой исключений.
Может, для методов с заранее неизвестными аргументами это и великое благо, но если метод вообще без параметров и обрабатывает, например, заранее заданную строку - это какое-то излишнее загаживание кода.
Пример тому - обработка строки через парсер json-simple.

Типа

String response = "{"p_item": [{"p_id": 132},]}";

JSONParser parser = new JSONParser();
JSONObject json = (JSONObject)parser.parse(response.toString());


Это обязательно нужно обернуть в блок try, отловить исключение, или прописать в сигнатуре через throws (и тогда отлавливать нужно будет в вызывающем коде). Что тут отлавливать? И самое главное - какие действия я должен прописывать при отлове на случай исключения?
Почему нельзя просто заранее протестировать эту строку и забить хуй, не засирая код говном без задач?
Аноним 20/10/16 Чтв 17:55:01 #118 №860770 
>>860758
И вообще, является ли хорошей идеей взять и все эти исключения, для которых не нужна особая обработка - обрабатывать только на самом верхнем уровне вызывающего кода?
Тем более, что обработка для всех отдельно была бы одинаковой, уровня вывода инфы.
Аноним 20/10/16 Чтв 18:28:57 #119 №860792 
>>860725
>>860736
Сам сталкивался с такой задачей. В итоге сделал костыль. Если иконок не очень много, вполне можно пойти на такую сделку с совестью.
Аноним 20/10/16 Чтв 18:30:29 #120 №860794 
>>860770
Нет. Исключения не должны пролетать слишком высоко. В идеале должны ловиться уже на уровне, с которого была вызвана упавшая функция.
Аноним 20/10/16 Чтв 18:38:08 #121 №860800 
>>860758
Твой JSON парсер не может (да и не обязан) знать, является ли корректным форматом json входная строка. Если в процессе анализа он видит, что не является - анализ дальше продолжаться не может, и ему надо тебя как-то уведомить. Что тебя смущает?
Если у тебя ошибка в организации кода (выход за пределы массива и им подобные) - бросается runtimeexception, который не ловят. В случае с парсером ты должен сам обрабатывать некорректные данные
Аноним 20/10/16 Чтв 18:45:16 #122 №860811 
>>860736
>>860792
Это не костыль. Пляши от того, что вместо корректной иконки может придти ерунда.
Аноним 20/10/16 Чтв 18:48:56 #123 №860815 
>>860736
>>860792
Resources.getIdentifier
Аноним 20/10/16 Чтв 22:24:22 #124 №860992 
>>860485
>контракт классы
что ты имеешь в виду?
Аноним 20/10/16 Чтв 22:37:50 #125 №861001 
>>860758
Ебани gson, что ты хуйней занимаешься?
Аноним 20/10/16 Чтв 22:40:42 #126 №861003 
>>860725
Ебать дебил.
У тебя R.drawable.icon - это ссылка на конкретный int.
Аноним 20/10/16 Чтв 23:56:25 #127 №861074 
Ребзя, помогите, уже не знаю куда рыть.
Звук с микрофона, записанный с помощью MediaRecorder (ставил все возможные энкоды и аудиоформаты) не воспроизводится десктопным ява-приложением. На выходе получаю файл с расширением .мп3, но, как я понимаю, это не тру мп3 (в настоящем мп3 еще есть хедеры), итого мой ява десктоп клиент без проблем воспроизводит песню, скачанную с интернета в мп3, но не может в проигрывание того, что я записал с трубки. Как это можно было бы организовать? (Огг прошу не предлагать, ебал я ндк за свою зарплату)
Аноним 21/10/16 Птн 01:03:37 #128 №861124 
14770010175240.jpg
>>860815
Охуенно, анончик, спасибо тебе! Завтра попробую, вроде должно сработать, если верить документации. Держи смешную картинку. Надеюсь, тебе понравится.
>>861003
Сам дебил. Я знаю, что R.drawable.icon - ссылка на константу. Поэтому и задал вопрос.
Аноним 21/10/16 Птн 02:26:02 #129 №861152 
>>860485
Правильно. Смотри Sunshine
Аноним 21/10/16 Птн 08:21:48 #130 №861194 
>>861074
Запиши wav при помощи AudioRecord.
Аноним 21/10/16 Птн 11:09:37 #131 №861220 
Котаны, как в крупных компаниях борются с проблемами, когда ПО не работает из-за кривой прошивки смартфона?
Мы продаем bluetooth le считыватели rfid меток для складов (узкая сфера) и пару раз за год попадаются клиенты с китайскими смартфонами (THL, Highscreen), которые после своих же обновлений не находят bluetooth low energy девайсы.
Причем блджад это массовая проблема с конкретными моделями смартфонов.

Как грамотно и технично послать таких людей нахуй?
Аноним 21/10/16 Птн 11:25:37 #132 №861228 
>>861220
>Котаны, как в крупных компаниях борются с проблемами, когда ПО не работает из-за кривой прошивки смартфона?
К сожалению Ваш смартфон не входит в список официально поддерживаемых нашим продуктом. Пожалуйста пососите писос.
Аноним 21/10/16 Птн 12:03:07 #133 №861240 
>>861228
Ага. Вот только по всем параметрам смартфон соотвествует требованиям.
Здесь нужно что-то другое.
Аноним 21/10/16 Птн 12:31:24 #134 №861256 
>>861240
>Вот только по всем параметрам смартфон соотвествует требованиям
Не требования пишите, а список трубок по моделям. Если трубы нет в списке, пусть пользуются проводным устройством (если оно у вас есть).
Аноним 21/10/16 Птн 14:27:13 #135 №861324 
>>861256
>список трубок по моделям
Можно конечно, но тогда перестанут покупать - "ведь моего LeTV там нет".
Аноним 21/10/16 Птн 15:50:35 #136 №861407 
Пиздос.

Connection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

Джава обрезает урл при реквесте, если в нем есть пробел!
Если уж добавили обработку, сложно было сделать автозамену пробелов на %20?
Аноним 21/10/16 Птн 15:54:20 #137 №861411 
>>861407
Сука крыса блять, ладно бы исключение возвращала, что такого адреса нет или урл неправильный, но нет - падла тихушничает и творит свои черные дела на свое усмотрение.
Аноним 21/10/16 Птн 16:16:33 #138 №861429 
Как можно вытащить из JSON элемент типа
{"4143634":"hui"}
Если цифры каждый раз отличаются? И при этом это не Array?
Аноним 21/10/16 Птн 16:40:55 #139 №861446 
>>861429
У JSONObject можно получить список ключей.
Аноним 21/10/16 Птн 16:46:37 #140 №861452 
>>861429
если всегда цифры и тебя этот ключ интересует, грязно можно пытаться привести к инту, если эксепшн, следющий ключ.
Аноним 21/10/16 Птн 16:58:39 #141 №861460 
>>861407
>>861411

R E T R O F I T
E
T
R
O
F
I
T
Аноним 21/10/16 Птн 17:03:36 #142 №861464 
>>861460
Прежде чем обмазываться чем то нужно понимать, почему ты этим обмазываешься.
Аноним 21/10/16 Птн 17:14:00 #143 №861469 
>>861411
Почему джава виновата в том, что ты по своей тупости или невнимательности не энкодишь свой урл? И где там ты обработку видишь?
Аноним 21/10/16 Птн 17:45:37 #144 №861489 
>>856749 (OP)
Аноны, вообщем такая проблема:
Есть два фрагмента и между ними анимация с shared elements. Так вот, первый фрагмент это список, а второй соответственно детальное отображение списка. При запуске приложения данные для списка берутся из бд и только потом берутся из сети. Вся эта логика у меня в презентере, от которого я детачу вью в onDestroyView(). И проблема в том, что shared elements работают только с методом replace(), а не с методом add() у FragmentTransaction. А метод replace дестроит мой первый фрагмент, и соответственно данные из сети он не получит, что делать?
Аноним 21/10/16 Птн 18:02:12 #145 №861497 
>>861464
Потому что, не нужно изобретать очередной велосипед.
Аноним 21/10/16 Птн 18:04:36 #146 №861498 
>>861489
Повеситься.

Данные из сети ты должен получать не в презентере, презентер должен лишь вызвать соответствующий метод репозитория.
Аноним 21/10/16 Птн 18:11:24 #147 №861506 
>>861489
А как ты презентер хранишь, чтобы он не уничтожался при повороте экрана?
Аноним 21/10/16 Птн 19:01:22 #148 №861538 
Посоветуйте самый топовый способ создания анимации fade out/fade in для фрагментов, которые меняются через replace.
Приложение для Android 4.0.4 и выше.
Аноним 21/10/16 Птн 19:15:49 #149 №861547 
>>861498
ой бля, я так и делаю, и зачем ты это написал? Как это помогает решить мою проблему?
>>861506
ретеин фрагменты
http://hannesdorfmann.com/mosby/
Делаю как в мосби, но саму либу не юзаю, считаю её избыточной, т.к. проще и понятнее сделать самому.
Аноним 21/10/16 Птн 19:36:30 #150 №861565 
>>861489
> А метод replace дестроит мой первый фрагмент
Он его не дестроит если ты добавляешь его в бэкстек.
Аноним 21/10/16 Птн 19:52:08 #151 №861576 
>>861547
> я так и делаю, и зачем ты это написал? Как это помогает решить мою проблему?
Если ты так и делаешь, то в чем твоя проблема? Обновление данных происходит в репозитории, вне зависимости от того, какой у тебя там фрагмент показан.
Аноним 21/10/16 Птн 19:56:00 #152 №861580 
>>861576
У меня есть интерактор, в котором методы для работы с бд/сетью, все они возвращают observable с разными данными, городить какой нибудь синглтон класс не вариант, и вопрос скорее не про архитектуру, а дестрой фрагмента и анимацию
Аноним 21/10/16 Птн 19:56:53 #153 №861581 
>>861565
так и делаю, onDestroyView() вызывается
Аноним 21/10/16 Птн 20:14:08 #154 №861587 
>>861547
> ретеин фрагменты
Не распишешь подробнее, пожалуйста?
Т.е., твой View - это фрагмент, у которого вызван setRetainInstance(true);. Как ты тогда создаешь презентер? Проверяешь в onViewCreated(), создан ли уже презентер или он равен null, так? А когда тогда нужно вызывать attachView() и detachView() у презентера?

ньюфаг, пытающийся войти в mvp
Аноним 21/10/16 Птн 20:17:07 #155 №861591 
>>861587
я скинул сайт, прочитай, там все написано про это с диаграммами
Аноним 21/10/16 Птн 20:58:35 #156 №861614 
>>861581
И в чем проблема то? Презентер не уничтожается же, onDestroy не вызывается.
Аноним 21/10/16 Птн 21:13:02 #157 №861619 
>>861614
я отписываюсь в onDestroyView, иначе будет течь
Аноним 21/10/16 Птн 21:13:48 #158 №861620 
>>861619
Не будет.
Аноним 21/10/16 Птн 21:18:07 #159 №861623 
>>861620
как не будет, у меня ретеин фрагмент, вью фрагмента пресоздастся и пизда
Аноним 21/10/16 Птн 21:29:51 #160 №861632 
>>861623
Тебе какое дело до вью, если ты в презентере? Ты отписываться в onDestroy должен.
Аноним 21/10/16 Птн 21:36:32 #161 №861635 
>>861632
Смотри, я в презенере получаю данные, в это время я сделал replace (вызвалось onDestroyView) данные пришли, я их хочу отправить во фрагмент, но там ничего нет, все скрашится просто, даже течь не будет
Аноним 21/10/16 Птн 21:39:12 #162 №861640 
>>861635
> все скрашится просто
И че, у тебя презентер не в состоянии проверить, приаттачена к нему вьюха или нет? В аттачвью потом покажешь свои данные.
Аноним 21/10/16 Птн 21:42:00 #163 №861643 
>>861640
бля, хранить данные где-то в презентере не оч
Аноним 21/10/16 Птн 21:44:36 #164 №861644 
>>861643
Ну качай тогда заново, хули.
Аноним 21/10/16 Птн 22:04:23 #165 №861647 
>>861640
>>861643
Вариант отписываться И отключать вьюху, имхо, самый безпроблемный. Если у тебя там в презентер прилетит много разных, а еще часть уже висит в адаптерах - заебешься это все разруливать. У мосби по это организован отдельный компонент viewstate
Аноним 21/10/16 Птн 22:05:27 #166 №861648 
>>861647
>поэтому
быстрофикс
Аноним 21/10/16 Птн 22:15:59 #167 №861652 
>>861635
Сделай класс Viewstate который реализует тот же интерфейс что и View и зеркально отображает всю инфу на View, если оно не null, а иначе сохраняет и синхронизирует состояние View с тем, что сохранило при помощи метода sync(), который ты дёрнешь когда заново после смены ориентации создастся вьюха.
Аноним 21/10/16 Птн 22:19:38 #168 №861654 
>>861652
У меня есть viewstate, но он лежит во вью
>иначе сохраняет и синхронизирует состояние View
Ты предлагаешь передавать viewstate в presenter?
Аноним 21/10/16 Птн 22:27:59 #169 №861660 
>>861654
Viewstate со стороны презентера тоже что и View.
Так что без передачи его в презентер не обойдется.
Аноним 21/10/16 Птн 22:29:20 #170 №861662 
>>861660
да, похоже это самый лучший вариант, спасибо
Аноним 21/10/16 Птн 22:40:57 #171 №861666 
>>861652
Viewstate должен в любом случае сохранять состояние гуя. Не толтко, когда гуй уже null.
Аноним 21/10/16 Птн 22:47:01 #172 №861668 
viewstate не нужен
Аноним 21/10/16 Птн 22:54:04 #173 №861671 
>>861668
Альтернатива - это гугловский подход: перевернули смартфон - заново сделали выборку из БД / отправили запрос. Верно?
Аноним 21/10/16 Птн 23:00:11 #174 №861673 
>>861671
Неверно. Гугловские приложения не теряют данные и не вызывают повторно уже завершенные запросы.
Аноним 21/10/16 Птн 23:41:03 #175 №861684 
>>861652
Охуенно. А теперь у нас будет дохуя вьюх, и у каждой своя инфа и тип отображения.
Аноним 21/10/16 Птн 23:54:28 #176 №861688 
>>861684
юзаешьдженерик и все, иногда придется создавать новый viewstate, да. Но лучше больше классов, и понятная реализация, чем какая то хуйня
Аноним 22/10/16 Суб 09:02:23 #177 №861770 
>>861673
Как они это делают? Где хранят данные, откуда подтягивают при пересоздании UI?
Аноним 22/10/16 Суб 13:32:19 #178 №861819 
>2016
>ебаться с фреймворком, основанным на костылях
>не мочь в обработку звонков и смс
>ебаться с версткой под зоопарк устройств
>ссать петухов с китайскими говнофонами
>иметь потлок зп 90к в рашке
ведропетухи, вам не стыдно сидеть на этой борде?
Аноним 22/10/16 Суб 13:58:57 #179 №861831 
>>861819
Конечно стыдно, но куда деваться.
Аноним 22/10/16 Суб 16:43:49 #180 №861891 
>>861819
Лучше ебаться с легаси 20 летней давности на бэкенде?
Аноним 22/10/16 Суб 19:30:47 #181 №861950 
>>861819
Попизди мне тут про потолок в 90к.
https://hh.ru/search/vacancy?text=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82+android&area=1
Аноним 22/10/16 Суб 22:10:13 #182 №862063 
>>860300
ща буду обоссывать

1) выпили нахуй .idea и .iml - у тебя есть файлик .gitignore - добавь это туда и выполни команду git rm --cached name_of_file
(если не можешь в консольку - иди нахуй или учись)
2) зачем https://github.com/konstantinx/simplemailclient/tree/master/commons-lang3-3.4-javadoc https://github.com/konstantinx/simplemailclient/tree/master/app/libs https://github.com/konstantinx/simplemailclient/tree/master/commons-lang3-3.4 вот это говно? гугли подключение зависимостей через gradle
3) Хули тестов нет? Запили хотя бы по тесту на класс чтобы показать, что ты можешь в тесты. Сделай хотя бы самые тупые, но в идеале гугли JUnit, Mockito, Dagger 2
4) Форматирование кода - не умеешь? запомни сочетание клавиш для автоформата и нажимай их сука всегда
5) Про код в целом - ГОВНО (я даже не стал пытаться вникнуть). Гугли принципы солид, а особенно это

>Принцип единственной ответственности гласит — «На каждый объект должна быть возложена одна единственная обязанность». Т.е. другими словами — конкретный класс должен решать конкретную задачу — ни больше, ни меньше.

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

Про AsynkTask тебе писали выше.

В общем я надеюсь, что ты не расстроишься (хотя мне похуй), а сделаешь правильные выводы и исправишь свое говно и тогда, быть может сможешь найти работу.
Аноним 22/10/16 Суб 23:28:31 #183 №862092 
Подскажите ребят 90к за сразу после универа это норм? Работал на полставки 2 года на последних курсах, сейчас на галерах, но боюсь не продешевил ли. Я уже миддл или синьор? Мухосрань 400к населения если что.
Аноним 22/10/16 Суб 23:45:40 #184 №862105 
>>862092
ты еблан
Аноним 22/10/16 Суб 23:49:25 #185 №862110 
>>862063
>3) Хули тестов нет? Запили хотя бы по тесту на класс чтобы показать, что ты можешь в тесты. Сделай хотя бы самые тупые, но в идеале гугли JUnit, Mockito, Dagger 2
Вот эта хуйня там будет чисто для галочки. Даже на продакшене в конторах порой нет тестов, ибо ненужны.
Имхо, тестить стоит только всякую сложную логику.
Аноним 22/10/16 Суб 23:50:41 #186 №862111 
>>862105
Поясни
sageАноним 23/10/16 Вск 00:08:40 #187 №862127 
>>862110
> Даже на продакшене в конторах порой нет тестов, ибо ненужны.
Съеби в js-тред.
Аноним 23/10/16 Вск 00:17:33 #188 №862135 
14771710531970.jpg
Аноним 23/10/16 Вск 00:28:15 #189 №862141 
>>862111
>Я уже миддл или синьор
рассказывай о проектах, стек технологий
Аноним 23/10/16 Вск 00:38:37 #190 №862144 
ксамарин зашкварно или годнота?
Аноним 23/10/16 Вск 00:42:46 #191 №862147 
14771725666580.png
>>862144
Удваиваю вопрос
Аноним 23/10/16 Вск 00:56:36 #192 №862154 
14771733962110.jpg
>>862144
>>862147
Говнище. Был один проект на нем, так до сих пор воротит. Ебаная прослойка, лишь добавляющая свои баги.

Сейчас конечно прибегут подсоски мелкосовта и будут утверждать, что я всё вру.
Аноним 23/10/16 Вск 01:08:56 #193 №862169 
14771741367760.png
>>862154
Спасибо.
На работе коллега заебал упоминаниями, как было бы неплохо, по его мнению, переписать андроид-приложение на C# c ксамарином. Он сам C#-кодер, я джавист, писал это приложение года полтора, а он несколько несколько месяцев назад пришел, щегол. И, кажется, начальнику он тоже ездил по ушам.
Может подскажешь разумные аргументы, чтобы отбить у него эту идею? У меня уже горит от него.
Аноним 23/10/16 Вск 01:19:46 #194 №862182 
>>862141
Dagger 2, retrofit, rxjava все стандартно проекты сложные и разные
Аноним 23/10/16 Вск 01:25:15 #195 №862186 
>>862169
Ты боишься что от тебя избавяться? Лучше не парься.
Аноним 23/10/16 Вск 01:26:04 #196 №862188 
>>862169
Пусть покажет хоть одно приложение в google play, имеющее больше 10000 загрузок и рейтинг выше 4,0, которое написано на ксамарине. Нет таких
Аноним 23/10/16 Вск 01:28:04 #197 №862189 
>>862188
То, что надо.
Аноним 23/10/16 Вск 01:31:58 #198 №862190 
>>862186
Нет, просто горит от того, что он хочет затянуть в анальное рабство всю команду. Таки я сам увольняюсь скоро
Аноним 23/10/16 Вск 02:16:24 #199 №862199 
>>862169
1) Ты чего-то не договариваешь.
Никто не будет тратить ресурсы на переписывание с одного языка на другой.
Небось ты там макарон наварил, что проще заново переписать чем поддерживать
2) Предложи ему переписать на Kotlin, это тот же C# только для JVM.
Можно будет постепенно изменять уже существующий проект, дописывая новый функциона на Kotlin, а старый оставляя на Java.
Говорю как человек много пишущий на Xamarin/C# и Kotlin/Java.
Аноним 23/10/16 Вск 02:19:06 #200 №862200 
>>862199
> Предложи ему переписать на Kotlin

>>862135
Аноним 23/10/16 Вск 02:28:52 #201 №862205 
>>862199
Нет, в коде все норм. Более того, он этот код никогда и не видел, и пока что приложение поддерживаю я один. Честно, не знаю, зачем он это предлагает. Он даже как-то спрашивал что-то в стиле "ой, а почему ты сервер на джаве написал, а не на шарпе, ведь есть же asp.net" (я параллельно бэкенд веду)
Аноним 23/10/16 Вск 02:36:01 #202 №862207 
>>862205
Каждый кулик своё болото хвалит
Аноним 23/10/16 Вск 02:42:45 #203 №862209 
>>862205
А если он тебе коллега, а не начальник - не похуй ли? Поясни ему, что СДК тут родное, и ксамарин ебучий будет тормозить?
Аноним 23/10/16 Вск 07:56:09 #204 №862238 
>>862205
>почему ты сервер на джаве написал, а не на шарпе
кстати, вот да
Аноним 23/10/16 Вск 10:23:40 #205 №862257 
Я тут, значит, немного делаю фронтенд для ADB, и хочу включить в дистрибутив также бэкенд (сам ADB) и Google USB Driver. Имею ли я право это сделать? По какой лицензии они распространяются?
оригинал в mobi
кросспост в pr
Аноним 23/10/16 Вск 11:41:21 #206 №862274 
>>862238
Потому что он не анальный раб мелкософта?
Аноним 23/10/16 Вск 11:44:38 #207 №862278 
>>862238
Потому что с ней я имею выбор опенсурс библиотек, фреймворков и серверных контейнеров, а не пародию на опенсурс как в случае шарпа. И я не хочу быть в анальном рабстве М$, я могу поставить тестовый сервак на машину слюбой ОС.
Аноним 23/10/16 Вск 11:50:35 #208 №862282 
>>862278
Два чая. Шарпобляди не нужны.
Аноним 23/10/16 Вск 12:40:17 #209 №862313 
>>862257
Бамп вопросу!
Аноним 23/10/16 Вск 14:11:34 #210 №862368 
Сап, программач, нужно к мессенджеру прикрутить кнопку записи звука типа как в телеграмме или вотсаппе. Нашел решение на гитхабе, но оно не завелось, соответственно реквестирую способы сделать это самому.
Кнопка работает так: юзер ее зажимает -> начинает записываться звуковое сообщение; если он ее отпустил в границах кнопки - оно отправляется, если же он убрал палец с кнопки - запись останавливается и никуда не отправляется, но у меня не получается различить эти два экшона.
Пытался онтачлистнером смотреть какие есть экшоны у кнопки: при нажатии - даун, при движении по ней - мув, при отжимании - ап. Как мне в конце при отжимании(ап) проверить, находится ли палец юзера в границах кнопки?
Аноним 23/10/16 Вск 14:37:42 #211 №862386 
14772226622620.jpg
Уважаемы аноны, помогите с вопросом. Мы хотим организовать массовое производство приложений на основе веб контента (я не спец не ругайте за незнание терминов). Это когда есть сайт, и текст с него показывается в приложении. Сунулись в Конструктор приложений Bitrix - там всё просто, но лицуха стоит 40 000 за два приложения. Цена низкая, но хотелось бы купить лицензию с неограниченным количеством приложений тысяч за 100 может быть.

Подскажите, есть ли такой сервис или софт типа Битрикса, который позволит клепать простые приложения с выводом текста с наших сайтов?

Спасибо
sageАноним 23/10/16 Вск 15:17:23 #212 №862400 
>>862386
> приложений на основе веб контента
> Это когда есть сайт, и текст с него показывается в приложении
Браузер, который открывает только один конкретный сайт?
Аноним 23/10/16 Вск 15:51:10 #213 №862420 
Господа, решил снова попробовать себя в андроид-разработке. Обнаружил, что женимоушн теперь платный. Чем теперь пользоваться, стандартным эмулятором?
Аноним 23/10/16 Вск 16:26:42 #214 №862430 
>>862420
Да, стандартным. А также реальными устройствами.
Аноним 23/10/16 Вск 16:31:06 #215 №862431 
Так, посоны, не буду вокруг да около. В Android NDK есть стандартная библиотека, какие предлагаете использовать для работы с сетью и прочим? Обработку тачей через враммер явы делать или как?
Аноним 23/10/16 Вск 17:28:00 #216 №862466 
>>862400
Да.
Аноним 23/10/16 Вск 17:43:16 #217 №862475 
>>862431
Нихера там нет. NDK не для этого. Но ты конечно можешь или вызовы яве возвращать, или сам пердолится с кучей библиотек. Благо они существуют.
Аноним 23/10/16 Вск 18:37:04 #218 №862507 
>>862475
Мне для опенгл, я бы и с Qt въехал, но он монструозный пиздец. А доступ к ассетам через яву идет или через наливные вызовы?
Аноним 23/10/16 Вск 19:15:34 #219 №862516 
>>862386
> тупо пихают сайт в вебвью за 5 минут
> берут денег от полуляма как за нативное
Я угадал?
Аноним 23/10/16 Вск 19:17:17 #220 №862517 
>>862466
Пизда.

Иди в js-тред с такими "приложениями".
Аноним 23/10/16 Вск 19:17:51 #221 №862518 
>>862507
Действия приводящие к запросам прокидывай Джаве, пусть ебется с ними, а потом закидывает тебе результаты.
Аноним 23/10/16 Вск 20:17:16 #222 №862537 
>>862516
Ни с кого не берем, у нас с десять сайтов, надо вывести их в приложениях, чтобы занять имена. Есть какой-то шаблон или конструктор для этого? Не ругайтесь анончики
Аноним 23/10/16 Вск 21:11:50 #223 №862563 
>>862537
Гугли phonegap, cordova.
Аноним 23/10/16 Вск 21:11:51 #224 №862564 
14772463115350.jpg
>>862537
Точно знаю что есть такие сервисы (проводили в свое время исследование).
Хотя решили все таки сделать такую парашу сами, через webview.

В общем здесь тебе не помогут.
Аноним 23/10/16 Вск 21:13:50 #225 №862567 
>>862169
>писал это приложение года полтора
Ты писал одно ведроид-приложение полтора года? Это какой-то очень крупный мессенджер уровня телеграма? Или ты сам пилил весь дизайн, тз и прочее?
Аноним 23/10/16 Вск 21:57:03 #226 №862597 
>>862567
У нас что-то похожее на стартап, четкого видения не было, все наращивалось постепенно и функционал часто переделывался. Да, приложение не простое, функционала много, и да, дизайн если это можно назвать дизайном, лол, я в этом слаб тоже я пилил.
Аноним 23/10/16 Вск 22:27:10 #227 №862626 
Как блять устроится джуном/трейни, если в каждой вакансии в списке "required skills" - год опыта. Пиздец. Пилите прохладные как вкатывались.
Аноним 23/10/16 Вск 22:29:32 #228 №862628 
>>862626
год опыта == паре приложений (естественно не калькуляторы)
Аноним 23/10/16 Вск 22:30:39 #229 №862631 
>>862628
А что можно написать из полезного?
Аноним 23/10/16 Вск 22:31:51 #230 №862633 
>>862626
Просто в один момент понял, что надо что-то менять. Перестал заходить на борды и вместо этого стал проводить ночи за кодингом (жил в студенческой общаге, спал во время пар). Потом сконнектился с одним стартапером в вакууме, начал пилить стартап с ним, я кодил, он дизайнил, потом пошел на собеседование, показал наш проект, наговорил много терминов - взяли на испытательный, хотя тоже требовали опыт. В общем, реальный прект за плечами решает.
Аноним 23/10/16 Вск 22:36:03 #231 №862638 
>>862633
Расскажи о проекте.
Аноним 23/10/16 Вск 22:38:59 #232 №862639 
>>862631
Пиздуешь на 4PDA в раздел "ищу работу", публикуешь туда анкету с почтой.
Получаешь по паре писем за день от всяких хуев.
20% будут пользователи смартфонов которые хотят чтобы ты сделал за 500 р уникальную вещь для его смартфона (сразу нахуй, 99% пилить с нуля)
30% будут дельные заказы от мелких фирм и частников
50% будет левак вида "запилите соцсеть за 30 тр"

Делаешь - вот тебе и портфолио.
Аноним 23/10/16 Вск 22:39:11 #233 №862640 
>>862638
Сайт для пир-ту-пир конференций на webrtc. Тогда это была еще молодая технология, инфы на русском почти не было. Разумеется, проект не взлетел, но у меня был рабочий проект, который можно было показать на ноуте вживую.
Аноним 24/10/16 Пнд 00:04:43 #234 №862696 
>>862640
сколько уже пишешь под ведро? зп? лвл? дс?
Аноним 24/10/16 Пнд 03:30:38 #235 №862754 
>>862518
Спасибо
Аноним 24/10/16 Пнд 04:28:45 #236 №862761 
>>862628
Вот даже интересно, какие тогда приложения, что их "пара"?
Сложная логика в ведроиде требуется только в отдельных случаях, в основном массе приложения - либо классический фронтенд "отправь -> прими -> покажи няшку", либо 2D-говноигры, читалки сообщений, книг и прочей хуйни.
Вот недавно поц вкидывал в слак
https://github.com/AlexParfenjuk/MaterialMovies
ему сказали, что уже не джун.
Аноним 24/10/16 Пнд 08:18:28 #237 №862783 
>>862696
Года 2-3, 60к, 23 лвл, мухосрань 200к, через пару недель съебываю в галеру на фронтенд
Аноним 24/10/16 Пнд 12:59:11 #238 №862842 
Есть возможность вкатится в игры к мамкиному стартаперу, оно того стоит? Если у кого есть опыт, поделитесь, плес. Сам на телефоне ничего не играю, т.к. понравились только несколько игор.
Аноним 24/10/16 Пнд 13:33:26 #239 №862849 
>>862842
https://2ch.hk/gd/ - как делать игры
https://2ch.hk/biz/ - обсуждать продвижение
Прошу не возвращаться сюда без технических вопросов.
Аноним 24/10/16 Пнд 13:33:28 #240 №862850 
Прошу не очень ссать на тряпки которыми будете в меня кидаться.
Захотел расчехлить армв7 платку (из под читалки), накатив на нее линупс. Но столкнулся с тем, что все обещают одну сплошную ЭМУЛЯЦИЮ.
При обновлении прошивки оно смотрит на сд-карточку и грузит обновления с нее. По идее очень похоже на то, как биос пеки может загрузиться с другого носителя. Так что же мешает так же загрузить и установить какие-либо прыщи?
Аноним 24/10/16 Пнд 13:35:09 #241 №862853 
>>862850
> Программы и операционные системы обсуждаются в /s/
Аноним 24/10/16 Пнд 13:39:07 #242 №862856 
>>862853
мне скорее интересен вопрос бута андроида чем программы
Аноним 24/10/16 Пнд 16:04:35 #243 №862907 
>>862761
Что за конфа?
Аноним 24/10/16 Пнд 17:01:15 #244 №862938 
>>862907
Для даунов.
Аноним 24/10/16 Пнд 18:45:31 #245 №862981 
Я тут, значит, немного делаю фронтенд для ADB, и хочу включить в дистрибутив также бэкенд (сам ADB) и Google USB Driver. Имею ли я право это сделать? По какой лицензии они распространяются?
sageАноним 24/10/16 Пнд 20:37:23 #246 №863044 
>>862981
Иди нахуй уже, а?
Аноним 24/10/16 Пнд 20:38:46 #247 №863045 
>>862981
В чем твоя проблема? Ты за 2 дня даже гуглить не пытался? ADB апачевская лицензия, драйвер хуй знает, ищи сам.
Аноним 24/10/16 Пнд 20:43:32 #248 №863047 
>>862063
спасибо анон. учёл . но всё же после целого вечера танцев у меня всё совсем скрашилось .в итоге я отказываюсь от этого говна и в резюме напишу ,что просто делал ,не давая ссылку на гитхаб
Аноним 24/10/16 Пнд 21:04:58 #249 №863058 
Сосоны, почему может тормозить активность при первом запуске? https://github.com/pacodelavega/Tutu_test/blob/master/app/src/main/java/com/example/aristarkhov_vm/tutu_test/activity/ChooseStationActivity.java

2 глобальные переменных, одна из которых подгружается:
TutuApplication.getAppInstance().getStationToFullList();
TutuApplication.getAppInstance().getStationFromFullList();
размером по 2 мегабайта данных.
Аноним 24/10/16 Пнд 21:17:22 #250 №863073 
14773330429180.jpg
Не знаю как спроектировать навигацию, например чтобы купить продукт или редактировать профиль нужен токен апи, если токен есть вызываем апи, получаем ответ, показываем что все прошло успешно, а если нет, то вызываем экран с логином, а после него сразу же диалог вроде "ты теперь залогинен" точно хочешь выполнить это действие да/нет. Как бы вы писали подобную навигацию? Это же пиздец, неужели все хуячить через onActivityResult? А если мне после логина нужно сразу же на другой экран перейти?
Аноним 24/10/16 Пнд 21:22:22 #251 №863083 
>>863058
>почему может тормозить активность при первом запуске
>размером по 2 мегабайта данных.
Ну епта.

Аноним 24/10/16 Пнд 22:05:50 #252 №863107 
>>863083
Сомневаюсь, что это причина проблемы. Тем более, раз у него последующие запуски не приводят к долгой загрузке.
Аноним 24/10/16 Пнд 22:12:19 #253 №863108 
>>863058
Хренли ты ленивый такой.
Шипилёв бы тебя тапком забил за гадание "где тормозит".

Быстро взял и измерил все профайлером:
1) В начале измерений вызываешь
https://d.android.com/reference/android/os/Debug.html#startMethodTracing(java.lang.String)
2) В конце
https://d.android.com/reference/android/os/Debug.html#stopMethodTracing()
Аноним 24/10/16 Пнд 22:12:50 #254 №863110 
>>863073
RxJava облегчит твои страдания. Суёшь в обсёрвабл всякие ситуации типа проверки токена, наличия интернета, сам реквест и т.д., на это всё пили экзепшены. Потом всё это обрабатывай в презентере.
Отдельное окошко для логина - только через onActivityResult
Аноним 24/10/16 Пнд 22:23:32 #255 №863117 
>>863110
У меня и так все на RxJava, не вижу как мне она поможет с навигацией. У меня все приложение на фрагментах в одном активити. onActivityResult не вариант
Аноним 24/10/16 Пнд 22:36:01 #256 №863122 
>>863107
Статическая переменная грузится один раз.
Аноним 24/10/16 Пнд 22:37:30 #257 №863124 
>>863110
>Отдельное окошко для логина - только через onActivityResult
И пермишены. И вк. И фейсбук. И гугл. И результаты интентов.

Аноним 24/10/16 Пнд 23:51:20 #258 №863163 
>>863124
И небо. И Аллах.
Аноним 25/10/16 Втр 00:24:40 #259 №863179 
>>863124
Бля, а какие еще варианты ты хочешь услышать, если тебе нужно получать резалт из отдельных активитей? Можешь эвентбасовый велосипед попробовать запилить. Ну или в синглтончик инфу ложить
Аноним 25/10/16 Втр 00:28:34 #260 №863182 
>>863179
У меня все в одном активити вообще-то. >>863117
Аноним 25/10/16 Втр 01:15:27 #261 №863201 
очень загорелся желанием писать игори под андроид.
Решил для этого использовать джаву, с чего посоветуете начать изучение? Есть какие-то интересные материалы?
До этого учил С++ и похапе.
Да и можете пояснить за игори на ведро? (нужно ли там юнити, как именно будет организовываться графическая часть?)
sageАноним 25/10/16 Втр 01:26:25 #262 №863205 
>>863201
Если ты даже шапку прочитать не способен, то лучше съеби в js-тред.
Аноним 25/10/16 Втр 01:38:36 #263 №863208 
>>863205
> Хочу писать игры!
LibGDX или Unity. Спрашивать в /gd/
Да, понимаю, лаконичность, все дела, но это немного мало, думал, сол тут есть товарищи с опытом написания игорей под ведро, и немного растолкуют
Аноним 25/10/16 Втр 01:46:54 #264 №863210 
>>863208
https://2ch.hk/gd/res/250576.html
Если будешь там задавать адекватные вопросы, то может что и отвечу.
Аноним 25/10/16 Втр 02:47:07 #265 №863228 
>>862420
Бесплатный.
Аноним 25/10/16 Втр 02:53:47 #266 №863233 
>>863058
>хардкод стрингов
За такое пальцы отрубать надо.
Аноним 25/10/16 Втр 06:14:36 #267 №863249 
>>863233
За хардкод логов ненадо. А вот за хардкод той хуйни, которая выводится во view...
Аноним 25/10/16 Втр 07:07:09 #268 №863254 
Чет я запутался.
Допустим, класс А имеет внутри себя приватный класс Б.
Метод класса А создает и возвращает экземпляр класса Б.

А теперь вопрос.
Какой тип указывать переменной jopa, которой присваивается результат этого метода? Если вызов происходит в третьем классе, а класс А - импортирован. Нужно отдельно импортировать класс Б? Он же приватный. Или просто лепить Object?
Аноним 25/10/16 Втр 07:18:25 #269 №863256 
>>863254
Вообще, имеет ли смысл в таком случае вкладывать один класс в другой? Ведь он будет иметь доступ к объемлющей области видимости.
Или же лучше пилить его в отдельном файлике?

Класс B имеет только несколько полей, никаких методов, никакого наследования.
Аноним 25/10/16 Втр 07:30:00 #270 №863257 
>>863228
Самая дешевая - инди лицензия. Стоит 136$ в год
Аноним 25/10/16 Втр 08:57:42 #271 №863267 
>>863254
Пройди уроки на javarush
Аноним 25/10/16 Втр 09:06:15 #272 №863268 
>>863254
Читай шапку >>861772 (OP) и свои "умные" вопросы задавай там же
Аноним 25/10/16 Втр 10:01:16 #273 №863282 
>>863254
Говна себе на литсо вылепи.
Аноним 25/10/16 Втр 16:22:55 #274 №863416 
Сап, есть ListView с чекбоксами в каждом элементе, хочу сделать так, чтобы состояние чекбокса обновлялось в базе данных при каждом нажатии на него. Каждая строка таблицы в базе предсавляет собой элемент ListView, соответственно если был кликнут чекбокс у элемента ListView с некоторым id, нужно обновить состояние этого чекбокса в базе для строки с таким же id.

Была мысль создавать на каждый такой клик AsyncTask, но идея не очень хорошая, т.к. клики могут совершаться очень быстро -> много работы для сборщика мусора.

Думаю запускать поток, а затем передавать в него что нужно записать в бд. Какие здесь подводные камни? Есть ли какой-нибудь стандартный класс для этого?
Аноним 25/10/16 Втр 19:05:47 #275 №863499 
>>863416
>ListView
Выкинь нахуй, юзай ресайклервью.

На каждый вьюхолдер должен быть презентер, который подрубается при аттаче/детаче вьюхолдера.
Презентер лезет в базу асинхронно.
Чтобы не засрать систему кучей потоков - юзай пулл потоков ограниченного размера
Аноним 25/10/16 Втр 20:46:17 #276 №863526 
>>863416
Вполне себе клево получится если сделать таску и закинуть её в пул.
http://howtodoinjava.com/core-java/multi-threading/java-fixed-size-thread-pool-executor-example/

Писать в базу на андроиде параллельно в паре потоков имеет смысл вообще иил нет?
Аноним 25/10/16 Втр 21:09:03 #277 №863544 
>>863526
В БД можно только из главного потока на ведре писать.
Аноним 25/10/16 Втр 21:41:21 #278 №863562 
>>863544
Oh you.
>>863526
Нет не очень, у SQLite может быть только один writer одновременно, но множество reader'ов.
Аноним 25/10/16 Втр 21:42:27 #279 №863565 
Кто-то пишет в IDEA, какие недостатки по сравнению с AS? Просто не только под ведро пишу, и не вижу смысла держать две IDE.
Аноним 25/10/16 Втр 21:54:03 #280 №863572 
>>863565
> какие недостатки по сравнению с AS
Вроде Android Plugin обновляется позже.
Аноним 25/10/16 Втр 21:55:40 #281 №863574 
>>863562
> Нет не очень, у SQLite может быть только один writer одновременно, но множество reader'ов.
Thread + BlockingQueue. Можно даже в синхронной коллекции данные хранить чтобы разом обновлять.
Аноним 25/10/16 Втр 21:55:45 #282 №863575 
>>863572
А его разве нельзя обновить через android manager ручками? Или я что-то путаю.
Аноним 25/10/16 Втр 21:57:06 #283 №863578 
>>863574
>Thread + BlockingQueue
Шо? Ты имеешь в виду Executors.singleThreadExecutor с правильными настройками?
Аноним 25/10/16 Втр 22:40:11 #284 №863598 
>>863578
Так тоже можно, просто ThreadPoolExecutor из одного потока немного оверкилл как по мне.
Впрочем, обладая синхронной коллекцией, можно и без очереди обойтись, используя wait/notify.
Аноним 25/10/16 Втр 22:57:27 #285 №863601 
>>863598
>используя wait/notify
Вот это именно оверкилл.
Аноним 25/10/16 Втр 23:07:36 #286 №863604 
>>863601
Вообще-то нет. Сам подумай, тебе надо постоянно значения в бд писать. Для снижения нагрузки логичнее накапливать данные и сразу группой записывать, причём накопление производится во время активной работы с бд. Так то wait/notify сильно помогает.
Аноним 25/10/16 Втр 23:09:54 #287 №863609 
>>863604
У тебя есть какие-нибудь кусочки кода демонстрирующий подобную роботу с бд?
Аноним 25/10/16 Втр 23:22:15 #288 №863614 
>>863609
Записываешь состояние чекбокса в Map, вызываешь у него notifyAll.
В потоке в цикле: while size == 0 — wait, если нет — копируешь Map, вне сихронизации пишешь запись этой копии.
Аноним 25/10/16 Втр 23:23:14 #289 №863616 
>>863609
>роботу с бд
Соболезную.
Аноним 25/10/16 Втр 23:29:42 #290 №863625 
>>863614
Я не тот чувак с чекбоксами. Я про более глобальные вещи.
Аноним 25/10/16 Втр 23:34:32 #291 №863634 
>>863625
>более глобальные вещи.
Тогда иди нахуй.
Аноним 25/10/16 Втр 23:53:13 #292 №863652 
>>863634
Ничоси ты слился.
Аноним 25/10/16 Втр 23:55:12 #293 №863658 
>>863652
Уже вернулся?
Быстро ты.
Аноним 26/10/16 Срд 00:07:13 #294 №863669 
>>863658
Ну че ты так рвешься. Я увидел что ты предлагаешь дрючиться с wait/notify и мне стало интересно как ты это видишь. Зачем такая дрочка ради каких-то чекбоксов, мне искренне не понятно.
Аноним 26/10/16 Срд 00:29:03 #295 №863688 
>>863669
>мне искренне не понятно.
Подрастешь - поймешь.
Аноним 26/10/16 Срд 00:33:14 #296 №863692 
>>863688
Лан :))
Аноним 26/10/16 Срд 08:13:01 #297 №863777 
>>863625
Поменяй чекбокс на любые данные, что тебе нужно — будет глобальный ответ.
Аноним 26/10/16 Срд 09:48:09 #298 №863813 
Аноны, есть у меня иерархия интерфейсов, и в одном месте используется экземпляр интерфейса - предка, в другом - интерфейса - потомка. Необходимо инициализировать оба экземпляра одним объектом класса, реализующего интерфейс потомка (кэп).
Вопрос: как эту хуйню внедрить через даггер 2?
Аноним 26/10/16 Срд 12:33:45 #299 №863871 
Есть sqlite база.
В ней есть пустая неиспользуемая таблица, которую я удалил к хуям.
Что-то нужно делать в onUpgrade, обязательно менять номер версии?
Аноним 26/10/16 Срд 12:46:51 #300 №863873 
>>863045
Пытался. Нихуя на нагуглил.
Аноним 26/10/16 Срд 12:49:55 #301 №863875 
>>863871
Номер версии поменяй, а в onUpgrade удали таблицу из базы.
Аноним 26/10/16 Срд 16:34:15 #302 №863977 
>>863875
Если не удалять, к чему это может привести?
Аноним 26/10/16 Срд 17:57:54 #303 №864056 
Как динамически проверять, появилось ли у пользователя интернет соединение?
Аноним 26/10/16 Срд 18:13:44 #304 №864061 
>>863977
Не шарю.
>>864056
Ресивер зарегать в манифесте/активити.
https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html
Аноним 26/10/16 Срд 19:06:07 #305 №864094 
14774979673890.jpg
Использовать @ActivityScope, чтобы сохранять состояние презентера -- это ок или не ок?
Аноним 26/10/16 Срд 19:21:33 #306 №864096 
Ребята, по хардкору поясните (чуть выше не ответили именно про этот момент): вот у меня есть веб-приложение, там сервис, в котором есть тесты, всякие перделки со статистикой, есть перда для видеотрансляций - человек ведёт занятие, а все подключившиеся смотрят.
Вот эта перда имеется на yii2, мне что нужно сделать, чтобы создать мобильное приложение?
Ещё одно ТЗ писать для мобильного разработчика или вообще просто подарить ему весь проект, дав доступ? Ну боязно же как-то!
К тому же, там ему лишь часть имеющегося функционала будет нужна, многое (допустим, статистика для админов и лекторов) совсем не нужна в приложении.
Мучает этот вопрос, короче.
Аноним 26/10/16 Срд 19:31:48 #307 №864099 
>>864096
REST API у хуйни твоей есть?
Аноним 26/10/16 Срд 19:32:21 #308 №864100 
Можно ли как-нибудь открыть клавиатуру сразу на разделе со смайликами?
Аноним 26/10/16 Срд 19:45:04 #309 №864111 
>>864100
Сделай свою, так вроде vk и hangout делают.
Аноним 26/10/16 Срд 19:47:00 #310 №864114 
>>864111
Почему-то я ожидал такого ответа.
ITS PERDOLING TIME
Аноним 26/10/16 Срд 19:48:32 #311 №864116 
>>864099
Я такой тормоз, что даже и не знаю.
Я не сам делаю, а со знакомым программистом.
Я больше руковожу и слежу за UI, а он реализует всё.
А в случае с REST API как это делается? Просто структура передаётся, а мобильный разработчик делает по ней?
Аноним 26/10/16 Срд 19:50:41 #312 №864119 
>>864116
Если есть нормальное АПИ, тебе нужно только задокументировать его.
Вообще, поговори с самим разработчиком, не? Он тебе и расскажет, что ему нужно и в каком виде. Странно это на дваче спрашивать.
Аноним 26/10/16 Срд 19:56:08 #313 №864122 
>>864119
Ну просто интересно это, в наш-то век смартфонов. Как всё бывает и как проходит, что нужно сделать, чтобы всю работу (не бесплатную) не спалить в один момент.
Спасибо за ответы!
Аноним 26/10/16 Срд 20:02:42 #314 №864126 
>>864061
> в манифесте
Нуга передает привет.
Аноним 26/10/16 Срд 20:09:05 #315 №864132 
>>864126
ну а нахуя тебе смотреть за ним пока ты в бекграунде, для этого есть https://developers.google.com/cloud-messaging/network-manager
Аноним 27/10/16 Чтв 01:21:59 #316 №864298 
Аноны, хочу съебывать со своей работы и меня возник вопрос. Сейчас я работаю в таком месте, где только я один занимаюсь андроидом (до этого не работал нигде), и там я юзаю все что захочу, например, rx и т.п. Но сейчас я себя поймал на мысли, что я хуево знаю android sdk, например, точно не помню константы в сервисах (START_STICKY и т.д.), никогда не работал с аккаунт менеджером и т.д. Так вот, нужно это все для собеседования, или нет? И что у вас было на собеседованиях?
Аноним 27/10/16 Чтв 01:36:32 #317 №864300 
Посоветуйте, пожалуйста, библиотеку для постройки графиков.
Аноним 27/10/16 Чтв 07:05:20 #318 №864343 
>>864300
Напиши что ты от неё хочешь и я подскажу тебе либу.
Аноним 27/10/16 Чтв 10:35:40 #319 №864411 
>>864343
Красивое представление даных. Я пробовал graphView, но она хорошо подходит для матиматических/физических задач, а мне нужен график рейтинга для обычных пользователей
Аноним 27/10/16 Чтв 12:09:36 #320 №864459 
14775593767630.png
Смотрите какую магию показывают (live)

https://youtu.be/-03R4Fj79_E

Кросплатформенные Android/iOS приложения в Material Design на Dart

Можно поробовать прям в IDEA/AndroidStudio/Atom скачав плагин Flutter и поставив sdk.
Аноним 27/10/16 Чтв 12:18:24 #321 №864465 
Ведроны, как настроить elevation AppBarLayout'а.
Ставлю ему app:elevation - и ему похуй. Саппорт либа 24.2.1, compile 24, target 24. Если не ставить то есть какой-то дефолтный, который работает.
Аноним 27/10/16 Чтв 15:40:12 #322 №864623 
>>864411
Используй эту:
https://github.com/PhilJay/MPAndroidChart

Там есть демо приложение в маркете.
Отрисовка очень оптимально сделана.
Аноним 27/10/16 Чтв 18:11:36 #323 №864699 
>>864459
Ой, не может быть! Hello World компилируется и работает! Ну что, теперь-то Java точно всё? У нас новый убийца жабы!
Аноним 27/10/16 Чтв 18:49:28 #324 №864760 
>>864459
Вот это да! Ещё одна революционная технология для кроссплатфорсенного написания рест параши! Ух заживём!
Аноним 27/10/16 Чтв 18:57:39 #325 №864770 
>>864699
Няшь не накаляйся, перемотай к 07:06 и посмотри keynote до конца.
Какая же там красота там на iOS, особенное их React фрейморк для UI.

>>864760
Прошу заметить от разработчиков из Google
Аноним 27/10/16 Чтв 18:58:58 #326 №864772 
>>864459
Вспоминаю наши проекты с bluetoooth и signal processing.
Таки да, это только для рестопараши годится.
Аноним 27/10/16 Чтв 21:23:12 #327 №864881 
>>864411
>>864623
И еще лови, но эту я не юзал:
https://github.com/diogobernardino/WilliamChart
Демка тоже есть.
Аноним 27/10/16 Чтв 22:25:16 #328 №864906 
>>864459
Там можно вызвать нативный для платформы код без танцев?
Аноним 27/10/16 Чтв 23:02:00 #329 №864926 
Аноны, где прочитать подробнее про ViewGroup, View, когда какие методы вызываются и всё это? На developer.android.com вроде нету
Аноним 29/10/16 Суб 01:44:39 #330 №865523 
>>864465
android:elevation
На апи <21 теней нет, даже через сап
Аноним 29/10/16 Суб 01:45:35 #331 №865524 
>>864926
ctrl+b на любом классе и читаешь сорц.
Аноним 29/10/16 Суб 13:57:06 #332 №865691 
>>865523
Это в курсе, кхм, раньше же писали app:elevation.
Аноним 29/10/16 Суб 15:12:53 #333 №865727 
>>865691
Никогда такого не было
Аноним 29/10/16 Суб 16:05:24 #334 №865761 
>>865727
И вот опять!
Аноним 29/10/16 Суб 17:21:50 #335 №865820 
Haskell неудачный вариант для новичка. Язык сложный, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник учит Haskell, а потом не знает что делать с ним. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. Если никогда не занимался программированием, то начинать лучше всего с Haskell - после него другие языки учатся быстрее. Работы полно, платят отлично. По книгам. Если есть хоть немного знаний программирования, читай это:http://www.ozon.ru/context/detail/id/30425643/Если совсем новичок, пойдет эта книга:http://www.ozon.ru/context/detail/id/28346038/Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
sageАноним 29/10/16 Суб 17:37:45 #336 №865833 
>>865820
Чем объебался?
Аноним 29/10/16 Суб 20:27:37 #337 №865937 
>>865833
Хаскелем.
Аноним 30/10/16 Вск 14:41:15 #338 №866276 
Какой метод в активити нужно переопределить, чтобы задать действия, которые будут выполняться по возвращению в это активити из другой активити посредством кнопки "назад"? аппаратной, имеется ввиду
Аноним 30/10/16 Вск 16:14:05 #339 №866340 
>>866276
Стартуй активити с которого будешь возвращаться, через startActivityForResult. А потом словишь onActivityResult, если правильно оверрайднешь onBackPressed стартуемого.
Аноним 30/10/16 Вск 18:06:32 #340 №866435 
Есть вьюпейджер с фрагмент адаптером. На каждом фрагменте рекуклер вью. В каждом итеме картинка. Загружаю с сервера с помощью пикассо. Вопрос: как ограничить размер кэша? (.memoryCache(new LruCache(100000000))) не работает. Проблема в том, если достаточно долго листать вываливается OOM
Аноним 30/10/16 Вск 18:07:32 #341 №866437 
>>866435
алсо лик кенери утечек не наодит
Аноним 30/10/16 Вск 19:07:48 #342 №866479 
>>866435
FrescoLib
Аноним 30/10/16 Вск 19:46:03 #343 №866504 
>>866435
Неправильно работаешь с вьюпейджером, ищи проблему.
Аноним 30/10/16 Вск 19:52:20 #344 №866506 
>>866504
Тут просто всё за меня было сделано. Я только фичу добавляю. Можешь подсказать где примерно копать?
Аноним 30/10/16 Вск 20:33:31 #345 №866513 
>>866504
Спасибо, анон, разобрался. Там оказывается адаптер наследовался от FragmentPagerAdapter, а не FragmentStatePagerAdapter
Аноним 30/10/16 Вск 20:54:37 #346 №866524 
>>866435
В onViewRecycled адаптера ресайклил бы картинку епт.
Аноним 31/10/16 Пнд 00:16:47 #347 №866644 
анон, а можно ли дебажить ваирлесс? Нет не по вайфай, а что бы студия у меня крутилась на серваке дома, а я ходил с тонким ультрабуком и заходил бы на удаленный сервак.
Эмулятор как один из вариантов...
Алсо, какие параметры важны для быстрой сборки?
Аноним 31/10/16 Пнд 01:15:48 #348 №866686 
>>866644
Для сборки важна память. Гугли CI, на серваке будет происходить сборка после коммита и прогон тестов.
Аноним 31/10/16 Пнд 11:56:48 #349 №866911 
>>866644
Разрешается ли в приложении размещать ссылку на youtube канал?
Приложение для BLE брелка, на канале видео про его применение.
Аноним 31/10/16 Пнд 18:32:31 #350 №867250 
>>866644
i7 U, SSD от самсунг и 8 гб оперативки - собирай хоть на этом же ультрабуке.
Аноним 31/10/16 Пнд 19:34:26 #351 №867305 
>>867250
>8 гб оперативки
Мало уже, 16 надо.
Аноним 31/10/16 Пнд 19:39:39 #352 №867311 
>>867305
На грани уже тащемта, скоро 32 надо будет.
Аноним 31/10/16 Пнд 19:46:07 #353 №867315 
>>867305
>Мало уже, 16 надо.
Ну конечно это же Java... da dum tss выживаю на mac air 4gb
Аноним 31/10/16 Пнд 20:01:15 #354 №867327 
>>856749 (OP)
https://github.com/Sayales/recycler-view-adapter-creator

Запилил нахуй никому не нужную либу, но вдруг нужна кому.
Аноним 31/10/16 Пнд 20:37:23 #355 №867353 
>>867327
Расскажи хотя бы что с ней делать.
Обычно подробно пишут на главной странице репы.
Аноним 31/10/16 Пнд 21:16:00 #356 №867369 
>>867327
а что за реп topjava?
Аноним 01/11/16 Втр 00:12:19 #357 №867466 
>>867353
Добавил немного ридми.
Не знаю просто, как правильно рассказать что с ней делать.
Аноним 01/11/16 Втр 00:16:12 #358 №867469 
>>867466
Просто как мне кажется, легче всего посмотрев на демо проект понять что там происходит
Аноним 01/11/16 Втр 01:35:24 #359 №867508 
>>867327
Непонятно зачем ты эту хуйню написал.
Аноним 01/11/16 Втр 03:17:58 #360 №867558 
>>867508
Затем чтобы можно было по фасту создать рекуклер вью с хедерами/футерами и он свайп екшенами
Аноним 01/11/16 Втр 05:33:45 #361 №867581 
>>857661
Ну в 2016 то процы уже спокойно жрут даблы не хуже флотов. Можно уже не обращать внимания
Аноним 01/11/16 Втр 11:44:14 #362 №867659 
14779898547190.png
14779898547221.png
14779898547252.png
14779898547283.png
Суть траблы - дико жирных маппер dto в dao данных, обязательных к кэшированию, и не самая простая локальная бд для кэширования всего этого говна. Прикрепляю скрины, если поможете как-нибудь парашу эту разгрузить - буду признателен.
Аноним 01/11/16 Втр 11:50:30 #363 №867663 
>>867659
p.s. Суть траблы заключается в том, что dto построен по образу и подобию прилетающего json-а, тобеш как куча Map<String, Map<String...>...>>, а для базы требуется конвертирование всего этого в List ибо по Map не особо пробежаться forEache-ем или Observable::from-ом
Аноним 01/11/16 Втр 12:09:15 #364 №867674 
>>867659
onTerminateDetach ансабскрабит сам в onError и onCompleted.
Аноним 01/11/16 Втр 12:11:24 #365 №867677 
>>867305
Хватает 8. Еще и на хром с 20 вкладками остается.
Аноним 01/11/16 Втр 12:12:30 #366 №867680 
>>867677
На девайсе гоняешь?
Аноним 01/11/16 Втр 12:24:42 #367 №867682 
>>867674
окей, не знал, но это все равно не сильно влияет на ужасность алгоритма записи и маппинга. Идет 4 табоицы - Параметры с OneToMany переводы, так же с OneToMany к опциям, которые OneToMany к своим переводам; Json же - жирный ассоциативный массив, в котором все это представлено в виде словарей id:smth. Что мне вообше делать с этим ? Резонно ли кэшировать не структуру dao в бд, а json-строку ? В основной программе есть поиск по этому говну с выбором нужного перевода, то есть вообще SQL запросы будут удобнее копания в json-е или даже в массиве dto-шек
Аноним 01/11/16 Втр 14:11:44 #368 №867755 
>>867659
Нахуй ты вообще RX притащил, если делаешь все синхронно?
Аноним 01/11/16 Втр 14:28:22 #369 №867770 
>>867659
Gson (и др. парсеры) умеют сохранять такие ассоц. массивы в списки пар ключ-значение (List<Pair>)
Аноним 01/11/16 Втр 14:30:47 #370 №867773 
>>867755
На schedulers.computation же.
Аноним 01/11/16 Втр 14:44:55 #371 №867785 
>>867773
Это Transformer.appplyComputation что ли (покажи код)?
Аноним 01/11/16 Втр 15:38:22 #372 №867805 
>>867680
Да. На эмуляторах мои проекты бессмысленно тестировать.
Аноним 01/11/16 Втр 16:07:11 #373 №867827 
>>867805
Нет. Просто ты не умеешь в тестирование.
Аноним 01/11/16 Втр 16:50:35 #374 №867857 
>>867785
ну да
Аноним 01/11/16 Втр 18:51:51 #375 №867983 
>>867857
p.s. Загугли don't break the chain, rxJava. Подробно все написано про compose и про Transformer<T,T> ...
Аноним 01/11/16 Втр 19:36:57 #376 №868000 
>>867983
> don't break the chain, rxJava
Спасибо конечно, но я могу спокойно написать расширение на Kotlin
fun <T> Observable<T>.doAsync(onSuccess:(T)->Unit, onFail:(Exception)->Unit):Observable<T> {
return subscribeOn(Schedulers.compute())
.observeOn(AndroidSchedulers.mainThread())
}

Вообще я хотел сказать что ты мог сделать простое преобразование в Stream подобном API из Kotlin
+ взять CompletableFuture (из библиотеки с github) для асинхронности
Аноним 01/11/16 Втр 19:40:40 #377 №868003 
>>868000
>onSuccess:(T)->Unit, onFail:(Exception)->Uni
Нафиг конечно нафиг не нужно. Хотел др написать, но потом передумал.
Аноним 01/11/16 Втр 20:00:15 #378 №868012 
Как верстать под планшеты? Если оставлять размеры в dp как под мобилку, то элементы смотрятся очень маленькими, попробовал sdp с гитхаба, получилось слишком большим. Все приложение в лендскейпе. Какой вариант лучше - PercentLayout или, подход как в sdp, но со своими коэффициентами, или полностью отдельная верстка?
Аноним 01/11/16 Втр 21:38:38 #379 №868063 
>>868000
Чтобы экономить строчку но иметь лишний класс ? Спасибо, не голодный. Compose то я над обычным обсерваблом юзаю
Аноним 01/11/16 Втр 21:39:09 #380 №868065 
>>868012
-landscape модификатор
Аноним 01/11/16 Втр 21:40:07 #381 №868067 
14780256075190.jpg
Написал свой калькулятор. Как его проверить можно на правильность вычислений?
Аноним 01/11/16 Втр 21:41:22 #382 №868069 
>>868067
unit testing, ваш Кэп
Аноним 01/11/16 Втр 22:12:17 #383 №868087 
>>868065
И верстать все отдельно? Ну это какой оверхед. Тем более как я указал, у меня все приложение в лендскейпе, и размеры которые норм смотрятся на телефоне плохо смотрятся на планшетах, особенно на больших смотрятся пиздец убого, пока ставлю именованные дименжены местам которые хочу скейлить, и в папочке sw600dp множу их на два, смотрится более не менее.
sageАноним 01/11/16 Втр 22:35:21 #384 №868098 
>>868000
Опять котлинодауны протекли.
Аноним 01/11/16 Втр 22:37:08 #385 №868100 
>>868087
тогда сделай так: добавь в res bool isTablet = false, в sw600dp - true, потом программно выбирай layout
Аноним 01/11/16 Втр 23:15:23 #386 №868120 
>>868100
Никогда так не делай.

>>868087
Используй модификаторы sw. Измени значения в dimens.xml
Хотя, если ты использовал dp и sp, то всё должно быть ок.
Аноним 01/11/16 Втр 23:32:02 #387 №868123 
>>868120
Я использовал dp и sp, но ок не будет. Просто потому что, например у телефона 640x335 dp, а у планшета 1280x728 dp, тогда аватарка 64 на 64 будет совсем по другому смотреться на них.

Ну и да, я использую sw600dp. В итоге буду аккуратненько смотреть что где можно в два раза увеличить, а что нет, все множить совсем не вариант. Жаль что картинок не векторных прийдется заготавливать больше для красивости.
Аноним 01/11/16 Втр 23:42:48 #388 №868126 
>>868123
Ты точно понимаешь, что такое dp?
Аноним 02/11/16 Срд 00:04:41 #389 №868143 
>>868126
Абсолютно, эти значения я брал таким образом:
final Configuration configuration = getResources().getConfiguration();
configuration.screenWidthDp;
configuration.screenHeightDp;

Запусти на планшете и на телефончике.
На телефоне:
screen dp width: 640
screen dp height: 335
screen px width: 1920
screen px height: 1080
На nexus 10:
screen dp width: 1280
screen dp height: 728
screen px width: 2560
screen px height: 1504

Поэтому одинаковые dp, выглядят и чувствуются по разному на телефоне и на планшете.
Аноним 02/11/16 Срд 08:18:16 #390 №868241 
>>868012
Если задавать размеры в dp - то физические размеры везде будут одинаковыми.

sdp - отличная вещь, я использую его на экранах приветствия и в некоторых случаях при построении интерфейса. К примеру в приложении, которое отображает данные с датчиков.
Аноним 02/11/16 Срд 17:07:21 #391 №868538 
Что кидать в gitignore, чтобы проект на гитхабе не выглядел свалкой? но его можно было импортануть без ошибок
Аноним 02/11/16 Срд 17:43:48 #392 №868568 
>>868538
github (при создание репозитория) и Android Studio могут сами его создавать - чаще всего этого хватает.
Аноним 02/11/16 Срд 19:30:44 #393 №868642 
>>868568
> Android Studio
Не полностью игнорирует студийные файлы, которые нахуй не нужны в гите. Да, проект не подцепится сразу, а через import gradle project.
Аноним 02/11/16 Срд 21:20:29 #394 №868715 
>>868642
Не садись лезь в бутылку, при init commit добавь ручками каталоги начинающиеся с "."
Аноним 02/11/16 Срд 21:25:39 #395 №868717 
14781111397540.jpg
Чем плох Realm?
Аноним 02/11/16 Срд 21:30:43 #396 №868723 
>>868717
Платформозависимые бинарники
Аноним 02/11/16 Срд 21:52:16 #397 №868732 
У меня слабый комп, эмулятор загрузить не могу. Как оптимизировать все для максимально комфортной работы?
Аноним 02/11/16 Срд 21:52:44 #398 №868734 
>>868732
Купить нормальный комп.
Аноним 02/11/16 Срд 21:53:37 #399 №868735 
>>868734
План был: "найти работу - купить новый комп"
Аноним 02/11/16 Срд 21:59:28 #400 №868739 
>>868735
Кодить можно в Notepad++ или Sublime, собирать Gradle'ом в консоле, тестировать на реальном устройстве и эмулятором на CI сервере.
Аноним 02/11/16 Срд 22:26:13 #401 №868747 
Анон, посовету либу чтобы построить ступенчатый график и круговую диаграму.
Аноним 02/11/16 Срд 22:28:43 #402 №868748 
>>868747
MPAndroidChart
Аноним 03/11/16 Чтв 00:08:10 #403 №868812 
Вот кстати нет годной либы для построения графиков с прореживанием.
Возникали у вас задачи отображения сотен тысяч точек на графике?
Аноним 03/11/16 Чтв 01:21:35 #404 №868828 
>>868812
как вы заебали со своими лабами
Аноним 03/11/16 Чтв 09:00:30 #405 №868934 
>>868828
Ты хотел сказать либами?
Аноним 03/11/16 Чтв 13:08:10 #406 №869027 
14781676909890.jpg
Пригласили на мое первое собеседование Android Junior, в душе не ебу чего ждать и что говорить, работу искал пол года и вот первый раз ответили. Кто проходил подскажите что будет и как не обосраться.
Аноним 03/11/16 Чтв 14:15:01 #407 №869050 
>>869027
Когда кинут асинк такс под ноги - не поднимай.
Что ты знаешь про андроид?
Аноним 03/11/16 Чтв 16:24:04 #408 №869126 
>>869050

Закончил курс Udacity, немного поэкспериментировал после. Сейчас перечитываю учебник. Мало знаю, но простенькое приложение собрать могу... Наверное.
Аноним 03/11/16 Чтв 16:29:50 #409 №869132 
>>869126

Ну, до этого написал еще простенькое CRUD приложение на Java Spring MVC, но так и не закончил его на 100% (запорол логику БД). В общем я около двух лет в свободное время учился, сначала Java, потом Android. Но последние пол года я разленился и начал многое забывать. Я месяца четыре не открывал IDE.
Аноним 03/11/16 Чтв 16:38:55 #410 №869141 
>>869126
Посмотри шапку треда.
>Нужно хорошее знание Java, понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library, shared preferences, SQLite), знание популярных библиотек типа Retrofit + Glide/Picasso. И хотя бы оно готовое приложение.
Аноним 03/11/16 Чтв 18:52:50 #411 №869209 
>>868538
Почему так слабо распространена практика белого списка? Лучше по дефолту всё игнорить же, кроме того, что тебе нужно.
Аноним 03/11/16 Чтв 18:58:09 #412 №869211 
>>869209
Ну вообще-то, Git именно так и работает. Пока ты сам вручную нужные файлы не добавишь через add, он с ними ничего делать не будет.
Аноним 03/11/16 Чтв 22:32:26 #413 №869392 
>>869211
Можно случайно чего лишнего добавить. А с белым списком хоть git add . используй.
Аноним 05/11/16 Суб 12:17:13 #414 №870180 
Аноны, пользуюсь СДК одного сервиса. Внутри не обнаружил необходимого мне метода запроса в сеть. Для его исполнения нужно либо
1) наследоваться от классов этой SDK
2) копировать их в свой проект, изменив функционал
3) вообще забить SDK, и пилить свой ретрофитный велосипед
Как лучше поступить, чтобы на собеседовании не обоссали?
Аноним 05/11/16 Суб 12:26:19 #415 №870183 
>>870180
Уже не вк ли это? Я предлагаю тебе гибридный вариант - сделать ретрофитовский велосипед конкретно для этого запроса, в будущем может совсем на него переехать.
Аноним 05/11/16 Суб 14:22:26 #416 №870216 
>>856749 (OP)
Как загружать пикчи? Что писать в хмл файле? Например, в html есть input type='file', в андройде есть что-то такое? Тег там или кнопка
Аноним 05/11/16 Суб 14:28:14 #417 №870218 
>>870216
>Как загружать пикчи?
>Что писать в хмл файле?
>Например, в html есть input type='file', в андройде есть что-то такое? Тег там или кнопка
ХАХАХАХАХАХАХАХАХАХАХ
Может ты хочешь еще бордер-радиус, или какую-то другую шутку найти?

Для начала не пиши андроЙд, пожалуйста.
Во воорых по поводу картинок, вариантов очень много.
1) Ручками грузить картинку в другом треде, далее преобразовать байты в битмапку как тебе надо и встаивть в ImageView;
2) UniversalImageLoader/Picasso/Glide - удобные апи для загрузки картинок, могут даже кучу вещей сделать за тебя, но опять же в коде;
3) Volley, не знаю насколько она еще жива, но раньше в ней был NetworkImageView, который по указанной ссылке будет грузить имедж, так себе вариант;
Аноним 05/11/16 Суб 14:33:25 #418 №870220 
Кто-то работал с Kurento (http://www.kurento.org/), для стриминга видео/звук? Не могу никаких вменяемых туториалов найти, если они вообще есть для ведра.
Аноним 05/11/16 Суб 14:33:48 #419 №870222 
>>870220
Блять ссылка похуевилась, вот: http://www.kurento.org/
Аноним 05/11/16 Суб 14:53:45 #420 №870228 
>>869126
>Закончил курс Udacity
Какой из?
Аноним 05/11/16 Суб 14:55:32 #421 №870230 
>>870220
Чето вообще не увидел там sdk для ведра. А джавовскую либу советую посмотреть на предмет количества методов.
Возможно, стоит выбрать что-нибудь другое
Аноним 05/11/16 Суб 14:59:51 #422 №870234 
>>870230
> посмотреть на предмет количества методов
Серьезно, кто-то в 2016-м еще парится по поводу количества методов, когда есть MultiDEX и Proguard?
Аноним 05/11/16 Суб 15:04:31 #423 №870239 
>>870230
СДК у них было, но я его нигде не нашел, а из ответа на стеке выходит что оно старое и всеми забытое. Если можешь скинь ссылку на джавовский клиент, я на их гитхабе не нашел. Увы я не ответственен за выбор, просто в вебе уже используют эту поебень.
Аноним 05/11/16 Суб 15:17:15 #424 №870245 
>>870239
Скинул тебе за щеку.
Аноним 05/11/16 Суб 15:20:58 #425 №870249 
>>870245
Спасибо.
Аноним 05/11/16 Суб 16:06:36 #426 №870277 
>>870218
Спасибо, няша, за ответ.
Сделал внешним интентом, лазил в галерею и брал юри картинки.
Аноним 05/11/16 Суб 16:10:01 #427 №870281 
>>870277
Ну это другое. Тем более ставить картинку через атрибут uri немного плохо, с большими картинками начинает тупить, так как грузит их в главном потоке.
Аноним 05/11/16 Суб 16:12:12 #428 №870283 
Анончики, хочу написать приложение, которое бы считало задачу Линейного Программирования графическим методом, симплекс-методом и методом двойственной задачи.

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

Мне нужно будет по двум точкам строить прямые, находить на их пересечении подходящую область, и находить нужную точку.

Вроде ничего особенного.
Аноним 05/11/16 Суб 16:20:35 #429 №870293 
>>870283
Я использовал для схожих целей дискретные монады. Просто, удобно и не нужно никаких дополнительных инструментов.
Аноним 05/11/16 Суб 16:39:04 #430 №870306 
>>870293
Что за дискретные монады, можно подробнее? Сам только учу яву и вообще андроид разработку, об этом не слышал.

Суть в том, что мне еще и рисовать эти графики нужно.
Аноним 05/11/16 Суб 16:51:08 #431 №870312 
>>870306
Ну кто же в 2016-м учит яву, ты серьезно? Она уже мертва давно, новых версий не будет https://habrahabr.ru/post/304812/

Учи Хаскель, пока молодой, будешь крутым специалистом: https://www.haskell.org/tutorial/monads.html

Или учи js, если хочешь легких денег.
Аноним 05/11/16 Суб 16:52:12 #432 №870314 
>>870312
Ой, не начинай.
Аноним 05/11/16 Суб 17:12:50 #433 №870323 
>>870283
Джавовские рисователи графики слабо подходят для ведра. Я бы брал gnuplot или что такое, но существующие порты мне как-то не нравятся. Если там только линии то как бы не сложно и тебе нужно сделать кастомный вью и ему переопределить onDraw. А как искать пересечение точек, смотри на каком-нибудь maxalgo.
Аноним 05/11/16 Суб 17:16:21 #434 №870329 
>>870323
Спасибо.
Аноним 05/11/16 Суб 20:23:28 #435 №870478 
Есть где-нибудь гайд или пример кода, как сохранять презентер в @ActivityScope?
Аноним 05/11/16 Суб 20:27:33 #436 №870482 
>>870283
Графопостроитель MPAndroidChart
Аноним 05/11/16 Суб 20:59:49 #437 №870512 
Поясните пожалуйста, setContentView нужен для того, чтобы обьявить в Java-файле, какие вьюхи мы будем использовать в этом файле?
Аноним 05/11/16 Суб 21:06:09 #438 №870516 
>>870512
Для того чтобы заполнить дерево из View объектов согласно xml разметке, которую ты в этот файл передашь.
Аноним 05/11/16 Суб 21:10:31 #439 №870518 
>>870516
>заполнить дерево из View объектов согласно xml разметке, которую ты в этот файл передашь
Не понял
Аноним 05/11/16 Суб 22:02:39 #440 №870544 
14783725590640.jpg
Андроны, запилил квиз хуйню, но не могу прикрутить шкалу правильных-неправильных ответов. Суть такова, хочу сделать шкалу в виде квадратиков, юзернейм отвечает правильно, квадратик становится зеленый, неправильно следующий квадратик становится красный. Нашей бутстрап, progress bar group, но не получается его вкрутить. Может есть какой-то еще способ?
Аноним 05/11/16 Суб 22:04:23 #441 №870545 
>>870544
Напиши кастомный View, делов-то.
Аноним 05/11/16 Суб 22:13:59 #442 №870549 
>>870516
*В этот метод а не файл
Аноним 06/11/16 Вск 20:43:27 #443 №871086 
Какой самый эффективный способ передать данные между активити? 6 строк и 4 числа
Пока что я делаю так: пишу все это одной строкой в бд в первой активити, затем с интентом перехода передаю юри-ссылку на эту строку и извлекаю значения из бд уже во второй активити. Мне кажется, делаю что-то лишнее.
Аноним 06/11/16 Вск 21:00:39 #444 №871096 
>>871086
Extras
Аноним 06/11/16 Вск 22:06:53 #445 №871144 
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View itemClicked, int position,
long id) {
Intent intent = new Intent(LadderActivity.this, PlayerInfoActivity.class);
startActivity(intent);
}
});

NullPointerException, в чем ошибка? Не могу открыть активити по клике на айтем листвью.
Аноним 06/11/16 Вск 23:04:05 #446 №871170 
>>871144
> в чем ошибка
Не знаю, дебаггер в руки и вперед.
Аноним 06/11/16 Вск 23:46:35 #447 №871217 
Смотрите как надо себя продавать:
http://4pda.ru/forum/index.php?showtopic=608702

Человек просто перечислил всё, о чём слышал.
Аноним 07/11/16 Пнд 01:44:47 #448 №871297 
>>871217
А что не так? Если у него действительно опыт 6 лет, то он действительно всё из этого знать должен. Перечислять кейворды для hr - нормальная практика.

Меня бы смутило незнание иностранных языков и отсутствие ссылок на приложения или хотя бы примерное описание проектов. Но может на этом форуме просто такие правила или так принято, не знаю.
Аноним 07/11/16 Пнд 01:46:08 #449 №871301 
>>871217
>>871297
Но хотя да, многовато у него кейвордов и некоторые из них странные.
Аноним 07/11/16 Пнд 02:45:08 #450 №871327 
Сори за офтоп, но без ваших советов никак.
Пришло время покупать ноут для работы, до этого все делал на десктопе, но сейчас придётся каждый день кататься в офис и обратно, ввиду этого рассматриваю 13.3" и 15.6" ноуты, ибо 17" таскать с собой каждый день как-то не очень. Встал вопрос о выборе диагонали и разрешения. Есть к анонам два вопроса по этой теме.
1)13,3" кажется мне слишком маленьким для кодинга и этот вариант стоит отбросить сразу, прав ли я?
2)На 15.6" какой стул выбрать: 1366х768 или 1920х1080. К первому варианту меня склоняет его цена (минимум на 25% ниже), но отпугивает моральная старость таких экранов. От преславутого фулл ашдэ меня отпугивает только то, что на 15 дюймах при таком разрешении все будет настолько мелкое, что придется увеличивать масштаб интерфейса чтобы не вытекали глаза, при таком раскладе смысл покупки фуллхд частично теряется, прошу чтобы кто-то подтвердил или опровергнул это мнение.
С удовольствием выслушаю ваши советы по моему вопросу, так же пишите какой дисплей на вашем рабочем зверьке (чем довольны, чем недовольны)
Аноним 07/11/16 Пнд 04:05:54 #451 №871340 
>>871327
У меня экран ноута 15.6" с разрешением 1920х1080, никакого "слишком мелко" там нет.
Дома и на работе всё равно подключаю ноут к внешнему монитору и пользуюсь только им. Брат жив.
Аноним 07/11/16 Пнд 07:18:06 #452 №871367 
>>871327
Только 15.6 full hd.
Иначе будешь смотреть на код как из танка.
Аноним 07/11/16 Пнд 07:58:47 #453 №871375 
>>871327
Года 3 разрабатываю под андроид на macbook 13'' - все отлично видно.

Последнее время даже увеличил шрифт на ~25% тк слишком много кода за раз видно на странице.
Аноним 07/11/16 Пнд 13:56:09 #454 №871479 
>>871340
>>871367
>>871375
Всем спасибо
Аноним 07/11/16 Пнд 19:49:11 #455 №871687 
Господа, поясните: как вы верстаете? Интересует не растягивание картинок, а общие принципы.
Юзаете ли веса? match_parent/wrap_content, или же пилите все размеры в dp?
Я просто к чему пишу - решил немножко подзапариться с вёрсткой своего проекта, адаптивностью и прочей малафьёй, и подохуел с того, что все это делают абсолютно по-разному (пример https://habrahabr.ru/company/touchinstinct/blog/191910/).

Лично я раньше просто пилил всё, что можно match_parent + Space + веса, в dp в основном отступы. Но тут проблема, что в списках эта хуйня не работает, и веса хуесосят на хабре за производительность. Плюс, если текствью match_parent - настраиваемый шрифт не запилить.
Как делаете вы?
Аноним 07/11/16 Пнд 21:07:25 #456 №871747 
>>871687
Берешь и без задней мысли верстаешь. В документации всё описано. Не можешь её понять - смотри видеокурс на юдаси.

По ссылке описана какая-то хуита.
Аноним 07/11/16 Пнд 22:38:38 #457 №871837 
14785475183810.png
Как вы сохраняете презентер во время пересоздания активити/фрагмента?

Я сейчас сделал так: сохраняю сам презентер (а не Observable или Subscription) в пустой retained фрагмент. Предварительно "открепляю" от презентера View, чтобы не было утечек.
Очевидный минус такого подхода: не получится в качестве View использовать фрагмент (ибо retained фрагмент не может находится внутри другого фрагмента). Может, есть еще какие-то?

Какой вариант посоветуют опытные аноны?
Аноним 07/11/16 Пнд 22:40:12 #458 №871838 
>>871837
> Может, есть еще какие-то?
Имел в виду, может есть еще другие минусы, у подхода, который я описал.
Обоссыте меня, если есть за что. А еще лучше расскажите, как вы делаете.
Аноним 07/11/16 Пнд 23:14:16 #459 №871886 
14785496566830.jpg
>>871837
А что если я скажу тебе, что ты можешь отключить пересоздание при повороте через configChаnge,
а остальное решит кэширование на уровне доменной логики.
Аноним 08/11/16 Втр 00:02:59 #460 №871940 
>>871886
Нет, спасибо.
Аноним 08/11/16 Втр 00:17:20 #461 №871948 
>>871886
А что кстати случится?
Аноним 08/11/16 Втр 00:26:59 #462 №871954 
>>871948
Ночью придёт Женя Вортанов и обоссыт тебя.
Аноним 08/11/16 Втр 00:53:47 #463 №871964 
>>871954
Кто такой жека, и почему гейось нормально обрабатывает повороты, а ведроид через жопу?
Аноним 08/11/16 Втр 00:57:00 #464 №871966 
>>871964
https://medium.com/russian/почему-мой-телефон-не-обновится-до-нового-андроеда-e4cd5fa3fa85#.uesdnrt1b
Аноним 08/11/16 Втр 01:00:17 #465 №871968 
>>871966
Типа это проблемы железа, а не архитектуры? Сильное утверждение, я с ним не согласен.
Аноним 08/11/16 Втр 01:08:40 #466 №871974 
>>871968
Ты жопой читал что-ли?
Аноним 08/11/16 Втр 01:17:01 #467 №871976 
>>871974
Хендлинг смены конфига не должен происходить в софте вендора, в котором фиксят "плохое" железо. Да, вендор может дописать своих изменений конфига, и соответсвенно должен был бы дописать правильный хендлинг этих изменений, опираясь на дефолтный хендлер, который умеет решать такую хуйню как смена языка, часового пояса или не дай бог размера экрана. Но этого не появилось в ядре ведроида, соответсвенно в вендоровских прошивках этому неоткуда взяться. Статью я эту читал давно, насколько я помню смысл сводился к тому, что из-за "мусорности" телефонов всем похуй, а потому ебашат говенный хард, на него натягивают еле дышащую прошивку, и всем похуй.
Аноним 08/11/16 Втр 02:39:52 #468 №871996 
К вопросу про разрешение подкину еще один.
Стоит ли гнаться за ноутом с хорошими тачпадом и жестами (макбуки, последние асусы) , или в любом случае все сводится к мышке? Смог ли вам хороший тачпад заменить мышь?
Аноним 08/11/16 Втр 09:37:08 #469 №872071 
>>871996
Везде кроме игр пользуюсь тачпадом, много где достаточно клавиш и тачпад/мышка только тормозят.
макбук
Аноним 08/11/16 Втр 12:05:57 #470 №872131 
14785959571970.jpg
Набираю портфолио, если кому надо приложение написать пишите на почту:
[email protected]
Аноним 08/11/16 Втр 16:27:03 #471 №872244 
Аноны, кто-нибудь перешел на rxjava 2? Что стали юзать из нового?
Аноним 08/11/16 Втр 17:14:17 #472 №872283 
>>871837
Почему не делать всё в ретеин фрагментах? То есть там у тебя будет хранить и презнтер, и вся работа с андроидскими вьюхами.
Аноним 08/11/16 Втр 18:04:10 #473 №872341 
>>872283
Потому, что Retain фрагменты не должны хранить ссылки на android.View, Context и т. д. - при каждом повороте экрана будет утекать память. Поэтому и нужно откреплять от презентера активити, чтобы не было утечки.
Кроме того, Retain фрагменты нельзя добавить в back stack.

Так что, делать непустой фрагмент с UI retained - плохая идея.
Аноним 08/11/16 Втр 18:34:58 #474 №872356 
>>872341
В чем отличие (Context) getActivity() от getApplicationContext()?
Аноним 08/11/16 Втр 18:42:00 #475 №872358 
>>872356
Application context принадлежит всему приложению, когда как просто контекст принадлежит конкретной активити. Т.е. простой контекст "сломается", когда соответствующая активити будет уничтожена.
Аноним 08/11/16 Втр 22:31:03 #476 №872518 
14786334636520.png
14786334636521.png
Сап! такая проблема, что обработчик не дергается при клике на imageButton/imageView, а только на textView`ки, хотя обе находятся в одной вьюшке, к которой и крепится слушатель. как можно пофиксить?
Аноним 08/11/16 Втр 23:33:00 #477 №872582 
>>872518
Не страдай хуйней, повесь листнер явно на каждую кнопку
Аноним 09/11/16 Срд 01:23:44 #478 №872612 
Ребзя, к вопросу прошлого анона про экран и тачпад (другой анон), задам свой.
Какой проц стоит в вашей рабочей лошадке и довольны ли вы им? Сейчас в ноуте 8гб озу, ссд и i5 второго поколения. Думаю именно проц все портит, ибо ide тупит как мразь. как раз выбираю машинку помощнее. Что бы вы не/рекомендовали? Извиняйте, что скатываю тред в хардверач.
Аноним 09/11/16 Срд 08:37:26 #479 №872661 
>>872582
Просто я не знаю, как тогда получить объект Offer, к которому привязан мой холдер? Через значения image или text вьюшек, естественно, не вариант. Поэтому и пришлось такое пилить
Аноним 09/11/16 Срд 10:21:09 #480 №872685 
Привет вам из соседних тредов.
Понятно, что ксамарин несет сильный оверхед. А как дела обстоят с qt и, например, дельфи под андроид? Они же создают наивные бинарники?
sageАноним 09/11/16 Срд 10:27:31 #481 №872688 
>>872612
Съеби уже плиз в /hw/ и поставь быстрый SSD
Аноним 09/11/16 Срд 11:21:06 #482 №872698 
>>872685
Наивный здесь ты. Может считать они что-то быстро и будут, но у них все свое, потому что в противном случае им нужно делать вызовы в джаву, что еще медленней чем вызов из джавы. И все ведроидовские компоненты стандартные преврщаются в хуй пойми что, так что получишь большой оверхед по коду и сопровождению.
Аноним 09/11/16 Срд 11:24:06 #483 №872703 
>>872341
> при каждом повороте экрана будет утекать память
в Butterknife есть метод unbind, ничего не течет
> Кроме того, Retain фрагменты нельзя добавить в back stack.
это ты сам придумал? У меня все отлично добавляется, и уверен у тебя тоже
> Так что, делать непустой фрагмент с UI retained - плохая идея.
Не соглашусь, взял эту идею из mosby
Аноним 09/11/16 Срд 14:53:31 #484 №872811 
>>872698
Т.е. и все компоненты UI у них свои?
Ебать там объёмы кода.
Аноним 09/11/16 Срд 15:20:17 #485 №872831 
>>872811
>Ебать там объёмы кода
У Qt хелловорлд формочка метров 50 под андроид.
Аноним 09/11/16 Срд 16:21:19 #486 №872876 
Ребят, а реально ли написать такое приложение - есть два смартфона (простейший случай), на каждом из них в это приложение загружена одна и та же песня, по нажатию play на одном из смартов, песня одновременно начинает проигрываться на обеих телефонах? Если да - в какую сторону копать, что читать?
Аноним 09/11/16 Срд 16:35:45 #487 №872902 
>>872703
> в Butterknife есть метод unbind, ничего не течет
Окей, допустим.
> это ты сам придумал? У меня все отлично добавляется, и уверен у тебя тоже
void setRetainInstance (boolean retain):
Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change). This can only be used with fragments not in the back stack. https://developer.android.com/reference/android/app/Fragment.html#setRetainInstance(boolean)

Mosby 2.0 uses retaining Fragments or for activities lastNonConfiguration method to keep presenters. There is nothing wrong with retaining fragments that have UI. The only downside of retaining fragments are that you can't put them on the back stack.
http://stackoverflow.com/a/36437802

Fragment is on the backstack it can not use setRetainInstance(true).
https://github.com/sockeqwe/mosby/issues/153#issuecomment-241201734

Последние две цитаты принадлежат собственно создателю Mosby.

Собственно, Mosby 3.0 будет работать иначе:
In Mosby 3.0 (SNAPSHOT available but Fragment on backstack not implemented yet) all presenters will be saved in a Map bound to the hosting activities lifecycle. That means, Presenter can be kept for non retrainig fragments on the backstack. In contrast to Nucleus, they are only kept as long as Activities lifecycle or removed from backstack by the user (navigation). Furthermore, this allows Mosby 3.0 to support custom views (FrameLayout etc.) too.
Аноним 09/11/16 Срд 16:37:32 #488 №872905 
>>872703
> У меня все отлично добавляется
Если действительно так, опиши, что и как ты делаешь или покажи код.
Аноним 09/11/16 Срд 18:36:07 #489 №873033 
>>872902
>>872905
Так что должно произойти?
>https://github.com/sockeqwe/mosby/issues/153#issuecomment-241201734
Вот тут у него, как я понял, когда фрагмент в бэкстеке и он переворачивает экран, тот фрагмент теряет данные, да?
Странно, но я щас затестил свое приложение - и там запрос,который нужен для фрагмента в бэкстеке, не повторяется при перевороте. Может быть это так работает только для фрагментов из саппорт либы?
Аноним 09/11/16 Срд 19:09:44 #490 №873058 
>>873033
А вот нашел в чем проблема http://stackoverflow.com/questions/13420448/how-i-can-break-things-with-fragments-with-setretaininstancetrue-and-adding-th
Просто я не юзаю onSaveInstanceState, у меня все хранится в поле ретеин фрагмента (ViewState), и ничего там не пересоздается в бэкстеке при перевороте. Но спасибо, анон, что написал про это, потому что у меня могли возникнуть баги из-за этого, и я бы долго искал в чем проблема
Аноним 09/11/16 Срд 19:25:31 #491 №873069 
>>857087

Ну а проверка на разных устройствах? Лучше узнать, что твоя программа не работает на Гэлекси до того, как пользователь начнет ругаться.
Аноним 09/11/16 Срд 20:53:53 #492 №873114 
>>873069
В договоре указывается reference device, правильную работу приложения на котором нужно реализовать и протестировать.
Тестирование на старых самсунгах и безымянных китайфонах — если заказчик захочет (разумеется, не бесплатно).
Аноним 09/11/16 Срд 21:23:57 #493 №873128 
>>873058
А как ты тогда восстанавливаешь состояние вьюх, если у тебя onCreateView() не вызывается?
Аноним 09/11/16 Срд 21:58:15 #494 №873146 
Игрался кто-то ConstraintLayout'ом? Есть какой-то нормальный способ лепить общий бэкгрануд для нескольких вьюх, не создавая еще одну вьюху?
Аноним 09/11/16 Срд 22:07:21 #495 №873161 
>>873128
Вызывается, только после переворота в backstack'е в него приходит null bundle. И из за этого Гугл предлагает не юзать ретеин фрагменты с backstack'ом, как я понял. Ну все равно все можно засейвить во вьюстейте
Аноним 09/11/16 Срд 23:15:42 #496 №873222 
>>873161
Хм, окей.

Но мне всё равно не особо нравится идея делать все фрагменты setRetainInstance(true)
Аноним 10/11/16 Чтв 00:16:37 #497 №873264 
>>872876
можно через сокеты попробовать, но нужно подключение к интернету и сервер. Ну и конечно будет небольшая задержка
Аноним 10/11/16 Чтв 00:54:05 #498 №873277 
Вот что бывает, когда бывшие энтерпрайз-макаки пишут приложения под ведро: https://bitbucket.org/derekwilson/recommender-android/src/e585b3cac38cd6cdf5c9a0e60f4fc7fed1aaedbe/RecommenderAndroidStudio/app/src/main/java/net/derekwilson/recommender/?at=master
Аноним 10/11/16 Чтв 08:53:09 #499 №873345 
>>872876
Используй dlna для поиска в локальной сети другого смартфона и удаленного воспроизведения песни. Часы смартфона для синхронизации.
Аноним 10/11/16 Чтв 10:19:51 #500 №873368 
Перекат: https://2ch.hk/pr/res/873367.html

Перекат: https://2ch.hk/pr/res/873367.html

Аноним 10/11/16 Чтв 15:53:09 #501 №873507 
>>873264
>>873345
Только не смейтесь если что - а без интернета это возможно? Очевидно остается только синий зуб для коммуникации.
Аноним 10/11/16 Чтв 18:58:50 #502 №873578 
>>873507
> Очевидно остается только синий зуб для коммуникации.
Ещё вафля.
comments powered by Disqus

Отзывы и предложения