Как стать автором
Поиск
Написать публикацию
Обновить
37.23

iOS *

Мобильная ОС компании Apple

Сначала показывать
Порог рейтинга
Уровень сложности

Управляем воспроизведением на Mac OS через быстрые команды iOS

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров2.8K

Хочу поделиться довольно простым, но как показало время, полезным способом управления медиаклавишами macOS из быстрых команд (например iOS), без дополнительных клиент-серверных приложений. Управление происходит с помощью вызова скрипта на python по ssh. Для имитации нажатия медиа клавиш использована библиотека pyobjc-framework-Quartz.

Читать далее

Почему MVx архитектуры всегда получаются плохо

Время на прочтение7 мин
Количество просмотров20K

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

Я познакомился с понятием “архитектурные паттерны” и MVC в частности еще в 2012, и с тех пор заболел идеей архитектур программного обеспечения. Я восхищался людьми, которые пишут архитектурные фреймворки. Я тратил дни и недели читая их исходники и просматривая видео на YouTube. Но чем больше я в это погружался, тем больше я чувствовал себя в состоянии, которое я называю “начинающий иллюзионист”: пока смотришь на фокусы - это магия, но когда начинаешь их делать, то они становятся банальными.

За годы я попробовал разные существующие паттерны и фреймворки, на разных языках и в разных проектах. Какие-то реализации я писал с нуля, с какими-то знакомился в чужих проектах, но почти каждый раз упирался в их несовершенство. И каждый раз это было очень болезненно. И вот я думал, что в следующий раз все сделаю правильно, но опять что-то шло не так. Тогда я решил разобраться в этом вопросе и сделал своей миссией поиск того самого подхода, который имеют ввиду, когда говорят “нормально делай - нормально будет”.

Нашел ли я его? Возможно. По крайней мере мне есть что показать, но об этом в другой раз.

В своих скитаниях я нашел кое-что не менее интересное: причину почему MVx всегда получается плохо. И вот об этом и пойдет речь сегодня.

Читать далее

Модульное тестирование в iOS: всё, что надо знать. Часть 1

Время на прочтение9 мин
Количество просмотров7.2K

Модульное тестирование в iOS: все, что надо знать. Часть 1

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

Меня зовут Евгений Плёнкин. Я iOS разработчик компании СберЗдоровье. В этом материале я расскажу, что такое автоматизированное тестирование, в чём его польза в iOS-разработке и не только, сколько и каких тестов должно быть, а также какой инструмент для автотестов в iOS есть.

Статья написана в рамках серии «Модульное тестирование в iOS: все, что надо знать».

Читать далее

Хочу в iOS-разработку: к чему готовиться на собеседовании в продуктовую команду

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров8.9K

Привет! Я Серёжа Копытов, iOS TechLead. Веду собесы с 2020 года, многие разработчики и техлиды в команде прошли через меня. Уже через полгода интервью я активно включился в настройку подбора и сейчас основное время занимаюсь его развитием.

В статье расскажу, как выглядит наше техническое интервью, как оно стало таким, какие случаи я встречал и какие выводы сделал. Читайте, если сами общаетесь с кандидатами или проходите собеседования в IT и хотите понять, как продуктовые компании принимают решение.

Читать далее

Виджеты: Android против iOS

Время на прочтение19 мин
Количество просмотров3.5K

Долгое время виджеты были отличительной чертой Android, пока на айфонах царили стройные ряды одинаковых иконок. Но в 2020-м они масштабно пришли и на iOS. Обычно мобильные разработчики знают одну из этих платформ, но у Анны Жарковой (@anioutka) есть опыт работы с обеими — и она выступила у нас с докладом о виджетах на обеих.

Сейчас мы готовим конференцию Mobius 2023 Spring, где также освещаются обе платформы, а Анна выступит с новым докладом. И в ожидании этого решили сделать для Хабра текстовую версию доклада о виджетах (видеозапись также прилагаем). Далее — текст от лица спикера.

Читать далее

Правильная поддержка Apple Silicon: как избежать проблем при апгрейде с Intel (x86_64) на Apple (arm64)

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.4K

Инженеры Apple придумали прекрасные по быстродействию и производительности процессоры Apple Silicon (M1, M1 Max и так далее) на архитектуре arm64. Но за полученное быстродействие разработчикам пришлось платить своим временем.  

