Обновить
63
0
Анна Жаркова@anioutka

Lead mobile developer в Usetech, Kotlin GDE

Отправить сообщение

WWDC 2025. Чем Apple ответит Google, и что нас ждет

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели1.8K
image

Всем привет! С вами снова я, Анна Жаркова, руководитель мобильной практики компании Usetech. Буквально только что прошел основной кейноут WWDC 2025 от Apple, анонсированы основные тематические сессии, и пришло время обсудить, какие же основные тренды iOS разработки нас ожидают, чему мы будем учиться, какие практики осваивать и про что слушать и смотреть доклады на мероприятиях. Сессии можно найти на портале. Обратите внимание, что на сайте изменилось оформление, и сессии разбиты сразу по темам. Непонятно, это часть сессий, или Apple решили опубликовать все сразу, как делает Google, но они явно решили отойти от прежнего подхода.

Итак, что же нового нам представили.
— дизайн-систему Liquid Glass (ответ Expressive Material Google),
— расширенный функционал виджетов и Live Activity,
— мощный iPad OS с поддержкой многооконных приложений, панелью меню, как у MacOS, с портированными приложениями для MacOS,
— улучшения для VisionOS и пространственных вычислений,
— расширенная поддержка и улучшения других устройств экосистемы Apple, включая часы и машины,
— умные функции систем Visual Intelligence и Apple Intelligence совместно с ChatGPT,
— особое внимание перформансу и фоновым задачам (включая iPad OS)
и многое другое, например, улучшения для разработки игр, TVOS и разные библиотеки для отслеживания показателей здоровья.

Самим громким нововведением стали не доработки по AI, а дизайн-система Liquid Glass (не трогаем ассоциации). Новый «стеклянный эффект» получил UI всех устройств экосистемы Apple. Полупрозрачные иконки со свечением, особая анимация и механика движения у многих ассоциируются и с Windows Vista, и с Material Design:
image
Информация по работе с новой дизайн-системой включена практически во все видео тематической недели.
Другим новинкам API разработки и Xcode было посвящено на кейноуте относительно немного времени. По традиции, вся информация будет именно в сессиях.
Читать дальше →

Google I/O 2025. Что нового в Android

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели2.4K
image

Всем привет! С вами Анна Жаркова, руководитель практики по мобильному направлению из компании Usetech. Прошли 2 дня Google I/O и живых сессий и воркшопов, новинки уже представлены, не все туториалы и плейлисты еще не выложены, но у нас уже есть, что обсудить. Поговорим мы не с AI, хотя про него сегодня тоже будет, а об Android. Все аспекты мы затронуть не сможем, все-таки информации было очень много, а по каждой из новинке можно писать и отдельную статью, и даже доклад. Поэтому рассмотрим наиболее яркие моменты.
Читать дальше →

В ожидании Google I/O 2025

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели875
image

Всем привет! С вами руководитель практики по мобильной разработке ГК Usetech Анна Жаркова. Уже совсем немного осталось до одного из основных IT-событий года Google I/O. Как обычно, мы все в нетерпении узнать, какие же новинки технологий представит нам компания Google, какие тренды ждут нас, и что будет с Android, KMP и Flutter, а также наработками по AI.

В этом году Google выделили 4 основных направления сессий и докладов:
— AI
— Android
— Cloud
— Web.

KMP и Flutter в этом году посвящено меньшее количество сессий, и они выступают подтемами Android и AI секций. Как мы помним, обычно публикуются целые плейлисты образовательных туториалов сверх заявленного, поэтому, возможно, что-нибудь новенькое по Kotlin, KMP и KSP мы все-таки увидим. Особенно с учетом выхода Compose Multiplatform в стабильную фазу.

Чтобы не запутаться, всегда начинайте с сессий «What's new in» (Что нового в <технологии>). В них обычно рассказывают про основные новости технологий и направлений, а также дают сноски на те видео, где вы можете узнать более подробно про интересующий вас аспект.

AI

Уже который год многие считают, сколько раз слово «AI» произносится за мероприятие. В этом году, вероятно, прошлый рекорд будет побит. На Google I/O 2024 представили довольно много инструментов и новинок для практического использования искусственного интеллекта в разработке. Была представлена улучшенная модель Gemini (бывший Bard), различные SDK на ее основе для внедрения «умных функций» в свои приложения, а также «умные» приложения Android от Google с поддержкой генерации различного контента и «пониманием» запросов (Gmail, Google Photo, поиск, Google Meet и т.п).
Читать дальше →

