DroDev | Мобильная разработка: мысли вслух
464 subscribers
104 photos
229 links
Обсуждаю и рассказываю как сделать жизнь разработчика в команде интересной, легкой и продуктивной.

По всем вопросам @dilix90
Download Telegram
Бесплатный курс по Advanced #Kotlin от #Google и #Udacity 👨‍🎓

Видео презентация: https://www.youtube.com/watch?v=rGv5pInpSvc

2-х месячная программа рассчитана на людей уже знакомых с Котлином и желающих углубиться в дебри разработки.

Все мы по разному потребляем контент, по-этому гугл и юдасити позаботились о том, чтобы уроки были доступны как видео курс на Udacity, так и серия на #Codelabs.

Перейти к Udacity курсу »

Перейти на Codelabs »
Начиная с #Android 11 не будет вопроса чем плох #AsyncTask и когда его использовать. Никогда. Теперь он #Deprecated.

На его место есть несколько кандидатов от самого #Google:
- java.util.concurrent
- #Kotlin concurrency (#coroutines)

Я бы добавил, что если уже у вас проекте есть #RX - можно использовать его помощь. Если он не подключен - kotlin coroutines - то что нужно.
Интересный факт: около 60% Top 1'000 приложений в Google play используют #Kotlin внутри.

#Google продолжает активно развивать поддержу Котлина для #Android. В #CodeLab уже много обучающего материала:

- https://codelabs.developers.google.com/android-kotlin-fundamentals/
- https://codelabs.developers.google.com/advanced-android-kotlin-training/
- https://codelabs.developers.google.com/kotlin-bootcamp/

Фокус на 2020: работа над компилятором, чтобы сделать сборку Котлин проектов быстрее, удобнее и просто лучше! https://android-developers.googleblog.com/2019/12/androids-commitment-to-kotlin.html
👍1
Хорошие новости для любителей пилить свои игрушки.

В 2020 #google проводит indie game festival. До 2 марта инди разработчикам (в том числе из России) можно подавать заявки на участие.

Это отличный повод зарелизить свою игру (если еще нет) и поучавствовать в гонке за солидными призами:

- Оплаченная поездка в Варшаву для презентации игры в финале
- Помощь в продвижении с SuperScale ценой в ~100.000 Евро
- Приглашение в Акселератом Google Play Games
- Консультации с командой Google play
- Фичеринг в Google play store
- ПР на рекламных площадках Google
Tickets to top industry events
- Билеты на отраслевые мероприятия
- Последние устройства от Google
- и другие призы

Удачи всем учавствующим! http://bit.ly/2RkpHfg
#Анимации в #Android всегда уступали #iOS. Последнее время #Google делает все больший упор на плавность и красоту #UI и качественный #UX.

#MotionLayout - как раз один тому пример. Я тут наткнулся на две статьи о том, как можно сделать красивые и сложные анимации в приложении. Один и тот же UI сделали с использованием MotionLayout и без. Все приправлено примерами и исходниками на #Github.

Анимации БЕЗ MotionLayout:
https://proandroiddev.com/complex-ui-animation-on-android-8f7a46f4aec4

Анимации С MotionLayout:
https://proandroiddev.com/complex-ui-animations-on-android-featuring-motionlayout-aa82d83b8660
#Google вплотную взялся за задачу «сделать жизнь #Android разработчиков проще».

Пару недель назад выкатили видео, в котором рассказали что нового и реально интересного есть в #Jetpack - наборе инструментов для андроид разработчика.

Из самого для меня интересного:

