Как стать автором
Обновить
57
0.5
Юрий @infund

Пользователь

Отправить сообщение

PC XT в современной обёртке, а также немного ностальгии и работы с железом

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

Первый IBM PC-совместимый компьютер, который я когда-то давно увидел, был клон PC XT фирмы EPSON. Там было все: и процессор 8088 с частотой 4,77 МГц, и ОЗУ емкостью 256 КБ, и отсутствие жесткого диска, и два 5-дюймовых дисковода емкостью 360 КБ, и монохромный адаптер без графических режимов. Вишенкой на торте был блок питания, рассчитанный на 120 В.

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

Читать далее
Всего голосов 19: ↑18 и ↓1+17
Комментарии37

Формируем View в SwiftUI, исходя из условий

Время на прочтение2 мин
Количество просмотров4K
Иногда нам нужно сформировать SwiftUI View, учитывая некоторые условия. Например, в приведенном коде мы определяем HomeView, который может содержать ProfileView, в случае если в LogInManager есть loggedInUser. Мы пытаемся это реализовать, используя стандартный оператор if:
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Swift 5.2 — что нового?

Время на прочтение3 мин
Количество просмотров8K
Первая бета Swift 5.2 только что появилась в Xcode 11.4 beta, и в ней произошли изменения в языке, наряду с сокращением размера кода и используемой памяти, а также появилась новая система диагностики, которая позволит быстрее выявлять ошибки.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии23

Протокольно-ориентированное программирование в Swift 5.1

Время на прочтение10 мин
Количество просмотров14K
Протоколы — фундаментальное свойство Swift. Они играют важную роль в стандартных библиотеках Swift и являются обычным способом абстракции кода. Во многом они похожи на интерфейсы в других языках программирования.

В этом руководстве мы представим вам подход к разработке приложений, называемый «протокольно-ориентированным программированием», который стал практически основным в Swift. Это действительно то, что вам необходимо уяснить при изучении Swift!

В этом руководстве вы:

  • поймёте разницу между объектно-ориентированным и протокольно-ориентированным программированием;
  • разберётесь со стандартной реализаций протоколов;
  • научитесь расширять функционал стандартной библиотеки Swift;
  • узнаете, как расширять протоколы при помощи дженериков.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии10

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

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


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

Разработка проходила на XCode 11.2 под macOS Catalina 10.15.1
Поехали!
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

SwiftUI: знакомство

Время на прочтение8 мин
Количество просмотров17K
В этом руководстве мы научимся планировать UI приложения при помощи View и узнаем, как использовать переменные состояния (State variables) для модификации UI.

Примерное время чтения публикации: 25 минут.
Поехали!
Всего голосов 9: ↑8 и ↓1+7
Комментарии16

Лига свободного Интернета

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

Как противостоять авторитарным режимам в Интернете



Отключаемся? Женщина в пекинском интернет-кафе, июль 2011
Im Chi Yin / The New York Times / Redux


М-да, всё же придётся предварить «примечанием переводчика». Обнаруженный текст показался мне любопытным и дискуссионным. Единственные правки в тексте — это «болды». Cвоё личное отношение я позволил себе выразить в тегах.

Эпоха возникновения Интернета была полна возвышенных надежд. Авторитарные режимы, вставшие перед выбором — стать частью новой системы глобальных коммуникаций или остаться за бортом, выберут подключение к ней. Рассуждая в розовых очках дальше: потоки новой информации и идей из «внешнего мира» неумолимо подтолкнут развитие в сторону экономической открытости и политической либерализации. Фактически произошло нечто совершенно противоположное. Вместо распространения демократических ценностей и либеральных идеалов Интернет стал основой шпионажа авторитарных государств по всему миру. Режимы в Китае, России и т.д. использовали инфраструктуры Интернета для построения своих собственных национальных сетей. В то же самое время они возвели технические и законодательные барьеры чтобы иметь возможность ограничивать доступ своих граждан к некоторым ресурсам и чтобы затруднить доступ западных компаний к своим цифровым рынкам.
Читать дальше →
Всего голосов 34: ↑11 и ↓23-12
Комментарии50

Чат на iOS: используем сокеты

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

Picture created by rawpixel.com

В этой публикации мы опустимся на уровень TCP, изучим сокеты и средства Core Foundation на примере разработки приложения для чата.

Приблизительное время чтения публикации: 25 минут.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии4

Swift: ARC и управление памятью

Время на прочтение13 мин
Количество просмотров52K
Будучи современным языком высокого уровня, Swift в основном берёт на себя управление памятью в ваших приложениях, занимаясь выделением и освобождением памяти. Это происходит благодаря механизму, который называется Automatic Reference Counting, или сокращенно ARC. В этом руководстве вы разберётесь, как работает ARC и как правильно управлять памятью в Swift. Понимая этот механизм, вы сможете влиять на время жизни объектов, размещенных в куче (heap).

В этом руководстве вы прокачаете свои знания Swift и ARC, изучив следующее:

  • как работает ARC
  • что такое циклы ссылок (reference cycles) и как их правильно устранять
  • как создать пример цикла ссылок
  • как находить циклы ссылок при помощи визуальных средств, предлагаемых Xcode
  • как обращаться с ссылочными типами и типами-значениями
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии18

