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

iOS *

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

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

Ускоряем прохождение iOS UI-тестов. Часть 2. Распараллеливание тестов

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

Хабр, привет!

Меня зовут Борис. Я Mobile AQA lead в Vivid Money.

Это вторая статья в цикле статей по iOS-автоматизации, в которых я расскажу о том, как ускорить прохождение UI-тестов.

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

В рамках этой статьи мы разберем такие этапы:

- зачем распараллеливать тесты?;

- распараллеливаем тесты, используя Xcode;

- распараллеливаем тесты, используя Fastlane.

Читать далее

Как графический формат прошлого века привёл к zero-click exploit в iOS

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

Тема информационной безопасности в сфере интересов команды М.Видео и Эльдорадо, поэтому делимся с вами очередным интересным переводным тематическим материалом. В начале 2022 года Citizen Lab удалось выявить zero-click-эксплойт на основе NSO iMessage, использовавшийся для атаки на активиста из Саудовской Аравии.

В этой серии из двух постов мы впервые расскажем, как работает zero-click-эксплойт iMessage.

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

Рассматриваемая в посте уязвимость была устранена 13 сентября 2021 года в iOS 14.8 в рамках CVE-2021-30860.
Читать дальше →

Обзор самых полезных приложений для незрячих людей

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

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

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

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

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

Далее

Controller, но не Massive: реализуем список карточек для iOS 13+ и 11+ с учетом практик чистого кода

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

Привет! Когда мне по работе понадобилось реализовать список карточек на связке UICollectionView и UICollectionViewCompositionalLayout для iOS 13+, я не нашел хорошего примера. Написал свой и хочу поделиться с сообществом. А заодно показать реализацию для iOS11+.

Примеры можно адаптировать под свои задачи, а все исходники вы найдете в Github-репозитории в конце поста. Поехали!

Читать далее

Дайджест интересных материалов для мобильного разработчика #432 (14 — 20 февраля)

Время на прочтение4 мин
Количество просмотров2.2K
В этом дайджесте совершенствуем структуру тестов и мешаем анимироваться слоям, обсуждаем политики Google Play и систему виртуализации в Android, делаем игру мечты, лучшие заметки о выпуске и многое другое!

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

Навигация в SwiftUI или NavigationView и его особенности

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

Первое с чем вы сталкиваетесь при написании мобильного приложения, это переходы с одного экрана на другой и обратно (в случае простого приложения), а так же многоуровневые переходы и моментальный возврат на первый экран (back to root view). Всё это мы разберём на примерах в данной статье, ну а для начала немного углубимся в теорию.

Что такое NavigationView?

Представьте, что перед вами коробка (NavigationView) в которой много мячиков (View) и эти мячики могут соприкасаться друг с другом (переход с View на View) только в рамках этой коробки. 

Но есть так же и случаи, когда внутри коробки, помимо шариков, есть ещё одна коробка поменьше, которая содержит другие маленькие шарики (история про .sheet и .fullScreenCover - модальные окна). Это так же разберём ниже в статье.

Читать далее

Погружение в Combine: последовательные и объединяющие операторы для улучшения процесса разработки iOS приложений

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

Добрый день! Я — Иваев Зафар, iOS разработчик в компании Usetech. В этой статье мы узнаем как фреймворк Combine помогает нам разрабатывать функционал приложения с помощью встроенных функций — операторов. В этой статье, мы покроем следующие типы операторов:

1. Последовательные операторы

2. Объединяющие операторы

Читать далее

Модуляризация доменного слоя в UDF. Часть II

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

В предыдущей части мы рассмотрели, что такое домен и какими принципами можно руководствоваться при его модуляризации. В этой части сконцентрируемся на типах связей между модулями и различиях в проектировании ООП и UDF-кода. Приятного чтения!

Читать далее

Как UIView мешал слоям анимироваться

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

Эту часть я хотел посвятить анимациям, но понял, что это очень большая тема и для нее тоже нужен контекст. Поэтому сначала расскажу, что же лежит под капотом тех методов, которые мы обычно используем для анимаций. 

Заодно разберемся с таким понятием, как неявные анимации.

Читать далее

Дайджест интересных материалов для мобильного разработчика #431 (7 — 13 февраля)

Время на прочтение3 мин
Количество просмотров3K
В новом выпуске ускоряем прохождение UI-тестов и заведуем стейт-машинами, внедряем платежи и готовим открытый API для UWB, разбираем кроссплатформу, перепридумываем иллюстрации, делимся виджетами и многое другое!

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

Обновляем контент, не проходя повторное ревью в сторах

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

Всем привет, я Дима из мобильной команды Туту, мы делаем приложения с 20М инсталлов. Расскажу, как можно быстро добавлять в приложение новый контент и обновлять его, не проходя повторные ревью в сторах. Это нужно, например, когда мы хотим быстро донести до людей коронавирусные ограничения.

Ниже реализация на SwiftUI и Kotlin (но вы можете использовать UIkit и серверный язык, принятый в вашей команде), а в GitHub-репозитории в конце статьи вы найдёте код сервера и приложений для детального изучения.

Читать далее

Раннер Emcee. Всем айосерам по тестовой ферме

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

В iOS-приложении Авито куча UI-тестов — вы это уже наверняка знаете, потому что мы говорим про них постоянно. Это позволяет нам релизиться раз в неделю, причём регрессионное тестирование с ручными проверками мы проводим раз в две недели. Между ними в релиз идёт приложение, которое протестировано только нашими UI- и unit-тестами.

Чтобы поддерживать такие масштабы автотестирования, мы написали тест-раннер Emcee, который умеет скейлиться в ширину по физическим машинкам.

Читать далее

Ускоряем прохождение iOS UI-тестов. Часть 1. Запуск тестов без сборки проекта

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

Хабр, привет!

Меня зовут Борис. Я Mobile AQA lead в Vivid Money.

Это вступительная статья в цикле статей по iOS-автоматизации, в которых я расскажу о том, как ускорить прохождение UI-тестов.

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

В рамках этой статьи мы разберем такие этапы:

- зачем ускорять время прохождения UI-тестов;

- что такое Test runner, и какие они бывают;

- что нужно для прогона тестов без компиляции проекта;

- делимся опытом, как это помогает нам.

Читать далее

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

Дайджест интересных материалов для мобильного разработчика #430 (31 января — 6 февраля)

Время на прочтение4 мин
Количество просмотров2.3K
В нашем новом дайджесте приключения белорусских разработчиков в App Store, один iOS-техрадар и несколько трендов Android-разработки 2022, игра мечты, автоматическая модерация сообщений и многое другое!

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

4,5 года из жизни iOS-команды в пяти историях и одном техрадаре

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

Как мы шли к одной архитектуре, чтобы прийти к нескольким. Как режем большое приложение, чтобы у каждой фича-команды была комфортная зона ответственности. И что и у кого мы подсмотрели, чтобы писать хорошие тесты. Часть решений может шокировать. Поехали!

Читать далее

Память в Swift (куча, стек, ARC)

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

Для хранения объектов Swift использует две структуры данных: стек и кучу. Управление распределением памяти подразумевает выделение памяти под объект (аллокацию) и ее последующее высвобождение (деаллокацию).

Читать далее

Swift TableManager

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

В этой статье хотел бы описать то, как устроена работа с UITableView на наших проектах в компании.

К данному подходу мы пришли в процессе унификации и поиска наиболее удобного решения для работы с таблицами.

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

Читать далее

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

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

Меня зовут Ексей Пантелеев, я 12 лет программирую мобильные приложения, а всего зарабатываю программированием почти 20 лет и как профессионал пережил несколько платформ (например Flash Player, AIR, Stage3D), под которые я разрабатывал приложения. До мобайла я делал веб и игры, настраивал и создавал с нуля 2D и 3D движки. 

Когда платформа погибает, вакансий становится мало, и остается пару лет подумать куда идти. С какого-то момента я стал заранее анализировать куда пойдет платформа, на которой я зарабатываю деньги. Мобильные приложения это растущий рынок: за 2021 пользователи потратили в 142 млрд. долларов в App Store (92B $) и Google Play (50B $) на цифровые сервисы. Сегодня регуляторы вынуждают магазины приложений добавлять сторонние платежные сервисы, что создает хорошую перспективу для развития индустрии. Я преподаю разработку под iOS 8 лет, и в своих поздних авторских курсах мне уже удается прогнозировать рынок на несколько лет вперед и заранее готовить студентов к технологическому стеку, который будет востребован в будущем.  

Хочу не просто рассказать про тренды, а проанализировать, какой технический стек будет важен на первых этапах развития ниши.

Читать далее

iOS Community Meetup: видео и материалы встречи

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

Первый открытый митап iOS Community: приглашаем 2 февраля слушать интересные доклады и вовлекаться в дискуссии! Поговорим про Dependency Injection, подход async/await в задачах с многопоточностью и snapshot-тестирование.

Под катом — видео митапа и презентации спикеров :)

Читать далее

GraphQL в мобильной разработке. Пишем клиент для iOS

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


Доброго времени суток! С вами Анна Жаркова, ведущий разработчик компании Usetech, и мы продолжаем нашу серию статей, посвященных работе с технологией GraphQL  при разработке мобильных приложений.

В предыдущих частях мы говорили о подготовке облачного GraphQL бекенда на Hasura и подключении GraphQL API к Android клиенту. Теперь настал черед iOS мобильного приложения.

Для работы нам понадобится библиотека Apollo GraphQL для iOS:

www.apollographql.com/docs/ios

github.com/apollographql/apollo-ios

Наше приложение абсолютно аналогичное Android и включает в себя такие же по функционалу экраны:

— вход

— регистрация

— лента постов

— экран создания и редактирования поста

— экран с информацией о текущем пользователе.

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