Немного отвлечемся от iOS. В сети уже стали появляться демо-приложения с демонстрацией красот нового JetPack Android.
Если вы подумываете о рефакторинге своих старичков, то самое время
Если вы подумываете о рефакторинге своих старичков, то самое время
Forwarded from Android Broadcast
Pokedex
Помните таки созданий как покемоны? В моем детстве все дети от них тащились (а я даже знал всех 150 наизусть 😎), а пару лет назад вообще все бегали с телефонами и в AR ловили их везде вокруг.
Но сегодня вы можете посмотреть pet проект в котором реализована идея поке-Wikipedia и понасталгировать, но и увидеть приложение с современнейшим стеком:
👉 Kotlin
👉 Coroutines
👉 Dagger Hilt
👉 Jetpack MVVM
Помните таки созданий как покемоны? В моем детстве все дети от них тащились (а я даже знал всех 150 наизусть 😎), а пару лет назад вообще все бегали с телефонами и в AR ловили их везде вокруг.
Но сегодня вы можете посмотреть pet проект в котором реализована идея поке-Wikipedia и понасталгировать, но и увидеть приложение с современнейшим стеком:
👉 Kotlin
👉 Coroutines
👉 Dagger Hilt
👉 Jetpack MVVM
Моя статья пошла дальше)
Что ж, если на Kotlin Native стали поддерживаться IOS Background очереди без танцев с бубном, фриза и прочих ухищрений, это круто.
Как бы утверждения, что скоупы вне main thread не работают, или что background в андроид не поддерживается, в статье и не было)
Что ж, если на 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
#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
Forwarded from Mobile Development by AppTractor
#КартинкаВПятницу: Все iOS-разработчики на этой неделе.
Сегодня суббота 27 июня, а это значит, что в разгаре DEV Party от GDG.
Трансляция доступна на канале:
https://www.youtube.com/channel/UCxKXx-eVWNib87Wst7nv_KQ
Присоединяемся и смотрим)
В блоке Mobile прошло уже 3 доклада (доступно в записи) на темы IoT + Android, работы с хранилищами и единому управлению бизнес-логикой в андроид проекте.
Сейчас в прямом эфире закончился доклад по Flutter, и только-только началось про работу с анимацией в Android
Трансляция доступна на канале:
https://www.youtube.com/channel/UCxKXx-eVWNib87Wst7nv_KQ
Присоединяемся и смотрим)
В блоке Mobile прошло уже 3 доклада (доступно в записи) на темы IoT + Android, работы с хранилищами и единому управлению бизнес-логикой в андроид проекте.
Сейчас в прямом эфире закончился доклад по Flutter, и только-только началось про работу с анимацией в Android
YouTube
GDG Russia
Channel about GDG community in Russia. Videos and translations from conferences, meet ups etc.
Очень советую посмотреть доклад по Flutter. Александр рассказывает про различные типы архитектуры.
Даже если вы холодны к этой кросс-платформе и вообще больше по нативу, то, по крайней мере, полезно знать тенденцию в целом. А сейчас Redux-образные архитектуры внедряются и в Android, и в iOS (SwiftUI)
Даже если вы холодны к этой кросс-платформе и вообще больше по нативу, то, по крайней мере, полезно знать тенденцию в целом. А сейчас Redux-образные архитектуры внедряются и в Android, и в iOS (SwiftUI)
Forwarded from Люся
Есть запись этого доклада из Екатеринбурга.) https://www.youtube.com/watch?v=Hk-UyrnNXrc
YouTube
FlutterFest 14.12.19. Flutter Architecture No, State Management!
Докладчик: Александр Денисов, Senior Software Engineer, Co-Head of Flutter Competency в EPAM Systems
В докладе Саша расскажет о различных типичных архитектурах, которые можно использовать при разработке на Flutter, их плюсах и минусах. И на одной из них…
В докладе Саша расскажет о различных типичных архитектурах, которые можно использовать при разработке на Flutter, их плюсах и минусах. И на одной из них…
Прямо сейчас Евгений Сатуров показывает интересный воркшоп, как совместить KMP и Flutter.
По моему мнению, любое имеет право на существование. По крайней мере, когда делаешь связку, понимаешь, как можно переносить один и тот же код между платформами. KMP позволяет шарить бизнес-логику, но требует нативной реализации UI. Flutter позволяет делать и бизнес-логику, и UI. Платформенный функционал делается через каналы. В KMP можно реализовывать нативно.
В 12 Мск нас ожидает интересный экспресс-экскурс в мир современного Android JetPack от Кирилла Розова:
https://t.co/wmg83CsBKv?amp=1
https://t.co/wmg83CsBKv?amp=1
YouTube
Кирилл Розов | Все ли вы знаете об Android Jetpack?
Плейлист Mobile: https://www.youtube.com/playlist?list=PLGlZ_ld11os_JyZ6xVAWEZ-rnxrLjrGH5
Плейлист Web: https://www.youtube.com/playlist?list=PLGlZ_ld11os-nnB5CG_p6brIUWMGXU5Tr
Плейлист Cloud: https://www.youtube.com/playlist?list=PLGlZ_ld11os8QYBOSM8KU3INh244iFXKK…
Плейлист Web: https://www.youtube.com/playlist?list=PLGlZ_ld11os-nnB5CG_p6brIUWMGXU5Tr
Плейлист Cloud: https://www.youtube.com/playlist?list=PLGlZ_ld11os8QYBOSM8KU3INh244iFXKK…
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
Сегодня идет бесплатная онлайн конференция DevParty, где от утра Владивостока до вечера в Калининграде нон-стоп выступают разные интересные спикеры.
https://gdg-devparty.ru/
Я тоже там буду😉
С 14:00 до 15:00 я расскажу сжатую версию доклада с мобиус про то, как запустил GitFox на иос и в браузере. Все самое главное осталось в докладе, урезал только бонусы и JB инсайды, ну и рассказывать буду на 1.25х 😅
Предлагаю всем, кто хочет услышать рассказ про перевод типичного андроид проекта двух-трех годичной давности на мультиплатформу (RxJava, Gson, Retrofit и тд), присоединятся!
Ютуб стрим (надеюсь к 14 будет он же, но всегда можно найти актуальный на сайте выше): https://www.youtube.com/watch?v=Xe3Ug3fCO3c
#wwdc WWDC заканчивается. Очень много информации, которую надо переварить, очень много выводов надо сделать.
30 июня EPAM устраивают небольшую сессию на 1 час с обсуждением новинок этой недели:
https://events.epam.com/events/mobile-webinar-ios
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"
На следующей неделе будет статья про то, как эти изменения можно использовать в бою
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"
На следующей неделе будет статья про то, как эти изменения можно использовать в бою