iOS Microapps Architecture
Серия из 4-х частей про модульную архитектуру и Microapps в частности. В статьях в качестве примера демонстрируется реализация проекта по Microapps с помощью SPM.
• Part 1
• Part 2
• Part 3
• Part 4
Пример кода на GitHub → Microapp Architecture Demo
Серия из 4-х частей про модульную архитектуру и Microapps в частности. В статьях в качестве примера демонстрируется реализация проекта по Microapps с помощью SPM.
• Part 1
• Part 2
• Part 3
• Part 4
Пример кода на GitHub → Microapp Architecture Demo
🔥19❤3👍3💩1
Mastering Observation framework in Swift
Apple представила новый фреймворк Observation, основанный на макрофункциях языка Swift. Observation в сочетании с функциями Swift Concurrency позволяет заменить Combine, который выглядит устаревшим по мнению Apple.
В статье рассказывается, как использовать фреймворк Observation для обработки потоков данных в наших приложениях.
Перевод от AppTractor → Осваиваем фреймворк Observation в Swift
Читать (En)
Apple представила новый фреймворк Observation, основанный на макрофункциях языка Swift. Observation в сочетании с функциями Swift Concurrency позволяет заменить Combine, который выглядит устаревшим по мнению Apple.
В статье рассказывается, как использовать фреймворк Observation для обработки потоков данных в наших приложениях.
Перевод от AppTractor → Осваиваем фреймворк Observation в Swift
Читать (En)
👍7❤4🔥1
Forwarded from Mobile Native ️️
Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти
В статье рассказывается, что такое BDUI с точки зрения бэкенд-разработчика, с какими сложностями можно столкнуться, как собирать JSON на бекенде и т.д.
Читать (Ru)
В статье рассказывается, что такое BDUI с точки зрения бэкенд-разработчика, с какими сложностями можно столкнуться, как собирать JSON на бекенде и т.д.
Читать (Ru)
🔥4💩3👍2❤1🤡1
10 tips to increase your iOS code quality – Part 2
Вторая часть с небольшими советами, которые помогут улучшить качество кода.
🟢 Composable UI
🟢 Reusable styling with view modifiers
🟢 Include Unit Tests
🟢 Code documentation
🟢 Enums
🟢 Core Data + SwiftUI
🟢 Coding Style Guide
🟢 Dependency injection
🟢 Design System
Первая часть тут.
Читать (En)
Вторая часть с небольшими советами, которые помогут улучшить качество кода.
Первая часть тут.
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3👎2🔥2
Forwarded from Mobile Native ️️
Kotlin Multiplatform перешёл в stable. Что это значит?
Что изменилось с переходом в релиз.
👉 Технология стабильна
👉 Соблюдение совместимости
👉 Экосистема
👉 База материалов по KMP
👉 Ускорение скорости сборки
👉 Развитие библиотек
👉 Улучшение интеропа со Swift
👉 Compose multiplatform
Читать (Ru)
Что изменилось с переходом в релиз.
👉 Технология стабильна
👉 Соблюдение совместимости
👉 Экосистема
👉 База материалов по KMP
👉 Ускорение скорости сборки
👉 Развитие библиотек
👉 Улучшение интеропа со Swift
👉 Compose multiplatform
Читать (Ru)
🔥12❤3👍3🤡3👎1
Ускоряем прохождение iOS UI-тестов
Серия статей про то, как ускорить прохождение UI-тестов: что такое test runner и какие бывают, зачем распараллеливать тесты, зачем стартовать приложение с определенного экрана и какие способы реализации существуют и т.д.
• Запуск тестов без сборки проекта
• Распараллеливание тестов
• Старт приложения с определенного экрана
Серия статей про то, как ускорить прохождение UI-тестов: что такое test runner и какие бывают, зачем распараллеливать тесты, зачем стартовать приложение с определенного экрана и какие способы реализации существуют и т.д.
• Запуск тестов без сборки проекта
• Распараллеливание тестов
• Старт приложения с определенного экрана
🔥8❤4👍1💩1🤡1
Mastering in SwiftUI
Большая и полезная статья с примерами кода, в которой рассматриваются важные моменты, которые помогут вам повысить производительность и эффективность разработки.
• Which architecture is better: Redux or MVVM?
• Use
• Create
• Breaking down the content of the body into smaller to minimize the compilation time
• Prefer
• Declare Observable objects at a specific place to avoid unnecessary UI update
• Find which data change is causing a SwiftUI view to update
• Use LazyHStack and LazyVStack if you have a long list
• Is there anything similar to viewDidLoad()?
• Use UIKit components directly in SwiftUI
• Conditional modifier
• Avoid using .padding and .frame together
• Use GeometryReader wisely
• Use AnyView occasionally
• Must use ID with Foreach and List
• Prefer using Text over Label
• Use Group to return multiple view instances
• Use .fixedSize() to specify that the frame doesn’t change
Перевод от AppTractor → Мастерство работы в SwiftUI
Читать (En)
Большая и полезная статья с примерами кода, в которой рассматриваются важные моменты, которые помогут вам повысить производительность и эффективность разработки.
• Which architecture is better: Redux or MVVM?
• Use
@StateObject
and @ObservableObject
• Create
@Published
variable with care• Breaking down the content of the body into smaller to minimize the compilation time
• Prefer
@State
for the animations instead of @Published
• Declare Observable objects at a specific place to avoid unnecessary UI update
• Find which data change is causing a SwiftUI view to update
• Use LazyHStack and LazyVStack if you have a long list
• Is there anything similar to viewDidLoad()?
• Use UIKit components directly in SwiftUI
• Conditional modifier
• Avoid using .padding and .frame together
• Use GeometryReader wisely
• Use AnyView occasionally
• Must use ID with Foreach and List
• Prefer using Text over Label
• Use Group to return multiple view instances
• Use .fixedSize() to specify that the frame doesn’t change
Перевод от AppTractor → Мастерство работы в SwiftUI
Читать (En)
🔥7❤1👍1
Прививка от созависимости. Зачем нужен DI и как он работает в iOS-приложениях
Статья от
👉 Какую проблему решает DI
👉 Что такое DI и инверсия зависимостей?
👉 Примеры реализации: библиотеки и паттерны
👉 Готовые библиотеки
👉 О многомодульности в проекте
Читать (Ru)
hh.ru
Статья от
hh.ru
, в которой рассматриваются основы DI, какую проблему решает этот принцип, возможные варианты реализации: паттерны и популярные библиотеки + подробно рассказывают как работает DI в многомодульном iOS проекте hh.ru
.👉 Какую проблему решает DI
👉 Что такое DI и инверсия зависимостей?
👉 Примеры реализации: библиотеки и паттерны
👉 Готовые библиотеки
👉 О многомодульности в проекте
hh.ru
Читать (Ru)
🔥8👍3❤1
Всех с наступающим Новым Годом! 🎅 🎄
2023 год был крутым и продуктивным, хоть и со своими заморочками.
В новогом году желаю вам оставаться или стать крутым спецом, разиваваться, крутых проектов и успехов во всех сферах и начинаниях.
И конечно же всем спасибо, за то, что читаете канал, репостите, оставляете реакции.
С наступающим друзья, ура!🥂
2023 год был крутым и продуктивным, хоть и со своими заморочками.
В новогом году желаю вам оставаться или стать крутым спецом, разиваваться, крутых проектов и успехов во всех сферах и начинаниях.
И конечно же всем спасибо, за то, что читаете канал, репостите, оставляете реакции.
С наступающим друзья, ура!🥂
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉6❤4🎄3
Forwarded from Mobile Native ️️
Новогодний Дайджест 🎅
Итак ребята, если вдруг вам нечем будет заняться в новогодние праздники, специально для вас собрал наиболее популярные посты в структурированном виде за весь год 😱, точно найдете для себя что-то полезное 😉
Android🖥
• 7 Jetpack Compose Projects to Become a Better Android Developer
• 10 Open-Source Projects That’ll Make You Excited About Using Jetpack Compose
• Jetpack Compose Samples
• Jetpack Compose Codelabs
• Android Basics with Compose
• Осознанная оптимизация Compose
• Best Practices for Compose Navigation in Multi-Module Project
• Migrating to Jetpack Compose — an interop love story
• Performance with Jetpack Compose
• Jetpack Compose: Mastering States
• Реализуем современный UI на Jetpack Compose
• Android Kotlin Coroutines interview questions
• Работа с асинхронными операциями с помощью Kotlin Coroutines
• Coroutines Guide
• Kotlin Coroutines Recipes
• Kotlin Coroutines Best practices
• Kotlin Coroutines Tutorial for Android: Getting Started
• От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin.
• Learn Kotlin Flow by real examples for Android
• Kotlin. Коллекции
• Серия статей – Kotlin под капотом
• Mastering Kotlin : A Comprehensive Guide
• Вопросы и ответы для собеседования по Kotlin
• Inline, noinline, crossinline, reified in kotlin with examples
• Best practices for error handling in Kotlin
• Kotlin Performance Tuning: 20 Best Practices You Should Know
• Kotlin: взгляд изнутри — преимущества, недостатки и особенности
• Teach Computer Science with Kotlin
• Архитектура Android. Понятно и подробно
• Guide to Good Android App Architetture
• Clean Android multi-module offline-first scalable app in 2022
• Clean Architecture for Android Sample Project
• Modern Android Development in 2023
• Multi-Module Architecture in Android
• The "Real" Modularization in Android
• How to architect Android apps
• Crash Course on the Android UI Layer
• Android-разработка для новичков: 20+ полезных ресурсов
• Android Developer Roadmap 2023
• Deep Dive Into Android Memory
• Где и как можно ускорить приложение на Android
• Эффективное и комплексное устранение утечек памяти в Android
• How ViewModel works under the hood
• Best Practises In ViewModel
• Communicating with fragments
• Многопоточность в мобильной разработке
• Gradle Cache: Your build’s best friend
• Shielding Your App: Implementing Best Practices for Android Security
• Reverse Engineering and Analyzing Android Apps
• Обзор актуальных инструментов шифрования в Android
• Ускоряем поиск по коду в Android Studio
• Список фишек Android Studio для ускорения разработки
• Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
iOS💸
• In-App Purchases in iOS
• Swift iOS interview questions and answers
• 7 iOS Projects to Become a Better iOS Developer
• Разбираем ошибки начинающих iOS-разработчиков
• Как не потерять голову (и память) при поиске утечек в iOS
• Building Large-Scale Apps with SwiftUI: A Guide to Modular Architecture
• Swift async/await. Чем он лучше GCD?
• Как стать iOS-разработчиком?
• Многопоточность в iOS-разработке
• Awesome iOS Dev Tools
• Полезные iOS-инструменты для дебаггинга
• iOS Developer Roadmap 2023
• Расширенное управление памятью с помощью Unsafe Swift
• 10 quick tips to increase your iOS code quality
• 10 tips to increase your iOS code quality – Part 2
• Server-Driven UI using SwiftUI
• Книги по Swift и iOS-разработке для начинающих специалистов и профессионалов
• Ускоряем прохождение iOS UI-тестов
• Mastering in SwiftUI
• Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи
Common 🛠
• Основы алгоритмов
• Git Cheat Sheet
• Книга – Чистый код: создание, анализ и рефакторинг.
• Чистый код
• System Design Interview
• Clean Code — A practical approach
• Cracking the Mobile System Design Interview (iOS & Android)
• Делай нейминг как сеньор
• Mobile Applications Data Security
Что посмотреть📹
• Часть 1
• Часть 2
• Часть 3
Еще раз с наступающим друзья, увидимся в январе 😉
Итак ребята, если вдруг вам нечем будет заняться в новогодние праздники, специально для вас собрал наиболее популярные посты в структурированном виде за весь год 😱, точно найдете для себя что-то полезное 😉
Android
• 7 Jetpack Compose Projects to Become a Better Android Developer
• 10 Open-Source Projects That’ll Make You Excited About Using Jetpack Compose
• Jetpack Compose Samples
• Jetpack Compose Codelabs
• Android Basics with Compose
• Осознанная оптимизация Compose
• Best Practices for Compose Navigation in Multi-Module Project
• Migrating to Jetpack Compose — an interop love story
• Performance with Jetpack Compose
• Jetpack Compose: Mastering States
• Реализуем современный UI на Jetpack Compose
• Android Kotlin Coroutines interview questions
• Работа с асинхронными операциями с помощью Kotlin Coroutines
• Coroutines Guide
• Kotlin Coroutines Recipes
• Kotlin Coroutines Best practices
• Kotlin Coroutines Tutorial for Android: Getting Started
• От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin.
• Learn Kotlin Flow by real examples for Android
• Kotlin. Коллекции
• Серия статей – Kotlin под капотом
• Mastering Kotlin : A Comprehensive Guide
• Вопросы и ответы для собеседования по Kotlin
• Inline, noinline, crossinline, reified in kotlin with examples
• Best practices for error handling in Kotlin
• Kotlin Performance Tuning: 20 Best Practices You Should Know
• Kotlin: взгляд изнутри — преимущества, недостатки и особенности
• Teach Computer Science with Kotlin
• Архитектура Android. Понятно и подробно
• Guide to Good Android App Architetture
• Clean Android multi-module offline-first scalable app in 2022
• Clean Architecture for Android Sample Project
• Modern Android Development in 2023
• Multi-Module Architecture in Android
• The "Real" Modularization in Android
• How to architect Android apps
• Crash Course on the Android UI Layer
• Android-разработка для новичков: 20+ полезных ресурсов
• Android Developer Roadmap 2023
• Deep Dive Into Android Memory
• Где и как можно ускорить приложение на Android
• Эффективное и комплексное устранение утечек памяти в Android
• How ViewModel works under the hood
• Best Practises In ViewModel
• Communicating with fragments
• Многопоточность в мобильной разработке
• Gradle Cache: Your build’s best friend
• Shielding Your App: Implementing Best Practices for Android Security
• Reverse Engineering and Analyzing Android Apps
• Обзор актуальных инструментов шифрования в Android
• Ускоряем поиск по коду в Android Studio
• Список фишек Android Studio для ускорения разработки
• Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
iOS
• In-App Purchases in iOS
• Swift iOS interview questions and answers
• 7 iOS Projects to Become a Better iOS Developer
• Разбираем ошибки начинающих iOS-разработчиков
• Как не потерять голову (и память) при поиске утечек в iOS
• Building Large-Scale Apps with SwiftUI: A Guide to Modular Architecture
• Swift async/await. Чем он лучше GCD?
• Как стать iOS-разработчиком?
• Многопоточность в iOS-разработке
• Awesome iOS Dev Tools
• Полезные iOS-инструменты для дебаггинга
• iOS Developer Roadmap 2023
• Расширенное управление памятью с помощью Unsafe Swift
• 10 quick tips to increase your iOS code quality
• 10 tips to increase your iOS code quality – Part 2
• Server-Driven UI using SwiftUI
• Книги по Swift и iOS-разработке для начинающих специалистов и профессионалов
• Ускоряем прохождение iOS UI-тестов
• Mastering in SwiftUI
• Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи
Common 🛠
• Основы алгоритмов
• Git Cheat Sheet
• Книга – Чистый код: создание, анализ и рефакторинг.
• Чистый код
• System Design Interview
• Clean Code — A practical approach
• Cracking the Mobile System Design Interview (iOS & Android)
• Делай нейминг как сеньор
• Mobile Applications Data Security
Что посмотреть
• Часть 1
• Часть 2
• Часть 3
Еще раз с наступающим друзья, увидимся в январе 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄6👍5❤3🍾2
Как Додо Пицца доставляет свежий код: история мобильного CI для iOS
Ребята из Додо Пицца рассказывают как собрали свой CI на М1, с виртуализацией и на полном нативе.
👉 TeamCity с раннером на Mac Mini
👉 Раннеры в Bitrise
👉 Self-hosted GitHub Actions Runners
👉 Cilicon виртуализация.
Читать (Ru)
Ребята из Додо Пицца рассказывают как собрали свой CI на М1, с виртуализацией и на полном нативе.
👉 TeamCity с раннером на Mac Mini
👉 Раннеры в Bitrise
👉 Self-hosted GitHub Actions Runners
👉 Cilicon виртуализация.
Читать (Ru)
❤5👍3🔥3
ScrollView с прилипающим выделенным элементом на SwiftUI
Гайд как при скролле запиннить элемент из ScrollView к верхней границе на SwiftUI.
Читать (Ru)
Гайд как при скролле запиннить элемент из ScrollView к верхней границе на SwiftUI.
Читать (Ru)
🔥13❤2💩2👍1👨💻1
Разборы важных новинок для iOS-разработки с WWDC 2023
Разборы новинок для iOS-разработки с WWDC 2023 от ребят из KTS.
👉 Mergeable libraries
👉 Что нового в Xcode
👉 Push Notifications. Что менялось в последние годы?
👉 Live Activities
👉 Что нового в UIKit
👉 Что нового в Swift 5.9
👉 Swift Macros
👉 SwiftData
Читать (Ru)
Разборы новинок для iOS-разработки с WWDC 2023 от ребят из KTS.
👉 Mergeable libraries
👉 Что нового в Xcode
👉 Push Notifications. Что менялось в последние годы?
👉 Live Activities
👉 Что нового в UIKit
👉 Что нового в Swift 5.9
👉 Swift Macros
👉 SwiftData
Читать (Ru)
❤11🔥7👍2💩1
Error handling in Swift
Гайд с примерами кода, по обработке ошибок с использованием
Читать (En)
Гайд с примерами кода, по обработке ошибок с использованием
throw
и do-catch
.Читать (En)
👍8❤3🔥2
Forwarded from Mobile Native ️️
Как снять логи при краше мобильного приложения?
Не уверен, что вам, как разработчикам будет полезно, но всё же – подробный гайд как снимать логи крешей приложений разными способами в iOS/Android.
Если ваши QA не умеют этого делать, можно переслать им статью 😉
Читать (Ru)
Не уверен, что вам, как разработчикам будет полезно, но всё же – подробный гайд как снимать логи крешей приложений разными способами в iOS/Android.
Если ваши QA не умеют этого делать, можно переслать им статью 😉
Читать (Ru)
🔥5👍3❤2💩1🥱1
Полезные материалы для начинающих iOS разработчиков
Подборка полезных материалов для начинающих, с базовыми рекомендациями по обучению, книгами и статьями на различные темы.
Читать (Ru)
Подборка полезных материалов для начинающих, с базовыми рекомендациями по обучению, книгами и статьями на различные темы.
Читать (Ru)
👍7🔥5❤1👎1💩1
Упрощаем локализацию iOS-приложения со String Catalogs
Статья о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки с помощью String Catalogs.
👉 Что такое Strings Catalogs
👉 Преимущества
👉 Какие бывают статусы
👉 Немного практики
👉 Разные строки для различных устройств
👉 Автоплюрализация
👉 Ручное управление строками
👉 Сколько каталогов можно создавать
👉 Заключение
Читать (En)
Статья о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки с помощью String Catalogs.
👉 Что такое Strings Catalogs
👉 Преимущества
👉 Какие бывают статусы
👉 Немного практики
👉 Разные строки для различных устройств
👉 Автоплюрализация
👉 Ручное управление строками
👉 Сколько каталогов можно создавать
👉 Заключение
Читать (En)
🔥12❤3👍3
Кто ты, SwiftData
Статья с разбором основных концепций и киллер-фич SwiftData. Как устроена под капотом и как можно мигрировать с CoreData на актуальную SwiftData.
👉 Концепция
👉 Концепция Model Container
👉 Концепция Predicate
👉 Интеграция со SwiftConcurrency
👉 CoreData и SwiftData вместе
👉 Детали SwiftData
Читать (Ru)
Статья с разбором основных концепций и киллер-фич SwiftData. Как устроена под капотом и как можно мигрировать с CoreData на актуальную SwiftData.
👉 Концепция
@Model
👉 Концепция Model Container
👉 Концепция Predicate
👉 Интеграция со SwiftConcurrency
👉 CoreData и SwiftData вместе
👉 Детали SwiftData
Читать (Ru)
👍6❤4🔥3🤡1
Concurrency-safe global variables to prevent data races
Материал про использование глобальных переменных в многопоточке(что такое глобальные переменные, как не напороться на data races, создание глобальных переменных).
👉 What are global variables?
👉 Creating concurrency-safe global variables
👉 Marking a global variable as nonisolated unsafe
Читать (En)
Материал про использование глобальных переменных в многопоточке(что такое глобальные переменные, как не напороться на data races, создание глобальных переменных).
👉 What are global variables?
👉 Creating concurrency-safe global variables
👉 Marking a global variable as nonisolated unsafe
Читать (En)
🔥5👍3❤1
Уменьшаем boilerplate с помощью Swift Macros
Статья с разбором Swift макросов: что такое Swift Macros, сравнение кодогенерации от Apple со сторонними решениями(Liquid, Generamba, Sourcery), как создать собственный Swift Macros.
Читать (Ru)
Статья с разбором Swift макросов: что такое Swift Macros, сравнение кодогенерации от Apple со сторонними решениями(Liquid, Generamba, Sourcery), как создать собственный Swift Macros.
Читать (Ru)
👍8🔥2🤔1💩1
10 Tips for Writing Cleaner and More Readable Swift Code
Несколько рекомендаций, которые помогу вам писать более понятный и легкий для чтения Swift код.
👉 Observe naming standards
👉 Use blank space
👉 Keep it simple
👉 Comment cod
👉 Use guard statements
👉 Apply enums
👉 Use optionals
👉 Use extensions
👉 Use protocols
👉 Utilize functional programming methods
Читать (En)
Несколько рекомендаций, которые помогу вам писать более понятный и легкий для чтения Swift код.
👉 Observe naming standards
👉 Use blank space
👉 Keep it simple
👉 Comment cod
👉 Use guard statements
👉 Apply enums
👉 Use optionals
👉 Use extensions
👉 Use protocols
👉 Utilize functional programming methods
Читать (En)
👍4❤3🔥2💩1