Обновить
37.59

iOS *

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

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

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

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

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

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

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

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

Далее

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.8K

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Меня зовут Борис. Я 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 мин
Количество просмотров29K

Для хранения объектов 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 мин
Количество просмотров4K


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

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

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

www.apollographql.com/docs/ios

github.com/apollographql/apollo-ios

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

— вход

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

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

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

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

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

Эволюция UI-тестов в iOS-приложении

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

Test-driven development — по-прежнему спорная тема. Часто встречается обоснованное, в общем-то, мнение, что такая разработка нужна только большим компаниям, потому что только у них достаточно ресурсов для создания и поддержки большого количества тест-кейсов. Но сегодня на примере iOS-приложения Маркета я покажу, что стремление как раз обратное: хочется, чтобы тесты поглощали как можно меньше времени разработчиков.

Меня зовут Даша, работаю в команде iOS-разработки Яндекс.Маркета. Два года назад мы поняли, что без автотестов нам тяжело: с их помощью мы снизили вероятность крешей после релиза и ускорили регрессионное тестирование. Релизы приложения происходят еженедельно, и это большая нагрузка на тестировщиков и разработчиков — протестировать всё руками и быстро внести правки за несколько дней не получилось бы. Я постараюсь порефлексировать и рассказать, как эволюционировал наш подход к UI-тестам за это время, и, более конкретно, какие работы мы провели для их «улучшения»: почему решили избавиться от JSON-моков и как справились с этой задачей.
Читать дальше →

Soviet Project — Хоррор игра о недалеком прошлом

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

Однажды я долго искал интересные 3D игры в Play Market и к своему сожалению не нашел почти ничего интересного.

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

Мне показалось странным, сейчас в мобильные телефоны устанавливают мощные графические процессоры, а качество графики сомнительное.

Читать далее