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

По всем вопросам @dilix90
Download Telegram
Программирование состоит из нескольких основных аспектов:

👉 Знания языка на котором пишете. У нас это #Kotlin, #Java. За этим стоит читать наш уютный канал или пойти на бесплатный #Codelabs или платный #Skillbox.

👉 Знания платформы, под которую пишиет. У нас это #Android. За этим опять же - наш канал и официальная документация Android.

👉 Алгоритмы. Любая последовательность действий - это по умолчанию #Алгоритм. Развивать соответствующее мышление помогает решение задачек. За разбором можно идти @UniLecs.

Новогодние праздники - отличный повод позаниматься, с Наступающим 🎄
С Наступающим, коллеги и все кто читает этот пост 🎉

Пусть следующий год сложится максимально продуктивно 🚀 Те, кто планирует только учиться разработке - создадут свой первый проект. Если вы уже зарекомендовавший себя #Android разработчик, время поставить перед собой новые цели и устремится в их сторону.

За прошедший год я и сам многому научился, был в том числе создан этот проект, в рамках которого делюсь полезностями из мира Андроид разработки. Понемногу, но все таки прилетает позитивный фидбек, значит это все не зря, хотя, вероятно, не все идеально и не без косяков. В следующем году также буду делиться с вами интересной информацией. Stay tuned!

На радарах моих профессиональных интересов есть две основные вещи:
- Программирование под Android
- Удаленная работа

В этом году я даже совмещал контент в рамках данного канала. Для меня это одно и тоже (т.е. удаленная работа андроид прогером), но я подозреваю, что многим здесь фиолетово на удаленную работу, а тех, кого она интересует совсем не обязательно привлекает android, да и вообще мобильные приложения.

В связи с этим появилось ответвление - независимый контентный проект "ПрограммWEST", в котором буду делиться именно аспектами удаленной работы, а в данном уютном чатике будет только Android. Это не значит, что Android контента станет меньше 😉

Т.ч. если, помимо разработки под Android, вас интересует тема удаленной работы (а там, уверяю, есть о чем поговорить), то welcome. Как обычно, все сделано для вас, дорогие читатели, и контент можно получать в удобной вам соц. сеточке:

👉 Telegram: https://t.me/programmWest
👉 Вконтакте: https://vk.com/programmwest
👉 Facebook: https://www.facebook.com/programmWest/
👉 Instagram: https://www.instagram.com/programmwest/

PS. С Наступающим Новым Годом!
#CodeReview - идеальный способ обучения и обмена знаниями. Вы не просто абстрактно рассуждаете на отвлеченную тематику, а решаете конкретную задачу вместе с другим человеком. Вы обмениваетесь знаниями, подходами и идеями.

Хотите, чтобы ваш код посмотрели разные люди? Учавствуйте в #openSource проектах. Допиливая нужную вам библиотеку вы делаете хорошо:

- себе, потому что получаете нужный функицонал
- еще раз себе, потому что ваш код будет на ревью у других разработчиков
- комьюнити, потому что вы сделали вклад в общее дело

Хотите, чтобы ваш код поревьюил я? Генерите реквесты в примеры, создаваемые для вас 😉

Не знаете как создать Pull Request? Тогда пишите в обсуждения! https://github.com/dryaz/dimlix.com-samples
Хорошие новости для любителей пилить свои игрушки.

В 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
GDPR (General Data Protection Rules) - объективно то, чему стоит уделить внимание, если вы хотите публиковать свои приложения (и вообще любые сервисы) в Европе.

Эти правила содержат положения о том как должны хранится персональные данные, что вообще они из себя представляют и какие обязанности относительно них у вас есть.

К примеру, вы должны собирать минимально возможные личные данные, которые нужны для работы приложения. Также, человек в любой момент может вас попросить удалить или передать ему или другой компании свои персональные данные. И вы не можете этого НЕ сделать.

Если вы хотите отправлять push уведомления, которые не относятся напрямую к приложению (материалы, которые могут быть расценены как рекламные), то нужно получить явное разрешение это делать. Откосить тем, что "Android не требует разрешения для отправки пушей" вряд ли получится.

Познавательная статья о том какие штрафы уже выписывали:
https://www.bbc.com/news/business-48905907

Есть и "мобильные" кейсы: https://platform.dataguidance.com/opinion/spain-aepd-fines-laliga-%E2%82%AC250000-gdpr-violations - компании выписали штраф за то, что они собирали обезличенные данные для выявления нелегальных трансляций. НО, так как не было получено явное разрешение и эти данные не относятся на прямую к приложению - извольте выложить 250'000 Eur.
#Android, в плане архитектуры, со временем менялся. Тут и #MVP с #Moxy, и свои реализации #MVC и т.д.