Swift: решето Эратосфена

Время на прочтение1 мин
Количество просмотров4.8K
Это будет совсем небольшая публикация, на которую меня вдохновила эта статья. Нет, я не собираюсь соревноваться с предложенным там решением (разве что в краткости), но, может быть, как демонстрация возможностей Swift, она будет интересна хабрасообществу.
Читать дальше →
Всего голосов 18: ↑6 и ↓12-6
Комментарии10

Таймер в iOS

Время на прочтение9 мин
Количество просмотров34K
Представьте, что вы работаете над приложением, в котором нужно периодически выполнять некоторые действия. Именно для этого в Swift используется класс Timer.

Timer используется для планирования действий в приложении. Это может быть разовое действие или повторяющаяся процедура.

В этом руководстве вы разберётесь, как в iOS работает таймер, как он может влиять на отзывчивость UI, как оптимизировать потребление батареи при использовании таймера и как использовать CADisplayLink для анимации.

В качестве тестового полигона мы будем использовать приложение — примитивный планировщик задач.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Собеседование: Swift. Вопросы и ответы

Время на прочтение13 мин
Количество просмотров59K
Языку программирования Swift всего четыре года, но он уже становится основным языком разработки для iOS. Развиваясь до версии 5.0, Swift превратился в сложный и мощный язык, отвечающий как объектно-ориентированной, так и функциональной парадигме. И с каждым новым релизом в нем добавляется еще больше возможностей.

Но насколько хорошо вы на самом деле знаете Swift? В этой статье вы найдете примеры вопросов для собеседования по Swift.

Вы можете использовать эти вопросы для интервьюирования кандидатов, чтобы проверить их знания или вы можете проверить свои собственные. Если вы не знаете ответа, не переживайте: к каждому вопросу есть ответ.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии19

Приложение в строке меню для macOS

Время на прочтение10 мин
Количество просмотров7.9K
Приложения, размещенные в строке меню, уже давно известны пользователям macOS. У некоторых из этих приложений есть «обычная» часть, другие размещены только в строке меню.
В этом руководстве вы напишете приложение, которое показывает во всплывающем окне несколько цитат известных людей. В процессе создания этого приложения вы научитесь:

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

Замечание: это руководство предполагает, что вы знакомы со Swift и macOS.
Поехали!
Всего голосов 22: ↑22 и ↓0+22
Комментарии2

Продвинутая интерполяция строк в Swift 5.0

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


Интерполяция строк была в Swift с ранних версий, но в Swift 5.0 этот функционал был расширен, стал быстрее и значительно мощнее.

В этой статье мы пройдёмся по новым возможностям интерполяции строк и рассмотрим, как это можно применить в нашем собственном коде. Вы также можете загрузить исходники к этой статье здесь.
Поехали!
Всего голосов 14: ↑14 и ↓0+14
Комментарии1

Swift 5.1 — что нового?

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


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

Ключевая особенность Swift 5.1 — модульная стабильность (module stability), которая позволяет нам использовать сторонние библиотеки, не волнуясь о том, при помощи какой версии компилятора Swift они были созданы. Похоже на ABI stability, которую мы получили в Swift 5.0, но есть небольшая разница: ABI stability разрешает различия в версиях Swift на этапе выполнения, а module stability — на этапе компиляции.

Кроме этого важного новшества мы получим несколько важных улучшений в Swift, и в этой статье мы пройдемся по ним с примерами, чтобы можно было увидеть их в деле.
Что новенького в Swift 5.1?
Всего голосов 15: ↑15 и ↓0+15
Комментарии9

Списки захвата в Swift: в чём разница между ссылками weak, strong и unowned?

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

Джозеф Райт, «Пленный» — иллюстрация «сильного» захвата

Список «захваченных» значений находится перед списком параметров замыкания и может «захватить» значения из области видимости тремя разными способами: используя ссылки «strong», «weak» или «unowned». Мы часто его используем, главным образом для того, чтобы избежать циклов сильных ссылок («strong reference cycles» aka «retain cycles»).
Начинающему разработчику бывает сложно принять решение, какой именно применить способ, так что вы можете потратить много времени, выбирая между «strong» и «weak» или между «weak» и «unowned», но, со временем, вы поймёте, что правильный выбор — только один.
Давайте взглянем на проблему.
Всего голосов 8: ↑8 и ↓0+8
Комментарии18

Приложение Дурак для Windows Store

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

Поль Сезанн, «Игроки в карты»

Давным-давно, в Windows 95 была игра Microsoft Hearts. Игра в карты по сети, с оппонентами по всему миру. Если мне не изменяет память, то в Windows for Workgroups 3.11 (да, я застал все эти артефакты!) была версия для игры по локальной сети, с использованием так называемого NetDDE.
И мне захотелось сделать что-то похожее...
Всего голосов 16: ↑16 и ↓0+16
Комментарии25

Приложение Московское метро для Windows Store

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


Сделать приложение Московского метро мне захотелось сразу же, как только Артемий Лебедев и его студия нарисовали схему метро в нынешнем виде.
нюансы создания приложения
Всего голосов 47: ↑47 и ↓0+47
Комментарии62

Информация

В рейтинге
1 599-й
Зарегистрирован
Активность