👉 #Hilt. Рекомендованная библиотека для Dependency Injection. Она построена на #Dagger, но реализует то, что обычно приходилось делать костылями. Теперь есть простой и понятный способ инжекстится в Android Framework и Jetpack library классы.
👉 Paging 3. Переписанная Paging 2 на корутинах. Вообще, попробовав раз корутины и поняв их идеологию, возвращаться к RX для простой многопоточность уже не захочется.
👉 Navigation с Dynamic feature. Сам навигационный компонент всё никак не доходят руки нормально попробовать, но выглядит интересно. Теоретически можно строить навигацию, предполагая что все экраны в наличии, а по факту динамически подгружать фичи по мере использования. Модулярность в действии.
👉 Упрощение Request #Permission. Наконец. Теперь в понятном виде, легко и непринужденно можно запрашивать Runtime Permissions. Раньше использовал RxPermissions, которые делали жизнь проще, но сейчас вообще шик.
👉 Autofill IME. Клавиатура вообще всегда была больным местом. Кстати, в андроиде, начиная с 11 с помощью WindowInsets появилась возможность (наконец!) синхронизировать контент приложения с клавиатурой. А тут еще подвезли интересный API, который позволяет отображать inline suggest в подсказках к клавиатуре.

В общем, кажется жизнь андроид разработчика налаживается 😉 https://bit.ly/3drdezJ
#Firebase от #Google, о котором ранее писал в том числе в блоге содержит прямо пул полезных инструментов для мобильного разработчика. От хостинга до аналитики с искусственным интеллектом и ML Kit. Сейчас хотел бы поговорить отдельно про Database функционал.

Fierbase Databse - по сути NoSql база в облаке. Довольно быстро настраивается, описываются правила доступа и можно работать. Все в целом неплохо… пока речь идет только о хранении данных одного пользователя. Так сказать такой облачный кэш для вашего приложения.

У нас начались с ним проблемы, когда захотели написать бэкофис под БД. Т.е. такую небольшую субдоминанта поверх, чтобы было удобно вести сервис. Так как это NoSql база, то в целом она плохо рассчитана на сильно связанные данные и таблицы, чтобы сделать простые отчеты через несколько таблиц пришлось повозиться. Но на этом самое веселое только началось.

Бесплатный режим Firebase включает 50 тысяч доступов на чтение. Вроде много. Я даже выставил «бюджет» в 5$ на всякий случай, чтобы заметить если вдруг что. Все заработало (не так быстро, как могло бы быть с SQL, но все же). А через неделю внезапно оказалось, что наши скрипты для бэра выжирали примерно 11 миллионов чтений в день 😄, что стоило примерно 100-200$ за эту неделю.

Опты с Firebase DB показал (я могу быть не прав, поправьте, если так), что
* Eдобно использовать, когда вам нужен простой бак, хранящий инфу одного пользователя
* Это может стоить дорого, а ограничить жестко возможности нет (только придет уведомление)
* Если вам нужен более продвинутый бэк, то, вероятно писать его поверх Firebase DB так себе идея. Лучше взять даже старый добрый MySQL и иметь контролируемое решение.

А что вы думаете про Firebase Datastore? (Именно про datastore, а не другие сервисы, о которых можно поговорить отдельно). https://bit.ly/31zSJgn
Наконец-так вышло то, что все* давно ждали!

*Не знаю как вы, но я и многие кого знаю из мобайла - точно.

#Google дал возможность оставлять отзыв о приложении прямо внутри приложения🌟

Теперь можно попросить пользователя оценить его опыт ровно тогда, когда он на это готов и не выгонять его из приложения при этом теряя конверсии. https://bit.ly/30IPbsR
#Google довольно давно веел фичу «Отчет о тестировании» в Google play developer console. Вероятно вы ей уже пользовались, но на всякий случай решил напомнить о ней еще раз.

Когда вы загружаете APK/AppBundle в консоль, то Google прогоняет на версии ряд тестов. Он запускает ваше приложение на живых девайсах и даже постит скриншоты в консоль 🔥

По факту тестирования на почту упадет письмо с результатами.

Примечательно, что тестирование запускается не только на релизной версии, но и даже на версиях, предназначенных для внутреннего тестирования. Кстати если, вы им еще не пользуетесь, советую присмотреться, туда можно вообще пушить с вашего CI: https://dimlix.com/deploy-android-app-with-ease/ 😉