Рассказываем, к каким проблемам мог привести апгрейд рабочего мака и что нужно учитывать с изобретением процессоров Apple Silicon.

Статья вдохновлена ограничениями в недавно вышедшем Xcode 14.3: запуск из-под Rosetta в нём стал deprecated.

Читать далее

Combine: часть 2. Вершина айсберга

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров12K

Привет, Хабр! На связи Сергей, iOS-разработчик в компании SimbirSoft.

В прошлой статье мы познакомились с концепцией реактивного программирования с использованием фреймворка Combine и сравнили его с RxSwift. В этой части мы более подробно разберем виды основных компонентов Combine, а также их отличия и способы применения.

Интеграция Combine в проект будет полезна для обеих сторон — бизнеса и команды разработки:

1. Процесс работы становится быстрее, а значит дешевле.

2. Фреймворк считается достаточно модным. Есть большое количество разработчиков, которым нравится использовать реактивный подход, и которые хотят поработать с новым инструментом — повышается интерес соискателей к вакансиям, в которых фигурирует эта технология.

3. Combine способствует легкой поддержке и удобном переходе на современные технологии в будущем (например, на SwiftUI).

Читать далее

Чего ждать разработчикам от WWDC 2023?

Время на прочтение3 мин
Количество просмотров2.1K

Всем привет, с вами я, Анна Жаркова, ведущий разработчик компании Usetech. 

Apple уже опубликовала анонс WWDC 2023, который пройдет 5-9 июня. А это значит, что время загадывать и угадывать, что же нового нам представят из инструментария iOS SDK.

И начнем мы со Swift 5.8, который официально вышел (ссылка). В новой версии появились доработки, связанные как с самим sdk и Swift, так и SPM, инструментом документации и SwiftSyntax. Часть новинок уже разобрал у себя Пол Хадсон, и об этом можно почитать здесь, здесь и здесь.

Читать далее

Что о мобильной разработке можно будет узнать на Mobius 2023 Spring

Время на прочтение17 мин
Количество просмотров1.9K

Кое-что на ближайшей конференции Mobius будет необычно. Два дня она будет проходить в Москве (с возможностью онлайн-участия), а ещё два дня в интернете — такого масштабного сочетания офлайна с онлайном на Mobius ещё не было.

А кое-что остаётся привычным: это по-прежнему конференция по мобильной разработке, где в докладах не вода и общие темы, а техническая конкретика. За четыре дня докладов будет много, сейчас они уже известны — и мы представляем Хабру все их описания. Для удобства снабдили здесь описания значками ? (Android), ? (iOS), ♾️ (не привязанные к платформе), ?(Flutter). И поделили на тематические блоки (но порой это деление условное, один доклад может хорошо подходить в две категории сразу).

Читать далее

Воскрешаем старый проект с помощью ChatGPT

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6.4K

Как и многие в последние месяцы я был очень заинтригован новой версией chatGPT 4 и ее возможностями в области программирования. Бесконечные видео и статьи о программировании простых игр и программ давали очень оптимистичные результаты, но не давали однозначного ответа на вопрос, может ли чат GPT программировать код для продакшена и заменить собой часть программистов. Для этого необходимо было найти реальную задачу, которая бы позволила проверить GPT в менее тепличных условиях, а конкретно меня интересовала возможность его работы с объемным кодом. Из‑за угрозы утечки конфиденциальных данных в настоящий момент не представляется возможным использование его в работе. Поэтому я решил, что в настоящий момент самым правильным будет применить чат GPT для опенсорс проектов.

Итак, условия нашей задачи:

У меня есть небольшой проект анимированных кнопок для iOS написанный мной 8 лет назад на Objective C. Это достаточно простой код, который содержит очень подробное описание анимаций разных слоев кнопки. Всего код состоит из 500 строчек кода.

Читать далее

Ряд Фибоначчи и Мемоизация с примерами на Swift языке

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров8K

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

Математически ряд Фибоначчи представляет собой последовательность чисел, которые следуют этому уравнению: F(n) = F(n-1) + F(n-2). Эта последовательность встречается в различных интересных контекстах, например, в природе, в раковинах, спиральных структурах и галактиках, а также в дизайне римских полов, и даже брокеры используют ряд Фибоначчи для прогнозирования акций.

Читать далее

Мобильная разработка за неделю #485 (17 — 23 апреля)

