
- Главная
- Каталог
- Интернет технологии
- Библиотека мобильного разработчика
Библиотека мобильного разработчика
Полезные материалы по всему, что может быть интересно мобильному разработчику.
Статистика канала
Если вы разрабатываете на Kotlin, то наверняка сталкивались с кодогенерацией через аннотации: Dagger/Hilt для DI, Room для БД, Moshi для JSON. Это экономит время, но долгое время для этого приходилось использовать KAPT — медленный и не всегда адекватно понимающий Kotlin-фичи инструмент.
На смену ему пришёл Kotlin Symbol Processing (KSP). Он работает напрямую с кодом Kotlin, обещая ускорение сборки вдвое, полную поддержку возможностей языка и мультиплатформенность.
#свежак #Kotlin
Расскажите о Data классах. Какие преимущества они имеют?
Основное преимущество: для параметров, переданных в основном конструкторе автоматически будут переопределены методы toString(), equals(), hashCode(), copy().
Также для каждой переменной, объявленной в основном конструкторе, автоматически генерируются функции componentN(), где N — номер позиции переменной в конструкторе.
Благодаря наличию вышеперечисленных функций внутри data класса мы исключаем написание шаблонного кода.
#междусобойчик #Kotlin
Собрали лучшее о мобильной разработке. Включаем и смотрим по пути на работу.
#буст
Давайте обсудим методы отладки, которые используют Senior iOS-разработчики.
Утверждения (Assertion) используются для обнаружения логических ошибок во время разработки. В проде они отключены, чтобы избежать влияния на производительность приложения.
Давайте разберемся на примере;
func calculateSquare(x:Double) -> Double {
assert(x != 0, "Number cannot be zero")
return x*x
}
Здесь мы добавили оператор
assert, который проверяет, не равен ли x нулю — если это так, приведенный выше код не будет выполнен, и во время разработки будет выдана ошибка.Это позволяет обнаружить ошибку на этапе разработки.
Swift предлагает различные литералы, которые действительно полезны для отладки. Среди них особенно полезны
#file, #line, #column и #function.#file указывает имя файла#line указывает номер строки#column указывает имя столбца#function указывает имя функцииДавайте сначала создадим функцию, которая будет записывать эту информацию в лог:
func log(_ message: String,
file: String = #file,
function: String = #function,
line: Int = #line) {
print("[\(file):\(line)] \(function) — \(message)")
}
Мы создали функцию логирования, которая записывает дополнительную информацию.
Давайте используем эту функцию примерно так:
func processUserInput(_ input: String) {
guard input != "error" else {
log("Invalid user input")
return
}
print("User input processed successfully: \(input)")
}
processUserInput("hello")
//output
`Error: Invalid user input, file:
.../main.swift, line: 19, function: processUserInput(_:)`
Как видите, мы использовали функцию логирования в
processUserInput для записи дополнительной информации.CustomDebugStringConvertibleCustomDebugStringConvertible — это протокол, который улучшает процесс отладки, позволяя нам определять пользовательское текстовое представление наших типов.Предположим, у нас есть структура
User:struct User {
let name: String
let age: String
let role: String
}
let user = User(name: "Jayant Kumar", age: 26, role: "Super Admin")
При логировании объекта пользователя мы можем получить не тот формат, который хотели бы:
print(String(reflecting: user))
// output
// `User(name: "Jayant Kumar", age: 26, role: "Super Admin")`
Для настройки вывода мы будем использовать протокол
CustomDebugStringConvertible:extension User: CustomDebugStringConvertible {
var debugDescription: String {
"""
User Information:
User: \(name) \
[Role: \(role), Age: \(age)]
"""
}
}
Здесь мы определяем расширение класса
User, которое соответствует типу CustomDebugStringConvertible и обеспечивает желаемый кастомный вывод.Теперь, когда мы печатаем объект
User, будет отображаться именно тот вывод, который вы хотите использовать.Функция
dump() в Swift предоставляет подробный обзор свойств и их содержимого. Она используется для отладки сложных структур данных.Это расширенная версия оператора
print, которая выводит не только сам экземпляр, но и его подкомпоненты и вложенные свойства.Рассмотрим ситуацию, когда мы работаем с вложенной структурой данных:
struct User {
var name: String
var age: Int
var address: Address
}
struct Address {
var street: String
var city: String
var zipCode: Int
}
let user = User(
name: "Jayant Kumar", age: 26,
address: Address(
street: "Block K",
city: "New Delhi", zipCode: 110088)
)
dump(user)
В приведенном выше примере вызов функции
dump(user) выведет подробную информацию об объекте User, включая имя, возраст и вложенный объект Address со всеми его свойствами.#буст #Swift
Компания Apple сегодня подтвердила приобретение израильского стартап Q.аi, занимающегося разработкой технологий искусственного интеллекта для аудио.
По данным источников, цитируемых Financial Times, Apple заплатила за Q.аi около 2 миллиардов долларов. Это вторая по величине сделка Apple за всю историю после покупки популярного бренда наушников и аудиотехники Beats за 3 миллиарда долларов в 2014 году.
Согласно Financial Times, Q.аi разработала технологию, которая может «анализировать выражения лица» для понимания «беззвучной речи».
«Патенты, поданные Q.аi, показывают, что ее технология используется в наушниках или очках, используя «микро-движения кожи лица» для общения без слов», — говорится в отчете, добавляя, что это может проложить путь к «невербальному общению» с Siri.
Генеральный директор Q.аi Авиад Майзельс ранее основал другой израильский стартап, PrimeSense, который также был приобретен Apple в 2013 году. Apple использовала технологию PrimeSense для разработки Face ID, дебютировавшего на iPhone X в 2017 году.
Команда основателей Q.аi, включая Майзельса, Йонатана Векслера и Ави Барлию, присоединится к Apple.
Глава подразделения Apple по производству процессоров Джонни Сруджи в заявлении для Reuters охарактеризовал Q.аi как «замечательную компанию, которая внедряет новые и креативные способы использования обработки изображений и машинного обучения». «Мы очень рады приобретению компании, возглавляемой Авиадом, и еще больше воодушевлены тем, что нас ждет впереди».
#свежак #iOS
Звучит дико, но локальный бизнес до сих пор не знает, где искать разработчиков. Пока все воюют за заказы на биржах, ты можешь стать единственным айтишником в радиусе 5 км, который предложил помощь. Плюс еще 8 способов найти первых клиентов без бесконечных откликов в никуда.
#свежак
Отзывы канала
всего 2 отзыва
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Библиотека мобильного разработчика — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 9.4K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 9.3, количество отзывов – 2, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 20559.42 ₽, а за 9 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий