Swift Tips
3.28K subscribers
456 photos
16 videos
2 files
434 links
Ежедневные советы, подсказки, лайфхаки и статьи по iOS и Swift.

По всем вопросам: @artemiygreg
Найти проект: @ios_job
Download Telegram
iOS Microapps Architecture

Серия из 4-х частей про модульную архитектуру и Microapps в частности. В статьях в качестве примера демонстрируется реализация проекта по Microapps с помощью SPM.

• Part 1
• Part 2
• Part 3
• Part 4

Пример кода на GitHub → Microapp Architecture Demo
🔥193👍3💩1
Mastering Observation framework in Swift

Apple представила новый фреймворк Observation, основанный на макрофункциях языка Swift. Observation в сочетании с функциями Swift Concurrency позволяет заменить Combine, который выглядит устаревшим по мнению Apple.

В статье рассказывается, как использовать фреймворк Observation для обработки потоков данных в наших приложениях.

Перевод от AppTractor → Осваиваем фреймворк Observation в Swift

Читать (En)
👍74🔥1
Forwarded from Mobile Native ️️
Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти

В статье рассказывается, что такое BDUI с точки зрения бэкенд-разработчика, с какими сложностями можно столкнуться, как собирать JSON на бекенде и т.д.

Читать (Ru)
🔥4💩3👍21🤡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)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53👎2🔥2
Forwarded from Mobile Native ️️
Kotlin Multiplatform перешёл в stable. Что это значит?

Что изменилось с переходом в релиз.

👉 Технология стабильна
👉 Соблюдение совместимости
👉 Экосистема
👉 База материалов по KMP
👉 Ускорение скорости сборки
👉 Развитие библиотек
👉 Улучшение интеропа со Swift
👉 Compose multiplatform

Читать (Ru)
🔥123👍3🤡3👎1
Ускоряем прохождение iOS UI-тестов

Серия статей про то, как ускорить прохождение UI-тестов: что такое test runner и какие бывают, зачем распараллеливать тесты, зачем стартовать приложение с определенного экрана и какие способы реализации существуют и т.д.

• Запуск тестов без сборки проекта
• Распараллеливание тестов
• Старт приложения с определенного экрана
🔥84👍1💩1🤡1
Mastering in SwiftUI

Большая и полезная статья с примерами кода, в которой рассматриваются важные моменты, которые помогут вам повысить производительность и эффективность разработки.

• 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)
🔥71👍1
Прививка от созависимости. Зачем нужен DI и как он работает в iOS-приложениях hh.ru

Статья от hh.ru, в которой рассматриваются основы DI, какую проблему решает этот принцип, возможные варианты реализации: паттерны и популярные библиотеки + подробно рассказывают как работает DI в многомодульном iOS проекте hh.ru.

👉 Какую проблему решает DI
👉 Что такое DI и инверсия зависимостей?
👉 Примеры реализации: библиотеки и паттерны
👉 Готовые библиотеки
👉 О многомодульности в проекте hh.ru

Читать (Ru)
🔥8👍31
Всех с наступающим Новым Годом! 🎅🎄

2023 год был крутым и продуктивным, хоть и со своими заморочками.

В новогом году желаю вам оставаться или стать крутым спецом, разиваваться, крутых проектов и успехов во всех сферах и начинаниях.

И конечно же всем спасибо, за то, что читаете канал, репостите, оставляете реакции.

С наступающим друзья, ура!🥂
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉64🎄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

Еще раз с наступающим друзья, увидимся в январе 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄6👍53🍾2
Как Додо Пицца доставляет свежий код: история мобильного CI для iOS

Ребята из Додо Пицца рассказывают как собрали свой CI на М1, с виртуализацией и на полном нативе.

👉 TeamCity с раннером на Mac Mini
👉 Раннеры в Bitrise
👉 Self-hosted GitHub Actions Runners
👉 Cilicon виртуализация.

Читать (Ru)
5👍3🔥3
ScrollView с прилипающим выделенным элементом на SwiftUI

Гайд как при скролле запиннить элемент из ScrollView к верхней границе на SwiftUI.

Читать (Ru)
🔥132💩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)
11🔥7👍2💩1
Error handling in Swift

Гайд с примерами кода, по обработке ошибок с использованием throw и do-catch.

Читать (En)
👍83🔥2
Forwarded from Mobile Native ️️
Как снять логи при краше мобильного приложения?

Не уверен, что вам, как разработчикам будет полезно, но всё же – подробный гайд как снимать логи крешей приложений разными способами в iOS/Android.

Если ваши QA не умеют этого делать, можно переслать им статью 😉

Читать (Ru)
🔥5👍32💩1🥱1
Полезные материалы для начинающих iOS разработчиков

Подборка полезных материалов для начинающих, с базовыми рекомендациями по обучению, книгами и статьями на различные темы.

Читать (Ru)
👍7🔥51👎1💩1
Упрощаем локализацию iOS-приложения со String Catalogs

Статья о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки с помощью String Catalogs.

👉 Что такое Strings Catalogs
👉 Преимущества
👉 Какие бывают статусы
👉 Немного практики
👉 Разные строки для различных устройств
👉 Автоплюрализация
👉 Ручное управление строками
👉 Сколько каталогов можно создавать
👉 Заключение

Читать (En)
🔥123👍3
Кто ты, SwiftData

Статья с разбором основных концепций и киллер-фич SwiftData. Как устроена под капотом и как можно мигрировать с CoreData на актуальную SwiftData.

👉 Концепция @Model
👉 Концепция Model Container
👉 Концепция Predicate
👉 Интеграция со SwiftConcurrency
👉 CoreData и SwiftData вместе
👉 Детали SwiftData

Читать (Ru)
👍64🔥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)
🔥5👍31
Уменьшаем boilerplate с помощью Swift Macros

Статья с разбором 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)
👍43🔥2💩1