Size: a a a

2020 February 11

DA

Daniyar Amangeldy in Android KZ
Проблема в том, что это мертвый код и он будет везде
источник

DA

Daniyar Amangeldy in Android KZ
Daniyar Amangeldy
resources.assets.locales типа такой?
И он будет проверен еще в начале, ты его юзаешь в другом месте
источник

DA

Daniyar Amangeldy in Android KZ
Потому что smart cast не может запомнить его
источник

DA

Daniyar Amangeldy in Android KZ
Выносить в field класса? не очень уже
источник

BG

Baurzhan Galmzhansson in Android KZ
Хм. Может ты и прав.
источник

BG

Baurzhan Galmzhansson in Android KZ
Daniyar Amangeldy
Потому что smart cast не может запомнить его
Скинь пример пожалуйста, не могу вспомнить.
источник

DA

Daniyar Amangeldy in Android KZ
Далеко не ходить когда ты сервис берешь с контекста
источник

BG

Baurzhan Galmzhansson in Android KZ
Daniyar Amangeldy
Далеко не ходить когда ты сервис берешь с контекста
А если он и вправду null вернет?
источник

DA

Daniyar Amangeldy in Android KZ
Упадет он в любом случае
источник

DA

Daniyar Amangeldy in Android KZ
Он не упадет на проде
источник

DA

Daniyar Amangeldy in Android KZ
context?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodService
источник

DA

Daniyar Amangeldy in Android KZ
В какой момент упадет?
источник

DA

Daniyar Amangeldy in Android KZ
Если контекста не будет? или если каст не пройдет? или если такого сервиса не существует? И когда он может измениться в SDK?
источник

DA

Daniyar Amangeldy in Android KZ
* <p>Note: Instant apps, for which {@link PackageManager#isInstantApp()} returns true,
    * don't have access to the following system services: {@link #DEVICE_POLICY_SERVICE},
    * {@link #FINGERPRINT_SERVICE}, {@link #SHORTCUT_SERVICE}, {@link #USB_SERVICE},
    * {@link #WALLPAPER_SERVICE}, {@link #WIFI_P2P_SERVICE}, {@link #WIFI_SERVICE},
    * {@link #WIFI_AWARE_SERVICE}. For these services this method will return <code>null</code>.
    * Generally, if you are running as an instant app you should always check whether the result
    * of this method is null.
    *
    * @param name The name of the desired service.
    *
    * @return The service or null if the name does not exist.
источник

DA

Daniyar Amangeldy in Android KZ
Все перечисленные кейсы упадут во время разработки
источник

BG

Baurzhan Galmzhansson in Android KZ
А как ты гарантируешь, что во время прода оно не упадет?
источник

DA

Daniyar Amangeldy in Android KZ
Обычно, в апи пишут когда метод возвращает null , как в этом примере
источник

DA

Daniyar Amangeldy in Android KZ
Если твой key не подходит будет null. Не думаю что во время прода key сам изменится )
источник

DA

Daniyar Amangeldy in Android KZ
1 вариант возможен, если вендор что то сломает
источник

DA

Daniyar Amangeldy in Android KZ
Если так посмотреть, когда у тебя в проекте и java и kotlin верить нельзя ничему вообще.

Был у нас кейс с методом который возвращал Not Null тип
Так вот он и упал  KotlinNullPointerException. Самое обидное на проде)
источник