Или зачем делать ретроспективу, если у вас каждодневные митинги...
На ретроспективе обычно обсуждают другое — проблемы с которыми столкнулись в спринт, почему успели\не успели, процессы в команде и т.п. А дейлики это скорее для синхронизации команды. Знания о чем говорят на ретро может стать неплохим «слепком» состояния дел в команде. Но это конечно если вам ответят честно)
Если смотреть на этот процесс как бы снаружи, то здесь единственное отличие от Java — отсутствие ключевого слова new при вызове конструктора.
Можно вспомнить про возможность передавать именованные параметры в конструкторы и функции. Полезно если несколько параметров опциональные и нужно передать значение для 2 или 3го (например какой-нибудь вызов joinToString(prefix = "")). Taк же может помочь в ревью, когда в метод\конструктор передаются однотипные данные а подсказок студии нет(к примеру пачка true\false)
class User(val name: String, val age: Int)
// порядок передачи параметров уже не важен
val mike = User(age = 25, name = "Mike")
Ну тут вопрос отдельного приложения, мы проанализировали пользователей, ниже 4.4 не было — мы подняли версию (приложение нишевое, так что «знаем каждого пользователя в лицо»). А вообще тема холиварная, я бы с удовольствием поддерживал все версии (или скорее предпочел чтобы все были на последних 2х), но эт довольно «дорого», так что приходится идти на компромиссы(
Думаю Вы немного не правильно поняли автора статьи. В его случае конечной средой выполнения его рабочих программ был как раз компьютер. В случае андроид разработки для применения этого принципа Вам стоит запустить своё приложение на слабом андроид девайсе.
По схожей концепции для теста андроид приложения на работе использую древний Huawei на 4.4 — если на нём приложение работает без тормозов, то с высокой вероятностью и у других оно будет работать хорошо. Бывали реальные случаи, когда мощные устройства «съедали» баги связанные с производительностью
Стоит отметить что data классы содержат реализации методов equals, hashcode, toString и componentN (для расщепления классов), так что на java ваш класс был бы еще больше. Что важно эти методы реализованы разумно, и разработчики языка учли множество подводных камней при их реализации.
Не знал, что можно настроить подсветку именно для Kotlin Android Extensions, спасибо!) К сожалению, комментария yanex еще не было, когда я писал свой (мой проходил модерацию)
Не согласен с Вами, учитываю, что вы не объявляете нигде переменную вьюхи в коде, другой стиль именования делает её визуально отличной от остального кода, проще разобраться, сразу понятно что это вьюха и т.п
Считаю, что GUI напротив достаточно важен для школьников. Создать достаточно простой интерфейс не сложно, за месяц в школе вполне можно научится базовым вещам (в старших классах). Интерфейс позволяет «потрогать» результат своих трудов, это может быть дополнительной мотивацией в изучении. Из своего опыта могу сказать, что когда мне показывали в школе как кодить на паскале я не особо понимал как от текста в консоли перейти к обычным программам, которыми я пользовался, и тогда программирование казалось чем то более сложным, чем оно есть на самом деле.
Мне кажется было бы удобно, если бы Вы время от времени вставляли ссылки на определенные минуты из доклада, чтобы можно было переходить из текста на конкретный момент в видео, т.к некоторые моменты проще понять из видео, а некоторые из текста.
Я бы в классе ProfileViewModel в методе onChanged заменил «if (loggedIn!!)» на «if(loggedIn == true)», чтобы не было НПЕ, а в случае если loggedIn == null считалось бы, что пользователь не залогинен.
В Android Studio пройдите по пути File -> Setting -> Editor -> Colors&Fonts -> Kotlin. На открывшимся экране создайте собственную Scheme, кликните на элемент, цвет которого хотите изменить (Например, Annotation). Справа от списка вы увидите поле для выбора цвета, чтобы его поменять уберите галочку «Use inherited attributes» и вы сможете выбрать любой цвет из палитры. Думаю, что в Intellij Idea будет примерно такой порядок вещей.
Имхо, в андроиде уже была куча разных подходов к архитектуре MVP, MVI, MVVM, Clean Arhitecture, но многие новички как то кодят и без низ, так что на мой взгляд еще один подход сильно жизнь новичкам не усложнит, и даже скорее наоборот хорошо, что появилось приятное решение из коробки.
На мой взгляд, однонаправленный поток данных сохранится, т.к. модель так же будет принимать интент, которым в случае с текстовым полем может быть callback изменения текста или просто его текстовое значение.
Можно вспомнить про возможность передавать именованные параметры в конструкторы и функции. Полезно если несколько параметров опциональные и нужно передать значение для 2 или 3го (например какой-нибудь вызов joinToString(prefix = "")). Taк же может помочь в ревью, когда в метод\конструктор передаются однотипные данные а подсказок студии нет(к примеру пачка true\false)