В 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"
На следующей неделе будет статья про то, как эти изменения можно использовать в бою
Только что начался митап Innopolis. Сегодня 2 доклада:
https://www.youtube.com/watch?v=kFPHOmNQU7c
Кирилл Розов расскажет про. JetPack
Затем в 18 Мск Никита Русин выступит с докладо про Server-Driven UI и его проектирование
https://www.youtube.com/watch?v=kFPHOmNQU7c
Кирилл Розов расскажет про. JetPack
Затем в 18 Мск Никита Русин выступит с докладо про Server-Driven UI и его проектирование
YouTube
Mobile Meetup Innopolis/Кирилл Розов и Никита Русин
Ссылка на чат митапа: https://telestata.ru/link/2504
17:00 Кирилл Розов – Mobile Lead, Replika / Android Broadcast, Минск, Беларусь.
Все ли вы знаете об Android Jetpack?
В последний год Android Jetpack развивается невероятными темпами и уследить за всеми…
17:00 Кирилл Розов – Mobile Lead, Replika / Android Broadcast, Минск, Беларусь.
Все ли вы знаете об Android Jetpack?
В последний год Android Jetpack развивается невероятными темпами и уследить за всеми…
Итак, немного по докладу по Server-Driven UI. Никита представил не безинтересный подход, при котором UI создается из json, гененируемого на бекенде и распарсиваемого определенным образом на клиенте МП. С одной стороны, это позволяет добиться гибкости и идентичности на разных платформах. По сути, мы делаем UI по принципу веб-страницы, но не в вебе. С другой, есть определенные проблемы и нюансы, которые надо предусмотреть:
1. Трудности с оффлайн-модом и сетевыми перебоями. Вжух - и у тебя даже нет каркаса приложения.
2. Сохранение стейта между экранами.
3. Миграция между версиями (в т.ч парсинга)
4. Разные платформенные особенности.
5. Новые кастомы
Все это потребует дополнительного кодинга на клиенте МП
Вообще решение подойдет для случая, когда ваш клиент (ака заказчик) хочет гибко менять UI по своему желанию. И менять вам нужно постоянно.
Либо если вы делаете много-много однотипных решений. Например, клиенты банков (о них говорит и Никита) или магазинов. Там просто запретить оффлайн-мод.
1. Трудности с оффлайн-модом и сетевыми перебоями. Вжух - и у тебя даже нет каркаса приложения.
2. Сохранение стейта между экранами.
3. Миграция между версиями (в т.ч парсинга)
4. Разные платформенные особенности.
5. Новые кастомы
Все это потребует дополнительного кодинга на клиенте МП
Вообще решение подойдет для случая, когда ваш клиент (ака заказчик) хочет гибко менять UI по своему желанию. И менять вам нужно постоянно.
Либо если вы делаете много-много однотипных решений. Например, клиенты банков (о них говорит и Никита) или магазинов. Там просто запретить оффлайн-мод.
"Мы использовали MVI, хранили все в стейте, и это было немножко больно"(с)
#meetup GDG продолжает обсуждение Android Beta 11
https://www.meetup.com/ru-RU/GDG-Moscow/events/271247886
https://www.meetup.com/ru-RU/GDG-Moscow/events/271247886
Meetup
Android 11 Beta Meetup
вт, 7 июл. 2020 г., 19:00: Android 11 Beta был анонсирован 10-го июня, но мы решили не собираться по этому поводу сразу, а дать сообществу и экспертам немного времени, чтобы попробовать с ним поработа
Сегодня ожидается доклад о фичах, которые не так широко известны, но весьма интересны
Также можно задать вопрос Кириллу Розову (Android Brodcast) через эту форму:
https://forms.gle/JHpo2E7bitQvJwAXA
https://forms.gle/JHpo2E7bitQvJwAXA
Google Docs
#AskAndroid
Какую фичу 11-го андроида вам хотелось бы обсудить?
Тот неловкий момент, когда не знаешь, кто у кого позаимствовал, Apple у Google или Google у Apple. Да, в SwiftUI есть свои SceneStorage и AppStorage
Forwarded from Android Broadcast
#Android11 #ScopedStorage
Android 11 Storage FAQ
Представленный в Android 10 Scoped Storage добрался до релиза в Android 11. Scoped Storage предназначен упорядочить доступ приложений к файлам пользователя и защитить их от произвольного доступа любым приложением. Изменения будут применены для всех приложение с targetSdk=30+ (Android 11).
В статье можно найти ответы на самые частые вопросы по данной теме:
👉 можно ли обращаться к файлам по пути, используя, например, File API
👉 Что со скоростью доступа к файлам
👉 Как осуществить полный доступ к файловой системе как раньше
👉 Каким приложениям стоит запрашивать разрешение MANAGE_EXTERNAL_STORAGE
👉 Что с Storage Access Framework
👉 Изменения в Scoped Storage в Android 11 по сравнению с Android 10
👉 Тестирование Scoped Storage
👉 Новые ограничения для записи в приватные директории приложений
👉 Что использовать вместо
👉 Миграция данных вне Scoped Storage
👉 Исключения в доступе к папкам
Android 11 Storage FAQ
Представленный в Android 10 Scoped Storage добрался до релиза в Android 11. Scoped Storage предназначен упорядочить доступ приложений к файлам пользователя и защитить их от произвольного доступа любым приложением. Изменения будут применены для всех приложение с targetSdk=30+ (Android 11).
В статье можно найти ответы на самые частые вопросы по данной теме:
👉 можно ли обращаться к файлам по пути, используя, например, File API
👉 Что со скоростью доступа к файлам
👉 Как осуществить полный доступ к файловой системе как раньше
👉 Каким приложениям стоит запрашивать разрешение MANAGE_EXTERNAL_STORAGE
👉 Что с Storage Access Framework
👉 Изменения в Scoped Storage в Android 11 по сравнению с Android 10
👉 Тестирование Scoped Storage
👉 Новые ограничения для записи в приватные директории приложений
👉 Что использовать вместо
MediaStore.MediaColumns.DATA
?👉 Миграция данных вне Scoped Storage
👉 Исключения в доступе к папкам
Android
и obb
Medium
Android 11 storage FAQ
First introduced in Android 10, scoped storage is designed to protect app and user data and reduce file clutter. Since then, you’ve…
https://apptractor.ru/info/news/flutter-linux.html?fbclid=IwAR3QBmABZqvbq8XwZpbGdBjVPyvG8sxRl7crZ3g6rl3xszzZUsvoMR2QfZc
“Реализовав поддержку Linux во Flutter, Canonical позволит разработчикам легко публиковать свои приложения для пользователей Linux через Snap Store, магазин приложений для Linux
Сейчас есть альфа-версия Flutter для Ubuntu, но обе компании стремятся к тому, чтобы Flutter развивался.»
“Реализовав поддержку Linux во Flutter, Canonical позволит разработчикам легко публиковать свои приложения для пользователей Linux через Snap Store, магазин приложений для Linux
Сейчас есть альфа-версия Flutter для Ubuntu, но обе компании стремятся к тому, чтобы Flutter развивался.»
AppTractor
Flutter будет работать на Linux
Реализовав поддержку Linux во Flutter, Canonical позволит разработчикам легко публиковать свои приложения для пользователей Linux через Snap Store, магазин приложений для Linux.
В следующий четверг провожу открытый вебинар для нового курса (автор программы курса Константин Савялов). Буду в прямом эфире кодить приложение iOS (Swift), которое будет работать со сторонней api
Forwarded from Mobile Development by AppTractor
🍏 Вебинар "Быстрый старт в iOS-разработку"
Для разработчиков, у которых есть опыт работы на любых языках и платформах, и есть желание изучить язык Swift и разработку под iOS.
📍Мы подробно разберем синтаксис и ключевые конструкции языка Swift и познакомимся с инструментами разработки. Вы узнаете:
● Что из себя представляет язык Swift?
● Как среда разработки XCode поможет Вам в процессе?
● Как создать небольшое приложение под iOS?
Также мы изучим некоторые особенности языка Swift и разработки под iOS в целом. В качестве примера посмотрим, как можно создать простое приложение на Swift, которое будет работать со сторонним API
📅 16 июля в 20:00 по мск
👉🏻 Зарегистрируйтесь на сайте: https://otus.pw/1uPR/
Для разработчиков, у которых есть опыт работы на любых языках и платформах, и есть желание изучить язык Swift и разработку под iOS.
📍Мы подробно разберем синтаксис и ключевые конструкции языка Swift и познакомимся с инструментами разработки. Вы узнаете:
● Что из себя представляет язык Swift?
● Как среда разработки XCode поможет Вам в процессе?
● Как создать небольшое приложение под iOS?
Также мы изучим некоторые особенности языка Swift и разработки под iOS в целом. В качестве примера посмотрим, как можно создать простое приложение на Swift, которое будет работать со сторонним API
📅 16 июля в 20:00 по мск
👉🏻 Зарегистрируйтесь на сайте: https://otus.pw/1uPR/