Все потоки
Поиск
Написать публикацию
Обновить
47.13

iOS *

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

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

Пермишены (permissions) для тестировщика: зачем нужно, что такое и как с этим работать

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

Приветствую?

В тестировании, особенно мобильном, существуют специфические области приложений, которые не всегда тестируются «вдумчиво» в силу своей необычности. Одна из таких областей — это разрешения или, как их принято называть, permissions (пермишены). Всё чаще я сталкиваюсь с ними в работе , на собеседованиях и в различных тренажерах по тестированию, поэтому решил погрузиться и более детально рассмотреть эту необычную и по-своему интересную часть мобильных приложений.

Меня зовут Антон, я QA Mobile в компании MobileUp. В статье я разберу, что такое пермишены, для чего нужны, какие виды существуют, где их можно найти и как тестировать.Эту статью я пишу исключительно с точки зрения ручного тестирования, но в конце текста оставлю интересные ресурсы, которые могут пригодиться для QA Auto (но это не точно ?).

Читать далее

Как поправить 3 проблемы MVx архитектур

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

Другие статьи из серии:
1. Почему MVx архитектуры всегда получаются плохо
2. Как поправить 3 проблемы MVx архитектур
3. Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
4. Т-функция: подключаем логику к UI как к БД


Intro


Итак, в прошлый раз я описал три проблемы, которыми, на мой взгляд, страдают все MVx и даже некоторые не MVx архитектуры. Если коротко, то это:


  • проблема остатка — при делении фичи на заявленные компоненты архитектуры остаётся либо «неделимая» часть фичи, либо лишние компоненты архитектуры;

    image
  • проблема масштабирования — при расширении фичи компоненты архитектуры начинают раздуваться, что усложняет дальнейшую поддержку;

    image
  • и проблема разрывов логики, когда из-за взаимодействия с UI логика разрывается на части, что тоже не помогает нам делать систему более цельной, предсказуемой и тестируемой.

    image

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

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

SwiftUI на iOS 14: преодолевая баги и улучшая перформанс в 3 раза

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

Привет, меня зовут Никита, я iOS-разработчик в команде Яндекс Диска. В этой статье я расскажу про наш опыт разработки на SwiftUI с минимальным деплоймент таргетом iOS 14.

В статье я собрал топ-6 багов, с которыми можно столкнуться, а еще поделился, что помогает улучшить перформанс SwiftUI и ускорить ваши view в 3 раза.

Читать далее

