
Михаил
26.09.2017
12:07:58
Всем привет, подскажите пожалуйста, относительно Call (Retrofit2) и структуры json. Если у нас есть вот такая модель(https://gist.github.com/lordofprograms/6936dda018b85c81376a8abf38e7e907), вот интерфейс для запроса(https://gist.github.com/lordofprograms/c1414942bed6d1440d50a92329ee6e4a) и класс, где мы получаем ответ от Retrofit(https://gist.github.com/lordofprograms/cd4c529add5f1b5fe6bbfcc84fb8c139), если при данной структуре json файл для этого выглядит так - https://www.reddit.com/top.json , как структура модели для Call должна выглядеть для этого json - https://jsonblob.com/api/07ef0d0e-a2b0-11e7-a649-476e20c07825 ?

Quantum Harmonizer
26.09.2017
12:14:14

Михаил
26.09.2017
12:17:26
Спасибо, за ответ)
Но он, вроде, не может выстроить таким образом
data class ImagesDataResponse(data: ImagesData)
data class ImagesData(images:Image)

Igor
26.09.2017
12:39:04

Google

Konstantin
26.09.2017
12:41:26
Есть плагины которые создают модели по json
Как java классы так котлин классы

Михаил
26.09.2017
12:43:40
Всем спасибо за помощь

Maxim
26.09.2017
12:45:42

Михаил
26.09.2017
12:55:34
Киньте, пожалуйста ссылку, буду благодарен)

Konstantin
26.09.2017
13:01:51
На плагины?

Михаил
26.09.2017
13:19:12
*сайт

Maxim
26.09.2017
13:19:46
На джаве пользовался этим:
http://www.jsonschema2pojo.org/
в котлин он походу не умеет

Михаил
26.09.2017
13:21:39
Ага,только Java и Scala

Konstantin
26.09.2017
13:27:36
для джавы вот этот крутой плагин https://github.com/nvinayshetty/DTOnator потом можно джава класс конвертнуть ide в котлин, либо для котлина плагин тоже https://github.com/robohorse/RoboPOJOGenerator единственный минус что он генерит кучу классов и не делает внутренних

Maxim
26.09.2017
13:30:39
Только что попробовал для котлина: https://plugins.jetbrains.com/plugin/9960-jsontokotlinclass
Генерирует все правильно и без проблем.
Если что, плагин запускается кнопками Alt + K

Михаил
26.09.2017
13:31:30
Отлично, спасибо

Konstantin
26.09.2017
16:31:43
Нужна снова помощь)) https://pastebin.com/Xsk1LYQR почему при обращении к переменной instance возвращается нуль?

Google

Igor
26.09.2017
16:33:21

Mi
26.09.2017
16:33:38
А просто сделать object App нельзя?

Konstantin
26.09.2017
16:34:59
чему именно? про lazy прочитал в документации что дает потокобезопасную инициализацию, вот и прикрутил)
нет. нужно синглтон, чтобы инжектировать в дагере
c component работает, а с instance не вышло

Valeriy
26.09.2017
16:38:51
Можно же просто instance = this в oncreate

Konstantin
26.09.2017
16:39:37
можно так и было, но захотелось на lazy переделать

Sergey
26.09.2017
16:41:07

Igor
26.09.2017
16:43:39

Konstantin
26.09.2017
16:45:44
а, вот оно как. тогда понятно, всем спасибо за помощь

Valeriy
26.09.2017
16:56:26
companion object { lateinit var instance : App private set }

Igor
26.09.2017
16:58:35
var - absolutely haram

Dmitry
26.09.2017
17:08:34
lateinit var instance: App
private set

Igor
26.09.2017
17:17:06
Хм, чувак сверху тоже самое написал и там и тут var

Valeriy
26.09.2017
17:19:44

Igor
26.09.2017
17:20:23
Но он полностью приватный, а наружу торчит val

Valeriy
26.09.2017
17:21:10
А разница?

