#swiftui Также в подборке есть очень полезная статья от Вадима Булавина про особенности тестирования View на SwiftUI.
#swiftui Итак, продолжаем цикл статей про SwiftUI. 3я часть про архитектуру приложения и наведение порядка с помощью CleanCode.
https://habr.com/ru/post/500470/
https://habr.com/ru/post/500470/
Хабр
Адаптируем существующее бизнес-решение под SwiftUI. Часть 3. Работаем с архитектурой
Доброго всем времени суток! С вами я, Анна Жаркова, ведущий мобильный разработчик компании «Usetech» Продолжаем разбирать тонкости SwiftUI. С предыдущими частями можно ознакомиться по...
#swiftui Что может SwiftUI из того, чего не может Autolayout? Это вью-обертка. Конечно, это композиция, но Autolayout не поддерживает наследование xib с расширением хоть каким-нибудь образом. Печаль…
#swiftui #туториал Stanfod University начали к наполнению своего ютуб-канала лекциями по SwiftUI
https://www.youtube.com/playlist?list=PLpGHT1n4-mAtTj9oywMWoBx0dCGd51_yG
https://cs193p.sites.stanford.edu
https://www.youtube.com/playlist?list=PLpGHT1n4-mAtTj9oywMWoBx0dCGd51_yG
https://cs193p.sites.stanford.edu
YouTube
CS193p iPhone Application Development Spring 2020
Lecture videos from the Stanford University course CS193p, Developing Applications for iOS using SwiftUI. These lectures were delivered on-line (due to the n...
#swiftui Итак, имеющиеся презентации просмотрены и проанализированы:
https://habr.com/ru/post/508002/
Что мне есть вам сказать. Apple внимательно весь этот год читали все, что писали энтузиасты по всему миру про SwiftUI: статьи, комментарии, обзоры, выступления на митапах и конференциях. И Apple не скрывают, что вдохновились их опытом. Что-то натолкнуло их на мысли, что-то они заимствовали полностью. Также есть влияния от Google. Ну в принципе это тренд - заимствовать у конкурентов и этого не скрывать.
В общем:
1. Теперь SwiftUI - технология для создания приложений под разные платформы, от часов до MacOS. В Xcode 12 есть шаблон для создания такого мультиплатформенного приложения. А структура приложения напоминает KMP.
2. Можно отказаться от AppDelegate/SceneDelegate и с помощью @main и протокола App сделать свою точку входа в приложение. UIHostingController и UISceneDelegate инкапсулированы внутри.
3. Apple отказывается от MVVM в пользу MVI/Redux.
4. Почти все контролы портированы на SwiftUI. Появляются LazyVGrid/LazyHGrid для GridItem - аналог UiCollectionView. Дополнительно заявлено об оптимизации структуры контрола.
5. Портированы фреймворки для SwiftUI
6. Есть средства для настройки адаптивности.
https://habr.com/ru/post/508002/
Что мне есть вам сказать. Apple внимательно весь этот год читали все, что писали энтузиасты по всему миру про SwiftUI: статьи, комментарии, обзоры, выступления на митапах и конференциях. И Apple не скрывают, что вдохновились их опытом. Что-то натолкнуло их на мысли, что-то они заимствовали полностью. Также есть влияния от Google. Ну в принципе это тренд - заимствовать у конкурентов и этого не скрывать.
В общем:
1. Теперь SwiftUI - технология для создания приложений под разные платформы, от часов до MacOS. В Xcode 12 есть шаблон для создания такого мультиплатформенного приложения. А структура приложения напоминает KMP.
2. Можно отказаться от AppDelegate/SceneDelegate и с помощью @main и протокола App сделать свою точку входа в приложение. UIHostingController и UISceneDelegate инкапсулированы внутри.
3. Apple отказывается от MVVM в пользу MVI/Redux.
4. Почти все контролы портированы на SwiftUI. Появляются LazyVGrid/LazyHGrid для GridItem - аналог UiCollectionView. Дополнительно заявлено об оптимизации структуры контрола.
5. Портированы фреймворки для SwiftUI
6. Есть средства для настройки адаптивности.
Хабр
SwiftUI 2020. Что изменилось?
Приветствую вас, жители Хабра и все интересующиеся разработкой под IOS. На связи Анна Жаркова, Senior iOS/Android разработчик компании Usetech Сегодня мы поговор...
#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"
На следующей неделе будет статья про то, как эти изменения можно использовать в бою
#swiftui Итак, спустя месяц после WWDC 2020 все больше народу тянется переосмыслять нововведения в SwiftUI. И особое внимание уделяется MVI-архитектуре, которую Apple предлагают вместо (или вместе с) MVVM:
https://habr.com/ru/post/512542/
Идея у статьи неплохая, но все-таки не хватает структурированности в коде. Если уж ты берешься за рассказ про свое архитектурное решение, ну сделай ты код читабельным. Сбивает же
Из интересных моментов статьи я бы вынесла:
1. Расширение AnyView для абстракции
2. Использование статической функции build для отсроченной инициализации View
https://habr.com/ru/post/512542/
Идея у статьи неплохая, но все-таки не хватает структурированности в коде. Если уж ты берешься за рассказ про свое архитектурное решение, ну сделай ты код читабельным. Сбивает же
Из интересных моментов статьи я бы вынесла:
1. Расширение AnyView для абстракции
2. Использование статической функции build для отсроченной инициализации View
Хабр
MVI и SwiftUI – одно состояние
Представим, нам нужно внести небольшую правку в работу экрана. Экран меняется каждую секунду, поскольку в нем одновременно происходит множество процессов. Как...
#swiftui Итак, эфир прошел, хотя и с некоторыми техническими трудностями:
https://vk.com/video-167727610_456239043?list=2b332a25dcee1f3c7d
https://vk.com/video-167727610_456239043?list=2b332a25dcee1f3c7d
Vk
SwiftUI - новый подход к разработке iOS приложений. IT Way.Tomsk. 31.07.2020
🔸 Анна Жаркова — ведущий мобильный разработчик компании «Usetech» c опытом коммерческой разработки 7 лет. Занимается разработкой iOS и Android приложений как нативных (Swift/Objective-C, Kotlin/Java), так и кроссплатформенных (Xamarin iOS/Android, Xamarin…
#swiftui Вадим Булавин опубликовал очень подробную статью про жизненный цикл View в SwiftUI. Если хотите больше понимать про хранение состояний и управление View, то рекомендуется к прочтению)
https://www.vadimbulavin.com/swiftui-view-lifecycle/
https://www.vadimbulavin.com/swiftui-view-lifecycle/
Yet Another Swift Blog
SwiftUI View Lifecycle
Learn the three phases of SwiftUI view lifecycle: Appearing, Updating and Disappearing.
Январь радует новой порцией статей по разработке:
https://apptractor.ru/marketing-monetization/digest-338.html
#ios#swiftui Компания Vivid Money рассказывает про свой внутренний Vivid UI:
https://habr.com/ru/company/vivid_money/blog/538126/
https://apptractor.ru/marketing-monetization/digest-338.html
#ios#swiftui Компания Vivid Money рассказывает про свой внутренний Vivid UI:
https://habr.com/ru/company/vivid_money/blog/538126/
AppTractor
Дайджест интересных материалов для мобильного разработчика #338 (18-24 января)
В нашем новом дайджесте модуляризация iOS-приложений и интеграция с Siri, удаление неудаляемых приложений и руководство по стилю Kotlin, уязвимости и рендеринг островов, 10,000 серверов и визуальная оптимизация страниц приложений в 2021. Вес это и многое…
#swiftui #widgets Также стоит обратить внимание на туториал по настройке виджетов в iOS 14:
https://habr.com/ru/post/519146/
https://habr.com/ru/post/519146/
Хабр
Делаем свой Widget в iOS 14
В iOS 14 и macOS 11 Apple представили Widgets. Еще один способ взаимодействия пользователя с приложением. В данной статье рассмотрим основные принципы работы WidgetKit и интегрируем свой Widget в...
#swiftui Некоторые вещи теряются в инфопотоке. В пн мы в Otus провели демо-занятие по разработке небольшого приложения на SwiftUI и Combine.
Заодно рассмотрели проблемы с Identifiable, нужно ли его реализовывать, и как можно без него обойтись, и неправильной обработкой onReceive для асинхронного получения данных, чтобы показать, работает ли корректно onAppear в subview, когда мы запрашиваем, например, изображение для элемента списка, или же лучше брать механизм Combine
https://www.youtube.com/watch?v=OvkxZvfsX9U
И да, к видео прилагаются пример кода и сама презентация с инфо
Заодно рассмотрели проблемы с Identifiable, нужно ли его реализовывать, и как можно без него обойтись, и неправильной обработкой onReceive для асинхронного получения данных, чтобы показать, работает ли корректно onAppear в subview, когда мы запрашиваем, например, изображение для элемента списка, или же лучше брать механизм Combine
https://www.youtube.com/watch?v=OvkxZvfsX9U
И да, к видео прилагаются пример кода и сама презентация с инфо
YouTube
Пишем приложение на SwiftUI и Combine // Демо занятие курса «iOS Developer. Professional»
Вебинар рассчитан на разработчиков, у которых есть опыт разработки на iOS и Swift, но будет интересен также тем, кто такого опыта не имеет, но хочет открыть для себя кое-что новое.
Мы познакомимся с декларативным фреймворком SwiftUI и разберем особенности…
Мы познакомимся с декларативным фреймворком SwiftUI и разберем особенности…
#swiftui А в среду проводим улучшенное занятие по виджетам в iOS 😉
Forwarded from Kotlin Multiplatform Broadcast
Media is too big
VIEW IN TELEGRAM
Touchlab показали Compose Swift Bridge, который сгенерирует весь необходимый код для интеграции и позволят писать UI в Compose
#touchlab #compose #swiftui #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7💩2