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

По всем вопросам @dilix90
Download Telegram
Google выкатил в бету #CameraX !
Работа с камерой довольно долго был болевой точкой в разработке.

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

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

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

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

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

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

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

Для этого необходим зарегистрироваться на GeekBrains, заполнить заявку и подождать 1-3 дня. Необходимо сделать до 31 марта. http://bit.ly/3dfFSEK
Новые даты #Mobius 2020 Piter!

Ранее рассказывал про планирующийся Mobius в Питере.

Из-за действующего запрета на проведение массовых мероприятий конфа на данный момент переносится на 22-23 июня 2020 в «Park Inn by Radisson Пулковская».

Билеты
Купленный вами или вашей компанией билет остается действительным на новые даты.
Если новая дата вам подходит, менять билет не нужно, всё будет работать.
Если новая дата вам не подходит — обратитесь в наш саппорт support@mobiusconf.com или @JUGConfSupport_bot. Мы поможем вам с возвратом денег, заменой билета на осеннюю конференцию или заменой участия на онлайн с частичным возвратом.

Программа
Сейчас мы договариваемся со спикерами на новые даты. Не всем спикерам подойдут новые даты, и программа немного изменится. Но мы приложим все усилия, чтобы программа стала интереснее и полезнее.
Одно из новшеств конференции — добавление онлайн-трека: один зал будет специально оборудован для того, чтобы мы могли проводить доклады и дискуссионные зоны с удаленными спикерами. Будем держать вас в курсе.

На случай продления карантина и ограничений
Мы прорабатываем разные форматы участия в конференции (онлайн и смешанные) на случай, если введенные недавно ограничения не позволят нам собраться вместе и летом. Будем оперативно сообщать вам обо всех изменениях в наших каналах и на сайте https://bit.ly/2J57MFL

Промокод действителен до начала конференции: dimlix2020pc

По всем оставшимся вопросам — пишите в саппорт (support@mobiusconf.com или @JUGConfSupport_bot).

Всем здоровья, продуктивной удаленной недели и поменьше паники 😉
В #Яндекс открыт набор на стажировку по мобильным приложениям.

Отличная возможность попробовать свои силы.
А если вы не собирались на стажировку, на страничке можно найти полезные ссылки где можно набраться знаний как по  #Android, так и по #iOS разработке. https://bit.ly/39ySyDI
#GitHub теперь еще дешевле. Они немного изменили тарифные планы:

- Бесплатный план теперь включает неограниченное число коллабораторов, 2'000 Github Action minutes/month и Community Support
- Абонентская плата за Pro план тепер 4$/мес вместо 7$/мес
- Абонентская плата Team тарифа теперь 4$/мес вместо 9$/мес
Monthly pricing for our paid Team plan has been reduced from $9/user to $4/user.
- Неизменно Github остается бесплатным для открытых репозиториев.

А вы пользуетесь платными тарифными планами Github?
И снова пару слов про кросплатформенную разработку и #Flutter.

Ожидание:
- Написал код один раз, работает везде
- Нажал кнопочку, проект собрался под все платформы

Реальность:
- #Firebase авторизацию заставил работать только с бубном. На форумах писали про "магическую" комбинацию правильных версий библиотек самого Flutter и #firebase_auth.
- #Push уведомления, необходимые также для авторизации (silent push) на iOS получилось настроить только с N-ого раза, удаляя туда-обратно сертификаты в #appstoreConnect
- Библиотека #url_launcher не хотела запускать email клиент на iOS с русскими символами в интенте 😳
- Для того, чтобы собрать проект под #iOS необходим #xCode

Итого:
Разработка под 2 платформы - удобно для #MVP, когда нужно относительно быстро запустить проект под 2 платформы, но это не так просто как может показаться на первый взгляд.

Бонус:
Само приложение можно найти по ссылке: https://stroycash.page.link/appDynLink

Буду рад обсудить детали реализации, ответить на вопросы и услышать ваши отзывы!
Недавно понадобилось в очередной раз сверстать View, которое бы растягивалось в зависимости от размера контента, НО не больше чем размер экрана.

Помню, раньше это было сделать не тривиально, а сейчас наткнулся, что это уже поддерживается из коробки в #ConstraintLayout начиная с версии 1.1 🔥

android:layout_width="wrap_content"
app:layout_constrainedWidth="true"

constrainedWidth отвечает за то, что View принимает во внимание также размеры внешнего контейнера.
Нужно меньше проводов!

