10 quick tips to increase your iOS code quality
Несколько небольших советов, которые помогут улучшить качество кода.
• Use the extension pattern to group chunks of code
• Define a maximum number of lines per file
• Create variables and functions with descriptive names
• Take advantage of typealias
• Take care of the “no-happy path”
• Review force unwrap & indexes
• How do you handle sensitive information?
• Avoid code duplication
• Avoid hard-coding messages directly in the code
• Take advantage of pre-built-in features
Читать (En)
Несколько небольших советов, которые помогут улучшить качество кода.
• Use the extension pattern to group chunks of code
• Define a maximum number of lines per file
• Create variables and functions with descriptive names
• Take advantage of typealias
• Take care of the “no-happy path”
• Review force unwrap & indexes
• How do you handle sensitive information?
• Avoid code duplication
• Avoid hard-coding messages directly in the code
• Take advantage of pre-built-in features
Читать (En)
Шейдеры в iOS для начинающих
В iOS 17 пришло значимое обновление — теперь добавить шейдер можно к любой View, а значит, вся интеграция стала проще и растровых эффектов появится больше.
В статье разбираются основы: что за шейдеры, что за чудо-код надо написать, как это подключить и как в целом погрузиться в тему + рассматриваются несколько сложных примеров.
Читать (Ru)
В iOS 17 пришло значимое обновление — теперь добавить шейдер можно к любой View, а значит, вся интеграция стала проще и растровых эффектов появится больше.
В статье разбираются основы: что за шейдеры, что за чудо-код надо написать, как это подключить и как в целом погрузиться в тему + рассматриваются несколько сложных примеров.
Читать (Ru)
Jailbreak checker — как обезопасить свое iOS-приложение
Статья о том, как можно обезопасить своё iOS-приложение на Jailbreak-нутом девайсе.
• Кто такой этот ваш Jailbreak?
• Зачем его отслеживать?
• Как же его отследить?
• Как предупредить пользователя и обезопасить приложение?
• Как теперь все протестить?
Читать (Ru)
Статья о том, как можно обезопасить своё iOS-приложение на Jailbreak-нутом девайсе.
• Кто такой этот ваш Jailbreak?
• Зачем его отслеживать?
• Как же его отследить?
• Как предупредить пользователя и обезопасить приложение?
• Как теперь все протестить?
Читать (Ru)
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)
Статья с обзором нескольких новых фич из Swift 5.9.
Вот тут можно почитать про 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
Дебаггинг приложения без Xcode. Зачем?
Статья от Альфа-Банк про то, как они делали свой дебаг-инструмент и научились дебажить приложение без Xcode, тем самым упростив жизнь себе и тестировщикам.
Читать (Ru)
Статья от Альфа-Банк про то, как они делали свой дебаг-инструмент и научились дебажить приложение без Xcode, тем самым упростив жизнь себе и тестировщикам.
Читать (Ru)
CD-диск на шейдерах и NameDrop в iOS 17
Описать материал через шейдер сложно, потому что код совершенно другой, но создать динамичный эффект — ещё сложнее.
В статье разбирается переливающийся диск и нашумевший NameDrop в iOS 17.
Читать (Ru)
Описать материал через шейдер сложно, потому что код совершенно другой, но создать динамичный эффект — ещё сложнее.
В статье разбирается переливающийся диск и нашумевший NameDrop в iOS 17.
Читать (Ru)
Два по цене одного: snapshot-тесты на основе SwiftUI Preview
Статья о том, как с использованием snapshot-тестов отлавливать баги верстки в SwiftUI на этапе разработки.
Читать (Ru)
Статья о том, как с использованием snapshot-тестов отлавливать баги верстки в SwiftUI на этапе разработки.
Читать (Ru)
Книги по 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)
Подборка книг для изучения Swift / iOS.
Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
Скорее жив, чем мёртв: тенденция по развитию iOS технологий
Размышления на тему развития iOS технологий и возможые варианты развития в смежные направления на случай непредвиденных ситуаций 😉
Обзор технологий был сделан для того, чтобы показать, что iOS разработка жива, и не стоит бояться того, что завтра мы останемся без работы.
Читать (Ru)
Размышления на тему развития iOS технологий и возможые варианты развития в смежные направления на случай непредвиденных ситуаций 😉
Обзор технологий был сделан для того, чтобы показать, что iOS разработка жива, и не стоит бояться того, что завтра мы останемся без работы.
Читать (Ru)
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)
Пример реализации 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)
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
Очередная порция интересных и полезных видосов.
Собеседования
• Собеседование в Яндекс. Платформа 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
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
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)
Forwarded from Mobile Native ️️
Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти
В статье рассказывается, что такое BDUI с точки зрения бэкенд-разработчика, с какими сложностями можно столкнуться, как собирать JSON на бекенде и т.д.
Читать (Ru)
В статье рассказывается, что такое BDUI с точки зрения бэкенд-разработчика, с какими сложностями можно столкнуться, как собирать JSON на бекенде и т.д.
Читать (Ru)
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
Forwarded from Mobile Native ️️
Kotlin Multiplatform перешёл в stable. Что это значит?
Что изменилось с переходом в релиз.
👉 Технология стабильна
👉 Соблюдение совместимости
👉 Экосистема
👉 База материалов по KMP
👉 Ускорение скорости сборки
👉 Развитие библиотек
👉 Улучшение интеропа со Swift
👉 Compose multiplatform
Читать (Ru)
Что изменилось с переходом в релиз.
👉 Технология стабильна
👉 Соблюдение совместимости
👉 Экосистема
👉 База материалов по KMP
👉 Ускорение скорости сборки
👉 Развитие библиотек
👉 Улучшение интеропа со Swift
👉 Compose multiplatform
Читать (Ru)
Ускоряем прохождение iOS UI-тестов
Серия статей про то, как ускорить прохождение UI-тестов: что такое test runner и какие бывают, зачем распараллеливать тесты, зачем стартовать приложение с определенного экрана и какие способы реализации существуют и т.д.
• Запуск тестов без сборки проекта
• Распараллеливание тестов
• Старт приложения с определенного экрана
Серия статей про то, как ускорить прохождение UI-тестов: что такое test runner и какие бывают, зачем распараллеливать тесты, зачем стартовать приложение с определенного экрана и какие способы реализации существуют и т.д.
• Запуск тестов без сборки проекта
• Распараллеливание тестов
• Старт приложения с определенного экрана
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)
Прививка от созависимости. Зачем нужен DI и как он работает в iOS-приложениях
Статья от
👉 Какую проблему решает DI
👉 Что такое DI и инверсия зависимостей?
👉 Примеры реализации: библиотеки и паттерны
👉 Готовые библиотеки
👉 О многомодульности в проекте
Читать (Ru)
hh.ru
Статья от
hh.ru
, в которой рассматриваются основы DI, какую проблему решает этот принцип, возможные варианты реализации: паттерны и популярные библиотеки + подробно рассказывают как работает DI в многомодульном iOS проекте hh.ru
.👉 Какую проблему решает DI
👉 Что такое DI и инверсия зависимостей?
👉 Примеры реализации: библиотеки и паттерны
👉 Готовые библиотеки
👉 О многомодульности в проекте
hh.ru
Читать (Ru)
Всех с наступающим Новым Годом! 🎅 🎄
2023 год был крутым и продуктивным, хоть и со своими заморочками.
В новогом году желаю вам оставаться или стать крутым спецом, разиваваться, крутых проектов и успехов во всех сферах и начинаниях.
И конечно же всем спасибо, за то, что читаете канал, репостите, оставляете реакции.
С наступающим друзья, ура!🥂
2023 год был крутым и продуктивным, хоть и со своими заморочками.
В новогом году желаю вам оставаться или стать крутым спецом, разиваваться, крутых проектов и успехов во всех сферах и начинаниях.
И конечно же всем спасибо, за то, что читаете канал, репостите, оставляете реакции.
С наступающим друзья, ура!🥂
Please open Telegram to view this post
VIEW IN TELEGRAM