Старый Мобильщик
74 subscribers
34 photos
1 video
1 file
118 links
Разработка мобильных приложений, дедлайны и все, что вы любите в IT.

Будни. Сниппеты. Заметки.

Когда-то были AsyncTasks ... Android 2.3.3 и ни одной вакансии в городе-миллионнике

Обсудить что-либо: @activitynotfound
Download Telegram
Channel photo updated
Пост 0. О себе и индексе массива

Представим, что вы в новой кампании. Примерно так выглядело бы ваше представление (немного утрированное) другим коллегам.
Звать вас Александром.
Вам 33 года уже (привет, Age-изм и все вытекающие?), с 2011 года вы занимаетесь только разработкой под Android. Полтора года вы руководили Android-командой удаленно из 5+2 человек и опыт этот даже был не плохой.
Повидали, как говорится, много разного Г. Ну и вы не из Москвы. Есть такой славный город Ростов-на-Дону.
Спросят: а что заканчивал? А вы гордо (нет) скажите Донской Государственный Технологический Университет, по специальности Компьютерная Безопасность. Хотя учились на коммерческой основе почти два года, пока не стукнуло заняться обучением и перейти на бюджетную основу. Одна из немногих ваших гордостей.
Обучились Android разработке сами, когда еще и загуглить-то по теме было особо нечего. Исходники и дедукция вам в помощь.
Начинали с Android 2.1 на эмуляторе. То еще, кстати. Удовольствие было.
Но все равно все хорошо, потому что была жажда новых знаний и желание писать качественный код. Тогда и без каки-либо курсов можно прекрасно справиться. Но хорошие коллеги - самое ценное, как ни крути.
Работали и работаете удаленно, хотя и в офисе потрудились.
Хороший опыт, хорошая ЗП (действительно, грех жаловаться) - казалось бы, что еще нужно?
Видимо писульки тут писать еще. Возможно, они кому-то будут полезными.
С этого и начнем, с нулевого. Вы же все знаете, что в нормальных языках индекс в коллекции всегда с нуля?
Старый Мобильщик pinned «Пост 0. О себе и индексе массива Представим, что вы в новой кампании. Примерно так выглядело бы ваше представление (немного утрированное) другим коллегам. Звать вас Александром. Вам 33 года уже (привет, Age-изм и все вытекающие?), с 2011 года вы занимаетесь…»
Пост 1. Charles Proxy

Charles - очень удобная штука для тех, кто работает с API. Для многих это не секрет!
Во-первых, легко можно просмотреть ответ от сервера, особенно, это удобно когда он довольно весомый и Logcat часть обрезает.
Во-вторых, виден запрос и все нужные параметры (заголовки, тело) - удобно отлаживать, когда вы пишите классы для работы с API.
В-третьих, ответ форматирован и его удобно просматривать.
В четвертых, все ответы сгруппированы по папкам. Это просто прекрасно.
В-пятых, запрос который выполняется подсвечивается цветом.
И самый весомый плюс (о котором мы поговорим в отдельном посте) - возможность мокать ответ от сервера (подменять на свои данные). Таким образом без единой строчки кода можно тестировать приложение.
И это далеко не все плюсы. Их гораздо больше.
Единственная засада - тулза платная и нужен ключик (про другие пути его использования упоминать не хочется)

Раньше было довольно муторно его настраивать, но теперь с Android Emulator можно все настроить за 3 минуты.
Поможет отличный гайд: https://mdapp.medium.com/the-android-emulator-and-charles-proxy-a-love-story-595c23484e02
Пост 2. Сказ о том, как Алеши в личке о смене дизайна договорились.

Друзья! Никогда не делайте так, как наши герои, если вы заинтересованы в долгой, продуктивной работе в команде и кампании в целом. 
Дело было так.
Утренний дейлик.
iOS-разработчик начал возмущаться на тему цвета и дизайнер сказал, что напишет ему в личку.
У меня эта задача уже была сделана. Но кто бы мог подумать, что дизайнер втихаря поменяет цвета?! Во время спринта. Без обновления Фигмы. И без сообщения в чате для всех заинтересованных разработчиков.
Потом ко мне в личку приходит тестеровщик и говорит "что-то цвета не совпадают с тем, что в дизайне".
Шикардос.
Сюжет прекрасный? И, наверное, классический для многих команд.
Так вот.
НЕ ДЕЛАЙТЕ ТАК НИКОГДА. ЕСЛИ ВЫ ОБСУЖДАЕТЕ ЧТО-ТО, ЧТО КАСАЕТСЯ ЕЩЕ КОГО-ЛИБО В ВАШЕЙ КОМАНДЕ - ОБСУЖДАЙТЕ ЭТО В ОБЩЕМ РАБОЧЕМ ЧАТЕ, ТЕГАЯ НУЖНОГО ЧЛЕНА КОМАНДЫ.
Такая простая истина, а на деле часто не выполняется и даже в 2021-ом от нее подгорает капитально.
Пост 3. ViewBindingPropertyDelegate

Неплохая обертка для удобной инициализации ViewBinding-а:
https://github.com/kirich1409/ViewBindingPropertyDelegate
для тех кому не нравится гугловое решение из доки, которое довольно многословно:

private var _binding: ResultProfileBinding? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = ResultProfileBinding.inflate(inflater, container, false)
val view = binding.root
return view
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
}

Ccылка на доку откуда взят код: https://developer.android.com/topic/libraries/view-binding

Единственное, лучше использовать делегат без рефлексии (в либе отдельные зависимости на делегаты с рефлексией и без).
А если не хотите зависеть от дополнительной библиотеки, что сейчас почему-то становится трендом - скопируйте нужный делегат к себе в проект и поддерживайте как вам нравится.
Пост автора: https://proandroiddev.com/make-android-view-binding-great-with-kotlin-b71dd9c87719