Конечно же, не делайте так!
Юрий @infund
Пользователь
PC XT в современной обёртке, а также немного ностальгии и работы с железом
3 min
13KПервый IBM PC-совместимый компьютер, который я когда-то давно увидел, был клон PC XT фирмы EPSON. Там было все: и процессор 8088 с частотой 4,77 МГц, и ОЗУ емкостью 256 КБ, и отсутствие жесткого диска, и два 5-дюймовых дисковода емкостью 360 КБ, и монохромный адаптер без графических режимов. Вишенкой на торте был блок питания, рассчитанный на 120 В.
В общем, однажды пришло время ностальгии и мне захотелось найти "тот самый компьютер". Или собрать похожий на него.
+17
Формируем View в SwiftUI, исходя из условий
2 min
4.2KTranslation
Иногда нам нужно сформировать SwiftUI View, учитывая некоторые условия. Например, в приведенном коде мы определяем HomeView, который может содержать ProfileView, в случае если в LogInManager есть loggedInUser. Мы пытаемся это реализовать, используя стандартный оператор if:
+3
Swift 5.2 — что нового?
3 min
8KTranslation
Первая бета Swift 5.2 только что появилась в Xcode 11.4 beta, и в ней произошли изменения в языке, наряду с сокращением размера кода и используемой памяти, а также появилась новая система диагностики, которая позволит быстрее выявлять ошибки.
+9
Протокольно-ориентированное программирование в Swift 5.1
10 min
15KTranslation
Протоколы — фундаментальное свойство Swift. Они играют важную роль в стандартных библиотеках Swift и являются обычным способом абстракции кода. Во многом они похожи на интерфейсы в других языках программирования.
В этом руководстве мы представим вам подход к разработке приложений, называемый «протокольно-ориентированным программированием», который стал практически основным в Swift. Это действительно то, что вам необходимо уяснить при изучении Swift!
В этом руководстве вы:
В этом руководстве мы представим вам подход к разработке приложений, называемый «протокольно-ориентированным программированием», который стал практически основным в Swift. Это действительно то, что вам необходимо уяснить при изучении Swift!
В этом руководстве вы:
- поймёте разницу между объектно-ориентированным и протокольно-ориентированным программированием;
- разберётесь со стандартной реализаций протоколов;
- научитесь расширять функционал стандартной библиотеки Swift;
- узнаете, как расширять протоколы при помощи дженериков.
+6
SwiftUI: делаем Expandable/Collapsible секции в List view
6 min
7KTutorial
Нередко встречающаяся в разработке под iOS задача — раскрывающиеся/складывающиеся секции в UITableView. Сегодня мы реализуем эту задачу, используя SwiftUI. В качестве небольшого twist'a добавим анимированный треугольник в заголовке секции и сделаем ячейки также раскрывающимися.
Разработка проходила на XCode 11.2 под macOS Catalina 10.15.1
+3
SwiftUI: знакомство
8 min
17KTutorial
Translation
В этом руководстве мы научимся планировать UI приложения при помощи View и узнаем, как использовать переменные состояния (State variables) для модификации UI.
Примерное время чтения публикации: 25 минут.
Примерное время чтения публикации: 25 минут.
+7
Лига свободного Интернета
12 min
7.3KTranslation
Как противостоять авторитарным режимам в Интернете
Отключаемся? Женщина в пекинском интернет-кафе, июль 2011
Im Chi Yin / The New York Times / Redux
М-да, всё же придётся предварить «примечанием переводчика». Обнаруженный текст показался мне любопытным и дискуссионным. Единственные правки в тексте — это «болды». Cвоё личное отношение я позволил себе выразить в тегах.
Эпоха возникновения Интернета была полна возвышенных надежд. Авторитарные режимы, вставшие перед выбором — стать частью новой системы глобальных коммуникаций или остаться за бортом, выберут подключение к ней. Рассуждая в розовых очках дальше: потоки новой информации и идей из «внешнего мира» неумолимо подтолкнут развитие в сторону экономической открытости и политической либерализации. Фактически произошло нечто совершенно противоположное. Вместо распространения демократических ценностей и либеральных идеалов Интернет стал основой шпионажа авторитарных государств по всему миру. Режимы в Китае, России и т.д. использовали инфраструктуры Интернета для построения своих собственных национальных сетей. В то же самое время они возвели технические и законодательные барьеры чтобы иметь возможность ограничивать доступ своих граждан к некоторым ресурсам и чтобы затруднить доступ западных компаний к своим цифровым рынкам.
-12
Чат на iOS: используем сокеты
12 min
16KTutorial
Translation
Picture created by rawpixel.com
В этой публикации мы опустимся на уровень TCP, изучим сокеты и средства Core Foundation на примере разработки приложения для чата.
Приблизительное время чтения публикации: 25 минут.
+3
Swift: ARC и управление памятью
13 min
54KTutorial
Translation
Будучи современным языком высокого уровня, Swift в основном берёт на себя управление памятью в ваших приложениях, занимаясь выделением и освобождением памяти. Это происходит благодаря механизму, который называется Automatic Reference Counting, или сокращенно ARC. В этом руководстве вы разберётесь, как работает ARC и как правильно управлять памятью в Swift. Понимая этот механизм, вы сможете влиять на время жизни объектов, размещенных в куче (heap).
В этом руководстве вы прокачаете свои знания Swift и ARC, изучив следующее:
В этом руководстве вы прокачаете свои знания Swift и ARC, изучив следующее:
- как работает ARC
- что такое циклы ссылок (reference cycles) и как их правильно устранять
- как создать пример цикла ссылок
- как находить циклы ссылок при помощи визуальных средств, предлагаемых Xcode
- как обращаться с ссылочными типами и типами-значениями
+8
Swift: решето Эратосфена
1 min
5KЭто будет совсем небольшая публикация, на которую меня вдохновила эта статья. Нет, я не собираюсь соревноваться с предложенным там решением (разве что в краткости), но, может быть, как демонстрация возможностей Swift, она будет интересна хабрасообществу.
-6
Таймер в iOS
9 min
35KTutorial
Translation
Представьте, что вы работаете над приложением, в котором нужно периодически выполнять некоторые действия. Именно для этого в Swift используется класс Timer.
Timer используется для планирования действий в приложении. Это может быть разовое действие или повторяющаяся процедура.
В этом руководстве вы разберётесь, как в iOS работает таймер, как он может влиять на отзывчивость UI, как оптимизировать потребление батареи при использовании таймера и как использовать CADisplayLink для анимации.
В качестве тестового полигона мы будем использовать приложение — примитивный планировщик задач.
Timer используется для планирования действий в приложении. Это может быть разовое действие или повторяющаяся процедура.
В этом руководстве вы разберётесь, как в iOS работает таймер, как он может влиять на отзывчивость UI, как оптимизировать потребление батареи при использовании таймера и как использовать CADisplayLink для анимации.
В качестве тестового полигона мы будем использовать приложение — примитивный планировщик задач.
+8
Собеседование: Swift. Вопросы и ответы
13 min
60KTranslation
Языку программирования Swift всего четыре года, но он уже становится основным языком разработки для iOS. Развиваясь до версии 5.0, Swift превратился в сложный и мощный язык, отвечающий как объектно-ориентированной, так и функциональной парадигме. И с каждым новым релизом в нем добавляется еще больше возможностей.
Но насколько хорошо вы на самом деле знаете Swift? В этой статье вы найдете примеры вопросов для собеседования по Swift.
Вы можете использовать эти вопросы для интервьюирования кандидатов, чтобы проверить их знания или вы можете проверить свои собственные. Если вы не знаете ответа, не переживайте: к каждому вопросу есть ответ.
Но насколько хорошо вы на самом деле знаете Swift? В этой статье вы найдете примеры вопросов для собеседования по Swift.
Вы можете использовать эти вопросы для интервьюирования кандидатов, чтобы проверить их знания или вы можете проверить свои собственные. Если вы не знаете ответа, не переживайте: к каждому вопросу есть ответ.
+10
Приложение в строке меню для macOS
10 min
8.4KTutorial
Translation
Приложения, размещенные в строке меню, уже давно известны пользователям macOS. У некоторых из этих приложений есть «обычная» часть, другие размещены только в строке меню.
В этом руководстве вы напишете приложение, которое показывает во всплывающем окне несколько цитат известных людей. В процессе создания этого приложения вы научитесь:
В этом руководстве вы напишете приложение, которое показывает во всплывающем окне несколько цитат известных людей. В процессе создания этого приложения вы научитесь:
- назначать иконку приложения в строке меню
- делать приложение размещенным только в строке меню
- добавлять пользовательское меню
- показывать всплывающее по запросу пользователя окно и прятать его, когда необходимо, используя Event Monitoring
Замечание: это руководство предполагает, что вы знакомы со Swift и macOS.
+22
Продвинутая интерполяция строк в Swift 5.0
7 min
11KTranslation
Интерполяция строк была в Swift с ранних версий, но в Swift 5.0 этот функционал был расширен, стал быстрее и значительно мощнее.
В этой статье мы пройдёмся по новым возможностям интерполяции строк и рассмотрим, как это можно применить в нашем собственном коде. Вы также можете загрузить исходники к этой статье здесь.
+14
Swift 5.1 — что нового?
6 min
11KTranslation
Swift 5.0 стал доступен с выходом Xcode 10.2, но работа над следующей версией продолжается и уже есть известия о том, чего в ней можно ждать.
Ключевая особенность Swift 5.1 — модульная стабильность (module stability), которая позволяет нам использовать сторонние библиотеки, не волнуясь о том, при помощи какой версии компилятора Swift они были созданы. Похоже на ABI stability, которую мы получили в Swift 5.0, но есть небольшая разница: ABI stability разрешает различия в версиях Swift на этапе выполнения, а module stability — на этапе компиляции.
Кроме этого важного новшества мы получим несколько важных улучшений в Swift, и в этой статье мы пройдемся по ним с примерами, чтобы можно было увидеть их в деле.
+15
Списки захвата в Swift: в чём разница между ссылками weak, strong и unowned?
7 min
46KTranslation
Джозеф Райт, «Пленный» — иллюстрация «сильного» захвата
Список «захваченных» значений находится перед списком параметров замыкания и может «захватить» значения из области видимости тремя разными способами: используя ссылки «strong», «weak» или «unowned». Мы часто его используем, главным образом для того, чтобы избежать циклов сильных ссылок («strong reference cycles» aka «retain cycles»).
Начинающему разработчику бывает сложно принять решение, какой именно применить способ, так что вы можете потратить много времени, выбирая между «strong» и «weak» или между «weak» и «unowned», но, со временем, вы поймёте, что правильный выбор — только один.
+8
Приложение Дурак для Windows Store
6 min
7.2KПоль Сезанн, «Игроки в карты»
Давным-давно, в Windows 95 была игра Microsoft Hearts. Игра в карты по сети, с оппонентами по всему миру. Если мне не изменяет память, то в Windows for Workgroups 3.11 (да, я застал все эти артефакты!) была версия для игры по локальной сети, с использованием так называемого NetDDE.
+16
Приложение Московское метро для Windows Store
5 min
13KСделать приложение Московского метро мне захотелось сразу же, как только Артемий Лебедев и его студия нарисовали схему метро в нынешнем виде.
+47
Information
- Rating
- 1,359-th
- Registered
- Activity