Михаил
26.09.2017
17:24:27
И снова возник вопрос
Кто-то реализовывал Endless RecyclerView из Keddit от juanchosaravia( https://github.com/juanchosaravia/Keddit )?

Google

Dmitry
26.09.2017
17:32:13

Михаил
26.09.2017
17:34:29
в примере @angmarr instance - это val поле (работа с ним идет именно как с неизменяемым полем), в примере с var... private set instance - это var (соответственно, работа с ним идет как с изменяемым полем)

Igor
26.09.2017
17:34:58
Ну сколько можно объяснять ?, оно везде будет как мутабельное отображаться
https://i.gyazo.com/df0f384106307702677508110c6822c4.png

Valeriy
26.09.2017
18:52:13
Если это вся разница то это ничего не меняет
Лично я на Котлин пришел ради читабельности кода
А когда ради одной проперти делаешь две это уже такое чето

Михаил
26.09.2017
19:12:30
Если это вся разница то это ничего не меняет
Ну еще компилятор будет считать, что твой instance ты мог где-то когда-то еще изменить, поэтому в некоторых случаях (в частности, если проперти nullable) тебе придется писать ненужный код и заботиться об обработке этих некоторых случаев (что проперти != null)

Quantum Harmonizer
26.09.2017
19:53:25
Application.instance не нужно

Михаил
26.09.2017
20:08:54
Кстати, всем, ещё раз, спасибо за советы, всё заработало с пагинацией ресайклера
Но есть один нюанс.
Подскажите, пожалуйста, как прекратить подгружать айтемы в Endless RecyclerView, если список кончился, в голову приходит вариант добавить поле id
Какие есть альтернативы?

Quantum Harmonizer
26.09.2017
20:12:48
либо знать, сколько всего страниц, либо остановиться, когда приходит пустой результат

Роман
26.09.2017
20:15:06
Часто в заголовках ответа бывает колличество страниц, легче конечно ждать пустой ответ

Михаил
26.09.2017
20:16:31
Не приходит пустой результат, оно его с начала начинает отображать

JRoot3D
27.09.2017
08:41:15
Здравствуйте! Очередной нубский вопрос по Anko. у меня есть verticalLayout в котором 3 кнопки, как можно им сделать Borderless стиль?

Quantum Harmonizer
27.09.2017
08:42:53

JRoot3D
27.09.2017
08:43:15
да

Quantum Harmonizer
27.09.2017
08:44:32
да
посмотри, как сделана функция horizontalProgressBar в Anko — то же самое, думаю, нужно сделать с кнопкой, только другой стиль передать

Google

JRoot3D
27.09.2017
09:02:40

Quantum Harmonizer
27.09.2017
09:03:19

JRoot3D
27.09.2017
09:03:57
понятно...

Евгений
27.09.2017
09:06:42
Я делал свой AppBar, там кнопки (навигаци, поиск) - ImageView, спокойно повесил background = ?selectableItemBackgroundBorderless. Тоже самое можно сделать для TextView
Ну, т.е. вместо Button юзать TextView, это позволяет более гибко настраивать внеший вид

JRoot3D
27.09.2017
09:44:05
Спасибо!

Роман
27.09.2017
09:53:49
ребят никто не сталкивался? есть кастомная вьюшка, вложена в xml внутри фрагмента, так вот внутри вью никак не видит компоненты через котлтн екстеншен

Quantum Harmonizer
27.09.2017
09:55:00

Роман
27.09.2017
09:55:30
import kotlinx.android.synthetic.main.fragment_fuel_report.view.*
это файл xml фрагмента
на ctrl я легко в него перехожу
влияеть ли visibility gone

Quantum Harmonizer
27.09.2017
10:04:01

Роман
27.09.2017
10:04:30
также как и свойсво парент периоически null

Igor
27.09.2017
10:19:49

Роман
27.09.2017
10:20:05
нет, что там должно быть

Quantum Harmonizer
27.09.2017
10:22:58
в каком смысле «не находит»?

Роман
27.09.2017
10:23:09
null

Google

Quantum Harmonizer
27.09.2017
10:25:18
null
а по факту он там есть?

Роман
27.09.2017
10:25:45
снаружи есть
как на скрине я показал

Quantum Harmonizer
27.09.2017
10:26:09

Роман
27.09.2017
10:26:53
я думал он в контексте всей вью работает

Quantum Harmonizer
27.09.2017
10:27:40
в одной иерархии вьюх может быть несколько вьюх с одинаковыми Id

Роман
27.09.2017
10:30:55
ок, фенкс

Лёша
27.09.2017
10:44:11
В кастомных вью сделали поддержку синтетик недавно
И включается через прописывание в градле
Минутку, поищу ссылку
Прошу прощения, ложная инфа
Поддержку сделали в ViewHolder'ах
В кастомных вью должно из коробки работать
https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out
Раздел Android Extensions plugin enhancements
Android Extensions plugin now supports not only Activities and Fragments, but also custom Views and even custom layout containers such as a ViewHolder.

Sergey
27.09.2017
11:47:03
как у вас с let экстеншенами? не злоупотребляете?
у меня бывает часто вот такая колбаса кода
и чет сомневаюсь окей ли я делаю

Quantum Harmonizer
27.09.2017
11:49:29
вполне норм