Pull to refresh
11
0

Software Developer

Send message

SwiftUI: делаем Expandable/Collapsible секции в List view

Reading time6 min
Views7K


Нередко встречающаяся в разработке под iOS задача — раскрывающиеся/складывающиеся секции в UITableView. Сегодня мы реализуем эту задачу, используя SwiftUI. В качестве небольшого twist'a добавим анимированный треугольник в заголовке секции и сделаем ячейки также раскрывающимися.

Разработка проходила на XCode 11.2 под macOS Catalina 10.15.1
Поехали!
Total votes 3: ↑3 and ↓0+3
Comments3

Приёмы в проектировании пользовательского интерфейса, которые сэкономят время

Reading time4 min
Views7.5K
В переводе этой статьи автор приводят ряд советов и приёмов, которые упростят жизнь при проектировании дизайна пользовательского интерфейса. В статье даны сведения о полезных и экономящих время возможностях работы таких программ как Sketch, Adobe Illustrator, Figma, Adobe XD.


Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments1

Понимаем Property Wrappers в SwiftUI

Reading time4 min
Views29K
Перевод статьи подготовлен специально для студентов курса «iOS Разработчик. Продвинутый курс v 2.0.»




На прошлой неделе мы начали новую серию постов о фреймворке SwiftUI. Сегодня я хочу продолжить эту тему, рассказав о Property Wrappers в SwiftUI. SwiftUI предоставляет нам обертки свойств @State, @Binding, @ObservedObject, @EnvironmentObject и @Environment. Итак, давайте попытаемся понять разницу между ними и когда, почему и какую из них мы должны использовать.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments4

27 open-source ништячков для iOS разработчика

Reading time7 min
Views24K

1. DZNEmptyDataSet


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

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

image


Total votes 29: ↑23 and ↓6+17
Comments9

Мок — это не костыль, мок — это спецификация

Reading time2 min
Views4.7K
Среди множество псевдоидей, витающих вокруг ТДД, есть некоторое пренебрежение к test doubles, не в последнюю очередь связанное с их смешными названиями.

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

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

В этом смысле каждый раз, когда мы пишем

when(mockDependency.method(inputValue)).thenReturn(returnValue),

мы документируем некоторое поведение компонента.

Отсюда — несколько следствий.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments3

Test Infected

Reading time5 min
Views4.6K

Все, все будут писать тесты


Уже 3 года прошло, с тех пор как я увидел свою первую красную полоску. Что меня дернуло начать писать тесты, уже не важно. Я начал собирать информацию, перечитал весь wiki.agiledev.ru и торжественно запустил свой первый тест на SimpleTest. Конечно, эти тесты были ужасны, да и архитектура тоже (в моем сегодняшнем понимании). Тогда я, наверное, словил большинство ошибок, но зато замечательно провел время :)

Потом перешел на PHPUnit — просто было интересно, чем он отличается от SimpleTest и что в нем такого «навороченного».
А lime — гадость. Чего ребята из Symfony в него так вцепились? Понимаю ветка 1.*, наследие и все такое. Но 2.0 можно было бы и на PHPUnit начинать.
Да, мне это было интересно. Я активно писал тесты, даже честно пытался делать это перед тем, как писать код. Что-то не получалось, читал разные статьи на тему, как надо и не надо писать тесты, перечитывал wiki.agiledev.ru. Но внутри явно чего-то не хватало.
Читать дальше →
Total votes 65: ↑55 and ↓10+45
Comments40

«Ждёт тебя дорога дальняя…» или решение задачи прогнозирования на C# с помощью Ml.NET (DataScience)

Reading time10 min
Views6.6K
В последнее время мне все чаще на глаза попадается информация о фреймворке для машинного обучения Ml.NET. Количество упоминаний о нем переросло в качество, и я решил хотя бы одним глазком глянуть, что же это за зверь такой.

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

Спустя пару лет на обновлённом наборе данных мы попробуем решить простейшую задачу. Используя модель регрессии в Ml.NET Framework предскажем сколько запросов в месяц получает положительное решение. Попутно мы сравним Ml.NET с Accord. NET и библиотеками на Python.

Хотите овладеть силой и могуществом предсказателя? Тогда милости прошу под кат.



