Как стать автором
Поиск
Написать публикацию
Обновить
10.2

Swift *

Открытый объектно-ориентированный язык

Сначала показывать
Порог рейтинга
Уровень сложности

Digest MBLTdev — свежак для iOS-разработчиков

Время на прочтение2 мин
Количество просмотров3.1K


Сегодня вышел 130-й выпуск дайджеста. Решили поделиться с общественностью небольшой круглой датой полезным контентом. Спасибо, что читаете нас. А если ещё не читаете, то пора начать.



The Ultimate Guide to Branch Products
Если вы что-то слышали про Branch, то, возможно, знаете, что они предоставляют систему дип линков. На самом деле у Branch сейчас есть целый арсенал продуктов для любой стадии развития приложения.
BRANCH.APP.LINK

HomePod firmware provides detailed look at iPhone 8 screen layout
Скандалы, интриги, расследования. Вопрос один: это вообще законно? Скоро узнаем. Ждать осталось недолго.
9TO5MAC.COM
Читать дальше →

AppCode 2017.2: Extract Method и улучшения автодополнения для Swift, поддержка __auto_type в Objective-C и многое другое

Время на прочтение2 мин
Количество просмотров3.4K
Привет, Хабр!

Вышел AppCode 2017.2, а значит, пора рассказать обо всех новых возможностях в этом релизе! Под катом, как и всегда, много картинок.

AppCode 2017.2
Читать дальше →

SwiftyBeaver руководство для iOS: платформа логирования для Swift

Время на прочтение12 мин
Количество просмотров5.6K
Ошибки бывают разных форм и размеров. Некоторые ошибки милые и пушистые и их легко исправить, потому что вы можете запустить ваше приложение и пойти прямо к тому месту где происходит ошибка. Если вы счастливчик, Xcode покажет вам какая строка привела к падению вашего приложения.

Другие ошибки более зловещие. Они таятся в фоне и случаются когда вы менее всего этого ожидаете. Они ужасы ночных кошмаров и рекламных роликов Listerine.

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

Это оружие — SwiftyBeaver, основанная на Swift система логирования для iOS и macOS.

В этом руководстве вы узнаете как отлаживать ваше приложения используя SwiftyBeaver и получите следующие полезные умения на этом пути:

  • Когда SwiftyBeaver логирование лучше чем print() и NSLog()
  • Как получить доступ к журналам SwiftyBeaver в Crypto Cloud
  • Как использовать уровни логирования для различных типов сообщений журнала
  • Как фильтровать записи, чтобы облегчить поиск ошибок
Читать дальше →

Определяем номера с помощью CallKit

Время на прочтение7 мин
Количество просмотров21K


Когда в CRM 57000 контактов, людям совсем не хочется записывать их в айфон вручную. Надо найти решение поизящней, которое позволит не просто искать контакты в отдельном приложении, но и отображать имя человека при входящем звонке. Мы долго гуглили, а потом вспомнили про анонс фреймворка CallKit с WWDC. Информации по этой теме оказалось не так много: немногословная документация, статья на Хабре и ни одного пошагового руководства. Хочу восполнить этот пробел. На примере создания простого приложения покажу, как научить CallKit определять тысячи номеров.
Читать дальше →

Что нового в Swift 4.0

Время на прочтение9 мин
Количество просмотров18K
Практические примеры, которые помогут вам узнать о том, что нового нас ждет в Swift 4.

Swift 4.0 — это новая версия многими любимого языка программирования с новыми функциями, которые позволяют нам писать более простой и безопасный код. Вы с удовольствием узнаете, что это не так драматично как эпичные изменения в Swift 3.0 и большинство изменений имеют обратную совместимость с вашим сущетсвующим кодом на Swift. Конечно вам потребуется некоторое время для внесения изменений, но это не должно занять много времени.
Читать дальше

Пора валить! Опыт миграции с Objective-C на Swift

Время на прочтение7 мин
Количество просмотров7.6K
Олег Алексеенко, руководитель iOS разработки Superjob, рассказывает об опыте компании по переходу c Objective-C на Swift.

Статья написана по материалам выступления на RIT2017.