Время на прочтение5 мин
Количество просмотров2.2K
В этом дайджесте сторонние загрузки в iOS и ускорение дебага на Android, схемы кампусов и неочевидные палки в колеса, свои “Герои”, артефакты пришельцев в вашем коде, руководство для начинающих по автономным агентам и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

DoccGPT: cамодокументируемый код на Swift с помощью GPT и DocC

Время на прочтение4 мин
Количество просмотров1.5K

DoccGPT - это эксперимент по полной автоматизации документирования кодовой базы на Swift. Он еще не закончен, но - будет (FAQ читайте ниже).

Читать далее

Ближайшие события

Как хранить данные в iOS: UserDefaults, Keychain и сэндвичи

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров18K

Хранение данных — одна из самых ведущих тем в разработке. Очень важно уметь выбирать подходящий инструмент для разных ситуаций и знать, как хранить данные безопасно и максимально эффективно, не замедляя приложение. Старший iOS-разработчик red_mad_robot Аня Кочешкова рассказывает о механизмах хранения, способах работы с ними, а также плюсах и минусах каждого подхода.

Читать далее

Интервью с сооснователем Coffee&Code Владиславом Мокровым: зачем программисту комьюнити?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.3K

В этой статье мы возьмём интервью у сооснователя проекта Coffee&Code, Владислава Мокрова. Coffee&Code — уникальный проект, объединяющий русскоговорящих мобильных разработчиков по всей России и за её пределами. Владислав расскажет нам о своём проекте, поделится подробностями с прошлых встреч, организованными Coffee&Code, и планами на будущее. Приятного чтения!

Читать далее

Почему так удобно использовать паттерн MVI в KMM

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров16K

Привет!

Меня зовут Стефан Серхир. Я мобильный разработчик в KTS. Пишу под Android, iOS и КММ (Kotlin Multiplatform Mobile) и веду курсы в школе Metaclass.

Недавно мы провели вебинар, в котором разобрали Model-View-Intent (MVI) в KMM на практике и посмотрели, как это выглядит в коде iOS и Android. Это статья написана по мотивам этого вебинара. Подход MVI в KMM полезен, потому что:

— Удобно шарить бизнес-логику между всеми платформами
— Можно выделять отдельный функционал в фича-модули
— Сам MVI позволяет легко разделять экран на различные состояния и менять их в зависимости от действий пользователя
— MVI очень легко ложится на Jetpack Compose (Android) и SwiftUi (iOS)

В статье я расскажу, что такое MVI и KMM вообще, опишу преимущества и недостатки MVI и разберу на практике подход MVI в KMM.

Читать далее

Приложение для инженеров на Flutter

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.6K

На связи Саша Хрущев, технический директор IT-компании WINFOX. Недавно мы сделали кроссплатформенное приложение для прикладных инженеров крупной компании на самом современном фреймворке от Google. Почитайте, чем хорош Flutter, какие возможности разработки он открывает и почему заказчикам выгодно использовать этот фреймворк.

Читать далее

Совместное использование контента в SwiftUI

Время на прочтение3 мин
Количество просмотров966

Apple представила совершенно новый фреймворк CoreTransferable и ShareLink вью в SwiftUI, позволив нам совместно использовать контент и экспортировать его из наших приложений весьма декларативно. На этой неделе мы узнаем, как сделать данные передаваемыми (* переносимыми) и как использовать новое вью ShareLink в SwiftUI.

Читать далее

Мобильная разработка за неделю #484 (10 — 16 апреля)

Время на прочтение4 мин
Количество просмотров2.3K
В этом выпуске потоковое вещание и старые смартфоны, маски ввода номера и исследования трафика, архитектура микросервисов, закрытое сообщество для открытых проектов, запуск аналогов ChatGPT, ИИ-помощник для программирования от Amazon и многое другое.

В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!

Читать дальше →

Ошибка квадратных скобок в хедерах UnityFramework в Xcode

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.4K

Я спокойно себе пилю проект, никого не трогаю, собираю очередную сборку iOS, открываю проект в Xcode и.... на меня обваливается шквал ошибок. Я начинаю пытаться разобраться в том, как исправить ошибку внутри проекта Xcode. Не выходит...

Бегу судорожно откатывать последние изменения в проекте Unity.... Тщетно.
Переключаюсь с текущей ветки на ветку main, собираю сборку, понимаю что битва только начинается.

Читать далее