AVPlayer seek(to:… vs seek(…tolerance

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

Привет всем! Это моя внеочередная статья, о том что нагорело. У меня за последний год накопилось много интересного (и не очень :) ) материала. Но эту статью хочу написать вне очереди. Не так давно я столкнулся с интересным поведением метода seek(to: CMTime). Об этом и хочу написать.

Но начнем по порядку.

AVPlayer известен нам с iOS 4. Он содержит AVPlayerItem, AVAsset.

Читать далее

Новая жизнь или начало экзистенциального кризиса?

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

Ни для кого не секрет, что популярные языки программирования развиваются по схожему сценарию. Сначала появляется новый язык программирования с амбициозной и благой целью решить те или иные проблемы уже существующего языка, которые иначе, как созданием нового языка программирования, не решить. Далее язык набирает популярность, часто путем обрастания различными модными фичами. Теряет связь с миром свою простоту и лаконичность в бесконечной погоне за новыми возможностями. В какой-то момент наступает экзистенциальный кризис в виде Франкенштейна. А как отмыть кровь решать подобные проблемы, мы уже знаем. Или я несколько утрирую (или нет?), и, возможно, не все так плохо? Сегодня поговорим об этом в общем и о новом функционале языка Dart в частности.

Читать далее

Мобильная разработка за неделю #538 (13 — 19 мая)

Время на прочтение4 мин
Количество просмотров3.7K
В новом дайджесте обсуждаем прошедшую I/O, проводим карантин UI-тестов и смотрим как Notion ускорил запуск на Android в 2 раза, отмечаем новые Flutter и Dart, боремся с догмами программирования и многое другое. Подключайтесь!

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

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

Слежка через пуш-уведомления на смартфонах

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


Недавно стало известно о новом виде слежки за пользователями смартфонов: через пуш-уведомления в iOS и Android. Газета Washington Post написала, в частности, что эту тактику начало использовать ФБР (кэш статьи).

Довольно интересно, как работает такой метод выслеживания.

Согласно расследованию, для идентификации пользователей ФБР запрашивает у компаний Apple и Google данные пуш-уведомлений, так называемые «пуш-токены» (push token). Эти данные можно запрашивать без предъявления ордера. С помощью пуш-токенов можно идентифицировать конкретный смартфон, а потом запросить у компании данные о его владельце.
Читать дальше →

Flutter и натив. Пример с Яндекс OAuth

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

В жизни каждого flutter разработчика наступает момент, когда нужно пересесть с удобного кресла Dart , на нативные табуретки swift или kotlin для реализации пары фичей. Показываю, как работать с хост-приложениями на примере Яндекс ID.

Читать далее

SwiftUI уроки (часть 12)

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

ссылка на 11-ю часть

Работаем с Form и учимся использовать Picker, Stepper и Toggle

Практически в любом приложении вы в том или ином виде встречается с формами, под формами я имею ввиду такие объекты которые группируют в себе какие то данные которые вы заполняете или выставляете - например для настройки приложения или может быть для сохранения какой-то полезной для себя информации, такие формы позволяют пользователю интуитивно двигаться по интерфейсу и сразу цеплять глазом то, что именно они хотели бы заполнить или получить. Для разработчиков которые используют SwiftUI формы также стали очень удобным объектом, весь количество секций в форме всегда конечно, всегда имеет понятные значения и кажется что использовать их вместо например таблиц просто выглядит более логичным конкретно в таком контексте.

Сегодня мы с вами посмотрим на эти самые формы и научимся с ними работать, так как тема это довольно простая - мы заодно поработаем с Picker, Stepper и Toggle чтобы расширить свой кругозор относительно инструментов предоставляемых во фреймворке SUI.

Читать далее

Что нам показывают карты

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

Всем привет! Меня зовут Женя, я работаю iOS разработчиком в каршеринг-сервисе Ситидрайв, где мы с командой стремимся улучшить пользовательский опыт и сделать наше приложение более интуитивно понятным и функциональным. В этой статье я расскажу, как у нас организована работа с картой: как отображаем автомобили и другие объекты, какие проблемы возникали в процессе разработки, и почему мы выбрали формат данных GeoJSON. Также поделюсь особенностями работы с форматом, которые важно знать любому разработчику и расскажу о некоторых его преимуществах.

Читать далее

Как зарегистрировать Apple Developer в App Store для юридических лиц. Самый подробный гайд 2024 года

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

Из-за санкций зарегистрировать аккаунт разработчика в App Store становится если не наказанием, то как минимум испытанием. Прочитайте эту инструкцию, прежде чем приступить к созданию Apple Developer. Рассказываем про нюансы с регистрацией и оплатой лицензии юридического лица.

Читать далее

Добавляем объём в visionOS-приложение

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

В этой статье постараемся разобраться, как использовать Volume для создания иммерсивного 3D-опыта в visionOS.

Volume (или «объем») представляет 3D-контент, не занимающий все доступное пространство, который пользователи могут наблюдать в любом удобном для них ракурсе. Объемы служат контейнерами для иммерсивного опыта, позволяя исследовать реалистичные представления 3D-объектов.

Читать далее

SwiftUI: наконец-то пора? Опыт разработки на SwiftUI в контексте UIKit приложения

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

Привет, Хабр! Меня зовут Алексей Непомнящих и я мобильный разработчик «Леруа Мерлен». В этой статье я бы хотел поделиться своим опытом внедрения первой большой фичи на SwiftUI в приложение, целиком состоящее из UIKit с минимальной требуемой версией iOS 14.

Читать далее

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

Как зарегистрировать Apple Developer в App Store для физических лиц. Гайд 2024 года

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

В предыдущей статье рассказали, как разработчику зарегистрировать аккаунт в Google Play в 2024 годy. Сегодня подготовили актуальный гайд по регистрации Apple Developer в App Store для физических лиц. Если у вас есть сложности, можете обратиться за помощью к нам. Или пробуйте самостоятельно по инструкции ниже.

Читать далее

Карантин UI-тестов в iOS

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

Всем привет! Я Тимур — iOS разработчик в платформенной команде hh.ru. Сегодня я расскажу о нестабильных UI-тестах в iOS, и как мы с ними справляемся.

Мы уделяем массу внимания UI-тестам, ведь именно они обеспечивают качество и стабильность в наших iOS-приложениях. Сейчас у нас включено около 600 UI-тестов: они гоняются утром, вечером и на каждом PR в develop. О том, как мы обеспечиваем качество мобильной разработки есть отдельная статья.

Рано или поздно большое количество UI-тестов скорее всего начнут тормозить разработку, потому что их стабильность зависит от множества факторов: стенды (API), инфраструктура (обновление Xcode, машин, СI), кодовая база. Даже из‑за проблем в самом XCUITest тесты могут начать выдавать аномалии.

Если хотите узнать про наш процесс — смело нажимайте "Читать далее".

Читать далее

Мобильная разработка за неделю #537 (29 апреля — 12 мая)

Время на прочтение4 мин
Количество просмотров2.7K
Собрали дайджест сразу за две недели — в нем материалы про Composable Architecture и новый компилятор K2, Room для Kotlin Multiplatform и будущее магазинов приложений, самые скачиваемые и зарабатывающие приложения в России в апреле, превращение игрушечного робота-доставщика в ровер и многое другое. Подключайтесь!

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

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

А вы знаете как спит ваш Mac? или же рассказ о Apple Power Nap

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

В далеком 2012 году на презентации WWDC (первая презентация после смерти Стива Джобса) Apple представила легендарную iOS 6. На этой презентации также была представлена система OS X Mountain Lion (версия 10.8). Было представлено много новых функций и нововведений. Кому интересно, вот статья на Вики, но сегодня мы поговорим о функции Power Nap.

Что такое этот ваш Power Nap? И как же спит ваш Mac?

Читать далее

Result builders in Swift

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

Конструктор результатов можно рассматривать как встроенный предметно-ориентированный язык (DSL) для сбора деталей, которые объединяются в конечный результат. Конструкторы результатов в Swift позволяют создавать результат, используя "блоки сборки", расположенные в ряд друг за другом.

Примеры.

Вот функция, которая возвращает одну строку.

Читать далее

SwiftUI уроки (часть 11)

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

Ссылка на 10-ю часть

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

Читать далее

Room для Kotlin Multiplatform. Пробуем нативное решение

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

Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. В начале мая Google нас порадовали релизами нескольких библиотек для локальных хранилищ. Наконец, в приложения Kotlin Multiplatform можно полноценно использовать Room (версия 2.7.0-alpha01 и выше).
И сегодня мы опробуем работу с данной библиотекой на примере небольшого приложения Todo, написанного на KMP с использованием Compose Multiplatform.


Кроме Room, в проекте используется библиотека Lifecycle-viewmodel для KMP. И Koin для DI и гармонии.

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