Думаю, все разработчики мобильных iOS приложений в курсе, что из собственного приложения можно запускать сторонние приложения. Например можно запустить клиент Youtube, кликнув на ссылку на видео, или вызвать почтовый клиент если нажать на кнопку «написать письмо». В конце концов — самый банальный пример — это открытие браузера при нажатии на гиперссылку. Подобное поведение реализуется путем добавления и настройки URL-схем в приложение. Более того, при помощи этого инструмента можно в операционной системе iOS зарегистрировать собственную URL-схему и использовать ее для передачи данных: т.е. реализовать запуск своего приложения из других приложений с заданными параметрами.

(далее…)

Метки: ,

LoadError — cannot load such file — nanaimo

Если при попытка установить какой либо pod у вас терминал выдает такую ошибку, то вот рецепт для ее устранения:

Удалить nanaimo

gem list | grep nanaimo //увидим nanaimo (0.2.3, 0.2.2)
sudo gem uninstall nanaimo -v 0.2.2

sudo gem uninstall nanaimo -> all
sudo gem install nanaimo
pod install -> наслаждайтесь. Все работает

 

 

Метки:

Задача

Нужно загрузить данные из plist файла, перевести эти данные в словарь (Dictionary) и использовать этот словарь для вывода таблицы. В итоге,  должно получится такое приложение:

(далее…)

Метки: ,

Задача

Нужно из массива удалить повторяющиеся элементы. При этом массив может содержать элементы любого типа.

Решение

Для удаления одинаковых элементов из массива следует написать универсальную функцию, которая принимает в качестве параметра аргумент типа «коллекция» и возвращает другой массив.

//
// proSwift.ru
//
// Swift 3

private func uniq<S: Sequence, T: Hashable> (source: S) -> [T] where S.Iterator.Element == T {
    var buffer = [T]() // возвращаемый массив
    var added = Set<T>() // набор - уникальные значения
    for elem in source {
        if !added.contains(elem) {
            buffer.append(elem)
            added.insert(elem)
        }
    }
    return buffer
}

Внутри функции мы перебираем элементы исходного массива, и по одному проверяем содержание элемента в наборе added и если его там нет, до добавляем элемент в возвращаемый массив и в набор added. Как вы помните, в наборе не может быть двух одинаковых элементов, поэтому проверка на содержание в этом наборе является флагом добавления в возвращаемый массив.




Метки:

Задача

Создать проект, в котором отображается таблица. По жесту swipe нужно открывать список кнопок с различными действиями. Например удалить строку в таблице.

(далее…)

Метки: ,

В одном из комментариев на сайте, читатель поинтересовался каким образом следует работать с глобальными переменными. Он даже привел пример приложения, над которым он работает. Если я правильно понял, то это приложение опросник, которое по очереди задает вопросы, принимает ответы, суммирует результаты ответов и в конце выводит какой-то результат. Читатель сказал, что для каждого вопроса он использует отдельный контроллер, и соответсвенно хочет отловить ответы с каждого контроллера. Я не согласен с подобной реализацией такой задачи, но в любом случае изложу в данной статье несколько вариантов решения, которые я вижу. А также свой вариант реализации подобного опросника, при котором глобальная переменная с результатом и вовсе не понадобится.

(далее…)

В 2016 году на WWDC Apple представила Speech framework, полезный API для распознавания речи. Speech является основой, которая используется Siri для распознавания речи. Если посмотреть повнимательней, то можно найти много фреймворков распознавания речи, доступных на сегодняшний день, но они либо очень дорого стоят, либо отвратительно работают. В этом уроке мы создадим iOS приложение  для преобразования речи в текст с помощью Speech.

(далее…)

Задача

Нужно написать приложение, с помощью которого можно сделать фотографию или выбрать фотографию из галереи, а затем отправить её по Airdrop или передать любому другому приложению, например мессенджеру или программе работы с электронной почтой.

Интерфейс будет не сложным, в центре будет UIImageView, которая будет отражать выбранную картинку, и три кнопки — захват фото с камеры, выбор фото из галереи, и кнопка отправить.

(далее…)

После выхода на рынок iPhone 6s и iPhone 6s Plus с экранами, которые поддерживают технологию 3D Touch, а App Store практически сразу появилось приложение для взвешивая слив и персиков.

Не могу с уверенностью сказать почему именно этих фруктов, но могу сказать однозначно почему именно фруктов. Дело в том, что сенсор экрана iPhone работает по принципу определения утечки тока с поверхности сенсора, а для этой самой утечки нужен живой палец либо что-то, что обладает электрической емкостью. Думаю, каждый знает, что на пластиковые стилус или ноготь экраны i-девайсов не срабатывают. Именно поэтому взвесить на том приложении что-то металлическое не получалось. Но фрукты имеют электрическую емкость, на них срабатывает сенсор и нормально срабатывает непосредственно 3D Touch.
(далее…)

array-to-dictionary_proswift_ru

Расширение для массива

Итак, задачу преобразования массива в словарь мы реализуем с помощью расширения для всего типа коллекции «Массив».

(далее…)

Метки:
Сайт размещается на хостинге Спринтхост