На данный момент подавляющее большинство мобильных приложений являются клиент-серверными. Повсюду происходит подгрузка, синхронизация, отправка событий и основным способом взаимодействия с сервером является обмен данными посредством формата json.

Swift *
Открытый объектно-ориентированный язык
Собеседование: Swift. Вопросы и ответы
Но насколько хорошо вы на самом деле знаете Swift? В этой статье вы найдете примеры вопросов для собеседования по Swift.
Вы можете использовать эти вопросы для интервьюирования кандидатов, чтобы проверить их знания или вы можете проверить свои собственные. Если вы не знаете ответа, не переживайте: к каждому вопросу есть ответ.
Добавление UICollectionViews в кастомный UITableViewCell который сделан через Xib
Примечание: это туториал не для начинающих. Предполагается, что вы знаете о tableViews и создании пользовательских ячеек с файлами xib.
Также я не описываю ничего, про визульную составляющую.
Создание карточек как Tinder на Swift

Tinder — мы все знаем, что это приложение для знакомств, где вы можете просто отклонить или принять кого-то свайпом вправо или влево. Эта идея считывания карт теперь используется в тоннах приложений. Этот способ отображения данных для вас, если вы устали от использования табличных и коллекционных представлений. Есть множество учебников по этому вопросу, но этот проект занял у меня немало времени.
Автоматические размеры хедера и футера UITableView с AutoLayout

В этой статье я попытаюсь раскрыть некоторые причуды класса UITableView и покажу вам простой и самый простой способы реализовать представления верхнего и нижнего колонтитулов изменяемой высоты. Для меня простота, это когда дело доходит до написания кодом пользовательского интерфейса, но на самом деле заключается в том, чтобы не кодить никакого UI. В этой статье я буду максимально использовать interface builder :)
Я буду говорить о заголовках, но то же самое относится и к нижним колонтитулам.

Настройка TableView
Хедеры в табличном или простом стиле TableView ничем не отличаются от любых других строк UITableView. Настройка на самом деле довольно проста.
- должны быть установлены
sectionHeaderHeight
иestimatedHeaderHeight
. UITableView.automaticDimension
— это то, что позволяет AutoLayout вычислять высоту каждой ячейки во время выполнения.estimatedHeaderHeight
должен быть установлен для грубой оценки общей высоты его содержимого для отображения индикатора прокрутки.
Эти свойства могут быть установлены в инспекторе размеров при выборе TableView в вашей раскадровке.
Модульная разработка или путь туда, а не обратно

Как мы пришли к новому подходу работы с модулями в iOS приложении RaiffeisenBank.
Проблема
В приложениях Райффайзенбанка каждый экран состоит из нескольких, максимально независимых друг от друга модулей. «Модулем» мы называем визуальный компонент, имеющий своё представление. При проектировании приложения очень важно писать логику так, чтобы модули были независимыми и их легко можно было добавлять или убирать, не прибегая к рефакторингу.
Самый простой способ сделать чат в iOS приложении
Приложение в строке меню для macOS
В этом руководстве вы напишете приложение, которое показывает во всплывающем окне несколько цитат известных людей. В процессе создания этого приложения вы научитесь:
- назначать иконку приложения в строке меню
- делать приложение размещенным только в строке меню
- добавлять пользовательское меню
- показывать всплывающее по запросу пользователя окно и прятать его, когда необходимо, используя Event Monitoring
Замечание: это руководство предполагает, что вы знакомы со Swift и macOS.
Custom instruments: когда signpost недостаточно
Прошел год, а новых публичных инструментов и информации по их созданию в сети почти нет. Так что мы решили исправить ситуацию и поделиться тем, как создавали собственный Custom Instrument, который определяет причину слабой изоляции unit-тестов. Он базируется на технологии signpost (мы писали о ней в предыдущей статье) и позволяет быстро и точно определять место возникновения мигания теста.

Пишем игру «Карточки памяти» на Swift

В этой статье описывается процесс создания простой игры для тренировки памяти, которая мне очень нравится. Кроме того, что она сама по себе хороша, во время работы вы немного больше узнаете о классах и протоколах Swift. Но прежде чем начать, давайте разберемся в самой игре.
Продвинутая интерполяция строк в Swift 5.0

