Обновить
65.59

iOS *

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

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

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

Время на прочтение3 мин
Охват и читатели2.5K
В новом дайджесте многомодульность, интерфейсы и протоколы, лучшие практики и советы, непредсказуемые интеллект, псевдокод и многое другое.

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

Лайфхаки по многомодульности в iOS

Время на прочтение8 мин
Охват и читатели7K

Всем привет! Меня зовут Юра, я iOS-разработчик в core-команде. В этой статье расскажу, как мы работаем с многомодульностью в наших iOS-приложениях. Поговорим про окружение и структуру нашего проекта, затронем тему скорости компиляции и разберем немного кодогенерации. 

Погнали

Интерфейсы/протоколы для начинающих

Время на прочтение6 мин
Охват и читатели16K

Сублимация попыток объяснить друзьям чем отличаются классы от протоколов и почему без организации целого концерта здесь никак не обойтись.

Читать далее

Unit тесты в Swift (модульное тестирование)

Время на прочтение7 мин
Охват и читатели24K

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

И всё же, зачем нужны тесты?

Опишу самые, на мой взгляд, важные причины:

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

– в момент написания нового функционала (либо вы вернулись к проекту через длительный промежуток времени) проще всего  запустить тесты и убедиться в том, что старый функционал по прежнему отрабатывает корректно

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

Читать далее

Жизненный цикл UIViewController

Время на прочтение7 мин
Охват и читатели49K

Жизненный цикл View Controller – это начинающаяся с создания последовательность шагов. Приходит создание View Controller со storyboard (выставляем view, button) или из кода.

Читать далее

Модуляризация DI в проекте с UDF-архитектурой

Время на прочтение7 мин
Охват и читатели3.6K

Всем привет, меня зовут Юрий Трыков, я Head of Mobile в inDriver. В этой статье расскажу, как в рамках платформенной iOS-команды мы выстраивали модуляризацию DI-контейнеров в проекте, зачем вообще нам нужны DI-контейнеры и как настраивать взаимодействие UDF-компонентов и DI-контейнеров. Приятного чтения!

Читать далее

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

Время на прочтение3 мин
Охват и читатели2.9K
Наш новый дайджест за прошедшую неделю с обсуждением уязвимости в iOS, тенями в Android и множеством других материалов.

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

«Приложения для засыпания» и акустические стимуляторы мозга: почему они не работают и как сделать чтобы работали

Время на прочтение14 мин
Охват и читатели9.5K

Нормализация сна и суточных ритмов – востребованная нынче тема. Согласитесь, удобно иметь на смартфоне приложение, способное за пару свайпов обеспечить здоровый сон, исправить суточные ритмы после перелёта или купировать эффекты, связанные с утомлением-переработкой-стрессом.

Спрос рождает предложение – и вот уже YouTube ломится от разного рода «музык для релаксации», «сеансов гипноза» и «исцеления во время сна 432 Гц». А Google Play и App Store, соответственно, от генераторов белого шума, плееров с треками для засыпания, смарт-будильников, интеллектуальных светильников, сервисов для подсчёта медленноволнового сна и прочего биохакерского мусора. Есть ли в подобных приложениях рациональное зерно? Да. безусловно. Но мы не станем перелопачивать народное творчество в поисках жемчужных зёрен, а начнём с правильной постановки задачи и определения технического облика акустического стимулятора на основе имеющихся гипотез. Ведь правильно поставленный вопрос содержит в себе половину ответа, не так ли?

Читать далее

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

Время на прочтение4 мин
Охват и читатели5.4K

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

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

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

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

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

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

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

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

Читать далее

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

Время на прочтение11 мин
Охват и читатели21K

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

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

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

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

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

Время на прочтение6 мин
Охват и читатели43K

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

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

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

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

Далее

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

Время на прочтение9 мин
Охват и читатели4.6K

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

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

Читать далее

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

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

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

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

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

Время на прочтение5 мин
Охват и читатели25K

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

Что такое NavigationView?

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

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

Читать далее

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

Время на прочтение8 мин
Охват и читатели8.2K

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

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

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

Читать далее

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

Время на прочтение12 мин
Охват и читатели2.8K

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели11K

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

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

Читать далее

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

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

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

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

Время на прочтение5 мин
Охват и читатели4.4K

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

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

Читать далее

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

Время на прочтение4 мин
Охват и читатели6.2K

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

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

Читать далее