Записки разработчицы
2.14K subscribers
400 photos
24 videos
4 files
1.11K links
Разговоры об IT, о разработке. О мобилках нативных и кроссплатформенных.
Личный аккаунт @azharkova
Download Telegram
Немного отвлечемся от iOS. В сети уже стали появляться демо-приложения с демонстрацией красот нового JetPack Android.
Если вы подумываете о рефакторинге своих старичков, то самое время
Forwarded from Android Broadcast
Pokedex

Помните таки созданий как покемоны? В моем детстве все дети от них тащились (а я даже знал всех 150 наизусть 😎), а пару лет назад вообще все бегали с телефонами и в AR ловили их везде вокруг.

Но сегодня вы можете посмотреть pet проект в котором реализована идея поке-Wikipedia и понасталгировать, но и увидеть приложение с современнейшим стеком:
👉 Kotlin
👉 Coroutines
👉 Dagger Hilt
👉 Jetpack MVVM
Моя статья пошла дальше)
Что ж, если на Kotlin Native стали поддерживаться IOS Background очереди без танцев с бубном, фриза и прочих ухищрений, это круто.

Как бы утверждения, что скоупы вне main thread не работают, или что background в андроид не поддерживается, в статье и не было)
Forwarded from Kotlin Multiplatform
1. Создаём своё первое приложение для Kotlin Multiplatform - статья для мобильных разработчиков желающих познакомиться с Kotlin Multiplatform на русском. Кроме утверждения "на Kotlin/Native не поддерживаются background очереди" всё полезно и наглядно.
#posts

2. dynamo - opensource проект мобильного приложения для генерации паролей с использованием Kotlin Multiplatform.
#samples

3. tesla.kt - библиотека для работы с API автомобилей Tesla. Пока только jvm и js таргеты.
#libs

4. CPMovieMaker - opensource проект мобильного приложения редактора видео (пока только объединение нескольких видео клипов в один). UI написан на Flutter, а бизнес-логика на Kotlin Multiplatform.
#samples

5. What is Kotlin Multiplaform? Why & How? - презенатция с вводной информацией про KMP. Также доступно видео выступления, на арабском.
#slides #videos

6. ConferenceFinder - opensource проект с мобильными приложениями и бекендом на Kotlin. Приложение для поиска конференций.
#samples
#КартинкаВПятницу: Все iOS-разработчики на этой неделе.
Сегодня суббота 27 июня, а это значит, что в разгаре DEV Party от GDG.
Трансляция доступна на канале:
https://www.youtube.com/channel/UCxKXx-eVWNib87Wst7nv_KQ

Присоединяемся и смотрим)
В блоке Mobile прошло уже 3 доклада (доступно в записи) на темы IoT + Android, работы с хранилищами и единому управлению бизнес-логикой в андроид проекте.
Сейчас в прямом эфире закончился доклад по Flutter, и только-только началось про работу с анимацией в Android
Очень советую посмотреть доклад по Flutter. Александр рассказывает про различные типы архитектуры.

Даже если вы холодны к этой кросс-платформе и вообще больше по нативу, то, по крайней мере, полезно знать тенденцию в целом. А сейчас Redux-образные архитектуры внедряются и в Android, и в iOS (SwiftUI)
Прямо сейчас Евгений Сатуров показывает интересный воркшоп, как совместить KMP и Flutter.
По моему мнению, любое имеет право на существование. По крайней мере, когда делаешь связку, понимаешь, как можно переносить один и тот же код между платформами. KMP позволяет шарить бизнес-логику, но требует нативной реализации UI. Flutter позволяет делать и бизнес-логику, и UI. Платформенный функционал делается через каналы. В KMP можно реализовывать нативно.
Forwarded from Konstantin Tskhovrebov
Всем привет!
Сегодня идет бесплатная онлайн конференция DevParty, где от утра Владивостока до вечера в Калининграде нон-стоп выступают разные интересные спикеры.
https://gdg-devparty.ru/
Я тоже там буду😉
С 14:00 до 15:00 я расскажу сжатую версию доклада с мобиус про то, как запустил GitFox на иос и в браузере. Все самое главное осталось в докладе, урезал только бонусы и JB инсайды, ну и рассказывать буду на 1.25х 😅
Предлагаю всем, кто хочет услышать рассказ про перевод типичного андроид проекта двух-трех годичной давности на мультиплатформу (RxJava, Gson, Retrofit и тд), присоединятся!
Ютуб стрим (надеюсь к 14 будет он же, но всегда можно найти актуальный на сайте выше): https://www.youtube.com/watch?v=Xe3Ug3fCO3c
Новый API ActivityResult - нет лишних методов, меняем на лямбду. Запуск, как и у всего корутинового, через launch
Еще одна возможность: использование контракта для создания собственного интента
Очень интересное изменение в LiveData.
DSL для задания графа навигации.
Честно говоря, мне больше по душе использование навигации без графа. Если у вас аджайл проект, где часто преобладает творческая сторона заказчика, то графы часто теряют смысл.

Но в сама по себе штука интересная
#wwdc WWDC заканчивается. Очень много информации, которую надо переварить, очень много выводов надо сделать.
30 июня EPAM устраивают небольшую сессию на 1 час с обсуждением новинок этой недели:
https://events.epam.com/events/mobile-webinar-ios
#wwdc #swiftui Apple представили обновление ViewState, в соответствии с новым пониманием архитектуры для SwiftUI приложения:
1. Да, теперь это не MVVM, а MVI. Речь идет о поддержке непрерывного обновления View в зависимости от изменяемых данных, запрос которых рекомендуется делать в зависимости от цикла View
2. Появился новый @PropertyWrapper - @StateObject. Это статичная модель @ObservableObject, т.е неизменяемая. Почему и где нужно. @ObservableObject - пересоздается при пересоздании View. Да, Apple признали, что это тяжелая операция. Модель - это класс, он оказывается в heap, а это потенциальные leak of memory.
@StateObject - статичная вещь. Либо вы ее создаете при инициализации View, либо передаете из родительского View. Например, через @EnvironmentObject
3. Новые методы для триггера изменений в ObservedObject. Теперь это не только onReceive, но и onChange, onOpenURL, onContinueUserActivity. Похоже на Deep Linking
4. Новое понимание хранилища. Появляется @AppStorage - глобальное хранилище на основе UserDefaults, доступное из любой точки приложения. И @SceneStorage - аналогичное хранилище со скоупом внутри сцены и доступное только внутри View. С одной стороны, это позволяет организовать байндинг с сохраненными параметрам быстро и просто без посредников. Также предлагается использовать такой подход для хранения стейтов - очень похоже на Bundle. С другой, само прямое обращение к хранилищу из View является нарушением архитектурной парадигмы.
5. Насчет навигации не изменилось ничего. Либо оно еще в работе, либо Apple ждет от нас решений, где мы, оперируя новыми Storage, StateObject и новыми методами lifecycle, создадим что-то удобоваримое, чтобы им было что представить в следующем году и сказать нам всем одно единственное: "Спасибо".

Да, если вы не в курсе, они открыто говорят, что "вдохновились решениями неравнодушных разработчиков" для SwiftUI. Это "What's new in SwiftUI"

На следующей неделе будет статья про то, как эти изменения можно использовать в бою