Делегаты в Android приложениях
Одна из полезных фич в Kotlin — делегированные свойства или просто делегаты. По сути, делегат — это всего лишь класс с двумя методами: для получения и присвоения свойству.
Пример из этой статьи основан на паттерне MVVM. Логика приложения достаточно упрощена, RecyclerView заменён на ScrollView + Linearlayout, чтобы проще организовать код и объяснить применение делегатов в Android-приложении:
https://habr.com/ru/company/constanta/blog/696162/
#kotlin #android
Одна из полезных фич в Kotlin — делегированные свойства или просто делегаты. По сути, делегат — это всего лишь класс с двумя методами: для получения и присвоения свойству.
Пример из этой статьи основан на паттерне MVVM. Логика приложения достаточно упрощена, RecyclerView заменён на ScrollView + Linearlayout, чтобы проще организовать код и объяснить применение делегатов в Android-приложении:
https://habr.com/ru/company/constanta/blog/696162/
#kotlin #android
👍9🥴3
Оптимизация изображений с помощью расширений Firebase на Flutter
В статье рассматривается, как создать простое приложение для публикаций сторис. Для контроля размера изображений, загружаемых пользователями, автор использует готовый плагин Resize Images.
Resize Image — это библиотека, которая позволяет создать новое изображение меньшего размера и сохранить его в хранилище Firebase.
Подробнее о том, как настроить плагин в проекте, а также как правильно прописать путь после изменений по ссылке:
https://invertase.io/blog/image-optimization-with-firebase-extensions
#flutter
В статье рассматривается, как создать простое приложение для публикаций сторис. Для контроля размера изображений, загружаемых пользователями, автор использует готовый плагин Resize Images.
Resize Image — это библиотека, которая позволяет создать новое изображение меньшего размера и сохранить его в хранилище Firebase.
Подробнее о том, как настроить плагин в проекте, а также как правильно прописать путь после изменений по ссылке:
https://invertase.io/blog/image-optimization-with-firebase-extensions
#flutter
👍6
Основы MockK для написания юнит-тестов
MockK — библиотека с открытым исходным кодом для тестирования Kotlin. Используя MockK, можно изменять зависимости в тестируемых классах с помощью заглушек и моков (stubs & mocks), имитируя поведение реальных объектов.
В этом видеоуроке автор подробно рассказывает, зачем нужна эта библиотека MockK, а также как подключить и написать тесты с её помощью:
https://youtu.be/60uVfjh7QdE
#kotlin
MockK — библиотека с открытым исходным кодом для тестирования Kotlin. Используя MockK, можно изменять зависимости в тестируемых классах с помощью заглушек и моков (stubs & mocks), имитируя поведение реальных объектов.
В этом видеоуроке автор подробно рассказывает, зачем нужна эта библиотека MockK, а также как подключить и написать тесты с её помощью:
https://youtu.be/60uVfjh7QdE
#kotlin
👍12
Виды штрих-кодов, особенности и обходные пути в Apple Wallet
Наверняка вы знаете, что Apple Wallet поддерживает только определённые типы штрих-кодов — в основном это 2D.
В этой статье автор собрал в один список все доступные виды штрих-кодов, а также объяснил проблемы их создания для Apple Wallet:
https://tprg.ru/sdk5
#iOS
Наверняка вы знаете, что Apple Wallet поддерживает только определённые типы штрих-кодов — в основном это 2D.
В этой статье автор собрал в один список все доступные виды штрих-кодов, а также объяснил проблемы их создания для Apple Wallet:
https://tprg.ru/sdk5
#iOS
👍4
5 полезных расширений в VS Code для Flutter-разработчиков
1. Better Comments — позволяет выделять комментарии разными цветами.
2. Pubspec Assist — для быстрого поиска. Как только вы введёте название пакета, расширение автоматически отобразит последний пакет в вашем pubspec.yaml-файле.
3. Awesome Flutter Snippets — это коллекция сниппетов для часто используемых методов, классов и виджетов во Flutter. Также, расширение позволяет писать код быстрее, например набрав только singleChildSV для SingleChildScrollView.
4. Flutter Stylizer — организует Flutter классы последовательным образом.
5. Json to Dart Model — преобразует скопированный вами JSON в класс Dart (есть ограничения).
#flutter
1. Better Comments — позволяет выделять комментарии разными цветами.
2. Pubspec Assist — для быстрого поиска. Как только вы введёте название пакета, расширение автоматически отобразит последний пакет в вашем pubspec.yaml-файле.
3. Awesome Flutter Snippets — это коллекция сниппетов для часто используемых методов, классов и виджетов во Flutter. Также, расширение позволяет писать код быстрее, например набрав только singleChildSV для SingleChildScrollView.
4. Flutter Stylizer — организует Flutter классы последовательным образом.
5. Json to Dart Model — преобразует скопированный вами JSON в класс Dart (есть ограничения).
#flutter
👍11😐6👎1
Преобразования проекта из Figma в Jetpack Compose
Relay — плагин от Google для Android Studio, который импортирует UI-пакеты и создаёт код Jetpack Compose.
На данный момент плагин находится в стадии альфа-тестирования, но уже есть несколько доступных уроков с объяснением реализации данной библиотеки в проекте. Один из них от Филлипа Лакнера:
https://youtu.be/byOmrmXG4yQ
#compose #android
Relay — плагин от Google для Android Studio, который импортирует UI-пакеты и создаёт код Jetpack Compose.
На данный момент плагин находится в стадии альфа-тестирования, но уже есть несколько доступных уроков с объяснением реализации данной библиотеки в проекте. Один из них от Филлипа Лакнера:
https://youtu.be/byOmrmXG4yQ
#compose #android
🔥6
Руководство по Passkey на iOS 16
В статье разбирается новая система авторизации пользователей, которую Apple представила на WWDC22.
Для примера, автор реализует простое приложение, где пользователь должен ввести свои данные — username (имя или ник) для регистрации и сохраняет Passkey на устройство. В статье также объясняются API запросы для бэкенда, чтобы добавить Passkey в проект:
https://quickbirdstudios.com/blog/ios-passkeys/
#ios
В статье разбирается новая система авторизации пользователей, которую Apple представила на WWDC22.
Для примера, автор реализует простое приложение, где пользователь должен ввести свои данные — username (имя или ник) для регистрации и сохраняет Passkey на устройство. В статье также объясняются API запросы для бэкенда, чтобы добавить Passkey в проект:
https://quickbirdstudios.com/blog/ios-passkeys/
#ios
👍4
Подборка актуальных вакансий
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— iOS-разработчик
Где: Москва
Опыт: можно без опыта
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
#вакансии #работа
— Senior Android-разработчик
Где: Москва, можно удалённо
Опыт: от 3 лет
— iOS-разработчик
Где: Москва
Опыт: можно без опыта
— iOS-разработчик
Где: удалённо
Опыт: можно без опыта
— iOS-разработчик
Где: Москва, Санкт-Петербург, Казань, Пермь, можно удалённо
Опыт: от 2 лет
— Middle iOS-разработчик
Где: Москва
Опыт: от 3 лет
#вакансии #работа
💩17
Kotlin: функции-расширения
Kotlin Extensions используются, чтобы расширить базовый класс без использования шаблонов проектирования. При правильном использовании с помощью таких функций можно улучшить читабельность кода в проекте.
В этой статье рассматриваются варианты, когда функции расширения помогают избавиться от однотипного кода и упрощают некоторые методы:
https://habr.com/ru/post/697908/
#kotlin
Kotlin Extensions используются, чтобы расширить базовый класс без использования шаблонов проектирования. При правильном использовании с помощью таких функций можно улучшить читабельность кода в проекте.
В этой статье рассматриваются варианты, когда функции расширения помогают избавиться от однотипного кода и упрощают некоторые методы:
https://habr.com/ru/post/697908/
#kotlin
👍8
Android: Диалоговые окна
Вероятно, вы уже знаете всё про создание нового диалогового окна на Android, но в этой статье автор решил отойти от традиционного способа реализации и раскритиковать гайды от Google.
С какими проблемами сталкиваются разработчики при работе с Jetpack Navigation, DialogFragments и FragmentManager — в статье:
https://tprg.ru/CTgF
#android
Вероятно, вы уже знаете всё про создание нового диалогового окна на Android, но в этой статье автор решил отойти от традиционного способа реализации и раскритиковать гайды от Google.
С какими проблемами сталкиваются разработчики при работе с Jetpack Navigation, DialogFragments и FragmentManager — в статье:
https://tprg.ru/CTgF
#android
👍4👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Видеоплеер на SwiftUI (iOS 14+)
Небольшой урок, как реализовать видеоплеер в приложении с помощью AVKit. Фреймворк AVKit позволяет воспроизводить видео на SwiftUI без необходимости переноса функциональности из UIKit.
Подробнее: https://medium.com/devtechie/videoplayer-in-swiftui-ios-14-8049b61e2fc2
#swiftui
Небольшой урок, как реализовать видеоплеер в приложении с помощью AVKit. Фреймворк AVKit позволяет воспроизводить видео на SwiftUI без необходимости переноса функциональности из UIKit.
Подробнее: https://medium.com/devtechie/videoplayer-in-swiftui-ios-14-8049b61e2fc2
#swiftui
👍6
Amazon Web Services открыла бесплатный доступ к 120 англоязычным курсам
На официальном сайте можно выбрать и бесплатно загрузить любой курс по работе с облачным сервисом AWS, например, по линейной и логистической регрессии или анализу потоковых данных.
Акция продлится до 9 декабря, но доступ уже к загруженным курсам открыт до 28 апреля 2023. Полный список доступных уроков:
https://tprg.ru/9NZs
#курсы
На официальном сайте можно выбрать и бесплатно загрузить любой курс по работе с облачным сервисом AWS, например, по линейной и логистической регрессии или анализу потоковых данных.
Акция продлится до 9 декабря, но доступ уже к загруженным курсам открыт до 28 апреля 2023. Полный список доступных уроков:
https://tprg.ru/9NZs
#курсы
👍9
Технология AR в мобильных приложениях
По статистике ожидается, что к 2026 рынок AR-приложений вырастет на 44%. Уже сейчас технология AR становится популярной в приложениях для предоставления услуг и функций. Стоит ли добавлять данную технологию в проект?
Как работает технология AR, а также об ограничениях мобильной дополненной реальности рассказали подробно в статье:
https://tprg.ru/jcVi
#it
По статистике ожидается, что к 2026 рынок AR-приложений вырастет на 44%. Уже сейчас технология AR становится популярной в приложениях для предоставления услуг и функций. Стоит ли добавлять данную технологию в проект?
Как работает технология AR, а также об ограничениях мобильной дополненной реальности рассказали подробно в статье:
https://tprg.ru/jcVi
#it
👍6🥱1
Задачи с собеседований на Android разработчика
В статье разбираются примеры задач, которые довольно часто дают на собеседованиях по Fragment, ViewModel и Activity.
Автор разобрал ошибки в ответах начинающих, а также объяснил правильные ответы:
https://tprg.ru/vOjm
#собеседование #android
В статье разбираются примеры задач, которые довольно часто дают на собеседованиях по Fragment, ViewModel и Activity.
Автор разобрал ошибки в ответах начинающих, а также объяснил правильные ответы:
https://tprg.ru/vOjm
#собеседование #android
👍19
Как добавить тени на Android?
Во многих случаях достаточно использовать системные тени. А что если они не подходят по дизайну? Или дизайнерские решения настолько изящны, что просто невозможно подобрать подходящий параметр elevation для теней.
Отказавшись от использования сторонних библиотек, автор этой статьи решил написать своё собственное решение. Что из этого получилось - в статье:
https://habr.com/ru/company/inDrive/blog/696006/
#android
Во многих случаях достаточно использовать системные тени. А что если они не подходят по дизайну? Или дизайнерские решения настолько изящны, что просто невозможно подобрать подходящий параметр elevation для теней.
Отказавшись от использования сторонних библиотек, автор этой статьи решил написать своё собственное решение. Что из этого получилось - в статье:
https://habr.com/ru/company/inDrive/blog/696006/
#android
👍5❤1
Фишки и полезные советы для эффективной работы в Xcode
Command+Shift+J и Command+Shift+O — однозначно полезные комбинации клавиш, но в Xcode есть много других классных фишек, которые полезно знать разработчикам.
Какие? В этом видео собрали более 30 советов для работы с Xcode:
https://youtu.be/40imnmzsmxk
#ios
Command+Shift+J и Command+Shift+O — однозначно полезные комбинации клавиш, но в Xcode есть много других классных фишек, которые полезно знать разработчикам.
Какие? В этом видео собрали более 30 советов для работы с Xcode:
https://youtu.be/40imnmzsmxk
#ios
👍2
Знакомимся с ленивыми сетками в Jetpack Compose
В версии 1.3.0 Jetpack Compose добавили
LazyVerticalStaggeredGrid и LazyHorizontalStaggeredGrid, которые позволяют делать сетки с разным размером ячеек.
Сетки напоминают шахматный порядок, где элементы имеют разный диапазон высоты и ширины. По ссылке можно найти пошаговое руководство по их созданию:
https://tprg.ru/mUCG
#android
В версии 1.3.0 Jetpack Compose добавили
LazyVerticalStaggeredGrid и LazyHorizontalStaggeredGrid, которые позволяют делать сетки с разным размером ячеек.
Сетки напоминают шахматный порядок, где элементы имеют разный диапазон высоты и ширины. По ссылке можно найти пошаговое руководство по их созданию:
https://tprg.ru/mUCG
#android
👍8🤩1
Jetpack Compose: библиотеки и дополнения
1. Accompanist — это группа библиотек от Google для дополнения Jetpack Compose функциями, которые обычно требуются разработчикам: Flow Layouts, Pager, Placeholder и т.д.
2. Landscapist — библиотека загрузки изображений для Jetpack Compose с поддержкой Glide, Coil и Fresco.
Также библиотека поддерживает анимацию загрузки и переходов.
3. ComposeCookBook — библиотека виджетов, макетов, анимаций и просто примеров UI-дизайна приложений на Jetpack Compose.
#compose
1. Accompanist — это группа библиотек от Google для дополнения Jetpack Compose функциями, которые обычно требуются разработчикам: Flow Layouts, Pager, Placeholder и т.д.
2. Landscapist — библиотека загрузки изображений для Jetpack Compose с поддержкой Glide, Coil и Fresco.
Также библиотека поддерживает анимацию загрузки и переходов.
3. ComposeCookBook — библиотека виджетов, макетов, анимаций и просто примеров UI-дизайна приложений на Jetpack Compose.
#compose
👍19
Взаимодействие с Kotlin из Swift
В статье разбираются ограничения в работе Swift и Kotlin, а также сложности интеграции на iOS. Для решения этих проблем Алексей Михайлов, технический директор компании IceRock Development, сравнивает три варианта: Sourcery, компиляторные плагины Kotlin и Gradle-плагины:
https://habr.com/ru/post/697966/#Integracija-na-raznyh-platformah-v-chem-problema-c-iOS
#ios #android
В статье разбираются ограничения в работе Swift и Kotlin, а также сложности интеграции на iOS. Для решения этих проблем Алексей Михайлов, технический директор компании IceRock Development, сравнивает три варианта: Sourcery, компиляторные плагины Kotlin и Gradle-плагины:
https://habr.com/ru/post/697966/#Integracija-na-raznyh-platformah-v-chem-problema-c-iOS
#ios #android
👍7
Как герой статьи обошёл блокировку Google Pixel и получил за это $70 тысяч
Полный разбор уязвимости, затронувшую телефоны Google Pixel, которая позволяет атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки:
https://habr.com/ru/post/698918/
Спойлер: автор статьи — не Android-разработчик, он обнаружил баг совершенно случайно после 24-часового путешествия, забыв свой PIN-код.
#android
Полный разбор уязвимости, затронувшую телефоны Google Pixel, которая позволяет атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки:
https://habr.com/ru/post/698918/
Спойлер: автор статьи — не Android-разработчик, он обнаружил баг совершенно случайно после 24-часового путешествия, забыв свой PIN-код.
#android
👍16
Как компания Pushbullet стала ведущим мировым экспертом по нарушениям политик Google Play
Начиная с 2020 года разработчики из Pushbullet стали получать всё больше уведомлений о нарушении политик Play Store. По словам команды, сначала уведомления о нарушениях казались правдоподобными, хотя и немного раздражающими. С кем не бывает, верно?
Однако сейчас Pushbullet почти уверены, что их приложения проходят более строгую проверку в Google Store, чем другие компании. Возможно ли такое? Pushbullet поделилась своим опытом в статье:
https://blog.pushbullet.com/2022/10/27/how-we-became-the-worlds-foremost-expert-on-google-play-store-policy-violations/
#google #android
Начиная с 2020 года разработчики из Pushbullet стали получать всё больше уведомлений о нарушении политик Play Store. По словам команды, сначала уведомления о нарушениях казались правдоподобными, хотя и немного раздражающими. С кем не бывает, верно?
Однако сейчас Pushbullet почти уверены, что их приложения проходят более строгую проверку в Google Store, чем другие компании. Возможно ли такое? Pushbullet поделилась своим опытом в статье:
https://blog.pushbullet.com/2022/10/27/how-we-became-the-worlds-foremost-expert-on-google-play-store-policy-violations/
#google #android
👍5