Forwarded from Мобильная разработка
Apple намерена упростить переход с iPhone на Android-устройства в соответствии с требованиями Закона о цифровых рынках ЕС, который уже вступил в силу.
Производитель изложил свой план относительно соблюдения нового закона ЕС в документе. Новое положение направлено на усилении конкуренции в экосистеме приложений и требует от Apple ослабления контроля над App Store и iOS.
Мера Apple должна помочь поставщикам других операционных систем создать более эффективные решения для передачи данных с iPhone на смартфон стороннего производителя. Корпорация не использует в документе название Android, однако мобильная ОС Google получит наибольшую выгоду от нововведения.
В конце 2024 года или начале 2025 года Apple также представит инструмент для экспорта данных браузера в новый браузер на том же устройстве.
В настоящее время пользователи Android могут использовать iOS-приложение —
Switch to Android — для переноса важных данных, включая контакты, календари, фотографии, видео, сообщения и многое другое. Однако некоторые менее важные данные по-прежнему нельзя экспортировать.@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🤮1
Ultron используется для тестирования Android UI и Compose
Некоторые из преимуществ Ultron:
Выглядит довольно перспективно, можете затестить)
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1
По умолчанию он поддерживает поиск в следующих менеджерах пакетов:
Maven, Gradle и Amper.
📌 Github@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
val myInterfaceInstance = object : MyInterface {
override fun myFunction() {
// Ваш код здесь
}
}
myInterfaceInstance.myFunction()Здесь переменной
myInterfaceInstance мы присваиваем объект, используя ключевое слово object :. Далее указываем название интерфейса, а затем в фигурных скобках представляем реализацию необходимых функций с помощью переопределения.
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
Годная инфа для Android- и мобильных разрабов в целом
В этой таблице собраны особенности магазинов приложений, полезно учитывать при деплое
📎 А вот полезная статья в тему про деплой Flutter-приложений
@android_its
В этой таблице собраны особенности магазинов приложений, полезно учитывать при деплое
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
Delegate:class MyString {
fun myPrint(text: String) {
println(text)
}
}MyString с методом myPrint(). Допустим нам надо сделать собственное расширение printRealExt() без использование встроенных в Kotlin возможностей:fun MyString.printRealExt(text: String) {
println(text)
}interface ExtensionPrint {
fun printExt(text: String)
}
class ExtensionPrintImpl : ExtensionPrint {
override fun printExt(text: String) {
println(text)
}
}Delegation делегируем этот метод:class MyString : ExtensionPrint by ExtensionPrintImpl() {
fun myPrint(text: String) {
println(text)
}
}val myString = MyString()
myString.printRealExt("Real ext")
myString.printExt("Text from ext")
interface OneClassInterface {
fun someOne()
}
class OneClassImpl : OneClassInterface {
override fun someOne() {
println("some One")
}
}
interface TwoClassInterface {
fun someTwo()
}
class TwoClassImpl : TwoClassInterface {
override fun someTwo() {
println("someTwo")
}
}
class DerivedClass : OneClassInterface by OneClassImpl(), TwoClassInterface by TwoClassImpl()@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥1
interface MyInterface {
fun myFunction()
}
class MyClass : MyInterface {
override fun myFunction() {
println("Пришло время действовать!")
}
}
val myObject = MyClass()
myObject.myFunction()Помните: определите класс, который должен реализовывать интерфейс, а затем инициализируйте класс, создав его экземпляр.
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
val myInterfaceInstance = object : MyInterface {
override fun myFunction() {
// Ваш код здесь
}
}
myInterfaceInstance.myFunction()В данном примере переменной
myInterfaceInstance мы присваиваем объект, используя ключевое слово object :Далее указываем название интерфейса, а затем в фигурных скобках представляем реализацию необходимых функций с помощью переопределения.
Интерфейс с одним абстрактным методом (SAM) в Kotlin может быть представлен лямбдой. Котлин предлагает более лаконичную запись для интерфейсов с единственным методом:
fun interface MySAMInterface {
fun myAction()
}
val myInterfaceInstance = MySAMInterface {
println("Смотрите, мама, я пишу код без использования рук!")
}
myInterfaceInstance.myAction()Здесь для сокращения записи при создании анонимного экземпляра используется лямбда-выражение. Не забывайте, что SAM-преобразования доступны лишь для интерфейсов, имеющих только один абстрактный метод.
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥1
Android 15 Developer Preview 2!
Google выпустили предварительную сборку Android 15 Developer Preview 2.
🔸 Добавлен интерфейс для работы с спутниковой связью. Теперь Android 15 поддерживает обмен сообщениями SMS, MMS и RCS через спутник.
🔸 Новый раздел - "Передача аудио". Предполагается, что пользователь сможет передавать звук через Bluetooth одновременно на несколько наушников и динамиков с поддержкой Bluetooth. Однако на данный момент эта функция не работает.
🔸 "Режим веб-камеры" теперь поддерживает режим HQ-качества изображения.
🔸 Обнаружение записи экрана. Теперь, если приложение записывает ваш экран, вы получите уведомление об этом.
🔸 В разделе "О приложении" появилась функция "Отправить в архив". Архивация позволяет освободить до 60% пространства, сохраняя личную информацию.
Более подробную информацию о других изменениях можно найти в блоге Google. Заводские образы доступны по ссылке (начиная с Pixel 6).
https://developer.android.com/about/versions/15/download
@android_its
Google выпустили предварительную сборку Android 15 Developer Preview 2.
🔸 Добавлен интерфейс для работы с спутниковой связью. Теперь Android 15 поддерживает обмен сообщениями SMS, MMS и RCS через спутник.
🔸 Новый раздел - "Передача аудио". Предполагается, что пользователь сможет передавать звук через Bluetooth одновременно на несколько наушников и динамиков с поддержкой Bluetooth. Однако на данный момент эта функция не работает.
🔸 "Режим веб-камеры" теперь поддерживает режим HQ-качества изображения.
🔸 Обнаружение записи экрана. Теперь, если приложение записывает ваш экран, вы получите уведомление об этом.
🔸 В разделе "О приложении" появилась функция "Отправить в архив". Архивация позволяет освободить до 60% пространства, сохраняя личную информацию.
Более подробную информацию о других изменениях можно найти в блоге Google. Заводские образы доступны по ссылке (начиная с Pixel 6).
https://developer.android.com/about/versions/15/download
@android_its
👍6🔥2❤1
Держите хорошее объяснение отличий между 2 этими понятиями.
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1
— «В компании Infobip с 2017 года и до сегодняшнего дня идет золотой век Kotlin. Будет ли он продолжаться, зависит исключительно от JetBrains и их способности внедрять инновации в Kotlin»
Полезная статья, в которой затрагиваются важные вещи, автор рассуждает о том, почему одни технологии сменяют другие, почему взлетевшие Scala и Groovy не так популярны сегодня и т.д.
Разбираются достоинства и недостатки Kotlin:
— Интероперабельность с Java
— Корутины
— Структура данных и сопоставление шаблонов
— Работа с Null
— Другие особенности
— Интероперабельность с Java
— Экосистема Kotlin
— Рабочая сила
— Отсутствие прогресса
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2👎2🔥1
Scout — это библиотека, появившаяся как результат большого количества проб и ошибок. Пет-проекты с кастомными DI-контейнерами. Изучение каждого нового DI-фреймворка, который появлялся в комьюнити.
Держите полезную статью о том, как Scout создавалась и какие проблемы может решать.
Вот ещё некоторые факты из статьи:
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1🔥1
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2❤1
.not() и ! в KotlinМы довольно часто используем оператор
.not(), поскольку это более читабельно, чем !.Но есть одна вещь, которую оператор
.not() не может сделать — поглядите: myEvents?.forEach { myEvent ->
if (!myEvent.events.isNullOrEmpty()) {
myEvent.events.find { it.type == eventType }
}
if (myEvent.events.isNullOrEmpty().not()) {
myEvent.events.find { it.type == eventType }
}
}Как-то так
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2