P.S. Пусть вас не смущает изображение С.С. Собянина, в статье не будет ни слова о политике.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments2

TDD: как правильно писать спецификации (describes)

Reading time3 min
Views4.3K
Написание спецификаций — утверждения или тестовые гипотезы — обычно обходят стороной в курсах TDD, поскольку тут мало программирования.

Однако они очень важны.

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

Каким образом мы могли бы сделать наши утверждения лучше?
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments25

Ошибки в разговорном английском, которые можно (и нужно) допускать

Reading time4 min
Views53K
Беглая и живая речь отличается от литературной фонетическими, лексическими и грамматическими нюансами. В то же время, она остается лучшим средством неформального общения наряду с вычурным языком Шекспира.

Сегодня расскажем, какие слова и фразы допустимо упрощать и какие правила можно нарушать в разговорном английском без потери смысла.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments107

Шпаргалка для стажера: пошаговое решение задач на собеседовании Google

Reading time3 min
Views17K
image

В прошлом году последние пару месяцев я потратил на подготовку к собеседованию для стажировки в Google (Google Internship). Все прошло хорошо: я получил и работу, и отличный опыт.

Теперь, спустя два месяца после стажировки, я хочу поделиться документом, который использовал для подготовки к собеседованиям. Для меня это было чем-то типа шпаргалки перед экзаменом. Но процесс создания документа и постоянная пошаговая проверка по нему помогли мне запомнить все самое важное.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments1

Подводные камни WPF

Reading time20 min
Views81K
Каждый, кто достаточно долгое время разрабатывал приложения с использованием WPF, наверное, замечал, что этот фреймворк далеко не так прост в использовании, как может показаться на первый взгляд. В этой статье я попытался собрать некоторые наиболее типовые проблемы и способы их решения.
Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments21

Подборка полезных слайдов от Джулии Эванс

Reading time1 min
Views53K
Перевели новую порцию слайдов. Права доступа в Unix, файловые дескрипторы, потоки, магия proc. И на закуску пара советов о том, как общаться, когда ты не согласен. А вдруг пригодятся =)



Читать дальше →
Total votes 115: ↑111 and ↓4+107
Comments42

8 историй о внутреннем Китае. То, что не показывают иностранцам

Reading time12 min
Views148K

Вы ещё не работали с Китаем? Тогда китайцы идут к вам. Они знают, что от них никуда не деться — с планеты не убежишь.


Чжунго — самая развивающаяся страна в мире. Во всех сферах: производство, IT, биотехнологии. В прошлом году Китай показал крупнейший в мире валовый продукт, который составил 18% от мирового ВВП.


Китай давно и прочно стал основным экономическим партнёром нашей страны. Россия продаёт Китаю ресурсы: нефть, газ, лес, металлы, продовольствие. Китай продаёт России высокотехнологичную продукцию: станки, электронные приборы, компьютерную и бытовую технику, настоящие швейцарские часы за 50 долларов, спинеры и прочий AliExpress. В прошлом году товарооборот с Китаем превысил 108 миллиардов долларов — за год вырос на четверть.


У российских разработчиков и руководителей IT-бизнеса часто возникает лёгкий шок от делового общения с китайскими товарищами — настолько легко и непринуждённо китайцы кидают партнёров. Но в этом нет ничего удивительного, если понимать, что такое на самом деле Китай, и что именно китайцы скрывают от окружающего мира.



Старинная китайская гравюра. Дядюшка Ляо на прогулке придумывает iPhone 12 c ТВ-приёмником, пятью sim-картами, десятью камерами, термометром, шокером и пылесосом.


Читать дальше →
Total votes 276: ↑249 and ↓27+222
Comments377

27 малоизвестных фактов о стартапах

Reading time2 min
Views14K
imageВенчурные компании и инвесторы всегда внимательно следили за финтех-индустрией. Сейчас авторитетные игроки отрасли начали активные шаги по внедрению технических инноваций. Облачные технологии и открытое программное обеспечение снизили минимальные требования для выхода на рынок, вызвав тем самым появление большого количества новых стартапов. Эта инновационная технологическая революция характеризуется приходом на финтех-рынок все большего количества инвесторов. При этом наиболее привлекательными для них оказываются развивающиеся и уже процветающие сегменты Финтеха, такие как кредитование, Blockchain, мобильные платежи и облачные финансовые сервисы.