Подключаем GigaCode к мобильной разработке

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели11K


Всем привет! С вами Анна Жаркова, руководитель группы разработки в компании Usetech. Сегодня я вам принесла необычный материал. 27 июня 2024 года для сторонних разработчиков открыли и презентовали российскую среду разработки Giga IDE со встроенным ИИ-ассистентом от «Сбера» и «СберТеха». Заявлено, что встроенный в среду ИИ-ассистент GigaCode анализирует контекст, предлагает полные конструкции функций, циклов и других элементов, что позволяет писать код в среднем на 25% быстрее. Ассистент поддерживает как автокомплит кода, так и интеллектуальные подсказки для ввода, генерацию кода для поддерживаемых язык. Также его можно использовать для выполнения разных команд.

Мы посмотрим, как подключить, настроить и применить GigaCode AI к мобильной разработке.
Для начала нам потребуется скачать специальную IDE GigaCode . Нам предложит перейти на ресурс GitVerse (аналоги GitHub, полностью совместим с Git), где потребуется создать аккаунт и авторизоваться через СберID:


Читать дальше →

WWDC 2024. Обсуждаем, что по факту

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.2K


Всем привет! С вами снова я, Анна Жаркова, руководитель группы разработки в ГК Usetech. 10 июня прошел долгожданный Keynote WWDC 2024. Прошел и оставил после себя легкий флер разочарования. Заявлено было много, показано много. Какие-то новинки (например, функция Mirroring для трансляции изображения и звука с iPhone на десктоп) вызвали одобрение аудитории, как полезные и нужные. Другие (например, настройка визуального оформления домашнего экрана, общая тема для иконок и то, как это реализовано) оставили многих в недоумении. Да, много полезного, но из-за того, что ожидания от анонса разошлись с действительностью, это меркнет на общем фоне.

Еще больше недоумения вызвал функционал Apple Intelligence. И даже не то, что какие-то вещи были показаны довольно скомкано. Разочарование вызвало 2 момента: дата выхода инструментария и отсутствие тематических сессий:



Были анонсированы и «умные» тулзы для Xcode, и встроенный ChatGPT. Но как этим пользоваться, как встраивать, как с этим работать, такой информации напрямую нет. Она частично размазана по сессиям по вспомогательным технологиям. Из них и будем черпать знания.

Читать дальше →

WWDC 2024. Прогнозируем, что ждет разработчиков

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели2.3K


Всем привет! С вами снова я, Анна Жаркова, руководитель группы разработки из компании Usetech. Совсем скоро нас ждет неделя тематических сессий по технологиям WWDC от Apple, а это значит, что самое время составлять список того, что может быть продемонстрировано из новинок, и что хотелось бы увидеть больше всего. Затем сравним свой вишлист с анонсами.

Итак, начнем. С новинок прошлого года.

Развитие новинок прошлого года


В прошлом году Apple посвятили большую часть сессий своей новинке – умным очкам VR/AR, работающим на Vision OS, а также технологиям для разработки соответствующих приложений: ARKit/VRKit, Core/Metal и т.п. Разумеется, много было и различных кодлабов и воркшопов по работе с SDK и VisionOS. Затем был запущен маркет соответствующих приложений. В этом сезоне ожидаем больше оптимизированных фирменных приложений Apple, а также функцию отслеживания дыхания и поддержку стилуса Pencil Pro, представленного ранее. Ожидаем крупное обновление Vision Pro, которое включит в себя более мощную функцию Live Captions, с поддержкой генерации субтитров всех окружающих диалогов в поле зрения пользователя. И очень важно: новое обновление, вероятно, будет включать в себя поддержку и интеграцию с Искусственным интеллектом.
Читать дальше →

Room для Kotlin Multiplatform. Пробуем нативное решение

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели15K

Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. В начале мая Google нас порадовали релизами нескольких библиотек для локальных хранилищ. Наконец, в приложения Kotlin Multiplatform можно полноценно использовать Room (версия 2.7.0-alpha01 и выше).
И сегодня мы опробуем работу с данной библиотекой на примере небольшого приложения Todo, написанного на KMP с использованием Compose Multiplatform.


Кроме Room, в проекте используется библиотека Lifecycle-viewmodel для KMP. И Koin для DI и гармонии.

Читать дальше →