В #Android 11 улучшили беспроводной дебаг приложений. Теперь для первоначального подключения не будет требоваться провод.

Все что нужно будет для настройки, это:

1. Обновить SDK на вашем компе
2. На устройстве включить режим разработчика
3. Разрешить беспроводную отладку
4. С помощью кода сопряжения связаться с устройством
5. На компьютере перейти в android_sdk/platform-tools.
6. Выполнить команду adb pair ipaddr:port. Порт и адрес использовать из диалогового окна, полученном на шаге 4.
7. (Для Linux и Windows) выполнить команду Run adb connect ipaddr:port
...
Профит! https://bit.ly/2ypcDQr
#Mobius Piter 2020 по понятным причинам переезжает в онлайн.
Даты 22-25 Июня.

Было 2 дня, стало 4. Зависать в онлайне перед компом на протяжении долго времени тяжело, по-этому растянули конференцию на 4 дня.

Цена стала в 2 раза ниже, а именно 12 т.р. за участие.

Что неизменно - так это концентрация сильных докладов про мобильную разработку! https://bit.ly/3dmNBAq
Проект LifeViewer ищет разработчика для создания #Android версии приложения с нуля.

#iOS версия LifeViewer app:
https://apps.apple.com/ru/app/lifeviewer-productive-day/id1482922018 📲

Зарплатная вилка: 100'000 - 200'000 руб. на руки + опцион 💰

Как всегда требуется оперативно решать поставленные задачи и писать чистый, качественный код.

По всем вопросам 📝
- в телеграм (@Victor_Khodalov)
- на почту: victor@friendstech.co.uk

#Вакансия имхо интересная.
4,8 из 5 в #AppStore много стоит.
Наличие iOS версии - говорит о том, что ТЗ уже прям совсем готово 🚀
Последнее время пользуюсь #Android Studio из stable ветки и давно не заглядывал в canary... а зря....

В Android Studio 4+ завезли несколько интересных фич:

👉 Навигация по #Dagger коду.
Интересная фича, позволяет переходить непосредственно к Provided методам например, т.е. упрощает дебаг не самых очевидных связей.

👉 Как всегда заявлено улучшение скорости сборки и возможностей hot reload.

👉 Build Speed Window
Показывает слабые места вашей сборки. Удобно, особенно если у вас есть кастомные шаги сборки внутри.

👉 Live #Layout Inspector
Сам Inspector - очень полезная вещь, когда надо проверить верстку на реальном устройстве. Но раньше было необходимо получить snapshot, который можно исследовать. Теперь же можно смотреть верстку в режиме реального времени.

Это, по крайне мере для меня, выглядят прямо удобно. Но также внутри есть еще ряд интересны изменений, такие как Database Inspector, Native Memory Profiler, Эмулятор внутри студии и другие. Полный список как всегда доступен на офф. сайте.

А какой версией студии вы сами обычно пользуетесь? Stable или Canary? https://bit.ly/3c0bb4H
Android Studio из какой ветки вы обычно используете?
Anonymous Poll
86%
Stable
14%
Canary
Новая интересная #вакансия по #Android

Вилка ЗП: 1 300 - 2 000 $ на руки
Удаленная работа, полная занятость.

Неплохое комбо для РФ.

Нужен Android Developer на #Kotlin, чтобы разработать новое приложение для 1.2 миллиарда жителей Африки.

Обязанности, требования и что ждут от кандидата в целом как и у всех вакансий.

О компании:
Mojo - это команда разработчиков на рынке финтех услуг. Создают продукты для российских и международных компаний. Команда полного цикла, быстрые процессы, каждому небезразлично то, что мы делаем.

https://mojo.finance/

Все вопросы и отклики на вакансию присылать в Телеграм @iznak
Разработчику важно постоянно развиваться и быть в курсе последних технологий.
Это позволяет эффективнее решать задачи, расти по карьере и быть востребованным специалистом.

На канале @android_school_ru каждую неделю автор публикует собственные практические мини-курсы на 1-2 часа, помогающие освоить фишки #Android.
Все курсы бесплатные и разделены по категориям. Вы всегда можете найти новый для вас материал, хотя бы потому что знать всё и всегда - не получится 😉

Каждый мини-курс нацелен на отработку конкретного навыка, например работа с #Room, #AlarmManager или #RxJava.
Результат каждого курса - рабочее приложение 📲

