Рубрика «swift» - 48

Страх и ненависть в Multipeer Connectivity - 1

Автор: Роман Ивченко, iOS developer DataArt.

Введение

Наверняка каждый, кто хоть раз занимался поиском готового решения для обмена сообщениями, файлами, стримами между iOS-устройствами без использования серверной части, слышал о фреймворке Multipeer Connectivity, выпущенном в iOS 7.

Вцелом это один из самых инновационных фреймворков, выпущенных в 7-й версии системы. Он должен был заменить слегка устаревший CoreBluetooth.

Чтобы познать всю мощь и силу Multipeer Connectivity, мы попробовали обкатать его в нашем R&D-проекте, задача которого весьма проста — шаринг презентаций и синхронизация переключения слайдов между устройствами слушателей и устройством докладчика на конференциях, в учебных аудиториях и т. д.

Краткий обзор

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

Статья не претендует на полное освещение всех тонкостей фреймворка, а больше рассказывает о его проблемах и надежности. Все технические детали можно узнать в документации Apple.
Читать полностью »

Итак, вы начали новый проект в Xcode. Первое, что я предлагаю сделать, это удалить Main.storyboard. Почему? Потому что от него исходит много проблем.

Чем мне не угодил Storyboard

Не спорю, Storyboard — очень удобная вещь. Все контроллеры расположены в одном месте, причем, все они соединены переходами (segues). Можно сказать, что приложение будто находится у вас на ладонях. И это замечательно, ведь не всегда удается запомнить, к какому контроллеру мы перейдем, если нажмем на очередную кнопку или ячейку.
Но, это все? Есть ли еще какие-нибудь преимущества? На самом деле нет. Зато приходится мириться с многими неприятными вещами.
Читать полностью »

Работа с форматом JSON в Swift на первый взгляд не представляет особых сложностей, с одной стороны в стандартном наборе есть класс NSJSONSerialization который умеет парсить файлы, с другой стороны множество сторонних библиотек обещающих сделать этот процесс проще, а код нагляднее. В рамках же данной статьи я хотел бы рассмотреть как читать JSON файлы быстрее и почему очевидные подходы работают медленно.
Читать полностью »

Магия IBDesignable или расширяем функциональность Interface Builder в Xcode - 1

Interface Builder в Xcode с некоторого времени экономит мне много времени в работе по стандартному лайауту элементов интерфейса и иногда помогает в задаче прототипирования. С версии 6 в Xcode добавили возможность рендера кастомных вьюшек, помеченных атрибутом IBDesignable, а также отображение в билдере полей класса, помеченных атрибутом IBInspectable.

С версии Xcode 7 этой фичей стало более-менее возможно пользоваться, поэтому мне захотелось проверить её возможности.

Почитать про IBDesignable/IBInspectable можно тут и тут.
Читать полностью »

Иногда для удобства, иногда для того, чтобы обойти баг в фрэймворке, а иногда просто от безысходности, может понадобиться переопределить поведение некоторого метода класса, созданного кем-то другим. Method Swizzling позволяет подменить метод вашим прямо в runtime, притом оставляя оригинальную имплементацию доступной.

В статье Objective-C Runtime. Теория и практическое применение этот процесс хорошо описан. Но с переходом на Swift появляются некоторые нюансы.
Читать полностью »

IBM Swift Sandbox — веб-песочница со Swift для тех, кто хочет разобраться в языке программирования от Apple - 1

Корпорация IBM уже довольно давно сотрудничает с Apple. Взаимодействие двух компаний касается многих сфер, и одна из них — программирование. Причем программирование на Swift. Дело в том, что корпорация Apple сделала исходный код языка программирования Swift открытым. А в Mobile Innovation Lab от IBM создали специальную песочницу для разработчиков, которые хотели бы познакомиться со Swift.

Благодаря открытию кода, разработчики, которые создают приложения для iOS, OS X и watchOS, могут без проблем обходить существовавшие ранее ограничения, дополняя многие функции при необходимости. Apple для привлечения широкой аудитории опубликовала достаточно массивную библиотеку различной документации, которая позиционируется как пособие для начинающих программистов. Стоит отметить, что лицензируется Swift под лицензией Apache 2.0. Эта лицензия позволяет использовать программное обеспечение для собственных целей, и платить Apple не требуется.
Читать полностью »

По итогам Rambler.iOS V - 1

Во вторник состоялся Rambler.iOS V, который мы анонсировали на Хабре ранее. Эксперимент с разбитием одной очень крупной темы на восемь связанных между собой докладов отлично состоялся — благодаря такой гранулированности докладчики смогли сосредоточиться именно на своем аспекте VIPER и подготовить действительно мощные выступления.
Читать полностью »

в 15:45, , рубрики: Rust, swift

Сравниваем swift и rust - 1
Поводом для написания статьи стала публикация исходного кода языка swift — мне стало интересно поближе познакомиться с ним. В глаза сразу же бросилась схожесть синтаксиса с другим молодым языком программирования под названием rust, к тому же за схожими синтаксическими конструкциями просматривалась и схожая область применения этих языков. Оба языка имеют сильную статическую типизацию с локальным выводом типов, оба компилируются напрямую в машинный код. И тот и другой языки впитали в себя многие приемы из мира функционального программирования. И swift и rust имеют средства для запуска кода, написанного на C, что позволяет без труда писать обертки над огромным количеством библиотек. Оба языка рассматриваются как замена существующим системным языкам типа C, C++, ObjectiveC. Так что же в них общего, а что различается?
Читать полностью »

Существует бесчисленное множество статей относительно шаблона MVVM в iOS, но немного о RxSwift, и мало кто акцентирует внимание на том, как выглядит паттерн MVVM на практике и как его реализовать.

ReactiveX

ReactiveX — библиотека для создания асинхронных и основанных на событии программ при помощи наблюдаемой последовательности.  — reactivex.io

RxSwift — относительно молодой фреймворк, который позволяет "реактивно программировать". Если Вы ничего о нем не знаете, тогда наведите справки, потому что функциональное реактивное программирование (FRP) набирает обороты, и не собирается останавливаться.
Читать полностью »

Совсем недавно github в своем блоге разместил статистику за 8 лет. Нашему сервису чуть меньше года и пользователей, конечно не так много, но 20K регистраций мы перешагнули (да, достаточно много джуниоров, но об этом попозже) плюс мы можем рассказать не только о процентах, но и об абсолютном количестве

Топ 10 на GitHub:
image

Наш рейтинг языков программированияЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js