💻 Создание анонимного экземпляра интерфейса в Kotlin
▶️Если в двух словах, то для создания экземпляра анонимного интерфейса в Kotlin применяется объектное выражение. Определите интерфейс непосредственно при инициализации переменной так:
val myInterfaceInstance = object : MyInterface {
override fun myFunction() {
// Ваш код здесь
}
}
myInterfaceInstance.myFunction()
myInterfaceInstance
мы присваиваем объект, используя ключевое слово object :
. 📱Неплохой ролик с обзором возможностей фреймворка Ultron
Ultron используется для тестирования Android UI и Compose
Некоторые из преимуществ Ultron:
⏩Исключительная поддержка Compose
⏩Готовая генерация отчета Allure
⏩Простой синтаксис
⏩Архитектурный подход к разработке UI-тестов
⏩Возможность легко расширять фреймворк своими собственными операциями
⏩Ускоренное выполнение операций в UI Automator
⏩Можно создавать кастомные assertion'ы
Выглядит довольно перспективно, можете затестить)
@android_its
💻 Хорошо разбираешься в Kotlin? Готов по полочкам разложить, чем он отличается от Java? Проверь свои знания на этих 10 вопросах
⏩Что из этого в настоящее время не поддерживается в Kotlin?
[x] JVM
[x] JavaScript
[x] LLVM
[_] .NET CLR
⏩Какое выражение Kotlin эквивалентно такому int x = a ? b : c
из Java?
[x] val x = a ?: b, c
[x] val x = if (a) b : c
[x] val x = a ? b : c
[_] val x = if (a) b else c
⏩Что применимо для следующего объявления класса?class Person (val name: String)
[x] Он package-private
[x] Он может быть расширен другими классами
[_] Он public
[x] У него приватное свойство "name"
⏩Есть ли у Kotlin примитивные типы данных, такие как int
, long
, float
?
[x] Нет, Kotlin не имеет и не использует примитивные типы данных.
[_] Нет, не на уровне языка. Но компилятор Kotlin использует примитивы JVM для лучшей производительности.
[x] Да, но Kotlin всегда конвертирует их в не примитивные аналоги.
[x] Да, Kotlin в этом отношении похож на Java.
⏩Что такое to
в этом ниже примере:val test = 33 to 42
[_] Инфиксная функция, создающая пару (33, 42)
[x] Ключевое слово Kotlin для создания пары (33, 42)
[x] Ключевое слово для создания диапазона от 33 до 42
[x] Опечатка
⏩Какое из объявлений функций является валидным?
[x] int sum(int a, int b)
[x] int sum(a: Int, b: Int)
[x] function sum(a: Int, b: Int): Int
[_] fun sum(a: Int, b: Int): Int
⏩В чем ключевое отличие Iterable<T>
и Sequence<T>
в Kotlin?
[x] Iterable<T>
работает только с immutable
коллекциями, Sequence<T>
применим к mutable
[x] Нет никакой разницы, т. к. Sequence<T>
аналог Iterable<T>
[_] Последовательности обрабатываются лениво, итераторы жадно
[x] Последовательности обрабатываются по очереди, итераторы параллельно (многопоточно)
⏩Чего не предлагает dataclass
?
[x] Авто-генерируемый метод toString()
[x] Метод copy(...)
, для создания копии экземпляров.
[_] Автоматическое преобразование из/в JSON
[x] Авто-генерируемые методы hashCode()
и equals()
⏩Что выведет следующий код?
val listA = mutableListOf(1, 2, 3)
val listB = listA.add(4)
print(listB)
[1, 2, 3, 4]
True
Unit
a
и b
?
var a: String? = "KotlinQuiz"
var b: String = "KotlinQuiz"
a
является volatile
, как в Javab
является final
и не может быть измененоa
является final
и не может быть измененоb
никогда не сможет стать null
📱Android Studio Iguana стала стабильной
✨ На днях Google выпустил Android Studio Iguana в канале стабильных релизов. Благодаря таким функциям, как поддержка системы контроля версий в App Quality Insights, новой встроенной поддержки создания базовых профилей для приложений Jetpack Compose, эта версия должна улучшить ваш рабочий процесс разработки и оптимизировать ваши приложения.
Среди новых функций Android Studio Iguana:
*️⃣Интеграция системы контроля версий в App Quality Insights
*️⃣Просмотр вариантов сбоев Crashlytics в App Quality Insights
*️⃣Проверка доступности и адаптивности дизайна Jetpack Compose
*️⃣Прогрессивный рендеринг для предварительного просмотра Compose
*️⃣Обновленная платформа Intellij
*️⃣Шаблоны для Baseline Profiles
*️⃣Проверка изменений конфигурации с Espresso Device API
*️⃣Pixel 8 и Pixel 8 Pro в Android Emulator (34.2)
*️⃣Поддержка Gradle Version Catalogs
*️⃣Интеграция Google Play SDK Index
*️⃣Предупреждение о неподдерживаемой compileSdk
⏩Загрузите Android Studio Iguana уже сегодня и воспользуйтесь новейшими функциями, которые оптимизируют ваш рабочий процесс и помогут создавать лучшие приложения.
@android_its
🖥 Compose Investigator — полезный инструмент для Android-разработчика
Compose Investigator может выполнять следующие задачи:
🔵сообщает, если Composable пропущен во время рекомпозиции
🔵сообщает, если аргументы составного элемента изменились и были перекомпонованы. Он также может сравнить значения до и после изменения
🔵сообщает, были ли изменены значения состояния внутри Composable. Также можно сравнить значения до и после изменения
🔵получает стек вызовов, ведущий к вызову Composable. Это помогает определить конкретный Composable, который перекомпонуется, когда один и тот же Composable используется повторно в нескольких местах
🖥 GitHub
@android_its
Old but gold: Android-разработка для новичков
Добротный материал с подборкой 20+ ресурсов для старта в карьере мобильного разработчика. Подборка хоть и 2023 года, но начинающим — самое то: https://habr.com/ru/companies/yandex_praktikum/articles/738638/
#android #начинающим
🖥 Гайл по Реврерс-инжинирингу Android-приложений
Apk.sh — это полезный Bash-скрипт, который облегчает реверс-инжиниринг Android-приложений, автоматизируя некоторые повторяющиеся задачи, такие как извлечение, декодирование, восстановление и исправление APK.
Он в использует apktool
для дизассемблирования, декодирования и восстановления ресурсов и немного bash для автоматизации процесса инъекции гаджетов frida.
Особенности
– патчинг APK для загрузки frida-gadget.so при запуске
– поддержка пакетов приложений/разделенных APK
– разборка ресурсов до почти оригинального вида с помощью apktool
– восстановление декодированных ресурсов обратно в бинарный APK/JAR с помощью apktool
– подпись apk с помощью apksigner
– поддержка нескольких архитектур (arm, arm64, x86, x86_64)
– не требуется рутованное Android-устройство
🔥 Дайджест полезных материалов из мира Android за неделю
Почитать:
— Flutter и ГОСТ TLS
— Трагические микрозаймы, украденные креды: какие Android-зловреды мы обнаружили в официальных маркетах
— Двигай рукой справа налево: адаптация интерфейса в Android приложении под RTL в XML и Jetpack Compose
— Создание кастомного React Native компонента Switch с помощью библиотек Reanimated и Gesture Handler (Часть 2)
— Как реализовать App shortcuts в Android
— Что ждёт мобильную разработку в 2024 году
— Собирательный образ Junior Android Developer. Какой он в 2024?
— Техническое собеседование инженеров мобильной разработки в RuStore
— Изи freestyle android приложения на Kivy (Python), Google collab и ваш не любимый ChatGPT
— Мобильная разработка за неделю #525 (5 — 11 февраля)
— A step-by-step tutorial in codelab format for Android UI testing
— Power your Flutter App with Gemini AI ✨
— Testing with Accessibility Scanner
— A bad and better unit test example for Android network layer with Retrofit | Video
— Should I update the Kotlin version of the Android app?
— Top 10 Healthcare App Development Tips & Tricks in 2024
— Efficient File Transfer from Android to Mac Using ADB
Посмотреть:
🌐 C# полный курс 2024. Урок 7 Условия (⏱ 15:06)
🌐 Телеграм бот приема заявок и рассылок! Огромный прирост подписчиков! (⏱ 17:10)
🌐 Запрещенный синтаксис #Python, за который вас уволят! (⏱ 00:50)
🌐 C# полный курс 2024. Урок 6: Ссылочные типы переменных c# (⏱ 05:42)
🌐 C# полный курс 2024. Урок 5: Переменные (⏱ 10:52)
🌐 C# полный курс 2024. Урок 8 Switch Case (⏱ 08:45)
🌐 Полное собеседование React разработчика 2024🧑🏻💻 (⏱ 01:09:44)
Хорошего дня!
@android_its
🤨Какую архитектуру выбрать — с единой или множеством Activity?
В постоянно развивающейся сфере разработки Android-приложений приходится принимать ответственные решения, определяющие пользовательский опыт и общую архитектуру приложения. Одним из таких решений является выбор структуры Activity — фундаментальных строительных блоков любого Android-приложения.
Перед разработчиками возникает дилемма: упрощенный подход с единой Activity (Single Activity), включающей множество Фрагментов, или разрозненная природа множества Activity (Multiple Activities), каждая из которых представляет собой отдельную часть функциональности приложения.
Выбор между одним или несколькими видами Activity сродни выбору чертежа дома: он оказывает существенное влияние на поток, сложность и масштабируемость приложения. Каждый подход имеет свои преимущества и недостатки, отвечает различным требованиям к приложениям и предпочтениям разработчиков. Как начинающие, так и опытные специалисты должны вдумчиво подходить к принятию решений, чтобы их приложения были не только надежными и эффективными, но и обеспечивали оптимальный пользовательский опыт.
В Android-разработке решение об использовании единой или множества Activity зависит от сложности и структуры приложения. У обоих подходов есть свои преимущества и варианты применения.
📌 Рассмотрим
🔥 Дайджест полезных материалов из мира Android за неделю
Почитать:
— Механизм экспорта растровых изображений в Figma: как изменяется качество изображения
— Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
— Мобильная разработка за неделю #517 (27 ноября — 3 декабря)
— Видео-сообщение как в Telegram. Часть третья — Контролы и раскрытое состояние
— Видео-сообщение как в Telegram. Часть вторая — Оптимизация
— Видео-сообщение как в Telegram. Часть первая — Список видео
— Diving into Kotlin .apply{} function
— My video on how I am organizing my Jetpack Compose code
— Implementing View Binding in Fragments with Nav Graph & RecyclerView in Android Studio using Kotlin: Comprehensive Tutorial
— Kotlin: Fungsi
— Entendendo RecyclerView de Uma Vez Por Todas
— Using Golang + Gomobile To Build Android Application (with code)
— Clean Architecture for Android MVI
— The architectural patterns I am using to better organize my Jetpack Compose code
Посмотреть:
🌐 Урок 8: setOnClickListener() - обработка нажатий, property access | Курс Android на Kotlin c нуля
🌐 Задача: Взлом замка на #Python (⏱ 01:00)
🌐 Операционные системы — Как это работает #10 (⏱ 01:18:16)
Хорошего дня!
Первый мобильный митап Тинькофф в Омске?
Да! И проведет команда его 14 декабря в пространстве «Рига-Москва». Для первой встречи с мобильными разработчиками ребята подготовили два крутых кейса:
— сначала расскажут про эффективность Redux в iOS-разработке на примере приложения Тинькофф Инвестиций;
— а после обсудят разработку приложений для синхронизации смартфона с другими устройствами.
После докладов останутся понетворкать с участниками.
📆 Tinkoff Mobile Meetup, 14 декабря, «Рига-Москва». Не забудьте зарегистрироваться и позвать с собой коллег.
erid:2VtzqwyPHWS
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Школа мобильной разработки: Android
1. My first app: вводная про платформу
2. Kotlin
3. Базовые компоненты
4. Views & Layout
5. RecyclerView
6. Background Часть 1
7. Background Часть 2
8. Network
9. Storage
10. DI
#video #android
https://www.youtube.com/watch?v=Xfaqnj1egFI&list=PLQC2_0cDcSKAVl_3u-3ZrEW2UFBUjDD97
🤖 Как создать приложение Android за 7 шагов
Создать первое Android-приложение не так сложно, как может показаться.
В этом руководстве мы поможем вам создать первое Android-приложение и запустить его на телефоне.
Android — это операционная система на базе ядра Linux, предназначенная для мобильных устройств с сенсорным экраном, таких как смартфоны, планшеты и смарт-часы.
Это технология с открытым исходным кодом, позволяющая производителям устройств, операторам беспроводной связи и разработчикам свободно изменять и распространять программное обеспечение.
Android был представлен в 2007 году вместе с основанием Open Handset Alliance (альянсом компаний по разработке открытых стандартов для мобильных устройств).
В нашей статье не будем углубляться в установку и настройку Android Studio и посчитаем что она уже установлена.
Создаем приложение Android
Шаг 1. Дважды кликните на программу “Android Studio”.
Шаг 2. Кликните “New Project”.
Шаг 3. Выберите “Empty Activity”
📌 Далее
🔥 Дайджест полезных материалов из мира Android за неделю
Почитать:
— Kotlin под капотом: нюансы использования аннотаций
— Пишем Kotlin DSL для графов навигации в домашних условиях
— Дайджест мобильной разработки за октябрь
— Статический анализатор Ktlint для Kotlin в Android
— Большая дыра в безопасности Android: почему смартфоны с зеленым роботом подвержены кражам?
— Мобильная разработка за неделю #515 (13 — 19 ноября)
— Saving Simple Data in Android - SharedPreferences and DataStore APIs
— Gestures in Jetpack compose — All you need to know – Part-2
— Firebase and Kotlin: A Dynamic Duo for Modern App Development
— 100% Flakiness-free UI test automation with Kaspresso and Allure TestOps
— Difference between “𝐈𝐧𝐯𝐚𝐥𝐢𝐝𝐚𝐭𝐞 𝐂𝐚𝐜𝐡𝐞𝐬 and 𝐑𝐞𝐩𝐚𝐢𝐫 𝐈𝐃𝐄 in Android Studio”?
— 💥Ini Caraku Meredirect User ke Aplikasi Android
— Painless building of an Android package installer app
— Downloading Files using Work Manager
— Muay Thaideas: A Roundhouse Kickstart
— Point, Shoot, and Detect: Object Detection with PyTorch Mobile
Посмотреть:
🌐 Эти фишки сделают твой Python код лучше🔥 (⏱ 18:27)
🌐 Мыслим как Platform Engineer — Дмитрий Кузнецов, Тинькофф (⏱ 29:45)
Хорошего дня!
🔥 Дайджест полезных материалов из мира Android за неделю
Почитать:
— Погружение в Smali. Как выглядят Java и Kotlin со стороны
— Как сделать автотесты гибкими и лаконичными
— Защита кода приложения Android. Когда хотели как лучше, а вышло не очень
— Сквозь дебри разработки, или как я пытался написать приложение
— Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости
— Разделение презентационного слоя фичи на модули в Android приложении
— Как подружить JUnit 5 и Robolectric?
— Как моя 9-месячная дочь заработала больше 1000 долларов в программе bug bounty
— Приложение для мобильных бригад: «толстый клиент» и полмиллиона строк кода
— Менеджер паролей SmallKey
— Flutter's Provider: The Superhero of State Management! 🦸♂️🚀
— Evolution of Android Development: a short summary
— React Native e permissão para salvar arquivos com Android 13
— How to Add Content Descriptions in Compose - A Guide for Android Devs
— Object Relationships in Room ORM Library for Android
— All You Need To Know About Modal Navigation Drawers In Jetpack Compose
— do anyone know
— Kotlin: Var dan Val
— UI Components in React Native
— Swift for Android: How to use Swift-Crypto with Android Studio
Посмотреть:
🌐 Пишем генератор Shorts видео на Python для заработка на YouTube. (⏱ 11:50)
🌐 Озвучка и генерации контента с помощью #Python и AI (⏱ 00:44)
🌐 Замена лица на любой фотографии с помощью #python БЕСПЛАТНО! (⏱ 00:59)
🌐 Android Storage. Обзор инструментария — Филипп Майдуров, Тинькофф (⏱ 30:24)
Хорошего дня!
🖥 Package Search — крутой плагин для поиска библиотек для Java и Kotlin прямо из редактора.
По умолчанию он поддерживает поиск в следующих менеджерах пакетов: Maven, Gradle и Amper.
📌 Github
@android_its
📱 Apple пообещала упростить перенос данных с iPhone на Android-устройства в ЕС к осени 2025 года
Apple намерена упростить переход с iPhone на Android-устройства в соответствии с требованиями Закона о цифровых рынках ЕС, который уже вступил в силу.
Производитель изложил свой план относительно соблюдения нового закона ЕС в документе. Новое положение направлено на усилении конкуренции в экосистеме приложений и требует от Apple ослабления контроля над App Store и iOS.
Мера Apple должна помочь поставщикам других операционных систем создать более эффективные решения для передачи данных с iPhone на смартфон стороннего производителя. Корпорация не использует в документе название Android, однако мобильная ОС Google получит наибольшую выгоду от нововведения.
В конце 2024 года или начале 2025 года Apple также представит инструмент для экспорта данных браузера в новый браузер на том же устройстве.
В настоящее время пользователи Android могут использовать iOS-приложение — Switch to Android
— для переноса важных данных, включая контакты, календари, фотографии, видео, сообщения и многое другое. Однако некоторые менее важные данные по-прежнему нельзя экспортировать.
@mobdevelop
📱Советы по Android-разработке
Узнали у middle и senior разработчиков, что нужно учить каждому Android-разработчику. Спросили, какие фреймворки, библиотеки и инструменты безнадёжно устарели, а какие актуальны.
〰️ Какие библиотеки, инструменты, фреймворки Android уже устарели?
Андроид развивается очень динамично, поэтому, многое из того, что было популярно 5 лет назад уже не используется.
Конечно же сразу приходит на ум RxJava, про нее был каждый второй доклад на любой конференции 5-6 лет назад. А теперь ее изредка спрашивают на собеседованиях. На замену ей пришли Kotlin Coroutines.
Java как язык разработки под андроид остался, наверное, только в каких-то старых проектах-динозаврах. Kotlin это новый стандарт уже лет 6.
С появлением Jetpack Compose UI код использующий стандартные Android Views стал легаси. Многие приложения сейчас Compose First, и все новые фичи тоже разрабатываются на Compose.
Архитектура презентационного слоя так же изменилась, всё меньше можно увидеть MVP, а MVVP и MVI стали де факто стандартами разработки.
〰️ Какие библиотеки Android нужно знать в 2024 году?
Если мы возьмем более менее стандартное приложение со стандартными подходами, то наверняка там будут эти библиотеки: Retrofit 2, Dagger2/Hilt, Kotlin Coroutines, Jetpack ViewModel, Room, Lifecycle. Но стоит помнить, что библиотеки приходят и уходят, а фундаментальные знания остаются. Человеку, освоившему фундамент будет гораздо легче освоить какую-либо библиотеку.
〰️ Какие фреймворки Android нужно знать в 2024 году?
В Андроид немного фреймворков, наверное главный и самый нашумевший в последнее время это Jetpack Compose. Так же стоит знать архитектурные подходы MVI/MVVM, MVP, плюсы и минусы их работы.
〰️ Какие инструменты Android нужно знать в 2024 году?
Швейцарский нож Android разработчика в 2024 это Kotlin, Kotlin Coroutines, Jetpack Compose, MVVM/MVI, Google Jetpack Libraries, REST, Single Activity, Dagger 2, Retrofit 2. Зная этот стек можно будет легко разобраться в 95% приложений.
@android_its
🖥 𝗧𝗲𝘀𝘁𝗚𝗲𝗻-𝗟𝗟𝗠 для написания тестов Kotlin 💻
Meta разработала 𝗧𝗲𝘀𝘁𝗚𝗲𝗻-𝗟𝗟𝗠 — инструмент, использующий 2 LLM Meta, для дополнения существующих тестовых классов Kotlin для кода Android.
Цель 𝗧𝗲𝘀𝘁𝗚𝗲𝗻-𝗟𝗟𝗠 — генерировать дополнительные тестовые случаи, охватывающие ранее пропущенные сценарии, и улучшить общее покрытие тестами.
TestGen-LLM представляет собой пример гарантированной автономной разработки программного обеспечения на основе LLM (Assured Offline LLMSE), сфокусированной на внедрении LLM в более широкий рабочий процесс разработки программного обеспечения, чтобы рекомендовать комплексные улучшения программного обеспечения (и чтобы со временем заменить всех и захватить мир)
TestGen-LLM гарантирует, что сгенерированные тестовые классы не только корректно построены, но и надежно проходят все тесты, не внося ненужной "шелухи", и улучшают покрытие.
Это отличает TestGen-LLM от других методов генерации кода и тестов на основе LLM.
📁Подробнее можно ознакомиться в этой статьей Arxiv
@android_its
🖥 Некоторые подробности о 1 предварительной версии Android 15 для разработчиков
Проект доступен только на смартфонах и планшетах Pixel (6/6 Pro/6a/7/7 Pro/7a/Tablet/Fold/88 Pro). Также Developer Preview можно протестировать через эмулятор Android Studio.
Обновления в Android 15 Developer Preview 1:
🔵регулировка яркости в панели быстрых настроек теперь работает с тактильной отдачей при перемещении ползунка;
🔵можно отключить виброотклик при работе с виртуальной клавиатурой;
🔵функция «Снижение громкости уведомлений» для приложений, которые присылают много оповещений подряд;
🔵появились новые варианты взаимодействия с программной платформой на устройствах с гибким дисплеем;
🔵внесен ряд оптимизаций для снижения энергопотребления ресурсоемких приложений; повышена энергоэффективность для приложений, долго работающих в фоновом режиме;
🔵новая версия Privacy Sandbox для ограничения работы приложений с таргетированной рекламой;
🔵новая объединенная платформа Health Connect, FileIntegrityManager с fs-verity в ядре Linux (криптошифрование для защиты данных);
🔵теперь можно демонстрировать только экран приложения, а не всего интерфейса устройства;
🔵различные улучшения для разработчиков.
Процесс тестирования Android 15 разбит на три этапа: Developer Preview — два релиза (в феврале и марте); Beta — два релиза (в апреле и мае); Platform Stability — два релиза (в июне и июле).
Финальная версия Android 15 выйдет в конце лета или начале осени 2024 года, подробнее почитать можно [тут] и [тут]
@android_its
Новый Compose урок по анимации
Рассматриваем доступные нам AnimationSpec: tween, spring, keyframes, repeatable. Там в целом и так все понятно, но пропустить эту тему я не мог.
Плюс, довольно подробно разбираем, что такое Easing в tween. И создаем свою несложную реализацию этого механизма.
#android #course #compose
https://startandroid.ru/ru/courses/compose.html
🖥Oblivion - Unofficial Warp Client for Android
Oblivion обеспечивает безопасный, оптимизированный доступ в интернет через приложение для Android, написанное на Java с использованием технологии cloudflare warp.
Используя bepass-sdk
и WireGuard
, инструмент предназначен для быстрого и конфиденциального доступа в интернет.
▪Github
@javatg
⚡️ PCAPdroid
PCAPdroid - это приложение на Android с открытым исходным кодом, которое позволяет отслеживать и экспортировать сетевой трафик вашего устройства.
— Приложение имитирует VPN для захвата без полномочий root, но, в отличие от VPN, трафик обрабатывается локально на устройстве.
👉 Ссылка на GitHub
👨💻 Изучаем чистую архитектуру Flutter на практике
Архитектура приложений в разработке — это как план здания, который помогает понять, куда и как всё должно быть устроено. Главная её задача — разделить разные части работы, чтобы можно было удобнее работать по частям.
Если говорить про Flutter, хорошая архитектура позволяет держать отдельно логику приложения от того, что связано с телефонами и компьютерами, например, от экранов и кнопок. Это также делает тестирование кода проще, потому что можно проверять каждую часть по отдельности.
⏳ Содержание:
00:00 Введение
03:44 Добавление пакетов и создание структуры папок
06:33 Определение классов сущностей
09:05 Создание классов и моделей репозитория
11:27 Создание запросов к API с помощью Retrofit
14:40 Варианты использования
17:54 Создание блока
21:16 Инъекция зависимостей
24:32 Отображение новостей
29:20 Локальная база данных
33:39 Добавление методов базы данных в слои
36:45 Сохранение и удаление статьи из базы данных
#полезное
👣 google / comprehensive-rust: Это курс по Rust, используемый командой Android в Google. В нем вы найдете материал для быстрого обучения Rust.
https://github.com/google/comprehensive-rust
🦔 Попробуйте Android Studio Hedgehog одна из лучших IDE для разработки Android-приложений!
Что вас ждет?
🪲 Составление информации о состоянии в отладчике
💎 Показатели Android в App Quality Insights
🔼 Помощник по обновлению Android 14
Узнайте больше → https://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html
Добро пожаловать в мир SberAutoTech, где мы не просто разрабатываем беспилотную технологию и собственную электронику, а создаём завтра уже сегодня. Мы растём, расширяемся и не планируем останавливаться.
Вы ищете новые вызовы? У нас вы сможете развивать технологию автономного вождения и беспилотные транспортные средства, создавать автомобильную ОС для комфортных и безопасных поездок и целую экосистему сервисов для автономного транспорта. Вы стремитесь к развитию? Амбициозные задачи и проекты будут сопровождать вас каждый рабочий день. Возможности здесь, как и будущее — безграничны!
Наш секрет — гибкость стартапа в сочетании с поддержкой экосистемы. Здесь идеи и устремления каждого сотрудника не просто приветствуются, а востребованы. С нами вы получите не только интересные задачи, но и комфортное место для реализации задуманного, полный социальный пакет и достойный доход.
Давайте встретимся в мире инноваций и возможностей. Откликайтесь на вакансии и не упустите шанс — будущее уже здесь!
✨10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году
Рассмотрим 10 экспертных рекомендаций по использованию Flutter, которые помогут разработчикам усовершенствовать свои навыки и создавать еще более качественные мобильные приложения в 2023 году.
1. Горячая перезагрузка
Максимально используйте во Flutter функцию Hot Reload (горячая перезагрузка). Эта функция позволяет ускорить цикл разработки и сэкономить значительное количество времени при работе над новыми проектами.
2. Стабильный канал Flutter
Чтобы воспользоваться преимуществами последних стабильных функций и исправлений, убедитесь в том, что подключены к стабильному каналу Flutter.
3. Организация исходного кода
Организация кода во Flutter играет ключевую роль в обеспечении производительности, эффективности и сопровождаемости.
4. Генераторы кода
Генераторы кода Flutter позволяют упростить написание и сопровождение кода.
5. Dart DevTools
Dart DevTools — это надежный набор инструментов для отладки и оптимизации производительности на Flutter.
6. Виджеты Flutter с поддержкой жестов
Flutter включает широкий набор виджетов, позволяющих создавать привлекательные и отзывчивые пользовательские интерфейсы.
7. Отзывчивый дизайн
Отзывчивый дизайн во Flutter необходим для создания пользовательских интерфейсов (UI), адаптивных к различным размерам и ориентациям экрана. Для этого Flutter предоставляет такие инструменты, как LayoutBuilder и MediaQuery.
8. Анимированные виджеты
Анимированные виджеты Flutter позволяют разработчикам включать в мобильные приложения анимацию, повышая общий уровень взаимодействия пользователя с приложением.
9. Макеты Flutter
С помощью макетов Flutter можно создавать несколько видов макетов приложений — от простых до сложных.
10. Android Studio
Android Studio для работы с Flutter предлагает множество эффективных расширений, позволяющих сэкономить время разработчиков и повысить производительность. Это интегрированная среда разработки (IDE), которая предоставляет программистам доступ к широкому набору инструментов, повышающих уровень комфорта при создании сложных приложений.
📌 Подробнее
🤖 Как с легкостью создать установщик пакетов Android
Иногда требуется установить приложение на устройство не как пользователю, а как разработчику другого приложения. Возможно, вашему приложению, будь то магазин приложений или файловый менеджер, требуется самообновление, а вы его не опубликовали на Play Store. В любом случае вы обратитесь к стандартизированным интерфейсам (API) Android SDK, обеспечивающим установку APK (Android Package Kit). Но, как известно, Android-интерфейсы часто оказываются довольно трудоемкими в использовании.
Возьмем, к примеру, установку APK. Если вы вынуждены поддерживать версии Android ниже 5.0, то для разных версий Android придется использовать разные API: PackageInstaller для версий от 5.0 или какой-нибудь Intent с действием установки.
Способ Intent.ACTION_INSTALL_PACKAGE
Intent довольно прост в использовании. Достаточно создать его, запустить Activity для получения результата и обработать возвращенный код. Вот как обрабатывается установочный intent с помощью API AndroidX Activity Result:// регистрация лаунчера в Activity или Fragment
val installLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
val isInstallSuccessful = result.resultCode == RESULT_OK
// затем проводятся действия в зависимости от полученного результата
}
// запуск intent, например, при нажатии на кнопку
val intent = Intent().apply {
action = Intent.ACTION_INSTALL_PACKAGE
setDataAndType(apkUri, "application/vnd.android.package-archive")
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true)
putExtra(Intent.EXTRA_RETURN_RESULT, true)
}
installLauncher.launch(intent)
Не забудьте объявить разрешение на установку в AndroidManifest:
Читать