Из последнего:

👉 Чем отличается Dependency injection от Service Locator ?
👉 Тестируем миграции версий базы данных в Room
👉 Разработка приложения Фитнес-календарь на базе AlarmManager

Автор канала Михаил.
Он имеет большой опыт разработки и ранее работал в Rambler, Alibaba Group, а сейчас разрабатывает приложение с аудиторией 10+ млн. пользователей.
А еще автор является преподавателем онлайн-курсов в Нетологии и Отус.

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

Это все здорово и наверное правильно, но что точно стоит помнить (по моему опыту), делая свои проекты:


👉 Идея ничего не стоит. Вообще. Без реализации и команды. Все идеи "витают в воздухе", можно нагенерить 100500 мыслей о том что сейчас якобы нет и если сделать то будет пушка.

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

👉 Вы должны быть вашим же первым пользователем. Особенно в "пет" проекте. Делать приложения для веганов, когда вы едите мясо даже на десерт - так себе история.

👉 Лучше зарелизить проект раньше, но с багами, чем поздно, но идеальный. Логика, к сожалению проста. Кажущийся на первый взгляд нереально крутой проект может быть никому не нужен. Об этом лучше узнать как можно раньше.


Подведем итог на позитивной ноте. Заниматься личными проектами, учавствовать в opensource разработках и тд - хороший способ прокачать навыки и попробовать что-то новое. Но ожидания завышать не стоит, чтобы потом не разочароваться. https://bit.ly/3ei97H9
#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
Недавно с коллегой обсуждали отличия юнит и функциональных тестов.
Как результат - появилась статья, в которой зафиксировал основные мысли и примеры.

Основные мысли:

👉 Юнит тесты помогают писать качественный код, быстро работают и создаются. Тем не менее они не гарантируют что вся система работает так как задумано. Такие тесты говорят где проблема конкретно в вашем коде.

👉 Функциональные тесты могут работать сравнительно долго и быть сложными по своей структуре. Главная их цель – убедиться, что код делает то, что было изначально задумано. Такие тесты говорят где проблема в реализации и логике.

А вы пишите тесты к вашему коду 🙈? https://bit.ly/3ghOIm8
Пишите ли вы тесты при разработке?
Anonymous Poll
38%
Да
62%
Нет
И #Kotlin #Coroutines и Architecture component - практически must have в сегодняшнем Android приложении.

Недавно наткнулся на серию статей как элегантно соединить их вместе, чтобы потом не было мучительно больно.

👉 Часть 1: https://medium.com/androiddevelopers/livedata-with-coroutines-and-flow-part-i-reactive-uis-b20f676d25d7
👉 Часть 2: https://medium.com/androiddevelopers/livedata-with-coroutines-and-flow-part-ii-launching-coroutines-with-architecture-components-337909f37ae7
👉 Часть 3: https://medium.com/androiddevelopers/livedata-with-coroutines-and-flow-part-iii-livedata-and-coroutines-patterns-592485a4a85a

Как-то раньше я совсем не использовал Котлиновские #Flow, пора это исправить. Хороший повод выпилить RX из текущего проекта на корню 🙈
ДомКлик - проект при поддержке Сбербанка в сфере недвижимости ищет Android разработчика.

Почему я это читаю 🙈?
Месячная посещаемость 9.5млн по Similarweb, 4.6🌟 в маркете намекает, что у команды, стоящей за проектом есть о чем поучиться. Это именно продуктовая технологическая компания.

А еще у них есть блог на Хабре.
https://habr.com/ru/company/domclick/

Город: Москва, м.Кутузовская
Формат: офис, гибкий график
Занятость: полная
ЗП: от 150.000 до 300.000

Обазанности как обычно. Разработка приложений, поддержка, code review и вот это всё.

Требования тоже стандартные. Опыт от 1.5 лет. Понимание что такое Android 📱

Плюшки:

•  ДМС со стоматологией, льготная ипотека для сотрудников
•  Пин-понг, плойка, массажные кресла, кикер, библиотека, кофемашины на этажах, бесплатный спорт зал и подземный паркинг.
•  Отличный корпоративный университет, программы обучения в т.ч. за рубежом, конференции, митапы.
•  Все железо, необходимое для работы.
•  Гибкое начало рабочего дня и возможность работать удаленно.

https://team.domclick.ru/

Писать в телегу 24/7 @vamelan