Size: a a a

%d мобильных разработчиков со стальными нервами

2020 April 27

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
Котлин
источник

T

Tishka17 in %d мобильных разработчиков со стальными нервами
Корутины
источник

D

Dmitry in %d мобильных разработчиков со стальными нервами
Нее, котлин это язык, а тут речь про либы
источник

D

Dmitry in %d мобильных разработчиков со стальными нервами
Корутины, лайвдата
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
Dmitry
Нее, котлин это язык, а тут речь про либы
Так Java тоже язык
источник

D

Dmitry in %d мобильных разработчиков со стальными нервами
Да, язык это первая стадия
источник

MG

Mikhail Gromtsev in %d мобильных разработчиков со стальными нервами
Корутины, лайвдата   много проще Rx.   Нужно что современно сложное.
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
Dmitry
Да, язык это первая стадия
Ну вот вторая, в андроиде - Котлин)
источник

D

Dmitry in %d мобильных разработчиков со стальными нервами
И вероятно Android framework, а не сдк
источник

D

Dmitry in %d мобильных разработчиков со стальными нервами
А у нас есть что-то сложное? -) этож андроид
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
Dmitry
А у нас есть что-то сложное? -) этож андроид
CustomLayoutManager
CustomComplexViews (особенно первые штуки 3)
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
На последнюю кастомную вьюху я потратил 3-4 недели работы
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
Пришлось полностью рисовать на Канве
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
SavingState - не сложное, но заёбистое
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
Есть много мелочей, которые встречаются не часто, но требуют уйму времени
источник

D

Dmitry in %d мобильных разработчиков со стальными нервами
Это все последний монстер
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
Кстати, на тему корутин. Чего думаете насчёт такого экстеншена в BaseViewModel?:
    protected suspend fun <T : Any> safeAsync(block: suspend CoroutineScope.() -> T): T? {
       return try {
           withContext(Dispatchers.IO, block)
       } catch (t: Throwable) {
           handleError(t)
           null
       }
   }


В handleError(Throwable) я скармливаю её ErrorHandler'y, который смотрит что за ошибка и возвращает мессадж, который я прокидываю в errorLiveData в том-же BaseViewModel, + проверка не является ли ошибка HTTP_UNAUTHORIZED = 401, и если она - кидаю юзера на экран логина
источник

Н

Никита ✓ in %d мобильных разработчиков со стальными нервами
Запускаю её во viewModelScope, т.е. по идее с отменой траблов быть не должно
источник

AP

Alexey Pushkarev in %d мобильных разработчиков со стальными нервами
Никита ✓
Кстати, на тему корутин. Чего думаете насчёт такого экстеншена в BaseViewModel?:
    protected suspend fun <T : Any> safeAsync(block: suspend CoroutineScope.() -> T): T? {
       return try {
           withContext(Dispatchers.IO, block)
       } catch (t: Throwable) {
           handleError(t)
           null
       }
   }


В handleError(Throwable) я скармливаю её ErrorHandler'y, который смотрит что за ошибка и возвращает мессадж, который я прокидываю в errorLiveData в том-же BaseViewModel, + проверка не является ли ошибка HTTP_UNAUTHORIZED = 401, и если она - кидаю юзера на экран логина
а смысл T: Any ?
источник

AP

Alexey Pushkarev in %d мобильных разработчиков со стальными нервами
по дефолту и так от Any
источник