Как стать автором
Обновить
0
0
Евгений Курсаков @KursoRUS

Студент

Отправить сообщение

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


static final KProperty[] $$delegatedProperties = new KProperty[]{(KProperty)Reflection.mutableProperty1(new MutablePropertyReference1Impl(Reflection.getOrCreateKotlinClass(TestFragment.class), "carName", "getCarName()Ljava/lang/String;")), (KProperty)Reflection.mutableProperty1(new MutablePropertyReference1Impl(Reflection.getOrCreateKotlinClass(TestFragment.class), "index", "getIndex()I"))};

По такому принципу кстати работают GPU. Но там это обусловлено тем, что блоки по 32 ядра (warpы в cuda) в один момент времени могут выполнять только одинаковые инструкции.

После того как узнал о Moxy (https://github.com/Arello-Mobile/Moxy) вообще перестал беспокоиться о повороте экрана. В ней презентер спокойно переживает смену конфигурации и плюсом после пересоздания view применяет к нему все вызванные до поворота методы, что позволяет почти не париться о сохранении состояния.

В котлине вполне это же можно так написать:


for (i in 0 until N step 2) {}

until, step – это все функции из стандартной библиотеки.


А для циклов по коллекции можно писать вот так:


for (i in items.indices) {}

Сам range оператор (который 0..N-1) в циклах лучше не использовать, очень легко -1 забыть.

Не забыли, на ней даже частичная загрузка работает: http://flif.info/animation.html
Для работы с сертификатами и профилями еще есть очень удобные утилиты (sigh и cert) из fastlane (https://fastlane.tools/).
После небольшой настройки позволяют практически не заходить самому в dev center и itunes connect.

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность