Pull to refresh
57
0.1
Юрий @infund

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

Send message

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

Reading time3 min
Views13K

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

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

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments37

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

Reading time2 min
Views4K
Иногда нам нужно сформировать SwiftUI View, учитывая некоторые условия. Например, в приведенном коде мы определяем HomeView, который может содержать ProfileView, в случае если в LogInManager есть loggedInUser. Мы пытаемся это реализовать, используя стандартный оператор if:
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments1

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

Reading time3 min
Views8K
Первая бета Swift 5.2 только что появилась в Xcode 11.4 beta, и в ней произошли изменения в языке, наряду с сокращением размера кода и используемой памяти, а также появилась новая система диагностики, которая позволит быстрее выявлять ошибки.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments23

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

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

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

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

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

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

Reading time6 min
Views6.6K


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

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

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

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

Примерное время чтения публикации: 25 минут.
Поехали!
Total votes 9: ↑8 and ↓1+7
Comments16

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

Reading time12 min
Views7K

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



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


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

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

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

Reading time12 min
Views16K

Picture created by rawpixel.com

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

Приблизительное время чтения публикации: 25 минут.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments4

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

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

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

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

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

Reading time1 min
Views4.8K
Это будет совсем небольшая публикация, на которую меня вдохновила эта статья. Нет, я не собираюсь соревноваться с предложенным там решением (разве что в краткости), но, может быть, как демонстрация возможностей Swift, она будет интересна хабрасообществу.
Читать дальше →
Total votes 18: ↑6 and ↓12-6
Comments10

Таймер в iOS

Reading time9 min
Views34K
Представьте, что вы работаете над приложением, в котором нужно периодически выполнять некоторые действия. Именно для этого в Swift используется класс Timer.

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

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

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

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

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

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

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

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

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

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

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

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

Reading time7 min
Views11K


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

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

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

Reading time6 min
Views11K


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?
Total votes 15: ↑15 and ↓0+15
Comments9

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

Reading time7 min
Views44K

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

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

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

Reading time6 min
Views7.1K

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

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

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

Reading time5 min
Views13K


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

Information

Rating
2,418-th
Registered
Activity