Итого последовательность действий при релизе может быть такая:
* Закидываете релиз кандидата в internal channel в google play
* Тестируете сами и ждете тестов от Google
* Смотрите отчет, какие потенциальные проблемы есть, вплоть до того, какие кликабельные зоны меньше рекомендуемого
* Катите оттестированное приложение в релиз
* ...
* Профит!
Конфиденциальность пользователя - вот что интересует #Google (ну непосредственно доступа к ним самим 😅). Именно по этому изначально разрешения в #Android были все в манифесте.

Далее часть из них перекочевала в #Runtime #Permissions начиная с Android 6.0.

И сейчас, в Android 11 ожидаются небольшие изменения. Обо всем - в очередной статье в блоге. https://bit.ly/2S8mXSY
#Google в последнее время знатно радует разработчиков плюшками из #Android #Jetpack. К примеру те же #ViewModel и #LiveData - лично я уже слабо представляю как можно писать приложение без них 🙈

Вы ведь в курсе про эти два божественных компонента? Если вдруг нет, в кратце написал про них статью. https://bit.ly/3i8tUhv
Благодаря поддержке Юлы, конференция #AppsLive 2020 стала бесплатной (но надо зарегестрироваться)!

Будем говорить например про #Jetpack compose от #Google, remote builds на #CI и другие крутые штуки, связанные с мобильной разработкой и не только.

Кстати, Юла – сервис объявлений, входящий в состав Mail.ru Group и обслуживаемый сотней серверов и несколькими дата-центрами. У ребят явно есть чем поделиться с их-то масштабами.

Apps Live 2020 пройдёт 21 и 22 октября и для участия необходимо зарегистрироваться 
https://appsconf.ru/moscow/2020
#Google выкатил в открытую бету библиотеку для разработки под Android Auto.

Это позволит писать приложения-дополнения для например навигации, паркинга и т.д. Т.е. расширять возможности карт Android Auto.

Не факт, что нам сейчас это интересно, но тенденции знать полезно.

#Статьи https://bit.ly/37k8V9X
Очередная порция видосиков от #Google. Теперь про #AppBundle.
О том что это такое, как происходит подпись на стороне Google play и много другое по ссылке, проходим, смотрим, учимся!

#Статьи https://bit.ly/3mlV2MR
Подборка основных видеоуроков и статей по MAD (сумашедшим, но на самом деле просто "Modern Android Development") скилам от #Google.

Под катом все что нужно настоящему Android джедаю: #Jetpack, #Corutines, #KTX и многое другое.

#Статьи #Видео https://bit.ly/3qKRJRv
Как адаптировать приложение под #Huawei Mobile Services в 6 простых шагов

В 2020 на долю Huawei в России пришлось почти 18% мобильного рынка. Фанбаза гиганта продолжает расти даже несмотря на отдельно стоящую от #Google экосистему сервисов. Пока власти США и Китая решают разногласия, разработчикам приходится выкручиваться

Георгий Гигаури, который разрабатывает Android-приложение Delivery Club, поделился своим опытом по оперативной реализации поддержки Huawei-устройств. Поэтапный гайд можно прочитать на Хабре, а для любителей видео в конце статьи есть приятный бонус с конференции Mobius 2020 https://bit.ly/3tnn0uS
👍1
#Google все больше и больше внимания уделяет качеству приложений в #GooglePlay. В связи с этим можно освежить в памяти правила оформления оных.

P.S. У нас на днях выпилили приложение за то, что закрытая (!) альфа версия начала что-то нарушать. Вернуть обратно получилось только через несколько дней, потому что время на review в google увеличилось. https://bit.ly/3h8oJRP
👍1
#Google основательно взялся за модерацию приложений в сторе. На днях у меня заблокировали приложение за кривое описание.

Все бы ничего, но приложение висит в маркете года с 2011 😂
👍1