В принципе, если вы не планировали срочно-срочно начинать писать на SwiftUI мультиплатформенные приложения, включая Mac OS, то для вас это обновление действительно может подождать
Совсем скоро пройдет очередной открытый урок Otus. Ексей Пантелеев покажет и расскажет про внедрение Combine и SwiftUI в существующие проекты iOS. Это будет полезно и интересно всем, даже тем, у кого есть свой способ интеграции и адаптации существующих проектов 😉
Forwarded from Mobile Development by AppTractor
⚡️ Combine до iOS 13 и как добавить SwiftUI 2.0 в любое приложение
23 ноября на открытом уроке с Ексеем Пантелеевым вы:
• рассмотрите мультиплатформенное использование Combine
• узнаете, как перейти на декларативный UI без повышения минимальной версии приложения до iOS 13 и бесшовно добавить поддержку SwiftUI 2.0 в приложение.
Для регистрации на вебинар необходимо пройти тестирование: https://otus.pw/2Q0p/
23 ноября на открытом уроке с Ексеем Пантелеевым вы:
• рассмотрите мультиплатформенное использование Combine
• узнаете, как перейти на декларативный UI без повышения минимальной версии приложения до iOS 13 и бесшовно добавить поддержку SwiftUI 2.0 в приложение.
Для регистрации на вебинар необходимо пройти тестирование: https://otus.pw/2Q0p/
А прямо сейчас на MobiFest очень интересный доклад про корутины. Рекомендую 👍
Особенно интересен кейс обновления в состоянии до построения body. Body у вас строится в момент отображения на экране после перехода на экран (как ViewDidLoad) или изменения свойства PropertyWrappers.
Если не хотите проблем с логикой, которая связана с вашим UI, не вызывайте ее на этом этапе
Если не хотите проблем с логикой, которая связана с вашим UI, не вызывайте ее на этом этапе
Не даром говорят, что в это время одна из ежегодных волн движения IT-специалистов.
Forwarded from Android Broadcast
Roman Elizarov is the new Project Lead for Kotlin
Роман Елизаров возглавит проект Kotlin. Но для меня новость одновременно и грустная - Андрей Бреслав после 10 лет работы над Kotlin уходит из команды.
Kotlin остается в надежных руках. Мне выдалась возможность пообщаться с Романом лично на Kotlin Conf'19, и я был в восторге! Роман это человек, который возглавлял Coroutine в Kotlin и подарил уже много прекрасных вещей в нем.
Андрей от всей команды Android Broadcast большое спасибо вам за язык, который подарили нам. Вы в нашем ❤️ навсегда!
Роман Елизаров возглавит проект Kotlin. Но для меня новость одновременно и грустная - Андрей Бреслав после 10 лет работы над Kotlin уходит из команды.
Kotlin остается в надежных руках. Мне выдалась возможность пообщаться с Романом лично на Kotlin Conf'19, и я был в восторге! Роман это человек, который возглавлял Coroutine в Kotlin и подарил уже много прекрасных вещей в нем.
Андрей от всей команды Android Broadcast большое спасибо вам за язык, который подарили нам. Вы в нашем ❤️ навсегда!
#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.
Использование декларативных фреймворков для разработки UI или цельных приложений делает актуальной тему Server-Driven UI. В принципе логично, что какой-то общий сценарий в виде JSON может преобразовываться внутри приложения в готовые экраны и view.
https://apptractor.ru/info/articles/server-driven-ui.html
https://proandroiddev.com/dynamic-screens-using-server-driven-ui-in-android-262f1e7875c1
https://medium.com/better-programming/exploring-server-driven-ui-cf67b3da919
Вообще тема эта не новая, но декларативно такое приложение реализуется существенно проще и быстрее:
https://atscaleconference.com/videos/backend-driven-native-uis/
В принципе зависимость UI от данных не нарушает принципа инверсии зависимостей. Так что единственным спорным моментом является хранение состояний, корректность работы при проблемах связи с сервером или обратной совместимостью
https://apptractor.ru/info/articles/server-driven-ui.html
https://proandroiddev.com/dynamic-screens-using-server-driven-ui-in-android-262f1e7875c1
https://medium.com/better-programming/exploring-server-driven-ui-cf67b3da919
Вообще тема эта не новая, но декларативно такое приложение реализуется существенно проще и быстрее:
https://atscaleconference.com/videos/backend-driven-native-uis/
В принципе зависимость UI от данных не нарушает принципа инверсии зависимостей. Так что единственным спорным моментом является хранение состояний, корректность работы при проблемах связи с сервером или обратной совместимостью
AppTractor
Что такое Server-Driven UI
Server-Driven UI - это когда сервер с помощью API сообщает приложению, какие компоненты отображать и с каким содержимым.
#jetpack Недавно попробовала Hilt, правда, только во ViewModel, и Navigation для простого кейса навигации между двумя фрагментами. Просто, удобно, быстро.
Forwarded from Android Broadcast
#DependencyInjection
Migrating from Dagger to Hilt — Is it worth it?
Hilt предназначен упростить работу с Dagger в Android, но почему-то не все спешат переходить на него, а именно:
👉 Упростить Inject в конструкторы
👉 Упростить тестирование, с помощью более легкой замены Dagger модулей и прокалывания зависимостей в граф
👉 Стандартные Dagger компоненты для основных компонентов приложения
Мне лично очень не хватает поддержки Inject в конструкторы
Migrating from Dagger to Hilt — Is it worth it?
Hilt предназначен упростить работу с Dagger в Android, но почему-то не все спешат переходить на него, а именно:
👉 Упростить Inject в конструкторы
ViewModel
и различные Worker
из WorkManager
👉 Упростить тестирование, с помощью более легкой замены Dagger модулей и прокалывания зависимостей в граф
👉 Стандартные Dagger компоненты для основных компонентов приложения
Мне лично очень не хватает поддержки Inject в конструкторы
Fragment
Команда Dodo делятся своим кейсом по преодолению проблемы с внутренним хранилищем на Realm с итоговым удалением Realm из проекта. И также предлагают ознакомиться и проверить работоспособность решения через TestFlight:
Forwarded from Рубанов про мобилу
No realm. Финал
Мы выпилили Realm из проекта за 3.5 месяца, сборка на ревью. Впереди релиз и возможные фиксы. Мы все сто раз проверили, но все равно хотим убедиться, что все работает нормально.
Если хотите помочь, то можете поставить сборку до того как она появится у всех в понедельник. Важнее всего проверить первый запуск: город выбрался, авторизация не слетела.
Если закажите что-нибудь, то будет совсем супер. Там скидка на вторую пиццу 70% по промокоду BLACK.
TestFlight научился самостоятельно обновлять версии, поэтому можете пользоваться сборками из него и стать нашим постоянным бета-тестером! Если что-то пошло не так, то делайте скриншот, там появится форма обратной связи.
Выпиливание в цифрах:
- Стартанули 12 августа, отправили на ревью 26 ноября.
- 3 месяца разрабы Realm чинили креш с которого все началось.
- 8 Мб занимает Realm просто после добавления в подфайл.
- За релиз мы срезали 20 Мб, теперь весим ≈40 Мб после распаковки. Знаем как срезать еще 10.
- Сложнее всего было переделать меню, ушло 14 дней.
- В коде были 2720 упоминаний realm. Даже после выпиливания их осталось 46, это аналитика и удаление оставшихся файлов от базы.
- У нас появился первый самостоятельный фича-фреймворк
Мы выпилили Realm из проекта за 3.5 месяца, сборка на ревью. Впереди релиз и возможные фиксы. Мы все сто раз проверили, но все равно хотим убедиться, что все работает нормально.
Если хотите помочь, то можете поставить сборку до того как она появится у всех в понедельник. Важнее всего проверить первый запуск: город выбрался, авторизация не слетела.
Если закажите что-нибудь, то будет совсем супер. Там скидка на вторую пиццу 70% по промокоду BLACK.
TestFlight научился самостоятельно обновлять версии, поэтому можете пользоваться сборками из него и стать нашим постоянным бета-тестером! Если что-то пошло не так, то делайте скриншот, там появится форма обратной связи.
Выпиливание в цифрах:
- Стартанули 12 августа, отправили на ревью 26 ноября.
- 3 месяца разрабы Realm чинили креш с которого все началось.
- 8 Мб занимает Realm просто после добавления в подфайл.
- За релиз мы срезали 20 Мб, теперь весим ≈40 Мб после распаковки. Знаем как срезать еще 10.
- Сложнее всего было переделать меню, ушло 14 дней.
- В коде были 2720 упоминаний realm. Даже после выпиливания их осталось 46, это аналитика и удаление оставшихся файлов от базы.
- У нас появился первый самостоятельный фича-фреймворк
Евгений Елчев (JonFir) опубликовал свой первый пост в своем инфоканале. Присоединяемся)
Forwarded from JonFir Blog
Screen Shot 2020-11-30 at 12.45.02.png
76.7 KB
Новая система вкладок в xcode 12
Изначально я испытал дискомфорт от работы с вкладками в новом xcode. Но спустя месяц, распробовал ее во всей красе и кажется это одно из самых удобных изменений в xcode за последнее время.
Сейчас я использую первый уровень вкладок (старых) для организации сценариев работы с проектом, а второй уровень вкладок (новых) для организации работы с файлами внутри сценария.
Я открываю по вкладке на каждую задачу надо которой я работаю в данный момент и еще по одной для тестов к каждой из задачь, а внутри зафиксирую файлы, в рамках которых произвожу изменения. Еще одна вкладка открыта для дебага кода.
В итоге я могу переключаться между задачами, прыгать между брейкоинтами и не терять контекст.
#xcode #ios #macos
Изначально я испытал дискомфорт от работы с вкладками в новом xcode. Но спустя месяц, распробовал ее во всей красе и кажется это одно из самых удобных изменений в xcode за последнее время.
Сейчас я использую первый уровень вкладок (старых) для организации сценариев работы с проектом, а второй уровень вкладок (новых) для организации работы с файлами внутри сценария.
Я открываю по вкладке на каждую задачу надо которой я работаю в данный момент и еще по одной для тестов к каждой из задачь, а внутри зафиксирую файлы, в рамках которых произвожу изменения. Еще одна вкладка открыта для дебага кода.
В итоге я могу переключаться между задачами, прыгать между брейкоинтами и не терять контекст.
#xcode #ios #macos
Forwarded from Podlodka Crew – новости и анонсы
🔥14 декабря стартует первая конференция про кроссплатформенную мобильную разработку – Podlodka Crossplatform Crew!
Никаких “Hello World!” на абстрактных примерах, только настоящий опыт внедрения и использования кроссплатформы в реальных проектах от топовых экспертов!
И традиционно для Podlodka Crew, множество полезных сессий дополнены щепоткой оригинальных фановых форматов. В программе:
🔹Интервью про кейсы внедрения Flutter, React Native, Kotlin Multiplatform Mobile в разных компаниях
🔹Воркшопы по интеграции разных технологий в существующий проект
🔹Рулетка кейсов и шоу “Прожарка”. Нет времени объяснять – это надо видеть!
🔥Расписание уже на сайте, а пока у вас есть возможность купить Early Bird билеты по сниженной цене! Ждем на борту!
Никаких “Hello World!” на абстрактных примерах, только настоящий опыт внедрения и использования кроссплатформы в реальных проектах от топовых экспертов!
И традиционно для Podlodka Crew, множество полезных сессий дополнены щепоткой оригинальных фановых форматов. В программе:
🔹Интервью про кейсы внедрения Flutter, React Native, Kotlin Multiplatform Mobile в разных компаниях
🔹Воркшопы по интеграции разных технологий в существующий проект
🔹Рулетка кейсов и шоу “Прожарка”. Нет времени объяснять – это надо видеть!
🔥Расписание уже на сайте, а пока у вас есть возможность купить Early Bird билеты по сниженной цене! Ждем на борту!
Прямо сейчас начинается первый митап разработчиков SmartMarket Сбер
https://www.youtube.com/watch?v=peuieXD20WQ&feature=youtu.be
https://www.youtube.com/watch?v=peuieXD20WQ&feature=youtu.be
YouTube
Первый митап разработчиков SmartMarket
Поговорим о возможностях SmartMarket для разработчиков. Познакомимся с инструментами создания смартапов для виртуальных ассистентов семейства Салют. Узнаем, из каких шагов состоит путь создания успешного смартапа. Выясним, какой новый пользовательский опыт…
Пообщаться с разработчиками и задать вопросы вы можете в чате:
https://t.iss.one/smartapp_studio
https://t.iss.one/smartapp_studio