ViewModel + Kotlin Multiplatform. Пробуем нативное решение

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели14K


Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. Компания Google объявили о своем интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовали ожидаемую многими новинку, а именно ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.

Для начала освежим, с чем же мы работали до ViewModels из Lifecycle.

Сами по себе ViewModel как часть паттерна MVVM применительно к кросс-платформенным решениям идея не новая. Многие давно использовали собственную реализацию, совмещая также с платформенными архитектурами.
Читать дальше →

По граблям, по граблям. Пишем отзывчивый интерактивный виджет IOS 17

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели3.7K
image

Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. В 2023 году на WWDC Apple представили много нового и интересного API, среди которого были долгожданные интерактивные виджеты, реагирующие с помощью механизма AppIntent на нажатия и запускающие логику без переключения в основное приложение. Однако, как показывает практика, не все так просто и красиво, как Apple показывают на демонстрационных сессиях, а от беты до релиза что-то в API обязательно ломается или внезапно меняется.

Поэтому сегодня мы поговорим, как с помощью Widget Kit iOS 17 и AppIntent сделать виджет не только интерактивным, но и рабочим и отзывчивым в моменте, и обойти подводные камушки, оставленные разработчиками API. Рассматривать будем на примере самописного приложения для заметок TODO.



Для тех, кому не терпится, или кто хочет читать и смотреть код одновременно, сам код

Помимо обработки событий из самого виджета в таких приложениях также важно синхронизировать состояние между таргетами без потерь и задержек. Данные (наши тудушки и их состояние) мы сохраняем локально. Для этого используем инструмент для хранения данных SwiftData. Данный фреймворк также был представлен на WWDC 2023, и при его использовании в разных таргетах можно встретить тоже много подводных камней.
Читать дальше →

WWDC 2023. Что нового для разработчика

Время на прочтение5 мин
Охват и читатели5.9K
image

Всем привет! С вами Анна Жаркова, руководитель группы разработки в ГК Usetech.
Вчера Apple представили Keynote долгожданной WWDC 2023. Как обычно, основная информация по новинкам для разработки вынесена в специальные инженерные сессии, которые будут публиковаться ежедневно всю эту неделю. Краткое описание можно увидеть в What Apple developers need to know at WWDC23

Давайте обсудим основные тенденции и посмотрим, на что будет сделан упор в анонсированных видео. Разумеется, мы не затронем все 175 сессий, но обозначим топовые тематики:

  • SwiftUI,
  • виджеты и App Clips,
  • Swift,
  • безопасность, приватность и сеть,
  • Xcode,
  • VR/AR.

И начнем мы с самой долгожданной для многих разработчиков новинки:
Читать дальше →

Google I/O 2023. Что нового в Kotlin для Android?

Время на прочтение3 мин
Охват и читатели7.6K
image

Всем привет! С вами Анна Жаркова, руководитель группы разработки в ГК Usetech.

И сегодня мы посмотрим на новинки Kotlin для Android, представленные Google в видео «What's new in Kotlin for Android» с Google I/O 2023 (с некоторыми моими комментариями и дополнениями).

В этом году основной фокус делают на следующие пункты:
  • Kotlin Compiler 2.0 (доступен с 2024 года)
  • Kotlin DSL скрипты build.gradle по умолчанию
  • KSP как приоритетный процессинг аннотаций
  • Kotlin Multiplatform (неожиданно)

Также внимание отводится Jetpack Compose и его улучшениям, но подробнее ознакомиться стоит в тематических видео.

Итак, начнем с компилятора Kotlin.
Читать дальше →

Remote бэкенд на Firebase для МП без бэкенда

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6.1K

image


Всем привет! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Продолжаем вам рассказывать про интересные технологии мобильной разработки и об их эффективном применении в приложениях на практике. Сегодня поговорим про то, как с помощью Firebase (без помощи бэкенд-разработчика), а именно облачных хранилищ Firebase Realtime Database/Firestore и Cloud Storage, создать свой собственный бэкенд для мобильного приложения. В качестве примера напишем приложение-аналог известного сервиса с картинками, фотографиями и постами. UI у нас уже готов, подробнее можно посмотреть в этой статье.

Читать дальше →

WWDC 2022. Что нового в SwiftUI

Время на прочтение3 мин
Охват и читатели4.4K

Всем привет, с вами я, Анна Жаркова, ведущий разработчик компании Usetech. 

Неделя тематических сессий в самом разгаре. Сегодня поговорим о SwiftUI, какие же новинки были уже представлены и озвучены.