С #Android #Jetpack и #Kotlin постепенно вырисовывается путь, который Google считает верным при построении приложения. А именно мультимодульные MVVM проекты.

#ViewModel отвечает за логику и жизненный цикл бизнес сущностей. UI как обычно может быть пересоздан, а через liveData все вернется как было.

На глаза попалась интересная статья с примерами от А до Тестов: https://proandroiddev.com/android-architecture-d7405db1361c

Но не забываем, что многомодульность сделана не для того, чтобы усложнить жизнь разработчику. Она может быть полезна например для dynamic features: https://developer.android.com/guide/app-bundle/dynamic-delivery
Не совсем про Android, но все же про разработку и не мог пройти мимо 😃

Toptal​ проводит JS Speed Coding Challenge.

На все про все ровно 3 минуты, количество попыток не ограничено и, кроме азарта, еще и призы подвезли.

1st Place: Apple Airpods
1st Place - 5th Place: $100 Amazon gift card
1st Place - 20th Place: Toptal t-shirt https://speedcoding.toptal.com/start/Qvt8hxP
Всякие разные DIY #Android примеры показывают хороший результат по отклику от сообщества.

И сегодня это... #Jetpack #Composer - свеженький декларативный #UI.

Наткнулся на интересный репозиторий. В нем собраны примеры и ссылки на туториалы по composer. https://github.com/Foso/Jetpack-Compose-Playground
Вы знаете, что теги, вида #Android - кликабельны?
По нажатию на него можно отфильтровать весь контент группы.
#GeekBrains проводит онлайн марафон из серии вебинаров на тему эффективного развития и достижения карьерных целей 🚀

Я целиком и полностью согласен с тем, что не так важно что именно ты учишь, как-то как к этому подходишь!

Вебинары обещают ответить на такие неоднозначные вопросы, как «Как начать разрабатывать на зарабатывать на разработке и IT», послушаем 🎙

📌 А еще они проводят конкурс на бесплатное обучение на факультете. https://fas.st/a2VrGW
Работа программистом - это не только постоянное сидение за компом в наушниках, оторванными от внешнего мира 😜

Это и рабочая обстановка, коллеги, инструменты работы в команде и т.д. и т.п.

Если вы хотите посмотреть, как это все устроено в московском офисе Яндексе, то для вас хорошие новости! Он открыл свои двери для технических специалистов, которые хотят посмотреть как все работает изнутри. А посмотреть там есть на что 👍 http://bit.ly/2TXkPzE
#Анимации в #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
Если кто еще не видел, то вот...
Анонс Mobius 2020 в Питере 🚀

Из того, что увидел потенциально интересного

👉 DevOps для мобильных приложений. Автоматизация это всегда хорошо
👉 О декларативном UI и разработке Jetpack Compose
👉 То, что потенциально интересно начинающим разработчикам - про карьеру в мобайле

В общем много разных интересных тем, должно быть полезно. http://bit.ly/2vLAXKC
Питерский Mobius пройдет 23-24 июня 2020, а билеты на него можно купить уже сейчас 😉

По промо коду

dimlix2020pc

можно купить билет из тарифа Personal по цене прошлого месяца (т.к. каждый месяц - дороже). На сегодня это 15'500 вместо 17'000, скидка 1'500руб.

Программы конференции на сайте еще нет, но Mobius по опыту серьезно подходит к мероприятию 👍
#Android 11 preview уже доступна для Pixelей.

Что стоит ждать от android 11:

👉 One-time permission
Для ряда разрешений (камера, микрофон, местоположение) пользователь получит возможность выбрать опцию "Можно, но только в этот раз". Для меня, как для пользователя - это круто. Как для разработчика - ну так себе 😜

👉 Автоматически "Больше не спрашивать" про разрешения
Если пользователь 2 раза отказался от определенной запроса на разрешения доступа, то система посчитает что юзер выбрал "и больше не спрашивать.

👉 Нельзя всегда следить за пользователем
Получить постоянное разрешение на доступ к местоположению пользователя не получится, даже если очень хочется и target API на Android 10.

Конечно этот не весь список изменений, но то, что точно стоит учитывать в ваших приложениях уже сейчас. А с полными изменениями можно ознакомиться на офф. сайте.

В целом тренд на безопасность пользовательских личных данных и #ML продолжается, что наверное и хорошо! http://bit.ly/39Xzaku
Сейчас на проекте делаем #Android приложение, (большую) часть которого можно встраивать как #SDK внутрь других приложений. Причем довольно тесно. То есть не просто открыть стороннюю камеру и вернуть результат в виде ссылки на картинку в системе.

