Pull to refresh
-1
1.8
Send message

Первые впечатления об электронной книге Onyx Boox Edison

Reading time6 min
Views15K

С недавних пор заинтересовался электронными книгами. Причина проста – экономия времени и места. Волею случаю ко мне попала электронная книга Onyx Boox Edison с довольно крупным сенсорным экраном диагональю 7,8” и подсветкой.

Читать далее

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

Reading time9 min
Views4.8K

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

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

Идентификаторы элементов в XCUITest

Reading time6 min
Views4.4K

Меня зовут Семен, я занимаюсь автоматизацией тестирования мобильных приложений в hh.ru, и сегодня я расскажу о том, как писать автотесты под iOS. 

Быстрые регрессы, низкий time-to-merket, счастливые пользователи, у которых нет багов — для всего этого нам нужны автотесты. Наше мобильное приложение работает сразу на двух платформах, и мы пишем автотесты для каждой из них. 

Затестить

«Горячие» и «холодные» Feature toggles: принципы работы

Reading time4 min
Views5.2K

В этой статье мы расскажем про принципы безопасной работы с переключателями функционала – Feature Toogles: 

— Что из себя представляют переключатели функционала и для чего их использовать.

— Какие проблемы возникают при неправильном использовании.

— Что такое «горячие» и «холодные» переключатели, и как они способны решить проблемы из прошлого пункта. 

— Реализация «холодных» toogle-ов с помощью условной компиляции и линковки.

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

Читать далее

Разбираем SceneDelegate и AppDelegate в iOS 13

Reading time4 min
Views18K

Продолжаем делиться своей практикой и переводами статей, которые могут быть полезны мобильному разработчику. В прошлых статьях мы разобрали инструменты тестирования и оптимизацию внедрения зависимостей в Android, а сейчас рассмотрим одно из нововведений в iOS 13 – поддержку многооконного режима и разделение AppDelegate (жизненный цикл и настройка приложения) и SceneDelegate (отображение приложения). 

От автора: Ещё до Xcode 11, при создании нового проекта вы знали, что по умолчанию создаются некоторые файлы, такие как AppDelegate.swift, ViewController.swift и StoryBoard, а также некоторые другие. Но в Xcode 11 вы могли заметить, что наряду с файлами по умолчанию, указанными выше, создается новый файл – SceneDelegate.swift.

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

Читать далее

Второе приложение. SwiftUI, может познакомимся поближе?

Reading time9 min
Views3.7K

Публикация, в которой идет речь о SwiftUI. Расчитана в первую очередь на разработчиков, которые только столкнулись со SwiftUI.

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

Состав публикации

• Вычисляемые свойства

• Инициализация оболочек (оберток) свойств

• Собственные оболочки свойств

• Динамический предикат (NSPredicate)

• @ViewBuilder

• Optional(nil) != nil

Читать далее

Swift. Class && Struct (классы и структуры) ч.2

Reading time18 min
Views11K

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

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

Читать далее

Swift. Протоколы

Reading time8 min
Views17K

Если разобраться поглубже, язык Swift, является крайне продуманным и собрал в себе все лучшее из многообразия языков. Он быстрый, продуманный и очень оптимизированный. Каждый его инструмент, всегда преследует определенную цель и не всегда понятно с первого раза, какую же такую цель преследует изучаемый инструмент, но поверьте, цель есть всегда. Так и у протоколов есть масса возможностей и перекочевали они с Objective-C не просто так. Начнем мы с простого и плавно перейдем к более сложному (хотя протоколы весьма просты в усвоении и очень функциональны).

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

Читать далее

Swift. Class && Struct (классы и структуры) ч.1

Reading time14 min
Views15K

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

Наслаждаться чтивом

BottomSheet в iOS 15: возможности ​​UISheetPresentationController

Reading time6 min
Views11K

В iOS 15 наконец-то появился способ управления высотой модальных контроллеров. Но насколько гибкой и удобной получилась реализация от Apple? Чтобы разобраться, вспомним, как эта задача решалась раньше, рассмотрим возможности и поведение нового UISheetPresentationController, оценим перспективы его применения в реальных проектах.

Читать далее
12 ...
10

Information

Rating
2,252-nd
Registered
Activity