Forwarded from Mobile Native ️️
Что посмотреть на выходных.
Тут выложили доклады с Mobius 2022 Autumn.
Android
• Как пройти архитектурную секцию собеседования
• Навигируемся в Jetpack Compose
• Android Navigation at scale
• Какие параметры компьютера влияют на скорость Gradle-сборки
• Gradle: Incremental compilation 101
• Нужен ли Bazel в Android-разработке?
• The Elm Architecture in Prod
• С чем мы столкнулись при создании российского магазина Android-приложений
• Android Insets и анимация клавиатуры
• GraphQL: как уговорить сервер подстроиться под приложение
• Impact Analysis. Как мы ускоряли юнит-тесты
• Векторные иконки в Android: анатомия, патофизиология, диагностика и хирургия
iOS
• Оптимизация UI с использованием Texture
• Как и зачем дробить iOS-приложение на микрофичи
• Как выстроить DI в многомодульном iOS-приложении при помощи Needle
• TDD + BDD = TBD (Tests, Business, Development). Триада инженерной культуры
• Подписки в iOS: Deep Dive
• Выжимаем максимум из SwiftUI Preview
• Keyboard avoiding in SwiftUI
• Distributed actors и где они обитают
• И ещё чуть-чуть про изображения
• Бот как сердце коммьюнити
• Как Яндекс Go самокаты BLE внедряли
Кроссплатформа
• DivKit — дивная разработка
• Почему KMM — не кроссплатформа?
• Мультиплатформенный Redux и SwiftUI / Jetpack Compose
• Быть или не быть senior'ом
• Как взломать собеседование
• ОС «Аврора» глазами Android- и iOS-разработчика
• Как избежать хаоса: навигация как отдельный логический уровень
• Перестройка: как провести рефакторинг с пользой
• Телефон, NFC и пластиковые карты — романтика!
• Работа с картой в каршеринге
• Как перестать волноваться и начать ревьюить код быстро и эффективно
• Состояние дел в Fuchsia
Тут выложили доклады с Mobius 2022 Autumn.
Android
• Как пройти архитектурную секцию собеседования
• Навигируемся в Jetpack Compose
• Android Navigation at scale
• Какие параметры компьютера влияют на скорость Gradle-сборки
• Gradle: Incremental compilation 101
• Нужен ли Bazel в Android-разработке?
• The Elm Architecture in Prod
• С чем мы столкнулись при создании российского магазина Android-приложений
• Android Insets и анимация клавиатуры
• GraphQL: как уговорить сервер подстроиться под приложение
• Impact Analysis. Как мы ускоряли юнит-тесты
• Векторные иконки в Android: анатомия, патофизиология, диагностика и хирургия
iOS
• Оптимизация UI с использованием Texture
• Как и зачем дробить iOS-приложение на микрофичи
• Как выстроить DI в многомодульном iOS-приложении при помощи Needle
• TDD + BDD = TBD (Tests, Business, Development). Триада инженерной культуры
• Подписки в iOS: Deep Dive
• Выжимаем максимум из SwiftUI Preview
• Keyboard avoiding in SwiftUI
• Distributed actors и где они обитают
• И ещё чуть-чуть про изображения
• Бот как сердце коммьюнити
• Как Яндекс Go самокаты BLE внедряли
Кроссплатформа
• DivKit — дивная разработка
• Почему KMM — не кроссплатформа?
• Мультиплатформенный Redux и SwiftUI / Jetpack Compose
• Быть или не быть senior'ом
• Как взломать собеседование
• ОС «Аврора» глазами Android- и iOS-разработчика
• Как избежать хаоса: навигация как отдельный логический уровень
• Перестройка: как провести рефакторинг с пользой
• Телефон, NFC и пластиковые карты — романтика!
• Работа с картой в каршеринге
• Как перестать волноваться и начать ревьюить код быстро и эффективно
• Состояние дел в Fuchsia
🔥10❤3👍3
Building Large-Scale Apps with SwiftUI: A Guide to Modular Architecture
Большая статья на тему построения модульной архитектуры для крупных приложений на SwiftUI.
• Modular Architecture
• Understanding the MV Pattern
• Multiple Aggregate Models
• View Specific Logic
• Screens vs Views
• Validation
• Navigation
• Grouping View Events
• Testing
Читать (En)
Большая статья на тему построения модульной архитектуры для крупных приложений на SwiftUI.
• Modular Architecture
• Understanding the MV Pattern
• Multiple Aggregate Models
• View Specific Logic
• Screens vs Views
• Validation
• Navigation
• Grouping View Events
• Testing
Читать (En)
❤10👍4🔥4🤔1
The Many Flavors of Unidirectional Architectures in Swift
Как SwiftUI и async/await изменили концепцию контейнеров состояний за последние шесть лет и как это помогает развитию однонаправленных архитектур.
• Аргументы против MVVM в SwiftUI
• Различные формы разделения логики и эффектов
• Отделение логики от эффектов
• Различные способы управления эффектами
Перевод на Хабре → О многообразии форм однонаправленных архитектур в Swift
Читать (En)
Как SwiftUI и async/await изменили концепцию контейнеров состояний за последние шесть лет и как это помогает развитию однонаправленных архитектур.
• Аргументы против MVVM в SwiftUI
• Различные формы разделения логики и эффектов
• Отделение логики от эффектов
• Различные способы управления эффектами
Перевод на Хабре → О многообразии форм однонаправленных архитектур в Swift
Читать (En)
🔥7❤2👍2👎1🤔1
The Best Way To Structure Your iOS Project
Неплохая статья для начинающих с примером организации структуры проекта.
Если коротко
- Храните рядом файлы, которые связаны друг с другом или имеют что-то общее
- Общие компоненты выносите в отдельные папки, например UI с детализацией (Indicators, TextFields, Buttons и т.д.)
Читать (En)
Неплохая статья для начинающих с примером организации структуры проекта.
Если коротко
- Храните рядом файлы, которые связаны друг с другом или имеют что-то общее
- Общие компоненты выносите в отдельные папки, например UI с детализацией (Indicators, TextFields, Buttons и т.д.)
Читать (En)
👍15🔥5❤2
Безопасная локализация строк в iOS: Localinter
Ребята из Ozon Tech делятся опытом как побороли типичные проблемы локализации для iOS-проектов, зачем собрали свой линтер для локализации и как это всё помогло упростить и автоматизировать процесс.
Читать (Ru)
Ребята из Ozon Tech делятся опытом как побороли типичные проблемы локализации для iOS-проектов, зачем собрали свой линтер для локализации и как это всё помогло упростить и автоматизировать процесс.
Читать (Ru)
🔥13👍4🤡2❤1🤔1
Swift Concurrency Instrument: чем он полезен iOS-разработчику
В Xcode 14 появился специальный шаблон профилирования в Xcode Instruments — Swift Concurrency. Он позволяет наглядно визуализировать работу с асинхронным кодом.
В статье ребята из Surf разбирают, что нам может показать Swift Concurrency шаблон и как его использовать. А также на простых примерах показывают, какие ошибки можно обнаружить с его помощью.
Читать (Ru)
В Xcode 14 появился специальный шаблон профилирования в Xcode Instruments — Swift Concurrency. Он позволяет наглядно визуализировать работу с асинхронным кодом.
В статье ребята из Surf разбирают, что нам может показать Swift Concurrency шаблон и как его использовать. А также на простых примерах показывают, какие ошибки можно обнаружить с его помощью.
Читать (Ru)
❤12👍3🔥2
iOS Tools
Несколько сервисов с полезной инфой в структурированном виде(разрешения девайсов, версии инструментов, тулзы, ссылки на гайды, cheatsheets и прочее).
👉 Screensizes
👉 iOS-Resolution
👉 iOS Ref
Несколько сервисов с полезной инфой в структурированном виде(разрешения девайсов, версии инструментов, тулзы, ссылки на гайды, cheatsheets и прочее).
👉 Screensizes
👉 iOS-Resolution
👉 iOS Ref
🔥14❤3👍2🍓1
iOS Interview Prep
Еще один, большой цикл статей для подготовки к собесам.
• Memory management
• Autorelease Pool
• Blocks and Closures
• Event Handling & Responder Chain
• Singletons
• Dependency Injection
• Concurrency Part 1
• Concurrency Part 2
• View and Layout
• App performance
❗️Medium может не открываться из РФ, т.к. РКН его заблокировал 😕
Еще один, большой цикл статей для подготовки к собесам.
• Memory management
• Autorelease Pool
• Blocks and Closures
• Event Handling & Responder Chain
• Singletons
• Dependency Injection
• Concurrency Part 1
• Concurrency Part 2
• View and Layout
• App performance
❗️Medium может не открываться из РФ, т.к. РКН его заблокировал 😕
🔥20❤4👍2
Современные паттерны навигации в iOS-приложениях
Перевод статьи Фрэнка Рауша дизайнера интерфейсов, про то, как настроить навигацию в iOS-приложении так, чтобы пользователю было легко взаимодействовать с интерфейсом.
• Структурная навигация
• Модальная навигация
• Внутренняя навигация
Оригинал тут: Modern iOS Navigation Patterns
Читать (Ru)
Перевод статьи Фрэнка Рауша дизайнера интерфейсов, про то, как настроить навигацию в iOS-приложении так, чтобы пользователю было легко взаимодействовать с интерфейсом.
• Структурная навигация
• Модальная навигация
• Внутренняя навигация
Оригинал тут: Modern iOS Navigation Patterns
Читать (Ru)
👍14🔥3❤2
WWDC 2023. Что нового для разработчика
Обзорная статья анонсированных сессий от Анны Жарковой.
• Интерактивные виджеты
• SwiftUI
• Пространственные вычисления
• Swift
• Безопасность, работа с сетью, местоположением
• Новинки Xcode, AppStore
Читать (Ru)
Обзорная статья анонсированных сессий от Анны Жарковой.
• Интерактивные виджеты
• SwiftUI
• Пространственные вычисления
• Swift
• Безопасность, работа с сетью, местоположением
• Новинки Xcode, AppStore
Читать (Ru)
👍12🔥4❤1
Новый TipKit от Apple поможет разработчикам научить людей пользоваться приложениями
Apple представила новый набор инструментов для разработчиков – TipKit, который облегчит знакомство пользователей с мобильными приложениями, показывая им советы о том, как начать работу.
TipKit будет включать шаблоны, которые будут соответствовать системным приложениям самой Apple, с возможностью настройки в соответствии с внешним видом и функциями вашего приложения.
Читать (Ru)
Apple представила новый набор инструментов для разработчиков – TipKit, который облегчит знакомство пользователей с мобильными приложениями, показывая им советы о том, как начать работу.
TipKit будет включать шаблоны, которые будут соответствовать системным приложениям самой Apple, с возможностью настройки в соответствии с внешним видом и функциями вашего приложения.
Читать (Ru)
❤17🔥5😁2👍1
Apple Design Resources
Apple выкатила UI kit iOS 17 в Figma. Там много полезного, различные варианты компонентов и контроллов, шаблоны, стили и т.д. + ссылки на гайды.
P.S. не забудьте пошарить ссылку своим дизайнерам 😉
Смотреть🌐
Apple выкатила UI kit iOS 17 в Figma. Там много полезного, различные варианты компонентов и контроллов, шаблоны, стили и т.д. + ссылки на гайды.
P.S. не забудьте пошарить ссылку своим дизайнерам 😉
Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍4🔥4
Дайджест WWDC23
Если вдруг что-то пропустили с WWDC, забирайте полезные ссылки 💪
• Highlights of new technologies introduced at WWDC23
• WWDC23 highlights
• What’s new for Apple developers
• Xcode 15
• Xcode Bookmarks: Save code landmarks & organize tasks
• Swift Macros: Extend Swift with New Kinds of Expressions
• What is new in SwiftUI after WWDC23
• WWDC23 notes
• WWDC23 SwiftData
• New SwiftUI Support for MapKit in Xcode 15
• All new frameworks presented at WWDC23
• WWDC 2023 Viewing Guide
• WWDC23 - Developer Documentation
• WWDC 2023: What’s New In Swift
• WWDC 2023: What’s New In UIKit
• WWDC 2023: What’s New In SwiftUI
• Apple Design Resources
• На смену CoreData пришёл новый фреймворк SwiftData. Разбираемся, как он упрощает хранение данных
• WWDC 2023. Что нового для разработчика
• Горячие новинки WWDC 2023
Посмотреть: WWDC23📹
Почитать: WWDC23 notes 📖
Если вдруг что-то пропустили с WWDC, забирайте полезные ссылки 💪
• Highlights of new technologies introduced at WWDC23
• WWDC23 highlights
• What’s new for Apple developers
• Xcode 15
• Xcode Bookmarks: Save code landmarks & organize tasks
• Swift Macros: Extend Swift with New Kinds of Expressions
• What is new in SwiftUI after WWDC23
• WWDC23 notes
• WWDC23 SwiftData
• New SwiftUI Support for MapKit in Xcode 15
• All new frameworks presented at WWDC23
• WWDC 2023 Viewing Guide
• WWDC23 - Developer Documentation
• WWDC 2023: What’s New In Swift
• WWDC 2023: What’s New In UIKit
• WWDC 2023: What’s New In SwiftUI
• Apple Design Resources
• На смену CoreData пришёл новый фреймворк SwiftData. Разбираемся, как он упрощает хранение данных
• WWDC 2023. Что нового для разработчика
• Горячие новинки WWDC 2023
Посмотреть: WWDC23
Почитать: WWDC23 notes 📖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6❤2⚡1💘1
What's New in Swift 5.9
🟢 Convenience
🟢
🟢 Importing forward declared Objective-C interfaces and protocols
🟢 DiscardingTaskGroups
🟢 Add
🟢 Custom Actor Executors
🟢 Expression Macros
🟢 Attached Macros
🟢 Freestanding Declaration Macros
🟢 Package Manager Support for Custom Macros
🟢 Value and Type Parameter Packs
Читать (En)
Async[Throwing]Stream.makeStream
methodsif
and switch
expressionssleep(for:)
to ClockЧитать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍4❤3
What’s new in SwiftUI for iOS 17
Про доступность visionOS SDK вы уже и так знаете, нет смысла писать. Вместо этого, предлагаю ознакомиться с обновлениями SwiftUI в iOS 17.
Scroll view improvements
• How to make a ScrollView snap with paging or between child views
• How to disable ScrollView clipping so contents overflow
• How to make a ScrollView start at the bottom
• How to indent the content or scroll indicators in a ScrollView
• How to make views scroll with a custom transition
• How to flash the scroll bar indicators of a ScrollView or List
• How to enable vertical page scrolling
Drawing and animation improvements
• How to add Metal shaders to SwiftUI views using layer effects
• How to dynamically adjust the appearance of a view based on its size and location
• How to animate SF Symbols
• How to run a completion callback when an animation finishes
• How to create multi-step animations using phase animators
• How to combine shapes to create new shapes
• How to adjust the size of a view relative to its container
More welcome improvements
• How to add in-app purchases in SwiftUI
• How to add an inspector to any view
• How to detect and respond to key press events
• How to control which NavigationSplitView column is shown in compact layouts
• How to add haptic effects using sensory feedback
• How to tell the user that no content is available
• How to read the red, green, and blue values from a Color
• How to make buttons that repeat their action when pressed
Читать (En)
Про доступность visionOS SDK вы уже и так знаете, нет смысла писать. Вместо этого, предлагаю ознакомиться с обновлениями SwiftUI в iOS 17.
Scroll view improvements
• How to make a ScrollView snap with paging or between child views
• How to disable ScrollView clipping so contents overflow
• How to make a ScrollView start at the bottom
• How to indent the content or scroll indicators in a ScrollView
• How to make views scroll with a custom transition
• How to flash the scroll bar indicators of a ScrollView or List
• How to enable vertical page scrolling
Drawing and animation improvements
• How to add Metal shaders to SwiftUI views using layer effects
• How to dynamically adjust the appearance of a view based on its size and location
• How to animate SF Symbols
• How to run a completion callback when an animation finishes
• How to create multi-step animations using phase animators
• How to combine shapes to create new shapes
• How to adjust the size of a view relative to its container
More welcome improvements
• How to add in-app purchases in SwiftUI
• How to add an inspector to any view
• How to detect and respond to key press events
• How to control which NavigationSplitView column is shown in compact layouts
• How to add haptic effects using sensory feedback
• How to tell the user that no content is available
• How to read the red, green, and blue values from a Color
• How to make buttons that repeat their action when pressed
Читать (En)
❤9🔥5👍1
Многопоточность в iOS-разработке
Разбор с примерами, различных инструментов для мнопоточки в iOS(основы, особенности, проблемы, что в каких случаях использовать и т.д.).
• Основы многопоточности
• Многопоточность в Swift
• Использование pthread и NSThread
• Grand Central Dispatch в Swift: углубленный
обзор с примерами
• NSLock в Swift: управление доступом к общим
ресурсам
• Await и async в Swift: новые горизонты
многопоточности
Читать (Ru)
Разбор с примерами, различных инструментов для мнопоточки в iOS(основы, особенности, проблемы, что в каких случаях использовать и т.д.).
• Основы многопоточности
• Многопоточность в Swift
• Использование pthread и NSThread
• Grand Central Dispatch в Swift: углубленный
обзор с примерами
• NSLock в Swift: управление доступом к общим
ресурсам
• Await и async в Swift: новые горизонты
многопоточности
Читать (Ru)
🔥25👍6❤4
Как катить фичи без релизов
Две части из цикла «Как катить фичи без релизов».
В первой части рассказывается про один из подходов BDUI – Виджеты, который позволяет переиспользовать компоненты, гибко настраивать и обновлять функциональность приложения без релизов.
Во второй части чуть больше технических деталей как это всё настраивается, конфигурируется и превращается в верстку с учётом дизайн-системы.
• Часть 1. Про виджеты
• Часть 2. Про низкоуровневый Server Driven UI
Две части из цикла «Как катить фичи без релизов».
В первой части рассказывается про один из подходов BDUI – Виджеты, который позволяет переиспользовать компоненты, гибко настраивать и обновлять функциональность приложения без релизов.
Во второй части чуть больше технических деталей как это всё настраивается, конфигурируется и превращается в верстку с учётом дизайн-системы.
• Часть 1. Про виджеты
• Часть 2. Про низкоуровневый Server Driven UI
🔥12❤2👍2
Немного о перечислениях в Swift
В статье рассматриваются реализации перечислений, как осуществляется работа с памятью в основных реализациях и к каким приёмам прибегает компилятор для её оптимизации.
• Singleton enums
• No-payload strategy
• Single-payload strategy
• Many-payloads strategy
• Resilient strategy
Читать (Ru)
В статье рассматриваются реализации перечислений, как осуществляется работа с памятью в основных реализациях и к каким приёмам прибегает компилятор для её оптимизации.
• Singleton enums
• No-payload strategy
• Single-payload strategy
• Many-payloads strategy
• Resilient strategy
Читать (Ru)
🔥13❤5👍2😁1💩1
Awesome iOS Dev Tools
Забирайте большущий список Awesome iOS Dev Tools.
• Analytics
• App Store Optimization
• Backends
• Code
• Debugging
• Deployment
• Design
• Documentation
• Graphics & Animation
• Localization
• Machine Learning
• Mapping & Location
• Messaging
• Monetisation & Payments
• Networking
• Productivity
• Support
• Testing
Читать (En)
Забирайте большущий список Awesome iOS Dev Tools.
• Analytics
• App Store Optimization
• Backends
• Code
• Debugging
• Deployment
• Design
• Documentation
• Graphics & Animation
• Localization
• Machine Learning
• Mapping & Location
• Messaging
• Monetisation & Payments
• Networking
• Productivity
• Support
• Testing
Читать (En)
🔥18👍3❤2