В связи с этим есть ряд интересных задач о связке внешнего приложения и SDK. Как то:

👉 Если внешнее приложение имеет #LockScreen по таймауту, а время, проведенное в SDK может оказаться значительным - как сделать seemles experience и white label, чтобы случайно, при возврате, юзер не столкнулся с LockScreen.

👉 Существуют сценарии, когда в рамках одного flow необходимо несколько раз "переключаться" между SDK и внешним приложеним, причем поддерживая "общий стек" экранов. Т.е. обратный путь должен тоже чередовать внешнее приложение и SDK.

👉 Простота интеграции. Естественно, ваш SDK мало кто захочет интегрировать, если внедрение будет вызывать боль и страдания.

👉 Мы сами же интегрируем свое SDK. Так сказать "родное" внешнее приложение. И вот тут надо из SDK логировать во внешние системы всякую аналитику, события и тд.

И это еще не все...
Итак, я, на мой взгляд, нашел решения этим задачкам.

Если вам интересно как такое можно провернуть - ставим лайк.
А если и сами знаете ответ - то welcome в комменты для обсуждения!
Уже скоро, а именно 20-22 марта 2020 в Питере пройдет #МегаХакатон от #HackUniversity.
Один из треков - #Android разработка ( а иначе зачем я вам это пишу 😉 )

Можно участвовать как со своей командой, так и найти новую.

На сайте стоит глянуть фотоотчет от 2018 года, выглядит круто!

И официальная информация от организаторов:
🚀Стань частью МЕГАХАКАТОНА 2020🚀
20-22 марта 2020 в Санкт-Петербурге состоится Всероссийский Университетский МегаХакатон HackUniversity 2020 #HU2020!

48 часов работы, мегаактивности, трехразовое питание, актуальные кейсы, современные технологии.

🏆 Призы и инвестиции в проекты, вакансии напрямую от топ-компаний, 60+ университетов-партнеров, возможности от российских и зарубежных инкубаторов.

👨‍💻 Участвуй с командой или найди её на МЕГАХАКАТОНЕ, реши кейс, получи приз или возможность реализовать свой проект.

⚡️ Подробности и регистрация: https://www.hackuniversity.ru/

Торопись! Количество участников ограничено. Возраст участников 18-45 лет.
Давно хотели познакомиться с #Kotlin, но не доходили руки и всё ещё пишете на #Java?

4 марта в 20:00 мск #OTUS (@Otusjava) приглашает на бесплатный пробный #вебинар «Быстрый переход на Kotlin для Android-разработки»

📌 За 1,5 часа вы узнаете:
— почему стоит учить Kotlin, и чем он лучше Java;
— отчего #Android разработчики предпочитают Kotlin;
— познакомитесь с основными возможностями языка;
— напишете простое Android-приложение на Kotlin.

Делиться экспертизой будет преподаватель-практик курса Михаил Борисов (Software Engineer, Android разработчик на Kotlin с большим опытом). Не упустите шанс задать ему все интересующие вопросы!
В связи с коронавирусом многие компании переводят сотрудников на удаленную работу из дома. Лично я "самоизолировался" из офиса еще в 2016ом и работаю таким образом вот уже четвертый год.

Если у кого из вас, вашей компании, друзей и родственников есть вопросы про удаленку, задавайте, отвечу, проконсультирую. Бесплатно.

Лучше задавать прямо в тред, а не в личку, чтобы не повторяться 😉

А между тем продолжаю готовить серию статей про разработку Android библиотек\SDK и тем, с какими проблемами можно столкнуться по дороге.
Google выкатил в бету #CameraX !
Работа с камерой довольно долго был болевой точкой в разработке.

Сначала это было просто #Camera #API, далее# Camera2. На пересечение была поддержка нескольких версий в зависимости от OS 😜

Последнее время Google стандартизирует свои API и выносит прежние реализации за публичные интерфейсы, что в итоге должно сделать жизнь производителей железа проще. И нашу тоже 😉

Из хорошего, что пишут про CameraX

👉 Реализация будет по умолчанию привязана к #lifecycle owner. Это значит, что теперь будет невозможно забыть закрыть стримы (что скажем бывало... )

👉 Упростилась обработка изображений. Оно теперь вынесено в отдельную сущность.

👉 Вынесена отдельная настройка в виде Camera Selector. Как бы не смешно звучало, но раньше, например, открыть фронтальную камеру - вызывало вопросы 😅

Если у вас есть приложения, заточенные на использование камеры - самое время попробовать новый CameraX (если еще нет) и внести свой вклад в его развитие! http://bit.ly/2w9keBI