У Superjob 3 мобильных приложения для iOS:

  • Поиск работы (создание резюме, поиск вакансий и т.д.)
  • Поиск сотрудников (создание вакансий, поиск резюме)
  • Производственный календарь (планирование рабочего времени и отпусков)

Libdispatch. Как сделать приложение отзывчивым

Время на прочтение11 мин
Количество просмотров14K

image



Для повышения отзывчивости приложения необходимо грамотно разбивать выполнение задач на несколько потоков. Набор технологий в руках iOS-разработчика представляет из себя следующее. Способы представлены по возрастанию уровня абстракции.


  • Pthreads, или потоки POSIX. Библиотека для низкоуровневой работы с многопоточностью. Определена как набор типов и функций на языке C. Подробнее можно ознакомиться тут.
  • Background selectors. Это отправка сообщения объекту, которое будет исполнено на указанном потоке. В коде это селектор с названием performSelector и различными параметрами (например, performSelectorOnMainThread:withObject:waitUntilDone:). Документация
  • NSThread. Представлены как базовые средства для работы с потоками. Ознакомьтесь с концептуальным документом по работе с потоками и документацией.
  • Grand Central Dispatch. Библиотека, основанная на блоках — анонимных участках кода, иначе замыканиях. Рабочее название — libdispatch.
  • NSOperation. Построен на основе GCD. Стоит заметить, что сама операция является абстрактной сущностью и на практике стоит использовать NSInvocationOperation и NSBlockOperation.

В этой статье поговорим о вопросах GCD.

Читать дальше →

Moya — как перестать беспокоиться о сетевой части и начать жить

Время на прочтение5 мин
Количество просмотров28K
Хай! Вам знакомо то чувство уныния, когда нужно интегрировать проект с очередным RESTful API? Это когда в очередной раз нужно создавать какой-нибудь APIManager и наполнять его Alamofire запросами, а потом связывать их с моделями маппинга данных. Лично я стараюсь максимально оптимизировать всю свою работу, поэтому регулярно изучаю различные библиотеки чтобы не писать кучу повторяющегося кода и избавиться от рутины. В один из таких заходов я наткнулся на отличную библиотеку Moya, о которой и пойдёт речь.
Читать дальше →

Тестирование и обзор Core ML

Время на прочтение5 мин
Количество просмотров25K

На WWDC’17 Apple представила новый фреймворк для работы с технологиями машинного обучения Core ML. На основе него в iOS реализованы собственные продукты Apple: Siri, Camera и QuickType. Core ML позволяет упростить интеграцию машинного обучения в приложения и создавать различные «умные» функции с помощью пары строчек кода.


image

Читать дальше →

Mocking в swift при помощи Sourcery

Время на прочтение6 мин
Количество просмотров11K

Предисловие


В ходе разработки ios-приложения, перед разработчиком может встать задача unit-тестирования кода. Именно с такой задачей столкнулся я.

Читать дальше →

Как стать тимлидом и не взорваться

Время на прочтение12 мин
Количество просмотров71K


Два года назад я начал негласно исполнять роль iOS-lead в компании Touch Instinct и формированием стабильной работы iOS-отдела. Спустя полгода это трансформировалось в официальную должность. Из-за отсутствия опыта у меня возникало огромное количество проблем, которые вызывали жжение в области верхней части кресла. Это происходило из-за ряда факторов:


  • Нехватка опыта менеджмента.
  • Отсутствие рядом компетентного человека, уже прошедшего путь становления от новой для себя роли к человеку, который понимает устройство процессов, обязанностей и пути решения проблем.
  • Нестабильность общих процессов в компании из-за её молодого возраста на тот момент.

Если вы стали лидом и первоначальная эйфория сменилась небольшим горением и унынием, то пара советов не будет лишней.

Читать дальше →

Эффективная DI библиотека на Swift в 200 строк кода

Время на прочтение7 мин
Количество просмотров10K
Библиотека EasyDi содержит контейнер зависимостей для Swift. Синтаксис этой библиотеки был специально разработан для быстрого освоения и эффективного использования. Она умещается в 200 строк, при этом умеет все, что нужно взрослой Di библиотеке:

— Создание объектов и внедрение зависимостей в существующие
— Разделение на контейнеры — Assemblies
— Типы разрешения зависимостей: граф объектов, синглетон, прототип
— Разрешение циклических зависимостей
— Подмена объектов и конктесты зависимостей для тестов