В этой версии ставку сделали как на поддержку новых возможностей iOS, так и на улучшение и доработку уже существовавших. Основными направления развития SwiftUI стали:

1. Поддержка нового фреймворка для графиков Charts.

2.Навигация (своя, родная, нативная).

3.Сложные контролы.

4.Поддержка шаринга.

5.Графика и разметка.

Предлагаю рассмотреть их детальнее.

Charts

Начнем по порядку с API для графиков.

Читать далее

Чего ждать разработчику от WWDC 2022

Время на прочтение7 мин
Охват и читатели2.7K

Всем привет, с вами я, Анна Жаркова, ведущий разработчик компании Usetech. 

Итак, долгожданная ежегодная презентация WWDC состоялась, мы готовы обсудить представленные новинки и анонсированные сессии. В этом году на Keynote основной упор был сделан на:

- игры и разработку

- иммерсивный звук и изображение

- многооконность

- расширенный и улучшенный шаринг, механизмы обмена самыми разными данными и совместные процессы, взаимодействие между устройствами

- улучшенные возможности отслеживать состояние здоровья и физическую активность

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

Сразу скажу, что все сессии упомянуть не возможно. В этом году их много, они довольно разнообразные и разноплановые. От улучшений уже известных нам фреймворков (SwiftUI, WidgetKit, SharePlay) до совсем новых (WeatherKit, ScreenCaptureKit). Также верно сказано, что описания сессий в этом году не сильно многословны, видимо, что подстегнуть зрителей к просмотру всех.

Читать далее

GraphQL в мобильной разработке. Пишем клиент для iOS

Время на прочтение17 мин
Охват и читатели4.7K


Доброго времени суток! С вами Анна Жаркова, ведущий разработчик компании Usetech, и мы продолжаем нашу серию статей, посвященных работе с технологией GraphQL  при разработке мобильных приложений.

В предыдущих частях мы говорили о подготовке облачного GraphQL бекенда на Hasura и подключении GraphQL API к Android клиенту. Теперь настал черед iOS мобильного приложения.

Для работы нам понадобится библиотека Apollo GraphQL для iOS:

www.apollographql.com/docs/ios

github.com/apollographql/apollo-ios

Наше приложение абсолютно аналогичное Android и включает в себя такие же по функционалу экраны:

— вход

— регистрация

— лента постов

— экран создания и редактирования поста

— экран с информацией о текущем пользователе.

Читать дальше →

GraphQL в мобильной разработке. Пишем клиент для Android

Время на прочтение14 мин
Охват и читатели8.6K


Доброго времени суток! С вами Анна Жаркова, ведущий разработчик компании Usetech, и мы продолжаем нашу серию статей, посвященных работе с технологией GraphQL при разработке мобильных приложений.

В прошлой части мы говорили о подготовке облачного GraphQL бекенда на Hasura. В этой статье мы перейдем собственно к подключению GraphQL и API к нашему приложению. И начнем мы с Android клиента.

github.com/apollographql/apollo-android
www.apollographql.com/docs/android

Наше приложение состоит из нескольких экранов:

  • вход
  • регистрация
  • лента постов
  • экран создания и редактирования поста
  • экран с информацией о текущем пользователе.

Экраны и сопутствующий код уже у нас есть, осталось подключить API.
Изображения мы храним в Firebase Storage, поэтому не затрагиваем этот вопрос.
Читать дальше →

Kotlin Multiplatform. Работаем с асинхронностью на стороне iOS. Publishers, async/await

Время на прочтение6 мин
Охват и читатели7.6K

Всем доброго времени суток! С вами Анна Жаркова, ведущий разработчик компании Usetech. Продолжаем говорить про Kotlin Multiplatform и работу с асинхронными функциями. В этой статье мы будем рассматривать, как можно удобно подключать Kotlin общий код на стороне iOS, используя возможности Swift. А именно, как работать с Combine Publishers и новым async/await.

* Примеры кода доступны в полной версии статьи, и к сожалению, не доступны в предпросмотре

Концепция Kotlin Multiplatform позволяет нам сделать код максимально общим, т.е вынести практически все в общую часть.

Если на стороне common, мы оперируем корутинами и suspend функциями, то на стороне iOS проекта нативного благодаря поддержке interop Kotlin/Obj-C с версии Kotlin 1.4 suspend функции преобразуются в функции с completion handler.