Мировая экономика всегда зависела от стартапов и инновационных бизнес-идей. Как же обстоят дела с инновациями на данный момент? Каковы основные движущие силы нынешней гонки предпринимателей? Собранная здесь информация из 38 доверенных источников позволяет узнать интересные факты о динамике современной предпринимательской активности по всему миру. Переведено и адаптировано специалистами PayOnline, компании, которая занимается автоматизацией приема онлайн-платежей.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments11

Когда ВВС США осознали изъян со средними числами

Reading time9 min
Views131K
Отрывок из книги "The End of Average" Тодда Роуза


В начале 1950-х американцы измерили тела более 4000 пилотов по 140 характеристикам, чтобы спроектировать идеальную кабину для среднего пилота

В конце 1940-х у американских военно-воздушных сил была серьёзная проблема: пилоты теряли контроль над самолётами. Тогда наступала эпоха реактивных двигателей, так что самолёты стали более быстрыми и сложными в управлении. Но катастрофы случались так часто и на таком количестве разнообразных самолётов, что ВВС США столкнулись с реальной проблемой спасения жизней. В худшее время разбивалось до 17 пилотов за день.
Читать дальше →
Total votes 107: ↑101 and ↓6+95
Comments192

Анти-паттерны Test Driven Development

Reading time4 min
Views19K
Я надеюсь, что как грамотный разрабочик, вы имеете представление о unit-тестировании и сделаете себе в голове пару мысленных отметок о том, чего надо избегать при написании тестов. Знакомьтесь:

Лжец (The Liar)

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

Читать дальше →
Total votes 111: ↑109 and ↓2+107
Comments64

История одного прогресс-бара

Reading time13 min
Views36K


Наверное, любому программисту, который разрабатывает пользовательский интерфейс на C#/XAML, приходилось писать нестандартные элементы управления. В нашей веселой команде 2GIS для Windows Phone мы довольно часто делаем это, и такие задачи стали почти рутиной. Но об одном случае мне хочется рассказать подробнее. Все началось с того, что однажды нам понадобилось написать весьма своеобразный прогресс-бар.

Читать дальше
Total votes 61: ↑57 and ↓4+53
Comments40

Трёхмерны ли вы? Микрозадачка пространственному мышлению

Reading time3 min
Views56K
Развлекитесь: три одинаковых цилиндра, длиной больше диаметра, взаимно перпендикулярно пересекаются своими осями в одной точке.

То же другими словами: оси координат сделали толстыми-толстыми, круглыми:

задача

?: не пользуясь софтом и справочниками — нарисовать от руки или кратко описать словами форму области пересечения (скрыта шаром на рис. выше).


Очевидно, что никаких дополнительных знаний или тренируемых навыков для ответа не требуется — если человек понимает слова «цилиндр» и «перпендикуляр» — этого достаточно.
разбить хрустальный шар и отсечь лишнее
Total votes 67: ↑54 and ↓13+41
Comments55

Советы о том, как писать на С в 2016 году

Reading time20 min
Views91K

Если бы язык С был оружием

От автора: Наброски для этой статьи появились еще в начале 2015 года, правда, до публикации материалов дело так и не дошло. Наконец, решив, что в ящике моего письменного стола от вышеупомянутого «черновика» не будет никакой пользы, представляю его вашему вниманию в исходном виде. Единственное, что изменилось в тексте – год, с 2015 на 2016.

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

Итак, статья ...


Первое правило программирования на С – не используйте его, если можно обойтись другими инструментами.

Когда найти альтернативный метод не удается, самое время вспомнить о современных заповедях программиста.
Читать дальше →
Total votes 92: ↑84 and ↓8+76
Comments80

Простой будильник с веб-интерфейсом на Asterisk

Reading time2 min
Views15K
Идея создать будильник на базе Asterisk была уже давно, т.к. от обычного будильника проснуться получалось не всегда в отличии от звонка. Идея следующая: на веб-сайте задаем свой номер телефона и время, когда нас надо разбудить (с учетом дней недели). Когда наступает час X и минута Y, то Asterisk звонит по указанному номеру и проигрывает ругательную запись о необходимости скорейшего подъема.


Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments7

Information

Rating
Does not participate
Registered
Activity