В EasyDi нет разделения на register/resolve. Вместо этого зависимости описываются вот так:

var apiClient: IAPIClient {
  return define(init: APIClient()) {
    $0.baseURl = self.baseURL
  }
}

Cocoapods / EasyDi
Github / EasyDi

Под катом очень краткое описание «Зачем DI и что это», также примеры использования библиотеки:

  • Как использовать и типы зависимостей
  • Как тестировать c подменой объектов
  • Как можно это использовать для A/B тестов
  • Как собрать VIPER-модуль
Читать дальше →

Борьба за время сборки iOS-приложений

Время на прочтение4 мин
Количество просмотров12K
Чуть больше месяца назад мы выпустили iOS-приложение «Тинькофф Инвестиции». Приложение полностью написано на языке Swift, но имеет некоторые Objective-C-зависимости. Продукт быстро начал обрастать новой функциональностью, а вместе с тем время сборки проекта существенно увеличивалось. Когда мы пришли к тому, что после clean или значительных правок проект собирался дольше шести минут, мы осознали, что перемены необходимы.

image

На просторах интернета было найдено много действенных и не очень способов ускорить время сборки проекта. Особенно нас интересовало время сборки debug-версии, потому что работать становилось всё сложнее. Ниже я расскажу о методах, которые мы опробовали в рамках решения задачи, и результатах, которых мы добились. Хочу отметить, что долгое время сборки может зависеть от разных факторов, поэтому и методы для каждого проекта используются разные.
Читать дальше →

Ближайшие события

Как сделать статический анализ кода в Swift

Время на прочтение4 мин
Количество просмотров4.3K


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

Читать дальше →

Тестируем возможности ARKit. Создаем игру с дополненной реальностью

Время на прочтение9 мин
Количество просмотров38K

image


На WWDC 2017 Apple анонсировала ARKit — SDK для работы с дополненной реальностью. Благодаря ему порог вхождения в эту технологию стал значительно ниже. Можно ожидать появления большого количества качественных игр и приложений.

Читать дальше →

Работа с сервером с помощью Alamofire на Swift

Время на прочтение13 мин
Количество просмотров62K


Сразу хочу сказать, данная статья предназначена прежде всего для новичков. Здесь не будет best practice, создание сервисов, репозиториев и прочей оптимизации кода. Расскажу про основы работы с запросами и покажу применение на примерах.


Содержание


Читать дальше →

Swift Playgrounds 1.5. Программируем Sphero и многое другое

Время на прочтение2 мин
Количество просмотров10K
Сегодняшний день для всех людей, интересующихся продукцией фирмы Apple, стал днём начал WWDC17, на которой представлены много интересных вещей, таких как iOS 11, MacOS High Sierra и другие. Но я ждал 5 июня не только из-за этого. Я ждал новую версию Swift Playgrounds и она вышла!
Читать дальше →

Kotlin и Swift. Новая эпоха в мобильной разработке?

Время на прочтение4 мин
Количество просмотров29K

Этот пост является вольным переводом статьи Kotlin and Swift. Is it a whole new era in Mobile Development? by Andrew Cherkashyn


Когда в Google объявили о том, что они теперь официально будут использовать Kotlin для разработки под Android, я, как и многие другие Android-разработчики, вздохнул с облегчением. Я еще раз зашел на официальный сайт Kotlin, чтобы перепроверить функционал/синтаксис и сравнить его с последней версией Swift, на котором сейчас пишу, и вдруг ощутил это: проходит одна эпоха и начинается новая, по крайней мере в мобильной разработке...


Читать дальше →

Что нового нас ждет в Swift 4?

Время на прочтение9 мин
Количество просмотров20K
Читать дальше →

VoiceOver на iOS. Как сделать приложение удобнее для людей с нарушением зрения

Время на прочтение10 мин
Количество просмотров8.5K


Доброго времени суток! Меня зовут Иван Смолин. Я iOS разработчик в Touch Instinct.


Сегодня я хочу рассказать, что из себя представляет технология VoiceOver в iOS. И как мы сделали футбольное приложение более удобным для людей, у которых есть нарушения зрения.

Читать дальше →