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

По всем вопросам: @artemiygreg
Найти проект: @ios_job
Download Telegram
Jailbreak checker — как обезопасить свое iOS-приложение

Статья о том, как можно обезопасить своё iOS-приложение на Jailbreak-нутом девайсе.

• Кто такой этот ваш Jailbreak?
• Зачем его отслеживать?
• Как же его отследить?
• Как предупредить пользователя и обезопасить приложение?
• Как теперь все протестить?

Читать (Ru)
🔥9👍41🤔1💩1
3 Cool new features of Swift 5.9

Статья с обзором нескольких новых фич из Swift 5.9.

🟢Using if and switch as expressions
🟢Parameter Packs
🟢Macros

Вот тут можно почитать про whats new in Swift 5.9.

И еще несколько полезных ссылок

👉 Value and Type parameter packs in Swift explained with examples
👉 Hidden feature: if and switch

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥2🤩1
Дебаггинг приложения без Xcode. Зачем?

Статья от Альфа-Банк про то, как они делали свой дебаг-инструмент и научились дебажить приложение без Xcode, тем самым упростив жизнь себе и тестировщикам.

Читать (Ru)
🔥9👍2💩21
CD-диск на шейдерах и NameDrop в iOS 17

Описать материал через шейдер сложно, потому что код совершенно другой, но создать динамичный эффект — ещё сложнее.

В статье разбирается переливающийся диск и нашумевший NameDrop в iOS 17.

Читать (Ru)
🔥91👍1💩1
Два по цене одного: snapshot-тесты на основе SwiftUI Preview

Статья о том, как с использованием snapshot-тестов отлавливать баги верстки в SwiftUI на этапе разработки.

Читать (Ru)
👍6🔥3🤔2💩1
Книги по Swift и iOS-разработке для начинающих специалистов и профессионалов

Подборка книг для изучения Swift / iOS.

🟢Swift. Основы разработки приложений под iOS, iPadOS и macOS
🟢Swift для детей. Самоучитель по созданию приложений для iOS
🟢Swift Apprentice: Fundamentals (First Edition): Beginning Programming in Swift
🟢Swift подробно
🟢Head First. Изучаем Swift
🟢Swift Programming: The Big Nerd Ranch Guide 3rd Edition
🟢Swift Cookbook: Over 60 proven recipes for developing better iOS applications with Swift 5.3

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍3🔥2
Скорее жив, чем мёртв: тенденция по развитию iOS технологий

Размышления на тему развития iOS технологий и возможые варианты развития в смежные направления на случай непредвиденных ситуаций 😉

Обзор технологий был сделан для того, чтобы показать, что iOS разработка жива, и не стоит бояться того, что завтра мы останемся без работы.

Читать (Ru)
🔥8👍5🤔2
Bottom Sheet View Controller with Dynamic Content Height in iOS

Пример реализации BottomSheet с кастомной конфигурацией.

• Automatic resizing of the bottom sheet based on the content height

• A draggable top view for dismissing the bottom sheet

• A dimmed background that also triggers the dismiss action

• Customizability to suit different use cases

• Smooth and interactive presentation and dismissal animations

Читать (En)
8👍6🔥4
Forwarded from Mobile Native ️️
Что посмотреть на выходных. Подборка полезностей 👇

Очередная порция интересных и полезных видосов.

Собеседования

• Собеседование в Яндекс. Платформа Android
• Советы к собеседованию
• Собеседование на Mobile Developer
• Cобеседование Android-разработчика

iOS💸

• Пишем свой рендеринг графики на SwiftUI и запускаем на нем Doom
• Compose for iOS под капотом
• Декларативная навигация в iOS-приложении
• Как приручить iPhone, или Общаемся с телефоном по проводу
• О дивный новый мир со Swift Concurrency
• Новые подходы к работе с регулярными выражениями в Swift. Просто о сложном
• Прожарка Tuist
• Как ускорить сборку проекта и не остановить разработку
• How to Build a Custom Sheet in SwiftUI!
• New and Deprecated APIs in iOS 17
• 8 Tips to Optimize your iOS App
• Нарисуй свой TabBar
• Навигация в iOS приложении. Coordinator pattern
• Async / Await. Лучшие практики, советы и особенности
• SwiftUI — уже пора?

Android 🖥

• Корутинные загадки
• Измеряем sequence
• Android-Driven KMM
• Gradle Kotlin DSL: о чем умолчали в документации
• Здоровье вашей Gradle-сборки
• Оно само: используем плагины компиляции
• How to Implement Pinch Zoom Gestures in Jetpack Compose
• Introduction to Security of Mobile Applications for Android
• KMM + Composable Architecture в Умной Камере
• Compose, еще раз Compose и развитие сообщества
• How to Build a Custom Gradle Plugin to Share Project Config - Multi-Module Architecture

Common 🛠

• Мифы и легенды о безопасности мобильных приложений
• Какие проблемы могут возникать с безопасностью в мобильных приложениях
• Как мы Kotlin Multiplatform внедряли
• Compose Multiplatform для iOS и Android
• Декларативная архитектура и навигация с Decompose
• Почему джунов не берут на работу
• BDUI — что это и зачем на примере DivKit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍2💩1
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