Далее мы можем в этом блоке либо вызвать вывод данных, либо выполнение какого-то следующего метода. Все стандартно и просто.

Однако, не все любят простой синтаксис completion handler. А еще мы прекрасно знаем, что если ими злоупотреблять, можно легко попасть в ситуацию callback hell и потерять читабельность и чистоту кода.

Также не стоит забывать, что в зависимости от поставленной задачи у нас могут быть не только обобщаемые методы. Код платформенных проектов у нас может быть не идентичен, поэтому нельзя исключать логики сугубо нативной, вызовы которой мы можем сочетать с вызовами логики из общего модуля. Что вполне логично. Поэтому вполне нормально, что мы решим применить здесь доступные подходы конкретной платформы.

Попробуем сделать наш Kotlin код совместимым с Combine Publishers. Для этого превратим вызов нашей suspend функции в AnyPublisher с использованием Future Deferred и Promise.

Читать далее

Kotlin Symbol Processing. Работаем с аннотациями по-новому

Время на прочтение9 мин
Охват и читатели11K

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. В феврале 2021 года компания Google анонсировали экспериментальный релиз технологии Kotlin Symbol Processing (совместима с Kotlin с 1.4.30), как более эффективную альтернативу KAPT (Kotlin Annotation Processing Tool). Она сразу привлекла внимание многих разработчиков, помышляющих о внедрении аннотаций в мультиплатформенные проекты, несмотря на рекомендации создателей не использовать ее в продакте. В сентябре вышел первый стабильный релиз, и теперь она официальна готова к работе в боевых проектах. В этой статье предлагаю рассмотреть нюансы работы с KSP как в приложениях для Android, так и Kotlin Multiplatform.

Итак, начнем с назначения. Kotlin Symbol Processing предназначена для разработки легковесных плагинов компиляции Kotlin и процессоров аннотаций. Последние нас и интересуют. По сути аннотации нужны в приложении для того, чтобы упростить работу и избавить нас от лишнего кода. Например, когда нам нужно проанализировать код для определенной цели и затем сделать какие-то действия. Либо убрать лишнюю абстракцию из приложения. Гораздо привлекательнее выглядит добавить буквально 1 команду над конкретным объектом/методом/типов, и вместо того, чтобы писать тонны бойлерплейта для каждого случая, поручить это библиотеке, которая сделает все сама.

Давайте посмотрим, как работает в своей механике процессор аннотаций. Например, такой, как мы используем в Java коде.

Читать далее

Kotlin Native. Работаем с новой моделью памяти

Время на прочтение6 мин
Охват и читатели9.8K

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Продолжаем рассматривать способы многопоточный работы в Kotlin Native. В предыдущих статьях мы уже рассмотрели существующие способы работы с многопоточностью с корутинами и без, и что делать с имеющимися болями. Теперь поговорим о новой модели управления памятью, которая появилась совсем недавно.

31 августа компания JetBrains представили превью новой модели управления памятью в Kotlin Native. Основной упор команда разработчиков сделала на безопасность шаринга между потоками, устранение утечек памяти и освобождение нас от использования специальных аннотаций. Также доработка коснулась Coroutines, и теперь можно без опаски переключаться между контекстами корутин без заморозки. Обновления подхватили и Ktor:  

Итак, что же нового появится в версии Kotlin 1.6.0-M1-139: 
1. Заявлено, что мы можем убрать все freeze() блоки (в том числе и во всех фоновых Worker), и переключаться между контекстами и потоками без каких-либо проблем. 

2.Использование AtomicReference или FreezableAtomicReference не приводит к утечкам памяти.

3.При работе с глобальными константами не нужно теперь использовать SharedImmutable.

4.При работе с Worker.execute producer больше не требует возвращать изолированный подграф объектов. 

Однако есть и нюансы:

Читать далее

Kotlin Native. Работаем с потоками с корутинами и без. Ч2

Время на прочтение6 мин
Охват и читатели4.3K

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Продолжаем рассматривать способы многопоточный работы в Kotlin Native.

В предыдущей части мы посмотрели некоторые нюансы работы с корутинами, как работать с Worker и AtomicReference.

Еще одним возможным API для работы с многопоточностью является DetachedObjectGraph.

Читать далее
1

Информация

В рейтинге
Не участвует
Откуда
Барнаул, Алтайский край, Россия
Работает в
Дата рождения
Зарегистрирована
Активность

Специализация

Mobile Application Developer, Software Architect
Lead