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

По всем вопросам: @artemiygreg
Найти проект: @ios_job
Download Telegram
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
Как Додо Пицца доставляет свежий код: история мобильного CI для iOS

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

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

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

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

Читать (Ru)
Разборы важных новинок для iOS-разработки с WWDC 2023

Разборы новинок для iOS-разработки с WWDC 2023 от ребят из KTS.

👉 Mergeable libraries
👉 Что нового в Xcode
👉 Push Notifications. Что менялось в последние годы?
👉 Live Activities
👉 Что нового в UIKit
👉 Что нового в Swift 5.9
👉 Swift Macros
👉 SwiftData

Читать (Ru)
Error handling in Swift

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

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

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

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

Читать (Ru)
Полезные материалы для начинающих iOS разработчиков

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

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

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

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

Читать (En)
Кто ты, SwiftData

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

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

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

Статья с разбором Swift макросов: что такое Swift Macros, сравнение кодогенерации от Apple со сторонними решениями(Liquid, Generamba, Sourcery), как создать собственный Swift Macros.

Читать (Ru)
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)
Forwarded from Mobile Native ️️
Что ждёт мобильную разработку в 2024 году

Яндекс Практикум рассказывает о трендах мобильной разработки, как будет (и будет ли) меняться сфера в 2024 году.

👉 Что такое мобильная разработка и чем она отличается от других направлений
👉 Вакансий стало меньше, но перспективы у джуниоров есть
👉 iOS-разработка никуда не денется — даже несмотря на ограничения
👉 Нативная разработка по-прежнему будет востребованнее кросс-платформенной
👉 Главный приоритет для джуниоров — стабильность, а для работодателей — ресурсность
👉 Нетворкинг и навыки коммуникации будут важны как никогда
👉 Нейросеть — уже привычный инструмент в руках разработчиков
👉 RuStore укрепит позиции, а отечественные операционные системы вряд ли
👉 Apple Vision Pro не повлияет массово на наём и развитие компаний
👉 SwiftUI продолжит набирать популярность
👉 Compose будет популярнее, но не вытеснит XML

Читать (Ru)
Опровергаю пять архитектурных заблуждений

Толковая статья от iOS-разработчика из Тинькофф, с разбором основных заблуждений в вопросах архитектуры. А также с чего начинается архитектура и в чем разница между архитектурными шаблонами и архитектурой.

Топ-5 заблуждений в вопросах архитектуры

👉 MVC — это архитектура приложения
👉 Разработка — это только написание кода
👉 Бизнес-логика — это все, кроме UI
👉 Самый верхний слой — это UI
👉 В UI логику не держим

Читать (Ru)
Камера как сканер штрих-кодов: проблемы, инструменты и эксперименты

Статья от Ozon Tech, про то, с какими проблемами могут столкнуться пользователи при использовании мобильного сканера и какие есть способы их решить.

👉 Проблемы мобильного сканера
👉 Сравнение инструментов, которые предлагает Apple
👉 Технический обзор одного из них
👉 История его внедрения в приложение и конечные результаты

Читать (Ru)
Топ-5 распространенных практик написания хорошего Swift-кода

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

👉 Циклы for и forEach
👉 Проверка диапазона
👉 Использование Map и циклов for для преобразований
👉 Ленивые свойства и немедленная инициализация
👉 Структуры и классы: Выбираем между ссылочными и значимыми типами

Читать (Ru)
iOS — How to Integrate Camera APIs using SwiftUI

Гайд по интеграции Camera API на SwiftUI.

• Display Camera Preview
• Add Camera Manager
• Add a View Model
• Add Camera Screen Design
• Manage the Flashlight
• Manage Focus on Tap
• Handle Zoom in-out with a pinch
• Switch Between Front and Back Camera
• Capture and Save Images to Device

Читать (En)
Как работает async/await в Swift

Статья-перевод про то, как устроен async/await под капотом, чего можно добиться и какие нюансы следует учитывать при работе с async/await.

👉 Swift и цель обеспечения безопасности памяти
👉 Проблема конкурентности в Swift
👉 Async/await изнутри
👉 Cooperative Thread Pool
👉 Исполнители
👉 Паттерн async/await
👉 Задачи и структурированный параллелизм
👉 Защита общего изменяемого состояния: акторы
👉 Заключение

Оригинал тут: How async/await works internally in Swift

Читать (Ru)
Forwarded from Mobile Native ️️
API Design 101: From Basics to Best Practices

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

Короткая статья c основами по пректированию API: CRUD, протоколы и механизмы передачи данных, эндпоинты, связи, обратная совместимость, версионирование.

Читать (En)
Forwarded from Mobile Native ️️
System Design Concepts

В догонку серия статей от того же автора на тему System Design: архитектура, DNS, CDN, Data Storage, протоколы, балансёры, масштабируемость и т.д.

👉 6 System Design Interview Concepts
👉 System Design Interview Question: Design Spotify
👉 Mastering Databases
👉 Computer Architecture
👉 Meeting Design Requirements
👉 Architecture of Production Web Apps
👉 Networking Essentials