Интерполяция строк была в Swift с ранних версий, но в Swift 5.0 этот функционал был расширен, стал быстрее и значительно мощнее.
В этой статье мы пройдёмся по новым возможностям интерполяции строк и рассмотрим, как это можно применить в нашем собственном коде. Вы также можете загрузить исходники к этой статье здесь.
Переносим проект с Swift 4.2 на Swift 5.0
Swift 5.0 был выпущен в марте 2019 года и является первым стабильным выпуском ABI Swift. Несмотря на то, что многие ресурсы освещают новые возможности Swift 5.0, они не часто рассказывают вам о том, что вам нужно сделать, чтобы обновить свой проект до Swift 5.0.
В этом посте я рассмотрю шаги, которые вы можете предпринять, чтобы обновить существующий проект до Swift 5.0.
Проверьте, что ваш проект уже перенесен в Swift 4.2.
Не удивлюсь, если эта статья поможет убедить вашего продакт-менеджера спланировать время для перехода.
Система частиц в Core Animation. Рождественская история

Всем привет!
Рождество давно прошло, но после него у нас осталась занимательная история о том, как при помощи нечасто используемой возможности Core Animation можно создать пользователям праздничное настроение. Делюсь переводом статьи моего лондонского коллеги Алексиса.
Рождество всегда было для меня одним из самых любимых дней в году. Оно приносит в наши жизни много любви, смеха, счастья и волшебства.
Я родился и вырос в Испании, на Тенерифе — солнечном острове посреди Атлантического океана недалеко от побережья Африки. И, поверьте мне, Рождество на Тенерифе сильно отличается от Рождества в Лондоне, где я встречал его последние два года (с тех пор как начал работать в Badoo).
Одним из преимуществ жизни в Лондоне для меня стало созерцание снежинок. Здесь я увидел их впервые в жизни, это было просто невероятно!
Вспомнив об этом, я решил поделиться с вами одной интереснейшей историей, случившейся со мной в офисе незадолго до Рождества, перед тем как я отправился на Тенерифе, чтобы встретить праздник со своей семьёй.
Так уж случилось, что мне поручили одну необычную задачу со следующим описанием:
Ближайшие события
Swift 5.1 — что нового?

Swift 5.0 стал доступен с выходом Xcode 10.2, но работа над следующей версией продолжается и уже есть известия о том, чего в ней можно ждать.
Ключевая особенность Swift 5.1 — модульная стабильность (module stability), которая позволяет нам использовать сторонние библиотеки, не волнуясь о том, при помощи какой версии компилятора Swift они были созданы. Похоже на ABI stability, которую мы получили в Swift 5.0, но есть небольшая разница: ABI stability разрешает различия в версиях Swift на этапе выполнения, а module stability — на этапе компиляции.
Кроме этого важного новшества мы получим несколько важных улучшений в Swift, и в этой статье мы пройдемся по ним с примерами, чтобы можно было увидеть их в деле.
Проблемы паттерна Координатор и при чем тут RouteComposer
Я продолжаю цикл статей о библиотеке RouteComposer которую мы используем, и сегодня я хочу поговорить о паттерне Координатор. К написанию этой статьи меня побудило обсуждение одной из статей о паттерне Координатор тут на Хабре.
Паттерн Координатор, будучи представленным не так давно, набирает все большую популярность в кругах IOS разработчиков, и, в целом, понятно почему. Потому что средства из коробки, которые предоставляет UIKit представляют собой довольно не универсальное месиво.
PhotoGuru перешел на «темную сторону» и «поумнел»
В новой версии обновлен интерфейс и программа выдает всего один ответ. Чаще всего, это фамилия фотографа и процент «похожести» фотографии пользователя на стиль одного из шести фотографов.

UICollectionView всему голова: Изменение представления на лету
В данной статье мы рассмотрим использование различный способов отображение элементов, а также их переиспользование и динамическое изменение. Здесь мы не будем рассматривать основы работы с коллекциями и autolayout.
В результате мы получим такой пример:

Swift 5.0. Что нового?
Swift 5 — долгожданный релиз, включающий в себя несколько десятков улучшений и исправлений. Но самой главной целью релиза Swift 5.0 было достижение ABI стабильности. В этой статье вы узнаете, что такое ABI и что стабильный ABI даст iOS/macOS разработчикам. А также проведём разбор нескольких новых фич Swift 5.
Списки захвата в Swift: в чём разница между ссылками weak, strong и unowned?

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

В одном из спринтов нам поставили задачу реализовать генерацию pdf-документа на client-side. Мы выполнили задачу и успешно продемонстрировали результаты команде. Но нам захотелось убедиться в эффективности технических нюансов принятого решения. В этом нам помог signpost. С ним нам удалось ускорить отображение документа в несколько раз.
Чтобы узнать побольше о технологии применения os_signpost, посмотреть, где он может вам помочь и как уже помог нам, заходите под кат.
Вклад авторов
WildGreyPlus 232.0miden16 170.0illusionofchaos 140.0MaxRokatansky 135.0kuradnaths 131.0nsurl-dev 121.0yarmolchuk 119.8niklnd 112.0freetonik 112.0